| 676 | } |
| 677 | |
| 678 | int |
| 679 | ghack_menu_ext_cmd(void) |
| 680 | { |
| 681 | int n; |
| 682 | GtkWidget *dialog; |
| 683 | GtkWidget *swin; |
| 684 | GtkWidget *frame1; |
| 685 | GtkWidget *clist; |
| 686 | extMenu info; |
| 687 | |
| 688 | dialog = gnome_dialog_new("Extended Commands", GNOME_STOCK_BUTTON_OK, |
| 689 | GNOME_STOCK_BUTTON_CANCEL, NULL); |
| 690 | gnome_dialog_close_hides(GNOME_DIALOG(dialog), FALSE); |
| 691 | gtk_signal_connect(GTK_OBJECT(dialog), "key_press_event", |
| 692 | GTK_SIGNAL_FUNC(ghack_ext_key_hit), &info); |
| 693 | |
| 694 | frame1 = gtk_frame_new("Make your selection"); |
| 695 | gtk_object_set_data(GTK_OBJECT(dialog), "frame1", frame1); |
| 696 | gtk_widget_show(frame1); |
| 697 | gtk_container_border_width(GTK_CONTAINER(frame1), 3); |
| 698 | |
| 699 | swin = gtk_scrolled_window_new(NULL, NULL); |
| 700 | clist = gtk_clist_new(2); |
| 701 | gtk_object_set_data(GTK_OBJECT(dialog), "clist", clist); |
| 702 | gtk_widget_set_usize(clist, 500, 400); |
| 703 | gtk_container_add(GTK_CONTAINER(swin), clist); |
| 704 | gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(swin), |
| 705 | GTK_POLICY_AUTOMATIC, |
| 706 | GTK_POLICY_AUTOMATIC); |
| 707 | |
| 708 | gtk_signal_connect(GTK_OBJECT(clist), "select_row", |
| 709 | GTK_SIGNAL_FUNC(ghack_menu_row_selected), NULL); |
| 710 | |
| 711 | gtk_container_add(GTK_CONTAINER(frame1), swin); |
| 712 | gtk_box_pack_start_defaults(GTK_BOX(GNOME_DIALOG(dialog)->vbox), frame1); |
| 713 | |
| 714 | /* Add the extended commands into the list here... */ |
| 715 | for (n = 0; extcmdlist[n].ef_txt; ++n) { |
| 716 | const char *text[3] = { extcmdlist[n].ef_txt, extcmdlist[n].ef_desc, |
| 717 | NULL }; |
| 718 | gtk_clist_insert(GTK_CLIST(clist), n, (char **) text); |
| 719 | } |
| 720 | |
| 721 | /* fill in starting info fields */ |
| 722 | info.curItem = -1; |
| 723 | info.numRows = n; |
| 724 | info.charIdx = 0; |
| 725 | info.lastTime = 0; |
| 726 | |
| 727 | gtk_clist_columns_autosize(GTK_CLIST(clist)); |
| 728 | gtk_widget_show_all(swin); |
| 729 | |
| 730 | /* Center the dialog over over parent */ |
| 731 | gnome_dialog_set_default(GNOME_DIALOG(dialog), 0); |
| 732 | gtk_window_set_modal(GTK_WINDOW(dialog), TRUE); |
| 733 | gnome_dialog_set_parent(GNOME_DIALOG(dialog), |
| 734 | GTK_WINDOW(ghack_get_main_window())); |
| 735 |
no test coverage detected