Remmina - The GTK+ Remote Desktop Client  v1.4.2
Remmina is a remote desktop client written in GTK+, aiming to be useful for system administrators and travellers, who need to work with lots of remote computers in front of either large monitors or tiny netbooks. Remmina supports multiple network protocols in an integrated and consistent user interface. Currently RDP, VNC, NX, XDMCP and SSH are supported.
remmina_main.h
Go to the documentation of this file.
1 /*
2  * Remmina - The GTK+ Remote Desktop Client
3  * Copyright (C) 2009-2011 Vic Lee
4  * Copyright (C) 2014-2015 Antenore Gatta, Fabio Castelli, Giovanni Panozzo
5  * Copyright (C) 2016-2020 Antenore Gatta, Giovanni Panozzo
6  *
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 2 of the License, or
10  * (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin Street, Fifth Floor,
20  * Boston, MA 02110-1301, USA.
21  *
22  * In addition, as a special exception, the copyright holders give
23  * permission to link the code of portions of this program with the
24  * OpenSSL library under certain conditions as described in each
25  * individual source file, and distribute linked combinations
26  * including the two.
27  * You must obey the GNU General Public License in all respects
28  * for all of the code used other than OpenSSL. * If you modify
29  * file(s) with this exception, you may extend this exception to your
30  * version of the file(s), but you are not obligated to do so. * If you
31  * do not wish to do so, delete this exception statement from your
32  * version. * If you delete this exception statement from all source
33  * files in the program, then also delete it here.
34  *
35  */
36 
37 #include "remmina_string_array.h"
38 
39 #pragma once
40 
41 #include "remmina_file.h"
42 
44 
45 typedef struct _RemminaMain {
46  GtkBuilder * builder;
47  GtkWindow * window;
48  /* Menu widgets */
49  GtkMenu * menu_popup;
50  GtkMenuButton * menu_header_button;
51  GtkMenu * menu_popup_full;
52  GtkRadioMenuItem * menuitem_view_mode_list;
53  GtkRadioMenuItem * menuitem_view_mode_tree;
54  GtkMenuItem * menuitem_connection_quit;
55  /* Button new */
56  GtkButton * button_new;
57  GtkButton * button_make_default;
58  /* Search bar objects */
59  GtkToggleButton * search_toggle;
60  GtkToggleButton * view_toggle_button;
61  GtkToggleButton * ustats_toggle;
62  GtkSearchBar * search_bar;
63  /* Quick connect objects */
65  GtkComboBoxText * combo_quick_connect_protocol;
67  GtkButton * button_quick_connect;
68  /* Other widgets */
69  GtkTreeView * tree_files_list;
70  GtkTreeViewColumn * column_files_list_group;
71  GtkStatusbar * statusbar_main;
72  /* Non widget objects */
73  GtkAccelGroup * accelgroup_shortcuts;
74  /* Actions from the view ActionGroup */
75  GtkToggleAction * action_view_quick_connect;
76  GtkToggleAction * action_view_mode_list;
77  GtkToggleAction * action_view_mode_tree;
79 } RemminaMain;
80 
82  GtkTreeModel * file_model;
83  GtkTreeModel * file_model_filter;
84  GtkTreeModel * file_model_sort;
85 
86  gboolean initialized;
87 
89  gchar * selected_name;
92 };
93 
94 G_BEGIN_DECLS
95 
96 /* Create the main Remmina window */
97 GtkWidget *remmina_main_new(void);
98 /* Get the current main window or NULL if not initialized */
99 GtkWindow *remmina_main_get_window(void);
100 
102 
103 void remmina_main_destroy(void);
105 
106 void remmina_main_show_warning_dialog(const gchar *message);
107 void remmina_main_on_action_application_about(GSimpleAction *action, GVariant *param, gpointer data);
108 void remmina_main_on_action_application_news(GSimpleAction *action, GVariant *param, gpointer data);
109 void remmina_main_on_action_application_default(GSimpleAction *action, GVariant *param, gpointer data);
110 void remmina_main_on_action_application_mpchange(GSimpleAction *action, GVariant *param, gpointer data);
111 void remmina_main_on_action_application_plugins(GSimpleAction *action, GVariant *param, gpointer data);
112 void remmina_main_on_action_application_preferences(GSimpleAction *action, GVariant *param, gpointer data);
113 void remmina_main_on_action_application_quit(GSimpleAction *action, GVariant *param, gpointer data);
114 void remmina_main_on_action_connection_connect(GSimpleAction *action, GVariant *param, gpointer data);
115 void remmina_main_on_action_connection_copy(GSimpleAction *action, GVariant *param, gpointer data);
116 void remmina_main_on_action_connection_delete(GSimpleAction *action, GVariant *param, gpointer data);
117 void remmina_main_on_action_connection_edit(GSimpleAction *action, GVariant *param, gpointer data);
118 void remmina_main_on_action_connection_external_tools(GSimpleAction *action, GVariant *param, gpointer data);
119 void remmina_main_on_action_connection_new(GSimpleAction *action, GVariant *param, gpointer data);
120 void remmina_main_on_action_help_community(GSimpleAction *action, GVariant *param, gpointer data);
121 void remmina_main_on_action_help_debug(GSimpleAction *action, GVariant *param, gpointer data);
122 void remmina_main_on_action_help_donations(GSimpleAction *action, GVariant *param, gpointer data);
123 void remmina_main_on_action_help_homepage(GSimpleAction *action, GVariant *param, gpointer data);
124 void remmina_main_on_action_help_wiki(GSimpleAction *action, GVariant *param, gpointer data);
125 void remmina_main_on_action_tools_export(GSimpleAction *action, GVariant *param, gpointer data);
126 void remmina_main_on_action_tools_import(GSimpleAction *action, GVariant *param, gpointer data);
127 void remmina_main_on_action_expand(GSimpleAction *action, GVariant *param, gpointer data);
128 void remmina_main_on_action_collapse(GSimpleAction *action, GVariant *param, gpointer data);
129 
130 G_END_DECLS
void remmina_main_on_action_application_plugins(GSimpleAction *action, GVariant *param, gpointer data)
Definition: remmina_main.c:995
GtkToggleButton * search_toggle
Definition: remmina_main.h:59
GtkRadioMenuItem * menuitem_view_mode_list
Definition: remmina_main.h:52
GtkToggleAction * action_view_quick_connect
Definition: remmina_main.h:75
void remmina_main_on_action_connection_external_tools(GSimpleAction *action, GVariant *param, gpointer data)
Definition: remmina_main.c:681
void remmina_main_save_before_destroy(void)
Save the Remmina Main Window size and the exapnded group before to close Remmina. ...
Definition: remmina_main.c:172
G_BEGIN_DECLS typedef GPtrArray RemminaStringArray
gchar * selected_filename
Definition: remmina_main.h:88
GtkTreeModel * file_model
Definition: remmina_main.h:82
void remmina_main_destroy(void)
Called when the main window is destroyed via a call from gtk_widget_destroy()
Definition: remmina_main.c:227
RemminaMainPriv * priv
Definition: remmina_main.h:78
void remmina_main_on_action_help_homepage(GSimpleAction *action, GVariant *param, gpointer data)
typedefG_BEGIN_DECLS struct _RemminaFile RemminaFile
Definition: types.h:41
GtkMenuItem * menuitem_connection_quit
Definition: remmina_main.h:54
GtkRadioMenuItem * menuitem_view_mode_tree
Definition: remmina_main.h:53
void remmina_main_on_action_expand(GSimpleAction *action, GVariant *param, gpointer data)
void remmina_main_on_action_help_debug(GSimpleAction *action, GVariant *param, gpointer data)
void remmina_main_on_action_connection_copy(GSimpleAction *action, GVariant *param, gpointer data)
Definition: remmina_main.c:773
G_BEGIN_DECLS GtkWidget * remmina_main_new(void)
void remmina_main_on_action_tools_import(GSimpleAction *action, GVariant *param, gpointer data)
Definition: remmina_main.c:953
GtkAccelGroup * accelgroup_shortcuts
Definition: remmina_main.h:73
GtkTreeModel * file_model_filter
Definition: remmina_main.h:83
gchar * selected_name
Definition: remmina_main.h:89
void remmina_main_on_action_connection_delete(GSimpleAction *action, GVariant *param, gpointer data)
Definition: remmina_main.c:818
void remmina_main_on_action_application_about(GSimpleAction *action, GVariant *param, gpointer data)
GtkMenuButton * menu_header_button
Definition: remmina_main.h:50
void remmina_main_on_action_application_preferences(GSimpleAction *action, GVariant *param, gpointer data)
Definition: remmina_main.c:843
GtkMenu * menu_popup
Definition: remmina_main.h:49
gboolean initialized
Definition: remmina_main.h:86
GtkComboBoxText * combo_quick_connect_protocol
Definition: remmina_main.h:65
GtkBox * box_quick_connect
Definition: remmina_main.h:64
void remmina_main_on_action_help_community(GSimpleAction *action, GVariant *param, gpointer data)
GtkButton * button_new
Definition: remmina_main.h:56
GtkMenu * menu_popup_full
Definition: remmina_main.h:51
GtkToggleAction * action_view_mode_list
Definition: remmina_main.h:76
GtkStatusbar * statusbar_main
Definition: remmina_main.h:71
GtkBuilder * builder
Definition: remmina_main.h:46
GtkButton * button_quick_connect
Definition: remmina_main.h:67
void remmina_main_on_action_tools_export(GSimpleAction *action, GVariant *param, gpointer data)
Definition: remmina_main.c:965
GtkWindow * remmina_main_get_window(void)
GtkToggleAction * action_view_mode_tree
Definition: remmina_main.h:77
void remmina_main_on_action_application_mpchange(GSimpleAction *action, GVariant *param, gpointer data)
Definition: remmina_main.c:699
GtkTreeView * tree_files_list
Definition: remmina_main.h:69
GtkToggleButton * view_toggle_button
Definition: remmina_main.h:60
GtkTreeViewColumn * column_files_list_group
Definition: remmina_main.h:70
RemminaStringArray * expanded_group
Definition: remmina_main.h:91
void remmina_main_on_action_application_news(GSimpleAction *action, GVariant *param, gpointer data)
void remmina_main_on_action_connection_edit(GSimpleAction *action, GVariant *param, gpointer data)
Definition: remmina_main.c:796
void remmina_main_show_warning_dialog(const gchar *message)
void remmina_main_on_action_application_default(GSimpleAction *action, GVariant *param, gpointer data)
Definition: remmina_main.c:853
GtkTreeModel * file_model_sort
Definition: remmina_main.h:84
void remmina_main_update_file_datetime(RemminaFile *file)
void remmina_main_on_action_connection_connect(GSimpleAction *action, GVariant *param, gpointer data)
Definition: remmina_main.c:661
GtkWindow * window
Definition: remmina_main.h:47
void remmina_main_on_action_application_quit(GSimpleAction *action, GVariant *param, gpointer data)
Definition: remmina_main.c:879
GtkToggleButton * ustats_toggle
Definition: remmina_main.h:61
void remmina_main_on_action_connection_new(GSimpleAction *action, GVariant *param, gpointer data)
Definition: remmina_main.c:730
void remmina_main_on_action_collapse(GSimpleAction *action, GVariant *param, gpointer data)
GtkButton * button_make_default
Definition: remmina_main.h:57
void remmina_main_on_action_help_donations(GSimpleAction *action, GVariant *param, gpointer data)
GtkSearchBar * search_bar
Definition: remmina_main.h:62
GtkEntry * entry_quick_connect_server
Definition: remmina_main.h:66
void remmina_main_on_action_help_wiki(GSimpleAction *action, GVariant *param, gpointer data)
gboolean override_view_file_mode_to_list
Definition: remmina_main.h:90
struct _RemminaMain RemminaMain