I have a question about the gtk_menu wigdet.
Application:
My GTK 2.2 application build a menu from a sting, in the string every item is separated by "\t".
So the string can look like: "item 1\titem 2\titem3\n".
This string can change when I am running the app, and that must be made visual in the menu.
Problem: If the string changes (it contains other items) I can not see it in the menu.
Question:
What is the best way to make new string entrys visual in the menu?
I this possible anyway?, Or must I use an other widget (like gtk_list).
Or perhaps there I must use an Update-function in my code to update the menu.
Solutions for my problem are more then welcome! :-) Regards Maarten.
This is how I am creating the menu from the string: 'strings':
GtkWidget * create_option_menu (gchar * strings) { GtkWidget *menu; GtkWidget *option_menu; GtkWidget *menu_item; gchar *p;
menu = gtk_menu_new ();
p = strtok (strings, "\t"); while (p != NULL) {
menu_item = gtk_menu_item_new_with_label (p);
gtk_widget_show (menu_item);
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
g_signal_connect_swapped (G_OBJECT (menu_item), "activate", G_CALLBACK (menu_item_select), (gpointer) g_strdup (p));
p = strtok (NULL, "\t"); } option_menu = gtk_option_menu_new ();
gtk_option_menu_set_menu (GTK_OPTION_MENU (option_menu), menu);
return option_menu;
}
I use strtok to separate the entrys from the string.