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