g_free (info->accel_str);
if (info->small_icon)
g_object_unref (info->small_icon);
-
+
g_free (info);
}
info->id = g_strdup (src->id);
info->macro = g_strdup (src->macro);
info->accel_str = g_strdup (src->accel_str);
-
+
info->item = src->item;
info->small_icon = src->small_icon;
/* gtk-foo-bar -> GTK_STOCK_FOO_BAR */
macro = g_string_new (NULL);
-
+
cp = id;
-
+
if (strncmp (cp, "gtk-", 4) == 0)
{
g_string_append (macro, "GTK_STOCK_");
while (*cp)
{
if (*cp == '-')
- g_string_append_c (macro, '_');
+ g_string_append_c (macro, '_');
else if (g_ascii_islower (*cp))
- g_string_append_c (macro, g_ascii_toupper (*cp));
+ g_string_append_c (macro, g_ascii_toupper (*cp));
else
- g_string_append_c (macro, *cp);
+ g_string_append_c (macro, *cp);
cp++;
}
GtkListStore *store;
GSList *ids;
GSList *tmp_list;
-
+
store = gtk_list_store_new (2, STOCK_ITEM_INFO_TYPE, G_TYPE_STRING);
ids = gtk_stock_list_ids ();
GtkStockItem item;
GtkTreeIter iter;
GtkIconSet *icon_set;
-
+
info.id = tmp_list->data;
-
+
if (gtk_stock_lookup (info.id, &item))
{
info.item = item;
++i;
}
g_free (sizes);
-
- info.small_icon = gtk_widget_render_icon (window, info.id,
- size,
- NULL);
-
+
+ info.small_icon = gtk_widget_render_icon_pixbuf (window,
+ info.id,
+ size);
+
if (size != GTK_ICON_SIZE_MENU)
{
/* Make the result the proper size for our thumbnail */
gint w, h;
GdkPixbuf *scaled;
-
+
gtk_icon_size_lookup (GTK_ICON_SIZE_MENU, &w, &h);
-
+
scaled = gdk_pixbuf_scale_simple (info.small_icon,
w, h,
GDK_INTERP_BILINEAR);
}
info.macro = id_to_macro (info.id);
-
+
gtk_list_store_append (store, &iter);
gtk_list_store_set (store, &iter, 0, &info, 1, info.id, -1);
g_free (info.accel_str);
if (info.small_icon)
g_object_unref (info.small_icon);
-
+
tmp_list = g_slist_next (tmp_list);
}
-
+
g_slist_foreach (ids, (GFunc)g_free, NULL);
g_slist_free (ids);
for (i = 0; i < n_sizes; i++)
{
gint width, height;
-
+
gtk_icon_size_lookup (sizes[i], &width, &height);
if (width * height > best_pixels)
- {
- best_size = sizes[i];
- best_pixels = width * height;
- }
+ {
+ best_size = sizes[i];
+ best_pixels = width * height;
+ }
}
-
+
g_free (sizes);
return best_size;
StockItemDisplay *display;
GtkTreeModel *model;
GtkTreeIter iter;
-
+
treeview = gtk_tree_selection_get_tree_view (selection);
display = g_object_get_data (G_OBJECT (treeview), "stock-display");
{
StockItemInfo *info;
gchar *str;
-
+
gtk_tree_model_get (model, &iter,
0, &info,
-1);
static void
macro_set_func_text (GtkTreeViewColumn *tree_column,
- GtkCellRenderer *cell,
- GtkTreeModel *model,
- GtkTreeIter *iter,
- gpointer data)
+ GtkCellRenderer *cell,
+ GtkTreeModel *model,
+ GtkTreeIter *iter,
+ gpointer data)
{
StockItemInfo *info;
-
+
gtk_tree_model_get (model, iter,
0, &info,
-1);
-
+
g_object_set (GTK_CELL_RENDERER (cell),
"text", info->macro,
NULL);
-
+
stock_item_info_free (info);
}
gpointer data)
{
StockItemInfo *info;
-
+
gtk_tree_model_get (model, iter,
0, &info,
-1);
-
+
g_object_set (GTK_CELL_RENDERER (cell),
"text", info->id,
NULL);
-
+
stock_item_info_free (info);
}
gpointer data)
{
StockItemInfo *info;
-
+
gtk_tree_model_get (model, iter,
0, &info,
-1);
-
+
g_object_set (GTK_CELL_RENDERER (cell),
"text", info->accel_str,
NULL);
-
+
stock_item_info_free (info);
}
gpointer data)
{
StockItemInfo *info;
-
+
gtk_tree_model_get (model, iter,
0, &info,
-1);
-
+
g_object_set (GTK_CELL_RENDERER (cell),
"text", info->item.label,
NULL);
-
+
stock_item_info_free (info);
}
GtkWidget *
do_stock_browser (GtkWidget *do_widget)
-{
+{
if (!window)
{
GtkWidget *frame;
GtkWidget *hbox;
GtkWidget *sw;
GtkWidget *treeview;
- GtkWidget *align;
GtkTreeModel *model;
GtkCellRenderer *cell_renderer;
StockItemDisplay *display;
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_screen (GTK_WINDOW (window),
- gtk_widget_get_screen (do_widget));
+ gtk_widget_get_screen (do_widget));
gtk_window_set_title (GTK_WINDOW (window), "Stock Icons and Items");
gtk_window_set_default_size (GTK_WINDOW (window), -1, 500);
g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window);
gtk_container_set_border_width (GTK_CONTAINER (window), 8);
- hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, FALSE, 8);
+ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8);
gtk_container_add (GTK_CONTAINER (window), hbox);
sw = gtk_scrolled_window_new (NULL, NULL);
gtk_box_pack_start (GTK_BOX (hbox), sw, FALSE, FALSE, 0);
model = create_model ();
-
+
treeview = gtk_tree_view_new_with_model (model);
g_object_unref (model);
gtk_container_add (GTK_CONTAINER (sw), treeview);
-
+
column = gtk_tree_view_column_new ();
gtk_tree_view_column_set_title (column, "Macro");
cell_renderer = gtk_cell_renderer_pixbuf_new ();
gtk_tree_view_column_pack_start (column,
- cell_renderer,
- FALSE);
+ cell_renderer,
+ FALSE);
gtk_tree_view_column_set_attributes (column, cell_renderer,
- "stock_id", 1, NULL);
+ "stock_id", 1, NULL);
cell_renderer = gtk_cell_renderer_text_new ();
gtk_tree_view_column_pack_start (column,
- cell_renderer,
- TRUE);
+ cell_renderer,
+ TRUE);
gtk_tree_view_column_set_cell_data_func (column, cell_renderer,
- macro_set_func_text, NULL, NULL);
+ macro_set_func_text, NULL, NULL);
gtk_tree_view_append_column (GTK_TREE_VIEW (treeview),
- column);
+ column);
cell_renderer = gtk_cell_renderer_text_new ();
gtk_tree_view_insert_column_with_data_func (GTK_TREE_VIEW (treeview),
id_set_func,
NULL,
NULL);
-
- align = gtk_alignment_new (0.5, 0.0, 0.0, 0.0);
- gtk_box_pack_end (GTK_BOX (hbox), align, FALSE, FALSE, 0);
-
+
frame = gtk_frame_new ("Selected Item");
- gtk_container_add (GTK_CONTAINER (align), frame);
+ gtk_widget_set_valign (frame, GTK_ALIGN_START);
+ gtk_box_pack_end (GTK_BOX (hbox), frame, FALSE, FALSE, 0);
- vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, FALSE, 8);
+ vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8);
gtk_container_set_border_width (GTK_CONTAINER (vbox), 4);
gtk_container_add (GTK_CONTAINER (frame), vbox);
"stock-display",
display,
g_free); /* free display with treeview */
-
+
display->type_label = gtk_label_new (NULL);
display->macro_label = gtk_label_new (NULL);
display->id_label = gtk_label_new (NULL);
gtk_box_pack_start (GTK_BOX (vbox), display->icon_image,
FALSE, FALSE, 0);
-
+
gtk_box_pack_start (GTK_BOX (vbox), display->label_accel_label,
FALSE, FALSE, 0);
gtk_box_pack_start (GTK_BOX (vbox), display->macro_label,
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview));
gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE);
-
+
g_signal_connect (selection,
- "changed",
- G_CALLBACK (selection_changed),
- NULL);
+ "changed",
+ G_CALLBACK (selection_changed),
+ NULL);
}
if (!gtk_widget_get_visible (window))
gtk_widget_show_all (window);
}
else
- {
+ {
gtk_widget_destroy (window);
window = NULL;
}