| |
1 /* gtkcellviewmenuitem.c |
| |
2 * Copyright (C) 2003 Kristian Rietveld <kris@gtk.org> |
| |
3 * |
| |
4 * This library is free software; you can redistribute it and/or |
| |
5 * modify it under the terms of the GNU Library General Public |
| |
6 * License as published by the Free Software Foundation; either |
| |
7 * version 2 of the License, or (at your option) any later version. |
| |
8 * |
| |
9 * This library is distributed in the hope that it will be useful, |
| |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| |
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| |
12 * Library General Public License for more details. |
| |
13 * |
| |
14 * You should have received a copy of the GNU Library General Public |
| |
15 * License along with this library; if not, write to the |
| |
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
| |
17 * Boston, MA 02111-1307, USA. |
| |
18 */ |
| |
19 |
| |
20 /* |
| |
21 #include <config.h> |
| |
22 */ |
| |
23 #include <gtk/gtkversion.h> |
| |
24 #if !GTK_CHECK_VERSION(2,6,0) |
| |
25 #include "gtkcellviewmenuitem.h" |
| |
26 #include "gtkcellview.h" |
| |
27 |
| |
28 struct _GtkCellViewMenuItemPrivate |
| |
29 { |
| |
30 GtkWidget *cell_view; |
| |
31 }; |
| |
32 |
| |
33 static void gtk_cell_view_menu_item_init (GtkCellViewMenuItem *item); |
| |
34 static void gtk_cell_view_menu_item_class_init (GtkCellViewMenuItemClass *klass); |
| |
35 static void gtk_cell_view_menu_item_finalize (GObject *object); |
| |
36 |
| |
37 |
| |
38 GType |
| |
39 gtk_cell_view_menu_item_get_type (void) |
| |
40 { |
| |
41 static GType cell_view_menu_item_type = 0; |
| |
42 |
| |
43 if (!cell_view_menu_item_type) |
| |
44 { |
| |
45 static const GTypeInfo cell_view_menu_item_info = |
| |
46 { |
| |
47 sizeof (GtkCellViewMenuItemClass), |
| |
48 NULL, |
| |
49 NULL, |
| |
50 (GClassInitFunc) gtk_cell_view_menu_item_class_init, |
| |
51 NULL, |
| |
52 NULL, |
| |
53 sizeof (GtkCellViewMenuItem), |
| |
54 0, |
| |
55 (GInstanceInitFunc) gtk_cell_view_menu_item_init |
| |
56 }; |
| |
57 |
| |
58 cell_view_menu_item_type = |
| |
59 g_type_register_static (GTK_TYPE_MENU_ITEM, "GaimGtkCellViewMenuItem", |
| |
60 &cell_view_menu_item_info, 0); |
| |
61 } |
| |
62 |
| |
63 return cell_view_menu_item_type; |
| |
64 } |
| |
65 |
| |
66 static void |
| |
67 gtk_cell_view_menu_item_class_init (GtkCellViewMenuItemClass *klass) |
| |
68 { |
| |
69 GObjectClass *object_class; |
| |
70 |
| |
71 object_class = (GObjectClass *)klass; |
| |
72 object_class->finalize = gtk_cell_view_menu_item_finalize; |
| |
73 } |
| |
74 |
| |
75 static void |
| |
76 gtk_cell_view_menu_item_init (GtkCellViewMenuItem *item) |
| |
77 { |
| |
78 item->priv = g_new0(GtkCellViewMenuItemPrivate,1); |
| |
79 } |
| |
80 |
| |
81 GtkWidget * |
| |
82 gtk_cell_view_menu_item_new (void) |
| |
83 { |
| |
84 GtkCellViewMenuItem *item; |
| |
85 |
| |
86 item = g_object_new (GTK_TYPE_CELL_VIEW_MENU_ITEM, NULL); |
| |
87 |
| |
88 item->priv->cell_view = gtk_cell_view_new (); |
| |
89 gtk_container_add (GTK_CONTAINER (item), item->priv->cell_view); |
| |
90 gtk_widget_show (item->priv->cell_view); |
| |
91 |
| |
92 return GTK_WIDGET (item); |
| |
93 } |
| |
94 |
| |
95 GtkWidget * |
| |
96 gtk_cell_view_menu_item_new_with_pixbuf (GdkPixbuf *pixbuf) |
| |
97 { |
| |
98 GtkCellViewMenuItem *item; |
| |
99 |
| |
100 item = g_object_new (GTK_TYPE_CELL_VIEW_MENU_ITEM, NULL); |
| |
101 |
| |
102 item->priv->cell_view = gtk_cell_view_new_with_pixbuf (pixbuf); |
| |
103 gtk_container_add (GTK_CONTAINER (item), item->priv->cell_view); |
| |
104 gtk_widget_show (item->priv->cell_view); |
| |
105 |
| |
106 return GTK_WIDGET (item); |
| |
107 } |
| |
108 |
| |
109 GtkWidget * |
| |
110 gtk_cell_view_menu_item_new_with_text (const gchar *text) |
| |
111 { |
| |
112 GtkCellViewMenuItem *item; |
| |
113 |
| |
114 item = g_object_new (GTK_TYPE_CELL_VIEW_MENU_ITEM, NULL); |
| |
115 |
| |
116 item->priv->cell_view = gtk_cell_view_new_with_text (text); |
| |
117 gtk_container_add (GTK_CONTAINER (item), item->priv->cell_view); |
| |
118 gtk_widget_show (item->priv->cell_view); |
| |
119 |
| |
120 return GTK_WIDGET (item); |
| |
121 } |
| |
122 |
| |
123 GtkWidget * |
| |
124 gtk_cell_view_menu_item_new_with_markup (const gchar *markup) |
| |
125 { |
| |
126 GtkCellViewMenuItem *item; |
| |
127 |
| |
128 item = g_object_new (GTK_TYPE_CELL_VIEW_MENU_ITEM, NULL); |
| |
129 |
| |
130 item->priv->cell_view = gtk_cell_view_new_with_markup (markup); |
| |
131 gtk_container_add (GTK_CONTAINER (item), item->priv->cell_view); |
| |
132 gtk_widget_show (item->priv->cell_view); |
| |
133 |
| |
134 return GTK_WIDGET (item); |
| |
135 } |
| |
136 |
| |
137 GtkWidget * |
| |
138 gtk_cell_view_menu_item_new_from_model (GtkTreeModel *model, |
| |
139 GtkTreePath *path) |
| |
140 { |
| |
141 GtkCellViewMenuItem *item; |
| |
142 |
| |
143 item = g_object_new (GTK_TYPE_CELL_VIEW_MENU_ITEM, NULL); |
| |
144 |
| |
145 item->priv->cell_view = gtk_cell_view_new (); |
| |
146 gtk_container_add (GTK_CONTAINER (item), item->priv->cell_view); |
| |
147 |
| |
148 gtk_cell_view_set_model (GTK_CELL_VIEW (item->priv->cell_view), model); |
| |
149 gtk_cell_view_set_displayed_row (GTK_CELL_VIEW (item->priv->cell_view), path); |
| |
150 |
| |
151 gtk_widget_show (item->priv->cell_view); |
| |
152 |
| |
153 return GTK_WIDGET (item); |
| |
154 } |
| |
155 |
| |
156 static void |
| |
157 gtk_cell_view_menu_item_finalize (GObject *object) |
| |
158 { |
| |
159 GtkCellViewMenuItem *item = GTK_CELL_VIEW_MENU_ITEM (object); |
| |
160 |
| |
161 g_free (item->priv); |
| |
162 } |
| |
163 #endif /* Gtk 2.6 */ |