Commit ff320ce9aea75920cb900773681c71daa9d09131

Authored by Perry Werneck
1 parent 3f46e593

Adding action groups (required for GAction implementatin).

src/core/actions/table.c
... ... @@ -83,6 +83,8 @@
83 83 .label = N_( "_Connect" ) ,
84 84 .summary = N_( "Connect to host." ),
85 85 .activate = connect_host,
  86 +
  87 + .group = LIB3270_ACTION_GROUP_OFFLINE,
86 88 .activatable = lib3270_is_disconnected
87 89 },
88 90  
... ... @@ -93,6 +95,8 @@
93 95 .label = N_( "_Disconnect" ),
94 96 .summary = N_( "Disconnect from host." ),
95 97 .activate = lib3270_disconnect,
  98 +
  99 + .group = LIB3270_ACTION_GROUP_ONLINE,
96 100 .activatable = lib3270_is_connected
97 101 },
98 102  
... ... @@ -106,6 +110,8 @@
106 110 .label = NULL,
107 111 .summary = N_( "Cursor up 1 position." ),
108 112 .activate = lib3270_cursor_up,
  113 +
  114 + .group = LIB3270_ACTION_GROUP_ONLINE,
109 115 .activatable = lib3270_is_connected
110 116 },
111 117  
... ... @@ -116,6 +122,8 @@
116 122 .label = NULL,
117 123 .summary = N_( "Cursor down 1 position." ),
118 124 .activate = lib3270_cursor_down,
  125 +
  126 + .group = LIB3270_ACTION_GROUP_ONLINE,
119 127 .activatable = lib3270_is_connected
120 128 },
121 129  
... ... @@ -126,6 +134,8 @@
126 134 .label = NULL,
127 135 .summary = N_( "Cursor left 1 position." ),
128 136 .activate = lib3270_cursor_left,
  137 +
  138 + .group = LIB3270_ACTION_GROUP_ONLINE,
129 139 .activatable = lib3270_is_connected
130 140 },
131 141  
... ... @@ -136,6 +146,8 @@
136 146 .label = NULL,
137 147 .summary = N_( "Cursor right 1 position." ),
138 148 .activate = lib3270_cursor_right,
  149 +
  150 + .group = LIB3270_ACTION_GROUP_ONLINE,
139 151 .activatable = lib3270_is_connected
140 152 },
141 153  
... ... @@ -146,6 +158,8 @@
146 158 .label = NULL,
147 159 .summary = N_( "Cursor to first field on next line or any lines after that." ),
148 160 .activate = lib3270_newline,
  161 +
  162 + .group = LIB3270_ACTION_GROUP_ONLINE,
149 163 .activatable = lib3270_is_connected
150 164 },
151 165  
... ... @@ -156,6 +170,8 @@
156 170 .label = NULL,
157 171 .summary = N_( "Cursor to previous word." ),
158 172 .activate = lib3270_previousword,
  173 +
  174 + .group = LIB3270_ACTION_GROUP_ONLINE,
159 175 .activatable = lib3270_is_connected
160 176 },
161 177  
... ... @@ -166,6 +182,8 @@
166 182 .label = NULL,
167 183 .summary = N_( "Cursor to next unprotected word." ),
168 184 .activate = lib3270_nextword,
  185 +
  186 + .group = LIB3270_ACTION_GROUP_ONLINE,
169 187 .activatable = lib3270_is_connected
170 188 },
171 189  
... ... @@ -179,6 +197,8 @@
179 197 .label = NULL,
180 198 .summary = N_( "Save screen." ),
181 199 .activate = save_all,
  200 +
  201 + .group = LIB3270_ACTION_GROUP_ONLINE,
182 202 .activatable = lib3270_is_connected
183 203 },
184 204  
... ... @@ -189,6 +209,8 @@
189 209 .label = NULL,
190 210 .summary = N_( "Save selected area." ),
191 211 .activate = save_selected,
  212 +
  213 + .group = LIB3270_ACTION_GROUP_SELECTION,
192 214 .activatable = lib3270_has_selection
193 215 },
194 216  
... ... @@ -199,6 +221,8 @@
199 221 .label = NULL,
200 222 .summary = NULL,
201 223 .activate = save_copy,
  224 +
  225 + .group = LIB3270_ACTION_GROUP_ONLINE,
202 226 .activatable = lib3270_is_connected
203 227 },
204 228  
... ... @@ -209,6 +233,8 @@
209 233 .label = NULL,
210 234 .summary = N_( "Paste file." ),
211 235 .activate = paste_file,
  236 +
  237 + .group = LIB3270_ACTION_GROUP_ONLINE,
212 238 .activatable = lib3270_is_connected
213 239 },
214 240  
... ... @@ -222,6 +248,8 @@
222 248 .label = N_( "Select all" ),
223 249 .summary = NULL,
224 250 .activate = lib3270_select_all,
  251 +
  252 + .group = LIB3270_ACTION_GROUP_ONLINE,
225 253 .activatable = lib3270_is_connected
226 254 },
227 255  
... ... @@ -232,6 +260,8 @@
232 260 .label = N_( "Remove selection" ),
233 261 .summary = N_( "Remove selection" ),
234 262 .activate = lib3270_unselect,
  263 +
  264 + .group = LIB3270_ACTION_GROUP_ONLINE,
235 265 .activatable = lib3270_has_selection
236 266 },
237 267  
... ... @@ -242,6 +272,8 @@
242 272 .label = N_( "Reselect" ),
243 273 .summary = N_( "Reselect"),
244 274 .activate = lib3270_reselect,
  275 +
  276 + .group = LIB3270_ACTION_GROUP_ONLINE,
245 277 .activatable = lib3270_is_connected
246 278 },
247 279  
... ... @@ -255,6 +287,8 @@
255 287 .label = N_( "Select field" ),
256 288 .summary = N_( "Select Field" ),
257 289 .activate = lib3270_select_field,
  290 +
  291 + .group = LIB3270_ACTION_GROUP_ONLINE,
258 292 .activatable = lib3270_is_formatted
259 293 },
260 294  
... ... @@ -266,6 +300,8 @@
266 300 .label = NULL,
267 301 .summary = N_( "Move the cursor to the first blank after the last nonblank in the field." ),
268 302 .activate = lib3270_fieldend,
  303 +
  304 + .group = LIB3270_ACTION_GROUP_ONLINE,
269 305 .activatable = lib3270_is_formatted
270 306 },
271 307  
... ... @@ -276,6 +312,8 @@
276 312 .label = NULL,
277 313 .summary = N_( "Move to first unprotected field on screen." ),
278 314 .activate = lib3270_firstfield,
  315 +
  316 + .group = LIB3270_ACTION_GROUP_ONLINE,
279 317 .activatable = lib3270_is_formatted
280 318 },
281 319  
... ... @@ -286,6 +324,8 @@
286 324 .label = NULL,
287 325 .summary = N_( "Tab forward to next field." ),
288 326 .activate = lib3270_nextfield,
  327 +
  328 + .group = LIB3270_ACTION_GROUP_ONLINE,
289 329 .activatable = lib3270_is_formatted
290 330 },
291 331  
... ... @@ -296,6 +336,8 @@
296 336 .label = NULL,
297 337 .summary = N_( "Tab backward to previous field." ),
298 338 .activate = lib3270_previousfield,
  339 +
  340 + .group = LIB3270_ACTION_GROUP_ONLINE,
299 341 .activatable = lib3270_is_formatted
300 342 },
301 343  
... ... @@ -310,6 +352,8 @@
310 352 .label = NULL,
311 353 .summary = N_( "Backspaces the cursor until it hits the front of a word." ),
312 354 .activate = lib3270_deleteword,
  355 +
  356 + .group = LIB3270_ACTION_GROUP_ONLINE,
313 357 .activatable = lib3270_is_connected
314 358 },
315 359  
... ... @@ -320,6 +364,8 @@
320 364 .label = NULL,
321 365 .summary = N_( "Delete field" ),
322 366 .activate = lib3270_deletefield,
  367 +
  368 + .group = LIB3270_ACTION_GROUP_ONLINE,
323 369 .activatable = lib3270_is_formatted
324 370 },
325 371  
... ... @@ -331,6 +377,8 @@
331 377 .label = NULL,
332 378 .summary = NULL,
333 379 .activate = lib3270_eraseinput,
  380 +
  381 + .group = LIB3270_ACTION_GROUP_ONLINE,
334 382 .activatable = lib3270_is_connected
335 383 },
336 384  
... ... @@ -341,6 +389,8 @@
341 389 .label = NULL,
342 390 .summary = N_( "Erase End Of Field Key." ),
343 391 .activate = lib3270_eraseeof,
  392 +
  393 + .group = LIB3270_ACTION_GROUP_ONLINE,
344 394 .activatable = lib3270_is_formatted
345 395 },
346 396  
... ... @@ -351,6 +401,8 @@
351 401 .label = NULL,
352 402 .summary = N_( "Erase End Of Line Key." ),
353 403 .activate = lib3270_eraseeol,
  404 +
  405 + .group = LIB3270_ACTION_GROUP_ONLINE,
354 406 .activatable = lib3270_is_connected
355 407 },
356 408  
... ... @@ -361,6 +413,8 @@
361 413 .label = NULL,
362 414 .summary = NULL,
363 415 .activate = lib3270_erase,
  416 +
  417 + .group = LIB3270_ACTION_GROUP_ONLINE,
364 418 .activatable = lib3270_is_connected
365 419 },
366 420  
... ... @@ -374,6 +428,8 @@
374 428 .label = NULL,
375 429 .summary = N_( "Send an \"Enter\" action." ),
376 430 .activate = lib3270_enter,
  431 +
  432 + .group = LIB3270_ACTION_GROUP_ONLINE,
377 433 .activatable = lib3270_is_connected
378 434 },
379 435  
... ... @@ -385,6 +441,8 @@
385 441 .label = NULL,
386 442 .summary = NULL,
387 443 .activate = lib3270_kybdreset,
  444 +
  445 + .group = LIB3270_ACTION_GROUP_ONLINE,
388 446 .activatable = lib3270_is_connected
389 447 },
390 448  
... ... @@ -395,6 +453,8 @@
395 453 .label = NULL,
396 454 .summary = N_( "Clear AID key" ),
397 455 .activate = lib3270_clear,
  456 +
  457 + .group = LIB3270_ACTION_GROUP_ONLINE,
398 458 .activatable = lib3270_is_connected
399 459 },
400 460  
... ... @@ -406,6 +466,8 @@
406 466 .label = NULL,
407 467 .summary = NULL,
408 468 .activate = lib3270_delete,
  469 +
  470 + .group = LIB3270_ACTION_GROUP_ONLINE,
409 471 .activatable = lib3270_is_connected
410 472 },
411 473  
... ... @@ -416,6 +478,8 @@
416 478 .label = NULL,
417 479 .summary = N_( "DUP key" ),
418 480 .activate = lib3270_dup,
  481 +
  482 + .group = LIB3270_ACTION_GROUP_ONLINE,
419 483 .activatable = lib3270_is_connected
420 484 },
421 485  
... ... @@ -426,6 +490,8 @@
426 490 .label = NULL,
427 491 .summary = N_( "FM key" ),
428 492 .activate = lib3270_fieldmark,
  493 +
  494 + .group = LIB3270_ACTION_GROUP_ONLINE,
429 495 .activatable = lib3270_is_connected
430 496 },
431 497  
... ... @@ -436,6 +502,8 @@
436 502 .label = NULL,
437 503 .summary = N_( "3270-style backspace." ),
438 504 .activate = lib3270_backspace,
  505 +
  506 + .group = LIB3270_ACTION_GROUP_ONLINE,
439 507 .activatable = lib3270_is_connected
440 508 },
441 509  
... ... @@ -446,6 +514,8 @@
446 514 .label = NULL,
447 515 .summary = N_( "ATTN key, per RFC 2355. Sends IP, regardless." ),
448 516 .activate = lib3270_attn,
  517 +
  518 + .group = LIB3270_ACTION_GROUP_ONLINE,
449 519 .activatable = lib3270_is_connected
450 520 },
451 521  
... ... @@ -456,6 +526,8 @@
456 526 .label = NULL,
457 527 .summary = NULL,
458 528 .activate = lib3270_break,
  529 +
  530 + .group = LIB3270_ACTION_GROUP_ONLINE,
459 531 .activatable = lib3270_is_connected
460 532 },
461 533  
... ... @@ -466,6 +538,8 @@
466 538 .label = NULL,
467 539 .summary = NULL,
468 540 .activate = lib3270_paste_next,
  541 +
  542 + .group = LIB3270_ACTION_GROUP_ONLINE,
469 543 .activatable = lib3270_is_connected
470 544 },
471 545  
... ... @@ -476,6 +550,8 @@
476 550 .label = NULL,
477 551 .summary = NULL,
478 552 .activate = lib3270_sysreq,
  553 +
  554 + .group = LIB3270_ACTION_GROUP_ONLINE,
479 555 .activatable = lib3270_is_connected
480 556 },
481 557  
... ... @@ -490,6 +566,8 @@
490 566 .summary = N_("Send to print"),
491 567 .description = N_("If the terminal has selected area print it, if not, print all contents."),
492 568 .activate = lib3270_print,
  569 +
  570 + .group = LIB3270_ACTION_GROUP_ONLINE,
493 571 .activatable = lib3270_is_connected
494 572 },
495 573  
... ... @@ -500,6 +578,8 @@
500 578 .label = NULL,
501 579 .summary = N_("Print screen contents"),
502 580 .activate = lib3270_print_all,
  581 +
  582 + .group = LIB3270_ACTION_GROUP_ONLINE,
503 583 .activatable = lib3270_is_connected
504 584 },
505 585  
... ... @@ -510,6 +590,8 @@
510 590 .label = NULL,
511 591 .summary = N_( "Print selected area." ),
512 592 .activate = lib3270_print_selected,
  593 +
  594 + .group = LIB3270_ACTION_GROUP_SELECTION,
513 595 .activatable = lib3270_has_selection
514 596 },
515 597  
... ... @@ -520,6 +602,8 @@
520 602 .label = NULL,
521 603 .summary = N_("Print copy (if available)"),
522 604 .activate = lib3270_print_copy,
  605 +
  606 + .group = LIB3270_ACTION_GROUP_ONLINE,
523 607 .activatable = lib3270_is_connected
524 608 },
525 609  
... ... @@ -534,6 +618,8 @@
534 618 .label = NULL,
535 619 .summary = NULL,
536 620 .activate = lib3270_testpattern,
  621 +
  622 + .group = LIB3270_ACTION_GROUP_OFFLINE,
537 623 .activatable = lib3270_is_disconnected
538 624 },
539 625  
... ... @@ -544,17 +630,13 @@
544 630 .label = NULL,
545 631 .summary = NULL,
546 632 .activate = lib3270_charsettable,
  633 +
  634 + .group = LIB3270_ACTION_GROUP_OFFLINE,
547 635 .activatable = lib3270_is_disconnected
548 636 },
549 637  
550 638 {
551 639 .name = NULL,
552   - .key = NULL,
553   - .icon = NULL,
554   - .label = NULL,
555   - .summary = NULL,
556   - .activate = NULL,
557   - .activatable = NULL
558 640 }
559 641 };
560 642  
... ...
src/include/lib3270/actions.h
... ... @@ -33,10 +33,21 @@
33 33 extern "C" {
34 34 #endif
35 35  
  36 + typedef enum _lib3270_action_group
  37 + {
  38 + LIB3270_ACTION_GROUP_NONE, ///< @brief Simple action, no signals os special treatment.
  39 + LIB3270_ACTION_GROUP_ONLINE, ///< @brief Action requires online state.
  40 + LIB3270_ACTION_GROUP_OFFLINE, ///< @brief Action requires offline state.
  41 + LIB3270_ACTION_GROUP_SELECTION, ///< @brief Action requires an active selection.
  42 + LIB3270_ACTION_GROUP_UNSELECTED, ///< @brief Action fails if there has a selection.
  43 + } LIB3270_ACTION_GROUP;
  44 +
36 45 typedef struct _lib3270_action
37 46 {
38 47 LIB3270_PROPERTY_HEAD
39 48  
  49 + LIB3270_ACTION_GROUP group; ///< @brief Action group.
  50 +
40 51 int (*activate)(H3270 *hSession); ///< @brief lib3270 associated method.
41 52 int (*activatable)(const H3270 *hSession); ///< @brief Is the action activatable?
42 53  
... ...