static void gimp_controller_list_select_item (GimpContainerView *view, GimpViewable *viewable, gpointer insert_data, GimpControllerList *list) { gboolean selected; list->dest_info = GIMP_CONTROLLER_INFO (viewable); selected = GIMP_IS_CONTROLLER_INFO (list->dest_info); if (list->remove_button) { GimpObject *object = GIMP_OBJECT (list->dest_info); gchar *tip = NULL; gtk_widget_set_sensitive (list->remove_button, selected); if (selected) tip = g_strdup_printf (_("Remove '%s' from the list of active controllers"), gimp_object_get_name (object)); gimp_help_set_help_data (list->remove_button, tip, NULL); g_free (tip); } gtk_widget_set_sensitive (list->edit_button, selected); gtk_widget_set_sensitive (list->up_button, selected); gtk_widget_set_sensitive (list->down_button, selected); }
static void gimp_controller_info_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec) { GimpControllerInfo *info = GIMP_CONTROLLER_INFO (object); switch (property_id) { case PROP_ENABLED: g_value_set_boolean (value, info->enabled); break; case PROP_DEBUG_EVENTS: g_value_set_boolean (value, info->debug_events); break; case PROP_CONTROLLER: g_value_set_object (value, info->controller); break; case PROP_MAPPING: g_value_set_boxed (value, info->mapping); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } }
static void gimp_controller_info_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec) { GimpControllerInfo *info = GIMP_CONTROLLER_INFO (object); switch (property_id) { case PROP_ENABLED: info->enabled = g_value_get_boolean (value); break; case PROP_DEBUG_EVENTS: info->debug_events = g_value_get_boolean (value); break; case PROP_CONTROLLER: if (info->controller) { g_signal_handlers_disconnect_by_func (info->controller, gimp_controller_info_event, info); g_object_unref (info->controller); } info->controller = g_value_dup_object (value); if (info->controller) { GimpControllerClass *controller_class; g_signal_connect_object (info->controller, "event", G_CALLBACK (gimp_controller_info_event), G_OBJECT (info), 0); controller_class = GIMP_CONTROLLER_GET_CLASS (info->controller); gimp_viewable_set_icon_name (GIMP_VIEWABLE (info), controller_class->icon_name); } break; case PROP_MAPPING: if (info->mapping) g_hash_table_unref (info->mapping); info->mapping = g_value_dup_boxed (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } }
static void gimp_controller_info_finalize (GObject *object) { GimpControllerInfo *info = GIMP_CONTROLLER_INFO (object); if (info->controller) { g_object_unref (info->controller); info->controller = NULL; } if (info->mapping) { g_hash_table_unref (info->mapping); info->mapping = NULL; } G_OBJECT_CLASS (parent_class)->finalize (object); }