pidgin/gtkutils.c

changeset 41515
e91ebfe7d08c
parent 41502
d00bcebf0f90
child 41517
5bafe75d3907
equal deleted inserted replaced
41514:a96768bacb59 41515:e91ebfe7d08c
97 97
98 /****************************************************************************** 98 /******************************************************************************
99 * Code 99 * Code
100 *****************************************************************************/ 100 *****************************************************************************/
101 101
102 GtkWidget *pidgin_new_menu_item(GtkWidget *menu, const char *mnemonic,
103 const char *icon, GCallback cb, gpointer data)
104 {
105 GtkWidget *menuitem;
106 GtkWidget *box;
107 GtkWidget *label;
108
109 box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6);
110
111 menuitem = gtk_menu_item_new();
112
113 if (cb)
114 g_signal_connect(G_OBJECT(menuitem), "activate", cb, data);
115
116 if (icon) {
117 GtkWidget *image;
118 image = gtk_image_new_from_icon_name(icon, GTK_ICON_SIZE_MENU);
119 gtk_container_add(GTK_CONTAINER(box), image);
120 }
121
122 label = gtk_label_new_with_mnemonic(mnemonic);
123 gtk_container_add(GTK_CONTAINER(box), label);
124
125 gtk_container_add(GTK_CONTAINER(menuitem), box);
126
127 if (menu)
128 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
129
130 gtk_widget_show_all(menuitem);
131
132 return menuitem;
133 }
134
135 GtkWidget * 102 GtkWidget *
136 pidgin_make_frame(GtkWidget *parent, const char *title) 103 pidgin_make_frame(GtkWidget *parent, const char *title)
137 { 104 {
138 GtkWidget *vbox, *vbox2, *hbox; 105 GtkWidget *vbox, *vbox2, *hbox;
139 GtkLabel *label; 106 GtkLabel *label;
322 rel_obj[0] = acc; 289 rel_obj[0] = acc;
323 relation = atk_relation_new (rel_obj, 1, ATK_RELATION_LABEL_FOR); 290 relation = atk_relation_new (rel_obj, 1, ATK_RELATION_LABEL_FOR);
324 atk_relation_set_add (set, relation); 291 atk_relation_set_add (set, relation);
325 g_object_unref (relation); 292 g_object_unref (relation);
326 g_object_unref(set); 293 g_object_unref(set);
327 }
328
329 void
330 pidgin_menu_popup_at_treeview_selection(GtkWidget *menu, GtkWidget *treeview)
331 {
332 GtkTreePath *path;
333 GtkTreeViewColumn *column;
334 GdkWindow *bin_window;
335 GdkRectangle rect;
336
337 gtk_tree_view_get_cursor(GTK_TREE_VIEW(treeview), &path, &column);
338 g_return_if_fail(path != NULL);
339 if (column == NULL)
340 column = gtk_tree_view_get_column(GTK_TREE_VIEW(treeview), 0);
341 bin_window = gtk_tree_view_get_bin_window(GTK_TREE_VIEW(treeview));
342 gtk_tree_view_get_cell_area(GTK_TREE_VIEW(treeview), path, column, &rect);
343 gtk_menu_popup_at_rect(GTK_MENU(menu), bin_window, &rect,
344 GDK_GRAVITY_SOUTH_WEST, GDK_GRAVITY_NORTH_WEST,
345 NULL);
346
347 gtk_tree_path_free(path);
348 } 294 }
349 295
350 void pidgin_buddy_icon_get_scale_size(GdkPixbuf *buf, PurpleBuddyIconSpec *spec, PurpleBuddyIconScaleFlags rules, int *width, int *height) 296 void pidgin_buddy_icon_get_scale_size(GdkPixbuf *buf, PurpleBuddyIconSpec *spec, PurpleBuddyIconScaleFlags rules, int *width, int *height)
351 { 297 {
352 *width = gdk_pixbuf_get_width(buf); 298 *width = gdk_pixbuf_get_width(buf);

mercurial