Commit 42bf282b35adda105a30e5cd0e6af0bf56233d59
1 parent
e22a9b57
Exists in
master
and in
5 other branches
Reimplementando a barra de funcoes
Showing
5 changed files
with
94 additions
and
10 deletions
Show diff stats
pw3270.cbp
@@ -347,6 +347,7 @@ | @@ -347,6 +347,7 @@ | ||
347 | </Unit> | 347 | </Unit> |
348 | <Unit filename="src\tools\Makefile.in" /> | 348 | <Unit filename="src\tools\Makefile.in" /> |
349 | <Unit filename="ui\00default.xml" /> | 349 | <Unit filename="ui\00default.xml" /> |
350 | + <Unit filename="ui\10functions.xml" /> | ||
350 | <Unit filename="ui\10keypad.xml" /> | 351 | <Unit filename="ui\10keypad.xml" /> |
351 | <Unit filename="ui\99debug.xml" /> | 352 | <Unit filename="ui\99debug.xml" /> |
352 | <Unit filename="updateChangeLog.sh" /> | 353 | <Unit filename="updateChangeLog.sh" /> |
src/pw3270/Makefile.in
@@ -191,6 +191,7 @@ $(DEBDIR)/pw3270.install: Makefile | @@ -191,6 +191,7 @@ $(DEBDIR)/pw3270.install: Makefile | ||
191 | @echo "$(libdir)/@DLLPREFIX@$(PACKAGE_TARNAME)@DLLEXT@" >> $@ | 191 | @echo "$(libdir)/@DLLPREFIX@$(PACKAGE_TARNAME)@DLLEXT@" >> $@ |
192 | @echo "$(datarootdir)/$(PACKAGE_NAME)/ui/00default.xml" >> $@ | 192 | @echo "$(datarootdir)/$(PACKAGE_NAME)/ui/00default.xml" >> $@ |
193 | @echo "$(datarootdir)/$(PACKAGE_NAME)/ui/10keypad.xml" >> $@ | 193 | @echo "$(datarootdir)/$(PACKAGE_NAME)/ui/10keypad.xml" >> $@ |
194 | + @echo "$(datarootdir)/$(PACKAGE_NAME)/ui/10functions.xml" >> $@ | ||
194 | @echo "$(datarootdir)/$(PACKAGE_NAME)/$(PACKAGE_NAME).png" >> $@ | 195 | @echo "$(datarootdir)/$(PACKAGE_NAME)/$(PACKAGE_NAME).png" >> $@ |
195 | @echo "$(datarootdir)/$(PACKAGE_NAME)/$(PACKAGE_NAME)-logo.png" >> $@ | 196 | @echo "$(datarootdir)/$(PACKAGE_NAME)/$(PACKAGE_NAME)-logo.png" >> $@ |
196 | 197 |
src/pw3270/uiparser/keypad.c
@@ -210,6 +210,24 @@ | @@ -210,6 +210,24 @@ | ||
210 | 210 | ||
211 | } | 211 | } |
212 | 212 | ||
213 | + UI_ATTR_DIRECTION ui_get_position_attribute(const gchar **names, const gchar **values) | ||
214 | + { | ||
215 | + static const gchar * posname[] = { "top", "bottom", "left", "right" }; | ||
216 | + const gchar * dir = ui_get_attribute("position",names,values); | ||
217 | + int f; | ||
218 | + | ||
219 | + if(dir) | ||
220 | + { | ||
221 | + for(f=0;f<G_N_ELEMENTS(posname);f++) | ||
222 | + { | ||
223 | + if(!g_ascii_strcasecmp(dir,posname[f])) | ||
224 | + return f; | ||
225 | + } | ||
226 | + } | ||
227 | + | ||
228 | + return UI_ATTR_DIRECTION_NONE; | ||
229 | + } | ||
230 | + | ||
213 | GObject * ui_create_keypad(GMarkupParseContext *context,GtkAction *action,struct parser *info,const gchar **names, const gchar **values, GError **error) | 231 | GObject * ui_create_keypad(GMarkupParseContext *context,GtkAction *action,struct parser *info,const gchar **names, const gchar **values, GError **error) |
214 | { | 232 | { |
215 | static const GMarkupParser parser = | 233 | static const GMarkupParser parser = |
@@ -244,7 +262,7 @@ | @@ -244,7 +262,7 @@ | ||
244 | 262 | ||
245 | keypad->parser = info; | 263 | keypad->parser = info; |
246 | keypad->handle = gtk_handle_box_new(); | 264 | keypad->handle = gtk_handle_box_new(); |
247 | - keypad->pos = ui_get_dir_attribute(names,values); | 265 | + keypad->pos = ui_get_position_attribute(names,values); |
248 | keypad->relief = get_relief(names, values, GTK_RELIEF_NORMAL); | 266 | keypad->relief = get_relief(names, values, GTK_RELIEF_NORMAL); |
249 | 267 | ||
250 | switch(keypad->pos) | 268 | switch(keypad->pos) |
@@ -284,7 +302,6 @@ | @@ -284,7 +302,6 @@ | ||
284 | } | 302 | } |
285 | } | 303 | } |
286 | 304 | ||
287 | - | ||
288 | gtk_handle_box_set_shadow_type(GTK_HANDLE_BOX(keypad->handle),GTK_SHADOW_ETCHED_IN); | 305 | gtk_handle_box_set_shadow_type(GTK_HANDLE_BOX(keypad->handle),GTK_SHADOW_ETCHED_IN); |
289 | gtk_container_add(GTK_CONTAINER(keypad->handle),keypad->box); | 306 | gtk_container_add(GTK_CONTAINER(keypad->handle),keypad->box); |
290 | 307 | ||
@@ -297,7 +314,6 @@ | @@ -297,7 +314,6 @@ | ||
297 | { | 314 | { |
298 | if(widget) | 315 | if(widget) |
299 | { | 316 | { |
300 | - gtk_widget_show_all(widget); | ||
301 | gtk_table_attach( GTK_TABLE(keypad->table), | 317 | gtk_table_attach( GTK_TABLE(keypad->table), |
302 | widget, | 318 | widget, |
303 | keypad->col,keypad->col+keypad->button_width, | 319 | keypad->col,keypad->col+keypad->button_width, |
@@ -350,8 +366,6 @@ | @@ -350,8 +366,6 @@ | ||
350 | gtk_box_pack_start(GTK_BOX(keypad->box),keypad->table,FALSE,FALSE,0); | 366 | gtk_box_pack_start(GTK_BOX(keypad->box),keypad->table,FALSE,FALSE,0); |
351 | 367 | ||
352 | gtk_widget_show_all(keypad->box); | 368 | gtk_widget_show_all(keypad->box); |
353 | - gtk_widget_show_all(keypad->table); | ||
354 | - gtk_widget_show_all(keypad->handle); | ||
355 | } | 369 | } |
356 | 370 | ||
357 | g_free(keypad); | 371 | g_free(keypad); |
src/pw3270/uiparser/parser.c
@@ -85,7 +85,6 @@ static void pack_keypad(gpointer key, GtkWidget *widget, struct keypad *k) | @@ -85,7 +85,6 @@ static void pack_keypad(gpointer key, GtkWidget *widget, struct keypad *k) | ||
85 | if(gtk_handle_box_get_handle_position(GTK_HANDLE_BOX(widget)) != k->filter) | 85 | if(gtk_handle_box_get_handle_position(GTK_HANDLE_BOX(widget)) != k->filter) |
86 | return; | 86 | return; |
87 | 87 | ||
88 | - gtk_widget_show_all(widget); | ||
89 | k->pack(GTK_BOX(k->box),widget,FALSE,FALSE,0); | 88 | k->pack(GTK_BOX(k->box),widget,FALSE,FALSE,0); |
90 | } | 89 | } |
91 | 90 | ||
@@ -189,9 +188,11 @@ void parser_build(struct parser *p, GtkWidget *widget) | @@ -189,9 +188,11 @@ void parser_build(struct parser *p, GtkWidget *widget) | ||
189 | struct action_info a_info; | 188 | struct action_info a_info; |
190 | 189 | ||
191 | #if GTK_CHECK_VERSION(3,0,0) | 190 | #if GTK_CHECK_VERSION(3,0,0) |
191 | + GtkWidget * mainBox = gtk_box_new(GTK_ORIENTATION_VERTICAL,0); | ||
192 | GtkWidget * vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL,0); | 192 | GtkWidget * vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL,0); |
193 | GtkWidget * hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,0); | 193 | GtkWidget * hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,0); |
194 | #else | 194 | #else |
195 | + GtkWidget * mainBox = gtk_vbox_new(FALSE,0); | ||
195 | GtkWidget * vbox = gtk_vbox_new(FALSE,0); | 196 | GtkWidget * vbox = gtk_vbox_new(FALSE,0); |
196 | GtkWidget * hbox = gtk_hbox_new(FALSE,0); | 197 | GtkWidget * hbox = gtk_hbox_new(FALSE,0); |
197 | #endif // GTK(3,0,0) | 198 | #endif // GTK(3,0,0) |
@@ -224,7 +225,7 @@ void parser_build(struct parser *p, GtkWidget *widget) | @@ -224,7 +225,7 @@ void parser_build(struct parser *p, GtkWidget *widget) | ||
224 | g_hash_table_foreach(p->actions,(GHFunc) action_group_setup, &a_info); | 225 | g_hash_table_foreach(p->actions,(GHFunc) action_group_setup, &a_info); |
225 | 226 | ||
226 | // Pack menubars | 227 | // Pack menubars |
227 | - p->element = G_OBJECT(vbox); | 228 | + p->element = G_OBJECT(mainBox); |
228 | g_hash_table_foreach(p->element_list[UI_ELEMENT_MENUBAR],(GHFunc) pack_start, p); | 229 | g_hash_table_foreach(p->element_list[UI_ELEMENT_MENUBAR],(GHFunc) pack_start, p); |
229 | 230 | ||
230 | // Pack top toolbars | 231 | // Pack top toolbars |
@@ -247,9 +248,10 @@ void parser_build(struct parser *p, GtkWidget *widget) | @@ -247,9 +248,10 @@ void parser_build(struct parser *p, GtkWidget *widget) | ||
247 | if(widget) | 248 | if(widget) |
248 | { | 249 | { |
249 | ui_set_scroll_actions(widget,p->scroll_action); | 250 | ui_set_scroll_actions(widget,p->scroll_action); |
250 | - gtk_box_pack_start(GTK_BOX(hbox),widget,TRUE,TRUE,0); | 251 | + gtk_box_pack_start(GTK_BOX(vbox),widget,TRUE,TRUE,0); |
251 | gtk_widget_show(widget); | 252 | gtk_widget_show(widget); |
252 | } | 253 | } |
254 | + gtk_box_pack_start(GTK_BOX(hbox),vbox,TRUE,TRUE,0); | ||
253 | 255 | ||
254 | // Pack right keypads | 256 | // Pack right keypads |
255 | keypad.filter = GTK_POS_LEFT; | 257 | keypad.filter = GTK_POS_LEFT; |
@@ -262,11 +264,12 @@ void parser_build(struct parser *p, GtkWidget *widget) | @@ -262,11 +264,12 @@ void parser_build(struct parser *p, GtkWidget *widget) | ||
262 | g_hash_table_foreach(p->element_list[UI_ELEMENT_KEYPAD],(GHFunc) pack_keypad, &keypad); | 264 | g_hash_table_foreach(p->element_list[UI_ELEMENT_KEYPAD],(GHFunc) pack_keypad, &keypad); |
263 | 265 | ||
264 | // Finish building | 266 | // Finish building |
265 | - gtk_box_pack_start(GTK_BOX(vbox),hbox,TRUE,TRUE,0); | ||
266 | - gtk_container_add(GTK_CONTAINER(p->toplevel),vbox); | 267 | + gtk_box_pack_start(GTK_BOX(mainBox),hbox,TRUE,TRUE,0); |
268 | + gtk_container_add(GTK_CONTAINER(p->toplevel),mainBox); | ||
267 | 269 | ||
268 | gtk_widget_show(hbox); | 270 | gtk_widget_show(hbox); |
269 | gtk_widget_show(vbox); | 271 | gtk_widget_show(vbox); |
272 | + gtk_widget_show(mainBox); | ||
270 | 273 | ||
271 | gtk_window_add_accel_group(GTK_WINDOW(p->toplevel),a_info.accel_group); | 274 | gtk_window_add_accel_group(GTK_WINDOW(p->toplevel),a_info.accel_group); |
272 | 275 |
@@ -0,0 +1,65 @@ | @@ -0,0 +1,65 @@ | ||
1 | +<!----------------------------------------------------------------------------- | ||
2 | + | ||
3 | + "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 | ||
4 | + (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a | ||
5 | + aplicativos mainframe. Registro no INPI sob o nome G3270. | ||
6 | + | ||
7 | + Copyright (C) <2008> <Banco do Brasil S.A.> | ||
8 | + | ||
9 | + Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob | ||
10 | + os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela | ||
11 | + Free Software Foundation. | ||
12 | + | ||
13 | + Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER | ||
14 | + GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO | ||
15 | + A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para | ||
16 | + obter mais detalhes. | ||
17 | + | ||
18 | + Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este | ||
19 | + programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple | ||
20 | + Place, Suite 330, Boston, MA, 02111-1307, USA | ||
21 | + | ||
22 | + Contatos: | ||
23 | + | ||
24 | + perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | ||
25 | + erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) | ||
26 | + licinio@bb.com.br (Licínio Luis Branco) | ||
27 | + kraucer@bb.com.br (Kraucer Fernandes Mazuco) | ||
28 | + | ||
29 | +------------------------------------------------------------------------------> | ||
30 | + | ||
31 | +<ui> | ||
32 | + | ||
33 | + <keypad name="FunctionBar" label="Function bar" position="bottom" relief='half' > | ||
34 | + <row> | ||
35 | + <button action='pfkey' id='1' label='PF1' /> | ||
36 | + <button action='pfkey' id='2' label='PF2' /> | ||
37 | + <button action='pfkey' id='3' label='PF3' /> | ||
38 | + <button action='pfkey' id='4' label='PF4' /> | ||
39 | + <button action='pfkey' id='5' label='PF5' /> | ||
40 | + <button action='pfkey' id='6' label='PF6' /> | ||
41 | + <button action='pfkey' id='7' label='PF7' /> | ||
42 | + <button action='pfkey' id='8' label='PF8' /> | ||
43 | + <button action='pfkey' id='9' label='PF9' /> | ||
44 | + <button action='pfkey' id='10' label='PF10' /> | ||
45 | + <button action='pfkey' id='11' label='PF11' /> | ||
46 | + <button action='pfkey' id='12' label='PF12' /> | ||
47 | + </row> | ||
48 | + <row> | ||
49 | + <button action='pfkey' id='13' label='PF13' /> | ||
50 | + <button action='pfkey' id='14' label='PF14' /> | ||
51 | + <button action='pfkey' id='15' label='PF15' /> | ||
52 | + <button action='pfkey' id='16' label='PF16' /> | ||
53 | + <button action='pfkey' id='17' label='PF17' /> | ||
54 | + <button action='pfkey' id='18' label='PF18' /> | ||
55 | + <button action='pfkey' id='19' label='PF19' /> | ||
56 | + <button action='pfkey' id='20' label='PF20' /> | ||
57 | + <button action='pfkey' id='21' label='PF21' /> | ||
58 | + <button action='pfkey' id='22' label='PF22' /> | ||
59 | + <button action='pfkey' id='23' label='PF23' /> | ||
60 | + <button action='pfkey' id='24' label='PF24' /> | ||
61 | + </row> | ||
62 | + | ||
63 | + </keypad> | ||
64 | + | ||
65 | +</ui> |