diff options
Diffstat (limited to 'lib/ui/sugar-menu.c')
-rw-r--r-- | lib/ui/sugar-menu.c | 43 |
1 files changed, 5 insertions, 38 deletions
diff --git a/lib/ui/sugar-menu.c b/lib/ui/sugar-menu.c index 6ed482e..d822867 100644 --- a/lib/ui/sugar-menu.c +++ b/lib/ui/sugar-menu.c @@ -28,54 +28,21 @@ static void sugar_menu_init (SugarMenu *menu); G_DEFINE_TYPE(SugarMenu, sugar_menu, GTK_TYPE_MENU) void -sugar_menu_popup(SugarMenu *menu, - int x, - int y) +sugar_menu_set_active(SugarMenu *menu, gboolean active) { - GtkWidget *window; - - window = GTK_MENU(menu)->toplevel; - g_return_if_fail(window != NULL); - - GTK_MENU_SHELL(menu)->active = TRUE; - - gtk_widget_show(GTK_WIDGET(menu)); - - gtk_window_move(GTK_WINDOW(window), x, y); - gtk_widget_show(window); + GTK_MENU_SHELL(menu)->active = active; } void -sugar_menu_popdown(SugarMenu *menu) -{ - GtkWidget *window; - - window = GTK_MENU(menu)->toplevel; - g_return_if_fail(window != NULL); - - GTK_MENU_SHELL(menu)->active = FALSE; - - gtk_widget_hide(GTK_WIDGET(menu)); - gtk_widget_hide(window); -} - -static void -sugar_menu_size_request (GtkWidget *widget, - GtkRequisition *requisition) +sugar_menu_embed(SugarMenu *menu, GtkContainer *parent) { - SugarMenu *menu = SUGAR_MENU(widget); - - (* GTK_WIDGET_CLASS (sugar_menu_parent_class)->size_request) (widget, requisition); - - requisition->width = MAX(requisition->width, menu->min_width); + GTK_MENU(menu)->toplevel = gtk_widget_get_toplevel(GTK_WIDGET(parent)); + gtk_widget_reparent(GTK_WIDGET(menu), GTK_WIDGET(parent)); } static void sugar_menu_class_init(SugarMenuClass *menu_class) { - GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(menu_class); - - widget_class->size_request = sugar_menu_size_request; } static void |