diff --git a/pw3270.cbp b/pw3270.cbp
index 55de2c4..5ff299f 100644
--- a/pw3270.cbp
+++ b/pw3270.cbp
@@ -57,6 +57,9 @@
+
+
+
diff --git a/src/objects/actions/clipboard.c b/src/objects/actions/clipboard.c
new file mode 100644
index 0000000..de67b7d
--- /dev/null
+++ b/src/objects/actions/clipboard.c
@@ -0,0 +1,132 @@
+/*
+ * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270
+ * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a
+ * aplicativos mainframe. Registro no INPI sob o nome G3270.
+ *
+ * Copyright (C) <2008>
+ *
+ * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob
+ * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela
+ * Free Software Foundation.
+ *
+ * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER
+ * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO
+ * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para
+ * obter mais detalhes.
+ *
+ * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este
+ * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin
+ * St, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Este programa está nomeado como - e possui - linhas de código.
+ *
+ * Contatos:
+ *
+ * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
+ * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça)
+ *
+ */
+
+ /**
+ * @brief Implement PW3270 clipboard actions.
+ *
+ */
+
+ #include "private.h"
+ #include
+
+ static void activate_copy(GAction G_GNUC_UNUSED(*action), GVariant G_GNUC_UNUSED(*parameter), GtkWidget *terminal) {
+
+ debug("%s",__FUNCTION__);
+ v3270_copy_selection(terminal,V3270_SELECT_TEXT,FALSE);
+
+ }
+
+ static void activate_cut(GAction G_GNUC_UNUSED(*action), GVariant G_GNUC_UNUSED(*parameter), GtkWidget *terminal) {
+
+ debug("%s",__FUNCTION__);
+ v3270_copy_selection(terminal,V3270_SELECT_TEXT,TRUE);
+
+ }
+
+ static void activate_paste(GAction G_GNUC_UNUSED(*action), GVariant G_GNUC_UNUSED(*parameter), GtkWidget *terminal) {
+
+ debug("%s",__FUNCTION__);
+ v3270_paste(terminal);
+
+ }
+
+ GAction * pw3270_copy_action_new(void) {
+
+ static const LIB3270_ACTION action_descriptor = {
+ .name = "copy",
+ .type = LIB3270_ACTION_TYPE_SELECTION,
+
+ .key = "c",
+ .icon = "edit-copy",
+ .label = N_( "_Copy" ),
+ .summary = N_( "Copy selected area to clipboard." ),
+ .activate = NULL,
+
+ .group = LIB3270_ACTION_GROUP_SELECTED,
+ .activatable = lib3270_has_selection
+
+ };
+
+ GAction * action = pw3270_action_new_from_lib3270(&action_descriptor);
+
+ PW3270_ACTION(action)->activate = activate_copy;
+
+ return action;
+
+ }
+
+ GAction * pw3270_cut_action_new(void) {
+
+ static const LIB3270_ACTION action_descriptor = {
+ .name = "cut",
+ .type = LIB3270_ACTION_TYPE_SELECTION,
+
+ .key = "x",
+ .icon = "edit-cut",
+ .label = N_( "_Cut" ),
+ .summary = N_( "Cut selected area." ),
+ .activate = NULL,
+
+ .group = LIB3270_ACTION_GROUP_SELECTED,
+ .activatable = lib3270_has_selection
+
+ };
+
+ GAction * action = pw3270_action_new_from_lib3270(&action_descriptor);
+
+ PW3270_ACTION(action)->activate = activate_cut;
+
+ return action;
+
+ }
+
+ GAction * pw3270_paste_action_new(void) {
+
+ static const LIB3270_ACTION action_descriptor = {
+ .name = "paste",
+ .type = LIB3270_ACTION_TYPE_SELECTION,
+
+ .key = "v",
+ .icon = "edit-paste",
+ .label = N_( "_Paste" ),
+ .summary = N_( "Paste data from clipboard." ),
+ .activate = NULL,
+
+ .group = LIB3270_ACTION_GROUP_ONLINE,
+ .activatable = lib3270_is_connected
+
+ };
+
+ GAction * action = pw3270_action_new_from_lib3270(&action_descriptor);
+
+ PW3270_ACTION(action)->activate = activate_paste;
+
+ return action;
+
+ }
diff --git a/src/objects/actions/private.h b/src/objects/actions/private.h
index 810b838..6fffb48 100644
--- a/src/objects/actions/private.h
+++ b/src/objects/actions/private.h
@@ -90,5 +90,7 @@
// Internal actions
G_GNUC_INTERNAL GAction * pw3270_connect_action_new(void);
+ G_GNUC_INTERNAL GAction * pw3270_copy_action_new(void);
+ G_GNUC_INTERNAL GAction * pw3270_paste_action_new(void);
#endif // PRIVATE_H_INCLUDED
diff --git a/src/objects/actions/window.c b/src/objects/actions/window.c
index bbdb235..c280b62 100644
--- a/src/objects/actions/window.c
+++ b/src/objects/actions/window.c
@@ -68,7 +68,10 @@
GAction * actions[] = {
pw3270_action_new_pfkey(),
pw3270_action_new_pakey(),
- pw3270_connect_action_new()
+ pw3270_connect_action_new(),
+ pw3270_copy_action_new(),
+ pw3270_cut_action_new(),
+ pw3270_paste_action_new()
};
for(ix = 0; ix < G_N_ELEMENTS(actions); ix++) {
diff --git a/src/objects/window/tools.c b/src/objects/window/tools.c
index fb5d45a..b695724 100644
--- a/src/objects/window/tools.c
+++ b/src/objects/window/tools.c
@@ -28,6 +28,7 @@
*/
#include "private.h"
+ #include
GtkWidget * pw3270_setup_image_button(GtkWidget *button, const gchar *image_name) {
diff --git a/src/objects/window/window.c b/src/objects/window/window.c
index 88d634f..9b3143f 100644
--- a/src/objects/window/window.c
+++ b/src/objects/window/window.c
@@ -102,15 +102,14 @@
//
{
static const gchar *actions[] = {
- "win.select_all",
"win.copy",
"win.paste",
+ "win.select_all",
"separator",
"win.connect",
"win.disconnect",
"separator",
- "win.print",
- "win.close"
+ "win.print"
};
size_t ix;
--
libgit2 0.21.2