App-Music-ChordPro
view release on metacpan or search on metacpan
lib/ChordPro/Wx/Main.pm view on Meta::CPAN
}
method OnHelp_Example($event) {
$self->select_mode("editor");
$self->{p_editor}->openfile( CP->findres( "swinglow.cho",
class => "examples" ),
1, " example.cho " );
}
method OnExpertLineEndings($event) {
$state{vieweol} = wxTheApp->GetTopWindow->GetMenuBar->FindItem($event->GetId)->IsChecked;
if ( $state{mode} eq "editor" ) {
$self->{p_editor}->{t_editor}->SetViewEOL($state{vieweol});
}
}
method OnExpertWhiteSpace($event) {
$state{viewws} = wxTheApp->GetTopWindow->GetMenuBar->FindItem($event->GetId)->IsChecked;
if ( $state{mode} eq "editor" ) {
$self->{p_editor}->{t_editor}->SetViewWhiteSpace($state{viewws});
}
}
method OnHelp_Site($event) {
Wx::LaunchDefaultBrowser("https://www.chordpro.org/");
}
method OnMaximize($event) {
lib/ChordPro/Wx/PanelRole.pm view on Meta::CPAN
);
$self->{sz_preview}->Replace( $self->{webview}, $wv, 1 );
$self->{webview}->Destroy;
$self->{webview} = $wv;
$self->{sz_preview}->Layout;
}
method setup_messages_ctxmenu() {
# Context menu for message area.
my $menu = Wx::Menu->new;
my $id = Wx::NewId;
$menu->Append( $id, "Clear the message area", "", Wx::wxITEM_NORMAL );
Wx::Event::EVT_MENU( $self, $id, $self->can("OnMessagesClear") );
$id = Wx::NewId;
$menu->Append( $id, "Save the messages to a file", "", Wx::wxITEM_NORMAL );
Wx::Event::EVT_MENU( $self, $id, $self->can("OnMessagesSave") );
Wx::Event::EVT_CONTEXT_MENU( $self->{t_messages},
sub { $_[0]->PopupMenu( $menu,
Wx::wxDefaultPosition ) } );
}
method unsplit() {
$self->{sw_lr}->Unsplit(undef);
$self->{sw_tb}->Unsplit(undef);
}
method prepare_annotations() {
lib/ChordPro/Wx/PanelRole.pm view on Meta::CPAN
method name();
method check_source_saved();
method check_preview_saved();
method save_preferences();
method update_preferences();
################ Event Handlers (alphabetic order) ################
method OnHelp_DebugInfo($event) {
$state{debuginfo} = wxTheApp->GetTopWindow->GetMenuBar->FindItem($event->GetId)->IsChecked;
}
#method OnNew($event) {
# return unless $self->GetParent->check_saved;
# $self->GetParent->select_mode("initial");
#}
method OnOpen($event) {
# Let the parent handle this one.
# I would have expected a Skip to be sufficient, but then nothing happens.
lib/ChordPro/Wx/PanelRole.pm view on Meta::CPAN
return $self->OnPreview($event)
unless $self->prv && $self->prv->have_preview;
$self->{sw_lr}->SplitVertically( $self->{p_left},
$self->{p_right},
$state{sash}{$self->panel."_lr"} // 0 );
}
$self->previewtooltip;
}
method previewtooltip() {
my $mb = wxTheApp->GetTopWindow->GetMenuBar;
my $mi = $mb->FindItem($mb->FindMenuItem("View","Preview Panel"));
if ( $self->{sw_lr}->IsSplit ) {
$self->{bmb_preview}->SetToolTip(_T("Hide the preview\nUse ".
kbdkey("Ctrl-P").
" to refresh the preview"));
$mi->Check(1);
}
else {
$self->{bmb_preview}->SetToolTip(_T("Generate and show a new preview"));
$mi->Check(0);
}
}
method messagestooltip() {
my $mb = wxTheApp->GetTopWindow->GetMenuBar;
my $mi = $mb->FindItem($mb->FindMenuItem("View","Messages Panel"));
if ( $self->{sw_tb}->IsSplit ) {
$self->{bmb_messages}->SetToolTip(_T("Hide the messages"));
$mi->Check(1);
}
else {
$self->{bmb_messages}->SetToolTip(_T("Show the messages"));
$mi->Check(0);
}
$self->{w_infobar}->Dismiss if $self->{w_infobar}->IsShown;
}
lib/ChordPro/Wx/Utils.pm view on Meta::CPAN
"OnHelp_DebugInfo" ],
[],
[ wxID_ABOUT, M_ALL, "About ChordPro",
"About WxChordPro", "OnAbout" ],
]
]
];
my $target = $Wx::wxTheApp->GetTopWindow;
my $mb = Wx::MenuBar->new;
for ( @$ctl ) {
# [ wxID_FILE, [ ... ] ]
my @data = @$_;
my $id = shift(@data);
my $menu = pop(@data);
my $sels = shift(@data) // M_ALL;
my $text = shift(@data);
$id = Wx::NewId if $id < 0;
my $m = Wx::Menu->new;
for my $item ( @$menu ) {
if ( !@$item ) {
# []
$m->AppendSeparator;
next;
}
# [ wxID_NEW, "", "Create new", ..., "OnNew" ],
lib/ChordPro/Wx/Utils.pm view on Meta::CPAN
}
} );
}
}
# Add menu to menu bar.
$mb->Append( $m, _T($text // Wx::GetStockLabel($id)) );
}
# Append the tasks.
my $menu = $mb->FindMenu("Tasks");
$menu = $mb->GetMenu($menu);
$menu->AppendSeparator if @{$ChordPro::Wx::Config::state{tasks}};
for my $task ( @{$ChordPro::Wx::Config::state{tasks} } ) {
my ( $desc, $file ) = @$task;
my $id = Wx::NewId();
# Append to the menu.
my $mi = $menu->Append( $id, $desc, _T("Custom task: ").$desc );
Wx::Event::EVT_MENU
( $self, $id,
sub { $ChordPro::Wx::Config::state{panel}->preview( [ "--config", $file ] ) }
);
push( @swingers, [ $mi, M_ALL & ~M_MAIN ] );
}
# Add menu bar.
$target->SetMenuBar($mb);
return $mb;
}
push( @EXPORT, "setup_menubar", "update_menubar" );
################ ################
sub savewinpos( $win, $name ) {
return unless $name eq "main";
( run in 1.311 second using v1.01-cache-2.11-cpan-49f99fa48dc )