| 406 gtk_widget_show(label); |
406 gtk_widget_show(label); |
| 407 /* FIXME: Go back and fix this |
407 /* FIXME: Go back and fix this |
| 408 gtk_widget_add_accelerator(menuitem, "activate", accel, str[0], |
408 gtk_widget_add_accelerator(menuitem, "activate", accel, str[0], |
| 409 GDK_MOD1_MASK, GTK_ACCEL_LOCKED); |
409 GDK_MOD1_MASK, GTK_ACCEL_LOCKED); |
| 410 */ |
410 */ |
| 411 pidgin_set_accessible_label (menuitem, label); |
411 pidgin_set_accessible_label(menuitem, GTK_LABEL(label)); |
| 412 return menuitem; |
412 return menuitem; |
| 413 } |
413 } |
| 414 |
414 |
| 415 GtkWidget *pidgin_new_check_item(GtkWidget *menu, const char *str, |
415 GtkWidget *pidgin_new_check_item(GtkWidget *menu, const char *str, |
| 416 GCallback cb, gpointer data, gboolean checked) |
416 GCallback cb, gpointer data, gboolean checked) |
| 453 |
453 |
| 454 GtkWidget * |
454 GtkWidget * |
| 455 pidgin_pixbuf_button_from_stock(const char *text, const char *icon, |
455 pidgin_pixbuf_button_from_stock(const char *text, const char *icon, |
| 456 PidginButtonOrientation style) |
456 PidginButtonOrientation style) |
| 457 { |
457 { |
| 458 GtkWidget *button, *image, *label, *bbox, *ibox, *lbox = NULL; |
458 GtkWidget *button, *image, *bbox, *ibox, *lbox = NULL; |
| 459 |
459 |
| 460 button = gtk_button_new(); |
460 button = gtk_button_new(); |
| 461 |
461 |
| 462 if (style == PIDGIN_BUTTON_HORIZONTAL) { |
462 if (style == PIDGIN_BUTTON_HORIZONTAL) { |
| 463 bbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); |
463 bbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); |
| 478 image = gtk_image_new_from_stock(icon, GTK_ICON_SIZE_BUTTON); |
478 image = gtk_image_new_from_stock(icon, GTK_ICON_SIZE_BUTTON); |
| 479 gtk_box_pack_end(GTK_BOX(ibox), image, FALSE, TRUE, 0); |
479 gtk_box_pack_end(GTK_BOX(ibox), image, FALSE, TRUE, 0); |
| 480 } |
480 } |
| 481 |
481 |
| 482 if (text) { |
482 if (text) { |
| |
483 GtkLabel *label; |
| |
484 |
| 483 gtk_box_pack_start(GTK_BOX(bbox), lbox, TRUE, TRUE, 0); |
485 gtk_box_pack_start(GTK_BOX(bbox), lbox, TRUE, TRUE, 0); |
| 484 label = gtk_label_new(NULL); |
486 label = GTK_LABEL(gtk_label_new(NULL)); |
| 485 gtk_label_set_text_with_mnemonic(GTK_LABEL(label), text); |
487 gtk_label_set_text_with_mnemonic(label, text); |
| 486 gtk_label_set_mnemonic_widget(GTK_LABEL(label), button); |
488 gtk_label_set_mnemonic_widget(label, button); |
| 487 gtk_box_pack_start(GTK_BOX(lbox), label, FALSE, TRUE, 0); |
489 gtk_box_pack_start(GTK_BOX(lbox), GTK_WIDGET(label), |
| 488 pidgin_set_accessible_label (button, label); |
490 FALSE, TRUE, 0); |
| |
491 pidgin_set_accessible_label(button, label); |
| 489 } |
492 } |
| 490 |
493 |
| 491 gtk_widget_show_all(bbox); |
494 gtk_widget_show_all(bbox); |
| 492 |
495 |
| 493 return button; |
496 return button; |
| 538 } |
541 } |
| 539 |
542 |
| 540 GtkWidget * |
543 GtkWidget * |
| 541 pidgin_make_frame(GtkWidget *parent, const char *title) |
544 pidgin_make_frame(GtkWidget *parent, const char *title) |
| 542 { |
545 { |
| 543 GtkWidget *vbox, *vbox2, *label, *hbox; |
546 GtkWidget *vbox, *vbox2, *hbox; |
| |
547 GtkLabel *label; |
| 544 char *labeltitle; |
548 char *labeltitle; |
| 545 |
549 |
| 546 vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, PIDGIN_HIG_BOX_SPACE); |
550 vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, PIDGIN_HIG_BOX_SPACE); |
| 547 gtk_box_pack_start(GTK_BOX(parent), vbox, FALSE, FALSE, 0); |
551 gtk_box_pack_start(GTK_BOX(parent), vbox, FALSE, FALSE, 0); |
| 548 gtk_widget_show(vbox); |
552 gtk_widget_show(vbox); |
| 549 |
553 |
| 550 label = gtk_label_new(NULL); |
554 label = GTK_LABEL(gtk_label_new(NULL)); |
| 551 |
555 |
| 552 labeltitle = g_strdup_printf("<span weight=\"bold\">%s</span>", title); |
556 labeltitle = g_strdup_printf("<span weight=\"bold\">%s</span>", title); |
| 553 gtk_label_set_markup(GTK_LABEL(label), labeltitle); |
557 gtk_label_set_markup(label, labeltitle); |
| 554 g_free(labeltitle); |
558 g_free(labeltitle); |
| 555 |
559 |
| 556 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); |
560 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); |
| 557 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); |
561 gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(label), FALSE, FALSE, 0); |
| 558 gtk_widget_show(label); |
562 gtk_widget_show(GTK_WIDGET(label)); |
| 559 pidgin_set_accessible_label (vbox, label); |
563 pidgin_set_accessible_label(vbox, label); |
| 560 |
564 |
| 561 hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, PIDGIN_HIG_BOX_SPACE); |
565 hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, PIDGIN_HIG_BOX_SPACE); |
| 562 gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); |
566 gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); |
| 563 gtk_widget_show(hbox); |
567 gtk_widget_show(hbox); |
| 564 |
568 |
| 565 label = gtk_label_new(" "); |
569 label = GTK_LABEL(gtk_label_new(" ")); |
| 566 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
570 gtk_box_pack_start(GTK_BOX(hbox), GTK_WIDGET(label), FALSE, FALSE, 0); |
| 567 gtk_widget_show(label); |
571 gtk_widget_show(GTK_WIDGET(label)); |
| 568 |
572 |
| 569 vbox2 = gtk_box_new(GTK_ORIENTATION_VERTICAL, PIDGIN_HIG_BOX_SPACE); |
573 vbox2 = gtk_box_new(GTK_ORIENTATION_VERTICAL, PIDGIN_HIG_BOX_SPACE); |
| 570 gtk_box_pack_start(GTK_BOX(hbox), vbox2, FALSE, FALSE, 0); |
574 gtk_box_pack_start(GTK_BOX(hbox), vbox2, FALSE, FALSE, 0); |
| 571 gtk_widget_show(vbox2); |
575 gtk_widget_show(vbox2); |
| 572 |
576 |
| 1194 |
1198 |
| 1195 pidgin_set_accessible_relations(w, l); |
1199 pidgin_set_accessible_relations(w, l); |
| 1196 } |
1200 } |
| 1197 |
1201 |
| 1198 void |
1202 void |
| 1199 pidgin_set_accessible_relations (GtkWidget *w, GtkWidget *l) |
1203 pidgin_set_accessible_relations (GtkWidget *w, GtkLabel *l) |
| 1200 { |
1204 { |
| 1201 AtkObject *acc, *label; |
1205 AtkObject *acc, *label; |
| 1202 AtkObject *rel_obj[1]; |
1206 AtkObject *rel_obj[1]; |
| 1203 AtkRelationSet *set; |
1207 AtkRelationSet *set; |
| 1204 AtkRelation *relation; |
1208 AtkRelation *relation; |
| 1205 |
1209 |
| 1206 acc = gtk_widget_get_accessible (w); |
1210 acc = gtk_widget_get_accessible (w); |
| 1207 label = gtk_widget_get_accessible (l); |
1211 label = gtk_widget_get_accessible(GTK_WIDGET(l)); |
| 1208 |
1212 |
| 1209 /* Make sure mnemonics work */ |
1213 /* Make sure mnemonics work */ |
| 1210 gtk_label_set_mnemonic_widget(GTK_LABEL(l), w); |
1214 gtk_label_set_mnemonic_widget(l, w); |
| 1211 |
1215 |
| 1212 /* Create the labeled-by relation */ |
1216 /* Create the labeled-by relation */ |
| 1213 set = atk_object_ref_relation_set (acc); |
1217 set = atk_object_ref_relation_set (acc); |
| 1214 rel_obj[0] = label; |
1218 rel_obj[0] = label; |
| 1215 relation = atk_relation_new (rel_obj, 1, ATK_RELATION_LABELLED_BY); |
1219 relation = atk_relation_new (rel_obj, 1, ATK_RELATION_LABELLED_BY); |