/*
    GDAM - Geoff & Dave's Audio Mixer
    Copyright (C) 1999    Dave Benson, Geoff Matters.

    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
    License as published by the Free Software Foundation; either
    version 2 of the License, or (at your option) any later version.

    This library is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public
    License along with this library; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA

    Contact:
        daveb@ffem.org <Dave Benson>
        geoff@ugcs.caltech.edu <Geoff Matters>
*/
#ifndef __GDAM_PIX_FONT_LABEL_H_
#define __GDAM_PIX_FONT_LABEL_H_


typedef struct _GdamPixFontLabel GdamPixFontLabel;
typedef struct _GdamPixFontLabelClass GdamPixFontLabelClass;

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */

#include <gtk/gtkmisc.h>
#include "gdampixfont.h"

GtkType gdam_pix_font_label_get_type();
#define GDAM_TYPE_PIX_FONT_LABEL			(gdam_pix_font_label_get_type ())
#define GDAM_PIX_FONT_LABEL(obj)              (GTK_CHECK_CAST ((obj), GDAM_TYPE_PIX_FONT_LABEL, GdamPixFontLabel))
#define GDAM_PIX_FONT_LABEL_CLASS(klass)      (GTK_CHECK_CLASS_CAST ((klass), GDAM_TYPE_PIX_FONT_LABEL, GdamPixFontLabelClass))
#define GDAM_IS_PIX_FONT_LABEL(obj)           (GTK_CHECK_TYPE ((obj), GDAM_TYPE_PIX_FONT_LABEL))
#define GDAM_IS_PIX_FONT_LABEL_CLASS(klass)   (GTK_CHECK_CLASS_TYPE ((klass), GDAM_TYPE_PIX_FONT_LABEL))

struct _GdamPixFontLabelClass {
	GtkMiscClass	 misc_class;
};
struct _GdamPixFontLabel {
	GtkMisc          misc;

	char*		 text;
	GdamPixFont*	 font;
	char*		 font_name;
	GdamPixFontType* font_type;


	/* -=-  Justification:  -=-
	 *     value       meaning of x_justify        meaning of y_justify
	 *    --------------------------------------------------------------
	 *       0             left-justify                 top-justify
	 *       1           center horizontally         center vertically
	 *       2             right-justify              bottom-justify
	 */
	int		 x_justify;
	int		 y_justify;
};

GtkWidget*    gdam_pix_font_label_new     (const char*       font_name,
                                           GdamPixFontType*  font_type,
                                           const char*       text,
					   int               x_justify,
					   int               y_justify);
void          gdam_pix_font_label_set_text(GdamPixFontLabel* label,
                                           const char*       text);
void          gdam_pix_font_label_set_font(GdamPixFontLabel* label,
                                           const char*       font_name,
					   GdamPixFontType*  font_type);
void          gdam_pix_font_label_set_just(GdamPixFontLabel* label,
                                           int               x_justify,
                                           int               y_justify);

const char*   gdam_pix_font_label_get_text(GdamPixFontLabel* label);



/* exposed for completeness:
 * this function should only be called by libglade
 * while parsing xml ... */
GtkWidget*    gdam_pix_font_label_create_func(const char*   name,
                                              const char*   string1,
                                              const char*   string2,
                                              int           int1,
                                              int           int2);

#ifdef __cplusplus
}
#endif /* __cplusplus */

#endif
