static void bus_dbus_impl_class_init (BusDBusImplClass *klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); IBusServiceClass *service_class = IBUS_SERVICE_CLASS (klass); parent_class = (IBusServiceClass *) g_type_class_peek_parent (klass); IBUS_OBJECT_CLASS (gobject_class)->destroy = (IBusObjectDestroyFunc) bus_dbus_impl_destroy; service_class->ibus_message = (ServiceIBusMessageFunc) bus_dbus_impl_ibus_message; klass->name_owner_changed = bus_dbus_impl_name_owner_changed; /* install signals */ dbus_signals[NAME_OWNER_CHANGED] = g_signal_new (I_("name-owner-changed"), G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (BusDBusImplClass, name_owner_changed), NULL, NULL, ibus_marshal_VOID__STRING_STRING_STRING, G_TYPE_NONE, 3, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING); }
static void ibus_config_service_class_init (IBusConfigServiceClass *klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); parent_class = (IBusServiceClass *) g_type_class_peek_parent (klass); gobject_class->set_property = (GObjectSetPropertyFunc) ibus_config_service_set_property; gobject_class->get_property = (GObjectGetPropertyFunc) ibus_config_service_get_property; IBUS_OBJECT_CLASS (gobject_class)->destroy = (IBusObjectDestroyFunc) ibus_config_service_destroy; IBUS_SERVICE_CLASS (klass)->ibus_message = (ServiceIBusMessageFunc) ibus_config_service_ibus_message; klass->set_value = ibus_config_service_set_value; klass->get_value = ibus_config_service_get_value; /* install properties */ /** * IBusConfigService:connection: * * Connection of this IBusConfigService. */ g_object_class_install_property (gobject_class, PROP_CONNECTION, g_param_spec_object ("connection", "connection", "The connection of config object", IBUS_TYPE_CONNECTION, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); }
static void ibus_unikey_engine_destroy(IBusUnikeyEngine* unikey) { delete unikey->preeditstr; g_object_unref(unikey->prop_list); IBUS_OBJECT_CLASS(parent_class)->destroy((IBusObject*)unikey); }
static void ibus_property_destroy (IBusProperty *prop) { g_free (prop->key); prop->key = NULL; g_free (prop->icon); prop->icon = NULL; if (prop->label) { g_object_unref (prop->label); prop->label = NULL; } if (prop->tooltip) { g_object_unref (prop->tooltip); prop->tooltip = NULL; } if (prop->sub_props) { g_object_unref (prop->sub_props); prop->sub_props = NULL; } IBUS_OBJECT_CLASS (ibus_property_parent_class)->destroy ((IBusObject *)prop); }
static void ibus_keymap_class_init (IBusKeymapClass *klass) { IBusObjectClass *object_class = IBUS_OBJECT_CLASS (klass); object_class->destroy = (IBusObjectDestroyFunc) ibus_keymap_destroy; }
static void bus_engine_proxy_real_destroy (BusEngineProxy *engine) { if (engine->prop_list) { g_object_unref (engine->prop_list); engine->prop_list = NULL; } if (ibus_proxy_get_connection ((IBusProxy *) engine)) { ibus_proxy_call ((IBusProxy *) engine, "Destroy", G_TYPE_INVALID); } if (engine->desc) { g_object_unref (engine->desc); engine->desc = NULL; } if (engine->keymap) { g_object_unref (engine->keymap); engine->keymap = NULL; } IBUS_OBJECT_CLASS(parent_class)->destroy (IBUS_OBJECT (engine)); }
static void ibus_connection_destroy (IBusConnection *connection) { IBusConnectionPrivate *priv; priv = IBUS_CONNECTION_GET_PRIVATE (connection); if (priv->connection) { dbus_connection_remove_filter (priv->connection, (DBusHandleMessageFunction) _connection_handle_message_cb, connection); } do { if (!priv->shared && priv->connection) { dbus_connection_close (priv->connection); dbus_connection_unref (priv->connection); priv->connection = NULL; break; } if (priv->shared && priv->connection) { g_warn_if_fail (_connections != NULL); if (_connections != NULL) { g_hash_table_remove (_connections, priv->connection); } dbus_connection_unref (priv->connection); priv->connection = NULL; break; } } while (0); IBUS_OBJECT_CLASS (ibus_connection_parent_class)->destroy (IBUS_OBJECT (connection)); }
static void ibus_m17n_engine_destroy (IBusM17NEngine *m17n) { if (m17n->prop_list) { g_object_unref (m17n->prop_list); m17n->prop_list = NULL; } if (m17n->status_prop) { g_object_unref (m17n->status_prop); m17n->status_prop = NULL; } #if HAVE_SETUP if (m17n->setup_prop) { g_object_unref (m17n->setup_prop); m17n->setup_prop = NULL; } #endif /* HAVE_SETUP */ if (m17n->table) { g_object_unref (m17n->table); m17n->table = NULL; } if (m17n->context) { minput_destroy_ic (m17n->context); m17n->context = NULL; } IBUS_OBJECT_CLASS (parent_class)->destroy ((IBusObject *)m17n); }
static void ibus_factory_class_init (IBusFactoryClass *klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); IBusObjectClass *ibus_object_class = IBUS_OBJECT_CLASS (klass); g_type_class_add_private (klass, sizeof (IBusFactoryPrivate)); gobject_class->set_property = (GObjectSetPropertyFunc) ibus_factory_set_property; gobject_class->get_property = (GObjectGetPropertyFunc) ibus_factory_get_property; ibus_object_class->destroy = (IBusObjectDestroyFunc) ibus_factory_destroy; IBUS_SERVICE_CLASS (klass)->ibus_message = (ServiceIBusMessageFunc) ibus_factory_ibus_message; /** * IBusFactory:connection: * * Connection of this IBusFactory. **/ g_object_class_install_property (gobject_class, PROP_CONNECTION, g_param_spec_object ("connection", "connection", "The connection of factory object", IBUS_TYPE_CONNECTION, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); }
static void ibus_handwrite_engine_class_init(IBusHandwriteEngineClass *klass) { //init global class data IBusObjectClass *ibus_object_class = IBUS_OBJECT_CLASS (klass); IBusEngineClass *engine_class = IBUS_ENGINE_CLASS (klass); // parent_class = (IBusEngineClass *) g_type_class_peek_parent(klass); ibus_object_class->destroy = (IBusObjectDestroyFunc) ibus_handwrite_engine_destroy; engine_class->process_key_event = ibus_handwrite_engine_process_key_event; engine_class->disable = (ibus_engine_callback) ibus_handwrite_engine_disable; engine_class->enable = (ibus_engine_callback) ibus_handwrite_engine_enable; engine_class->focus_in = (ibus_engine_callback) ibus_handwrite_engine_focus_in; engine_class->focus_out = (ibus_engine_callback) ibus_handwrite_engine_focus_out; engine_class->reset = (ibus_engine_callback) ibus_handwrite_engine_reset; engine_class->property_activate = ibus_handwrite_property_activate; klass->commit_text = ibus_handwrite_engine_commit_text; }
// initialize the meta class object void ibus_sunpinyin_engine_class_init (IBusSunPinyinEngineClass *klass) { IBusObjectClass *ibus_object_class = IBUS_OBJECT_CLASS (klass); IBusEngineClass *engine_class = IBUS_ENGINE_CLASS (klass); parent_class = (IBusEngineClass *) g_type_class_peek_parent (klass); ibus_object_class->destroy = (IBusObjectDestroyFunc) ibus_sunpinyin_engine_destroy; engine_class->process_key_event = ibus_sunpinyin_engine_process_key_event; engine_class->focus_in = ibus_sunpinyin_engine_focus_in; engine_class->focus_out = ibus_sunpinyin_engine_focus_out; engine_class->reset = ibus_sunpinyin_engine_reset; engine_class->enable = ibus_sunpinyin_engine_enable; engine_class->disable = ibus_sunpinyin_engine_disable; engine_class->focus_in = ibus_sunpinyin_engine_focus_in; engine_class->focus_out = ibus_sunpinyin_engine_focus_out; engine_class->page_up = ibus_sunpinyin_engine_page_up; engine_class->page_down = ibus_sunpinyin_engine_page_down; engine_class->cursor_up = ibus_sunpinyin_engine_cursor_up; engine_class->cursor_down = ibus_sunpinyin_engine_cursor_down; engine_class->property_activate = ibus_sunpinyin_engine_property_activate; engine_class->candidate_clicked = ibus_sunpinyin_engine_candidate_clicked; }
static void ibus_lanxang_engine_destroy (IBusLanXangEngine *lanxang_engine) { g_object_unref (lanxang_engine->lx_iengine); IBUS_OBJECT_CLASS (ibus_lanxang_engine_parent_class)->destroy ( IBUS_OBJECT (lanxang_engine)); }
static void bus_registry_destroy (BusRegistry *registry) { #ifdef G_THREADS_ENABLED if (registry->thread) { g_mutex_lock (registry->mutex); registry->thread_running = FALSE; g_mutex_unlock (registry->mutex); g_cond_signal (registry->cond); g_thread_join (registry->thread); registry->thread = NULL; } #endif bus_registry_remove_all (registry); g_hash_table_destroy (registry->engine_table); registry->engine_table = NULL; #ifdef G_THREADS_ENABLED g_cond_free (registry->cond); registry->cond = NULL; g_mutex_free (registry->mutex); registry->mutex = NULL; #endif IBUS_OBJECT_CLASS (bus_registry_parent_class)->destroy (IBUS_OBJECT (registry)); }
static void ibus_hotkey_profile_destroy (IBusHotkeyProfile *profile) { IBusHotkeyProfilePrivate *priv; priv = IBUS_HOTKEY_PROFILE_GET_PRIVATE (profile); /* free events */ if (priv->events) { IBusHotkeyEvent *p; gint i; p = (IBusHotkeyEvent *)g_array_free (priv->events, FALSE); priv->events = NULL; for (i = 0; p[i].event != 0; i++) { g_list_free (p[i].hotkeys); } g_free (p); } if (priv->hotkeys) { g_tree_destroy (priv->hotkeys); priv->hotkeys = NULL; } IBUS_OBJECT_CLASS (parent_class)->destroy ((IBusObject *)profile); }
static void ibus_hangul_engine_destroy (IBusHangulEngine *hangul) { if (hangul->prop_hanja_mode) { g_object_unref (hangul->prop_hanja_mode); hangul->prop_hanja_mode = NULL; } if (hangul->prop_list) { g_object_unref (hangul->prop_list); hangul->prop_list = NULL; } if (hangul->table) { g_object_unref (hangul->table); hangul->table = NULL; } if (hangul->context) { hangul_ic_delete (hangul->context); hangul->context = NULL; } IBUS_OBJECT_CLASS (parent_class)->destroy ((IBusObject *)hangul); }
static void ibus_factory_destroy (IBusFactory *factory) { GList *list; IBusFactoryPrivate *priv; priv = IBUS_FACTORY_GET_PRIVATE (factory); list = g_list_copy (priv->engine_list); g_list_foreach (list, (GFunc) ibus_object_destroy, NULL); g_list_free (priv->engine_list); g_list_free (list); priv->engine_list = NULL; if (priv->engine_table) { g_hash_table_destroy (priv->engine_table); } if (priv->connection) { ibus_service_remove_from_connection ((IBusService *)factory, priv->connection); g_object_unref (priv->connection); } IBUS_OBJECT_CLASS(factory_parent_class)->destroy (IBUS_OBJECT (factory)); }
static void ibus_bus_destroy (IBusObject *object) { IBusBus *bus; IBusBusPrivate *priv; bus = IBUS_BUS (object); priv = IBUS_BUS_GET_PRIVATE (bus); if (priv->monitor) { g_object_unref (priv->monitor); priv->monitor = NULL; } if (priv->config) { ibus_object_destroy ((IBusObject *) priv->config); priv->config = NULL; } if (priv->connection) { ibus_object_destroy ((IBusObject *) priv->connection); priv->connection = NULL; } IBUS_OBJECT_CLASS (ibus_bus_parent_class)->destroy (object); }
static void ibus_config_class_init (IBusConfigClass *klass) { IBusObjectClass *ibus_object_class = IBUS_OBJECT_CLASS (klass); IBusProxyClass *proxy_class = IBUS_PROXY_CLASS (klass); parent_class = (IBusProxyClass *) g_type_class_peek_parent (klass); g_type_class_add_private (klass, sizeof (IBusConfigPrivate)); ibus_object_class->destroy = (IBusObjectDestroyFunc) ibus_config_real_destroy; proxy_class->ibus_signal = ibus_config_ibus_signal; /* install signals */ /** * IBusConfig:value-changed: * * Emitted when configuration value is changed. */ config_signals[VALUE_CHANGED] = g_signal_new (I_("value-changed"), G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, 0, NULL, NULL, ibus_marshal_VOID__STRING_STRING_BOXED, G_TYPE_NONE, 3, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_VALUE | G_SIGNAL_TYPE_STATIC_SCOPE); }
void ibus_sunpinyin_engine_destroy(IBusEngine *py_engine) { delete GET_PY_ENGINE(py_engine); GET_PY_ENGINE(py_engine) = NULL; IBUS_OBJECT_CLASS (parent_class)->destroy( IBUS_OBJECT(py_engine)); }
static void ibus_keymap_destroy (IBusKeymap *keymap) { if (keymap->name != NULL) { g_free (keymap->name); keymap->name = NULL; } IBUS_OBJECT_CLASS (ibus_keymap_parent_class)->destroy ((IBusObject *)keymap); }
static void bus_factory_proxy_class_init (BusFactoryProxyClass *klass) { IBusObjectClass *ibus_object_class = IBUS_OBJECT_CLASS (klass); parent_class = (IBusProxyClass *) g_type_class_peek_parent (klass); ibus_object_class->destroy = (IBusObjectDestroyFunc) bus_factory_proxy_destroy; }
static void ibus_config_gconf_destroy (IBusConfigGConf *config) { if (config->client) { g_object_unref (config->client); config->client = NULL; } IBUS_OBJECT_CLASS (parent_class)->destroy ((IBusObject *)config); }
static void bus_server_class_init (BusServerClass *klass) { IBusObjectClass *ibus_object_class = IBUS_OBJECT_CLASS (klass); ibus_object_class->destroy = (IBusObjectDestroyFunc) bus_server_destroy; IBUS_SERVER_CLASS (klass)->new_connection = (IBusNewConnectionFunc) bus_server_new_connection; }
static void ibus_service_class_init (IBusServiceClass *klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); IBusObjectClass *ibus_object_class = IBUS_OBJECT_CLASS (klass); parent_class = (IBusObjectClass *) g_type_class_peek_parent (klass); g_type_class_add_private (klass, sizeof (IBusServicePrivate)); gobject_class->set_property = (GObjectSetPropertyFunc) ibus_service_set_property; gobject_class->get_property = (GObjectGetPropertyFunc) ibus_service_get_property; ibus_object_class->destroy = (IBusObjectDestroyFunc) ibus_service_destroy; klass->ibus_message = ibus_service_ibus_message; klass->ibus_signal = ibus_service_ibus_signal; /* install properties */ g_object_class_install_property ( gobject_class, PROP_PATH, g_param_spec_string ( "path", "object path", "The path of service object", NULL, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY) ); /* Install signals */ service_signals[IBUS_MESSAGE] = g_signal_new (I_("ibus-message"), G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (IBusServiceClass, ibus_message), NULL, NULL, ibus_marshal_BOOLEAN__POINTER_POINTER, G_TYPE_BOOLEAN, 2, G_TYPE_POINTER, G_TYPE_POINTER); service_signals[IBUS_SIGNAL] = g_signal_new (I_("ibus-signal"), G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (IBusServiceClass, ibus_signal), NULL, NULL, ibus_marshal_BOOLEAN__POINTER_POINTER, G_TYPE_BOOLEAN, 2, G_TYPE_POINTER, G_TYPE_POINTER); }
static void ibus_config_real_destroy (IBusConfig *config) { if (ibus_proxy_get_connection ((IBusProxy *) config) != NULL) { ibus_proxy_call ((IBusProxy *) config, "Destroy", G_TYPE_INVALID); } IBUS_OBJECT_CLASS(parent_class)->destroy (IBUS_OBJECT (config)); }
static void ibus_config_gconf_class_init (IBusConfigGConfClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); parent_class = (IBusConfigServiceClass *) g_type_class_peek_parent (klass); IBUS_OBJECT_CLASS (object_class)->destroy = (IBusObjectDestroyFunc) ibus_config_gconf_destroy; IBUS_CONFIG_SERVICE_CLASS (object_class)->set_value = ibus_config_gconf_set_value; IBUS_CONFIG_SERVICE_CLASS (object_class)->get_value = ibus_config_gconf_get_value; }
static void ibus_server_class_init (IBusServerClass *klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); IBusObjectClass *ibus_object_class = IBUS_OBJECT_CLASS (klass); g_type_class_add_private (klass, sizeof (IBusServerPrivate)); gobject_class->set_property = (GObjectSetPropertyFunc) ibus_server_set_property; gobject_class->get_property = (GObjectGetPropertyFunc) ibus_server_get_property; ibus_object_class->destroy = (IBusObjectDestroyFunc) ibus_server_destroy; klass->new_connection = ibus_server_new_connection; /* install properties */ /** * IBusServer:connection-type: * * The connection type of server object. */ g_object_class_install_property (gobject_class, PROP_CONNECTION_TYPE, g_param_spec_gtype ("connection-type", "connection type", "The connection type of server object", IBUS_TYPE_CONNECTION, G_PARAM_READWRITE)); /* install signals */ /** * IBusServer::new-connection: * @server: An IBusServer. * @connection: The corresponding IBusConnection. * * Emitted when a new connection is coming in. * In this handler, IBus could add a reference and continue processing the connection. * If no reference is added, the new connection will be released and closed after this signal. * * <note><para>Argument @user_data is ignored in this function.</para></note> * * See also: IBusNewConnectionFunc(). */ server_signals[NEW_CONNECTION] = g_signal_new (I_("new-connection"), G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (IBusServerClass, new_connection), NULL, NULL, ibus_marshal_VOID__OBJECT, G_TYPE_NONE, 1, G_TYPE_OBJECT); }
static void ibus_lanxang_engine_class_init (IBusLanXangEngineClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); IBusObjectClass *ibus_object_class = IBUS_OBJECT_CLASS (klass); IBusEngineClass *engine_class = IBUS_ENGINE_CLASS (klass); object_class->constructor = ibus_lanxang_engine_constructor; ibus_object_class->destroy = (IBusObjectDestroyFunc) ibus_lanxang_engine_destroy; engine_class->process_key_event = ibus_lanxang_engine_process_key_event; }
static void ibus_panel_service_class_init (IBusPanelServiceClass *klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); gobject_class->set_property = (GObjectSetPropertyFunc) ibus_panel_service_service_set_property; gobject_class->get_property = (GObjectGetPropertyFunc) ibus_panel_service_service_get_property; IBUS_OBJECT_CLASS (gobject_class)->destroy = (IBusObjectDestroyFunc) ibus_panel_service_real_destroy; IBUS_SERVICE_CLASS (klass)->ibus_message = (ServiceIBusMessageFunc) ibus_panel_service_ibus_message; klass->focus_in = ibus_panel_service_focus_in; klass->focus_out = ibus_panel_service_focus_out; klass->register_properties = ibus_panel_service_register_properties; klass->set_cursor_location = ibus_panel_service_set_cursor_location; klass->update_lookup_table = ibus_panel_service_update_lookup_table; klass->update_auxiliary_text = ibus_panel_service_update_auxiliary_text; klass->update_preedit_text = ibus_panel_service_update_preedit_text; klass->update_property = ibus_panel_service_update_property; klass->cursor_down_lookup_table = ibus_panel_service_not_implemented; klass->cursor_up_lookup_table = ibus_panel_service_not_implemented; klass->destroy = ibus_panel_service_not_implemented; klass->hide_auxiliary_text = ibus_panel_service_not_implemented; klass->hide_language_bar = ibus_panel_service_not_implemented; klass->hide_lookup_table = ibus_panel_service_not_implemented; klass->hide_preedit_text = ibus_panel_service_not_implemented; klass->page_down_lookup_table = ibus_panel_service_not_implemented; klass->page_up_lookup_table = ibus_panel_service_not_implemented; klass->reset = ibus_panel_service_not_implemented; klass->show_auxiliary_text = ibus_panel_service_not_implemented; klass->show_language_bar = ibus_panel_service_not_implemented; klass->show_lookup_table = ibus_panel_service_not_implemented; klass->show_preedit_text = ibus_panel_service_not_implemented; klass->start_setup = ibus_panel_service_not_implemented; klass->state_changed = ibus_panel_service_not_implemented; /* install properties */ /** * IBusPanelService:connection: * * Connection of this IBusPanelService. */ g_object_class_install_property (gobject_class, PROP_CONNECTION, g_param_spec_object ("connection", "connection", "The connection of service object", IBUS_TYPE_CONNECTION, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); }
static void ibus_server_destroy (IBusServer *server) { IBusServerPrivate *priv; priv = IBUS_SERVER_GET_PRIVATE (server); if (priv->server) { dbus_server_unref (priv->server); priv->server = NULL; } IBUS_OBJECT_CLASS(ibus_server_parent_class)->destroy (IBUS_OBJECT (server)); }