1 #ifndef __GLADE_PROPERTY_H__ 2 #define __GLADE_PROPERTY_H__ 3 4 #include <glib-object.h> 5 6 G_BEGIN_DECLS 7 8 #define GLADE_TYPE_PROPERTY (glade_property_get_type()) 9 #define GLADE_PROPERTY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GLADE_TYPE_PROPERTY, GladeProperty)) 10 #define GLADE_PROPERTY_KLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GLADE_TYPE_PROPERTY, GladePropertyKlass)) 11 #define GLADE_IS_PROPERTY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GLADE_TYPE_PROPERTY)) 12 #define GLADE_IS_PROPERTY_KLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GLADE_TYPE_PROPERTY)) 13 #define GLADE_PROPERTY_GET_KLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GLADE_PROPERTY, GladePropertyKlass)) 14 15 typedef struct _GladePropertyKlass GladePropertyKlass; 16 typedef struct _GladePropertyPrivate GladePropertyPrivate; 17 18 typedef enum { 19 GLADE_STATE_NORMAL = 0, 20 GLADE_STATE_CHANGED = (1 << 0), 21 GLADE_STATE_UNSUPPORTED = (1 << 1), 22 GLADE_STATE_SUPPORT_DISABLED = (1 << 2) 23 } GladePropertyState; 24 25 /* A GladeProperty is an instance of a GladePropertyClass. 26 * There will be one GladePropertyClass for "GtkLabel->label" but one 27 * GladeProperty for each GtkLabel in the GladeProject. 28 */ 29 struct _GladeProperty 30 { 31 GObject parent_instance; 32 33 GladePropertyPrivate *priv; 34 }; 35 36 37 struct _GladePropertyKlass 38 { 39 GObjectClass parent_class; 40 41 /* Class methods */ 42 GladeProperty * (* dup) (GladeProperty *, GladeWidget *); 43 gboolean (* equals_value) (GladeProperty *, const GValue *); 44 gboolean (* set_value) (GladeProperty *, const GValue *); 45 void (* get_value) (GladeProperty *, GValue *); 46 void (* sync) (GladeProperty *); 47 void (* load) (GladeProperty *); 48 49 /* Signals */ 50 void (* value_changed) (GladeProperty *, GValue *, GValue *); 51 void (* tooltip_changed) (GladeProperty *, const gchar *, 52 const gchar *, const gchar *); 53 void (* glade_reserved1) (void); 54 void (* glade_reserved2) (void); 55 void (* glade_reserved3) (void); 56 void (* glade_reserved4) (void); 57 void (* glade_reserved5) (void); 58 void (* glade_reserved6) (void); 59 }; 60 61 62 GType glade_property_get_type (void) G_GNUC_CONST; 63 64 GladeProperty *glade_property_new (GladePropertyClass *klass, 65 GladeWidget *widget, 66 GValue *value); 67 68 GladeProperty *glade_property_dup (GladeProperty *template_prop, 69 GladeWidget *widget); 70 71 void glade_property_reset (GladeProperty *property); 72 73 void glade_property_original_reset (GladeProperty *property); 74 75 gboolean glade_property_default (GladeProperty *property); 76 77 gboolean glade_property_original_default (GladeProperty *property); 78 79 gboolean glade_property_equals_value (GladeProperty *property, 80 const GValue *value); 81 82 gboolean glade_property_equals (GladeProperty *property, 83 ...); 84 85 gboolean glade_property_set_value (GladeProperty *property, 86 const GValue *value); 87 88 gboolean glade_property_set_va_list (GladeProperty *property, 89 va_list vl); 90 91 gboolean glade_property_set (GladeProperty *property, 92 ...); 93 94 void glade_property_get_value (GladeProperty *property, 95 GValue *value); 96 97 void glade_property_get_default (GladeProperty *property, 98 GValue *value); 99 100 void glade_property_get_va_list (GladeProperty *property, 101 va_list vl); 102 103 void glade_property_get (GladeProperty *property, 104 ...); 105 106 void glade_property_add_object (GladeProperty *property, 107 GObject *object); 108 109 void glade_property_remove_object (GladeProperty *property, 110 GObject *object); 111 112 void glade_property_sync (GladeProperty *property); 113 114 void glade_property_load (GladeProperty *property); 115 116 void glade_property_read (GladeProperty *property, 117 GladeProject *project, 118 GladeXmlNode *node); 119 120 void glade_property_write (GladeProperty *property, 121 GladeXmlContext *context, 122 GladeXmlNode *node); 123 124 GladePropertyClass *glade_property_get_class (GladeProperty *property); 125 126 void glade_property_set_sensitive (GladeProperty *property, 127 gboolean sensitive, 128 const gchar *reason); 129 G_CONST_RETURN gchar *glade_propert_get_insensitive_tooltip(GladeProperty *property); 130 131 void glade_property_set_support_warning (GladeProperty *property, 132 gboolean disable, 133 const gchar *reason); 134 G_CONST_RETURN gchar *glade_property_get_support_warning (GladeProperty *property); 135 136 gboolean glade_property_warn_usage (GladeProperty *property); 137 138 gboolean glade_property_get_sensitive (GladeProperty *property); 139 140 141 void glade_property_set_save_always (GladeProperty *property, 142 gboolean setting); 143 144 gboolean glade_property_get_save_always (GladeProperty *property); 145 146 147 void glade_property_set_enabled (GladeProperty *property, 148 gboolean enabled); 149 150 gboolean glade_property_get_enabled (GladeProperty *property); 151 152 153 gchar *glade_property_make_string (GladeProperty *property); 154 155 GladeWidget *glade_property_get_widget (GladeProperty *property); 156 void glade_property_set_widget (GladeProperty *property, 157 GladeWidget *widget); 158 159 GValue *glade_property_inline_value (GladeProperty *property); 160 161 GladePropertyState glade_property_get_state (GladeProperty *property); 162 163 void glade_property_i18n_set_comment (GladeProperty *property, 164 const gchar *str); 165 166 G_CONST_RETURN gchar *glade_property_i18n_get_comment (GladeProperty *property); 167 168 void glade_property_i18n_set_context (GladeProperty *property, 169 const gchar *str); 170 171 G_CONST_RETURN gchar *glade_property_i18n_get_context (GladeProperty *property); 172 173 void glade_property_i18n_set_translatable (GladeProperty *property, 174 gboolean translatable); 175 176 gboolean glade_property_i18n_get_translatable (GladeProperty *property); 177 178 void glade_property_push_superuser (void); 179 180 void glade_property_pop_superuser (void); 181 182 gboolean glade_property_superuser (void); 183 184 G_END_DECLS 185 186 #endif /* __GLADE_PROPERTY_H__ */ 187