comparison src/gtkmenutray.c @ 11558:19941a47405c

[gaim-migrate @ 13820] Compiles against GTK < 2.4 committer: Tailor Script <tailor@pidgin.im>
author Sean Egan <seanegan@gmail.com>
date Tue, 20 Sep 2005 22:08:40 +0000
parents 5c8210f7cbe2
children 767e3c0c5062
comparison
equal deleted inserted replaced
11557:1e7c0773380f 11558:19941a47405c
16 * You should have received a copy of the GNU General Public License 16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software 17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 */ 19 */
20 #include "gtkmenutray.h" 20 #include "gtkmenutray.h"
21
22 #define GAIM_GTK_MENU_TRAY_GET_PRIVATE(obj) \
23 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GAIM_GTK_TYPE_MENU_TRAY, GaimGtkMenuTrayPriv))
24
25 /******************************************************************************
26 * Structs
27 *****************************************************************************/
28 typedef struct {
29 GtkWidget *tray;
30 } GaimGtkMenuTrayPriv;
31 21
32 /****************************************************************************** 22 /******************************************************************************
33 * Enums 23 * Enums
34 *****************************************************************************/ 24 *****************************************************************************/
35 enum { 25 enum {
87 } 77 }
88 } 78 }
89 79
90 static void 80 static void
91 gaim_gtk_menu_tray_finalize(GObject *obj) { 81 gaim_gtk_menu_tray_finalize(GObject *obj) {
92 GaimGtkMenuTrayPriv *priv = GAIM_GTK_MENU_TRAY_GET_PRIVATE(obj); 82 GaimGtkMenuTray *tray = GAIM_GTK_MENU_TRAY(obj);
93 83 if(GTK_IS_WIDGET(tray->tray))
94 if(GTK_IS_WIDGET(priv->tray)) 84 gtk_widget_destroy(GTK_WIDGET(tray->tray));
95 gtk_widget_destroy(GTK_WIDGET(priv->tray));
96 85
97 G_OBJECT_CLASS(parent_class)->finalize(obj); 86 G_OBJECT_CLASS(parent_class)->finalize(obj);
98 } 87 }
99 88
100 static void 89 static void
109 object_class->get_property = gaim_gtk_menu_tray_get_property; 98 object_class->get_property = gaim_gtk_menu_tray_get_property;
110 99
111 item_class->select = gaim_gtk_menu_tray_select; 100 item_class->select = gaim_gtk_menu_tray_select;
112 item_class->deselect = gaim_gtk_menu_tray_deselect; 101 item_class->deselect = gaim_gtk_menu_tray_deselect;
113 102
114 g_type_class_add_private(klass, sizeof(GaimGtkMenuTrayPriv));
115
116 pspec = g_param_spec_object("box", "The box", 103 pspec = g_param_spec_object("box", "The box",
117 "The box", 104 "The box",
118 GTK_TYPE_BOX, 105 GTK_TYPE_BOX,
119 G_PARAM_READABLE); 106 G_PARAM_READABLE);
120 g_object_class_install_property(object_class, PROP_BOX, pspec); 107 g_object_class_install_property(object_class, PROP_BOX, pspec);
121 } 108 }
122 109
123 static void 110 static void
124 gaim_gtk_menu_tray_init(GaimGtkMenuTray *menu_tray) { 111 gaim_gtk_menu_tray_init(GaimGtkMenuTray *menu_tray) {
125 GaimGtkMenuTrayPriv *priv = GAIM_GTK_MENU_TRAY_GET_PRIVATE(menu_tray);
126
127 gtk_menu_item_set_right_justified(GTK_MENU_ITEM(menu_tray), TRUE); 112 gtk_menu_item_set_right_justified(GTK_MENU_ITEM(menu_tray), TRUE);
128 113
129 if(!GTK_IS_WIDGET(priv->tray)) 114 if(!GTK_IS_WIDGET(menu_tray->tray))
130 priv->tray = gtk_hbox_new(FALSE, 0); 115 menu_tray->tray = gtk_hbox_new(FALSE, 0);
131 116
132 gtk_container_add(GTK_CONTAINER(menu_tray), priv->tray); 117 gtk_container_add(GTK_CONTAINER(menu_tray), menu_tray->tray);
133 118
134 gtk_widget_show(priv->tray); 119 gtk_widget_show(menu_tray->tray);
135 } 120 }
136 121
137 /****************************************************************************** 122 /******************************************************************************
138 * API 123 * API
139 *****************************************************************************/ 124 *****************************************************************************/
168 return g_object_new(GAIM_GTK_TYPE_MENU_TRAY, NULL); 153 return g_object_new(GAIM_GTK_TYPE_MENU_TRAY, NULL);
169 } 154 }
170 155
171 GtkWidget * 156 GtkWidget *
172 gaim_gtk_menu_tray_get_box(GaimGtkMenuTray *menu_tray) { 157 gaim_gtk_menu_tray_get_box(GaimGtkMenuTray *menu_tray) {
173 GaimGtkMenuTrayPriv *priv;
174
175 g_return_val_if_fail(GAIM_GTK_IS_MENU_TRAY(menu_tray), NULL); 158 g_return_val_if_fail(GAIM_GTK_IS_MENU_TRAY(menu_tray), NULL);
176 159 return menu_tray->tray;
177 priv = GAIM_GTK_MENU_TRAY_GET_PRIVATE(menu_tray);
178
179 return priv->tray;
180 } 160 }
181 161
182 void 162 void
183 gaim_gtk_menu_tray_append(GaimGtkMenuTray *menu_tray, GtkWidget *widget) { 163 gaim_gtk_menu_tray_append(GaimGtkMenuTray *menu_tray, GtkWidget *widget) {
184 GaimGtkMenuTrayPriv *priv;
185
186 g_return_if_fail(GAIM_GTK_IS_MENU_TRAY(menu_tray)); 164 g_return_if_fail(GAIM_GTK_IS_MENU_TRAY(menu_tray));
187 g_return_if_fail(GTK_IS_WIDGET(widget)); 165 g_return_if_fail(GTK_IS_WIDGET(widget));
188 166
189 priv = GAIM_GTK_MENU_TRAY_GET_PRIVATE(menu_tray); 167 gtk_box_pack_end(GTK_BOX(menu_tray->tray), widget, FALSE, FALSE, 0);
190
191 gtk_box_pack_end(GTK_BOX(priv->tray), widget, FALSE, FALSE, 0);
192 } 168 }
193 169
194 void 170 void
195 gaim_gtk_menu_tray_prepend(GaimGtkMenuTray *menu_tray, GtkWidget *widget) { 171 gaim_gtk_menu_tray_prepend(GaimGtkMenuTray *menu_tray, GtkWidget *widget) {
196 GaimGtkMenuTrayPriv *priv;
197
198 g_return_if_fail(GAIM_GTK_IS_MENU_TRAY(menu_tray)); 172 g_return_if_fail(GAIM_GTK_IS_MENU_TRAY(menu_tray));
199 g_return_if_fail(GTK_IS_WIDGET(widget)); 173 g_return_if_fail(GTK_IS_WIDGET(widget));
200 174
201 priv = GAIM_GTK_MENU_TRAY_GET_PRIVATE(menu_tray); 175 gtk_box_pack_start(GTK_BOX(menu_tray->tray), widget, FALSE, FALSE, 0);
202
203 gtk_box_pack_start(GTK_BOX(priv->tray), widget, FALSE, FALSE, 0);
204 } 176 }