Commit 5be39e6a8d244daddff0cecace9ff52b2d1616ff

Authored by Perry Werneck
1 parent 2fba2bdc

Reimplementando keypads

src/pw3270/uiparser/button.c
... ... @@ -84,7 +84,7 @@
84 84 GtkAction * action = NULL;
85 85  
86 86 if(label) {
87   - keypad->widget = gtk_button_new_with_label(label);
  87 + keypad->widget = gtk_button_new_with_label(gettext(g_strcompress(label)));
88 88 } else {
89 89 gchar *text = g_strconcat("gtk-",icon,NULL);
90 90 keypad->widget = gtk_button_new();
... ... @@ -92,25 +92,6 @@
92 92 g_free(text);
93 93 }
94 94  
95   - /*
96   - const gchar * label = ui_get_attribute("label", names, values);
97   - const gchar * icon = ui_get_attribute("icon", names, values);
98   - const gchar * name = ui_get_attribute("action", names, values);
99   - GtkWidget * widget = NULL;
100   -
101   - if(label)
102   - {
103   - widget = gtk_button_new_with_label(gettext(g_strcompress(label)));
104   - }
105   - else if(icon)
106   - {
107   - gchar *text = g_strconcat("gtk-",icon,NULL);
108   - widget = gtk_button_new();
109   - gtk_container_add(GTK_CONTAINER(widget),gtk_image_new_from_stock(text,GTK_ICON_SIZE_SMALL_TOOLBAR));
110   - g_free(text);
111   - }
112   -*/
113   -
114 95 #if GTK_CHECK_VERSION(2,18,0)
115 96 gtk_widget_set_can_focus(keypad->widget,FALSE);
116 97 gtk_widget_set_can_default(keypad->widget,FALSE);
... ...
src/pw3270/uiparser/keypad.c
... ... @@ -28,11 +28,15 @@
28 28 */
29 29  
30 30 #include "keypad.h"
  31 + #include <stdlib.h>
31 32  
32 33 /*--[ Implement ]------------------------------------------------------------------------------------*/
33 34  
34 35 static void element_start(GMarkupParseContext *context, const gchar *element_name, const gchar **names,const gchar **values, struct keypad *keypad, GError **error)
35 36 {
  37 + int width = 1;
  38 + int height = 1;
  39 +
36 40 trace("%s(%s,%d,%d)",__FUNCTION__,element_name,(int) keypad->row, (int) keypad->col);
37 41  
38 42 keypad->widget = NULL;
... ... @@ -41,24 +45,45 @@
41 45 keypad_button_start(context, names, values, error, keypad);
42 46 }
43 47  
44   - }
45   -
46   - static void element_end(GMarkupParseContext *context, const gchar *element_name, struct keypad *keypad, GError **error)
47   - {
48 48 if(keypad->widget) {
49   - gtk_grid_attach(keypad->grid,keypad->widget,keypad->col,keypad->row,1,1);
  49 +
  50 + // Criou widget, incluir
  51 + const gchar * tmp;
  52 +
  53 + tmp = ui_get_attribute("width", names, values);
  54 + if(tmp) {
  55 + width = atoi(tmp);
  56 + }
  57 +
  58 + tmp = ui_get_attribute("height", names, values);
  59 + if(tmp) {
  60 + height = atoi(tmp);
  61 + }
  62 +
  63 + tmp = ui_get_attribute("column", names, values);
  64 + if(tmp) {
  65 + keypad->col = atoi(tmp);
  66 + }
  67 +
  68 + gtk_grid_attach(keypad->grid,keypad->widget,keypad->col,keypad->row,width,height);
50 69 keypad->widget = NULL;
  70 +
51 71 }
52 72  
53 73 if(!strcasecmp(element_name,"row")) {
54 74 keypad->row++;
55 75 keypad->col = 0;
56 76 } else {
57   - keypad->col++;
  77 + keypad->col += width;
58 78 }
59 79  
60 80 }
61 81  
  82 + static void element_end(GMarkupParseContext *context, const gchar *element_name, struct keypad *keypad, GError **error)
  83 + {
  84 +
  85 + }
  86 +
62 87 static void toggled(GtkToggleAction *action, GtkWidget *widget)
63 88 {
64 89 gboolean active = gtk_toggle_action_get_active(action);
... ... @@ -145,7 +170,7 @@
145 170 keypad->relief = ui_get_relief(names, values, GTK_RELIEF_NORMAL);
146 171 keypad->grid = GTK_GRID(gtk_grid_new());
147 172  
148   - gtk_grid_set_row_homogeneous(keypad->grid,TRUE);
  173 + // gtk_grid_set_row_homogeneous(keypad->grid,TRUE);
149 174 gtk_grid_set_column_homogeneous(keypad->grid,TRUE);
150 175  
151 176 g_object_set_data(G_OBJECT(keypad->grid),"position",(gpointer) keypad->pos);
... ...
ui/10keypad.xml
... ... @@ -34,64 +34,60 @@
34 34 <keypad name="keypad.right" label="Lateral keypad" position="right" key='<alt>k' relief='half' >
35 35  
36 36 <row>
37   - <button action='pfkey' id='1' label='PF1' />
38   - <button action='pfkey' id='2' label='PF2' />
39   - <button action='pfkey' id='3' label='PF3' />
  37 + <button action='pfkey' id='1' label='PF1' width='2'/>
  38 + <button action='pfkey' id='2' label='PF2' width='2' />
  39 + <button action='pfkey' id='3' label='PF3' width='2' />
40 40 </row>
41 41 <row>
42   - <button action='pfkey' id='4' label='PF4' />
43   - <button action='pfkey' id='5' label='PF5' />
44   - <button action='pfkey' id='6' label='PF6' />
  42 + <button action='pfkey' id='4' label='PF4' width='2' />
  43 + <button action='pfkey' id='5' label='PF5' width='2' />
  44 + <button action='pfkey' id='6' label='PF6' width='2' />
45 45 </row>
46 46 <row>
47   - <button action='pfkey' id='7' label='PF7' />
48   - <button action='pfkey' id='8' label='PF8' />
49   - <button action='pfkey' id='9' label='PF9' />
  47 + <button action='pfkey' id='7' label='PF7' width='2' />
  48 + <button action='pfkey' id='8' label='PF8' width='2' />
  49 + <button action='pfkey' id='9' label='PF9' width='2' />
50 50 </row>
51 51 <row>
52   - <button action='pfkey' id='10' label='PF10' />
53   - <button action='pfkey' id='11' label='PF11' />
54   - <button action='pfkey' id='12' label='PF12' />
  52 + <button action='pfkey' id='10' label='PF10' width='2' />
  53 + <button action='pfkey' id='11' label='PF11' width='2' />
  54 + <button action='pfkey' id='12' label='PF12' width='2' />
55 55 </row>
56 56 <row>
57   - <button />
58   - <button action='move' target='cursor' direction='up' icon="go-up" />
59   - <button />
  57 + <button action='move' target='cursor' direction='up' icon="go-up" column='2' width='2' />
60 58 </row>
61 59 <row>
62   - <button action='move' target='cursor' direction='left' icon="go-back" />
63   - <button action="firstfield" icon="goto-top" />
64   - <button action='move' target='cursor' direction='right' icon="go-forward" />
  60 + <button action='move' target='cursor' direction='left' icon="go-back" width='2' />
  61 + <button action="firstfield" icon="goto-top" width='2' />
  62 + <button action='move' target='cursor' direction='right' icon="go-forward" width='2' />
65 63 </row>
66 64 <row>
67   - <button />
68   - <button action='move' target='cursor' direction='down' icon="go-down"/>
69   - <button />
  65 + <button action='move' target='cursor' direction='down' icon="go-down" column='2' width='2'/>
70 66 </row>
71 67 <row>
72   - <button action='pakey' id='1' label='PA1' />
73   - <button action='pakey' id='2' label='PA2' />
74   - <button action='pakey' id='3' label='PA3' />
  68 + <button action='pakey' id='1' label='PA1' width='2' />
  69 + <button action='pakey' id='2' label='PA2' width='2' />
  70 + <button action='pakey' id='3' label='PA3' width='2' />
75 71 </row>
76 72 <row>
77   - <button action='PreviousField' icon="goto-first" />
78   - <button action='NextField' icon="goto-last" />
  73 + <button action='PreviousField' icon="goto-first" width='3' />
  74 + <button action='NextField' icon="goto-last" width='3' />
79 75 </row>
80 76 <row>
81   - <button action='erase' target='all' label="Clear" />
82   - <button action='kybdreset' label="Reset" />
  77 + <button action='erase' target='all' label="Clear" width='3' />
  78 + <button action='kybdreset' label="Reset" width='3' />
83 79 </row>
84 80 <row>
85   - <button action='EraseEOF' label="Erase\nEOF" />
86   - <button action='EraseInput' label="Erase\nInput" />
  81 + <button action='EraseEOF' label="Erase\nEOF" width='3' />
  82 + <button action='EraseInput' label="Erase\nInput" width='3' />
87 83 </row>
88 84 <row>
89   - <button action='Attn' label="Attn" />
90   - <button action='Break' label="Break" />
  85 + <button action='Attn' label="Attn" width='3' />
  86 + <button action='Break' label="Break" width='3' />
91 87 </row>
92 88  
93 89 <row>
94   - <button action='Enter' icon="ok" />
  90 + <button action='Enter' icon="ok" width='6'/>
95 91 </row>
96 92  
97 93 </keypad>
... ...