#ifndef ASGTKLOOKEDIT_H_HEADER_INCLUDED
#define ASGTKLOOKEDIT_H_HEADER_INCLUDED

/*****************************************************************************/
/*   MyStyle Editor                                                          */
/*****************************************************************************/

#define ASGTK_TYPE_MYSTYLE_EDIT         	(asgtk_mystyle_edit_get_type ())
#define ASGTK_MYSTYLE_EDIT(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), ASGTK_TYPE_MYSTYLE_EDIT, ASGtkMyStyleEdit))
#define ASGTK_MYSTYLE_EDIT_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), ASGTK_TYPE_MYSTYLE_EDIT, ASGtkMyStyleEditClass))
#define ASGTK_IS_MYSTYLE_EDIT(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ASGTK_TYPE_MYSTYLE_EDIT))
#define ASGTK_IS_MYSTYLE_EDIT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ASGTK_TYPE_MYSTYLE_EDIT))
#define ASGTK_MYSTYLE_EDIT_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), ASGTK_TYPE_MYSTYLE_EDIT, ASGtkMyStyleEdit))

typedef struct _ASGtkMyStyleEdit
{
	GtkVBox       parent_instance;

#define ASGTK_MYSTYLE_EDIT_NAME_VISIBLE		(0x01<<0)
#define ASGTK_MYSTYLE_EDIT_GRAD_DETAILS_VISIBLE		(0x01<<1)
#define ASGTK_MYSTYLE_EDIT_PMAP_FILE_VISIBLE		(0x01<<2)
#define ASGTK_MYSTYLE_EDIT_BLEND_TYPE_VISIBLE		(0x01<<3)
#define ASGTK_MYSTYLE_EDIT_SLICING_VISIBLE			(0x01<<4)
#define ASGTK_MYSTYLE_EDIT_ALL_VISIBLE		(ASGTK_MYSTYLE_EDIT_NAME_VISIBLE| \
											 ASGTK_MYSTYLE_EDIT_GRAD_DETAILS_VISIBLE| \
											 ASGTK_MYSTYLE_EDIT_PMAP_FILE_VISIBLE| \
											 ASGTK_MYSTYLE_EDIT_BLEND_TYPE_VISIBLE| \
											 ASGTK_MYSTYLE_EDIT_SLICING_VISIBLE)
											 
#define ASGTK_MYSTYLE_SLICED				(0x01<<5)
											 


	ASFlagType      flags ;

	struct SyntaxDef *syntax ;
	struct MyStyleDefinition *style_def;
//	struct FreeStorageElem  *free_store ;

	int background_type ; /* derived from the free_store */

	GtkTreeModel *mystyles_list ;
	
	
/* comes from autogenerated file by glade :*/	
  GtkWidget *hbox1_mystyle_name;
  GtkWidget *label_mystyle;
  GtkWidget *entry_mystyle_name;
  GtkWidget *hbox2_overlay;
  GtkWidget *tgl2_overlay;
  GtkWidget *label_overlay;
  GtkWidget *combo_overlay_mystyle;
  GtkWidget *hbox3_inherit;
  GtkWidget *tgl3_inherit;
  GtkWidget *label_inherit;
  GtkWidget *sw_inherit_list;
  GtkWidget *tw_inherit_list;
  GtkWidget *btn_inherit_add;
  GtkWidget *image3;
  GtkWidget *btn_inherit_remove;
  GtkWidget *image4;
  GtkWidget *hbox4_font;
  GtkWidget *tgl4_font;
  GtkWidget *label_font;
  GtkWidget *btn_font_name;
  GtkWidget *label_font_size;
  GtkObject *spin_font_size_adj;
  GtkWidget *spin_font_size;
  GtkWidget *hbox5_colors;
  GtkWidget *tgl5_colors;
  GtkWidget *label_colors_fore;
  GtkWidget *img_fore_color;
  GtkWidget *btn_fore_color;
  GtkWidget *label_colors_back;
  GtkWidget *img_back_color;
  GtkWidget *btn_back_color;
  GtkWidget *hbox6_shadow;
  GtkWidget *tgl5_shadow;
  GtkWidget *label_shadow;
  GtkWidget *combo_shadow_type;
  GtkWidget *hbox7_background;
  GtkWidget *tgl7_background;
  GtkWidget *label_background;
  GtkWidget *combo_background_type;
  GtkWidget *hbox8_grad_details;
  GtkWidget *arrow1_grad_details;
  GtkWidget *btn_grad_color1;
  GtkWidget *label_to1;
  GtkWidget *btn_grad_color2;
  GtkWidget *label1_to2;
  GtkWidget *btn_grad_color3;
  GtkWidget *btn_grad_edit;
  GtkWidget *hbox9_texture_file;
  GtkWidget *arrow2_texture_file;
  GtkWidget *label_texture_file;
  GtkWidget *filechooserbtn_texture_file;
  GtkWidget *hbox10_texture_blend_type;
  GtkWidget *arrow3_texture_blend_type;
  GtkWidget *label_texture_blend_type;
  GtkWidget *combo_texture_blend_type;
  GtkWidget *table1_texture_slicing;
  GtkWidget *label1_texture_slicing_x;
  GtkObject *spin_texture_slicing_x_start_adj;
  GtkWidget *spin_texture_slicing_x_start;
  GtkWidget *label_texture_slicing_x2;
  GtkObject *spin_texture_slicing_x_end_adj;
  GtkWidget *spin_texture_slicing_x_end;
  GtkWidget *label_texture_slicing_y;
  GtkObject *spin_texture_slicing_y_start_adj;
  GtkWidget *spin_texture_slicing_y_start;
  GtkWidget *label_texture_slicing_y2;
  GtkObject *spin_texture_slicing_y_end_adj;
  GtkWidget *spin_texture_slicing_y_end;
  GtkWidget *arrow5_texture_slicing;
/* end of what comes from autogenerated file by glade */

}ASGtkMyStyleEdit;

typedef struct _ASGtkMyStyleEditClass
{
  GtkVBoxClass  parent_class;

}ASGtkMyStyleEditClass;


GType       asgtk_mystyle_edit_get_type  ( ) G_GNUC_CONST;

GtkWidget * asgtk_mystyle_edit_new       ();

/*****************************************************************************/
/*   Look Editor                                                             */
/*****************************************************************************/
#define ASGTK_TYPE_LOOK_EDIT         (asgtk_look_edit_get_type ())
#define ASGTK_LOOK_EDIT(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), ASGTK_TYPE_LOOK_EDIT, ASGtkLookEdit))
#define ASGTK_LOOK_EDIT_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), ASGTK_TYPE_LOOK_EDIT, ASGtkLookEditClass))
#define ASGTK_IS_LOOK_EDIT(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ASGTK_TYPE_LOOK_EDIT))
#define ASGTK_IS_LOOK_EDIT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ASGTK_TYPE_LOOK_EDIT))
#define ASGTK_LOOK_EDIT_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), ASGTK_TYPE_LOOK_EDIT, ASGtkLookEdit))


struct _ASGtkLookEdit;
struct FreeStorageElem;
struct SyntaxDef;
struct MyStyleDefinition;
struct LookConfig;

typedef struct ASGtkMyStylesPanel
{
	GtkWidget *expander ;
	GtkWidget *frame ;
	GtkWidget *hbox ; 	
		GtkWidget *list_vbox ; 	
			GtkWidget *list ; 	
			GtkWidget *list_window ; /* scroll window to be able to scroll in the list - Stupid GTK! */			
			GtkWidget *list_hbtn_box ; 	
				GtkWidget *list_add_btn ; 	
				GtkWidget *list_del_btn ; 	
				GtkWidget *list_rename_btn ; 	
			GtkWidget *list_hbtn_box2 ; 	
				GtkWidget *list_tolib_btn; 	
				GtkWidget *list_saveas_btn; 	
		/* end list_vbox */
		GtkWidget *mystyle_frame ; 	
		GtkWidget *mystyle_editor ; 	
	/* end hbox */
}ASGtkMyStylesPanel ; 


	
typedef struct _ASGtkLookEdit
{
	GtkVBox       parent_instance;

	ASFlagType      flags ;
	char *configfilename ;
	char *myname ;
	struct SyntaxDef *syntax ;
	struct LookConfig *config;
	
	
	ASGtkMyStylesPanel 	*mystyles ;
	
	GtkWidget 	*myframes_frame ;
	GtkWidget 	*balloons_frame ;		
	GtkWidget 	*buttons_frame ;	
	GtkWidget 	*backgrounds_frame ;
	GtkWidget 	*look_frame ;
}ASGtkLookEdit;

typedef struct _ASGtkLookEditClass
{
  GtkVBoxClass  parent_class;

}ASGtkLookEditClass;


GType       asgtk_look_edit_get_type  ( ) G_GNUC_CONST;

GtkWidget * asgtk_look_edit_new       ( const char *myname, struct SyntaxDef *syntax );

void  asgtk_look_edit_set_configfile( ASGtkLookEdit *self, char *fulldirname );
void  asgtk_look_edit_reload( ASGtkLookEdit *self );



#endif  /*  ASGTKLOOKEDIT_H_HEADER_INCLUDED  */
