1 /* 2 * Remmina - The GTK+ Remote Desktop Client 3 * Copyright (C) 2016-2021 Antenore Gatta, Giovanni Panozzo 4 * 5 * This program is free software; you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License as published by 7 * the Free Software Foundation; either version 2 of the License, or 8 * (at your option) any later version. 9 * 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * 15 * You should have received a copy of the GNU General Public License 16 * along with this program; if not, write to the Free Software 17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, 18 * Boston, MA 02110-1301, USA. 19 * 20 * In addition, as a special exception, the copyright holders give 21 * permission to link the code of portions of this program with the 22 * OpenSSL library under certain conditions as described in each 23 * individual source file, and distribute linked combinations 24 * including the two. 25 * You must obey the GNU General Public License in all respects 26 * for all of the code used other than OpenSSL. * If you modify 27 * file(s) with this exception, you may extend this exception to your 28 * version of the file(s), but you are not obligated to do so. * If you 29 * do not wish to do so, delete this exception statement from your 30 * version. * If you delete this exception statement from all source 31 * files in the program, then also delete it here. 32 * 33 */ 34 35 #include "common/remmina_plugin.h" 36 37 #include <gdk/gdkkeysyms.h> 38 #include <vncdisplay.h> 39 #include <vncutil.h> 40 #include <vncaudiopulse.h> 41 42 43 #ifndef GDK_Return 44 #define GDK_Return GDK_KEY_Return 45 #endif 46 #ifndef GDK_Escape 47 #define GDK_Escape GDK_KEY_Escape 48 #endif 49 #ifndef GDK_BackSpace 50 #define GDK_BackSpace GDK_KEY_BackSpace 51 #endif 52 #ifndef GDK_Delete 53 #define GDK_Delete GDK_KEY_Delete 54 #endif 55 #ifndef GDK_Control_L 56 #define GDK_Control_L GDK_KEY_Control_L 57 #endif 58 #ifndef GDK_Alt_L 59 #define GDK_Alt_L GDK_KEY_Alt_L 60 #endif 61 #ifndef GDK_F1 62 #define GDK_F1 GDK_KEY_F1 63 #endif 64 #ifndef GDK_F2 65 #define GDK_F2 GDK_KEY_F2 66 #endif 67 #ifndef GDK_F3 68 #define GDK_F3 GDK_KEY_F3 69 #endif 70 #ifndef GDK_F4 71 #define GDK_F4 GDK_KEY_F4 72 #endif 73 #ifndef GDK_F5 74 #define GDK_F5 GDK_KEY_F5 75 #endif 76 #ifndef GDK_F6 77 #define GDK_F6 GDK_KEY_F6 78 #endif 79 #ifndef GDK_F7 80 #define GDK_F7 GDK_KEY_F7 81 #endif 82 #ifndef GDK_F8 83 #define GDK_F8 GDK_KEY_F8 84 #endif 85 #ifndef GDK_F11 86 #define GDK_F11 GDK_KEY_F11 87 #endif 88 89 #define GET_PLUGIN_DATA(gp) (GVncPluginData *)g_object_get_data(G_OBJECT(gp), "plugin-data") 90 #define REMMINA_PLUGIN_DEBUG(fmt, ...) remmina_plugin_service->_remmina_debug(__func__, fmt, ## __VA_ARGS__) 91 92 typedef struct _GVncPluginData { 93 GtkWidget * box; 94 GtkWidget * vnc; 95 VncConnection * conn; 96 VncAudioPulse * pa; 97 gchar * error_msg; 98 gchar * clipstr; 99 gulong signal_clipboard; 100 gint depth_profile; 101 gint shared; 102 gboolean lossy_encoding; 103 gboolean viewonly; 104 gint width; 105 gint height; 106 gint fd; 107 gchar * addr; 108 } GVncPluginData; 109 110 G_BEGIN_DECLS 111 G_END_DECLS 112