static void serialize_icon_sources (gchar *icon_name, GList *sources, GString *string) { GList *l; for (l = sources; l; l = g_list_next (l)) { GtkIconSource *source = l->data; GdkPixbuf *pixbuf; gchar *str; G_GNUC_BEGIN_IGNORE_DEPRECATIONS pixbuf = gtk_icon_source_get_pixbuf (source); G_GNUC_END_IGNORE_DEPRECATIONS str = g_object_get_data (G_OBJECT (pixbuf), "GladeFileName"); g_string_append_printf (string, "%s[%s] ", icon_name, str); G_GNUC_BEGIN_IGNORE_DEPRECATIONS if (!gtk_icon_source_get_direction_wildcarded (source)) { GtkTextDirection direction = gtk_icon_source_get_direction (source); G_GNUC_END_IGNORE_DEPRECATIONS str = glade_utils_enum_string_from_value (GTK_TYPE_TEXT_DIRECTION, direction); g_string_append_printf (string, "dir-%s ", str); g_free (str); } G_GNUC_BEGIN_IGNORE_DEPRECATIONS if (!gtk_icon_source_get_size_wildcarded (source)) { GtkIconSize size = gtk_icon_source_get_size (source); G_GNUC_END_IGNORE_DEPRECATIONS str = glade_utils_enum_string_from_value (GTK_TYPE_ICON_SIZE, size); g_string_append_printf (string, "size-%s ", str); g_free (str); } G_GNUC_BEGIN_IGNORE_DEPRECATIONS if (!gtk_icon_source_get_state_wildcarded (source)) { GtkStateType state = gtk_icon_source_get_state (source); G_GNUC_END_IGNORE_DEPRECATIONS str = glade_utils_enum_string_from_value (GTK_TYPE_STATE_TYPE, state); g_string_append_printf (string, "state-%s ", str); g_free (str); } g_string_append_printf (string, "| "); } }
static void write_icon_sources (gchar *icon_name, GList *sources, SourceWriteTab *tab) { GladeXmlNode *source_node; GtkIconSource *source; GList *l; gchar *string; GdkPixbuf *pixbuf; for (l = sources; l; l = l->next) { source = l->data; source_node = glade_xml_node_new (tab->context, GLADE_TAG_SOURCE); glade_xml_node_append_child (tab->node, source_node); glade_xml_node_set_property_string (source_node, GLADE_TAG_STOCK_ID, icon_name); G_GNUC_BEGIN_IGNORE_DEPRECATIONS if (!gtk_icon_source_get_direction_wildcarded (source)) { GtkTextDirection direction = gtk_icon_source_get_direction (source); G_GNUC_END_IGNORE_DEPRECATIONS string = glade_utils_enum_string_from_value (GTK_TYPE_TEXT_DIRECTION, direction); glade_xml_node_set_property_string (source_node, GLADE_TAG_DIRECTION, string); g_free (string); } G_GNUC_BEGIN_IGNORE_DEPRECATIONS if (!gtk_icon_source_get_size_wildcarded (source)) { GtkIconSize size = gtk_icon_source_get_size (source); G_GNUC_END_IGNORE_DEPRECATIONS string = glade_utils_enum_string_from_value (GTK_TYPE_ICON_SIZE, size); glade_xml_node_set_property_string (source_node, GLADE_TAG_SIZE, string); g_free (string); } G_GNUC_BEGIN_IGNORE_DEPRECATIONS if (!gtk_icon_source_get_state_wildcarded (source)) { GtkStateType state = gtk_icon_source_get_state (source); G_GNUC_END_IGNORE_DEPRECATIONS string = glade_utils_enum_string_from_value (GTK_TYPE_STATE_TYPE, state); glade_xml_node_set_property_string (source_node, GLADE_TAG_STATE, string); g_free (string); } G_GNUC_BEGIN_IGNORE_DEPRECATIONS pixbuf = gtk_icon_source_get_pixbuf (source); G_GNUC_END_IGNORE_DEPRECATIONS string = g_object_get_data (G_OBJECT (pixbuf), "GladeFileName"); glade_xml_node_set_property_string (source_node, GLADE_TAG_FILENAME, string); } }
static void populate_store_foreach (const gchar * icon_name, GList * sources, GladeEPropIconSources * eprop_sources) { GtkIconSource *source; GtkTreeIter parent_iter, iter; GList *l; /* Update the comboboxentry's store here... */ gtk_combo_box_text_insert (GTK_COMBO_BOX_TEXT (eprop_sources->combo), -1, icon_name, icon_name); gtk_combo_box_set_active_id (GTK_COMBO_BOX (eprop_sources->combo), icon_name); /* Dont set COLUMN_ICON_NAME here */ gtk_tree_store_append (eprop_sources->store, &parent_iter, NULL); gtk_tree_store_set (eprop_sources->store, &parent_iter, COLUMN_TEXT, icon_name, COLUMN_TEXT_EDITABLE, FALSE, COLUMN_TEXT_WEIGHT, PANGO_WEIGHT_BOLD, -1); for (l = sources; l; l = l->next) { GdkPixbuf *pixbuf; gchar *str; source = l->data; pixbuf = gtk_icon_source_get_pixbuf (source); str = g_object_get_data (G_OBJECT (pixbuf), "GladeFileName"); gtk_tree_store_append (eprop_sources->store, &iter, &parent_iter); gtk_tree_store_set (eprop_sources->store, &iter, COLUMN_ICON_NAME, icon_name, COLUMN_LIST_INDEX, g_list_index (sources, source), COLUMN_TEXT, str, COLUMN_TEXT_EDITABLE, TRUE, COLUMN_TEXT_WEIGHT, PANGO_WEIGHT_NORMAL, -1); if (!gtk_icon_source_get_direction_wildcarded (source)) { GtkTextDirection direction = gtk_icon_source_get_direction (source); str = glade_utils_enum_string_from_value_displayable (GTK_TYPE_TEXT_DIRECTION, direction); gtk_tree_store_set (eprop_sources->store, &iter, COLUMN_DIRECTION_ACTIVE, TRUE, COLUMN_DIRECTION, str, -1); g_free (str); } if (!gtk_icon_source_get_size_wildcarded (source)) { GtkIconSize size = gtk_icon_source_get_size (source); str = glade_utils_enum_string_from_value_displayable (GTK_TYPE_ICON_SIZE, size); gtk_tree_store_set (eprop_sources->store, &iter, COLUMN_SIZE_ACTIVE, TRUE, COLUMN_SIZE, str, -1); g_free (str); } if (!gtk_icon_source_get_state_wildcarded (source)) { GtkStateType state = gtk_icon_source_get_state (source); str = glade_utils_enum_string_from_value_displayable (GTK_TYPE_STATE_TYPE, state); gtk_tree_store_set (eprop_sources->store, &iter, COLUMN_STATE_ACTIVE, TRUE, COLUMN_STATE, str, -1); g_free (str); } if (!l->next) { GtkTreePath *path = gtk_tree_model_get_path (GTK_TREE_MODEL (eprop_sources->store), &iter); gtk_tree_view_expand_to_path (GTK_TREE_VIEW (eprop_sources->view), path); gtk_tree_path_free (path); } } }