diff --git a/Makefile.in b/Makefile.in
index 6653d33..0655d04 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -34,6 +34,7 @@ SOURCES= \
$(wildcard src/objects/actions/*.c) \
$(wildcard src/objects/actions/lib3270/*.c) \
$(wildcard src/objects/window/*.c) \
+ $(wildcard src/objects/window/actions/*.c) \
$(wildcard src/objects/terminal/*.c) \
$(wildcard src/objects/toolbar/*.c) \
$(wildcard src/main/*.c) \
diff --git a/pw3270.cbp b/pw3270.cbp
index d874056..0855b26 100644
--- a/pw3270.cbp
+++ b/pw3270.cbp
@@ -89,7 +89,10 @@
-
+
+
+
+
diff --git a/src/objects/window/actions.c b/src/objects/window/actions.c
deleted file mode 100644
index a1ce3d1..0000000
--- a/src/objects/window/actions.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * "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)
- *
- * References:
- *
- * https://fossies.org/linux/gtk+/examples/plugman.c
- *
- */
-
- #include "private.h"
- #include
-
- void pw3270_application_generic_activated(GSimpleAction * action, GVariant *parameter, gpointer application) {
-
- debug("%s",__FUNCTION__);
-
- }
-
-
- void pw3270_application_quit_activated(GSimpleAction * action, GVariant *parameter, gpointer application) {
-
- g_print("Exiting application\n");
-
- /*
- GList *list = gtk_application_get_windows(GTK_APPLICATION(application));
-
- while(list) {
-
- GtkWidget * window = GTK_WIDGET(list->data);
- list = list->next;
-
- gtk_widget_destroy(window);
-
- }
- */
-
- g_application_quit(G_APPLICATION(application));
-
- }
-
- void pw3270_application_new_tab_activated(GSimpleAction * action, GVariant *parameter, gpointer application) {
-
- debug("%s",__FUNCTION__);
- pw3270_terminal_new(GTK_WIDGET(gtk_application_get_active_window(GTK_APPLICATION(application))));
-
- }
-
- void pw3270_application_new_window_activated(GSimpleAction * action, GVariant *parameter, gpointer application) {
-
- debug("%s",__FUNCTION__);
- g_application_activate(application);
-
- }
diff --git a/src/objects/window/actions/about.c b/src/objects/window/actions/about.c
new file mode 100644
index 0000000..a77a795
--- /dev/null
+++ b/src/objects/window/actions/about.c
@@ -0,0 +1,128 @@
+/*
+ * "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)
+ *
+ */
+
+ #include "../private.h"
+ #include
+
+ void pw3270_application_about_activated(GSimpleAction G_GNUC_UNUSED(* action), GVariant G_GNUC_UNUSED(*parameter), gpointer application) {
+
+ static const gchar *authors[] =
+ {
+ "Perry Werneck ",
+ "Paul Mattes ",
+ "Georgia Tech Research Corporation (GTRC)",
+ "and others",
+ NULL
+ };
+
+ static const gchar *license =
+ N_( "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.\n\n"
+ "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.\n\n"
+ "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 St, Fifth Floor, Boston, MA 02111-1307 "
+ "USA" );
+
+ GtkAboutDialog * dialog = GTK_ABOUT_DIALOG(gtk_about_dialog_new());
+
+ // Associate with the window
+ {
+ GtkWindow * window = gtk_application_get_active_window(GTK_APPLICATION(application));
+ if(window) {
+ gtk_window_set_transient_for(GTK_WINDOW(dialog), window);
+ }
+ }
+
+ // Get application logo
+ {
+ lib3270_autoptr(char) logo = lib3270_build_data_filename(G_STRINGIFY(PRODUCT_NAME) "-logo.png",NULL);
+
+ if(g_file_test(logo,G_FILE_TEST_EXISTS)) {
+ GError * error = NULL;
+ GdkPixbuf * pix = gdk_pixbuf_new_from_file(logo,&error);
+
+ gtk_about_dialog_set_logo(dialog,pix);
+
+ if(pix) {
+
+ g_object_unref(pix);
+
+ } else {
+
+ g_warning("Can't load %s: %s",logo,error->message);
+ g_error_free(error);
+
+ }
+
+ } else {
+
+ g_message("%s: %s",logo,strerror(ENOENT));
+
+ }
+
+ }
+
+ // Set version
+ {
+#ifdef PACKAGE_RELEASE
+ g_autofree gchar * version = g_strdup_printf(_("Version %s-%s"),PACKAGE_VERSION,G_STRINGIFY(PACKAGE_RELEASE));
+#else
+ g_autofree gchar * version = g_strdup_printf(_("Version %s-%s"),PACKAGE_VERSION,G_STRINGIFY(BUILD_DATE));
+#endif // PACKAGE_REVISION
+
+ gtk_about_dialog_set_version(dialog,version);
+ }
+
+ // Set comments
+ {
+ g_autofree gchar * comments = g_strdup_printf(_( "3270 terminal emulator for GTK %d.%d" ),GTK_MAJOR_VERSION,GTK_MINOR_VERSION);
+ gtk_about_dialog_set_comments(dialog, comments);
+ }
+
+ gtk_about_dialog_set_copyright(dialog, "Copyright © 2008 Banco do Brasil S.A." );
+ gtk_about_dialog_set_license(dialog, gettext( license ) );
+ gtk_about_dialog_set_wrap_license(dialog,TRUE);
+ gtk_about_dialog_set_website(dialog,"https://portal.softwarepublico.gov.br/social/pw3270/");
+ gtk_about_dialog_set_website_label(dialog,_( "Brazilian Public Software Portal" ));
+ gtk_about_dialog_set_authors(dialog,authors);
+ gtk_about_dialog_set_translator_credits(dialog,_("translator-credits"));
+
+ g_signal_connect(dialog,"close",G_CALLBACK(gtk_widget_destroy),NULL);
+ g_signal_connect(dialog,"response",G_CALLBACK(gtk_widget_destroy),NULL);
+ gtk_widget_show_all(GTK_WIDGET(dialog));
+
+
+ }
+
diff --git a/src/objects/window/actions/window.c b/src/objects/window/actions/window.c
new file mode 100644
index 0000000..65ff5c4
--- /dev/null
+++ b/src/objects/window/actions/window.c
@@ -0,0 +1,71 @@
+/*
+ * "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)
+ *
+ * References:
+ *
+ * https://fossies.org/linux/gtk+/examples/plugman.c
+ *
+ */
+
+ #include "../private.h"
+ #include
+
+
+ void pw3270_application_quit_activated(GSimpleAction * action, GVariant *parameter, gpointer application) {
+
+ g_print("Exiting application\n");
+
+ /*
+ GList *list = gtk_application_get_windows(GTK_APPLICATION(application));
+
+ while(list) {
+
+ GtkWidget * window = GTK_WIDGET(list->data);
+ list = list->next;
+
+ gtk_widget_destroy(window);
+
+ }
+ */
+
+ g_application_quit(G_APPLICATION(application));
+
+ }
+
+ void pw3270_application_new_tab_activated(GSimpleAction * action, GVariant *parameter, gpointer application) {
+
+ debug("%s",__FUNCTION__);
+ pw3270_terminal_new(GTK_WIDGET(gtk_application_get_active_window(GTK_APPLICATION(application))));
+
+ }
+
+ void pw3270_application_new_window_activated(GSimpleAction * action, GVariant *parameter, gpointer application) {
+
+ debug("%s",__FUNCTION__);
+ g_application_activate(application);
+
+ }
diff --git a/src/objects/window/application.c b/src/objects/window/application.c
index f0344b7..91d2847 100644
--- a/src/objects/window/application.c
+++ b/src/objects/window/application.c
@@ -207,7 +207,7 @@
static GActionEntry actions[] = {
{
.name = "about",
- .activate = pw3270_application_generic_activated,
+ .activate = pw3270_application_about_activated,
},
{
diff --git a/src/objects/window/private.h b/src/objects/window/private.h
index 47aa848..40cbf34 100644
--- a/src/objects/window/private.h
+++ b/src/objects/window/private.h
@@ -69,5 +69,6 @@
G_GNUC_INTERNAL void pw3270_application_quit_activated(GSimpleAction * action, GVariant *parameter, gpointer application);
G_GNUC_INTERNAL void pw3270_application_new_tab_activated(GSimpleAction * action, GVariant *parameter, gpointer application);
G_GNUC_INTERNAL void pw3270_application_new_window_activated(GSimpleAction * action, GVariant *parameter, gpointer application);
+ G_GNUC_INTERNAL void pw3270_application_about_activated(GSimpleAction * action, GVariant *parameter, gpointer application);
#endif // PRIVATE_H_INCLUDED
diff --git a/src/objects/window/window.c b/src/objects/window/window.c
index 50ba762..7f4e5e9 100644
--- a/src/objects/window/window.c
+++ b/src/objects/window/window.c
@@ -249,3 +249,10 @@
}
}
+
+ void pw3270_application_generic_activated(GSimpleAction * action, GVariant *parameter, gpointer application) {
+
+ debug("%s",__FUNCTION__);
+
+ }
+
--
libgit2 0.21.2