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,6 +499,7 @@ GtkAction * ui_get_action(GtkWidget *widget, const gchar *name, GHashTable *hash | ||
499 | ACTION_TYPE_RESET, | 499 | ACTION_TYPE_RESET, |
500 | ACTION_TYPE_TABLE, | 500 | ACTION_TYPE_TABLE, |
501 | ACTION_TYPE_STRING, | 501 | ACTION_TYPE_STRING, |
502 | + ACTION_TYPE_LIB3270, | ||
502 | 503 | ||
503 | } action_type = ACTION_TYPE_DEFAULT; | 504 | } action_type = ACTION_TYPE_DEFAULT; |
504 | 505 | ||
@@ -581,6 +582,22 @@ GtkAction * ui_get_action(GtkWidget *widget, const gchar *name, GHashTable *hash | @@ -581,6 +582,22 @@ GtkAction * ui_get_action(GtkWidget *widget, const gchar *name, GHashTable *hash | ||
581 | id = ui_get_bool_attribute("append",names,values,FALSE) ? 1 : 0; | 582 | id = ui_get_bool_attribute("append",names,values,FALSE) ? 1 : 0; |
582 | nm = g_strconcat(id == 0 ? "cut" : "cutappend",ui_get_attribute("format",names,values),NULL); | 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 | else if(!g_ascii_strcasecmp(name,"select")) | 601 | else if(!g_ascii_strcasecmp(name,"select")) |
585 | { | 602 | { |
586 | static const gchar * src[] = { "all", "field", "none", "last", NULL }; | 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,6 +768,12 @@ GtkAction * ui_get_action(GtkWidget *widget, const gchar *name, GHashTable *hash | ||
751 | g_signal_connect(action,"activate",callback[id],widget); | 768 | g_signal_connect(action,"activate",callback[id],widget); |
752 | break; | 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 | case ACTION_TYPE_STRING: | 777 | case ACTION_TYPE_STRING: |
755 | action = gtk_action_new(nm,NULL,NULL,NULL); | 778 | action = gtk_action_new(nm,NULL,NULL,NULL); |
756 | g_signal_connect(action,"activate",G_CALLBACK(action_string),widget); | 779 | g_signal_connect(action,"activate",G_CALLBACK(action_string),widget); |
ui/00default.xml
@@ -76,11 +76,11 @@ | @@ -76,11 +76,11 @@ | ||
76 | <menuitem action='select' target='last' key='<Ctrl>r' group='online' label='Reselect' /> | 76 | <menuitem action='select' target='last' key='<Ctrl>r' group='online' label='Reselect' /> |
77 | 77 | ||
78 | <separator/> | 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 | </menu> | 84 | </menu> |
85 | 85 | ||
86 | <!--- Special action - View menu will be populated with labeled toolbars, menubars and keypads ---> | 86 | <!--- Special action - View menu will be populated with labeled toolbars, menubars and keypads ---> |
@@ -212,8 +212,8 @@ | @@ -212,8 +212,8 @@ | ||
212 | 212 | ||
213 | <accelerator action='DeleteWord' key='<Ctrl>w' group='online' /> | 213 | <accelerator action='DeleteWord' key='<Ctrl>w' group='online' /> |
214 | <accelerator action='Delete' key='Delete' group='online' /> | 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 | <accelerator action='fieldend' key='<ctrl>End' group='online' /> | 217 | <accelerator action='fieldend' key='<ctrl>End' group='online' /> |
218 | 218 | ||
219 | <accelerator action='SysREQ' key='Sys_Req' group='online' /> | 219 | <accelerator action='SysREQ' key='Sys_Req' group='online' /> |