diff --git a/src/objects/window/actions.c b/src/objects/window/actions.c new file mode 100644 index 0000000..8e898d5 --- /dev/null +++ b/src/objects/window/actions.c @@ -0,0 +1,66 @@ +/* + * "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); + + } + + } + + 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 86e1c28..2de29dc 100644 --- a/src/objects/window/application.c +++ b/src/objects/window/application.c @@ -88,42 +88,27 @@ // static GActionEntry app_entries[] = { { - "app.about", - action_activated, - NULL, - NULL, - NULL + .name = "about", + .activate = action_activated, }, { - "app.preferences", - action_activated, - NULL, - NULL, - NULL + .name = "preferences", + .activate = action_activated, }, { - "app.quit", - action_activated, - NULL, - NULL, - NULL + .name = "quit", + .activate = pw3270_application_quit_activated, }, { - "app.new_tab", - action_activated, - NULL, - NULL, - NULL + .name = "new_tab", + .activate = pw3270_application_new_tab_activated, }, { - "app.new_window", - action_activated, - NULL, - NULL, - NULL + .name = "new_window", + .activate = pw3270_application_new_window_activated, } }; diff --git a/src/objects/window/private.h b/src/objects/window/private.h index 20aa4cf..d68142e 100644 --- a/src/objects/window/private.h +++ b/src/objects/window/private.h @@ -61,4 +61,9 @@ }; + // Actions + 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); + #endif // PRIVATE_H_INCLUDED diff --git a/src/objects/window/ui/application.xml b/src/objects/window/ui/application.xml index 5310c44..93e9ca1 100644 --- a/src/objects/window/ui/application.xml +++ b/src/objects/window/ui/application.xml @@ -8,6 +8,10 @@ app.about + New Window + app.new_window + + Preferences app.help diff --git a/src/objects/window/ui/window.xml b/src/objects/window/ui/window.xml index 80d513d..2096dfc 100644 --- a/src/objects/window/ui/window.xml +++ b/src/objects/window/ui/window.xml @@ -12,7 +12,7 @@ app.help - Quit + Quit PW3270 app.quit diff --git a/src/objects/window/window.cbp b/src/objects/window/window.cbp index 05a086c..591e29a 100644 --- a/src/objects/window/window.cbp +++ b/src/objects/window/window.cbp @@ -42,6 +42,9 @@ + + -- libgit2 0.21.2