pidgin/gtkutils.c

changeset 37879
38eebb7c9019
parent 37590
92bff33e5d0d
child 37990
710f725725a8
equal deleted inserted replaced
37774:bf8ed95aaa1c 37879:38eebb7c9019
396 gtk_widget_show(menuitem); 396 gtk_widget_show(menuitem);
397 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); 397 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
398 return menuitem; 398 return menuitem;
399 } 399 }
400 400
401 GtkWidget *pidgin_new_item(GtkWidget *menu, const char *str)
402 {
403 GtkWidget *menuitem;
404 GtkWidget *label;
405
406 menuitem = gtk_menu_item_new();
407 if (menu)
408 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
409 gtk_widget_show(menuitem);
410
411 label = gtk_label_new(str);
412 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
413 gtk_label_set_pattern(GTK_LABEL(label), "_");
414 gtk_container_add(GTK_CONTAINER(menuitem), label);
415 gtk_widget_show(label);
416 /* FIXME: Go back and fix this
417 gtk_widget_add_accelerator(menuitem, "activate", accel, str[0],
418 GDK_MOD1_MASK, GTK_ACCEL_LOCKED);
419 */
420 pidgin_set_accessible_label(menuitem, GTK_LABEL(label));
421 return menuitem;
422 }
423
424 GtkWidget *pidgin_new_check_item(GtkWidget *menu, const char *str, 401 GtkWidget *pidgin_new_check_item(GtkWidget *menu, const char *str,
425 GCallback cb, gpointer data, gboolean checked) 402 GCallback cb, gpointer data, gboolean checked)
426 { 403 {
427 GtkWidget *menuitem; 404 GtkWidget *menuitem;
428 menuitem = gtk_check_menu_item_new_with_mnemonic(str); 405 menuitem = gtk_check_menu_item_new_with_mnemonic(str);
504 481
505 return button; 482 return button;
506 } 483 }
507 484
508 485
509 GtkWidget *pidgin_new_item_from_stock(GtkWidget *menu, const char *str, const char *icon, GCallback cb, gpointer data, guint accel_key, guint accel_mods, char *mod) 486 GtkWidget *pidgin_new_menu_item(GtkWidget *menu, const char *mnemonic,
487 const char *icon, GCallback cb, gpointer data)
510 { 488 {
511 GtkWidget *menuitem; 489 GtkWidget *menuitem;
512 /* 490 GtkWidget *box;
513 GtkWidget *hbox;
514 GtkWidget *label; 491 GtkWidget *label;
515 */ 492
516 GtkWidget *image; 493 box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, PIDGIN_HIG_BOX_SPACE);
517 494
518 if (icon == NULL) 495 menuitem = gtk_menu_item_new();
519 menuitem = gtk_menu_item_new_with_mnemonic(str); 496
520 else 497 if (cb)
521 menuitem = gtk_image_menu_item_new_with_mnemonic(str); 498 g_signal_connect(G_OBJECT(menuitem), "activate", cb, data);
499
500 if (icon) {
501 GtkWidget *image;
502 image = gtk_image_new_from_stock(icon, GTK_ICON_SIZE_MENU);
503 gtk_container_add(GTK_CONTAINER(box), image);
504 }
505
506 label = gtk_label_new_with_mnemonic(mnemonic);
507 gtk_container_add(GTK_CONTAINER(box), label);
508
509 gtk_container_add(GTK_CONTAINER(menuitem), box);
522 510
523 if (menu) 511 if (menu)
524 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); 512 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
525
526 if (cb)
527 g_signal_connect(G_OBJECT(menuitem), "activate", cb, data);
528
529 if (icon != NULL) {
530 image = gtk_image_new_from_stock(icon, gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL));
531 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem), image);
532 }
533 /* FIXME: this isn't right
534 if (mod) {
535 label = gtk_label_new(mod);
536 gtk_box_pack_end(GTK_BOX(hbox), label, FALSE, FALSE, 2);
537 gtk_widget_show(label);
538 }
539 */
540 /*
541 if (accel_key) {
542 gtk_widget_add_accelerator(menuitem, "activate", accel, accel_key,
543 accel_mods, GTK_ACCEL_LOCKED);
544 }
545 */
546 513
547 gtk_widget_show_all(menuitem); 514 gtk_widget_show_all(menuitem);
548 515
549 return menuitem; 516 return menuitem;
550 } 517 }

mercurial