Commit 004109bcb3579e250ccef96925cc78a766b1c587
1 parent
22765196
Exists in
master
and in
5 other branches
Mudando tratamento de acoes para incluir novos atributos
Showing
8 changed files
with
53 additions
and
128 deletions
Show diff stats
src/gtk/actions.c
| @@ -240,12 +240,22 @@ static void action_pakey(GtkAction *action, GtkWidget *widget) | @@ -240,12 +240,22 @@ static void action_pakey(GtkAction *action, GtkWidget *widget) | ||
| 240 | lib3270_pakey(GTK_V3270(widget)->host,(int) g_object_get_data(G_OBJECT(action),"pakey")); | 240 | lib3270_pakey(GTK_V3270(widget)->host,(int) g_object_get_data(G_OBJECT(action),"pakey")); |
| 241 | } | 241 | } |
| 242 | 242 | ||
| 243 | -/* | ||
| 244 | -static void action_fullscreen(GtkAction *action, GtkWidget *widget) | 243 | +static void action_set_toggle(GtkAction *action, GtkWidget *widget) |
| 244 | +{ | ||
| 245 | + LIB3270_TOGGLE id = (LIB3270_TOGGLE) g_object_get_data(G_OBJECT(action),"toggle_id"); | ||
| 246 | + trace("Action %s activated on widget %p toggle=%d",gtk_action_get_name(action),widget,id); | ||
| 247 | + lib3270_set_toggle(GTK_V3270(widget)->host,id,1); | ||
| 248 | +} | ||
| 249 | + | ||
| 250 | +static void action_reset_toggle(GtkAction *action, GtkWidget *widget) | ||
| 245 | { | 251 | { |
| 246 | - lib3270_set_toggle(GTK_V3270(widget)->host,LIB3270_TOGGLE_FULL_SCREEN,1); | 252 | + LIB3270_TOGGLE id = (LIB3270_TOGGLE) g_object_get_data(G_OBJECT(action),"toggle_id"); |
| 253 | + trace("Action %s activated on widget %p toggle=%d",gtk_action_get_name(action),widget,id); | ||
| 254 | + lib3270_set_toggle(GTK_V3270(widget)->host,id,0); | ||
| 247 | } | 255 | } |
| 248 | 256 | ||
| 257 | +/* | ||
| 258 | + | ||
| 249 | static void action_reselect(GtkAction *action, GtkWidget *widget) | 259 | static void action_reselect(GtkAction *action, GtkWidget *widget) |
| 250 | { | 260 | { |
| 251 | lib3270_reselect(GTK_V3270(widget)->host); | 261 | lib3270_reselect(GTK_V3270(widget)->host); |
| @@ -261,12 +271,6 @@ static void action_pastnext(GtkAction *action, GtkWidget *widget) | @@ -261,12 +271,6 @@ static void action_pastnext(GtkAction *action, GtkWidget *widget) | ||
| 261 | lib3270_pastenext(GTK_V3270(widget)->host); | 271 | lib3270_pastenext(GTK_V3270(widget)->host); |
| 262 | } | 272 | } |
| 263 | 273 | ||
| 264 | -void ui_connect_pakey(GtkAction *action, GtkWidget *widget, const gchar *name, const gchar *id) | ||
| 265 | -{ | ||
| 266 | - g_object_set_data(G_OBJECT(action),"pakey",(gpointer) atoi(id)); | ||
| 267 | - g_signal_connect(action,"activate",G_CALLBACK(action_pakey),widget); | ||
| 268 | -} | ||
| 269 | - | ||
| 270 | void ui_connect_index_action(GtkAction *action, GtkWidget *widget, int ix, GtkAction **lst) | 274 | void ui_connect_index_action(GtkAction *action, GtkWidget *widget, int ix, GtkAction **lst) |
| 271 | { | 275 | { |
| 272 | // trace("action(%d): %p",ix,action); | 276 | // trace("action(%d): %p",ix,action); |
| @@ -298,6 +302,11 @@ void ui_connect_index_action(GtkAction *action, GtkWidget *widget, int ix, GtkAc | @@ -298,6 +302,11 @@ void ui_connect_index_action(GtkAction *action, GtkWidget *widget, int ix, GtkAc | ||
| 298 | 302 | ||
| 299 | GtkAction * ui_get_action(GtkWidget *widget, const gchar *name, GHashTable *hash, const gchar **names, const gchar **values, GError **error) | 303 | GtkAction * ui_get_action(GtkWidget *widget, const gchar *name, GHashTable *hash, const gchar **names, const gchar **values, GError **error) |
| 300 | { | 304 | { |
| 305 | + static const gchar *actionname[ACTION_COUNT] = { "pastenext", | ||
| 306 | + "reselect", | ||
| 307 | + "setfullscreen", | ||
| 308 | + "resetfullscreen" | ||
| 309 | + }; | ||
| 301 | GtkAction * action = NULL; | 310 | GtkAction * action = NULL; |
| 302 | GtkAction **toggle_action = (GtkAction **) g_object_get_data(G_OBJECT(widget),"toggle_actions"); | 311 | GtkAction **toggle_action = (GtkAction **) g_object_get_data(G_OBJECT(widget),"toggle_actions"); |
| 303 | const gchar * direction = ui_get_attribute("direction",names,values); | 312 | const gchar * direction = ui_get_attribute("direction",names,values); |
| @@ -305,6 +314,7 @@ GtkAction * ui_get_action(GtkWidget *widget, const gchar *name, GHashTable *hash | @@ -305,6 +314,7 @@ GtkAction * ui_get_action(GtkWidget *widget, const gchar *name, GHashTable *hash | ||
| 305 | const gchar * attr; | 314 | const gchar * attr; |
| 306 | int id = 0; | 315 | int id = 0; |
| 307 | gchar * nm = NULL; | 316 | gchar * nm = NULL; |
| 317 | + int f; | ||
| 308 | 318 | ||
| 309 | enum _action_type | 319 | enum _action_type |
| 310 | { | 320 | { |
| @@ -365,6 +375,7 @@ GtkAction * ui_get_action(GtkWidget *widget, const gchar *name, GHashTable *hash | @@ -365,6 +375,7 @@ GtkAction * ui_get_action(GtkWidget *widget, const gchar *name, GHashTable *hash | ||
| 365 | } | 375 | } |
| 366 | else if(!g_strcasecmp(name,"set")) | 376 | else if(!g_strcasecmp(name,"set")) |
| 367 | { | 377 | { |
| 378 | + action_type = ACTION_TYPE_SET; | ||
| 368 | attr = ui_get_attribute("toggle",names,values); | 379 | attr = ui_get_attribute("toggle",names,values); |
| 369 | id = lib3270_get_toggle_id(attr); | 380 | id = lib3270_get_toggle_id(attr); |
| 370 | if(id < 0) | 381 | if(id < 0) |
| @@ -376,6 +387,7 @@ GtkAction * ui_get_action(GtkWidget *widget, const gchar *name, GHashTable *hash | @@ -376,6 +387,7 @@ GtkAction * ui_get_action(GtkWidget *widget, const gchar *name, GHashTable *hash | ||
| 376 | } | 387 | } |
| 377 | else if(!g_strcasecmp(name,"reset")) | 388 | else if(!g_strcasecmp(name,"reset")) |
| 378 | { | 389 | { |
| 390 | + action_type = ACTION_TYPE_RESET; | ||
| 379 | attr = ui_get_attribute("toggle",names,values); | 391 | attr = ui_get_attribute("toggle",names,values); |
| 380 | id = lib3270_get_toggle_id(attr); | 392 | id = lib3270_get_toggle_id(attr); |
| 381 | if(id < 0) | 393 | if(id < 0) |
| @@ -455,13 +467,27 @@ GtkAction * ui_get_action(GtkWidget *widget, const gchar *name, GHashTable *hash | @@ -455,13 +467,27 @@ GtkAction * ui_get_action(GtkWidget *widget, const gchar *name, GHashTable *hash | ||
| 455 | 467 | ||
| 456 | case ACTION_TYPE_SET: | 468 | case ACTION_TYPE_SET: |
| 457 | action = gtk_action_new(nm,NULL,NULL,NULL); | 469 | action = gtk_action_new(nm,NULL,NULL,NULL); |
| 470 | + g_object_set_data(G_OBJECT(action),"toggle_id",(gpointer) id); | ||
| 471 | + g_signal_connect(action,"activate",G_CALLBACK(action_set_toggle),widget); | ||
| 458 | break; | 472 | break; |
| 459 | 473 | ||
| 460 | case ACTION_TYPE_RESET: | 474 | case ACTION_TYPE_RESET: |
| 461 | action = gtk_action_new(nm,NULL,NULL,NULL); | 475 | action = gtk_action_new(nm,NULL,NULL,NULL); |
| 476 | + g_object_set_data(G_OBJECT(action),"toggle_id",(gpointer) id); | ||
| 477 | + g_signal_connect(action,"activate",G_CALLBACK(action_reset_toggle),widget); | ||
| 462 | break; | 478 | break; |
| 463 | } | 479 | } |
| 464 | 480 | ||
| 481 | + for(f=0;f<ACTION_COUNT;f++) | ||
| 482 | + { | ||
| 483 | + if(!g_strcasecmp(actionname[f],nm)) | ||
| 484 | + { | ||
| 485 | + GtkAction **named_action = (GtkAction **) g_object_get_data(G_OBJECT(widget),"named_actions"); | ||
| 486 | + named_action[f] = action; | ||
| 487 | + break; | ||
| 488 | + } | ||
| 489 | + } | ||
| 490 | + | ||
| 465 | g_hash_table_insert(hash,nm,action); | 491 | g_hash_table_insert(hash,nm,action); |
| 466 | g_free(nm); | 492 | g_free(nm); |
| 467 | 493 |
src/gtk/mainwindow.c
| @@ -32,6 +32,10 @@ | @@ -32,6 +32,10 @@ | ||
| 32 | #include "globals.h" | 32 | #include "globals.h" |
| 33 | #include "uiparser/parser.h" | 33 | #include "uiparser/parser.h" |
| 34 | 34 | ||
| 35 | +#ifdef DEBUG | ||
| 36 | + #include <lib3270/actions.h> | ||
| 37 | +#endif | ||
| 38 | + | ||
| 35 | /*--[ Globals ]--------------------------------------------------------------------------------------*/ | 39 | /*--[ Globals ]--------------------------------------------------------------------------------------*/ |
| 36 | 40 | ||
| 37 | enum action_group | 41 | enum action_group |
| @@ -74,11 +78,6 @@ | @@ -74,11 +78,6 @@ | ||
| 74 | NULL | 78 | NULL |
| 75 | }; | 79 | }; |
| 76 | 80 | ||
| 77 | - static const gchar *actionname[ACTION_COUNT+1] = { "pastenext", | ||
| 78 | - "reselect", | ||
| 79 | - "setfullscreen", | ||
| 80 | - "resetfullscreen" | ||
| 81 | - }; | ||
| 82 | /*--[ Implement ]------------------------------------------------------------------------------------*/ | 81 | /*--[ Implement ]------------------------------------------------------------------------------------*/ |
| 83 | 82 | ||
| 84 | static void toggle_changed(GtkWidget *widget, LIB3270_TOGGLE id, gboolean toggled, const gchar *name, GtkWindow *toplevel) | 83 | static void toggle_changed(GtkWidget *widget, LIB3270_TOGGLE id, gboolean toggled, const gchar *name, GtkWindow *toplevel) |
| @@ -104,7 +103,7 @@ | @@ -104,7 +103,7 @@ | ||
| 104 | static gboolean window_state_event(GtkWidget *window, GdkEventWindowState *event, GtkWidget *widget) | 103 | static gboolean window_state_event(GtkWidget *window, GdkEventWindowState *event, GtkWidget *widget) |
| 105 | { | 104 | { |
| 106 | gboolean fullscreen = event->new_window_state & GDK_WINDOW_STATE_FULLSCREEN ? TRUE : FALSE; | 105 | gboolean fullscreen = event->new_window_state & GDK_WINDOW_STATE_FULLSCREEN ? TRUE : FALSE; |
| 107 | - GtkAction **action = (GtkAction **) g_object_get_data(G_OBJECT(window),"named_actions"); | 106 | + GtkAction **action = (GtkAction **) g_object_get_data(G_OBJECT(widget),"named_actions"); |
| 108 | 107 | ||
| 109 | // Update fullscreen toggles | 108 | // Update fullscreen toggles |
| 110 | if(action[ACTION_FULLSCREEN]) | 109 | if(action[ACTION_FULLSCREEN]) |
| @@ -284,11 +283,13 @@ | @@ -284,11 +283,13 @@ | ||
| 284 | H3270 * host = v3270_get_session(terminal); | 283 | H3270 * host = v3270_get_session(terminal); |
| 285 | gchar * path = build_data_filename("ui",NULL); | 284 | gchar * path = build_data_filename("ui",NULL); |
| 286 | GtkActionGroup **group; | 285 | GtkActionGroup **group; |
| 287 | - GtkAction **action; | 286 | + GtkAction **action = g_new0(GtkAction *,ACTION_COUNT); |
| 288 | GtkWidget **popup; | 287 | GtkWidget **popup; |
| 289 | int f; | 288 | int f; |
| 290 | 289 | ||
| 291 | g_object_set_data_full(G_OBJECT(terminal),"toggle_actions",g_new0(GtkAction *,LIB3270_TOGGLE_COUNT),g_free); | 290 | g_object_set_data_full(G_OBJECT(terminal),"toggle_actions",g_new0(GtkAction *,LIB3270_TOGGLE_COUNT),g_free); |
| 291 | + g_object_set_data_full(G_OBJECT(terminal),"named_actions",(gpointer) action, (GDestroyNotify) g_free); | ||
| 292 | + | ||
| 292 | // Initialize terminal config | 293 | // Initialize terminal config |
| 293 | for(f=0;f<G_N_ELEMENTS(widget_config);f++) | 294 | for(f=0;f<G_N_ELEMENTS(widget_config);f++) |
| 294 | { | 295 | { |
| @@ -307,12 +308,9 @@ | @@ -307,12 +308,9 @@ | ||
| 307 | } | 308 | } |
| 308 | 309 | ||
| 309 | // Create window | 310 | // Create window |
| 310 | - window = ui_parse_xml_folder(path,groupname,popupname,actionname,terminal,widget_setup); | 311 | + window = ui_parse_xml_folder(path,groupname,popupname,terminal,widget_setup); |
| 311 | group = g_object_get_data(G_OBJECT(window),"action_groups"); | 312 | group = g_object_get_data(G_OBJECT(window),"action_groups"); |
| 312 | popup = g_object_get_data(G_OBJECT(window),"popup_menus"); | 313 | popup = g_object_get_data(G_OBJECT(window),"popup_menus"); |
| 313 | - action = (GtkAction **) g_object_get_data(G_OBJECT(window),"named_actions"); | ||
| 314 | - | ||
| 315 | - g_object_set_data(G_OBJECT(terminal),"named_actions",action); | ||
| 316 | 314 | ||
| 317 | // Setup action groups | 315 | // Setup action groups |
| 318 | gtk_action_group_set_sensitive(group[ACTION_GROUP_SELECTION],FALSE); | 316 | gtk_action_group_set_sensitive(group[ACTION_GROUP_SELECTION],FALSE); |
| @@ -359,6 +357,7 @@ | @@ -359,6 +357,7 @@ | ||
| 359 | lib3270_testpattern(host); | 357 | lib3270_testpattern(host); |
| 360 | #endif | 358 | #endif |
| 361 | 359 | ||
| 360 | + trace("%s ends",__FUNCTION__); | ||
| 362 | return window; | 361 | return window; |
| 363 | } | 362 | } |
| 364 | 363 |
src/gtk/uiparser/parsefile.c
| @@ -146,7 +146,7 @@ | @@ -146,7 +146,7 @@ | ||
| 146 | action = g_hash_table_lookup(info->actions,name); | 146 | action = g_hash_table_lookup(info->actions,name); |
| 147 | if(!action) | 147 | if(!action) |
| 148 | { | 148 | { |
| 149 | - action = gtk_action_new(name,NULL,NULL,NULL); | 149 | + action = gtk_action_new(name,NULL,NULL,GTK_STOCK_QUIT); |
| 150 | g_signal_connect(action,"activate",G_CALLBACK(gtk_main_quit), NULL); | 150 | g_signal_connect(action,"activate",G_CALLBACK(gtk_main_quit), NULL); |
| 151 | } | 151 | } |
| 152 | } | 152 | } |
| @@ -155,95 +155,8 @@ | @@ -155,95 +155,8 @@ | ||
| 155 | action = ui_get_action(info->center_widget,name,info->actions,names,values,error); | 155 | action = ui_get_action(info->center_widget,name,info->actions,names,values,error); |
| 156 | } | 156 | } |
| 157 | 157 | ||
| 158 | - if(!action) | ||
| 159 | - return action; | ||
| 160 | - | ||
| 161 | -/* | ||
| 162 | - const gchar * target = NULL; | ||
| 163 | - const gchar * direction = ui_get_attribute("direction",names,values); | ||
| 164 | - const gchar * id = ui_get_attribute("id",names,values); | ||
| 165 | - GtkAction * action; | ||
| 166 | - gchar * nm; | ||
| 167 | - void (*connect)(GtkAction *action, GtkWidget *widget, const gchar *name, const gchar *id) = ui_connect_action; | ||
| 168 | - GtkAction * (*create)(const gchar *,const gchar *,const gchar *,const gchar *) = gtk_action_new; | ||
| 169 | - | ||
| 170 | - if(!g_strcasecmp(name,"toggle")) | ||
| 171 | - { | ||
| 172 | - nm = g_strconcat(name,id,NULL); | ||
| 173 | - create = (GtkAction * (*)(const gchar *,const gchar *,const gchar *,const gchar *)) gtk_toggle_action_new; | ||
| 174 | - connect = ui_connect_toggle; | ||
| 175 | - } | ||
| 176 | - else if(!g_strcasecmp(name,"move")) | ||
| 177 | - { | ||
| 178 | - target = ui_get_attribute("target",names,values); | ||
| 179 | - | ||
| 180 | - if(!(target && direction)) | ||
| 181 | - { | ||
| 182 | - *error = g_error_new(ERROR_DOMAIN,EINVAL,"%s",_("Move action needs target & direction attributes" )); | ||
| 183 | - return NULL; | ||
| 184 | - } | ||
| 185 | - | ||
| 186 | - nm = g_strconcat((flags & 0x80) ? "select" : "move",target,direction, NULL); | ||
| 187 | - | ||
| 188 | - } | ||
| 189 | - else if(!g_strcasecmp(name,"toggleset")) | ||
| 190 | - { | ||
| 191 | - nm = g_strconcat("set",id,NULL); | ||
| 192 | - } | ||
| 193 | - else if(!g_strcasecmp(name,"togglereset")) | ||
| 194 | - { | ||
| 195 | - nm = g_strconcat("reset",id,NULL); | ||
| 196 | - } | ||
| 197 | - else if(!g_strcasecmp(name,"pfkey")) | ||
| 198 | - { | ||
| 199 | - nm = g_strdup_printf("pf%02d",atoi(id ? id : "0")); | ||
| 200 | - connect = ui_connect_pfkey; | ||
| 201 | - } | ||
| 202 | - else if(!g_strcasecmp(name,"pakey")) | ||
| 203 | - { | ||
| 204 | - nm = g_strdup_printf("pa%02d",atoi(id ? id : "0")); | ||
| 205 | - connect = ui_connect_pakey; | ||
| 206 | - } | ||
| 207 | - else | ||
| 208 | - { | ||
| 209 | - nm = g_strdup(name); | ||
| 210 | - } | ||
| 211 | - | ||
| 212 | - action = g_hash_table_lookup(info->actions,nm); | ||
| 213 | - | ||
| 214 | if(action) | 158 | if(action) |
| 215 | - { | ||
| 216 | - g_free(nm); | ||
| 217 | - } | ||
| 218 | - else | ||
| 219 | - { | ||
| 220 | - int ix = -1; | ||
| 221 | - | ||
| 222 | - action = GTK_ACTION(create(nm,NULL,NULL,NULL)); | ||
| 223 | - g_hash_table_insert(info->actions,nm,action); | ||
| 224 | - | ||
| 225 | - if(info->actionname) | ||
| 226 | - { | ||
| 227 | - int f; | ||
| 228 | - for(f=0;info->actionname[f] && ix < 0;f++) | ||
| 229 | - { | ||
| 230 | - if(!g_strcasecmp(nm,info->actionname[f])) | ||
| 231 | - ix = f; | ||
| 232 | - } | ||
| 233 | - } | ||
| 234 | - | ||
| 235 | - if(ix >= 0) | ||
| 236 | - ui_connect_index_action(info->action[ix] = action,info->center_widget,ix,info->action); | ||
| 237 | - else if(target) | ||
| 238 | - ui_connect_target_action(action,info->center_widget,target,flags,error); | ||
| 239 | - else if(g_strcasecmp(name,"quit")) | ||
| 240 | - connect(action,info->center_widget,name,id); | ||
| 241 | - else | ||
| 242 | - g_signal_connect(action,"activate",G_CALLBACK(gtk_main_quit), NULL); | ||
| 243 | - | ||
| 244 | - } | ||
| 245 | -*/ | ||
| 246 | - ui_action_set_options(action,info,names,values,error); | 159 | + ui_action_set_options(action,info,names,values,error); |
| 247 | 160 | ||
| 248 | return action; | 161 | return action; |
| 249 | } | 162 | } |
src/gtk/uiparser/parser.c
| @@ -217,7 +217,7 @@ static void release_list(GObject **obj) | @@ -217,7 +217,7 @@ static void release_list(GObject **obj) | ||
| 217 | g_free(obj); | 217 | g_free(obj); |
| 218 | } | 218 | } |
| 219 | 219 | ||
| 220 | -GtkWidget * ui_parse_xml_folder(const gchar *path, const gchar ** groupname, const gchar **popupname, const gchar **actionname, GtkWidget *widget, const UI_WIDGET_SETUP *setup) | 220 | +GtkWidget * ui_parse_xml_folder(const gchar *path, const gchar ** groupname, const gchar **popupname, GtkWidget *widget, const UI_WIDGET_SETUP *setup) |
| 221 | { | 221 | { |
| 222 | struct parser p; | 222 | struct parser p; |
| 223 | GDir * dir; | 223 | GDir * dir; |
| @@ -270,17 +270,12 @@ GtkWidget * ui_parse_xml_folder(const gchar *path, const gchar ** groupname, con | @@ -270,17 +270,12 @@ GtkWidget * ui_parse_xml_folder(const gchar *path, const gchar ** groupname, con | ||
| 270 | p.popupname = popupname; | 270 | p.popupname = popupname; |
| 271 | p.strings = g_string_chunk_new(0); | 271 | p.strings = g_string_chunk_new(0); |
| 272 | p.setup = setup; | 272 | p.setup = setup; |
| 273 | - p.actionname = actionname; | ||
| 274 | 273 | ||
| 275 | sz = (g_strv_length((gchar **) p.popupname)); | 274 | sz = (g_strv_length((gchar **) p.popupname)); |
| 276 | p.popup = g_new0(GtkWidget *,sz+1); | 275 | p.popup = g_new0(GtkWidget *,sz+1); |
| 277 | p.popup[sz] = (GtkWidget *) -1; | 276 | p.popup[sz] = (GtkWidget *) -1; |
| 278 | g_object_set_data_full(G_OBJECT(p.toplevel),"popup_menus",(gpointer) p.popup, (GDestroyNotify) release_list); | 277 | g_object_set_data_full(G_OBJECT(p.toplevel),"popup_menus",(gpointer) p.popup, (GDestroyNotify) release_list); |
| 279 | 278 | ||
| 280 | - sz = (g_strv_length((gchar **) p.actionname)); | ||
| 281 | - p.action = g_new0(GtkAction *,sz); | ||
| 282 | - g_object_set_data_full(G_OBJECT(p.toplevel),"named_actions",(gpointer) p.action, (GDestroyNotify) g_free); | ||
| 283 | - | ||
| 284 | for(current = g_list_first(file);current;current = g_list_next(current)) | 279 | for(current = g_list_first(file);current;current = g_list_next(current)) |
| 285 | { | 280 | { |
| 286 | ui_parse_file(&p,(gchar *) current->data); | 281 | ui_parse_file(&p,(gchar *) current->data); |
src/gtk/uiparser/parser.h
| @@ -51,17 +51,9 @@ | @@ -51,17 +51,9 @@ | ||
| 51 | void (*setup)(GtkWidget *widget, GtkWidget *obj); | 51 | void (*setup)(GtkWidget *widget, GtkWidget *obj); |
| 52 | } UI_WIDGET_SETUP; | 52 | } UI_WIDGET_SETUP; |
| 53 | 53 | ||
| 54 | - GtkWidget * ui_parse_xml_folder(const gchar *path, const gchar ** groupname, const gchar **popupname, const gchar **actionname, GtkWidget *widget, const UI_WIDGET_SETUP *itn); | 54 | + GtkWidget * ui_parse_xml_folder(const gchar *path, const gchar ** groupname, const gchar **popupname, GtkWidget *widget, const UI_WIDGET_SETUP *itn); |
| 55 | const gchar * ui_get_attribute(const gchar *key, const gchar **name, const gchar **value); | 55 | const gchar * ui_get_attribute(const gchar *key, const gchar **name, const gchar **value); |
| 56 | gboolean ui_get_bool_attribute(const gchar *key, const gchar **name, const gchar **value, gboolean def); | 56 | gboolean ui_get_bool_attribute(const gchar *key, const gchar **name, const gchar **value, gboolean def); |
| 57 | GtkAction * ui_get_action(GtkWidget *widget, const gchar *name, GHashTable *hash, const gchar **names, const gchar **values, GError **error); | 57 | GtkAction * ui_get_action(GtkWidget *widget, const gchar *name, GHashTable *hash, const gchar **names, const gchar **values, GError **error); |
| 58 | 58 | ||
| 59 | - | ||
| 60 | -// void ui_connect_action(GtkAction *action, GtkWidget *widget, const gchar *name, const gchar *id); | ||
| 61 | -// void ui_connect_target_action(GtkAction *action, GtkWidget *widget, const gchar *target, unsigned short flags, GError **error); | ||
| 62 | -// void ui_connect_index_action(GtkAction *action, GtkWidget *widget, int ix, GtkAction **lst); | ||
| 63 | -// void ui_connect_toggle(GtkAction *action, GtkWidget *widget, const gchar *name, const gchar *id); | ||
| 64 | -// void ui_connect_pfkey(GtkAction *action, GtkWidget *widget, const gchar *name, const gchar *id); | ||
| 65 | -// void ui_connect_pakey(GtkAction *action, GtkWidget *widget, const gchar *name, const gchar *id); | ||
| 66 | - | ||
| 67 | #endif // UI_PARSER_H_INCLUDED | 59 | #endif // UI_PARSER_H_INCLUDED |
src/gtk/uiparser/private.h
| @@ -59,11 +59,9 @@ | @@ -59,11 +59,9 @@ | ||
| 59 | GObject * element; | 59 | GObject * element; |
| 60 | GtkWidget * center_widget; | 60 | GtkWidget * center_widget; |
| 61 | GtkWidget ** popup; /**< Popup widgets */ | 61 | GtkWidget ** popup; /**< Popup widgets */ |
| 62 | - GtkAction ** action; /**< Named actions */ | ||
| 63 | GStringChunk * strings; | 62 | GStringChunk * strings; |
| 64 | const gchar ** group; /**< Action group list */ | 63 | const gchar ** group; /**< Action group list */ |
| 65 | const gchar ** popupname; /**< Popup names */ | 64 | const gchar ** popupname; /**< Popup names */ |
| 66 | - const gchar ** actionname; /**< Action names */ | ||
| 67 | GHashTable * actions; /**< List of actions */ | 65 | GHashTable * actions; /**< List of actions */ |
| 68 | GHashTable * element_list[UI_ELEMENT_COUNT]; | 66 | GHashTable * element_list[UI_ELEMENT_COUNT]; |
| 69 | const UI_WIDGET_SETUP * setup; | 67 | const UI_WIDGET_SETUP * setup; |
src/gtk/v3270/clipboard.c
| @@ -32,6 +32,7 @@ | @@ -32,6 +32,7 @@ | ||
| 32 | #include <malloc.h> | 32 | #include <malloc.h> |
| 33 | #include "v3270.h" | 33 | #include "v3270.h" |
| 34 | #include "private.h" | 34 | #include "private.h" |
| 35 | + #include <lib3270/selection.h> | ||
| 35 | 36 | ||
| 36 | /*--[ Globals ]--------------------------------------------------------------------------------------*/ | 37 | /*--[ Globals ]--------------------------------------------------------------------------------------*/ |
| 37 | 38 | ||
| @@ -225,7 +226,7 @@ void v3270_paste_string(GtkWidget *widget, const gchar *text, const gchar *encod | @@ -225,7 +226,7 @@ void v3270_paste_string(GtkWidget *widget, const gchar *text, const gchar *encod | ||
| 225 | return; | 226 | return; |
| 226 | } | 227 | } |
| 227 | 228 | ||
| 228 | - next = lib3270_paste(session,buffer) ? TRUE : FALSE; | 229 | + next = lib3270_paste(session,(unsigned char *) buffer) ? TRUE : FALSE; |
| 229 | 230 | ||
| 230 | trace("Pastenext is %s",next ? "On" : "Off"); | 231 | trace("Pastenext is %s",next ? "On" : "Off"); |
| 231 | 232 |
src/gtk/v3270/widget.c
| @@ -328,7 +328,6 @@ void v3270_update_font_metrics(v3270 *terminal, cairo_t *cr, int width, int heig | @@ -328,7 +328,6 @@ void v3270_update_font_metrics(v3270 *terminal, cairo_t *cr, int width, int heig | ||
| 328 | 328 | ||
| 329 | cairo_set_font_size(cr,size); | 329 | cairo_set_font_size(cr,size); |
| 330 | 330 | ||
| 331 | - | ||
| 332 | /* | 331 | /* |
| 333 | double sx, sy; | 332 | double sx, sy; |
| 334 | cairo_matrix_t font_matrix; | 333 | cairo_matrix_t font_matrix; |
| @@ -833,6 +832,8 @@ void v3270_set_font_family(GtkWidget *widget, const gchar *name) | @@ -833,6 +832,8 @@ void v3270_set_font_family(GtkWidget *widget, const gchar *name) | ||
| 833 | name = "courier new"; | 832 | name = "courier new"; |
| 834 | } | 833 | } |
| 835 | 834 | ||
| 835 | + trace("%s(%s)",__FUNCTION__,name); | ||
| 836 | + | ||
| 836 | terminal->font_family = g_strdup(name); | 837 | terminal->font_family = g_strdup(name); |
| 837 | terminal->font_weight = CAIRO_FONT_WEIGHT_NORMAL; | 838 | terminal->font_weight = CAIRO_FONT_WEIGHT_NORMAL; |
| 838 | 839 |