00001
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include <string.h>
00026 #include "menus.h"
00027
00029 GtkWidget *create_menu(SubMenu *cmenu)
00030 {
00031 int j;
00032 GtkWidget *item;
00033 GtkWidget *menu;
00034
00035
00036 menu = gtk_menu_new();
00037
00038
00039 j = 0;
00040 while (cmenu[j].label != NULL) {
00041 if (strlen(cmenu[j].label) == 0)
00042 item = gtk_menu_item_new();
00043 else {
00044 if (cmenu[j].type == TOGGLE_BUTTON) {
00045 item = gtk_check_menu_item_new_with_label(cmenu[j].label);
00046 gtk_check_menu_item_set_show_toggle(GTK_CHECK_MENU_ITEM(item), TRUE);
00047 }
00048 else
00049 item = gtk_menu_item_new_with_label(cmenu[j].label);
00050 }
00051
00052 gtk_menu_append(GTK_MENU(menu), item);
00053 if (cmenu[j].callback != NULL)
00054 gtk_signal_connect_object(GTK_OBJECT(item), "activate",
00055 GTK_SIGNAL_FUNC(cmenu[j].callback),
00056 cmenu[j].data);
00057 gtk_widget_show(item);
00058
00059 if (cmenu[j].store_to != NULL)
00060 *(cmenu[j].store_to) = item;
00061
00062 j++;
00063 }
00064 return menu;
00065 }