1 /*
2 * pluma-view-commands.c
3 * This file is part of pluma
4 *
5 * Copyright (C) 1998, 1999 Alex Roberts, Evan Lawrence
6 * Copyright (C) 2000, 2001 Chema Celorio, Paolo Maggi
7 * Copyright (C) 2002-2005 Paolo Maggi
8 * Copyright (C) 2012-2021 MATE Developers
9 *
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 2 of the License, or
13 * (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public License
21 * along with this program; if not, write to the Free Software
22 * Foundation, Inc., 51 Franklin St, Fifth Floor,
23 * Boston, MA 02110-1301, USA.
24 */
25
26 /*
27 * Modified by the pluma Team, 1998-2005. See the AUTHORS file for a
28 * list of people on the pluma Team.
29 * See the ChangeLog files for a list of changes.
30 *
31 * $Id$
32 */
33
34 #ifdef HAVE_CONFIG_H
35 #include <config.h>
36 #endif
37
38 #include <gtk/gtk.h>
39
40 #include "pluma-commands.h"
41 #include "pluma-debug.h"
42 #include "pluma-window.h"
43 #include "pluma-window-private.h"
44
45
46 void
_pluma_cmd_view_show_toolbar(GtkAction * action,PlumaWindow * window)47 _pluma_cmd_view_show_toolbar (GtkAction *action,
48 PlumaWindow *window)
49 {
50 gboolean visible;
51
52 pluma_debug (DEBUG_COMMANDS);
53
54 visible = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action));
55
56 if (visible)
57 gtk_widget_show (window->priv->toolbar);
58 else
59 gtk_widget_hide (window->priv->toolbar);
60 }
61
62 void
_pluma_cmd_view_show_statusbar(GtkAction * action,PlumaWindow * window)63 _pluma_cmd_view_show_statusbar (GtkAction *action,
64 PlumaWindow *window)
65 {
66 gboolean visible;
67
68 pluma_debug (DEBUG_COMMANDS);
69
70 visible = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action));
71
72 if (visible)
73 gtk_widget_show (window->priv->statusbar);
74 else
75 gtk_widget_hide (window->priv->statusbar);
76 }
77
78 void
_pluma_cmd_view_show_side_pane(GtkAction * action,PlumaWindow * window)79 _pluma_cmd_view_show_side_pane (GtkAction *action,
80 PlumaWindow *window)
81 {
82 gboolean visible;
83 PlumaPanel *panel;
84
85 pluma_debug (DEBUG_COMMANDS);
86
87 visible = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action));
88
89 panel = pluma_window_get_side_panel (window);
90
91 if (visible)
92 {
93 gtk_widget_show (GTK_WIDGET (panel));
94 gtk_widget_grab_focus (GTK_WIDGET (panel));
95 }
96 else
97 {
98 gtk_widget_hide (GTK_WIDGET (panel));
99 }
100 }
101
102 void
_pluma_cmd_view_show_bottom_pane(GtkAction * action,PlumaWindow * window)103 _pluma_cmd_view_show_bottom_pane (GtkAction *action,
104 PlumaWindow *window)
105 {
106 gboolean visible;
107 PlumaPanel *panel;
108
109 pluma_debug (DEBUG_COMMANDS);
110
111 visible = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action));
112
113 panel = pluma_window_get_bottom_panel (window);
114
115 if (visible)
116 {
117 gtk_widget_show (GTK_WIDGET (panel));
118 gtk_widget_grab_focus (GTK_WIDGET (panel));
119 }
120 else
121 {
122 gtk_widget_hide (GTK_WIDGET (panel));
123 }
124 }
125
126 void
_pluma_cmd_view_toggle_fullscreen_mode(GtkAction * action,PlumaWindow * window)127 _pluma_cmd_view_toggle_fullscreen_mode (GtkAction *action,
128 PlumaWindow *window)
129 {
130 pluma_debug (DEBUG_COMMANDS);
131
132 if (_pluma_window_is_fullscreen (window))
133 _pluma_window_unfullscreen (window);
134 else
135 _pluma_window_fullscreen (window);
136 }
137
138 void
_pluma_cmd_view_leave_fullscreen_mode(GtkAction * action,PlumaWindow * window)139 _pluma_cmd_view_leave_fullscreen_mode (GtkAction *action,
140 PlumaWindow *window)
141 {
142 GtkAction *view_action;
143
144 view_action = gtk_action_group_get_action (window->priv->always_sensitive_action_group,
145 "ViewFullscreen");
146 g_signal_handlers_block_by_func
147 (view_action, G_CALLBACK (_pluma_cmd_view_toggle_fullscreen_mode),
148 window);
149 gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (view_action),
150 FALSE);
151 _pluma_window_unfullscreen (window);
152 g_signal_handlers_unblock_by_func
153 (view_action, G_CALLBACK (_pluma_cmd_view_toggle_fullscreen_mode),
154 window);
155 }
156