| 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); |