diff options
author | Antenore Gatta <antenore@simbiosi.org> | 2018-03-24 00:19:39 +0300 |
---|---|---|
committer | Antenore Gatta <antenore@simbiosi.org> | 2018-03-24 00:19:39 +0300 |
commit | 9bdd19746a0d62fc76e906d561f59f1855c1a54f (patch) | |
tree | bd50983a12e2461780c36d63110f2eefacd25be8 /plugins/tool_hello_world | |
parent | da29a0661b5734c48490f567a8464fff37acbc5a (diff) |
Refactoring - Moving all plugins inside the plugins directory
Diffstat (limited to 'plugins/tool_hello_world')
-rw-r--r-- | plugins/tool_hello_world/16x16/emblems/remmina-tool.png | bin | 0 -> 721 bytes | |||
-rw-r--r-- | plugins/tool_hello_world/22x22/emblems/remmina-tool.png | bin | 0 -> 1204 bytes | |||
-rw-r--r-- | plugins/tool_hello_world/CMakeLists.txt | 57 | ||||
-rw-r--r-- | plugins/tool_hello_world/plugin.c | 123 | ||||
-rw-r--r-- | plugins/tool_hello_world/plugin_config.h | 43 |
5 files changed, 223 insertions, 0 deletions
diff --git a/plugins/tool_hello_world/16x16/emblems/remmina-tool.png b/plugins/tool_hello_world/16x16/emblems/remmina-tool.png Binary files differnew file mode 100644 index 000000000..96bc6828a --- /dev/null +++ b/plugins/tool_hello_world/16x16/emblems/remmina-tool.png diff --git a/plugins/tool_hello_world/22x22/emblems/remmina-tool.png b/plugins/tool_hello_world/22x22/emblems/remmina-tool.png Binary files differnew file mode 100644 index 000000000..a28ca75ad --- /dev/null +++ b/plugins/tool_hello_world/22x22/emblems/remmina-tool.png diff --git a/plugins/tool_hello_world/CMakeLists.txt b/plugins/tool_hello_world/CMakeLists.txt new file mode 100644 index 000000000..5fa226d5d --- /dev/null +++ b/plugins/tool_hello_world/CMakeLists.txt @@ -0,0 +1,57 @@ +# remmina-plugin-tool_hello_world - The GTK+ Remote Desktop Client +# +# Copyright (C) 2014-2015 Antenore Gatta, Fabio Castelli, Giovanni Panozzo +# Copyright (C) 2016-2017 Antenore Gatta, Giovanni Panozzo +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, +# Boston, MA 02110-1301, USA. +# +# In addition, as a special exception, the copyright holders give +# permission to link the code of portions of this program with the +# OpenSSL library under certain conditions as described in each +# individual source file, and distribute linked combinations +# including the two. +# You must obey the GNU General Public License in all respects +# for all of the code used other than OpenSSL. If you modify +# file(s) with this exception, you may extend this exception to your +# version of the file(s), but you are not obligated to do so. If you +# do not wish to do so, delete this exception statement from your +# version. If you delete this exception statement from all source +# files in the program, then also delete it here. + + +set(REMMINA_PLUGIN_SRCS + plugin_config.h + plugin.c +) + +add_library(remmina-plugin-tool_hello_world MODULE ${REMMINA_PLUGIN_SRCS}) +set_target_properties(remmina-plugin-tool_hello_world PROPERTIES PREFIX "") +set_target_properties(remmina-plugin-tool_hello_world PROPERTIES NO_SONAME 1) + +include_directories(${REMMINA_COMMON_INCLUDE_DIRS}) +include_directories(${GTK_INCLUDE_DIRS}) +include_directories(${CMAKE_SOURCE_DIR}/plugins) + +install(TARGETS remmina-plugin-tool_hello_world DESTINATION ${REMMINA_PLUGINDIR}) + +install(FILES + 16x16/emblems/remmina-tool.png + 16x16/emblems/remmina-tool.png + DESTINATION ${APPICON16_EMBLEMS_DIR}) +install(FILES + 22x22/emblems/remmina-tool.png + 22x22/emblems/remmina-tool.png + DESTINATION ${APPICON22_EMBLEMS_DIR}) diff --git a/plugins/tool_hello_world/plugin.c b/plugins/tool_hello_world/plugin.c new file mode 100644 index 000000000..895efebf0 --- /dev/null +++ b/plugins/tool_hello_world/plugin.c @@ -0,0 +1,123 @@ +/* + * Remmina - The GTK+ Remote Desktop Client + * Copyright (C) 2010 Vic Lee + * Copyright (C) 2014-2015 Antenore Gatta, Fabio Castelli, Giovanni Panozzo + * Copyright (C) 2016-2017 Antenore Gatta, Giovanni Panozzo + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + * + * In addition, as a special exception, the copyright holders give + * permission to link the code of portions of this program with the + * OpenSSL library under certain conditions as described in each + * individual source file, and distribute linked combinations + * including the two. + * You must obey the GNU General Public License in all respects + * for all of the code used other than OpenSSL. * If you modify + * file(s) with this exception, you may extend this exception to your + * version of the file(s), but you are not obligated to do so. * If you + * do not wish to do so, delete this exception statement from your + * version. * If you delete this exception statement from all source + * files in the program, then also delete it here. + * + */ + +#include "plugin_config.h" + +#include "common/remmina_plugin.h" + +#if GTK_VERSION == 3 +# include <gtk/gtkx.h> +# include <gdk/gdkx.h> +#endif + +static RemminaPluginService *remmina_plugin_service = NULL; + +static void remmina_plugin_tool_init(RemminaProtocolWidget *gp) +{ + TRACE_CALL(__func__); + remmina_plugin_service->log_printf("[%s] Plugin init\n", PLUGIN_NAME); +} + +static gboolean remmina_plugin_tool_open_connection(RemminaProtocolWidget *gp) +{ + TRACE_CALL(__func__); + remmina_plugin_service->log_printf("[%s] Plugin open connection\n", PLUGIN_NAME); + + GtkDialog *dialog; + dialog = GTK_DIALOG(gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL | GTK_DIALOG_USE_HEADER_BAR, + GTK_MESSAGE_INFO, GTK_BUTTONS_OK, PLUGIN_DESCRIPTION)); + gtk_dialog_run(dialog); + gtk_widget_destroy(GTK_WIDGET(dialog)); + return FALSE; +} + +static gboolean remmina_plugin_tool_close_connection(RemminaProtocolWidget *gp) +{ + TRACE_CALL(__func__); + remmina_plugin_service->log_printf("[%s] Plugin close connection\n", PLUGIN_NAME); + remmina_plugin_service->protocol_plugin_emit_signal(gp, "disconnect"); + return FALSE; +} + +/* Array of RemminaProtocolSetting for basic settings. + * Each item is composed by: + * a) RemminaProtocolSettingType for setting type + * b) Setting name + * c) Setting description + * d) Compact disposition + * e) Values for REMMINA_PROTOCOL_SETTING_TYPE_SELECT or REMMINA_PROTOCOL_SETTING_TYPE_COMBO + * f) Unused pointer + */ +static const RemminaProtocolSetting remmina_plugin_tool_basic_settings[] = +{ + { REMMINA_PROTOCOL_SETTING_TYPE_END, NULL, NULL, FALSE, NULL, NULL } +}; + +/* Protocol plugin definition and features */ +static RemminaProtocolPlugin remmina_plugin = { + REMMINA_PLUGIN_TYPE_PROTOCOL, // Type + PLUGIN_NAME, // Name + PLUGIN_DESCRIPTION, // Description + GETTEXT_PACKAGE, // Translation domain + PLUGIN_VERSION, // Version number + PLUGIN_APPICON, // Icon for normal connection + PLUGIN_APPICON, // Icon for SSH connection + remmina_plugin_tool_basic_settings, // Array for basic settings + NULL, // Array for advanced settings + REMMINA_PROTOCOL_SSH_SETTING_NONE, // SSH settings type + NULL, // Array for available features + remmina_plugin_tool_init, // Plugin initialization + remmina_plugin_tool_open_connection, // Plugin open connection + remmina_plugin_tool_close_connection, // Plugin close connection + NULL, // Query for available features + NULL, // Call a feature + NULL, // Send a keystroke */ +}; + +G_MODULE_EXPORT gboolean remmina_plugin_entry(RemminaPluginService *service) +{ + TRACE_CALL(__func__); + remmina_plugin_service = service; + + bindtextdomain(GETTEXT_PACKAGE, REMMINA_RUNTIME_LOCALEDIR); + bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8"); + + if (!service->register_plugin((RemminaPlugin*)&remmina_plugin)) { + return FALSE; + } + + return TRUE; +} diff --git a/plugins/tool_hello_world/plugin_config.h b/plugins/tool_hello_world/plugin_config.h new file mode 100644 index 000000000..154c25192 --- /dev/null +++ b/plugins/tool_hello_world/plugin_config.h @@ -0,0 +1,43 @@ +/* + * Remmina - The GTK+ Remote Desktop Client + * Copyright (C) 2015 Antenore Gatta, Fabio Castelli, Giovanni Panozzo + * Copyright (C) 2016-2017 Antenore Gatta, Giovanni Panozzo + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + * + * In addition, as a special exception, the copyright holders give + * permission to link the code of portions of this program with the + * OpenSSL library under certain conditions as described in each + * individual source file, and distribute linked combinations + * including the two. + * You must obey the GNU General Public License in all respects + * for all of the code used other than OpenSSL. * If you modify + * file(s) with this exception, you may extend this exception to your + * version of the file(s), but you are not obligated to do so. * If you + * do not wish to do so, delete this exception statement from your + * version. * If you delete this exception statement from all source + * files in the program, then also delete it here. + * + */ + +#ifndef __PLUGIN_CONFIG_H +#define __PLUGIN_CONFIG_H + +#define PLUGIN_NAME "HELLO" +#define PLUGIN_DESCRIPTION "Hello World!" +#define PLUGIN_VERSION "1.0" +#define PLUGIN_APPICON "remmina-tool" +#endif |