mirror of
https://gitlab.gnome.org/GNOME/glade.git
synced 2025-10-16 00:04:58 -04:00
Display an icon next to the widget name
in the project-view.
This commit is contained in:
parent
ab98e1037b
commit
c79860c891
@ -1,3 +1,10 @@
|
||||
2003-08-20 Paolo Borelli <pborelli@katamail.com>
|
||||
|
||||
* src/glade-project-view.c (glade_project_view_add_columns): new
|
||||
function which adds a pixbuf renderer to display an icon next to the
|
||||
widget name.
|
||||
(glade_project_view_init): use the above.
|
||||
|
||||
2003-08-18 Archit Baweja <bighead@users.sourceforge.net>
|
||||
|
||||
* widgets/gtktable.xml (<WindowTitle>): s/New vertical box/table.
|
||||
|
@ -334,32 +334,6 @@ glade_project_view_class_init (GladeProjectViewClass *class)
|
||||
class->selection_update = glade_project_view_selection_update;
|
||||
}
|
||||
|
||||
static void
|
||||
glade_project_view_cell_function (GtkTreeViewColumn *tree_column,
|
||||
GtkCellRenderer *cell,
|
||||
GtkTreeModel *tree_model,
|
||||
GtkTreeIter *iter,
|
||||
gpointer data)
|
||||
{
|
||||
GladeWidget *widget;
|
||||
|
||||
gtk_tree_model_get (tree_model, iter, WIDGET_COLUMN, &widget, -1);
|
||||
|
||||
/* The cell exists, but not widget has been asociated with it */
|
||||
if (!widget)
|
||||
return;
|
||||
|
||||
g_return_if_fail (widget->name != NULL);
|
||||
g_return_if_fail (widget->class != NULL);
|
||||
g_return_if_fail (GPOINTER_TO_INT (widget->class) > 5000);
|
||||
g_return_if_fail (widget->class->name != NULL);
|
||||
g_return_if_fail (widget->class->icon != NULL);
|
||||
|
||||
g_object_set (G_OBJECT (cell),
|
||||
"text", widget->name,
|
||||
NULL);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
glade_project_view_selection_changed_cb (GtkTreeSelection *selection,
|
||||
GladeProjectView *view)
|
||||
@ -416,10 +390,64 @@ glade_project_view_item_activated_cb (GtkTreeView *view,
|
||||
}
|
||||
|
||||
static void
|
||||
glade_project_view_init (GladeProjectView *view)
|
||||
glade_project_view_cell_function (GtkTreeViewColumn *tree_column,
|
||||
GtkCellRenderer *cell,
|
||||
GtkTreeModel *tree_model,
|
||||
GtkTreeIter *iter,
|
||||
gpointer data)
|
||||
{
|
||||
gboolean is_icon = GPOINTER_TO_INT (data);
|
||||
GladeWidget *widget;
|
||||
|
||||
gtk_tree_model_get (tree_model, iter, WIDGET_COLUMN, &widget, -1);
|
||||
|
||||
/* The cell exists, but not widget has been asociated with it */
|
||||
if (!widget)
|
||||
return;
|
||||
|
||||
g_return_if_fail (widget->name != NULL);
|
||||
g_return_if_fail (widget->class != NULL);
|
||||
g_return_if_fail (GPOINTER_TO_INT (widget->class) > 5000);
|
||||
g_return_if_fail (widget->class->name != NULL);
|
||||
g_return_if_fail (widget->class->icon != NULL);
|
||||
|
||||
if (is_icon)
|
||||
g_object_set (G_OBJECT (cell),
|
||||
"pixbuf", gtk_image_get_pixbuf (GTK_IMAGE (widget->class->icon)),
|
||||
NULL);
|
||||
else
|
||||
g_object_set (G_OBJECT (cell),
|
||||
"text", widget->name,
|
||||
NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
glade_project_view_add_columns (GtkTreeView *view)
|
||||
{
|
||||
GtkTreeViewColumn *column;
|
||||
GtkCellRenderer *renderer;
|
||||
|
||||
column = gtk_tree_view_column_new ();
|
||||
gtk_tree_view_column_set_title (column, _("Widget"));
|
||||
|
||||
renderer = gtk_cell_renderer_pixbuf_new ();
|
||||
gtk_tree_view_column_pack_start (column, renderer, FALSE);
|
||||
gtk_tree_view_column_set_cell_data_func (column, renderer,
|
||||
glade_project_view_cell_function,
|
||||
GINT_TO_POINTER (1), NULL);
|
||||
|
||||
renderer = gtk_cell_renderer_text_new ();
|
||||
gtk_tree_view_column_pack_start (column, renderer, TRUE);
|
||||
gtk_tree_view_column_set_cell_data_func (column, renderer,
|
||||
glade_project_view_cell_function,
|
||||
GINT_TO_POINTER (0), NULL);
|
||||
|
||||
gtk_tree_view_append_column (view, column);
|
||||
}
|
||||
|
||||
static void
|
||||
glade_project_view_init (GladeProjectView *view)
|
||||
{
|
||||
GtkTreeSelection *selection;
|
||||
|
||||
view->selected_widget = NULL;
|
||||
@ -434,10 +462,7 @@ glade_project_view_init (GladeProjectView *view)
|
||||
/* the view now holds a reference, we can get rid of our own */
|
||||
g_object_unref (G_OBJECT (view->model));
|
||||
|
||||
renderer = gtk_cell_renderer_text_new ();
|
||||
column = gtk_tree_view_column_new_with_attributes (_("Widget"), renderer, NULL);
|
||||
gtk_tree_view_column_set_cell_data_func (column, renderer, glade_project_view_cell_function, NULL, NULL);
|
||||
gtk_tree_view_append_column (GTK_TREE_VIEW (view->tree_view), column);
|
||||
glade_project_view_add_columns (GTK_TREE_VIEW (view->tree_view));
|
||||
|
||||
g_signal_connect (G_OBJECT (view->tree_view), "row-activated",
|
||||
G_CALLBACK (glade_project_view_item_activated_cb), NULL);
|
||||
|
Loading…
x
Reference in New Issue
Block a user