Getting colder with our second freeze... it's 3.31.91 release day and string freeze, upload a tarball and lock those strings 🏂

glade-editor-property.h 9.39 KB
Newer Older
1 2 3
#ifndef __GLADE_EDITOR_PROPERTY_H__
#define __GLADE_EDITOR_PROPERTY_H__

4 5
#include <gtk/gtk.h>

6
G_BEGIN_DECLS
7

8 9 10 11 12
/*******************************************************************************
                Boiler plate macros (inspired from glade-command.c)
 *******************************************************************************/
/* XXX document me ! */

13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
#define GLADE_MAKE_EPROP_TYPE(func, type, parent)                  \
GType                                                              \
func ## _get_type (void)                                           \
{                                                                  \
  static GType cmd_type = 0;                                       \
                                                                   \
  if (!cmd_type)                                                   \
    {                                                              \
      static const GTypeInfo info = {                              \
        sizeof (type ## Class),                                    \
        (GBaseInitFunc) NULL,                                      \
        (GBaseFinalizeFunc) NULL,                                  \
        (GClassInitFunc) func ## _class_init,                      \
        (GClassFinalizeFunc) NULL,                                 \
        NULL,                                                      \
        sizeof (type),                                             \
        0,                                                         \
        (GInstanceInitFunc) NULL                                   \
      };                                                           \
                                                                   \
      cmd_type = g_type_register_static (parent, #type, &info, 0); \
    }                                                              \
                                                                   \
  return cmd_type;                                                 \
}


#define GLADE_MAKE_EPROP(type, func)                              \
static void                                                       \
func ## _finalize (GObject *object);                              \
static void                                                       \
func ## _load (GladeEditorProperty *me, GladeProperty *property); \
static GtkWidget *                                                \
func ## _create_input (GladeEditorProperty *me);                  \
static void                                                       \
func ## _class_init (gpointer parent_tmp, gpointer notused)       \
{                                                                 \
  GladeEditorPropertyClass *parent = parent_tmp;                  \
  GObjectClass* object_class;                                     \
  object_class = G_OBJECT_CLASS (parent);                         \
  parent->load =  func ## _load;                                  \
  parent->create_input =  func ## _create_input;                  \
  object_class->finalize = func ## _finalize;                     \
}                                                                 \
typedef struct {                                                  \
        GladeEditorPropertyClass cmd;                             \
} type ## Class;                                                  \
60 61 62 63
GLADE_MAKE_EPROP_TYPE(func, type, GLADE_TYPE_EDITOR_PROPERTY)



64 65 66 67 68 69 70 71 72 73
#define GLADE_TYPE_EDITOR_PROPERTY            (glade_editor_property_get_type())
#define GLADE_EDITOR_PROPERTY(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GLADE_TYPE_EDITOR_PROPERTY, GladeEditorProperty))
#define GLADE_EDITOR_PROPERTY_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GLADE_TYPE_EDITOR_PROPERTY, GladeEditorPropertyClass))
#define GLADE_IS_EDITOR_PROPERTY(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GLADE_TYPE_EDITOR_PROPERTY))
#define GLADE_IS_EDITOR_PROPERTY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GLADE_TYPE_EDITOR_PROPERTY))
#define GLADE_EDITOR_PROPERTY_GET_CLASS(o)    (G_TYPE_INSTANCE_GET_CLASS ((o), GLADE_EDITOR_PROPERTY, GladeEditorPropertyClass))


typedef struct _GladeEditorProperty        GladeEditorProperty;
typedef struct _GladeEditorPropertyClass   GladeEditorPropertyClass;
74
typedef struct _GladeEditorPropertyPrivate GladeEditorPropertyPrivate;
75

76 77
struct _GladeEditorProperty
{
78
  GtkBox             parent_instance;
79 80

  GladeEditorPropertyPrivate *priv;
81 82 83
};

struct _GladeEditorPropertyClass {
84
  GtkBoxClass  parent_class;
85

86 87 88 89
  void        (* load)          (GladeEditorProperty *, GladeProperty *);
  GtkWidget  *(* create_input)  (GladeEditorProperty *);
  void        (* commit)        (GladeEditorProperty *, GValue *);
  void       *(* changed)       (GladeEditorProperty *, GladeProperty *);
90

91 92 93 94
  void   (* glade_reserved1)   (void);
  void   (* glade_reserved2)   (void);
  void   (* glade_reserved3)   (void);
  void   (* glade_reserved4)   (void);
95 96 97
};


98

99
GType                glade_editor_property_get_type           (void) G_GNUC_CONST;
100

101
void                 glade_editor_property_load               (GladeEditorProperty *eprop,
102
                                                               GladeProperty       *property);
103

104
void                 glade_editor_property_load_by_widget     (GladeEditorProperty *eprop,
105
                                                               GladeWidget         *widget);
106

107
void                 glade_editor_property_commit             (GladeEditorProperty *eprop,
108
                                                               GValue              *value);
109
void                 glade_editor_property_commit_no_callback (GladeEditorProperty *eprop,
110
                                                               GValue              *value);
111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
void                 glade_editor_property_set_custom_text    (GladeEditorProperty *eprop,
                                                               const gchar         *custom_text);
const gchar         *glade_editor_property_get_custom_text    (GladeEditorProperty *eprop);
void                 glade_editor_property_set_disable_check  (GladeEditorProperty *eprop,
                                                               gboolean             disable_check);
gboolean             glade_editor_property_get_disable_check  (GladeEditorProperty *eprop);

GtkWidget           *glade_editor_property_get_item_label     (GladeEditorProperty *eprop);
GladePropertyClass  *glade_editor_property_get_pclass         (GladeEditorProperty *eprop);
GladeProperty       *glade_editor_property_get_property       (GladeEditorProperty *eprop);
gboolean             glade_editor_property_loading            (GladeEditorProperty *eprop);

gboolean             glade_editor_property_show_i18n_dialog     (GtkWidget         *parent,
                                                                 gchar            **text,
                                                                 gchar            **context,
                                                                 gchar            **comment,
                                                                 gboolean          *translatable);
gboolean             glade_editor_property_show_resource_dialog (GladeProject      *project, 
129 130
                                                                 GtkWidget         *parent, 
                                                                 gchar            **filename);
131 132 133 134 135 136 137

gboolean             glade_editor_property_show_object_dialog   (GladeProject      *project,
                                                                 const gchar       *title,
                                                                 GtkWidget         *parent, 
                                                                 GType              object_type,
                                                                 GladeWidget       *exception,
                                                                 GladeWidget      **object);
138

139 140 141 142 143 144 145 146
/* Generic eprops */
#define GLADE_TYPE_EPROP_NUMERIC         (glade_eprop_numeric_get_type())
#define GLADE_TYPE_EPROP_ENUM            (glade_eprop_enum_get_type())
#define GLADE_TYPE_EPROP_FLAGS           (glade_eprop_flags_get_type())
#define GLADE_TYPE_EPROP_COLOR           (glade_eprop_color_get_type())
#define GLADE_TYPE_EPROP_NAMED_ICON      (glade_eprop_named_icon_get_type())
#define GLADE_TYPE_EPROP_TEXT            (glade_eprop_text_get_type())
#define GLADE_TYPE_EPROP_BOOL            (glade_eprop_bool_get_type())
147
#define GLADE_TYPE_EPROP_CHECK           (glade_eprop_check_get_type())
148 149 150 151 152 153 154 155 156 157
#define GLADE_TYPE_EPROP_UNICHAR         (glade_eprop_unichar_get_type())
#define GLADE_TYPE_EPROP_OBJECT          (glade_eprop_object_get_type())
#define GLADE_TYPE_EPROP_OBJECTS         (glade_eprop_objects_get_type())
GType     glade_eprop_numeric_get_type     (void) G_GNUC_CONST;
GType     glade_eprop_enum_get_type        (void) G_GNUC_CONST;
GType     glade_eprop_flags_get_type       (void) G_GNUC_CONST;
GType     glade_eprop_color_get_type       (void) G_GNUC_CONST;
GType     glade_eprop_named_icon_get_type  (void) G_GNUC_CONST;
GType     glade_eprop_text_get_type        (void) G_GNUC_CONST;
GType     glade_eprop_bool_get_type        (void) G_GNUC_CONST;
158
GType     glade_eprop_check_get_type       (void) G_GNUC_CONST;
159 160 161 162
GType     glade_eprop_unichar_get_type     (void) G_GNUC_CONST;
GType     glade_eprop_object_get_type      (void) G_GNUC_CONST;
GType     glade_eprop_objects_get_type     (void) G_GNUC_CONST;

163

164 165 166
G_END_DECLS

#endif /* __GLADE_EDITOR_PROPERTY_H__ */