Commit 093014ccca1811b15c3b63ea5003fc7bb75d017a

Authored by Perry Werneck
1 parent 9b41602e

Adjustments for integration.

pw3270.cbp
... ... @@ -14,7 +14,6 @@
14 14 <Option type="1" />
15 15 <Option compiler="gcc" />
16 16 <Option use_console_runner="0" />
17   - <Option parameters="--remap=./charsets/bracket.xml" />
18 17 <Compiler>
19 18 <Add option="-g" />
20 19 <Add option="-DDEBUG=1" />
... ... @@ -43,6 +42,7 @@
43 42 </Linker>
44 43 <Unit filename="Makefile.in" />
45 44 <Unit filename="configure.ac" />
  45 + <Unit filename="src/include/pw3270.h" />
46 46 <Unit filename="src/include/pw3270/actions.h" />
47 47 <Unit filename="src/include/pw3270/application.h" />
48 48 <Unit filename="src/include/pw3270/toolbar.h" />
... ... @@ -70,10 +70,10 @@
70 70 <Unit filename="src/objects/actions/window.c">
71 71 <Option compilerVar="CC" />
72 72 </Unit>
73   - <Unit filename="src/objects/toolbar/core.c">
  73 + <Unit filename="src/objects/toolbar/private.h" />
  74 + <Unit filename="src/objects/toolbar/toolbar.c">
74 75 <Option compilerVar="CC" />
75 76 </Unit>
76   - <Unit filename="src/objects/toolbar/private.h" />
77 77 <Unit filename="src/objects/window/actions.c">
78 78 <Option compilerVar="CC" />
79 79 </Unit>
... ...
src/include/pw3270.h 0 → 100644
... ... @@ -0,0 +1,52 @@
  1 +/*
  2 + * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270
  3 + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a
  4 + * aplicativos mainframe. Registro no INPI sob o nome G3270.
  5 + *
  6 + * Copyright (C) <2008> <Banco do Brasil S.A.>
  7 + *
  8 + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob
  9 + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela
  10 + * Free Software Foundation.
  11 + *
  12 + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER
  13 + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO
  14 + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para
  15 + * obter mais detalhes.
  16 + *
  17 + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este
  18 + * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin
  19 + * St, Fifth Floor, Boston, MA 02110-1301 USA
  20 + *
  21 + * Este programa está nomeado como - e possui - linhas de código.
  22 + *
  23 + * Contatos:
  24 + *
  25 + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
  26 + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça)
  27 + *
  28 + */
  29 +
  30 +/**
  31 + * @brief Declares the pw3270 Action objects.
  32 + *
  33 + */
  34 +
  35 +#ifndef PW3270_H_INCLUDED
  36 +
  37 + #define PW3270_H_INCLUDED
  38 +
  39 + #include <config.h>
  40 +
  41 + #ifndef GETTEXT_PACKAGE
  42 + #define GETTEXT_PACKAGE PACKAGE_NAME
  43 + #endif
  44 +
  45 + #include <libintl.h>
  46 + #include <glib/gi18n.h>
  47 + #include <gtk/gtk.h>
  48 +
  49 + /* not really I18N-related, but also a string marker macro */
  50 + #define I_(string) g_intern_static_string (string)
  51 +
  52 +#endif // PW3270_H_INCLUDED
... ...
src/objects/toolbar/core.c
... ... @@ -1,258 +0,0 @@
1   -/*
2   - * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270
3   - * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a
4   - * aplicativos mainframe. Registro no INPI sob o nome G3270.
5   - *
6   - * Copyright (C) <2008> <Banco do Brasil S.A.>
7   - *
8   - * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob
9   - * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela
10   - * Free Software Foundation.
11   - *
12   - * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER
13   - * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO
14   - * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para
15   - * obter mais detalhes.
16   - *
17   - * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este
18   - * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin
19   - * St, Fifth Floor, Boston, MA 02110-1301 USA
20   - *
21   - * Este programa está nomeado como - e possui - linhas de código.
22   - *
23   - * Contatos:
24   - *
25   - * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
26   - * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça)
27   - *
28   - */
29   -
30   - #include "private.h"
31   -
32   - static gboolean popup_context_menu(GtkToolbar *toolbar, gint x, gint y, gint button_number);
33   - static void finalize(GObject *object);
34   -
35   -
36   - struct _pw3270ToolBar {
37   - GtkToolbar parent;
38   -
39   - /// @brief Popup Menu
40   - GtkWidget * popup_menu;
41   -
42   - };
43   -
44   - struct _pw3270ToolBarClass {
45   -
46   - GtkToolbarClass parent_class;
47   -
48   -
49   - };
50   -
51   - G_DEFINE_TYPE(pw3270ToolBar, pw3270ToolBar, GTK_TYPE_TOOLBAR);
52   -
53   - static void pw3270ToolBar_class_init(pw3270ToolBarClass *klass) {
54   -
55   - GtkToolbarClass * toolbar = GTK_TOOLBAR_CLASS(klass);
56   -
57   - toolbar->popup_context_menu = popup_context_menu;
58   -
59   - G_OBJECT_CLASS(klass)->finalize = finalize;
60   -
61   - }
62   -
63   - static void detacher(GtkWidget *attach_widget, GtkMenu *menu) {
64   -
65   - pw3270ToolBar * toolbar = PW3270_TOOLBAR(attach_widget);
66   - toolbar->popup_menu = NULL;
67   -
68   - }
69   -
70   - static void set_icon_size(GtkMenuItem *menuitem, GtkWidget *toolbar) {
71   -
72   - GtkIconSize * icon_size = g_object_get_data(G_OBJECT(menuitem),"icon_size");
73   -
74   - if(icon_size)
75   - gtk_toolbar_set_icon_size(GTK_TOOLBAR(toolbar),*icon_size);
76   - else
77   - gtk_toolbar_unset_icon_size(GTK_TOOLBAR(toolbar));
78   -
79   - }
80   -
81   - static void set_style(GtkMenuItem *menuitem, GtkWidget *toolbar) {
82   -
83   - GtkToolbarStyle * style = g_object_get_data(G_OBJECT(menuitem),"toolbar_style");
84   -
85   - if(style)
86   - gtk_toolbar_set_style(GTK_TOOLBAR(toolbar),*style);
87   - else
88   - gtk_toolbar_unset_style(GTK_TOOLBAR(toolbar));
89   -
90   - }
91   -
92   - static void pw3270ToolBar_init(pw3270ToolBar *widget) {
93   -
94   - widget->popup_menu = gtk_menu_new();
95   -
96   - // Size options
97   - {
98   - static const struct {
99   - const gchar * label;
100   - GtkIconSize icon_size;
101   - } itens[] = {
102   -
103   - {
104   - .label = N_( "System default" )
105   -
106   - },
107   -
108   - {
109   - .label = N_( "Small" ),
110   - .icon_size = GTK_ICON_SIZE_SMALL_TOOLBAR
111   - },
112   -
113   - {
114   - .label = N_( "Large" ),
115   - .icon_size = GTK_ICON_SIZE_LARGE_TOOLBAR
116   - },
117   - };
118   -
119   - size_t ix;
120   -
121   - GtkWidget * item = gtk_menu_item_new_with_mnemonic( _("Icon _size") );
122   - gtk_menu_shell_append(GTK_MENU_SHELL(widget->popup_menu),item);
123   -
124   - GtkWidget * submenu = gtk_menu_new();
125   - gtk_menu_item_set_submenu(GTK_MENU_ITEM(item),submenu);
126   -
127   - for(ix = 0; ix < G_N_ELEMENTS(itens); ix++) {
128   -
129   - item = gtk_menu_item_new_with_mnemonic(gettext(itens[ix].label));
130   -
131   - if(ix > 0)
132   - g_object_set_data(G_OBJECT(item),"icon_size", (gpointer) &itens[ix].icon_size);
133   -
134   - g_signal_connect(item, "activate", G_CALLBACK(set_icon_size), widget);
135   -
136   - gtk_menu_shell_append(GTK_MENU_SHELL(submenu),item);
137   -
138   - }
139   -
140   - }
141   -
142   - // Style option
143   - {
144   - static const struct {
145   - const gchar * label;
146   - GtkToolbarStyle style;
147   - } itens[] = {
148   -
149   - {
150   - .label = N_( "System default" )
151   - },
152   -
153   - {
154   - .label = N_( "Icons only" ),
155   - .style = GTK_TOOLBAR_ICONS
156   - },
157   -
158   - {
159   - .label = N_( "Text only" ),
160   - .style = GTK_TOOLBAR_TEXT
161   - },
162   -
163   - {
164   - .label = N_( "Icons & text" ),
165   - .style = GTK_TOOLBAR_BOTH
166   - },
167   - };
168   -
169   - size_t ix;
170   -
171   - GtkWidget * item = gtk_menu_item_new_with_mnemonic( _("S_tyle") );
172   - gtk_menu_shell_append(GTK_MENU_SHELL(widget->popup_menu),item);
173   -
174   - GtkWidget * submenu = gtk_menu_new();
175   - gtk_menu_item_set_submenu(GTK_MENU_ITEM(item),submenu);
176   -
177   - for(ix = 0; ix < G_N_ELEMENTS(itens); ix++) {
178   -
179   - item = gtk_menu_item_new_with_mnemonic(gettext(itens[ix].label));
180   -
181   - if(ix > 0)
182   - g_object_set_data(G_OBJECT(item),"toolbar_style", (gpointer) &itens[ix].style);
183   -
184   - g_signal_connect(item, "activate", G_CALLBACK(set_style), widget);
185   -
186   - gtk_menu_shell_append(GTK_MENU_SHELL(submenu),item);
187   -
188   - }
189   -
190   - }
191   -
192   - // gtk_container_set_border_width(GTK_CONTAINER(widget->popup_menu),6);
193   - gtk_widget_show_all(widget->popup_menu);
194   - gtk_menu_attach_to_widget(GTK_MENU(widget->popup_menu),GTK_WIDGET(widget),detacher);
195   -
196   - }
197   -
198   - static void finalize(GObject *object) {
199   -
200   -// pw3270ToolBar * toolbar = PW3270_TOOLBAR(object);
201   -
202   -
203   - G_OBJECT_CLASS(pw3270ToolBar_parent_class)->finalize(object);
204   -
205   - }
206   -
207   - GtkWidget * pw3270_toolbar_new(void) {
208   - return g_object_new(PW3270_TYPE_TOOLBAR, NULL);
209   - }
210   -
211   - GtkWidget * pw3270_toolbar_insert_lib3270_action(GtkWidget *toolbar, const LIB3270_ACTION *action, gint pos) {
212   -
213   - g_return_val_if_fail(GTK_IS_TOOLBAR(toolbar),NULL);
214   -
215   - if(!action) {
216   - g_message(_("Invalid action identifier"));
217   - return NULL;
218   - }
219   -
220   - if(!action->icon) {
221   - g_message(_("Action \"%s\" doesn't have an icon"), action->name);
222   - return NULL;
223   - }
224   -
225   - if(!action->label) {
226   - g_message(_("Action \"%s\" doesn't have a label"), action->name);
227   - return NULL;
228   - }
229   -
230   - debug("Action: %s icon: %s", action->name, action->icon);
231   -
232   - GtkToolItem * item = gtk_tool_button_new(gtk_image_new_from_icon_name(action->icon,GTK_ICON_SIZE_LARGE_TOOLBAR),gettext(action->label));
233   - gtk_tool_button_set_use_underline(GTK_TOOL_BUTTON(item),TRUE);
234   -
235   - gtk_widget_set_name(GTK_WIDGET(item), action->name);
236   -
237   - if(action->summary)
238   - gtk_tool_item_set_tooltip_text(item,gettext(action->summary));
239   -
240   - gtk_toolbar_insert(GTK_TOOLBAR(toolbar), item, pos);
241   -
242   - return GTK_WIDGET(item);
243   - }
244   -
245   - gboolean popup_context_menu(GtkToolbar *widget, gint x, gint y, gint button_number) {
246   -
247   - pw3270ToolBar * toolbar = PW3270_TOOLBAR(widget);
248   -
249   - debug("%s button_number=%d",__FUNCTION__,button_number);
250   -
251   - if(toolbar->popup_menu) {
252   - gtk_menu_popup_at_pointer(GTK_MENU(toolbar->popup_menu),NULL);
253   - }
254   -
255   -
256   - return TRUE;
257   -
258   - }
src/objects/toolbar/toolbar.c 0 → 100644
... ... @@ -0,0 +1,258 @@
  1 +/*
  2 + * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270
  3 + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a
  4 + * aplicativos mainframe. Registro no INPI sob o nome G3270.
  5 + *
  6 + * Copyright (C) <2008> <Banco do Brasil S.A.>
  7 + *
  8 + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob
  9 + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela
  10 + * Free Software Foundation.
  11 + *
  12 + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER
  13 + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO
  14 + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para
  15 + * obter mais detalhes.
  16 + *
  17 + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este
  18 + * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin
  19 + * St, Fifth Floor, Boston, MA 02110-1301 USA
  20 + *
  21 + * Este programa está nomeado como - e possui - linhas de código.
  22 + *
  23 + * Contatos:
  24 + *
  25 + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
  26 + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça)
  27 + *
  28 + */
  29 +
  30 + #include "private.h"
  31 +
  32 + static gboolean popup_context_menu(GtkToolbar *toolbar, gint x, gint y, gint button_number);
  33 + static void finalize(GObject *object);
  34 +
  35 +
  36 + struct _pw3270ToolBar {
  37 + GtkToolbar parent;
  38 +
  39 + /// @brief Popup Menu
  40 + GtkWidget * popup_menu;
  41 +
  42 + };
  43 +
  44 + struct _pw3270ToolBarClass {
  45 +
  46 + GtkToolbarClass parent_class;
  47 +
  48 +
  49 + };
  50 +
  51 + G_DEFINE_TYPE(pw3270ToolBar, pw3270ToolBar, GTK_TYPE_TOOLBAR);
  52 +
  53 + static void pw3270ToolBar_class_init(pw3270ToolBarClass *klass) {
  54 +
  55 + GtkToolbarClass * toolbar = GTK_TOOLBAR_CLASS(klass);
  56 +
  57 + toolbar->popup_context_menu = popup_context_menu;
  58 +
  59 + G_OBJECT_CLASS(klass)->finalize = finalize;
  60 +
  61 + }
  62 +
  63 + static void detacher(GtkWidget *attach_widget, GtkMenu *menu) {
  64 +
  65 + pw3270ToolBar * toolbar = PW3270_TOOLBAR(attach_widget);
  66 + toolbar->popup_menu = NULL;
  67 +
  68 + }
  69 +
  70 + static void set_icon_size(GtkMenuItem *menuitem, GtkWidget *toolbar) {
  71 +
  72 + GtkIconSize * icon_size = g_object_get_data(G_OBJECT(menuitem),"icon_size");
  73 +
  74 + if(icon_size)
  75 + gtk_toolbar_set_icon_size(GTK_TOOLBAR(toolbar),*icon_size);
  76 + else
  77 + gtk_toolbar_unset_icon_size(GTK_TOOLBAR(toolbar));
  78 +
  79 + }
  80 +
  81 + static void set_style(GtkMenuItem *menuitem, GtkWidget *toolbar) {
  82 +
  83 + GtkToolbarStyle * style = g_object_get_data(G_OBJECT(menuitem),"toolbar_style");
  84 +
  85 + if(style)
  86 + gtk_toolbar_set_style(GTK_TOOLBAR(toolbar),*style);
  87 + else
  88 + gtk_toolbar_unset_style(GTK_TOOLBAR(toolbar));
  89 +
  90 + }
  91 +
  92 + static void pw3270ToolBar_init(pw3270ToolBar *widget) {
  93 +
  94 + widget->popup_menu = gtk_menu_new();
  95 +
  96 + // Size options
  97 + {
  98 + static const struct {
  99 + const gchar * label;
  100 + GtkIconSize icon_size;
  101 + } itens[] = {
  102 +
  103 + {
  104 + .label = N_( "System default" )
  105 +
  106 + },
  107 +
  108 + {
  109 + .label = N_( "Small" ),
  110 + .icon_size = GTK_ICON_SIZE_SMALL_TOOLBAR
  111 + },
  112 +
  113 + {
  114 + .label = N_( "Large" ),
  115 + .icon_size = GTK_ICON_SIZE_LARGE_TOOLBAR
  116 + },
  117 + };
  118 +
  119 + size_t ix;
  120 +
  121 + GtkWidget * item = gtk_menu_item_new_with_mnemonic( _("Icon _size") );
  122 + gtk_menu_shell_append(GTK_MENU_SHELL(widget->popup_menu),item);
  123 +
  124 + GtkWidget * submenu = gtk_menu_new();
  125 + gtk_menu_item_set_submenu(GTK_MENU_ITEM(item),submenu);
  126 +
  127 + for(ix = 0; ix < G_N_ELEMENTS(itens); ix++) {
  128 +
  129 + item = gtk_menu_item_new_with_mnemonic(gettext(itens[ix].label));
  130 +
  131 + if(ix > 0)
  132 + g_object_set_data(G_OBJECT(item),"icon_size", (gpointer) &itens[ix].icon_size);
  133 +
  134 + g_signal_connect(item, "activate", G_CALLBACK(set_icon_size), widget);
  135 +
  136 + gtk_menu_shell_append(GTK_MENU_SHELL(submenu),item);
  137 +
  138 + }
  139 +
  140 + }
  141 +
  142 + // Style option
  143 + {
  144 + static const struct {
  145 + const gchar * label;
  146 + GtkToolbarStyle style;
  147 + } itens[] = {
  148 +
  149 + {
  150 + .label = N_( "System default" )
  151 + },
  152 +
  153 + {
  154 + .label = N_( "Icons only" ),
  155 + .style = GTK_TOOLBAR_ICONS
  156 + },
  157 +
  158 + {
  159 + .label = N_( "Text only" ),
  160 + .style = GTK_TOOLBAR_TEXT
  161 + },
  162 +
  163 + {
  164 + .label = N_( "Icons & text" ),
  165 + .style = GTK_TOOLBAR_BOTH
  166 + },
  167 + };
  168 +
  169 + size_t ix;
  170 +
  171 + GtkWidget * item = gtk_menu_item_new_with_mnemonic( _("S_tyle") );
  172 + gtk_menu_shell_append(GTK_MENU_SHELL(widget->popup_menu),item);
  173 +
  174 + GtkWidget * submenu = gtk_menu_new();
  175 + gtk_menu_item_set_submenu(GTK_MENU_ITEM(item),submenu);
  176 +
  177 + for(ix = 0; ix < G_N_ELEMENTS(itens); ix++) {
  178 +
  179 + item = gtk_menu_item_new_with_mnemonic(gettext(itens[ix].label));
  180 +
  181 + if(ix > 0)
  182 + g_object_set_data(G_OBJECT(item),"toolbar_style", (gpointer) &itens[ix].style);
  183 +
  184 + g_signal_connect(item, "activate", G_CALLBACK(set_style), widget);
  185 +
  186 + gtk_menu_shell_append(GTK_MENU_SHELL(submenu),item);
  187 +
  188 + }
  189 +
  190 + }
  191 +
  192 + // gtk_container_set_border_width(GTK_CONTAINER(widget->popup_menu),6);
  193 + gtk_widget_show_all(widget->popup_menu);
  194 + gtk_menu_attach_to_widget(GTK_MENU(widget->popup_menu),GTK_WIDGET(widget),detacher);
  195 +
  196 + }
  197 +
  198 + static void finalize(GObject *object) {
  199 +
  200 +// pw3270ToolBar * toolbar = PW3270_TOOLBAR(object);
  201 +
  202 +
  203 + G_OBJECT_CLASS(pw3270ToolBar_parent_class)->finalize(object);
  204 +
  205 + }
  206 +
  207 + GtkWidget * pw3270_toolbar_new(void) {
  208 + return g_object_new(PW3270_TYPE_TOOLBAR, NULL);
  209 + }
  210 +
  211 + GtkWidget * pw3270_toolbar_insert_lib3270_action(GtkWidget *toolbar, const LIB3270_ACTION *action, gint pos) {
  212 +
  213 + g_return_val_if_fail(GTK_IS_TOOLBAR(toolbar),NULL);
  214 +
  215 + if(!action) {
  216 + g_message(_("Invalid action identifier"));
  217 + return NULL;
  218 + }
  219 +
  220 + if(!action->icon) {
  221 + g_message(_("Action \"%s\" doesn't have an icon"), action->name);
  222 + return NULL;
  223 + }
  224 +
  225 + if(!action->label) {
  226 + g_message(_("Action \"%s\" doesn't have a label"), action->name);
  227 + return NULL;
  228 + }
  229 +
  230 + debug("Action: %s icon: %s", action->name, action->icon);
  231 +
  232 + GtkToolItem * item = gtk_tool_button_new(gtk_image_new_from_icon_name(action->icon,GTK_ICON_SIZE_LARGE_TOOLBAR),gettext(action->label));
  233 + gtk_tool_button_set_use_underline(GTK_TOOL_BUTTON(item),TRUE);
  234 +
  235 + gtk_widget_set_name(GTK_WIDGET(item), action->name);
  236 +
  237 + if(action->summary)
  238 + gtk_tool_item_set_tooltip_text(item,gettext(action->summary));
  239 +
  240 + gtk_toolbar_insert(GTK_TOOLBAR(toolbar), item, pos);
  241 +
  242 + return GTK_WIDGET(item);
  243 + }
  244 +
  245 + gboolean popup_context_menu(GtkToolbar *widget, gint x, gint y, gint button_number) {
  246 +
  247 + pw3270ToolBar * toolbar = PW3270_TOOLBAR(widget);
  248 +
  249 + debug("%s button_number=%d",__FUNCTION__,button_number);
  250 +
  251 + if(toolbar->popup_menu) {
  252 + gtk_menu_popup_at_pointer(GTK_MENU(toolbar->popup_menu),NULL);
  253 + }
  254 +
  255 +
  256 + return TRUE;
  257 +
  258 + }
... ...