App-Music-ChordPro
view release on metacpan or search on metacpan
lib/ChordPro/Wx/Config.pm view on Meta::CPAN
#! perl
use v5.26;
use Object::Pad;
class ChordPro::Wx::Config;
our %state;
our %preferences;
use Ref::Util qw( is_hashref is_arrayref );
use List::Util qw( uniq any first );
use Exporter 'import';
our @EXPORT = qw( %state %preferences );
my $cb;
use Wx qw(:everything);
use Wx::Locale gettext => '_T';
use ChordPro::Files;
use ChordPro::Paths;
use ChordPro::Utils qw( plural json_load is_true );
use constant FONTSIZE => 12;
use constant SETTINGS_VERSION => 3;
use Encode qw( decode_utf8 );
# Legacy font numbers.
my @fonts =
( # Monospace
Wx::Font->new( FONTSIZE, wxFONTFAMILY_TELETYPE,
wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL ),
# Serif
Wx::Font->new( FONTSIZE, wxFONTFAMILY_ROMAN,
wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL ),
# Sans serif
Wx::Font->new( FONTSIZE, wxFONTFAMILY_SWISS,
wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL ),
# Modern
Wx::Font->new( FONTSIZE, wxFONTFAMILY_MODERN,
wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL ),
);
my %prefs =
(
# (Old) config version.
settings_version => SETTINGS_VERSION - 1,
# Skip default (system, user, song) configs.
skipstdcfg => 1,
# Skip legacy (un-classified) configs.
skipoldcfg => 0,
# Presets.
# Title as defined by or derived from the JSON file.
# When multiple presets are possible, a list of titles separated by TABs
# (which are imported as a []).
# Note it is always a [] even when there's only one.
# Every preset_xxx is a list of entries from $state{preset}{xxx}.
preset_instruments => [], # single
preset_styles => [], # single
preset_stylemods => [],
preset_notations => [], # single
preset_tasks => [], # not used
# This one is slightly different, since it does not have configs associated.
preset_xcodes => [], # single
( run in 0.867 second using v1.01-cache-2.11-cpan-ceb78f64989 )