static GtkWidget * find_menu_label (GtkWidget *widget) { GtkWidget *label = NULL; if (GTK_IS_LABEL (widget)) return widget; if (GTK_IS_CONTAINER (widget)) { GList *children; GList *l; children = gtk_container_get_children (GTK_CONTAINER (widget)); for (l = children; l; l = l->next) { label = find_menu_label (l->data); if (label) break; } g_list_free (children); } return label; }
static const gchar * get_menu_label_text (GtkWidget *menu_item, GtkWidget **label) { *label = find_menu_label (menu_item); if (!*label) return NULL; return gtk_label_get_text (GTK_LABEL (*label)); }
static const gchar * get_menu_label_text (GtkWidget *menu_item, GtkWidget **label) { GtkWidget *my_label; my_label = find_menu_label (menu_item); if (label) *label = my_label; if (my_label) return gtk_label_get_text (GTK_LABEL (my_label)); return NULL; }