Commit 7162468b49a98d57b84c48ee9f2ac985b37b2579
1 parent
aba7601f
Exists in
master
and in
5 other branches
Implementando suporte para o toggle bold, atualizando actions de seleção para o novo formato
Showing
7 changed files
with
109 additions
and
20 deletions
Show diff stats
src/gtk/actions.c
| ... | ... | @@ -201,7 +201,7 @@ static void lib3270_toggle_action(GtkToggleAction *action,GtkWidget *widget) |
| 201 | 201 | |
| 202 | 202 | static void selection_move_action(GtkAction *action, GtkWidget *widget) |
| 203 | 203 | { |
| 204 | - trace("Action %s activated on widget %p dir=%s",gtk_action_get_name(action),widget,(const gchar *) g_object_get_data(G_OBJECT(action),"direction")); | |
| 204 | + trace("Action %s activated on widget %p",gtk_action_get_name(action),widget); | |
| 205 | 205 | lib3270_move_selection(GTK_V3270(widget)->host,(LIB3270_DIRECTION) g_object_get_data(G_OBJECT(action),"direction")); |
| 206 | 206 | } |
| 207 | 207 | |
| ... | ... | @@ -266,6 +266,26 @@ static void action_reset_toggle(GtkAction *action, GtkWidget *widget) |
| 266 | 266 | lib3270_set_toggle(GTK_V3270(widget)->host,id,0); |
| 267 | 267 | } |
| 268 | 268 | |
| 269 | +static void action_select_all(GtkAction *action, GtkWidget *widget) | |
| 270 | +{ | |
| 271 | + lib3270_selectall(GTK_V3270(widget)->host); | |
| 272 | +} | |
| 273 | + | |
| 274 | +static void action_select_field(GtkAction *action, GtkWidget *widget) | |
| 275 | +{ | |
| 276 | + lib3270_selectfield(GTK_V3270(widget)->host); | |
| 277 | +} | |
| 278 | + | |
| 279 | +static void action_select_none(GtkAction *action, GtkWidget *widget) | |
| 280 | +{ | |
| 281 | + lib3270_unselect(GTK_V3270(widget)->host); | |
| 282 | +} | |
| 283 | + | |
| 284 | +static void action_select_last(GtkAction *action, GtkWidget *widget) | |
| 285 | +{ | |
| 286 | + lib3270_reselect(GTK_V3270(widget)->host); | |
| 287 | +} | |
| 288 | + | |
| 269 | 289 | static int id_from_array(const gchar *key, const gchar **array, GError **error) |
| 270 | 290 | { |
| 271 | 291 | int f; |
| ... | ... | @@ -452,6 +472,26 @@ GtkAction * ui_get_action(GtkWidget *widget, const gchar *name, GHashTable *hash |
| 452 | 472 | if(id < 0) |
| 453 | 473 | return NULL; |
| 454 | 474 | } |
| 475 | + else if(!g_strcasecmp(name,"select")) | |
| 476 | + { | |
| 477 | + static const gchar * src[] = { "all", | |
| 478 | + "field", | |
| 479 | + "none", | |
| 480 | + "last", | |
| 481 | + NULL | |
| 482 | + }; | |
| 483 | + | |
| 484 | + static const GCallback cbk[] = { G_CALLBACK(action_select_all), | |
| 485 | + G_CALLBACK(action_select_field), | |
| 486 | + G_CALLBACK(action_select_none), | |
| 487 | + G_CALLBACK(action_select_last) | |
| 488 | + }; | |
| 489 | + callback = cbk; | |
| 490 | + action_type = ACTION_TYPE_TABLE; | |
| 491 | + id = get_attribute_id(name,"target",&nm,src,names,values,error); | |
| 492 | + if(id < 0) | |
| 493 | + return NULL; | |
| 494 | + } | |
| 455 | 495 | else if(!g_strcasecmp(name,"save")) |
| 456 | 496 | { |
| 457 | 497 | static const GCallback cbk[] = { G_CALLBACK(save_all_action), | ... | ... |
src/gtk/main.c
| ... | ... | @@ -73,10 +73,44 @@ static int popup_handler(H3270 *session, LIB3270_NOTIFY type, const char *title, |
| 73 | 73 | return 0; |
| 74 | 74 | } |
| 75 | 75 | |
| 76 | +static int initialize(void) | |
| 77 | +{ | |
| 78 | + const gchar * msg = gtk_check_version(GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION); | |
| 79 | + | |
| 80 | + if(msg) | |
| 81 | + { | |
| 82 | + // Invalid GTK version, notify user | |
| 83 | + int rc; | |
| 84 | + GtkWidget *dialog = gtk_message_dialog_new( NULL, | |
| 85 | + GTK_DIALOG_DESTROY_WITH_PARENT, | |
| 86 | + GTK_MESSAGE_WARNING, | |
| 87 | + GTK_BUTTONS_OK_CANCEL, | |
| 88 | + _( "This program requires GTK version %d.%d.%d" ),GTK_MAJOR_VERSION,GTK_MINOR_VERSION,GTK_MICRO_VERSION ); | |
| 89 | + | |
| 90 | + | |
| 91 | + gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog),"%s",msg); | |
| 92 | + gtk_window_set_title(GTK_WINDOW(dialog),_( "GTK Version mismatch" )); | |
| 93 | + | |
| 94 | +#if GTK_CHECK_VERSION(2,10,0) | |
| 95 | + gtk_window_set_deletable(GTK_WINDOW(dialog),FALSE); | |
| 96 | +#endif | |
| 97 | + | |
| 98 | + rc = gtk_dialog_run(GTK_DIALOG (dialog)); | |
| 99 | + gtk_widget_destroy(dialog); | |
| 100 | + | |
| 101 | + if(rc != GTK_RESPONSE_OK) | |
| 102 | + return EINVAL; | |
| 103 | + } | |
| 104 | + | |
| 105 | +} | |
| 106 | + | |
| 76 | 107 | int main (int argc, char *argv[]) |
| 77 | 108 | { |
| 78 | 109 | gtk_init(&argc, &argv); |
| 79 | 110 | |
| 111 | + if(!initialize()) | |
| 112 | + return -1; | |
| 113 | + | |
| 80 | 114 | configuration_init(); |
| 81 | 115 | lib3270_set_popup_handler(popup_handler); |
| 82 | 116 | ... | ... |
src/gtk/v3270/draw.c
| ... | ... | @@ -18,7 +18,7 @@ |
| 18 | 18 | * programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple |
| 19 | 19 | * Place, Suite 330, Boston, MA, 02111-1307, USA |
| 20 | 20 | * |
| 21 | - * Este programa está nomeado como widget.c e possui - linhas de código. | |
| 21 | + * Este programa está nomeado como draw.c e possui - linhas de código. | |
| 22 | 22 | * |
| 23 | 23 | * Contatos: |
| 24 | 24 | * | ... | ... |
src/gtk/v3270/widget.c
| ... | ... | @@ -115,6 +115,12 @@ static void v3270_toggle_changed(v3270 *widget,LIB3270_TOGGLE toggle_id, gboolea |
| 115 | 115 | v3270_cursor_draw(widget); |
| 116 | 116 | break; |
| 117 | 117 | |
| 118 | + case LIB3270_TOGGLE_BOLD: | |
| 119 | + widget->font_weight = lib3270_get_toggle(widget->host,LIB3270_TOGGLE_BOLD) ? CAIRO_FONT_WEIGHT_BOLD : CAIRO_FONT_WEIGHT_NORMAL; | |
| 120 | + v3270_reload(GTK_WIDGET(widget)); | |
| 121 | + gtk_widget_queue_draw(GTK_WIDGET(widget)); | |
| 122 | + break; | |
| 123 | + | |
| 118 | 124 | default: |
| 119 | 125 | return; |
| 120 | 126 | |
| ... | ... | @@ -860,7 +866,7 @@ void v3270_set_font_family(GtkWidget *widget, const gchar *name) |
| 860 | 866 | trace("%s(%s)",__FUNCTION__,name); |
| 861 | 867 | |
| 862 | 868 | terminal->font_family = g_strdup(name); |
| 863 | - terminal->font_weight = CAIRO_FONT_WEIGHT_NORMAL; | |
| 869 | + terminal->font_weight = lib3270_get_toggle(terminal->host,LIB3270_TOGGLE_BOLD) ? CAIRO_FONT_WEIGHT_BOLD : CAIRO_FONT_WEIGHT_NORMAL; | |
| 864 | 870 | |
| 865 | 871 | g_signal_emit(widget,v3270_widget_signal[SIGNAL_UPDATE_CONFIG], 0, "font-family", name); |
| 866 | 872 | ... | ... |
src/include/lib3270.h
| ... | ... | @@ -18,7 +18,7 @@ |
| 18 | 18 | * programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple |
| 19 | 19 | * Place, Suite 330, Boston, MA, 02111-1307, USA |
| 20 | 20 | * |
| 21 | - * Este programa está nomeado como lib3270.h e possui 38 linhas de código. | |
| 21 | + * Este programa está nomeado como lib3270.h e possui - linhas de código. | |
| 22 | 22 | * |
| 23 | 23 | * Contatos: |
| 24 | 24 | * | ... | ... |
src/include/lib3270/config.h.in
ui/00default.xml
| ... | ... | @@ -25,7 +25,6 @@ |
| 25 | 25 | erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) |
| 26 | 26 | licinio@bb.com.br (Licínio Luis Branco) |
| 27 | 27 | kraucer@bb.com.br (Kraucer Fernandes Mazuco) |
| 28 | - macmiranda@bb.com.br (Marco Aurélio Caldas Miranda) | |
| 29 | 28 | |
| 30 | 29 | ------------------------------------------------------------------------------> |
| 31 | 30 | |
| ... | ... | @@ -50,19 +49,20 @@ |
| 50 | 49 | |
| 51 | 50 | <menu name='EditMenu' label='_Edit' > |
| 52 | 51 | <menuitem action='copy' mode='begin' key='<ctrl>c' icon='copy' group='selection' label='Copy' /> |
| 53 | - <menuitem action='copy' mode='table' key='<ctrl><alt>c' group='selection' label='Copy as table' /> | |
| 54 | - <menuitem action='copy' mode='image' group='selection' label='Copy as image' /> | |
| 52 | + <!-- menuitem action='copy' mode='table' key='<ctrl><alt>c' group='selection' label='Copy as table' /--> | |
| 53 | + <!-- menuitem action='copy' mode='image' group='selection' label='Copy as image' /--> | |
| 55 | 54 | <menuitem action='copy' mode='append' key='<shift><ctrl>c' group='selection' label='Add to copy' /> |
| 56 | 55 | <menuitem action='paste' src='clipboard' key='<ctrl>v' icon='paste' group='paste' label='Paste' /> |
| 57 | 56 | <menuitem action='paste' src='next' key='<shift><ctrl>v' label='Paste next' /> |
| 57 | + | |
| 58 | + <!-- If you want to paste a predefined file use the attribute filename='FULL_PATH' --> | |
| 58 | 59 | <menuitem action='paste' src='file' group='online' label='Paste text file' /> |
| 59 | 60 | |
| 60 | 61 | <separator/> |
| 61 | - <menuitem action='selectall' key='<ctrl>a' icon='select-all' group='online' label='Select all' /> | |
| 62 | - | |
| 63 | - <menuitem action='selectfield' key='<Ctrl>f' group='online' label='Select Field' /> | |
| 64 | - <menuitem action='unselect' group='selection' label='Remove selection' /> | |
| 65 | - <menuitem action='reselect' key='<Ctrl>r' group='online' label='Reselect' /> | |
| 62 | + <menuitem action='select' target='all' key='<ctrl>a' icon='select-all' group='online' label='Select all' /> | |
| 63 | + <menuitem action='select' target='field' key='<Ctrl>f' group='online' label='Select Field' /> | |
| 64 | + <menuitem action='select' target='none' group='selection' label='Remove selection' /> | |
| 65 | + <menuitem action='select' target='last' key='<Ctrl>r' group='online' label='Reselect' /> | |
| 66 | 66 | |
| 67 | 67 | <separator/> |
| 68 | 68 | <menuitem action='clear' group='online' key='Pause' label='Clear' /> |
| ... | ... | @@ -154,8 +154,8 @@ |
| 154 | 154 | <popup name='selectionpopup' type='selection'> |
| 155 | 155 | <menuitem action='copy' mode='begin' /> |
| 156 | 156 | <menuitem action='copy' mode='append' /> |
| 157 | - <menuitem action='unselect'/> | |
| 158 | - <menuitem action='selectall'/> | |
| 157 | + <menuitem action='select' target='none'/> | |
| 158 | + <menuitem action='select' target='all'/> | |
| 159 | 159 | |
| 160 | 160 | <separator /> |
| 161 | 161 | <menuitem action='print' src='all'/> |
| ... | ... | @@ -169,26 +169,33 @@ |
| 169 | 169 | <popup name='defaultpopup' type='default'> |
| 170 | 170 | <menuitem action='paste' src='clipboard'/> |
| 171 | 171 | <menuitem action='paste' src='next'/> |
| 172 | - <menuitem action='selectall'/> | |
| 172 | + <menuitem action='select' target='all'/> | |
| 173 | 173 | <menuitem action='print' src='all'/> |
| 174 | 174 | <menuitem action='print' src='copy'/> |
| 175 | 175 | |
| 176 | 176 | <separator /> |
| 177 | 177 | <menuitem action='backtab' label='Previous field' /> |
| 178 | 178 | <menuitem action='tab' label='Next field'/> |
| 179 | - <menuitem action='activate' label='Return' /> | |
| 179 | + <menuitem name="return" action='activate' label='Return' key='return' /> | |
| 180 | 180 | |
| 181 | 181 | <separator /> |
| 182 | 182 | <menuitem action='Quit'/> |
| 183 | 183 | |
| 184 | 184 | </popup> |
| 185 | 185 | |
| 186 | + <popup name='connectpopup' type='offline'> | |
| 187 | + | |
| 188 | + <menuitem action='connect' /> | |
| 189 | + <menuitem action='Quit'/> | |
| 190 | + | |
| 191 | + </popup> | |
| 192 | + | |
| 186 | 193 | <accelerator action='toggle' id='insert' key='Insert' group='online' /> |
| 187 | 194 | |
| 188 | 195 | <accelerator action='Home' key='Home' group='online' /> |
| 189 | 196 | <!-- accelerator action='Reset' key='<Shift><Ctrl>r' group='online' /--> |
| 190 | - <accelerator action='Return' key='Return' /> | |
| 191 | - <accelerator action='Enter' key='KP_Enter' /> | |
| 197 | + <!-- accelerator name="return" action='activate' key='return' /--> | |
| 198 | + <accelerator name="KP_enter" action='activate' key='KP_Enter' /> | |
| 192 | 199 | <accelerator action='Break' key='Escape' group='online' /> |
| 193 | 200 | <accelerator action='Attn' key='<shift>Escape' group='online' /> |
| 194 | 201 | |
| ... | ... | @@ -215,8 +222,8 @@ |
| 215 | 222 | <accelerator action='move' target='cursor' direction='up' key='Up' group='online' /> |
| 216 | 223 | <accelerator action='move' target='cursor' direction='down' key='Down' group='online' /> |
| 217 | 224 | |
| 218 | - <accelerator action='PreviousField' key='ISO_Left_Tab' group='online' /> | |
| 219 | - <accelerator action='NextField' key='Tab' group='online' /> | |
| 225 | + <accelerator action='PreviousField' key='ISO_Left_Tab' group='online' label='Previous field' /> | |
| 226 | + <accelerator action='NextField' key='Tab' group='online' label='Next field'/> | |
| 220 | 227 | |
| 221 | 228 | <accelerator action='dup' key='<Shift>KP_Multiply' group='online' /> |
| 222 | 229 | ... | ... |