Blame gladeui/glade-editor-property.h

Packit 1e8aac
#ifndef __GLADE_EDITOR_PROPERTY_H__
Packit 1e8aac
#define __GLADE_EDITOR_PROPERTY_H__
Packit 1e8aac
Packit 1e8aac
#include <gtk/gtk.h>
Packit 1e8aac
Packit 1e8aac
G_BEGIN_DECLS
Packit 1e8aac
Packit 1e8aac
/*******************************************************************************
Packit 1e8aac
                Boiler plate macros (inspired from glade-command.c)
Packit 1e8aac
 *******************************************************************************/
Packit 1e8aac
/* XXX document me ! */
Packit 1e8aac
Packit 1e8aac
#define GLADE_MAKE_EPROP_TYPE(func, type, parent)	\
Packit 1e8aac
GType							\
Packit 1e8aac
func ## _get_type (void)				\
Packit 1e8aac
{							\
Packit 1e8aac
	static GType cmd_type = 0;			\
Packit 1e8aac
							\
Packit 1e8aac
	if (!cmd_type)					\
Packit 1e8aac
	{						\
Packit 1e8aac
		static const GTypeInfo info =		\
Packit 1e8aac
		{					\
Packit 1e8aac
			sizeof (type ## Class),		\
Packit 1e8aac
			(GBaseInitFunc) NULL,		\
Packit 1e8aac
			(GBaseFinalizeFunc) NULL,	\
Packit 1e8aac
			(GClassInitFunc) func ## _class_init,	\
Packit 1e8aac
			(GClassFinalizeFunc) NULL,	\
Packit 1e8aac
			NULL,				\
Packit 1e8aac
			sizeof (type),			\
Packit 1e8aac
			0,				\
Packit 1e8aac
			(GInstanceInitFunc) NULL	\
Packit 1e8aac
		};					\
Packit 1e8aac
							\
Packit 1e8aac
		cmd_type = g_type_register_static (parent, #type, &info, 0);	\
Packit 1e8aac
	}						\
Packit 1e8aac
							\
Packit 1e8aac
	return cmd_type;				\
Packit 1e8aac
}							\
Packit 1e8aac
Packit 1e8aac
Packit 1e8aac
#define GLADE_MAKE_EPROP(type, func)					\
Packit 1e8aac
static void								\
Packit 1e8aac
func ## _finalize (GObject *object);					\
Packit 1e8aac
static void								\
Packit 1e8aac
func ## _load (GladeEditorProperty *me, GladeProperty *property);	\
Packit 1e8aac
static GtkWidget *							\
Packit 1e8aac
func ## _create_input (GladeEditorProperty *me);			\
Packit 1e8aac
static void								\
Packit 1e8aac
func ## _class_init (gpointer parent_tmp, gpointer notused)		\
Packit 1e8aac
{									\
Packit 1e8aac
	GladeEditorPropertyClass *parent = parent_tmp;			\
Packit 1e8aac
	GObjectClass* object_class;					\
Packit 1e8aac
	object_class = G_OBJECT_CLASS (parent);				\
Packit 1e8aac
	parent->load =  func ## _load;					\
Packit 1e8aac
	parent->create_input =  func ## _create_input;			\
Packit 1e8aac
	object_class->finalize = func ## _finalize;			\
Packit 1e8aac
}									\
Packit 1e8aac
typedef struct {							\
Packit 1e8aac
	GladeEditorPropertyClass cmd;					\
Packit 1e8aac
} type ## Class;							\
Packit 1e8aac
GLADE_MAKE_EPROP_TYPE(func, type, GLADE_TYPE_EDITOR_PROPERTY)
Packit 1e8aac
Packit 1e8aac
Packit 1e8aac
Packit 1e8aac
#define GLADE_TYPE_EDITOR_PROPERTY            (glade_editor_property_get_type())
Packit 1e8aac
#define GLADE_EDITOR_PROPERTY(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GLADE_TYPE_EDITOR_PROPERTY, GladeEditorProperty))
Packit 1e8aac
#define GLADE_EDITOR_PROPERTY_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GLADE_TYPE_EDITOR_PROPERTY, GladeEditorPropertyClass))
Packit 1e8aac
#define GLADE_IS_EDITOR_PROPERTY(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GLADE_TYPE_EDITOR_PROPERTY))
Packit 1e8aac
#define GLADE_IS_EDITOR_PROPERTY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GLADE_TYPE_EDITOR_PROPERTY))
Packit 1e8aac
#define GLADE_EDITOR_PROPERTY_GET_CLASS(o)    (G_TYPE_INSTANCE_GET_CLASS ((o), GLADE_EDITOR_PROPERTY, GladeEditorPropertyClass))
Packit 1e8aac
Packit 1e8aac
Packit 1e8aac
typedef struct _GladeEditorProperty        GladeEditorProperty;
Packit 1e8aac
typedef struct _GladeEditorPropertyClass   GladeEditorPropertyClass;
Packit 1e8aac
typedef struct _GladeEditorPropertyPrivate GladeEditorPropertyPrivate;
Packit 1e8aac
Packit 1e8aac
struct _GladeEditorProperty
Packit 1e8aac
{
Packit 1e8aac
  GtkBox             parent_instance;
Packit 1e8aac
Packit 1e8aac
  GladeEditorPropertyPrivate *priv;
Packit 1e8aac
};
Packit 1e8aac
Packit 1e8aac
struct _GladeEditorPropertyClass {
Packit 1e8aac
  GtkBoxClass  parent_class;
Packit 1e8aac
Packit 1e8aac
  void        (* load)          (GladeEditorProperty *, GladeProperty *);
Packit 1e8aac
  GtkWidget  *(* create_input)  (GladeEditorProperty *);
Packit 1e8aac
  void        (* commit)        (GladeEditorProperty *, GValue *);
Packit 1e8aac
  void       *(* changed)       (GladeEditorProperty *, GladeProperty *);
Packit 1e8aac
Packit 1e8aac
  void   (* glade_reserved1)   (void);
Packit 1e8aac
  void   (* glade_reserved2)   (void);
Packit 1e8aac
  void   (* glade_reserved3)   (void);
Packit 1e8aac
  void   (* glade_reserved4)   (void);
Packit 1e8aac
};
Packit 1e8aac
Packit 1e8aac
Packit 1e8aac
Packit 1e8aac
GType                glade_editor_property_get_type           (void) G_GNUC_CONST;
Packit 1e8aac
Packit 1e8aac
void                 glade_editor_property_load               (GladeEditorProperty *eprop,
Packit 1e8aac
							       GladeProperty       *property);
Packit 1e8aac
Packit 1e8aac
void                 glade_editor_property_load_by_widget     (GladeEditorProperty *eprop,
Packit 1e8aac
							       GladeWidget         *widget);
Packit 1e8aac
Packit 1e8aac
void                 glade_editor_property_commit             (GladeEditorProperty *eprop,
Packit 1e8aac
							       GValue              *value);
Packit 1e8aac
void                 glade_editor_property_commit_no_callback (GladeEditorProperty *eprop,
Packit 1e8aac
							       GValue              *value);
Packit 1e8aac
void                 glade_editor_property_set_custom_text    (GladeEditorProperty *eprop,
Packit 1e8aac
                                                               const gchar         *custom_text);
Packit 1e8aac
const gchar         *glade_editor_property_get_custom_text    (GladeEditorProperty *eprop);
Packit 1e8aac
void                 glade_editor_property_set_disable_check  (GladeEditorProperty *eprop,
Packit 1e8aac
                                                               gboolean             disable_check);
Packit 1e8aac
gboolean             glade_editor_property_get_disable_check  (GladeEditorProperty *eprop);
Packit 1e8aac
Packit 1e8aac
GtkWidget           *glade_editor_property_get_item_label     (GladeEditorProperty *eprop);
Packit 1e8aac
GladePropertyClass  *glade_editor_property_get_pclass         (GladeEditorProperty *eprop);
Packit 1e8aac
GladeProperty       *glade_editor_property_get_property       (GladeEditorProperty *eprop);
Packit 1e8aac
gboolean             glade_editor_property_loading            (GladeEditorProperty *eprop);
Packit 1e8aac
Packit 1e8aac
gboolean             glade_editor_property_show_i18n_dialog     (GtkWidget         *parent,
Packit 1e8aac
                                                                 gchar            **text,
Packit 1e8aac
                                                                 gchar            **context,
Packit 1e8aac
                                                                 gchar            **comment,
Packit 1e8aac
                                                                 gboolean          *translatable);
Packit 1e8aac
gboolean             glade_editor_property_show_resource_dialog (GladeProject      *project, 
Packit 1e8aac
								 GtkWidget         *parent, 
Packit 1e8aac
								 gchar            **filename);
Packit 1e8aac
Packit 1e8aac
gboolean             glade_editor_property_show_object_dialog   (GladeProject      *project,
Packit 1e8aac
                                                                 const gchar       *title,
Packit 1e8aac
                                                                 GtkWidget         *parent, 
Packit 1e8aac
                                                                 GType              object_type,
Packit 1e8aac
                                                                 GladeWidget       *exception,
Packit 1e8aac
                                                                 GladeWidget      **object);
Packit 1e8aac
Packit 1e8aac
/* Generic eprops */
Packit 1e8aac
#define GLADE_TYPE_EPROP_NUMERIC         (glade_eprop_numeric_get_type())
Packit 1e8aac
#define GLADE_TYPE_EPROP_ENUM            (glade_eprop_enum_get_type())
Packit 1e8aac
#define GLADE_TYPE_EPROP_FLAGS           (glade_eprop_flags_get_type())
Packit 1e8aac
#define GLADE_TYPE_EPROP_COLOR           (glade_eprop_color_get_type())
Packit 1e8aac
#define GLADE_TYPE_EPROP_NAMED_ICON      (glade_eprop_named_icon_get_type())
Packit 1e8aac
#define GLADE_TYPE_EPROP_TEXT            (glade_eprop_text_get_type())
Packit 1e8aac
#define GLADE_TYPE_EPROP_BOOL            (glade_eprop_bool_get_type())
Packit 1e8aac
#define GLADE_TYPE_EPROP_CHECK           (glade_eprop_check_get_type())
Packit 1e8aac
#define GLADE_TYPE_EPROP_UNICHAR         (glade_eprop_unichar_get_type())
Packit 1e8aac
#define GLADE_TYPE_EPROP_OBJECT          (glade_eprop_object_get_type())
Packit 1e8aac
#define GLADE_TYPE_EPROP_OBJECTS         (glade_eprop_objects_get_type())
Packit 1e8aac
GType     glade_eprop_numeric_get_type     (void) G_GNUC_CONST;
Packit 1e8aac
GType     glade_eprop_enum_get_type        (void) G_GNUC_CONST;
Packit 1e8aac
GType     glade_eprop_flags_get_type       (void) G_GNUC_CONST;
Packit 1e8aac
GType     glade_eprop_color_get_type       (void) G_GNUC_CONST;
Packit 1e8aac
GType     glade_eprop_named_icon_get_type  (void) G_GNUC_CONST;
Packit 1e8aac
GType     glade_eprop_text_get_type        (void) G_GNUC_CONST;
Packit 1e8aac
GType     glade_eprop_bool_get_type        (void) G_GNUC_CONST;
Packit 1e8aac
GType     glade_eprop_check_get_type       (void) G_GNUC_CONST;
Packit 1e8aac
GType     glade_eprop_unichar_get_type     (void) G_GNUC_CONST;
Packit 1e8aac
GType     glade_eprop_object_get_type      (void) G_GNUC_CONST;
Packit 1e8aac
GType     glade_eprop_objects_get_type     (void) G_GNUC_CONST;
Packit 1e8aac
Packit 1e8aac
Packit 1e8aac
G_END_DECLS
Packit 1e8aac
Packit 1e8aac
#endif /* __GLADE_EDITOR_PROPERTY_H__ */