Bo Forslund wrote:
>
> Can someonte point me to a fairly easy to understand example on how to use
> option_menu? I have tried trial-and-error heavilly on it without success.
You didn't say what you were trying to do.
This part of the FAQ may help:
3.5 How do I get the value of a GtkOptionMenu?
Call gtk_menu_get_active() with the GtkOptionMenu's menu to get the currently
selected menu item. You can use g_list_index() to find its index in the menu:
void
on_button1_clicked (GtkButton *button,
gpointer user_data)
{
GtkWidget *option_menu, *menu, *active_item;
gint active_index;
option_menu = lookup_widget (GTK_WIDGET (button), "optionmenu1");
menu = GTK_OPTION_MENU (option_menu)->menu;
active_item = gtk_menu_get_active (GTK_MENU (menu));
active_index = g_list_index (GTK_MENU_SHELL (menu)->children, active_item);
g_print ("Active index: %i\n", active_index);
}
3.6 How do I get a GtkOptionMenu to call a function when it changes?
Glade doesn't support this at present, but you can set it up manually.
When you create the window, get the option menu and connect to the "deactivate"
signal emitted by its menu:
window1 = create_window1 ();
option_menu = lookup_widget (window1, "optionmenu1");
gtk_signal_connect (GTK_OBJECT (GTK_OPTION_MENU (option_menu)->menu),
"deactivate", GTK_SIGNAL_FUNC (on_option_selected),
NULL);
Then add a handler to callbacks.c. You can get the index of the selected item
just like the previous answer:
static void
on_option_selected (GtkMenuShell *menu_shell,
gpointer data)
{
GtkWidget *active_item;
gint item_index;
active_item = gtk_menu_get_active (GTK_MENU (menu_shell));
item_index = g_list_index (menu_shell->children, active_item);
g_print ("In on_option_selected active: %i\n", item_index);
}
Damon
+---------------------------------------------------------------------+
To unsubscribe from this list, send a message to [EMAIL PROTECTED]
with the line "unsubscribe glade-devel" in the body of the message.