Commit 4e41fbbda2c516b26a81b864a1d10d2a3b91a166
1 parent
91a931df
Exists in
master
and in
5 other branches
Melhorando funcionalidades da action "Erase"
Showing
2 changed files
with
30 additions
and
7 deletions
Show diff stats
src/pw3270/actions.c
... | ... | @@ -499,6 +499,7 @@ GtkAction * ui_get_action(GtkWidget *widget, const gchar *name, GHashTable *hash |
499 | 499 | ACTION_TYPE_RESET, |
500 | 500 | ACTION_TYPE_TABLE, |
501 | 501 | ACTION_TYPE_STRING, |
502 | + ACTION_TYPE_LIB3270, | |
502 | 503 | |
503 | 504 | } action_type = ACTION_TYPE_DEFAULT; |
504 | 505 | |
... | ... | @@ -581,6 +582,22 @@ GtkAction * ui_get_action(GtkWidget *widget, const gchar *name, GHashTable *hash |
581 | 582 | id = ui_get_bool_attribute("append",names,values,FALSE) ? 1 : 0; |
582 | 583 | nm = g_strconcat(id == 0 ? "cut" : "cutappend",ui_get_attribute("format",names,values),NULL); |
583 | 584 | } |
585 | + else if(!g_ascii_strcasecmp(name,"erase")) | |
586 | + { | |
587 | + static const gchar * src[] = { "input", "eof", "eol", "all", "char", NULL }; | |
588 | + | |
589 | + static const GCallback cbk[] = { G_CALLBACK(lib3270_eraseinput), | |
590 | + G_CALLBACK(lib3270_eraseeof), | |
591 | + G_CALLBACK(lib3270_eraseeol), | |
592 | + G_CALLBACK(lib3270_clear), | |
593 | + G_CALLBACK(lib3270_erase) | |
594 | + }; | |
595 | + callback = cbk; | |
596 | + action_type = ACTION_TYPE_LIB3270; | |
597 | + id = get_attribute_id(name,"target",&nm,src,names,values,error); | |
598 | + if(id < 0) | |
599 | + return NULL; | |
600 | + } | |
584 | 601 | else if(!g_ascii_strcasecmp(name,"select")) |
585 | 602 | { |
586 | 603 | static const gchar * src[] = { "all", "field", "none", "last", NULL }; |
... | ... | @@ -751,6 +768,12 @@ GtkAction * ui_get_action(GtkWidget *widget, const gchar *name, GHashTable *hash |
751 | 768 | g_signal_connect(action,"activate",callback[id],widget); |
752 | 769 | break; |
753 | 770 | |
771 | + case ACTION_TYPE_LIB3270: | |
772 | + action = gtk_action_new(nm,NULL,NULL,NULL); | |
773 | + g_object_set_data(G_OBJECT(action),"lib3270_call",callback[id]); | |
774 | + g_signal_connect(action,"activate",G_CALLBACK(lib3270_action),widget); | |
775 | + break; | |
776 | + | |
754 | 777 | case ACTION_TYPE_STRING: |
755 | 778 | action = gtk_action_new(nm,NULL,NULL,NULL); |
756 | 779 | g_signal_connect(action,"activate",G_CALLBACK(action_string),widget); | ... | ... |
ui/00default.xml
... | ... | @@ -76,11 +76,11 @@ |
76 | 76 | <menuitem action='select' target='last' key='<Ctrl>r' group='online' label='Reselect' /> |
77 | 77 | |
78 | 78 | <separator/> |
79 | - <menuitem action='clear' group='online' key='Pause' label='Clear' /> | |
80 | - <menuitem action='EraseInput' icon='clear' group='online' label='Erase input' /> | |
81 | -<!--- <menuitem action='EraseField' key='<Ctrl>u' group='online' /> --> | |
82 | - <menuitem action='EraseEOF' group='online' label='Erase to end of field' /> | |
83 | - <menuitem action='EraseEOL' group='online' label='Erase to end of line' /> | |
79 | + <menuitem action='erase' target='all' group='online' key='Pause' label='Clear' /> | |
80 | + <menuitem action='erase' target='input' icon='clear' group='online' label='Erase input' /> | |
81 | +<!--- <menuitem action='erase' target='field' key='<Ctrl>u' group='online' /> --> | |
82 | + <menuitem action='erase' target='eof' group='online' label='Erase to end of field' /> | |
83 | + <menuitem action='erase' target='eol' group='online' label='Erase to end of line' /> | |
84 | 84 | </menu> |
85 | 85 | |
86 | 86 | <!--- Special action - View menu will be populated with labeled toolbars, menubars and keypads ---> |
... | ... | @@ -212,8 +212,8 @@ |
212 | 212 | |
213 | 213 | <accelerator action='DeleteWord' key='<Ctrl>w' group='online' /> |
214 | 214 | <accelerator action='Delete' key='Delete' group='online' /> |
215 | - <accelerator action='Erase' key='BackSpace' group='online' /> | |
216 | - <accelerator action='EraseEOF' key='End' group='online' /> | |
215 | + <accelerator action='erase' target='char' key='BackSpace' group='online' /> | |
216 | + <accelerator action='erase' target='eof' key='End' group='online' /> | |
217 | 217 | <accelerator action='fieldend' key='<ctrl>End' group='online' /> |
218 | 218 | |
219 | 219 | <accelerator action='SysREQ' key='Sys_Req' group='online' /> | ... | ... |