[Commits] [SCM] clawsker branch, master, updated. 1.2.0-37-g9367d36

mones at claws-mail.org mones at claws-mail.org
Fri Nov 16 01:32:44 CET 2018


The branch, master has been updated
       via  9367d365b6d77c426a92840b61dd5f6f2d4faad5 (commit)
       via  4ecad2b547f605c8905682bd9923bfa4db2512c3 (commit)
       via  e818e1c6446bace2c9d6848c0688714a0b531aaa (commit)
       via  ea22df5ee2c32f57aec7dd5363670a2bea5b658c (commit)
       via  6be9bde63d0160e5eb749c32a3e0006e6bf4ad94 (commit)
       via  720a384fbdd1aa9f308fc41714ff8afd3534d463 (commit)
       via  8e4653de631884f4a0b1aa22641b78a9d0200851 (commit)
       via  17f3f5deed634917b2fbd77bcd7ddde33a9b8959 (commit)
      from  8c4bead43ac5e1f99dee6c1793d2b6937707c394 (commit)

Summary of changes:
 clawsker |  760 +++++++++++++++++++++++++++-----------------------------------
 1 file changed, 336 insertions(+), 424 deletions(-)


- Log -----------------------------------------------------------------
commit 9367d365b6d77c426a92840b61dd5f6f2d4faad5
Author: Ricardo Mones <ricardo at mones.org>
Date:   Fri Nov 16 01:32:13 2018 +0100

    Migrate behaviour page to grid

diff --git a/clawsker b/clawsker
index 39a662e..8949d35 100755
--- a/clawsker
+++ b/clawsker
@@ -76,11 +76,6 @@ sub _ {
     tab_hotkeys => _('Hotkeys'),
     tab_info => _('Info'),
 
-    dnd_frame => _('Drag \'n\' drop'),
-    ssl_frame => _('Secure Sockets Layer'),
-    msgs_frame => _('Messages'),
-    swc_frame => _('Completion'),
-
     l_oth_use_dlg => _('Use detached address book edit dialogue'),
     h_oth_use_dlg => _('If true use a separate dialogue to edit a person\'s details. Otherwise will use a form embedded in the address book\'s main window.'),
     l_oth_max_use => _('Maximum memory for message cache'),
@@ -1140,45 +1135,33 @@ sub new_gui_page() {
 );
 
 sub new_behaviour_page() {
-    my $bf = Gtk3::VBox->new (FALSE, 5);
-    $bf->set_border_width (PAGE_SPC);
-
-    my $tb_up_step = new_text_box_for_int (\%pr::beh, 'up_step', \%HPVALUE);
-    my $tb_thread_a = new_text_box_for_int (\%pr::beh, 'thread_a', \%HPVALUE);
-
-    $bf->pack_start (new_subpage_frame (
-                         new_vbox_pack (
-                             new_text_box_for_int (\%pr::beh, 'hover_t', \%HPVALUE),
-                             new_check_button_for (\%pr::beh, 'warn_dnd', \%HPVALUE)),
-                         $xl::s{dnd_frame}, 'not-packed'),
-                     FALSE, FALSE, FRAME_SPC);
-    $bf->pack_start (new_subpage_frame (
-                         new_hbox_pack (
-                             new_check_button_for (\%pr::beh, 'skip_ssl', \%HPVALUE),
-                             new_check_button_for (\%pr::beh, 'unsafe_ssl', \%HPVALUE)),
-                         $xl::s{ssl_frame}, 'not-packed'),
-                     FALSE, FALSE, FRAME_SPC);
-    $bf->pack_start ($tb_up_step, FALSE, FALSE, 0);
-    $bf->pack_start ($tb_thread_a, FALSE, FALSE, 0);
-    $bf->pack_start (new_subpage_frame (
-                         new_vbox_pack (
-                             new_check_button_for (\%pr::beh, 'flowed', \%HPVALUE),
-                             new_check_button_for (\%pr::beh, 'parts_rw', \%HPVALUE),
-                             new_check_button_for (\%pr::beh, 'use_utf8', \%HPVALUE),
-                             new_check_button_for (\%pr::beh, 'dangerous', \%HPVALUE),
-                             new_check_button_for (\%pr::beh, 'out_ascii', \%HPVALUE),
-                             new_check_button_for (\%pr::beh, 'pp_unsel', \%HPVALUE),
-                             new_check_button_for (\%pr::beh, 'inline_at', \%HPVALUE),
-                             new_check_button_for (\%pr::beh, 'rewrite_ff', \%HPVALUE)),
-                         $xl::s{msgs_frame}, 'not-packed'),
-                     FALSE, FALSE, FRAME_SPC);
-    $bf->pack_start (new_subpage_frame (
-                         new_vbox_pack (
-                             new_check_button_for (\%pr::beh, 'addr_swc', \%HPVALUE),
-                             new_check_button_for (\%pr::beh, 'fold_swc', \%HPVALUE)),
-                         $xl::s{swc_frame}, 'not-packed'),
-                     FALSE, FALSE, FRAME_SPC);
-    return $bf;
+    return new_grid_pack (2, 20, [
+        [ _('Drag \'n\' drop') ],
+        [ new_text_box_for_int (\%pr::beh, 'hover_t', \%HPVALUE) ],
+        [ new_check_button_for (\%pr::beh, 'warn_dnd', \%HPVALUE) ],
+        [ '--' ],
+        [ _('Secure Sockets Layer') ],
+        [ new_check_button_for (\%pr::beh, 'skip_ssl', \%HPVALUE),
+            new_check_button_for (\%pr::beh, 'unsafe_ssl', \%HPVALUE) ],
+        [ '--' ],
+        [ _('Messages') ],
+        [ new_check_button_for (\%pr::beh, 'flowed', \%HPVALUE),
+            new_check_button_for (\%pr::beh, 'out_ascii', \%HPVALUE) ],
+        [ new_check_button_for (\%pr::beh, 'parts_rw', \%HPVALUE),
+            new_check_button_for (\%pr::beh, 'pp_unsel', \%HPVALUE) ],
+        [ new_check_button_for (\%pr::beh, 'use_utf8', \%HPVALUE),
+            new_check_button_for (\%pr::beh, 'inline_at', \%HPVALUE) ],
+        [ new_check_button_for (\%pr::beh, 'dangerous', \%HPVALUE),
+            new_check_button_for (\%pr::beh, 'rewrite_ff', \%HPVALUE) ],
+        [ '--' ],
+        [ _('Completion') ],
+        [ new_check_button_for (\%pr::beh, 'addr_swc', \%HPVALUE) ],
+        [ new_check_button_for (\%pr::beh, 'fold_swc', \%HPVALUE) ],
+        [ '--' ],
+        [ _('Other') ],
+        [ new_text_box_for_int (\%pr::beh, 'up_step', \%HPVALUE) ],
+        [ new_text_box_for_int (\%pr::beh, 'thread_a', \%HPVALUE) ]
+    ]);
 }
 
 %pr::col = ( # a variety of colours

commit 4ecad2b547f605c8905682bd9923bfa4db2512c3
Author: Ricardo Mones <ricardo at mones.org>
Date:   Fri Nov 16 01:22:21 2018 +0100

    Migrate colors page to grid

diff --git a/clawsker b/clawsker
index 0586710..39a662e 100755
--- a/clawsker
+++ b/clawsker
@@ -76,15 +76,10 @@ sub _ {
     tab_hotkeys => _('Hotkeys'),
     tab_info => _('Info'),
 
-    msgview_frame => _('Message View'),
-    log_frame => _('Log window'),
     dnd_frame => _('Drag \'n\' drop'),
     ssl_frame => _('Secure Sockets Layer'),
     msgs_frame => _('Messages'),
     swc_frame => _('Completion'),
-    diff_frame => _('Viewing patches'),
-    compose_frame => _('Compose window'),
-    qs_frame => _('Quick search'),
 
     l_oth_use_dlg => _('Use detached address book edit dialogue'),
     h_oth_use_dlg => _('If true use a separate dialogue to edit a person\'s details. Otherwise will use a form embedded in the address book\'s main window.'),
@@ -1326,45 +1321,34 @@ sub new_behaviour_page() {
 );
 
 sub new_colours_page() {
-    return new_vbox_pack (
-               new_subpage_frame (
-                   new_vbox_pack (
-                       new_color_button_for (\%pr::col, 'emphasis', \%HPVALUE),
-                       new_hbox_pack_compact (
-                           new_color_button_for (\%pr::col, 'tags_text', \%HPVALUE),
-                           new_color_button_for (\%pr::col, 'tags_bg', \%HPVALUE))),
-                   $xl::s{msgview_frame}, 'not-packed'),
-               new_subpage_frame (
-                   new_hbox_pack (
-                       new_vbox_pack_compact (
-                           new_color_button_for (\%pr::col, 'log_err', \%HPVALUE),
-                           new_color_button_for (\%pr::col, 'log_warn', \%HPVALUE),
-                           new_color_button_for (\%pr::col, 'log_msg', \%HPVALUE)),
-                       new_vbox_pack_compact (
-                           new_color_button_for (\%pr::col, 'log_in', \%HPVALUE),
-                           new_color_button_for (\%pr::col, 'log_out', \%HPVALUE))),
-                   $xl::s{log_frame}, 'not-packed'),
-               new_subpage_frame (
-                   new_vbox_pack (
-                       new_color_button_for (\%pr::col, 'diff_add', \%HPVALUE),
-                       new_color_button_for (\%pr::col, 'diff_del', \%HPVALUE),
-                       new_color_button_for (\%pr::col, 'diff_hunk', \%HPVALUE)),
-                   $xl::s{diff_frame}, 'not-packed'),
-               new_subpage_frame (
-                   new_hbox_pack (
-                       new_color_button_for (\%pr::col, 'default_header_text', \%HPVALUE),
-                       new_color_button_for (\%pr::col, 'default_header_bg', \%HPVALUE)),
-                   $xl::s{compose_frame}, 'not-packed'),
-               new_subpage_frame (
-                   new_hbox_pack (
-                       new_vbox_pack_compact (
-                           new_color_button_for (\%pr::col, 'qs_active_text', \%HPVALUE),
-                           new_color_button_for (\%pr::col, 'qs_error_text', \%HPVALUE)),
-                       new_vbox_pack_compact (
-                           new_color_button_for (\%pr::col, 'qs_active_bg', \%HPVALUE),
-                           new_color_button_for (\%pr::col, 'qs_error_bg', \%HPVALUE))),
-                   $xl::s{qs_frame}, 'not-packed')
-           );
+    return new_grid_pack (3, 18, [
+        [ _('Message View') ],
+        [ new_color_button_for (\%pr::col, 'emphasis', \%HPVALUE) ],
+        [ new_color_button_for (\%pr::col, 'tags_text', \%HPVALUE) ,
+            new_color_button_for (\%pr::col, 'tags_bg', \%HPVALUE) ],
+        [ '--' ],
+        [ _('Log window') ],
+        [ new_color_button_for (\%pr::col, 'log_err', \%HPVALUE) ,
+            new_color_button_for (\%pr::col, 'log_in', \%HPVALUE) ],
+        [ new_color_button_for (\%pr::col, 'log_warn', \%HPVALUE) ,
+            new_color_button_for (\%pr::col, 'log_out', \%HPVALUE) ],
+        [ new_color_button_for (\%pr::col, 'log_msg', \%HPVALUE) ],
+        [ '--' ],
+        [ _('Viewing patches') ],
+        [ new_color_button_for (\%pr::col, 'diff_add', \%HPVALUE) ,
+            new_color_button_for (\%pr::col, 'diff_del', \%HPVALUE) ,
+            new_color_button_for (\%pr::col, 'diff_hunk', \%HPVALUE) ],
+        [ '--' ],
+        [ _('Compose window') ],
+        [ new_color_button_for (\%pr::col, 'default_header_text', \%HPVALUE) ,
+            new_color_button_for (\%pr::col, 'default_header_bg', \%HPVALUE) ],
+        [ '--' ],
+        [ _('Quick search') ],
+        [ new_color_button_for (\%pr::col, 'qs_active_text', \%HPVALUE) ,
+            new_color_button_for (\%pr::col, 'qs_active_bg', \%HPVALUE) ],
+        [ new_color_button_for (\%pr::col, 'qs_error_text', \%HPVALUE) ,
+            new_color_button_for (\%pr::col, 'qs_error_bg', \%HPVALUE) ]
+    ]);
 }
 
 %pr::win = ( # tweak window positions and/or sizes

commit e818e1c6446bace2c9d6848c0688714a0b531aaa
Author: Ricardo Mones <ricardo at mones.org>
Date:   Fri Nov 16 01:11:35 2018 +0100

    Migrate gui page to grid

diff --git a/clawsker b/clawsker
index 02baf2c..0586710 100755
--- a/clawsker
+++ b/clawsker
@@ -82,11 +82,6 @@ sub _ {
     ssl_frame => _('Secure Sockets Layer'),
     msgs_frame => _('Messages'),
     swc_frame => _('Completion'),
-    stripes_frame => _('Coloured stripes'),
-    sbar_frame => _('Scroll bars'),
-    mlist_frame => _('Message List'),
-    mview_frame => _('Message View'),
-    compo_frame => _('Compose window'),
     diff_frame => _('Viewing patches'),
     compose_frame => _('Compose window'),
     qs_frame => _('Quick search'),
@@ -984,55 +979,38 @@ sub new_other_page() {
 );
 
 sub new_gui_page() {
-    my $gf = Gtk3::VBox->new (FALSE, 5);
-    $gf->set_border_width (PAGE_SPC);
-
-    my $cb_dot_lines = new_check_button_for (\%pr::gui, 'dot_lines', \%HPVALUE);
-    my $cb_toolbar_d = new_check_button_for (\%pr::gui, 'toolbar_d', \%HPVALUE);
-    my $tb_zero_char = new_text_box_for_nchar (\%pr::gui, 'zero_char', \%HPVALUE);
-
-    $gf->pack_start (new_subpage_frame (
-                         new_vbox_pack (
-                             new_check_button_for (\%pr::gui, 'strip_all', \%HPVALUE),
-                             new_check_button_for (\%pr::gui, 'strip_sum', \%HPVALUE),
-                             new_text_box_for_int (\%pr::gui, 'strip_off', \%HPVALUE)),
-                         $xl::s{stripes_frame}, 'not-packed'),
-                     FALSE, FALSE, FRAME_SPC);
-    $gf->pack_start (new_subpage_frame (
-                         new_vbox_pack (
-                             new_check_button_for (\%pr::gui, 'b_unread', \%HPVALUE),
-                             new_check_button_for (\%pr::gui, 'swp_from', \%HPVALUE),
-                             new_check_button_for (\%pr::gui, 'two_linev', \%HPVALUE),
-                             new_check_button_for (\%pr::gui, 'next_del', \%HPVALUE),
-                             new_selection_box_for (\%pr::gui, 'from_show', \%HPVALUE)),
-                         $xl::s{mlist_frame}, 'not-packed'),
-                     FALSE, FALSE, FRAME_SPC);
-    $gf->pack_start (new_subpage_frame (
-                         new_hbox_pack (
-                             new_check_button_for (\%pr::gui, 'cursor_v', \%HPVALUE),
-                             new_check_button_for (\%pr::gui, 'mview_date', \%HPVALUE)),
-                         $xl::s{mview_frame}, 'not-packed'),
-                     FALSE, FALSE, FRAME_SPC);
-    $gf->pack_start (new_subpage_frame (
-                         new_vbox_pack (
-                             new_hbox_pack_compact (
-                                 new_check_button_for (\%pr::gui, 'no_markup', \%HPVALUE),
-                                 new_check_button_for (\%pr::gui, 'margin_co', \%HPVALUE),
-                                 new_check_button_for (\%pr::gui, 'type_any', \%HPVALUE)),
-                             new_text_box_for_int (\%pr::gui, 'warn_send_multi', \%HPVALUE)),
-                         $xl::s{compo_frame}, 'not-packed'),
-                     FALSE, FALSE, FRAME_SPC);
-    $gf->pack_start ($cb_dot_lines, FALSE, FALSE, 0);
-    $gf->pack_start ($cb_toolbar_d, FALSE, FALSE, 0);
-    $gf->pack_start (new_subpage_frame (
-                         new_vbox_pack (
-                             new_check_button_for (\%pr::gui, 'h_scroll', \%HPVALUE),
-                             new_selection_box_for (\%pr::gui, 'v_scroll', \%HPVALUE)),
-                         $xl::s{sbar_frame}, 'not-packed'),
-                     FALSE, FALSE, FRAME_SPC);
-    $gf->pack_start ($tb_zero_char, FALSE, FALSE, 0);
-
-    return $gf;
+    return new_grid_pack (2, 24, [
+        [ _('Coloured stripes') ],
+        [ new_check_button_for (\%pr::gui, 'strip_all', \%HPVALUE),
+            new_check_button_for (\%pr::gui, 'strip_sum', \%HPVALUE) ],
+        [ new_text_box_for_int (\%pr::gui, 'strip_off', \%HPVALUE) ],
+        [ '--' ],
+        [ _('Message List') ],
+        [ new_check_button_for (\%pr::gui, 'b_unread', \%HPVALUE),
+            new_check_button_for (\%pr::gui, 'swp_from', \%HPVALUE) ],
+        [ new_check_button_for (\%pr::gui, 'two_linev', \%HPVALUE),
+            new_check_button_for (\%pr::gui, 'next_del', \%HPVALUE) ],
+        [ new_selection_box_for (\%pr::gui, 'from_show', \%HPVALUE) ],
+        [ '--' ],
+        [ _('Message View') ],
+        [ new_check_button_for (\%pr::gui, 'cursor_v', \%HPVALUE),
+            new_check_button_for (\%pr::gui, 'mview_date', \%HPVALUE) ],
+        [ '--' ],
+        [ _('Compose window') ],
+        [ new_check_button_for (\%pr::gui, 'no_markup', \%HPVALUE),
+            new_check_button_for (\%pr::gui, 'margin_co', \%HPVALUE) ],
+        [ new_check_button_for (\%pr::gui, 'type_any', \%HPVALUE) ],
+        [ new_text_box_for_int (\%pr::gui, 'warn_send_multi', \%HPVALUE) ],
+        [ '--' ],
+        [ _('Scroll bars') ],
+        [ new_check_button_for (\%pr::gui, 'h_scroll', \%HPVALUE) ],
+        [ new_selection_box_for (\%pr::gui, 'v_scroll', \%HPVALUE) ],
+        [ '--' ],
+        [ _('Other') ],
+        [ new_check_button_for (\%pr::gui, 'dot_lines', \%HPVALUE),
+            new_check_button_for (\%pr::gui, 'toolbar_d', \%HPVALUE) ],
+        [ new_text_box_for_nchar (\%pr::gui, 'zero_char', \%HPVALUE) ]
+    ]);
 }
 
 %pr::beh = ( # tweak some behaviour

commit ea22df5ee2c32f57aec7dd5363670a2bea5b658c
Author: Ricardo Mones <ricardo at mones.org>
Date:   Fri Nov 16 00:53:49 2018 +0100

    Migrate other page to grid

diff --git a/clawsker b/clawsker
index 36b1dcc..02baf2c 100755
--- a/clawsker
+++ b/clawsker
@@ -76,8 +76,6 @@ sub _ {
     tab_hotkeys => _('Hotkeys'),
     tab_info => _('Info'),
 
-    ab_frame => _('Addressbook'),
-    mem_frame => _('Memory'),
     msgview_frame => _('Message View'),
     log_frame => _('Log window'),
     dnd_frame => _('Drag \'n\' drop'),
@@ -89,9 +87,7 @@ sub _ {
     mlist_frame => _('Message List'),
     mview_frame => _('Message View'),
     compo_frame => _('Compose window'),
-    netm_frame => _('NetworkManager'),
     diff_frame => _('Viewing patches'),
-    mpass_frame => _('Master passphrase'),
     compose_frame => _('Compose window'),
     qs_frame => _('Quick search'),
 
@@ -816,25 +812,20 @@ sub new_grid_pack {
 );
 
 sub new_other_page() {
-    return new_vbox_pack (
-               new_subpage_frame (
-                   new_vbox_pack (
-                       new_check_button_for(\%pr::oth, 'use_dlg', \%HPVALUE)),
-                   $xl::s{ab_frame}, 'not-packed'),
-               new_subpage_frame (
-                   new_vbox_pack (
-                       new_text_box_for_int(\%pr::oth, 'max_use', \%HPVALUE),
-                       new_text_box_for_int(\%pr::oth, 'min_time', \%HPVALUE)),
-                   $xl::s{mem_frame}, 'not-packed'),
-               new_subpage_frame (
-                   new_vbox_pack (
-                       new_check_button_for(\%pr::oth, 'use_netm', \%HPVALUE)),
-                   $xl::s{netm_frame}, 'not-packed'),
-               new_subpage_frame (
-                   new_vbox_pack (
-                       new_text_box_for_int(\%pr::oth, 'mp_rounds', \%HPVALUE)),
-                   $xl::s{mpass_frame}, 'not-packed')
-           );
+    return new_grid_pack (1, 12, [
+        [ _('Addressbook') ],
+        [ new_check_button_for(\%pr::oth, 'use_dlg', \%HPVALUE) ],
+        [ '--' ],
+        [ _('Memory') ],
+        [ new_text_box_for_int(\%pr::oth, 'max_use', \%HPVALUE) ],
+        [ new_text_box_for_int(\%pr::oth, 'min_time', \%HPVALUE) ],
+        [ '--' ],
+        [ _('NetworkManager') ],
+        [ new_check_button_for(\%pr::oth, 'use_netm', \%HPVALUE) ],
+        [ '--' ],
+        [ _('Master passphrase') ],
+        [ new_text_box_for_int(\%pr::oth, 'mp_rounds', \%HPVALUE) ]
+    ]);
 }
 
 %pr::gui = ( # gui bells and whistles

commit 6be9bde63d0160e5eb749c32a3e0006e6bf4ad94
Author: Ricardo Mones <ricardo at mones.org>
Date:   Fri Nov 16 00:46:32 2018 +0100

    Migrate windows page to grid

diff --git a/clawsker b/clawsker
index d4e7112..36b1dcc 100755
--- a/clawsker
+++ b/clawsker
@@ -1882,196 +1882,156 @@ sub new_colours_page() {
 );
 
 sub new_winpos_subpage_main() {
-    return new_subpage_frame (
-               new_vbox_pack_compact (
-                   new_vbox_pack (
-                       new_text_box_for_int (\%pr::win, 'main_x', \%HPVALUE),
-                       new_text_box_for_int (\%pr::win, 'main_y', \%HPVALUE)),
-                   new_hbox_pack (
-                       new_text_box_for_int (\%pr::win, 'main_w', \%HPVALUE),
-                       new_text_box_for_int (\%pr::win, 'main_h', \%HPVALUE)),
-                   new_vbox_pack (
-                       new_check_button_for (\%pr::win, 'main_fs', \%HPVALUE),
-                       new_check_button_for (\%pr::win, 'main_mx', \%HPVALUE))),
-               _('Main window')
-           );
+    return new_grid_pack (3, 7, [
+        [ _('Main window'), undef ],
+        [ new_text_box_for_int (\%pr::win, 'main_x', \%HPVALUE), undef ],
+        [ new_text_box_for_int (\%pr::win, 'main_y', \%HPVALUE), undef ],
+        [ new_text_box_for_int (\%pr::win, 'main_w', \%HPVALUE),
+            new_text_box_for_int (\%pr::win, 'main_h', \%HPVALUE) ],
+        [ new_check_button_for (\%pr::win, 'main_fs', \%HPVALUE), undef ],
+        [ new_check_button_for (\%pr::win, 'main_mx', \%HPVALUE), undef ]
+    ]);
 }
 
 sub new_winpos_subpage_msgs() {
-    return new_subpage_frame (
-               new_vbox_pack_compact (
-                   new_vbox_pack (
-                       new_text_box_for_int (\%pr::win, 'msgs_x', \%HPVALUE),
-                       new_text_box_for_int (\%pr::win, 'msgs_y', \%HPVALUE)),
-                   new_hbox_pack (
-                       new_text_box_for_int (\%pr::win, 'msgs_w', \%HPVALUE),
-                       new_text_box_for_int (\%pr::win, 'msgs_h', \%HPVALUE))),
-               _('Message window')
-           );
+    return new_grid_pack (3, 4, [
+        [ _('Message window') ],
+        [ new_text_box_for_int (\%pr::win, 'msgs_x', \%HPVALUE) ],
+        [ new_text_box_for_int (\%pr::win, 'msgs_y', \%HPVALUE) ],
+        [ new_text_box_for_int (\%pr::win, 'msgs_w', \%HPVALUE),
+            new_text_box_for_int (\%pr::win, 'msgs_h', \%HPVALUE) ]
+    ]);
 }
 
 sub new_winpos_subpage_sendrecv() {
-    return new_vbox_pack (
-               new_subpage_frame (
-                   new_hbox_pack (
-                       new_text_box_for_int (\%pr::win, 'send_w', \%HPVALUE),
-                       new_text_box_for_int (\%pr::win, 'send_h', \%HPVALUE)),
-                   _('Send window'), 'not-packed'),
-               new_subpage_frame (
-                   new_hbox_pack (
-                       new_text_box_for_int (\%pr::win, 'recv_w', \%HPVALUE),
-                       new_text_box_for_int (\%pr::win, 'recv_h', \%HPVALUE)),
-                   _('Receive window'), 'not-packed')
-           );
+    return new_grid_pack (3, 5, [
+        [ _('Send window') ],
+        [ new_text_box_for_int (\%pr::win, 'send_w', \%HPVALUE),
+            new_text_box_for_int (\%pr::win, 'send_h', \%HPVALUE) ],
+        [ '--' ],
+        [ _('Receive window') ],
+        [ new_text_box_for_int (\%pr::win, 'recv_w', \%HPVALUE),
+            new_text_box_for_int (\%pr::win, 'recv_h', \%HPVALUE) ]
+    ]);
 }
 
 sub new_winpos_subpage_fold() {
-    return new_vbox_pack (
-               new_subpage_frame (
-                   new_vbox_pack_compact (
-                       new_vbox_pack (
-                            new_text_box_for_int (\%pr::win, 'fold_x', \%HPVALUE),
-                            new_text_box_for_int (\%pr::win, 'fold_y', \%HPVALUE)),
-                       new_hbox_pack (
-                           new_text_box_for_int (\%pr::win, 'fold_w', \%HPVALUE),
-                           new_text_box_for_int (\%pr::win, 'fold_h', \%HPVALUE))),
-                   _('Folder window'), 'not-packed'),
-               new_subpage_frame (
-                   new_hbox_pack (
-                       new_text_box_for_int (\%pr::win, 'fsel_w', \%HPVALUE),
-                       new_text_box_for_int (\%pr::win, 'fsel_h', \%HPVALUE)),
-                   _('Folder selection window'), 'not-packed')
-           );
+    return new_grid_pack (3, 7, [
+        [ _('Folder window') ],
+        [ new_text_box_for_int (\%pr::win, 'fold_x', \%HPVALUE) ],
+        [ new_text_box_for_int (\%pr::win, 'fold_y', \%HPVALUE) ],
+        [ new_text_box_for_int (\%pr::win, 'fold_w', \%HPVALUE),
+            new_text_box_for_int (\%pr::win, 'fold_h', \%HPVALUE) ],
+        [ '--' ],
+        [ _('Folder selection window') ],
+        [ new_text_box_for_int (\%pr::win, 'fsel_w', \%HPVALUE),
+            new_text_box_for_int (\%pr::win, 'fsel_h', \%HPVALUE) ]
+    ]);
 }
 
 sub new_winpos_subpage_addrbook() {
-    return new_vbox_pack (
-                new_subpage_frame (
-                     new_hbox_pack (
-                          new_text_box_for_int (\%pr::win, 'addr_w', \%HPVALUE),
-                          new_text_box_for_int (\%pr::win, 'addr_h', \%HPVALUE)),
-                     _('Addressbook main window'), 'not-packed'),
-                new_subpage_frame (
-                     new_hbox_pack (
-                          new_text_box_for_int (\%pr::win, 'adep_w', \%HPVALUE),
-                          new_text_box_for_int (\%pr::win, 'adep_h', \%HPVALUE)),
-                     _('Edit person window'), 'not-packed'),
-                new_subpage_frame (
-                     new_hbox_pack (
-                          new_text_box_for_int (\%pr::win, 'adeg_w', \%HPVALUE),
-                          new_text_box_for_int (\%pr::win, 'adeg_h', \%HPVALUE)),
-                     _('Edit group window'), 'not-packed'),
-                new_subpage_frame (
-                     new_hbox_pack (
-                          new_text_box_for_int (\%pr::win, 'adda_w', \%HPVALUE),
-                          new_text_box_for_int (\%pr::win, 'adda_h', \%HPVALUE)),
-                     _('Add address window'), 'not-packed'),
-                new_subpage_frame (
-                     new_hbox_pack (
-                          new_text_box_for_int (\%pr::win, 'addf_w', \%HPVALUE),
-                          new_text_box_for_int (\%pr::win, 'addf_h', \%HPVALUE)),
-                     _('Folder select window'), 'not-packed')
-           );
+    return new_grid_pack (3, 14, [
+        [ _('Addressbook main window') ],
+        [ new_text_box_for_int (\%pr::win, 'addr_w', \%HPVALUE),
+            new_text_box_for_int (\%pr::win, 'addr_h', \%HPVALUE) ],
+        [ '--' ],
+        [ _('Edit person window') ],
+        [ new_text_box_for_int (\%pr::win, 'adep_w', \%HPVALUE),
+            new_text_box_for_int (\%pr::win, 'adep_h', \%HPVALUE) ],
+        [ '--' ],
+        [ _('Edit group window') ],
+        [ new_text_box_for_int (\%pr::win, 'adeg_w', \%HPVALUE),
+            new_text_box_for_int (\%pr::win, 'adeg_h', \%HPVALUE) ],
+        [ '--' ],
+        [ _('Add address window') ],
+        [ new_text_box_for_int (\%pr::win, 'adda_w', \%HPVALUE),
+            new_text_box_for_int (\%pr::win, 'adda_h', \%HPVALUE) ],
+        [ '--' ],
+        [ _('Folder select window') ],
+        [ new_text_box_for_int (\%pr::win, 'addf_w', \%HPVALUE),
+            new_text_box_for_int (\%pr::win, 'addf_h', \%HPVALUE) ]
+    ]);
 }
 
 sub new_winpos_subpage_accounts() {
-    return new_vbox_pack (
-                new_subpage_frame (
-                     new_hbox_pack (
-                          new_text_box_for_int (\%pr::win, 'acco_w', \%HPVALUE),
-                          new_text_box_for_int (\%pr::win, 'acco_h', \%HPVALUE)),
-                     _('Accounts window'), 'not-packed'),
-                new_subpage_frame (
-                     new_hbox_pack (
-                          new_text_box_for_int (\%pr::win, 'acce_w', \%HPVALUE),
-                          new_text_box_for_int (\%pr::win, 'acce_h', \%HPVALUE)),
-                     _('Edit account window'), 'not-packed')
-           );
+    return new_grid_pack (3, 5, [
+        [ _('Accounts window') ],
+        [ new_text_box_for_int (\%pr::win, 'acco_w', \%HPVALUE),
+            new_text_box_for_int (\%pr::win, 'acco_h', \%HPVALUE) ],
+        [ '--' ],
+        [ _('Edit account window') ],
+        [ new_text_box_for_int (\%pr::win, 'acce_w', \%HPVALUE),
+            new_text_box_for_int (\%pr::win, 'acce_h', \%HPVALUE) ]
+    ]);
 }
 
 sub new_winpos_subpage_filtering() {
-    return new_vbox_pack (
-                new_subpage_frame (
-                     new_hbox_pack (
-                          new_text_box_for_int (\%pr::win, 'filt_w', \%HPVALUE),
-                          new_text_box_for_int (\%pr::win, 'filt_h', \%HPVALUE)),
-                     _('Filtering window'), 'not-packed'),
-                new_subpage_frame (
-                     new_hbox_pack (
-                          new_text_box_for_int (\%pr::win, 'fila_w', \%HPVALUE),
-                          new_text_box_for_int (\%pr::win, 'fila_h', \%HPVALUE)),
-                     _('Filtering actions window'), 'not-packed'),
-                new_subpage_frame (
-                     new_hbox_pack (
-                          new_text_box_for_int (\%pr::win, 'fild_w', \%HPVALUE),
-                          new_text_box_for_int (\%pr::win, 'fild_h', \%HPVALUE)),
-                     _('Filtering debug window'), 'not-packed'),
-                new_subpage_frame (
-                     new_hbox_pack (
-                          new_text_box_for_int (\%pr::win, 'matc_w', \%HPVALUE),
-                          new_text_box_for_int (\%pr::win, 'matc_h', \%HPVALUE)),
-                     _('Matcher window'), 'not-packed')
-           );
+    return new_grid_pack (3, 11, [
+        [ _('Filtering window') ],
+        [ new_text_box_for_int (\%pr::win, 'filt_w', \%HPVALUE),
+            new_text_box_for_int (\%pr::win, 'filt_h', \%HPVALUE) ],
+        [ '--' ],
+        [ _('Filtering actions window') ],
+        [ new_text_box_for_int (\%pr::win, 'fila_w', \%HPVALUE),
+            new_text_box_for_int (\%pr::win, 'fila_h', \%HPVALUE) ],
+        [ '--' ],
+        [ _('Filtering debug window') ],
+        [ new_text_box_for_int (\%pr::win, 'fild_w', \%HPVALUE),
+            new_text_box_for_int (\%pr::win, 'fild_h', \%HPVALUE) ],
+        [ '--' ],
+        [ ('Matcher window') ],
+        [ new_text_box_for_int (\%pr::win, 'matc_w', \%HPVALUE),
+            new_text_box_for_int (\%pr::win, 'matc_h', \%HPVALUE) ]
+
+    ]);
 }
 
 sub new_winpos_subpage_useractions() {
-    return new_vbox_pack (
-                new_subpage_frame (
-                     new_hbox_pack (
-                          new_text_box_for_int (\%pr::win, 'acti_w', \%HPVALUE),
-                          new_text_box_for_int (\%pr::win, 'acti_h', \%HPVALUE)),
-                     _('User Actions prefs window'), 'not-packed'),
-                new_subpage_frame (
-                     new_hbox_pack (
-                          new_text_box_for_int (\%pr::win, 'acio_w', \%HPVALUE),
-                          new_text_box_for_int (\%pr::win, 'acio_h', \%HPVALUE)),
-                     _('User Actions I/O window'), 'not-packed')
-           );
+    return new_grid_pack (3, 5, [
+        [ _('User Actions prefs window') ],
+        [ new_text_box_for_int (\%pr::win, 'acti_w', \%HPVALUE),
+            new_text_box_for_int (\%pr::win, 'acti_h', \%HPVALUE) ],
+        [ '--' ],
+        [ _('User Actions I/O window') ],
+        [ new_text_box_for_int (\%pr::win, 'acio_w', \%HPVALUE),
+            new_text_box_for_int (\%pr::win, 'acio_h', \%HPVALUE) ]
+    ]);
 }
 
 sub new_winpos_subpage_prefs() {
-    return new_vbox_pack (
-                new_subpage_frame (
-                     new_hbox_pack (
-                          new_text_box_for_int (\%pr::win, 'pref_w', \%HPVALUE),
-                          new_text_box_for_int (\%pr::win, 'pref_h', \%HPVALUE)),
-                     _('Preferences window'), 'not-packed'),
-                new_subpage_frame (
-                     new_hbox_pack (
-                          new_text_box_for_int (\%pr::win, 'temp_w', \%HPVALUE),
-                          new_text_box_for_int (\%pr::win, 'temp_h', \%HPVALUE)),
-                     _('Templates window'), 'not-packed'),
-                new_subpage_frame (
-                     new_hbox_pack (
-                          new_text_box_for_int (\%pr::win, 'tags_w', \%HPVALUE),
-                          new_text_box_for_int (\%pr::win, 'tags_h', \%HPVALUE)),
-                     _('Tags window'), 'not-packed'),
-                new_subpage_frame (
-                     new_hbox_pack (
-                          new_text_box_for_int (\%pr::win, 'plug_w', \%HPVALUE),
-                          new_text_box_for_int (\%pr::win, 'plug_h', \%HPVALUE)),
-                     _('Plugins window'), 'not-packed')
-           );
+    return new_grid_pack (3, 11, [
+        [ _('Preferences window') ],
+        [ new_text_box_for_int (\%pr::win, 'pref_w', \%HPVALUE),
+            new_text_box_for_int (\%pr::win, 'pref_h', \%HPVALUE) ],
+        [ '--' ],
+        [ _('Templates window') ],
+        [ new_text_box_for_int (\%pr::win, 'temp_w', \%HPVALUE),
+            new_text_box_for_int (\%pr::win, 'temp_h', \%HPVALUE) ],
+        [ '--' ],
+        [ _('Tags window') ],
+        [ new_text_box_for_int (\%pr::win, 'tags_w', \%HPVALUE),
+            new_text_box_for_int (\%pr::win, 'tags_h', \%HPVALUE) ],
+        [ '--' ],
+        [ _('Plugins window') ],
+        [ new_text_box_for_int (\%pr::win, 'plug_w', \%HPVALUE),
+            new_text_box_for_int (\%pr::win, 'plug_h', \%HPVALUE) ]
+    ]);
 }
 
 sub new_winpos_subpage_misc() {
-    return new_vbox_pack (
-                new_subpage_frame (
-                     new_hbox_pack (
-                          new_text_box_for_int (\%pr::win, 'logw_w', \%HPVALUE),
-                          new_text_box_for_int (\%pr::win, 'logw_h', \%HPVALUE)),
-                     _('Log window'), 'not-packed'),
-                new_subpage_frame (
-                     new_hbox_pack (
-                          new_text_box_for_int (\%pr::win, 'prin_w', \%HPVALUE),
-                          new_text_box_for_int (\%pr::win, 'prin_h', \%HPVALUE)),
-                     _('Print preview window'), 'not-packed'),
-                new_subpage_frame (
-                     new_hbox_pack (
-                          new_text_box_for_int (\%pr::win, 'sour_w', \%HPVALUE),
-                          new_text_box_for_int (\%pr::win, 'sour_h', \%HPVALUE)),
-                     _('View source window'), 'not-packed')
-           );
+    return new_grid_pack (3, 8, [
+        [ _('Log window') ],
+        [ new_text_box_for_int (\%pr::win, 'logw_w', \%HPVALUE),
+            new_text_box_for_int (\%pr::win, 'logw_h', \%HPVALUE) ],
+        [ '--' ],
+        [ _('Print preview window') ],
+        [ new_text_box_for_int (\%pr::win, 'prin_w', \%HPVALUE),
+            new_text_box_for_int (\%pr::win, 'prin_h', \%HPVALUE) ],
+        [ '--' ],
+        [ _('View source window') ],
+        [ new_text_box_for_int (\%pr::win, 'sour_w', \%HPVALUE),
+            new_text_box_for_int (\%pr::win, 'sour_h', \%HPVALUE) ]
+    ]);
 }
 
 sub new_winpos_page() {

commit 720a384fbdd1aa9f308fc41714ff8afd3534d463
Author: Ricardo Mones <ricardo at mones.org>
Date:   Fri Nov 16 00:37:43 2018 +0100

    Migrate account subpages to grid
    
    Set also default account emphasis to underline, because tab labels are
    bold by default.

diff --git a/clawsker b/clawsker
index dbfaa22..d4e7112 100755
--- a/clawsker
+++ b/clawsker
@@ -2121,13 +2121,11 @@ sub new_winpos_page() {
 
 sub new_account_subpage($) {
     my ($akey) = @_;
-    return new_vbox_pack (
-                new_subpage_frame (
-                    new_vbox_pack (
-                        new_check_button_for (\%pr::acc, 'tls_set', $ACHPVALUE{$akey}),
-                        new_text_box_for_nchar (\%pr::acc, 'tls_pri', $ACHPVALUE{$akey})),
-                    _('GnuTLS priority'), 'not-packed')
-           );
+    return new_grid_pack (1, 3, [
+        [ _('GnuTLS priority') ],
+        [ new_check_button_for (\%pr::acc, 'tls_set', $ACHPVALUE{$akey}) ],
+        [ new_text_box_for_nchar (\%pr::acc, 'tls_pri', $ACHPVALUE{$akey}) ]
+    ]);
 }
 
 sub new_accounts_page() {
@@ -2140,12 +2138,9 @@ sub new_accounts_page() {
         my $name = $ACPREFS{$_}{'account_name'};
         my $isdef = ($ACPREFS{$_}{'is_default'} eq '1');
         my $page = new_account_subpage ($_);
-        $accbook->append_page ($page,
-            Gtk3::Label->new ($isdef? '<b>' . $name . '</b>': $name));
-        if ($isdef) {
-            my $label = $accbook->get_tab_label ($page);
-            $label->set_use_markup (TRUE);
-        }
+        my $label = new_label ($isdef? '<u>' . $name . '</u>': $name);
+        $label->set_use_markup (TRUE);
+        $accbook->append_page ($page, $label);
     }
     $accbook->set_scrollable (TRUE);
     return $accbook;

commit 8e4653de631884f4a0b1aa22641b78a9d0200851
Author: Ricardo Mones <ricardo at mones.org>
Date:   Fri Nov 16 00:31:09 2018 +0100

    Migrate plugins page to grid

diff --git a/clawsker b/clawsker
index 35bc2a1..dbfaa22 100755
--- a/clawsker
+++ b/clawsker
@@ -2223,43 +2223,37 @@ sub new_accounts_page() {
 );
 
 sub new_plugins_page() {
-    my %frame = ();
-    $frame{'AttRemover'} =
-                new_subpage_frame (
-                     new_hbox_pack (
-                          new_text_box_for_int (\%pr::plu, 'arm_winw', $PLHPVALUE{'AttRemover'}),
-                          new_text_box_for_int (\%pr::plu, 'arm_winh', $PLHPVALUE{'AttRemover'})),
-                     _('Attachment remover'), 'not-packed');
-    $frame{'GPG'} =
-                new_subpage_frame (
-                     new_hbox_pack (
-                          new_text_box_for_int (\%pr::plu, 'gpg_alimit', $PLHPVALUE{'GPG'})),
-                     _('GPG'), 'not-packed');
-    $frame{'ManageSieve'} =
-                new_subpage_frame (
-                     new_hbox_pack (
-                          new_text_box_for_int (\%pr::plu, 'msv_winw', $PLHPVALUE{'ManageSieve'}),
-                          new_text_box_for_int (\%pr::plu, 'msv_winh', $PLHPVALUE{'ManageSieve'})),
-                     _('Sieve manager'), 'not-packed');
-    $frame{'Libravatar'} =
-                new_subpage_frame (
-                     new_hbox_pack (
-                          new_text_box_for_nchar (\%pr::plu, 'lav_burl', $PLHPVALUE{'Libravatar'})),
-                     _('Libravatar'), 'not-packed');
-    $frame{'PerlPlugin'} =
-                new_subpage_frame (
-                     new_hbox_pack (
-                          new_selection_box_for (\%pr::plu, 'prl_flvb', $PLHPVALUE{'PerlPlugin'})),
-                     _('Perl'), 'not-packed');
-    foreach (@PLUGINS) {
-        $frame{$_}->set_sensitive (defined $PLHPVALUE{$_});
+    my %widget = (
+        'AttRemover' => [
+            new_text_box_for_int (\%pr::plu, 'arm_winw', $PLHPVALUE{'AttRemover'}),
+            new_text_box_for_int (\%pr::plu, 'arm_winh', $PLHPVALUE{'AttRemover'})
+        ],
+        'GPG' => [
+            new_text_box_for_int (\%pr::plu, 'gpg_alimit', $PLHPVALUE{'GPG'})
+        ],
+        'ManageSieve' => [
+            new_text_box_for_int (\%pr::plu, 'msv_winw', $PLHPVALUE{'ManageSieve'}),
+            new_text_box_for_int (\%pr::plu, 'msv_winh', $PLHPVALUE{'ManageSieve'})
+        ],
+        'Libravatar' => [
+            new_text_box_for_nchar (\%pr::plu, 'lav_burl', $PLHPVALUE{'Libravatar'})
+        ],
+        'PerlPlugin' => [
+            new_selection_box_for (\%pr::plu, 'prl_flvb', $PLHPVALUE{'PerlPlugin'})
+        ]
+    );
+    foreach my $pk (@PLUGINS) {
+        foreach my $wg (@{$widget{$pk}}) {
+            $wg->set_sensitive (defined $PLHPVALUE{$pk});
+        }
     }
-    return new_vbox_pack (
-                $frame{'AttRemover'},
-                $frame{'GPG'},
-                $frame{'ManageSieve'},
-                $frame{'Libravatar'},
-                $frame{'PerlPlugin'});
+    return new_grid_pack (3, 14, [
+        [ _('Attachment remover') ], $widget{'AttRemover'}, [ '--' ],
+        [ _('GPG') ], $widget{'GPG'}, [ '--' ],
+        [ _('Sieve manager') ], $widget{'ManageSieve'}, [ '--' ],
+        [ _('Libravatar') ], $widget{'Libravatar'}, [ '--' ],
+        [ _('Perl') ], $widget{'PerlPlugin'}
+    ]);
 }
 
 use constant {

commit 17f3f5deed634917b2fbd77bcd7ddde33a9b8959
Author: Ricardo Mones <ricardo at mones.org>
Date:   Thu Nov 15 19:39:26 2018 +0100

    New grid helpers for a simpler page
    
    Also recover runtime version info

diff --git a/clawsker b/clawsker
index 5990df5..35bc2a1 100755
--- a/clawsker
+++ b/clawsker
@@ -714,6 +714,62 @@ sub new_subpage_frame {
     return $frame;
 }
 
+sub new_grid {
+    my ($border_w, $row_s, $col_s) = @_;
+    $border_w //= 10;
+    $row_s //= 10;
+    $col_s //= 10;
+    my $grid = Gtk3::Grid->new;
+    $grid->set_border_width ($border_w);
+    $grid->set_row_spacing ($row_s);
+    $grid->set_column_spacing ($col_s);
+    return $grid;
+}
+
+sub new_label {
+    my $text = shift;
+    $text //= '';
+    my $label = Gtk3::Label->new ($text);
+    $label->set_alignment (0, 0.5);
+    return $label;
+}
+
+sub new_title {
+    my $text = shift;
+    $text //= '';
+    my $label = Gtk3::Label->new ('<b>' . $text . '</b>');
+    $label->set_use_markup (TRUE);
+    $label->set_alignment (0, 0.5);
+    return $label;
+}
+
+sub new_grid_pack {
+    my ($width, $height, $widget) = @_;
+    my $grid = new_grid ();
+    $grid->set_column_homogeneous (TRUE);
+    for (my $i = 0; $i < $width; ++$i) {
+        for (my $j = 0; $j < $height; ++$j) {
+            my $wid = $widget->[$j]->[$i];
+            next unless defined $wid;
+            my $ww = (($i + 1 < $width) and (defined $widget->[$j]->[$i + 1]))
+                ? 1
+                : $width - $i;
+            if (ref $wid) {
+                $grid->attach ($wid, $i, $j, $ww, 1);
+            } else { # not a widget
+                if ('--' eq $wid) { # a separator
+                    $grid->attach (Gtk3::Separator->new ('horizontal'),
+                        $i, $j, $ww, 1);
+                } else { # or a title
+                    $grid->attach (new_title ($wid),
+                        $i, $j, $ww, 1);
+                }
+            }
+        }
+    }
+    return $grid;
+}
+
 # preference maps and corresponding page creation subs
 
 %pr::oth = ( # other preferences
@@ -2332,54 +2388,21 @@ sub new_hotkeys_page() {
 
 sub new_info_page() {
     my $v = get_toolkit_versions ();
-    my %labels = (
-        'glib' => 'Perl-GLib',
-        'glib-r' => _('GLib runtime'),
-        'glib-b' => _('GLib built'),
-        'gtk' => 'Perl-GTK3',
-        'gtk-r' => _('GTK3 runtime'),
-        'gtk-b' => _('GTK3 built'),
-    );
-    # setup grids
-    my $t0 = Gtk3::Grid->new;
-    my $t1 = Gtk3::Grid->new;
-    for ($t0, $t1) {
-        $_->set_border_width (10);
-        $_->set_row_spacing (10);
-        $_->set_column_spacing (10);
-    }
-    # fill first grid
-    my $row = 0;
-    foreach (sort keys %$v) {
-        if (defined $v->{$_}) {
-            my $label = Gtk3::Label->new ($labels{$_});
-            my $value = Gtk3::Label->new ('<b>' . $v->{$_} . '</b>');
-            $label->set_alignment (0, 0.5);
-            $value->set_alignment (0, 0.5);
-            $value->set_use_markup (TRUE);
-            $t0->attach ($label, 0, $row, 1, 1);
-            $t0->attach ($value, 1, $row, 1, 1);
-            ++$row;
-        }
-    }
-    # fill second grid
-    my @lbl = map { $_->set_alignment (0, 0.5); $_ } (
-        Gtk3::Label->new (_('Binary')),
-        Gtk3::Label->new (_('Configuration'))
-    );
     my $cfgv = $CONFIGDATA->{'Common'}{'config_version'};
     $cfgv //= '';
-    my @val = map { $_->set_alignment (0, 0.5); $_->set_use_markup (TRUE); $_ } (
-        Gtk3::Label->new ('<b>' . $CLAWSV . '</b>'),
-        Gtk3::Label->new ('<b>' . $cfgv . '</b>')
-    );
-    for (my $i = 0; $i <= $#lbl; ++$i) {
-        $t1->attach ($lbl[$i], 0, $i, 1, 1);
-        $t1->attach ($val[$i], 1, $i, 1, 1);
-    }
-    return new_vbox_pack (
-                new_subpage_frame ($t0, _('Library versions'), 'not-packed'),
-                new_subpage_frame ($t1, _('Claws Mail versions'), 'not-packed'));
+    return new_grid_pack (4, 11, [
+        [ _('Library versions') ],
+        [ new_label ('Perl-GLib'), new_title ($v->{'glib'}) ],
+        [ new_label (_('GLib runtime')), new_title ($v->{'glib-r'}) ],
+        [ new_label (_('GLib built')), new_title ($v->{'glib-b'}) ],
+        [ new_label ('Perl-GTK3'), new_title ($v->{'gtk'}) ],
+        [ new_label (_('GTK3 runtime')), new_title ($v->{'gtk-r'}) ],
+        [ new_label (_('GTK3 built')), new_title ($v->{'gtk-b'}) ],
+        [ '--' ],
+        [ _('Claws Mail versions') ],
+        [ new_label (_('Binary')), new_title ($CLAWSV) ],
+        [ new_label (_('Configuration')), new_title ($cfgv) ]
+    ]);
 }
 
 # version info
@@ -2394,8 +2417,12 @@ sub get_toolkit_versions {
     }
     $versions{'gtk'} = $Gtk3::VERSION;
     if ($Gtk3::VERSION >= 0.034) {
-        $versions{'gtk-b'} = &Gtk3::GET_VERSION_INFO;
+        $versions{'gtk-b'} = &Gtk3::GET_VERSION_INFO
+    } else {
+        $versions{'gtk-b'} = _('Not available')
     }
+    $versions{'gtk-r'} = join('.',
+        &Gtk3::get_major_version, &Gtk3::get_minor_version, &Gtk3::get_micro_version);
     return \%versions;
 }
 

-----------------------------------------------------------------------


hooks/post-receive
-- 
Hidden preferences editor for Claws Mail


More information about the Commits mailing list