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'),
# modification flag
my $MODIFIED = 0;
-# index constants for preference arrays
-use constant NAME => 0; # the name on the rc file
-use constant LABEL => 1; # the label on the GUI
-use constant DESC => 2; # the description for the hint/help
-use constant TYPE => 3; # data type: bool, int, float, string, color
-use constant CMVER => 4; # lowest[,highest] Claws Mail version(s) the feature exists
-use constant CMDEF => 5; # default value for the preference in Claws Mail
-use constant PLUGIN => 6; # plugin section (only in plugin preferences)
-
-# constants for GUI spacing
-use constant HBOX_PAD => 5;
-use constant FRAME_SPC => 2;
-use constant PAGE_SPC => 5;
+use constant {
+ # index constants for preference arrays
+ NAME => 0, # the name on the rc file
+ LABEL => 1, # the label on the GUI
+ DESC => 2, # the description for the hint/help
+ TYPE => 3, # data type: bool, int, float, string, color
+ CMVER => 4, # lowest[,highest] Claws Mail version(s) the feature exists
+ CMDEF => 5, # default value for the preference in Claws Mail
+ PLUGIN => 6, # plugin section (only in plugin preferences)
+ # constants for GUI spacing
+ HBOX_PAD => 5,
+ GRID_SPC => 10,
+};
# for data references indexing
use constant VALUE => 0;
if defined $$dataref->[IVALUE];
}
-sub handle_string_value {
- my ($widget, $event, $dataref) = @_;
- $$dataref->[VALUE] = $widget->get_text ();
- $MODIFIED += $$dataref->[VALUE] ne $$dataref->[IVALUE]? 1: -1
- if defined $$dataref->[IVALUE];
-}
-
sub handle_nchar_value {
my ($widget, $event, $dataref, $minlen, $maxlen) = @_;
$_ = substr ($widget->get_text (), 0, $maxlen);
# more graphic helpers
-sub new_hbox_pack {
- my $hbox = Gtk3::HBox->new (FALSE);
- $hbox->set_border_width (PAGE_SPC);
- foreach (@_) {
- $hbox->pack_start ($_, FALSE, FALSE, 0);
- }
- return $hbox;
-}
-
-sub new_hbox_pack_compact {
- my $hbox = Gtk3::HBox->new (FALSE);
- $hbox->set_border_width (0);
- foreach (@_) {
- $hbox->pack_start ($_, FALSE, FALSE, 0);
- }
- return $hbox;
-}
-
-sub new_vbox_pack {
- my $vbox = Gtk3::VBox->new (FALSE, 5);
- $vbox->set_border_width (PAGE_SPC);
- foreach (@_) {
- $vbox->pack_start ($_, FALSE, FALSE, 0);
- }
- return $vbox;
-}
-
-sub new_vbox_pack_compact {
- my $vbox = Gtk3::VBox->new (FALSE, 0);
- $vbox->set_border_width (0);
- foreach (@_) {
- $vbox->pack_start ($_, FALSE, FALSE, 0);
- }
- return $vbox;
-}
-
-sub new_subpage_frame {
- my ($box, $title, $notpacked) = @_;
- my $frame = Gtk3::Frame->new ($title);
- $frame->add ($box);
- return new_vbox_pack ($frame) unless defined ($notpacked);
- return $frame;
-}
-
sub new_grid {
my ($border_w, $row_s, $col_s) = @_;
- $border_w //= 10;
- $row_s //= 10;
- $col_s //= 10;
+ $border_w //= GRID_SPC;
+ $row_s //= GRID_SPC;
+ $col_s //= GRID_SPC;
my $grid = Gtk3::Grid->new;
$grid->set_border_width ($border_w);
$grid->set_row_spacing ($row_s);
);
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