Commit 5be39e6a8d244daddff0cecace9ff52b2d1616ff
1 parent
2fba2bdc
Exists in
master
and in
5 other branches
Reimplementando keypads
Showing
3 changed files
with
62 additions
and
60 deletions
Show diff stats
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> | ... | ... |