/* property.c generated by valac 0.40.8, the Vala compiler * generated from property.vala, do not modify */ /* vim:set et sts=4 sw=4: * * ibus - The Input Bus * * Copyright(c) 2011-2015 Peng Huang * * 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.1 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA */ #include #include #include #include #include #include #include #define TYPE_PROPERTY_MANAGER (property_manager_get_type ()) #define PROPERTY_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PROPERTY_MANAGER, PropertyManager)) #define PROPERTY_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PROPERTY_MANAGER, PropertyManagerClass)) #define IS_PROPERTY_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PROPERTY_MANAGER)) #define IS_PROPERTY_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PROPERTY_MANAGER)) #define PROPERTY_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PROPERTY_MANAGER, PropertyManagerClass)) typedef struct _PropertyManager PropertyManager; typedef struct _PropertyManagerClass PropertyManagerClass; typedef struct _PropertyManagerPrivate PropertyManagerPrivate; #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) #define TYPE_PROP_RADIO_MENU_ITEM (prop_radio_menu_item_get_type ()) #define PROP_RADIO_MENU_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PROP_RADIO_MENU_ITEM, PropRadioMenuItem)) #define PROP_RADIO_MENU_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PROP_RADIO_MENU_ITEM, PropRadioMenuItemClass)) #define IS_PROP_RADIO_MENU_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PROP_RADIO_MENU_ITEM)) #define IS_PROP_RADIO_MENU_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PROP_RADIO_MENU_ITEM)) #define PROP_RADIO_MENU_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PROP_RADIO_MENU_ITEM, PropRadioMenuItemClass)) typedef struct _PropRadioMenuItem PropRadioMenuItem; typedef struct _PropRadioMenuItemClass PropRadioMenuItemClass; #define TYPE_IPROP_ITEM (iprop_item_get_type ()) #define IPROP_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IPROP_ITEM, IPropItem)) #define IS_IPROP_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IPROP_ITEM)) #define IPROP_ITEM_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_IPROP_ITEM, IPropItemIface)) typedef struct _IPropItem IPropItem; typedef struct _IPropItemIface IPropItemIface; #define TYPE_PROP_IMAGE_MENU_ITEM (prop_image_menu_item_get_type ()) #define PROP_IMAGE_MENU_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PROP_IMAGE_MENU_ITEM, PropImageMenuItem)) #define PROP_IMAGE_MENU_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PROP_IMAGE_MENU_ITEM, PropImageMenuItemClass)) #define IS_PROP_IMAGE_MENU_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PROP_IMAGE_MENU_ITEM)) #define IS_PROP_IMAGE_MENU_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PROP_IMAGE_MENU_ITEM)) #define PROP_IMAGE_MENU_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PROP_IMAGE_MENU_ITEM, PropImageMenuItemClass)) typedef struct _PropImageMenuItem PropImageMenuItem; typedef struct _PropImageMenuItemClass PropImageMenuItemClass; #define TYPE_PROP_CHECK_MENU_ITEM (prop_check_menu_item_get_type ()) #define PROP_CHECK_MENU_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PROP_CHECK_MENU_ITEM, PropCheckMenuItem)) #define PROP_CHECK_MENU_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PROP_CHECK_MENU_ITEM, PropCheckMenuItemClass)) #define IS_PROP_CHECK_MENU_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PROP_CHECK_MENU_ITEM)) #define IS_PROP_CHECK_MENU_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PROP_CHECK_MENU_ITEM)) #define PROP_CHECK_MENU_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PROP_CHECK_MENU_ITEM, PropCheckMenuItemClass)) typedef struct _PropCheckMenuItem PropCheckMenuItem; typedef struct _PropCheckMenuItemClass PropCheckMenuItemClass; #define TYPE_PROP_SEPARATOR_MENU_ITEM (prop_separator_menu_item_get_type ()) #define PROP_SEPARATOR_MENU_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PROP_SEPARATOR_MENU_ITEM, PropSeparatorMenuItem)) #define PROP_SEPARATOR_MENU_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PROP_SEPARATOR_MENU_ITEM, PropSeparatorMenuItemClass)) #define IS_PROP_SEPARATOR_MENU_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PROP_SEPARATOR_MENU_ITEM)) #define IS_PROP_SEPARATOR_MENU_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PROP_SEPARATOR_MENU_ITEM)) #define PROP_SEPARATOR_MENU_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PROP_SEPARATOR_MENU_ITEM, PropSeparatorMenuItemClass)) typedef struct _PropSeparatorMenuItem PropSeparatorMenuItem; typedef struct _PropSeparatorMenuItemClass PropSeparatorMenuItemClass; typedef struct _ParamSpecPropertyManager ParamSpecPropertyManager; enum { PROPERTY_MANAGER_PROPERTY_ACTIVATE_SIGNAL, PROPERTY_MANAGER_NUM_SIGNALS }; static guint property_manager_signals[PROPERTY_MANAGER_NUM_SIGNALS] = {0}; enum { IPROP_ITEM_PROPERTY_ACTIVATE_SIGNAL, IPROP_ITEM_NUM_SIGNALS }; static guint iprop_item_signals[IPROP_ITEM_NUM_SIGNALS] = {0}; typedef struct _PropImageMenuItemPrivate PropImageMenuItemPrivate; enum { PROP_IMAGE_MENU_ITEM_0_PROPERTY, PROP_IMAGE_MENU_ITEM_NUM_PROPERTIES }; static GParamSpec* prop_image_menu_item_properties[PROP_IMAGE_MENU_ITEM_NUM_PROPERTIES]; typedef struct _PropCheckMenuItemPrivate PropCheckMenuItemPrivate; enum { PROP_CHECK_MENU_ITEM_0_PROPERTY, PROP_CHECK_MENU_ITEM_NUM_PROPERTIES }; static GParamSpec* prop_check_menu_item_properties[PROP_CHECK_MENU_ITEM_NUM_PROPERTIES]; typedef struct _PropRadioMenuItemPrivate PropRadioMenuItemPrivate; enum { PROP_RADIO_MENU_ITEM_0_PROPERTY, PROP_RADIO_MENU_ITEM_NUM_PROPERTIES }; static GParamSpec* prop_radio_menu_item_properties[PROP_RADIO_MENU_ITEM_NUM_PROPERTIES]; typedef struct _PropSeparatorMenuItemPrivate PropSeparatorMenuItemPrivate; enum { PROP_SEPARATOR_MENU_ITEM_0_PROPERTY, PROP_SEPARATOR_MENU_ITEM_NUM_PROPERTIES }; static GParamSpec* prop_separator_menu_item_properties[PROP_SEPARATOR_MENU_ITEM_NUM_PROPERTIES]; #define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg); #define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; } #define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; } #define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg); struct _PropertyManager { GTypeInstance parent_instance; volatile int ref_count; PropertyManagerPrivate * priv; }; struct _PropertyManagerClass { GTypeClass parent_class; void (*finalize) (PropertyManager *self); }; struct _PropertyManagerPrivate { IBusPropList* m_props; }; struct _IPropItemIface { GTypeInterface parent_iface; void (*update_property) (IPropItem* self, IBusProperty* prop); }; struct _ParamSpecPropertyManager { GParamSpec parent_instance; }; struct _PropImageMenuItem { GtkMenuItem parent_instance; PropImageMenuItemPrivate * priv; }; struct _PropImageMenuItemClass { GtkMenuItemClass parent_class; }; struct _PropImageMenuItemPrivate { IBusProperty* m_property; }; struct _PropCheckMenuItem { GtkCheckMenuItem parent_instance; PropCheckMenuItemPrivate * priv; }; struct _PropCheckMenuItemClass { GtkCheckMenuItemClass parent_class; }; struct _PropCheckMenuItemPrivate { IBusProperty* m_property; }; struct _PropRadioMenuItem { GtkRadioMenuItem parent_instance; PropRadioMenuItemPrivate * priv; }; struct _PropRadioMenuItemClass { GtkRadioMenuItemClass parent_class; }; struct _PropRadioMenuItemPrivate { IBusProperty* m_property; }; struct _PropSeparatorMenuItem { GtkSeparatorMenuItem parent_instance; PropSeparatorMenuItemPrivate * priv; }; struct _PropSeparatorMenuItemClass { GtkSeparatorMenuItemClass parent_class; }; struct _PropSeparatorMenuItemPrivate { IBusProperty* m_property; }; static gpointer property_manager_parent_class = NULL; static gpointer prop_image_menu_item_parent_class = NULL; static IPropItemIface * prop_image_menu_item_iprop_item_parent_iface = NULL; static gpointer prop_check_menu_item_parent_class = NULL; static IPropItemIface * prop_check_menu_item_iprop_item_parent_iface = NULL; static gpointer prop_radio_menu_item_parent_class = NULL; static IPropItemIface * prop_radio_menu_item_iprop_item_parent_iface = NULL; static gpointer prop_separator_menu_item_parent_class = NULL; static IPropItemIface * prop_separator_menu_item_iprop_item_parent_iface = NULL; gpointer property_manager_ref (gpointer instance); void property_manager_unref (gpointer instance); GParamSpec* param_spec_property_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); void value_set_property_manager (GValue* value, gpointer v_object); void value_take_property_manager (GValue* value, gpointer v_object); gpointer value_get_property_manager (const GValue* value); GType property_manager_get_type (void) G_GNUC_CONST; #define PROPERTY_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_PROPERTY_MANAGER, PropertyManagerPrivate)) void property_manager_ProperyManager (PropertyManager* self); void property_manager_set_properties (PropertyManager* self, IBusPropList* props); gint property_manager_create_menu_items (PropertyManager* self, GtkMenu* menu); static gint property_manager_create_menu_items_internal (PropertyManager* self, IBusPropList* props, GtkMenu* menu); GType prop_radio_menu_item_get_type (void) G_GNUC_CONST; GType iprop_item_get_type (void) G_GNUC_CONST; PropImageMenuItem* prop_image_menu_item_new (IBusProperty* property); PropImageMenuItem* prop_image_menu_item_construct (GType object_type, IBusProperty* property); GType prop_image_menu_item_get_type (void) G_GNUC_CONST; PropCheckMenuItem* prop_check_menu_item_new (IBusProperty* property); PropCheckMenuItem* prop_check_menu_item_construct (GType object_type, IBusProperty* property); GType prop_check_menu_item_get_type (void) G_GNUC_CONST; PropRadioMenuItem* prop_radio_menu_item_new (IBusProperty* property, PropRadioMenuItem* group_source); PropRadioMenuItem* prop_radio_menu_item_construct (GType object_type, IBusProperty* property, PropRadioMenuItem* group_source); PropSeparatorMenuItem* prop_separator_menu_item_new (IBusProperty* property); PropSeparatorMenuItem* prop_separator_menu_item_construct (GType object_type, IBusProperty* property); GType prop_separator_menu_item_get_type (void) G_GNUC_CONST; static void ____lambda24_ (PropertyManager* self, const gchar* k, gint s); static void _____lambda24__iprop_item_property_activate (IPropItem* _sender, const gchar* key, gint state, gpointer self); void property_manager_update_property (PropertyManager* self, IBusProperty* prop); PropertyManager* property_manager_new (void); PropertyManager* property_manager_construct (GType object_type); static void g_cclosure_user_marshal_VOID__STRING_INT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data); static void property_manager_finalize (PropertyManager * obj); void iprop_item_update_property (IPropItem* self, IBusProperty* prop); #define PROP_IMAGE_MENU_ITEM_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_PROP_IMAGE_MENU_ITEM, PropImageMenuItemPrivate)) static void prop_image_menu_item_sync (PropImageMenuItem* self); static void prop_image_menu_item_real_update_property (IPropItem* base, IBusProperty* property); static void prop_image_menu_item_real_activate (GtkMenuItem* base); static void prop_image_menu_item_finalize (GObject * obj); #define PROP_CHECK_MENU_ITEM_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_PROP_CHECK_MENU_ITEM, PropCheckMenuItemPrivate)) static void prop_check_menu_item_sync (PropCheckMenuItem* self); static void prop_check_menu_item_real_update_property (IPropItem* base, IBusProperty* property); static void prop_check_menu_item_real_toggled (GtkCheckMenuItem* base); static void prop_check_menu_item_finalize (GObject * obj); #define PROP_RADIO_MENU_ITEM_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_PROP_RADIO_MENU_ITEM, PropRadioMenuItemPrivate)) static void prop_radio_menu_item_sync (PropRadioMenuItem* self); static void prop_radio_menu_item_real_update_property (IPropItem* base, IBusProperty* property); static void prop_radio_menu_item_real_toggled (GtkCheckMenuItem* base); static void prop_radio_menu_item_finalize (GObject * obj); #define PROP_SEPARATOR_MENU_ITEM_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_PROP_SEPARATOR_MENU_ITEM, PropSeparatorMenuItemPrivate)) static void prop_separator_menu_item_real_update_property (IPropItem* base, IBusProperty* property); static void prop_separator_menu_item_finalize (GObject * obj); void property_manager_ProperyManager (PropertyManager* self) { g_return_if_fail (self != NULL); } static gpointer _g_object_ref0 (gpointer self) { return self ? g_object_ref (self) : NULL; } void property_manager_set_properties (PropertyManager* self, IBusPropList* props) { IBusPropList* _tmp0_; g_return_if_fail (self != NULL); g_return_if_fail (props != NULL); _tmp0_ = _g_object_ref0 (props); _g_object_unref0 (self->priv->m_props); self->priv->m_props = _tmp0_; } gint property_manager_create_menu_items (PropertyManager* self, GtkMenu* menu) { gint result = 0; IBusPropList* _tmp0_; g_return_val_if_fail (self != NULL, 0); g_return_val_if_fail (menu != NULL, 0); _tmp0_ = self->priv->m_props; result = property_manager_create_menu_items_internal (self, _tmp0_, menu); return result; } static void ____lambda24_ (PropertyManager* self, const gchar* k, gint s) { g_return_if_fail (k != NULL); g_signal_emit (self, property_manager_signals[PROPERTY_MANAGER_PROPERTY_ACTIVATE_SIGNAL], 0, k, s); } static void _____lambda24__iprop_item_property_activate (IPropItem* _sender, const gchar* key, gint state, gpointer self) { ____lambda24_ ((PropertyManager*) self, key, state); } static gint property_manager_create_menu_items_internal (PropertyManager* self, IBusPropList* props, GtkMenu* menu) { gint result = 0; gint i = 0; PropRadioMenuItem* last_radio = NULL; g_return_val_if_fail (self != NULL, 0); g_return_val_if_fail (props != NULL, 0); g_return_val_if_fail (menu != NULL, 0); i = 0; last_radio = NULL; while (TRUE) { IBusProperty* prop = NULL; gint _tmp0_; IBusProperty* _tmp1_; IBusProperty* _tmp2_; IBusProperty* _tmp3_; IBusProperty* _tmp4_; const gchar* _tmp5_; gint _tmp6_; IPropItem* item = NULL; IBusProperty* _tmp7_; IBusProperty* _tmp32_; IPropItem* _tmp33_; _tmp0_ = i; _tmp1_ = ibus_prop_list_get (props, (guint) _tmp0_); _tmp2_ = _g_object_ref0 (_tmp1_); prop = _tmp2_; _tmp3_ = prop; if (_tmp3_ == NULL) { _g_object_unref0 (prop); break; } _tmp4_ = prop; _tmp5_ = ibus_property_get_key (_tmp4_); g_debug ("property.vala:44: ins prop = %s", _tmp5_); _tmp6_ = i; i = _tmp6_ + 1; item = NULL; _tmp7_ = prop; switch (ibus_property_get_prop_type (_tmp7_)) { case PROP_TYPE_NORMAL: { IBusProperty* _tmp8_; PropImageMenuItem* _tmp9_; _tmp8_ = prop; _tmp9_ = prop_image_menu_item_new (_tmp8_); g_object_ref_sink (_tmp9_); _g_object_unref0 (item); item = (IPropItem*) _tmp9_; break; } case PROP_TYPE_TOGGLE: { IBusProperty* _tmp10_; PropCheckMenuItem* _tmp11_; _tmp10_ = prop; _tmp11_ = prop_check_menu_item_new (_tmp10_); g_object_ref_sink (_tmp11_); _g_object_unref0 (item); item = (IPropItem*) _tmp11_; break; } case PROP_TYPE_RADIO: { { PropRadioMenuItem* radio = NULL; IBusProperty* _tmp12_; PropRadioMenuItem* _tmp13_; PropRadioMenuItem* _tmp14_; PropRadioMenuItem* _tmp15_; IPropItem* _tmp16_; PropRadioMenuItem* _tmp17_; PropRadioMenuItem* _tmp18_; _tmp12_ = prop; _tmp13_ = last_radio; _tmp14_ = prop_radio_menu_item_new (_tmp12_, _tmp13_); g_object_ref_sink (_tmp14_); radio = _tmp14_; _tmp15_ = radio; _tmp16_ = _g_object_ref0 ((IPropItem*) _tmp15_); _g_object_unref0 (item); item = _tmp16_; _tmp17_ = radio; _tmp18_ = _g_object_ref0 (_tmp17_); _g_object_unref0 (last_radio); last_radio = _tmp18_; _g_object_unref0 (radio); } break; } case PROP_TYPE_MENU: { { PropImageMenuItem* menuitem = NULL; IBusProperty* _tmp19_; PropImageMenuItem* _tmp20_; PropImageMenuItem* _tmp21_; IPropItem* _tmp22_; GtkMenu* submenu = NULL; GtkMenu* _tmp23_; IBusProperty* _tmp24_; IBusPropList* _tmp25_; GtkMenu* _tmp26_; _tmp19_ = prop; _tmp20_ = prop_image_menu_item_new (_tmp19_); g_object_ref_sink (_tmp20_); menuitem = _tmp20_; _tmp21_ = menuitem; _tmp22_ = _g_object_ref0 ((IPropItem*) _tmp21_); _g_object_unref0 (item); item = _tmp22_; _tmp23_ = (GtkMenu*) gtk_menu_new (); g_object_ref_sink (_tmp23_); submenu = _tmp23_; _tmp24_ = prop; _tmp25_ = ibus_property_get_sub_props (_tmp24_); _tmp26_ = submenu; if (property_manager_create_menu_items_internal (self, _tmp25_, _tmp26_) > 0) { PropImageMenuItem* _tmp27_; GtkMenu* _tmp28_; _tmp27_ = menuitem; _tmp28_ = submenu; gtk_menu_item_set_submenu ((GtkMenuItem*) _tmp27_, _tmp28_); } _g_object_unref0 (submenu); _g_object_unref0 (menuitem); } break; } case PROP_TYPE_SEPARATOR: { IBusProperty* _tmp29_; PropSeparatorMenuItem* _tmp30_; _tmp29_ = prop; _tmp30_ = prop_separator_menu_item_new (_tmp29_); g_object_ref_sink (_tmp30_); _g_object_unref0 (item); item = (IPropItem*) _tmp30_; break; } default: { IBusProperty* _tmp31_; _tmp31_ = prop; g_warning ("property.vala:76: unknown property type %d", (gint) ibus_property_get_prop_type (_tmp31_)); break; } } _tmp32_ = prop; if (ibus_property_get_prop_type (_tmp32_) != PROP_TYPE_RADIO) { _g_object_unref0 (last_radio); last_radio = NULL; } _tmp33_ = item; if (_tmp33_ != NULL) { IPropItem* _tmp34_; IPropItem* _tmp35_; _tmp34_ = item; gtk_menu_shell_append ((GtkMenuShell*) menu, G_TYPE_CHECK_INSTANCE_TYPE (_tmp34_, gtk_menu_item_get_type ()) ? ((GtkMenuItem*) _tmp34_) : NULL); _tmp35_ = item; g_signal_connect (_tmp35_, "property-activate", (GCallback) _____lambda24__iprop_item_property_activate, self); } _g_object_unref0 (item); _g_object_unref0 (prop); } result = i; _g_object_unref0 (last_radio); return result; } void property_manager_update_property (PropertyManager* self, IBusProperty* prop) { IBusPropList* _tmp0_; g_return_if_fail (self != NULL); g_return_if_fail (prop != NULL); _vala_assert (prop != NULL, "prop != null"); _tmp0_ = self->priv->m_props; if (_tmp0_ != NULL) { IBusPropList* _tmp1_; _tmp1_ = self->priv->m_props; ibus_prop_list_update_property (_tmp1_, prop); } } PropertyManager* property_manager_construct (GType object_type) { PropertyManager* self = NULL; self = (PropertyManager*) g_type_create_instance (object_type); return self; } PropertyManager* property_manager_new (void) { return property_manager_construct (TYPE_PROPERTY_MANAGER); } static void g_cclosure_user_marshal_VOID__STRING_INT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) { typedef void (*GMarshalFunc_VOID__STRING_INT) (gpointer data1, const char* arg_1, gint arg_2, gpointer data2); register GMarshalFunc_VOID__STRING_INT callback; register GCClosure * cc; register gpointer data1; register gpointer data2; cc = (GCClosure *) closure; g_return_if_fail (n_param_values == 3); if (G_CCLOSURE_SWAP_DATA (closure)) { data1 = closure->data; data2 = param_values->data[0].v_pointer; } else { data1 = param_values->data[0].v_pointer; data2 = closure->data; } callback = (GMarshalFunc_VOID__STRING_INT) (marshal_data ? marshal_data : cc->callback); callback (data1, g_value_get_string (param_values + 1), g_value_get_int (param_values + 2), data2); } static void value_property_manager_init (GValue* value) { value->data[0].v_pointer = NULL; } static void value_property_manager_free_value (GValue* value) { if (value->data[0].v_pointer) { property_manager_unref (value->data[0].v_pointer); } } static void value_property_manager_copy_value (const GValue* src_value, GValue* dest_value) { if (src_value->data[0].v_pointer) { dest_value->data[0].v_pointer = property_manager_ref (src_value->data[0].v_pointer); } else { dest_value->data[0].v_pointer = NULL; } } static gpointer value_property_manager_peek_pointer (const GValue* value) { return value->data[0].v_pointer; } static gchar* value_property_manager_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) { if (collect_values[0].v_pointer) { PropertyManager * object; object = collect_values[0].v_pointer; if (object->parent_instance.g_class == NULL) { return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL); } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) { return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL); } value->data[0].v_pointer = property_manager_ref (object); } else { value->data[0].v_pointer = NULL; } return NULL; } static gchar* value_property_manager_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) { PropertyManager ** object_p; object_p = collect_values[0].v_pointer; if (!object_p) { return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value)); } if (!value->data[0].v_pointer) { *object_p = NULL; } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) { *object_p = value->data[0].v_pointer; } else { *object_p = property_manager_ref (value->data[0].v_pointer); } return NULL; } GParamSpec* param_spec_property_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) { ParamSpecPropertyManager* spec; g_return_val_if_fail (g_type_is_a (object_type, TYPE_PROPERTY_MANAGER), NULL); spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags); G_PARAM_SPEC (spec)->value_type = object_type; return G_PARAM_SPEC (spec); } gpointer value_get_property_manager (const GValue* value) { g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PROPERTY_MANAGER), NULL); return value->data[0].v_pointer; } void value_set_property_manager (GValue* value, gpointer v_object) { PropertyManager * old; g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PROPERTY_MANAGER)); old = value->data[0].v_pointer; if (v_object) { g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_PROPERTY_MANAGER)); g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); value->data[0].v_pointer = v_object; property_manager_ref (value->data[0].v_pointer); } else { value->data[0].v_pointer = NULL; } if (old) { property_manager_unref (old); } } void value_take_property_manager (GValue* value, gpointer v_object) { PropertyManager * old; g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PROPERTY_MANAGER)); old = value->data[0].v_pointer; if (v_object) { g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_PROPERTY_MANAGER)); g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); value->data[0].v_pointer = v_object; } else { value->data[0].v_pointer = NULL; } if (old) { property_manager_unref (old); } } static void property_manager_class_init (PropertyManagerClass * klass) { property_manager_parent_class = g_type_class_peek_parent (klass); ((PropertyManagerClass *) klass)->finalize = property_manager_finalize; g_type_class_add_private (klass, sizeof (PropertyManagerPrivate)); property_manager_signals[PROPERTY_MANAGER_PROPERTY_ACTIVATE_SIGNAL] = g_signal_new ("property-activate", TYPE_PROPERTY_MANAGER, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__STRING_INT, G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_INT); } static void property_manager_instance_init (PropertyManager * self) { self->priv = PROPERTY_MANAGER_GET_PRIVATE (self); self->ref_count = 1; } static void property_manager_finalize (PropertyManager * obj) { PropertyManager * self; self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PROPERTY_MANAGER, PropertyManager); g_signal_handlers_destroy (self); _g_object_unref0 (self->priv->m_props); } GType property_manager_get_type (void) { static volatile gsize property_manager_type_id__volatile = 0; if (g_once_init_enter (&property_manager_type_id__volatile)) { static const GTypeValueTable g_define_type_value_table = { value_property_manager_init, value_property_manager_free_value, value_property_manager_copy_value, value_property_manager_peek_pointer, "p", value_property_manager_collect_value, "p", value_property_manager_lcopy_value }; static const GTypeInfo g_define_type_info = { sizeof (PropertyManagerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) property_manager_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PropertyManager), 0, (GInstanceInitFunc) property_manager_instance_init, &g_define_type_value_table }; static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; GType property_manager_type_id; property_manager_type_id = g_type_register_fundamental (g_type_fundamental_next (), "PropertyManager", &g_define_type_info, &g_define_type_fundamental_info, 0); g_once_init_leave (&property_manager_type_id__volatile, property_manager_type_id); } return property_manager_type_id__volatile; } gpointer property_manager_ref (gpointer instance) { PropertyManager * self; self = instance; g_atomic_int_inc (&self->ref_count); return instance; } void property_manager_unref (gpointer instance) { PropertyManager * self; self = instance; if (g_atomic_int_dec_and_test (&self->ref_count)) { PROPERTY_MANAGER_GET_CLASS (self)->finalize (self); g_type_free_instance ((GTypeInstance *) self); } } void iprop_item_update_property (IPropItem* self, IBusProperty* prop) { g_return_if_fail (self != NULL); IPROP_ITEM_GET_INTERFACE (self)->update_property (self, prop); } static void iprop_item_default_init (IPropItemIface * iface) { iprop_item_signals[IPROP_ITEM_PROPERTY_ACTIVATE_SIGNAL] = g_signal_new ("property-activate", TYPE_IPROP_ITEM, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__STRING_INT, G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_INT); } GType iprop_item_get_type (void) { static volatile gsize iprop_item_type_id__volatile = 0; if (g_once_init_enter (&iprop_item_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (IPropItemIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) iprop_item_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; GType iprop_item_type_id; iprop_item_type_id = g_type_register_static (G_TYPE_INTERFACE, "IPropItem", &g_define_type_info, 0); g_type_interface_add_prerequisite (iprop_item_type_id, G_TYPE_OBJECT); g_once_init_leave (&iprop_item_type_id__volatile, iprop_item_type_id); } return iprop_item_type_id__volatile; } PropImageMenuItem* prop_image_menu_item_construct (GType object_type, IBusProperty* property) { PropImageMenuItem * self = NULL; IBusProperty* _tmp0_; g_return_val_if_fail (property != NULL, NULL); self = (PropImageMenuItem*) g_object_new (object_type, NULL); _vala_assert (property != NULL, "property != null"); _tmp0_ = _g_object_ref0 (property); _g_object_unref0 (self->priv->m_property); self->priv->m_property = _tmp0_; gtk_widget_set_no_show_all ((GtkWidget*) self, TRUE); prop_image_menu_item_sync (self); return self; } PropImageMenuItem* prop_image_menu_item_new (IBusProperty* property) { return prop_image_menu_item_construct (TYPE_PROP_IMAGE_MENU_ITEM, property); } static void prop_image_menu_item_real_update_property (IPropItem* base, IBusProperty* property) { PropImageMenuItem * self; IBusProperty* _tmp0_; const gchar* _tmp1_; const gchar* _tmp2_; IBusProperty* _tmp3_; IBusText* _tmp4_; IBusProperty* _tmp5_; IBusProperty* _tmp6_; IBusProperty* _tmp7_; IBusText* _tmp8_; IBusProperty* _tmp9_; self = (PropImageMenuItem*) base; g_return_if_fail (property != NULL); _tmp0_ = self->priv->m_property; _tmp1_ = ibus_property_get_key (_tmp0_); _tmp2_ = ibus_property_get_key (property); if (g_strcmp0 (_tmp1_, _tmp2_) != 0) { return; } _tmp3_ = self->priv->m_property; _tmp4_ = ibus_property_get_label (property); ibus_property_set_label (_tmp3_, _tmp4_); _tmp5_ = self->priv->m_property; ibus_property_set_visible (_tmp5_, ibus_property_get_visible (property)); _tmp6_ = self->priv->m_property; ibus_property_set_sensitive (_tmp6_, ibus_property_get_sensitive (property)); _tmp7_ = self->priv->m_property; _tmp8_ = ibus_property_get_tooltip (property); ibus_property_set_tooltip (_tmp7_, _tmp8_); _tmp9_ = self->priv->m_property; ibus_property_set_state (_tmp9_, ibus_property_get_state (property)); prop_image_menu_item_sync (self); } static void prop_image_menu_item_sync (PropImageMenuItem* self) { IBusProperty* _tmp0_; IBusText* _tmp1_; const gchar* _tmp2_; IBusProperty* _tmp3_; IBusProperty* _tmp4_; g_return_if_fail (self != NULL); _tmp0_ = self->priv->m_property; _tmp1_ = ibus_property_get_label (_tmp0_); _tmp2_ = ibus_text_get_text (_tmp1_); gtk_menu_item_set_label ((GtkMenuItem*) self, _tmp2_); _tmp3_ = self->priv->m_property; gtk_widget_set_visible ((GtkWidget*) self, ibus_property_get_visible (_tmp3_)); _tmp4_ = self->priv->m_property; gtk_widget_set_sensitive ((GtkWidget*) self, ibus_property_get_sensitive (_tmp4_)); } static void prop_image_menu_item_real_activate (GtkMenuItem* base) { PropImageMenuItem * self; IBusProperty* _tmp0_; const gchar* _tmp1_; IBusProperty* _tmp2_; self = (PropImageMenuItem*) base; _tmp0_ = self->priv->m_property; _tmp1_ = ibus_property_get_key (_tmp0_); _tmp2_ = self->priv->m_property; g_signal_emit ((IPropItem*) self, iprop_item_signals[IPROP_ITEM_PROPERTY_ACTIVATE_SIGNAL], 0, _tmp1_, (gint) ibus_property_get_state (_tmp2_)); } static void prop_image_menu_item_class_init (PropImageMenuItemClass * klass) { prop_image_menu_item_parent_class = g_type_class_peek_parent (klass); g_type_class_add_private (klass, sizeof (PropImageMenuItemPrivate)); ((GtkMenuItemClass *) klass)->activate = (void (*) (GtkMenuItem *)) prop_image_menu_item_real_activate; G_OBJECT_CLASS (klass)->finalize = prop_image_menu_item_finalize; } static void prop_image_menu_item_iprop_item_interface_init (IPropItemIface * iface) { prop_image_menu_item_iprop_item_parent_iface = g_type_interface_peek_parent (iface); iface->update_property = (void (*) (IPropItem *, IBusProperty*)) prop_image_menu_item_real_update_property; } static void prop_image_menu_item_instance_init (PropImageMenuItem * self) { self->priv = PROP_IMAGE_MENU_ITEM_GET_PRIVATE (self); } static void prop_image_menu_item_finalize (GObject * obj) { PropImageMenuItem * self; self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PROP_IMAGE_MENU_ITEM, PropImageMenuItem); _g_object_unref0 (self->priv->m_property); G_OBJECT_CLASS (prop_image_menu_item_parent_class)->finalize (obj); } GType prop_image_menu_item_get_type (void) { static volatile gsize prop_image_menu_item_type_id__volatile = 0; if (g_once_init_enter (&prop_image_menu_item_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (PropImageMenuItemClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) prop_image_menu_item_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PropImageMenuItem), 0, (GInstanceInitFunc) prop_image_menu_item_instance_init, NULL }; static const GInterfaceInfo iprop_item_info = { (GInterfaceInitFunc) prop_image_menu_item_iprop_item_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType prop_image_menu_item_type_id; prop_image_menu_item_type_id = g_type_register_static (gtk_menu_item_get_type (), "PropImageMenuItem", &g_define_type_info, 0); g_type_add_interface_static (prop_image_menu_item_type_id, TYPE_IPROP_ITEM, &iprop_item_info); g_once_init_leave (&prop_image_menu_item_type_id__volatile, prop_image_menu_item_type_id); } return prop_image_menu_item_type_id__volatile; } PropCheckMenuItem* prop_check_menu_item_construct (GType object_type, IBusProperty* property) { PropCheckMenuItem * self = NULL; IBusProperty* _tmp0_; g_return_val_if_fail (property != NULL, NULL); self = (PropCheckMenuItem*) g_object_new (object_type, NULL); _vala_assert (property != NULL, "property != null"); _tmp0_ = _g_object_ref0 (property); _g_object_unref0 (self->priv->m_property); self->priv->m_property = _tmp0_; gtk_widget_set_no_show_all ((GtkWidget*) self, TRUE); prop_check_menu_item_sync (self); return self; } PropCheckMenuItem* prop_check_menu_item_new (IBusProperty* property) { return prop_check_menu_item_construct (TYPE_PROP_CHECK_MENU_ITEM, property); } static void prop_check_menu_item_real_update_property (IPropItem* base, IBusProperty* property) { PropCheckMenuItem * self; IBusProperty* _tmp0_; const gchar* _tmp1_; const gchar* _tmp2_; IBusProperty* _tmp3_; IBusText* _tmp4_; IBusProperty* _tmp5_; const gchar* _tmp6_; IBusProperty* _tmp7_; IBusProperty* _tmp8_; IBusProperty* _tmp9_; IBusText* _tmp10_; IBusProperty* _tmp11_; self = (PropCheckMenuItem*) base; g_return_if_fail (property != NULL); _tmp0_ = self->priv->m_property; _tmp1_ = ibus_property_get_key (_tmp0_); _tmp2_ = ibus_property_get_key (property); if (g_strcmp0 (_tmp1_, _tmp2_) != 0) { return; } _tmp3_ = self->priv->m_property; _tmp4_ = ibus_property_get_label (property); ibus_property_set_label (_tmp3_, _tmp4_); _tmp5_ = self->priv->m_property; _tmp6_ = ibus_property_get_icon (property); ibus_property_set_icon (_tmp5_, _tmp6_); _tmp7_ = self->priv->m_property; ibus_property_set_visible (_tmp7_, ibus_property_get_visible (property)); _tmp8_ = self->priv->m_property; ibus_property_set_sensitive (_tmp8_, ibus_property_get_sensitive (property)); _tmp9_ = self->priv->m_property; _tmp10_ = ibus_property_get_tooltip (property); ibus_property_set_tooltip (_tmp9_, _tmp10_); _tmp11_ = self->priv->m_property; ibus_property_set_state (_tmp11_, ibus_property_get_state (property)); prop_check_menu_item_sync (self); } static void prop_check_menu_item_sync (PropCheckMenuItem* self) { IBusProperty* _tmp0_; IBusText* _tmp1_; const gchar* _tmp2_; IBusProperty* _tmp3_; IBusProperty* _tmp4_; IBusProperty* _tmp5_; g_return_if_fail (self != NULL); _tmp0_ = self->priv->m_property; _tmp1_ = ibus_property_get_label (_tmp0_); _tmp2_ = ibus_text_get_text (_tmp1_); gtk_menu_item_set_label ((GtkMenuItem*) self, _tmp2_); _tmp3_ = self->priv->m_property; gtk_widget_set_visible ((GtkWidget*) self, ibus_property_get_visible (_tmp3_)); _tmp4_ = self->priv->m_property; gtk_widget_set_sensitive ((GtkWidget*) self, ibus_property_get_sensitive (_tmp4_)); _tmp5_ = self->priv->m_property; gtk_check_menu_item_set_active ((GtkCheckMenuItem*) self, ibus_property_get_state (_tmp5_) == PROP_STATE_CHECKED); } static void prop_check_menu_item_real_toggled (GtkCheckMenuItem* base) { PropCheckMenuItem * self; IBusPropState _tmp0_ = 0; IBusPropState new_state = 0; IBusProperty* _tmp1_; IBusPropState _tmp2_; self = (PropCheckMenuItem*) base; if (gtk_check_menu_item_get_active ((GtkCheckMenuItem*) self)) { _tmp0_ = PROP_STATE_CHECKED; } else { _tmp0_ = PROP_STATE_UNCHECKED; } new_state = _tmp0_; _tmp1_ = self->priv->m_property; _tmp2_ = new_state; if (ibus_property_get_state (_tmp1_) != _tmp2_) { IBusProperty* _tmp3_; IBusPropState _tmp4_; IBusProperty* _tmp5_; const gchar* _tmp6_; IBusProperty* _tmp7_; _tmp3_ = self->priv->m_property; _tmp4_ = new_state; ibus_property_set_state (_tmp3_, _tmp4_); _tmp5_ = self->priv->m_property; _tmp6_ = ibus_property_get_key (_tmp5_); _tmp7_ = self->priv->m_property; g_signal_emit ((IPropItem*) self, iprop_item_signals[IPROP_ITEM_PROPERTY_ACTIVATE_SIGNAL], 0, _tmp6_, (gint) ibus_property_get_state (_tmp7_)); } } static void prop_check_menu_item_class_init (PropCheckMenuItemClass * klass) { prop_check_menu_item_parent_class = g_type_class_peek_parent (klass); g_type_class_add_private (klass, sizeof (PropCheckMenuItemPrivate)); ((GtkCheckMenuItemClass *) klass)->toggled = (void (*) (GtkCheckMenuItem *)) prop_check_menu_item_real_toggled; G_OBJECT_CLASS (klass)->finalize = prop_check_menu_item_finalize; } static void prop_check_menu_item_iprop_item_interface_init (IPropItemIface * iface) { prop_check_menu_item_iprop_item_parent_iface = g_type_interface_peek_parent (iface); iface->update_property = (void (*) (IPropItem *, IBusProperty*)) prop_check_menu_item_real_update_property; } static void prop_check_menu_item_instance_init (PropCheckMenuItem * self) { self->priv = PROP_CHECK_MENU_ITEM_GET_PRIVATE (self); } static void prop_check_menu_item_finalize (GObject * obj) { PropCheckMenuItem * self; self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PROP_CHECK_MENU_ITEM, PropCheckMenuItem); _g_object_unref0 (self->priv->m_property); G_OBJECT_CLASS (prop_check_menu_item_parent_class)->finalize (obj); } GType prop_check_menu_item_get_type (void) { static volatile gsize prop_check_menu_item_type_id__volatile = 0; if (g_once_init_enter (&prop_check_menu_item_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (PropCheckMenuItemClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) prop_check_menu_item_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PropCheckMenuItem), 0, (GInstanceInitFunc) prop_check_menu_item_instance_init, NULL }; static const GInterfaceInfo iprop_item_info = { (GInterfaceInitFunc) prop_check_menu_item_iprop_item_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType prop_check_menu_item_type_id; prop_check_menu_item_type_id = g_type_register_static (gtk_check_menu_item_get_type (), "PropCheckMenuItem", &g_define_type_info, 0); g_type_add_interface_static (prop_check_menu_item_type_id, TYPE_IPROP_ITEM, &iprop_item_info); g_once_init_leave (&prop_check_menu_item_type_id__volatile, prop_check_menu_item_type_id); } return prop_check_menu_item_type_id__volatile; } PropRadioMenuItem* prop_radio_menu_item_construct (GType object_type, IBusProperty* property, PropRadioMenuItem* group_source) { PropRadioMenuItem * self = NULL; IBusProperty* _tmp0_; g_return_val_if_fail (property != NULL, NULL); self = (PropRadioMenuItem*) g_object_new (object_type, NULL); _vala_assert (property != NULL, "property != null"); _tmp0_ = _g_object_ref0 (property); _g_object_unref0 (self->priv->m_property); self->priv->m_property = _tmp0_; gtk_widget_set_no_show_all ((GtkWidget*) self, TRUE); if (group_source != NULL) { GSList* _tmp1_; _tmp1_ = gtk_radio_menu_item_get_group ((GtkRadioMenuItem*) group_source); gtk_radio_menu_item_set_group ((GtkRadioMenuItem*) self, _tmp1_); } prop_radio_menu_item_sync (self); return self; } PropRadioMenuItem* prop_radio_menu_item_new (IBusProperty* property, PropRadioMenuItem* group_source) { return prop_radio_menu_item_construct (TYPE_PROP_RADIO_MENU_ITEM, property, group_source); } static void prop_radio_menu_item_real_update_property (IPropItem* base, IBusProperty* property) { PropRadioMenuItem * self; IBusProperty* _tmp0_; const gchar* _tmp1_; const gchar* _tmp2_; IBusProperty* _tmp3_; IBusText* _tmp4_; IBusProperty* _tmp5_; const gchar* _tmp6_; IBusProperty* _tmp7_; IBusProperty* _tmp8_; IBusProperty* _tmp9_; IBusText* _tmp10_; IBusProperty* _tmp11_; self = (PropRadioMenuItem*) base; g_return_if_fail (property != NULL); _tmp0_ = self->priv->m_property; _tmp1_ = ibus_property_get_key (_tmp0_); _tmp2_ = ibus_property_get_key (property); if (g_strcmp0 (_tmp1_, _tmp2_) != 0) { return; } _tmp3_ = self->priv->m_property; _tmp4_ = ibus_property_get_label (property); ibus_property_set_label (_tmp3_, _tmp4_); _tmp5_ = self->priv->m_property; _tmp6_ = ibus_property_get_icon (property); ibus_property_set_icon (_tmp5_, _tmp6_); _tmp7_ = self->priv->m_property; ibus_property_set_visible (_tmp7_, ibus_property_get_visible (property)); _tmp8_ = self->priv->m_property; ibus_property_set_sensitive (_tmp8_, ibus_property_get_sensitive (property)); _tmp9_ = self->priv->m_property; _tmp10_ = ibus_property_get_tooltip (property); ibus_property_set_tooltip (_tmp9_, _tmp10_); _tmp11_ = self->priv->m_property; ibus_property_set_state (_tmp11_, ibus_property_get_state (property)); prop_radio_menu_item_sync (self); } static void prop_radio_menu_item_sync (PropRadioMenuItem* self) { IBusProperty* _tmp0_; IBusText* _tmp1_; const gchar* _tmp2_; IBusProperty* _tmp3_; IBusProperty* _tmp4_; IBusProperty* _tmp5_; g_return_if_fail (self != NULL); _tmp0_ = self->priv->m_property; _tmp1_ = ibus_property_get_label (_tmp0_); _tmp2_ = ibus_text_get_text (_tmp1_); gtk_menu_item_set_label ((GtkMenuItem*) self, _tmp2_); _tmp3_ = self->priv->m_property; gtk_widget_set_visible ((GtkWidget*) self, ibus_property_get_visible (_tmp3_)); _tmp4_ = self->priv->m_property; gtk_widget_set_sensitive ((GtkWidget*) self, ibus_property_get_sensitive (_tmp4_)); _tmp5_ = self->priv->m_property; gtk_check_menu_item_set_active ((GtkCheckMenuItem*) self, ibus_property_get_state (_tmp5_) == PROP_STATE_CHECKED); } static void prop_radio_menu_item_real_toggled (GtkCheckMenuItem* base) { PropRadioMenuItem * self; IBusPropState _tmp0_ = 0; IBusPropState new_state = 0; IBusProperty* _tmp1_; IBusPropState _tmp2_; self = (PropRadioMenuItem*) base; if (gtk_check_menu_item_get_active ((GtkCheckMenuItem*) self)) { _tmp0_ = PROP_STATE_CHECKED; } else { _tmp0_ = PROP_STATE_UNCHECKED; } new_state = _tmp0_; _tmp1_ = self->priv->m_property; _tmp2_ = new_state; if (ibus_property_get_state (_tmp1_) != _tmp2_) { IBusProperty* _tmp3_; IBusPropState _tmp4_; IBusProperty* _tmp5_; const gchar* _tmp6_; IBusProperty* _tmp7_; _tmp3_ = self->priv->m_property; _tmp4_ = new_state; ibus_property_set_state (_tmp3_, _tmp4_); _tmp5_ = self->priv->m_property; _tmp6_ = ibus_property_get_key (_tmp5_); _tmp7_ = self->priv->m_property; g_signal_emit ((IPropItem*) self, iprop_item_signals[IPROP_ITEM_PROPERTY_ACTIVATE_SIGNAL], 0, _tmp6_, (gint) ibus_property_get_state (_tmp7_)); } } static void prop_radio_menu_item_class_init (PropRadioMenuItemClass * klass) { prop_radio_menu_item_parent_class = g_type_class_peek_parent (klass); g_type_class_add_private (klass, sizeof (PropRadioMenuItemPrivate)); ((GtkCheckMenuItemClass *) klass)->toggled = (void (*) (GtkCheckMenuItem *)) prop_radio_menu_item_real_toggled; G_OBJECT_CLASS (klass)->finalize = prop_radio_menu_item_finalize; } static void prop_radio_menu_item_iprop_item_interface_init (IPropItemIface * iface) { prop_radio_menu_item_iprop_item_parent_iface = g_type_interface_peek_parent (iface); iface->update_property = (void (*) (IPropItem *, IBusProperty*)) prop_radio_menu_item_real_update_property; } static void prop_radio_menu_item_instance_init (PropRadioMenuItem * self) { self->priv = PROP_RADIO_MENU_ITEM_GET_PRIVATE (self); } static void prop_radio_menu_item_finalize (GObject * obj) { PropRadioMenuItem * self; self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PROP_RADIO_MENU_ITEM, PropRadioMenuItem); _g_object_unref0 (self->priv->m_property); G_OBJECT_CLASS (prop_radio_menu_item_parent_class)->finalize (obj); } GType prop_radio_menu_item_get_type (void) { static volatile gsize prop_radio_menu_item_type_id__volatile = 0; if (g_once_init_enter (&prop_radio_menu_item_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (PropRadioMenuItemClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) prop_radio_menu_item_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PropRadioMenuItem), 0, (GInstanceInitFunc) prop_radio_menu_item_instance_init, NULL }; static const GInterfaceInfo iprop_item_info = { (GInterfaceInitFunc) prop_radio_menu_item_iprop_item_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType prop_radio_menu_item_type_id; prop_radio_menu_item_type_id = g_type_register_static (gtk_radio_menu_item_get_type (), "PropRadioMenuItem", &g_define_type_info, 0); g_type_add_interface_static (prop_radio_menu_item_type_id, TYPE_IPROP_ITEM, &iprop_item_info); g_once_init_leave (&prop_radio_menu_item_type_id__volatile, prop_radio_menu_item_type_id); } return prop_radio_menu_item_type_id__volatile; } PropSeparatorMenuItem* prop_separator_menu_item_construct (GType object_type, IBusProperty* property) { PropSeparatorMenuItem * self = NULL; IBusProperty* _tmp0_; g_return_val_if_fail (property != NULL, NULL); self = (PropSeparatorMenuItem*) g_object_new (object_type, NULL); _vala_assert (property != NULL, "property != null"); _tmp0_ = _g_object_ref0 (property); _g_object_unref0 (self->priv->m_property); self->priv->m_property = _tmp0_; return self; } PropSeparatorMenuItem* prop_separator_menu_item_new (IBusProperty* property) { return prop_separator_menu_item_construct (TYPE_PROP_SEPARATOR_MENU_ITEM, property); } static void prop_separator_menu_item_real_update_property (IPropItem* base, IBusProperty* property) { PropSeparatorMenuItem * self; self = (PropSeparatorMenuItem*) base; g_return_if_fail (property != NULL); } static void prop_separator_menu_item_class_init (PropSeparatorMenuItemClass * klass) { prop_separator_menu_item_parent_class = g_type_class_peek_parent (klass); g_type_class_add_private (klass, sizeof (PropSeparatorMenuItemPrivate)); G_OBJECT_CLASS (klass)->finalize = prop_separator_menu_item_finalize; } static void prop_separator_menu_item_iprop_item_interface_init (IPropItemIface * iface) { prop_separator_menu_item_iprop_item_parent_iface = g_type_interface_peek_parent (iface); iface->update_property = (void (*) (IPropItem *, IBusProperty*)) prop_separator_menu_item_real_update_property; } static void prop_separator_menu_item_instance_init (PropSeparatorMenuItem * self) { self->priv = PROP_SEPARATOR_MENU_ITEM_GET_PRIVATE (self); } static void prop_separator_menu_item_finalize (GObject * obj) { PropSeparatorMenuItem * self; self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PROP_SEPARATOR_MENU_ITEM, PropSeparatorMenuItem); _g_object_unref0 (self->priv->m_property); G_OBJECT_CLASS (prop_separator_menu_item_parent_class)->finalize (obj); } GType prop_separator_menu_item_get_type (void) { static volatile gsize prop_separator_menu_item_type_id__volatile = 0; if (g_once_init_enter (&prop_separator_menu_item_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (PropSeparatorMenuItemClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) prop_separator_menu_item_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PropSeparatorMenuItem), 0, (GInstanceInitFunc) prop_separator_menu_item_instance_init, NULL }; static const GInterfaceInfo iprop_item_info = { (GInterfaceInitFunc) prop_separator_menu_item_iprop_item_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType prop_separator_menu_item_type_id; prop_separator_menu_item_type_id = g_type_register_static (gtk_separator_menu_item_get_type (), "PropSeparatorMenuItem", &g_define_type_info, 0); g_type_add_interface_static (prop_separator_menu_item_type_id, TYPE_IPROP_ITEM, &iprop_item_info); g_once_init_leave (&prop_separator_menu_item_type_id__volatile, prop_separator_menu_item_type_id); } return prop_separator_menu_item_type_id__volatile; }