]> Pileus Git - aweather/blobdiff - src/aweather-gui.c
Add fullscreen view
[aweather] / src / aweather-gui.c
index c6a89ca731b718411fe717a682c4dff462b0eb2c..7b42818d912452dc08c0a344c45e8d549ec62db4 100644 (file)
@@ -34,8 +34,13 @@ G_MODULE_EXPORT gboolean on_gui_key_press(GtkWidget *widget, GdkEventKey *event,
 {
        g_debug("AWeatherGui: on_gui_key_press - key=%x, state=%x",
                        event->keyval, event->state);
+       GObject *action = aweather_gui_get_object(self, "fullscreen");
+       gboolean full   = gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(action));
        if (event->keyval == GDK_q)
                gtk_widget_destroy(GTK_WIDGET(self));
+       else if (event->keyval == GDK_F11 ||
+               (event->keyval == GDK_Escape && full))
+               gtk_action_activate(GTK_ACTION(action));
        else if (event->keyval == GDK_r && event->state & GDK_CONTROL_MASK)
                grits_viewer_refresh(self->viewer);
        else if (event->keyval == GDK_Tab || event->keyval == GDK_ISO_Left_Tab) {
@@ -109,6 +114,21 @@ G_MODULE_EXPORT void on_zoomout(GtkAction *action, AWeatherGui *self)
        grits_viewer_zoom(self->viewer, 4./3);
 }
 
+G_MODULE_EXPORT void on_fullscreen(GtkToggleAction *action, AWeatherGui *self)
+{
+       g_message("fullscreen");
+       gchar *hide[] = {"main_menu", "main_sidebar", "main_tabs"};
+       if (gtk_toggle_action_get_active(action)) {
+               gtk_window_fullscreen(GTK_WINDOW(self));
+               for (int i = 0; i < G_N_ELEMENTS(hide); i++)
+                       gtk_widget_hide(aweather_gui_get_widget(self, hide[i]));
+       } else {
+               gtk_window_unfullscreen(GTK_WINDOW(self));
+               for (int i = 0; i < G_N_ELEMENTS(hide); i++)
+                       gtk_widget_show(aweather_gui_get_widget(self, hide[i]));
+       }
+}
+
 G_MODULE_EXPORT void on_refresh(GtkAction *action, AWeatherGui *self)
 {
        grits_viewer_refresh(self->viewer);
@@ -285,7 +305,7 @@ static void prefs_setup(AWeatherGui *self)
                        "Plugin",  rend1, "text",   0, NULL);
        GtkTreeViewColumn *col2  = gtk_tree_view_column_new_with_attributes(
                        "Enabled", rend2, "active", 1, NULL);
-       g_object_set(rend2, "xalign", 0, NULL);
+       g_object_set(rend2, "xalign", 0.0, NULL);
        gtk_tree_view_append_column(tview, col1);
        gtk_tree_view_append_column(tview, col2);
        g_signal_connect(rend2, "toggled", G_CALLBACK(on_plugin_toggled), self);