Re: [gtk-list] Getting the label from gtk_radio_menu_item_new_with_label()
- From: Andy Kahn <ackahn netapp com>
- To: Havoc Pennington <hp redhat com>
- Cc: Andy Kahn <ackahn netapp com>, gtk-list redhat com
- Subject: Re: [gtk-list] Getting the label from gtk_radio_menu_item_new_with_label()
- Date: Mon, 17 Apr 2000 16:24:56 -0700
On Mon, Apr 17, 2000 at 06:29:47PM -0400, Havoc Pennington wrote:
> Andy Kahn <ackahn@netapp.com> writes:
> > In looking at the option menu widget, I couldn't see an obvious way to
> > see any indication that an option menu's button widget has been
> > updated. Is there some way to detect when this happens?
>
> The add/remove signals from GtkContainer may let you do this.
Yup, this did the trick! Thanks!!
For completeness, I'm including the "final" version of the code which
implements the changes you've suggested.
thanks again,
--andy
#include <gtk/gtk.h>
static void
option_menu_cb(GtkWidget *wgt, gpointer cbdata)
{
GtkWidget *child;
GtkButton *button;
char *str;
g_assert(GTK_IS_OPTION_MENU(wgt));
g_print("option_menu_cb() entered\n");
button = &(GTK_OPTION_MENU(wgt)->button);
child = GTK_BIN(button)->child;
g_print("child is 0x%x\n", child ? child : NULL);
g_assert(GTK_IS_LABEL(child));
gtk_label_get(GTK_LABEL(child), &str);
g_print("label str is '%s'\n", str);
}
int
main(int argc, char *argv[])
{
GtkWidget *toplev, *omenu, *menu, *mitem;
int i;
char *texts[] = { "one", "two", "three" };
gtk_init(&argc, &argv);
toplev = gtk_window_new(GTK_WINDOW_TOPLEVEL);
omenu = gtk_option_menu_new();
gtk_container_add(GTK_CONTAINER(toplev), omenu);
menu = gtk_menu_new();
for (i = 0; i < 3; i++) {
mitem = gtk_menu_item_new_with_label(texts[i]);
gtk_menu_append(GTK_MENU(menu), mitem);
gtk_widget_show(mitem);
}
gtk_option_menu_set_menu(GTK_OPTION_MENU(omenu), menu);
gtk_option_menu_set_history(GTK_OPTION_MENU(omenu), 3);
gtk_signal_connect(GTK_OBJECT(omenu),
"add", option_menu_cb, NULL);
gtk_widget_show_all(toplev);
gtk_main();
return 0;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]