summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--endless/eosactionmenu-private.h6
-rw-r--r--endless/eosactionmenu.c19
-rw-r--r--test/smoke-tests/action-buttons.js14
3 files changed, 21 insertions, 18 deletions
diff --git a/endless/eosactionmenu-private.h b/endless/eosactionmenu-private.h
index 8b3755e..4393fdc 100644
--- a/endless/eosactionmenu-private.h
+++ b/endless/eosactionmenu-private.h
@@ -37,21 +37,21 @@ typedef struct _EosActionMenuPrivate EosActionMenuPrivate;
struct _EosActionMenu
{
- GtkGrid parent;
+ GtkFrame parent;
EosActionMenuPrivate *priv;
};
struct _EosActionMenuClass
{
- GtkGridClass parent_class;
+ GtkFrameClass parent_class;
};
GType eos_action_menu_get_type (void) G_GNUC_CONST;
GtkWidget *eos_action_menu_new ();
-void eos_action_menu_add_action (EosActionMenu *menu,
+void eos_action_menu_add_action (EosActionMenu *menu,
GtkAction *action);
GtkAction *eos_action_menu_get_action (EosActionMenu *menu,
diff --git a/endless/eosactionmenu.c b/endless/eosactionmenu.c
index e3466e2..4a0c5e8 100644
--- a/endless/eosactionmenu.c
+++ b/endless/eosactionmenu.c
@@ -17,13 +17,14 @@
*/
-G_DEFINE_TYPE (EosActionMenu, eos_action_menu, GTK_TYPE_GRID)
+G_DEFINE_TYPE (EosActionMenu, eos_action_menu, GTK_TYPE_FRAME)
#define EOS_ACTION_MENU_PRIVATE(o) \
(G_TYPE_INSTANCE_GET_PRIVATE ((o), EOS_TYPE_ACTION_MENU, EosActionMenuPrivate))
struct _EosActionMenuPrivate
{
+ GtkWidget *grid;
GtkActionGroup *action_group;
};
@@ -58,13 +59,21 @@ eos_action_menu_init (EosActionMenu *self)
context = gtk_widget_get_style_context (GTK_WIDGET (self));
gtk_style_context_add_class (context, _EOS_STYLE_CLASS_ACTION_MENU);
+ priv->grid = gtk_grid_new ();
+ g_object_set (G_OBJECT (priv->grid),
+ "hexpand", TRUE,
+ "hexpand", TRUE,
+ "halign", GTK_ALIGN_CENTER,
+ "valign", GTK_ALIGN_CENTER,
+ NULL);
+ gtk_container_add (GTK_CONTAINER (self),
+ GTK_WIDGET (priv->grid));
+
// TODO : name?
priv->action_group = gtk_action_group_new ("EosActionMenu");
gtk_widget_set_hexpand (GTK_WIDGET (self), TRUE);
gtk_widget_set_vexpand (GTK_WIDGET (self), TRUE);
- gtk_widget_set_halign (GTK_WIDGET (self), GTK_ALIGN_CENTER);
- gtk_widget_set_valign (GTK_WIDGET (self), GTK_ALIGN_CENTER);
}
/* ******* LIFECYCLE ******* */
@@ -126,7 +135,7 @@ eos_action_menu_add_action (EosActionMenu *menu,
gtk_activatable_set_related_action (GTK_ACTIVATABLE (action_button), action);
// TODO : maybe we need a finer control, taking is-important into account?
- gtk_grid_attach_next_to (GTK_GRID (menu), action_button, NULL,
+ gtk_grid_attach_next_to (GTK_GRID (priv->grid), action_button, NULL,
GTK_POS_BOTTOM, 1, 1);
}
}
@@ -205,7 +214,7 @@ eos_action_menu_remove_action_by_name (EosActionMenu *menu,
action = gtk_action_group_get_action (priv->action_group, name);
if (action)
{
- gtk_action_group_remove_action (priv->action_group, action);
+ eos_action_menu_remove_action (menu, action);
}
}
diff --git a/test/smoke-tests/action-buttons.js b/test/smoke-tests/action-buttons.js
index cc8534b..62ab858 100644
--- a/test/smoke-tests/action-buttons.js
+++ b/test/smoke-tests/action-buttons.js
@@ -24,26 +24,20 @@ const TestApplication = new Lang.Class ({
this._darkSwitch = new Gtk.Switch ({active: false});
this._darkSwitch.connect ('notify::active', Lang.bind (this, function (active) {
if (this._darkSwitch.get_active()) {
- this._menu_panel.get_style_context().add_class('dark');
+ this._menu.get_style_context().add_class('dark');
} else {
- this._menu_panel.get_style_context().remove_class('dark');
+ this._menu.get_style_context().remove_class('dark');
}
}));
this._content.add(new Gtk.Label ({label: 'Dark action menu'}), 0, 0, 1, 1);
this._content.add(this._darkSwitch, 0, 1, 1, 1);
- this._menu = new Endless.ActionMenu ();
+ this._menu = new Endless.ActionMenu ({name: 'menu'});
- // put the ActionMenu in a panel, as GtkGrid doesn't expand if none of its children want to
- this._menu_panel = new Gtk.Frame ({name: 'menu'});
- this._menu_panel.add (this._menu);
- this._menu_panel.set_hexpand (true);
- this._menu_panel.set_vexpand (true);
-
// the ActionMenu takes 1/6 of the width
this._page.set_column_homogeneous (true);
this._page.attach (this._content, 0, 0, 5, 1);
- this._page.attach (this._menu_panel, 5, 0, 1, 1);
+ this._page.attach (this._menu, 5, 0, 1, 1);
this._menu.add_action ({
name: 'select',