Commit 367599abedee4ad93fc1eb3c44895d0f4fd689a6
1 parent
79a02067
Exists in
master
and in
4 other branches
Implementing keypad view/hide menus.
Showing
9 changed files
with
243 additions
and
167 deletions
Show diff stats
src/include/pw3270.h
| ... | ... | @@ -52,7 +52,7 @@ |
| 52 | 52 | #define I_(string) g_intern_static_string (string) |
| 53 | 53 | |
| 54 | 54 | |
| 55 | - void pw3270_load_placeholders(GtkBuilder * builder); | |
| 55 | + void pw3270_load_placeholders(GApplication *application, GtkBuilder * builder); | |
| 56 | 56 | // GtkWidget * pw3270_frame_new(GtkWidget * child, const gchar *title); |
| 57 | 57 | |
| 58 | 58 | // Application settings widget | ... | ... |
src/include/pw3270/application.h
src/include/pw3270/keypad.h
| ... | ... | @@ -54,7 +54,7 @@ |
| 54 | 54 | |
| 55 | 55 | GList * pw3270_keypad_model_new_from_xml(GList *keypads, const gchar *filename); |
| 56 | 56 | GtkWidget * pw3270_keypad_get_from_model(GObject *model); |
| 57 | - const gchar * pw3270_keypad_model_get_action_name(GObject *model); | |
| 57 | + const gchar * pw3270_keypad_model_get_name(GObject *model); | |
| 58 | 58 | const gchar * pw3270_keypad_model_get_label(GObject *model); |
| 59 | 59 | |
| 60 | 60 | typedef enum _keypad_position { | ... | ... |
src/main/placeholders.c
| ... | ... | @@ -35,14 +35,42 @@ |
| 35 | 35 | |
| 36 | 36 | #include "private.h" |
| 37 | 37 | #include <pw3270/application.h> |
| 38 | + #include <pw3270/keypad.h> | |
| 38 | 39 | #include <lib3270.h> |
| 39 | 40 | #include <lib3270/log.h> |
| 40 | 41 | |
| 41 | 42 | /*---[ Implement ]----------------------------------------------------------------------------------*/ |
| 42 | 43 | |
| 43 | - void pw3270_load_placeholders(GtkBuilder * builder) { | |
| 44 | + static GMenu * get_keypad_menu(GApplication *application) { | |
| 44 | 45 | |
| 45 | - GObject * placeholder = gtk_builder_get_object(builder, "font-select-placeholder"); | |
| 46 | + GList * keypads = pw3270_application_get_keypad_models(application); | |
| 47 | + | |
| 48 | + if(!keypads) | |
| 49 | + return NULL; | |
| 50 | + | |
| 51 | + GMenu * menu = g_menu_new(); | |
| 52 | + | |
| 53 | + // Create keypad items. | |
| 54 | + GList *item; | |
| 55 | + for(item = keypads;item;item = g_list_next(item)) { | |
| 56 | + GObject * model = G_OBJECT(item->data); | |
| 57 | + g_autofree gchar * action_name = g_strconcat("win.keypad.",pw3270_keypad_model_get_name(model),NULL); | |
| 58 | + g_menu_append(menu,pw3270_keypad_model_get_label(model),action_name); | |
| 59 | + } | |
| 60 | + | |
| 61 | + return menu; | |
| 62 | + | |
| 63 | + } | |
| 64 | + | |
| 65 | + void pw3270_load_placeholders(GApplication *application, GtkBuilder * builder) { | |
| 66 | + | |
| 67 | + GObject * placeholder; | |
| 68 | + size_t ix; | |
| 69 | + | |
| 70 | + // | |
| 71 | + // Load fonts | |
| 72 | + // | |
| 73 | + placeholder = gtk_builder_get_object(builder, "font-select-placeholder"); | |
| 46 | 74 | |
| 47 | 75 | if(placeholder && G_IS_MENU(placeholder)) { |
| 48 | 76 | |
| ... | ... | @@ -52,7 +80,6 @@ |
| 52 | 80 | PangoFontFamily **families; |
| 53 | 81 | pango_context_list_families(gdk_pango_context_get_for_screen(gdk_screen_get_default()),&families, &n_families); |
| 54 | 82 | |
| 55 | - size_t ix; | |
| 56 | 83 | for(ix=0; ix < (size_t) n_families; ix++) |
| 57 | 84 | { |
| 58 | 85 | if(!pango_font_family_is_monospace(families[ix])) |
| ... | ... | @@ -66,5 +93,30 @@ |
| 66 | 93 | |
| 67 | 94 | } |
| 68 | 95 | |
| 96 | + // | |
| 97 | + // View options | |
| 98 | + // | |
| 99 | + GMenu * keypad_menu = get_keypad_menu(application); | |
| 100 | + | |
| 101 | + if(keypad_menu) { | |
| 102 | + | |
| 103 | + static const gchar * placeholders[] = { | |
| 104 | + "view-menu-placeholder", | |
| 105 | + "view-when-offline-placeholder", | |
| 106 | + "view-when-online-placeholder" | |
| 107 | + }; | |
| 108 | + | |
| 109 | + for(ix = 0; ix < G_N_ELEMENTS(placeholders); ix++) { | |
| 110 | + | |
| 111 | + placeholder = gtk_builder_get_object(builder, placeholders[ix]); | |
| 112 | + | |
| 113 | + if(placeholder) { | |
| 114 | + g_menu_append_item(G_MENU(placeholder), g_menu_item_new_submenu(_("Keypads"),G_MENU_MODEL(keypad_menu))); | |
| 115 | + } | |
| 116 | + | |
| 117 | + } | |
| 118 | + | |
| 119 | + g_object_unref(keypad_menu); | |
| 120 | + } | |
| 69 | 121 | |
| 70 | 122 | } | ... | ... |
src/objects/application/application.c
| ... | ... | @@ -415,7 +415,7 @@ |
| 415 | 415 | |
| 416 | 416 | gtk_application_set_menubar(GTK_APPLICATION (application), G_MENU_MODEL(gtk_builder_get_object (builder, "menubar"))); |
| 417 | 417 | |
| 418 | - pw3270_load_placeholders(builder); | |
| 418 | + pw3270_load_placeholders(application, builder); | |
| 419 | 419 | |
| 420 | 420 | g_object_unref(builder); |
| 421 | 421 | ... | ... |
src/objects/keypad/model.c
| ... | ... | @@ -351,7 +351,7 @@ |
| 351 | 351 | return (KEYPAD_POSITION) PW_KEYPAD_MODEL(model)->position; |
| 352 | 352 | } |
| 353 | 353 | |
| 354 | - const gchar * pw3270_keypad_model_get_action_name(GObject *model) { | |
| 354 | + const gchar * pw3270_keypad_model_get_name(GObject *model) { | |
| 355 | 355 | g_return_val_if_fail(PW_IS_KEYPAD_MODEL(model), NULL); |
| 356 | 356 | return PW_KEYPAD_MODEL(model)->name; |
| 357 | 357 | } | ... | ... |
src/objects/window/window.c
| ... | ... | @@ -194,9 +194,11 @@ |
| 194 | 194 | g_signal_connect(widget,"hide",G_CALLBACK(keypad_hide),model); |
| 195 | 195 | g_signal_connect(widget,"show",G_CALLBACK(keypad_show),model); |
| 196 | 196 | |
| 197 | + g_autofree gchar * action_name = g_strconcat("keypad.",pw3270_keypad_model_get_name(model),NULL); | |
| 198 | + | |
| 197 | 199 | GPropertyAction * action = |
| 198 | 200 | g_property_action_new( |
| 199 | - pw3270_keypad_model_get_action_name(model), | |
| 201 | + action_name, | |
| 200 | 202 | widget, |
| 201 | 203 | "visible" |
| 202 | 204 | ); |
| ... | ... | @@ -243,7 +245,7 @@ |
| 243 | 245 | gtk_notebook_set_action_widget(widget->notebook,new_tab,GTK_PACK_START); |
| 244 | 246 | } |
| 245 | 247 | |
| 246 | - widget->toolbar = GTK_TOOLBAR(pw3270_toolbar_new()); | |
| 248 | + widget->toolbar = GTK_TOOLBAR(pw3270_toolbar_new()); | |
| 247 | 249 | gtk_box_pack_start(container,GTK_WIDGET(widget->toolbar),FALSE,TRUE,0); |
| 248 | 250 | |
| 249 | 251 | // |
| ... | ... | @@ -447,6 +449,7 @@ |
| 447 | 449 | // Get builder |
| 448 | 450 | // |
| 449 | 451 | g_autoptr(GtkBuilder) builder = pw3270_application_get_builder("window.xml"); |
| 452 | + pw3270_load_placeholders(G_APPLICATION(application), builder); | |
| 450 | 453 | |
| 451 | 454 | // Load popup menus. |
| 452 | 455 | const gchar * popup_menus[PW3270_APP_WINDOW_POPUP_COUNT] = { | ... | ... |
ui/application.xml
ui/window.xml
| ... | ... | @@ -274,181 +274,191 @@ |
| 274 | 274 | |
| 275 | 275 | <menu id="popup-over-unselected-area"> |
| 276 | 276 | |
| 277 | - <submenu> | |
| 278 | - | |
| 279 | - <attribute name='label' translatable='yes'>_Edit</attribute> | |
| 280 | - | |
| 281 | - <section> | |
| 282 | - | |
| 283 | - <item> | |
| 284 | - <attribute name="label" translatable="yes">Paste from clipboard</attribute> | |
| 285 | - <attribute name="action">win.paste</attribute> | |
| 286 | - </item> | |
| 287 | - | |
| 288 | - <item> | |
| 289 | - <attribute name="label" translatable="yes">Paste next</attribute> | |
| 290 | - <attribute name="action">win.paste-next</attribute> | |
| 291 | - </item> | |
| 292 | - | |
| 293 | - <item> | |
| 294 | - <attribute name="label" translatable="yes">Paste from text file</attribute> | |
| 295 | - <attribute name="action">win.paste-file</attribute> | |
| 296 | - </item> | |
| 297 | - | |
| 298 | - </section> | |
| 299 | - | |
| 300 | - <section> | |
| 301 | - | |
| 302 | - <item> | |
| 303 | - <attribute name="label" translatable="yes">Select all</attribute> | |
| 304 | - <attribute name="action">win.select-all</attribute> | |
| 305 | - </item> | |
| 306 | - | |
| 307 | - <item> | |
| 308 | - <attribute name="label" translatable="yes">Select Field</attribute> | |
| 309 | - <attribute name="action">win.select-field</attribute> | |
| 310 | - </item> | |
| 311 | - | |
| 312 | - <item> | |
| 313 | - <attribute name="label" translatable="yes">Reselect</attribute> | |
| 314 | - <attribute name="action">win.reselect</attribute> | |
| 315 | - </item> | |
| 316 | - | |
| 317 | - </section> | |
| 318 | - | |
| 319 | - <section> | |
| 277 | + <submenu> | |
| 320 | 278 | |
| 321 | - <item> | |
| 322 | - <attribute name="label" translatable="yes">Clear</attribute> | |
| 323 | - <attribute name="action">win.clear</attribute> | |
| 324 | - </item> | |
| 279 | + <attribute name='label' translatable='yes'>_Edit</attribute> | |
| 325 | 280 | |
| 326 | - <item> | |
| 327 | - <attribute name="label" translatable="yes">Erase input</attribute> | |
| 328 | - <attribute name="action">win.erase_input</attribute> | |
| 329 | - </item> | |
| 281 | + <section> | |
| 330 | 282 | |
| 331 | 283 | <item> |
| 332 | - <attribute name="label" translatable="yes">Delete Field</attribute> | |
| 333 | - <attribute name="action">win.delete_field</attribute> | |
| 284 | + <attribute name="label" translatable="yes">Paste from clipboard</attribute> | |
| 285 | + <attribute name="action">win.paste</attribute> | |
| 334 | 286 | </item> |
| 335 | 287 | |
| 336 | 288 | <item> |
| 337 | - <attribute name="label" translatable="yes">Erase to end of field</attribute> | |
| 338 | - <attribute name="action">win.erase_eof</attribute> | |
| 289 | + <attribute name="label" translatable="yes">Paste next</attribute> | |
| 290 | + <attribute name="action">win.paste-next</attribute> | |
| 339 | 291 | </item> |
| 340 | 292 | |
| 341 | 293 | <item> |
| 342 | - <attribute name="label" translatable="yes">Erase to end of line</attribute> | |
| 343 | - <attribute name="action">win.erase_eol</attribute> | |
| 294 | + <attribute name="label" translatable="yes">Paste from text file</attribute> | |
| 295 | + <attribute name="action">win.paste-file</attribute> | |
| 344 | 296 | </item> |
| 345 | 297 | |
| 346 | - </section> | |
| 347 | - | |
| 348 | - </submenu> | |
| 298 | + </section> | |
| 349 | 299 | |
| 350 | - <item> | |
| 351 | - <attribute name="label" translatable="yes">Save screen</attribute> | |
| 352 | - <attribute name="action">win.save.screen</attribute> | |
| 353 | - </item> | |
| 300 | + <section> | |
| 354 | 301 | |
| 355 | - <item> | |
| 356 | - <attribute name="label" translatable="yes">Print screen</attribute> | |
| 357 | - <attribute name="action">win.print.screen</attribute> | |
| 358 | - </item> | |
| 302 | + <item> | |
| 303 | + <attribute name="label" translatable="yes">Select all</attribute> | |
| 304 | + <attribute name="action">win.select-all</attribute> | |
| 305 | + </item> | |
| 359 | 306 | |
| 360 | - <item> | |
| 361 | - <attribute name="label" translatable="yes">Send/Receive files</attribute> | |
| 362 | - <attribute name="action">win.file.transfer</attribute> | |
| 363 | - </item> | |
| 307 | + <item> | |
| 308 | + <attribute name="label" translatable="yes">Select Field</attribute> | |
| 309 | + <attribute name="action">win.select-field</attribute> | |
| 310 | + </item> | |
| 364 | 311 | |
| 365 | - <submenu> | |
| 312 | + <item> | |
| 313 | + <attribute name="label" translatable="yes">Reselect</attribute> | |
| 314 | + <attribute name="action">win.reselect</attribute> | |
| 315 | + </item> | |
| 366 | 316 | |
| 367 | - <attribute name='label' translatable='yes'>Options</attribute> | |
| 317 | + </section> | |
| 368 | 318 | |
| 369 | - <section> | |
| 319 | + <section> | |
| 370 | 320 | |
| 371 | 321 | <item> |
| 372 | - <attribute name="label" translatable="yes">Cross hair cursor</attribute> | |
| 373 | - <attribute name="action">win.crosshair</attribute> | |
| 322 | + <attribute name="label" translatable="yes">Clear</attribute> | |
| 323 | + <attribute name="action">win.clear</attribute> | |
| 374 | 324 | </item> |
| 375 | 325 | |
| 376 | 326 | <item> |
| 377 | - <attribute name="label" translatable="yes">Resize on alternate screen</attribute> | |
| 378 | - <attribute name="action">win.altscreen</attribute> | |
| 327 | + <attribute name="label" translatable="yes">Erase input</attribute> | |
| 328 | + <attribute name="action">win.erase_input</attribute> | |
| 379 | 329 | </item> |
| 380 | 330 | |
| 381 | 331 | <item> |
| 382 | - <attribute name="label" translatable="yes">Alert sound</attribute> | |
| 383 | - <attribute name="action">win.beep</attribute> | |
| 332 | + <attribute name="label" translatable="yes">Delete Field</attribute> | |
| 333 | + <attribute name="action">win.delete_field</attribute> | |
| 384 | 334 | </item> |
| 385 | 335 | |
| 386 | - </section> | |
| 387 | - | |
| 388 | 336 | <item> |
| 389 | - <attribute name="label" translatable="yes">Monocase</attribute> | |
| 390 | - <attribute name="action">win.monocase</attribute> | |
| 337 | + <attribute name="label" translatable="yes">Erase to end of field</attribute> | |
| 338 | + <attribute name="action">win.erase_eof</attribute> | |
| 391 | 339 | </item> |
| 392 | 340 | |
| 393 | 341 | <item> |
| 394 | - <attribute name="label" translatable="yes">Dynamic font spacing</attribute> | |
| 395 | - <attribute name="action">win.dynamic-font-spacing</attribute> | |
| 342 | + <attribute name="label" translatable="yes">Erase to end of line</attribute> | |
| 343 | + <attribute name="action">win.erase_eol</attribute> | |
| 396 | 344 | </item> |
| 345 | + | |
| 346 | + </section> | |
| 347 | + | |
| 348 | + </submenu> | |
| 349 | + | |
| 350 | + <submenu> | |
| 351 | + | |
| 352 | + <attribute name='label' translatable='yes'>Options</attribute> | |
| 353 | + | |
| 354 | + <section> | |
| 355 | + | |
| 356 | + <item> | |
| 357 | + <attribute name="label" translatable="yes">Cross hair cursor</attribute> | |
| 358 | + <attribute name="action">win.crosshair</attribute> | |
| 359 | + </item> | |
| 360 | + | |
| 361 | + <item> | |
| 362 | + <attribute name="label" translatable="yes">Resize on alternate screen</attribute> | |
| 363 | + <attribute name="action">win.altscreen</attribute> | |
| 364 | + </item> | |
| 365 | + | |
| 366 | + <item> | |
| 367 | + <attribute name="label" translatable="yes">Alert sound</attribute> | |
| 368 | + <attribute name="action">win.beep</attribute> | |
| 369 | + </item> | |
| 370 | + | |
| 371 | + </section> | |
| 372 | + | |
| 373 | + <item> | |
| 374 | + <attribute name="label" translatable="yes">Monocase</attribute> | |
| 375 | + <attribute name="action">win.monocase</attribute> | |
| 376 | + </item> | |
| 377 | + | |
| 378 | + <item> | |
| 379 | + <attribute name="label" translatable="yes">Dynamic font spacing</attribute> | |
| 380 | + <attribute name="action">win.dynamic-font-spacing</attribute> | |
| 381 | + </item> | |
| 397 | 382 | |
| 398 | - <section> | |
| 383 | + <section> | |
| 399 | 384 | |
| 400 | - </section> | |
| 385 | + <item> | |
| 386 | + <attribute name="label" translatable="yes">Smart paste</attribute> | |
| 387 | + <attribute name="action">win.smartpaste</attribute> | |
| 388 | + </item> | |
| 401 | 389 | |
| 402 | - <section> | |
| 390 | + <item> | |
| 391 | + <attribute name="label" translatable="yes">Paste with left margin</attribute> | |
| 392 | + <attribute name="action">win.marginedpaste</attribute> | |
| 393 | + </item> | |
| 403 | 394 | |
| 404 | - <item> | |
| 405 | - <attribute name="label" translatable="yes">Smart paste</attribute> | |
| 406 | - <attribute name="action">win.smartpaste</attribute> | |
| 407 | - </item> | |
| 395 | + <item> | |
| 396 | + <attribute name="label" translatable="yes">Blank Fill</attribute> | |
| 397 | + <attribute name="action">win.blankfill</attribute> | |
| 398 | + </item> | |
| 408 | 399 | |
| 409 | - <item> | |
| 410 | - <attribute name="label" translatable="yes">Paste with left margin</attribute> | |
| 411 | - <attribute name="action">win.marginedpaste</attribute> | |
| 412 | - </item> | |
| 400 | + </section> | |
| 401 | + | |
| 402 | + <section> | |
| 413 | 403 | |
| 414 | 404 | <item> |
| 415 | - <attribute name="label" translatable="yes">Blank Fill</attribute> | |
| 416 | - <attribute name="action">win.blankfill</attribute> | |
| 405 | + <attribute name="label" translatable="yes">Full screen</attribute> | |
| 406 | + <attribute name="action">win.fullscreen</attribute> | |
| 417 | 407 | </item> |
| 418 | 408 | |
| 419 | - </section> | |
| 409 | + </section> | |
| 420 | 410 | |
| 421 | - <section> | |
| 411 | + </submenu> | |
| 412 | + | |
| 413 | + <submenu id="view-when-online-placeholder"> | |
| 414 | + | |
| 415 | + <attribute name='label' translatable='yes'>View</attribute> | |
| 422 | 416 | |
| 423 | 417 | <item> |
| 424 | - <attribute name="label" translatable="yes">Show toolbar</attribute> | |
| 418 | + <attribute name="label" translatable="yes">Toolbar</attribute> | |
| 425 | 419 | <attribute name="action">win.toolbar</attribute> |
| 426 | 420 | </item> |
| 427 | 421 | |
| 428 | 422 | <item> |
| 429 | - <attribute name="label" translatable="yes">Show menu</attribute> | |
| 423 | + <attribute name="label" translatable="yes">Top menu</attribute> | |
| 430 | 424 | <attribute name="action">win.menubar</attribute> |
| 431 | 425 | </item> |
| 432 | 426 | |
| 427 | + </submenu> | |
| 428 | + | |
| 429 | + <section> | |
| 430 | + | |
| 433 | 431 | <item> |
| 434 | - <attribute name="label" translatable="yes">Full screen</attribute> | |
| 435 | - <attribute name="action">win.fullscreen</attribute> | |
| 432 | + <attribute name="label" translatable="yes">Save screen</attribute> | |
| 433 | + <attribute name="action">win.save.screen</attribute> | |
| 434 | + </item> | |
| 435 | + | |
| 436 | + <item> | |
| 437 | + <attribute name="label" translatable="yes">Print screen</attribute> | |
| 438 | + <attribute name="action">win.print.screen</attribute> | |
| 439 | + </item> | |
| 440 | + | |
| 441 | + <item> | |
| 442 | + <attribute name="label" translatable="yes">Send/Receive files</attribute> | |
| 443 | + <attribute name="action">win.file.transfer</attribute> | |
| 436 | 444 | </item> |
| 437 | 445 | |
| 438 | 446 | </section> |
| 439 | 447 | |
| 440 | - </submenu> | |
| 448 | + <section> | |
| 441 | 449 | |
| 442 | - <item> | |
| 443 | - <attribute name="label" translatable="yes">Disconnect</attribute> | |
| 444 | - <attribute name="action">win.disconnect</attribute> | |
| 445 | - </item> | |
| 450 | + <item> | |
| 451 | + <attribute name="label" translatable="yes">Disconnect</attribute> | |
| 452 | + <attribute name="action">win.disconnect</attribute> | |
| 453 | + </item> | |
| 446 | 454 | |
| 447 | - <item> | |
| 448 | - <attribute name="label" translatable="yes">Close window</attribute> | |
| 449 | - <attribute name="action">win.close</attribute> | |
| 450 | - </item> | |
| 455 | + <item> | |
| 456 | + <attribute name="label" translatable="yes">Close window</attribute> | |
| 457 | + <attribute name="action">win.close</attribute> | |
| 458 | + </item> | |
| 451 | 459 | |
| 460 | + </section> | |
| 461 | + | |
| 452 | 462 | </menu> |
| 453 | 463 | |
| 454 | 464 | <menu id="popup-over-oia"> |
| ... | ... | @@ -472,73 +482,84 @@ |
| 472 | 482 | |
| 473 | 483 | <menu id="popup-when-offline"> |
| 474 | 484 | |
| 475 | - <item> | |
| 476 | - <attribute name="label" translatable="yes">_Connect</attribute> | |
| 477 | - <attribute name="action">win.connect</attribute> | |
| 478 | - </item> | |
| 479 | - | |
| 480 | - <item> | |
| 481 | - <attribute name="label" translatable="yes">Session properties</attribute> | |
| 482 | - <attribute name="action">win.session.properties</attribute> | |
| 483 | - </item> | |
| 484 | - | |
| 485 | 485 | <submenu> |
| 486 | 486 | |
| 487 | - <attribute name="label" translatable="yes">Screen size</attribute> | |
| 487 | + <attribute name='label' translatable='yes'>Options</attribute> | |
| 488 | 488 | |
| 489 | 489 | <item> |
| 490 | - <attribute name="label" translatable="yes">Model 2 - 80x24</attribute> | |
| 491 | - <attribute name="action">win.model-number</attribute> | |
| 492 | - <attribute name="target">2</attribute> | |
| 493 | - </item> | |
| 494 | - <item> | |
| 495 | - <attribute name="label" translatable="yes">Model 3 - 80x32</attribute> | |
| 496 | - <attribute name="action">win.model-number</attribute> | |
| 497 | - <attribute name="target">3</attribute> | |
| 498 | - </item> | |
| 499 | - <item> | |
| 500 | - <attribute name="label" translatable="yes">Model 4 - 80x43</attribute> | |
| 501 | - <attribute name="action">win.model-number</attribute> | |
| 502 | - <attribute name="target">4</attribute> | |
| 490 | + <attribute name="label" translatable="yes">Dynamic font spacing</attribute> | |
| 491 | + <attribute name="action">win.dynamic-font-spacing</attribute> | |
| 503 | 492 | </item> |
| 493 | + | |
| 504 | 494 | <item> |
| 505 | - <attribute name="label" translatable="yes">Model 5 - 132x27</attribute> | |
| 506 | - <attribute name="action">win.model-number</attribute> | |
| 507 | - <attribute name="target">5</attribute> | |
| 495 | + <attribute name="label" translatable="yes">Full screen</attribute> | |
| 496 | + <attribute name="action">win.fullscreen</attribute> | |
| 508 | 497 | </item> |
| 509 | 498 | |
| 499 | + <submenu> | |
| 500 | + | |
| 501 | + <attribute name="label" translatable="yes">Screen size</attribute> | |
| 502 | + | |
| 503 | + <item> | |
| 504 | + <attribute name="label" translatable="yes">Model 2 - 80x24</attribute> | |
| 505 | + <attribute name="action">win.model-number</attribute> | |
| 506 | + <attribute name="target">2</attribute> | |
| 507 | + </item> | |
| 508 | + <item> | |
| 509 | + <attribute name="label" translatable="yes">Model 3 - 80x32</attribute> | |
| 510 | + <attribute name="action">win.model-number</attribute> | |
| 511 | + <attribute name="target">3</attribute> | |
| 512 | + </item> | |
| 513 | + <item> | |
| 514 | + <attribute name="label" translatable="yes">Model 4 - 80x43</attribute> | |
| 515 | + <attribute name="action">win.model-number</attribute> | |
| 516 | + <attribute name="target">4</attribute> | |
| 517 | + </item> | |
| 518 | + <item> | |
| 519 | + <attribute name="label" translatable="yes">Model 5 - 132x27</attribute> | |
| 520 | + <attribute name="action">win.model-number</attribute> | |
| 521 | + <attribute name="target">5</attribute> | |
| 522 | + </item> | |
| 523 | + | |
| 524 | + </submenu> | |
| 525 | + | |
| 510 | 526 | </submenu> |
| 511 | 527 | |
| 512 | - <submenu> | |
| 528 | + <submenu id="view-when-offline-placeholder"> | |
| 513 | 529 | |
| 514 | - <attribute name='label' translatable='yes'>Options</attribute> | |
| 530 | + <attribute name='label' translatable='yes'>View</attribute> | |
| 515 | 531 | |
| 516 | 532 | <item> |
| 517 | - <attribute name="label" translatable="yes">Dynamic font spacing</attribute> | |
| 518 | - <attribute name="action">win.dynamic-font-spacing</attribute> | |
| 533 | + <attribute name="label" translatable="yes">Toolbar</attribute> | |
| 534 | + <attribute name="action">win.toolbar</attribute> | |
| 519 | 535 | </item> |
| 520 | 536 | |
| 521 | 537 | <item> |
| 522 | - <attribute name="label" translatable="yes">Show toolbar</attribute> | |
| 523 | - <attribute name="action">win.toolbar</attribute> | |
| 538 | + <attribute name="label" translatable="yes">Main menu</attribute> | |
| 539 | + <attribute name="action">win.menubar</attribute> | |
| 524 | 540 | </item> |
| 525 | 541 | |
| 542 | + </submenu> | |
| 543 | + | |
| 544 | + <section> | |
| 545 | + | |
| 526 | 546 | <item> |
| 527 | - <attribute name="label" translatable="yes">Show menu</attribute> | |
| 528 | - <attribute name="action">win.menubar</attribute> | |
| 547 | + <attribute name="label" translatable="yes">_Connect</attribute> | |
| 548 | + <attribute name="action">win.connect</attribute> | |
| 529 | 549 | </item> |
| 530 | 550 | |
| 531 | 551 | <item> |
| 532 | - <attribute name="label" translatable="yes">Full screen</attribute> | |
| 533 | - <attribute name="action">win.fullscreen</attribute> | |
| 552 | + <attribute name="label" translatable="yes">Session properties</attribute> | |
| 553 | + <attribute name="action">win.session.properties</attribute> | |
| 534 | 554 | </item> |
| 535 | 555 | |
| 536 | - </submenu> | |
| 537 | 556 | |
| 538 | - <item> | |
| 539 | - <attribute name="label" translatable="yes">Close window</attribute> | |
| 540 | - <attribute name="action">win.close</attribute> | |
| 541 | - </item> | |
| 557 | + <item> | |
| 558 | + <attribute name="label" translatable="yes">Close window</attribute> | |
| 559 | + <attribute name="action">win.close</attribute> | |
| 560 | + </item> | |
| 561 | + | |
| 562 | + </section> | |
| 542 | 563 | |
| 543 | 564 | </menu> |
| 544 | 565 | ... | ... |