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 | 347 | </Unit> |
| 348 | 348 | <Unit filename="src\tools\Makefile.in" /> |
| 349 | 349 | <Unit filename="ui\00default.xml" /> |
| 350 | + <Unit filename="ui\10functions.xml" /> | |
| 350 | 351 | <Unit filename="ui\10keypad.xml" /> |
| 351 | 352 | <Unit filename="ui\99debug.xml" /> |
| 352 | 353 | <Unit filename="updateChangeLog.sh" /> | ... | ... |
src/pw3270/Makefile.in
| ... | ... | @@ -191,6 +191,7 @@ $(DEBDIR)/pw3270.install: Makefile |
| 191 | 191 | @echo "$(libdir)/@DLLPREFIX@$(PACKAGE_TARNAME)@DLLEXT@" >> $@ |
| 192 | 192 | @echo "$(datarootdir)/$(PACKAGE_NAME)/ui/00default.xml" >> $@ |
| 193 | 193 | @echo "$(datarootdir)/$(PACKAGE_NAME)/ui/10keypad.xml" >> $@ |
| 194 | + @echo "$(datarootdir)/$(PACKAGE_NAME)/ui/10functions.xml" >> $@ | |
| 194 | 195 | @echo "$(datarootdir)/$(PACKAGE_NAME)/$(PACKAGE_NAME).png" >> $@ |
| 195 | 196 | @echo "$(datarootdir)/$(PACKAGE_NAME)/$(PACKAGE_NAME)-logo.png" >> $@ |
| 196 | 197 | ... | ... |
src/pw3270/uiparser/keypad.c
| ... | ... | @@ -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 | 231 | GObject * ui_create_keypad(GMarkupParseContext *context,GtkAction *action,struct parser *info,const gchar **names, const gchar **values, GError **error) |
| 214 | 232 | { |
| 215 | 233 | static const GMarkupParser parser = |
| ... | ... | @@ -244,7 +262,7 @@ |
| 244 | 262 | |
| 245 | 263 | keypad->parser = info; |
| 246 | 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 | 266 | keypad->relief = get_relief(names, values, GTK_RELIEF_NORMAL); |
| 249 | 267 | |
| 250 | 268 | switch(keypad->pos) |
| ... | ... | @@ -284,7 +302,6 @@ |
| 284 | 302 | } |
| 285 | 303 | } |
| 286 | 304 | |
| 287 | - | |
| 288 | 305 | gtk_handle_box_set_shadow_type(GTK_HANDLE_BOX(keypad->handle),GTK_SHADOW_ETCHED_IN); |
| 289 | 306 | gtk_container_add(GTK_CONTAINER(keypad->handle),keypad->box); |
| 290 | 307 | |
| ... | ... | @@ -297,7 +314,6 @@ |
| 297 | 314 | { |
| 298 | 315 | if(widget) |
| 299 | 316 | { |
| 300 | - gtk_widget_show_all(widget); | |
| 301 | 317 | gtk_table_attach( GTK_TABLE(keypad->table), |
| 302 | 318 | widget, |
| 303 | 319 | keypad->col,keypad->col+keypad->button_width, |
| ... | ... | @@ -350,8 +366,6 @@ |
| 350 | 366 | gtk_box_pack_start(GTK_BOX(keypad->box),keypad->table,FALSE,FALSE,0); |
| 351 | 367 | |
| 352 | 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 | 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 | 85 | if(gtk_handle_box_get_handle_position(GTK_HANDLE_BOX(widget)) != k->filter) |
| 86 | 86 | return; |
| 87 | 87 | |
| 88 | - gtk_widget_show_all(widget); | |
| 89 | 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 | 188 | struct action_info a_info; |
| 190 | 189 | |
| 191 | 190 | #if GTK_CHECK_VERSION(3,0,0) |
| 191 | + GtkWidget * mainBox = gtk_box_new(GTK_ORIENTATION_VERTICAL,0); | |
| 192 | 192 | GtkWidget * vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL,0); |
| 193 | 193 | GtkWidget * hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,0); |
| 194 | 194 | #else |
| 195 | + GtkWidget * mainBox = gtk_vbox_new(FALSE,0); | |
| 195 | 196 | GtkWidget * vbox = gtk_vbox_new(FALSE,0); |
| 196 | 197 | GtkWidget * hbox = gtk_hbox_new(FALSE,0); |
| 197 | 198 | #endif // GTK(3,0,0) |
| ... | ... | @@ -224,7 +225,7 @@ void parser_build(struct parser *p, GtkWidget *widget) |
| 224 | 225 | g_hash_table_foreach(p->actions,(GHFunc) action_group_setup, &a_info); |
| 225 | 226 | |
| 226 | 227 | // Pack menubars |
| 227 | - p->element = G_OBJECT(vbox); | |
| 228 | + p->element = G_OBJECT(mainBox); | |
| 228 | 229 | g_hash_table_foreach(p->element_list[UI_ELEMENT_MENUBAR],(GHFunc) pack_start, p); |
| 229 | 230 | |
| 230 | 231 | // Pack top toolbars |
| ... | ... | @@ -247,9 +248,10 @@ void parser_build(struct parser *p, GtkWidget *widget) |
| 247 | 248 | if(widget) |
| 248 | 249 | { |
| 249 | 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 | 252 | gtk_widget_show(widget); |
| 252 | 253 | } |
| 254 | + gtk_box_pack_start(GTK_BOX(hbox),vbox,TRUE,TRUE,0); | |
| 253 | 255 | |
| 254 | 256 | // Pack right keypads |
| 255 | 257 | keypad.filter = GTK_POS_LEFT; |
| ... | ... | @@ -262,11 +264,12 @@ void parser_build(struct parser *p, GtkWidget *widget) |
| 262 | 264 | g_hash_table_foreach(p->element_list[UI_ELEMENT_KEYPAD],(GHFunc) pack_keypad, &keypad); |
| 263 | 265 | |
| 264 | 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 | 270 | gtk_widget_show(hbox); |
| 269 | 271 | gtk_widget_show(vbox); |
| 272 | + gtk_widget_show(mainBox); | |
| 270 | 273 | |
| 271 | 274 | gtk_window_add_accel_group(GTK_WINDOW(p->toplevel),a_info.accel_group); |
| 272 | 275 | ... | ... |
| ... | ... | @@ -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> | ... | ... |