Bloatpad: Add a View menu for fullscreen

This commit is contained in:
Matthias Clasen 2011-12-01 17:46:28 -05:00 committed by Ryan Lortie
parent 396876969a
commit 064999cb2a

View File

@ -1,6 +1,31 @@
#include <stdlib.h> #include <stdlib.h>
#include <gtk/gtk.h> #include <gtk/gtk.h>
static void
activate_toggle (GSimpleAction *action,
GVariant *parameter,
gpointer user_data)
{
GVariant *state;
state = g_action_get_state (G_ACTION (action));
g_action_change_state (G_ACTION (action), g_variant_new_boolean (!g_variant_get_boolean (state)));
g_variant_unref (state);
}
static void
change_fullscreen_state (GSimpleAction *action,
GVariant *state,
gpointer user_data)
{
if (g_variant_get_boolean (state))
gtk_window_fullscreen (user_data);
else
gtk_window_unfullscreen (user_data);
g_simple_action_set_state (action, state);
}
static GtkClipboard * static GtkClipboard *
get_clipboard (GtkWidget *widget) get_clipboard (GtkWidget *widget)
{ {
@ -37,6 +62,7 @@ window_paste (GSimpleAction *action,
static GActionEntry win_entries[] = { static GActionEntry win_entries[] = {
{ "copy", window_copy, NULL, NULL, NULL }, { "copy", window_copy, NULL, NULL, NULL },
{ "paste", window_paste, NULL, NULL, NULL }, { "paste", window_paste, NULL, NULL, NULL },
{ "fullscreen", activate_toggle, NULL, "false", change_fullscreen_state }
}; };
static void static void
@ -178,17 +204,21 @@ static GMenuModel *
create_window_menu (void) create_window_menu (void)
{ {
GMenu *menu; GMenu *menu;
GMenu *edit_menu; GMenu *submenu;
edit_menu = g_menu_new (); submenu = g_menu_new ();
g_menu_append (edit_menu, "_Copy", "win.copy"); g_menu_append (submenu, "_Copy", "win.copy");
g_menu_append (edit_menu, "_Paste", "win.paste"); g_menu_append (submenu, "_Paste", "win.paste");
g_menu_append (edit_menu, "_Fullscreen", "win.fullscreen");
menu = g_menu_new (); menu = g_menu_new ();
g_menu_append_submenu (menu, "_Edit", (GMenuModel*)edit_menu); g_menu_append_submenu (menu, "_Edit", (GMenuModel*)submenu);
g_object_unref (edit_menu); g_object_unref (submenu);
submenu = g_menu_new ();
g_menu_append (submenu, "_Fullscreen", "win.fullscreen");
g_menu_append_submenu (menu, "_View", (GMenuModel*)submenu);
g_object_unref (submenu);
return G_MENU_MODEL (menu); return G_MENU_MODEL (menu);
} }