Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/ui/sugar-menu.c43
-rw-r--r--lib/ui/sugar-menu.h12
2 files changed, 10 insertions, 45 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
diff --git a/lib/ui/sugar-menu.h b/lib/ui/sugar-menu.h
index 24e2865..05e2802 100644
--- a/lib/ui/sugar-menu.h
+++ b/lib/ui/sugar-menu.h
@@ -44,13 +44,11 @@ struct _SugarMenuClass {
GtkMenuClass base_class;
};
-GType sugar_menu_get_type (void);
-void sugar_menu_popup (SugarMenu *menu,
- int x,
- int y);
-void sugar_menu_set_min_width (SugarMenu *menu,
- int min_width);
-void sugar_menu_popdown (SugarMenu *menu);
+GType sugar_menu_get_type (void);
+void sugar_menu_set_active (SugarMenu *menu,
+ gboolean active);
+void sugar_menu_embed (SugarMenu *menu,
+ GtkContainer *parent);
G_END_DECLS