package Kephra::App::MainToolBar;
our $VERSION = '0.09';
use strict;
use warnings;
sub _ref { Kephra::ToolBar::_ref( _name(), $_[0]) }
sub _name { 'main' }
sub _ID { _name().'_toolbar' }
sub _config { Kephra::API::settings()->{app}{toolbar} }
sub _win { Kephra::App::Window::_ref() }
sub create {
return until get_visibility();
my $frame = Kephra::App::Window::_ref();
my $bar = $frame->GetToolBar;
# destroy old toolbar if there any
destroy() if $bar;
_ref( $frame->CreateToolBar );
my $bar_def = Kephra::Config::File::load_from_node_data( _config() );
unless ($bar_def) {
$bar_def = Kephra::Config::Tree::get_subtree
( Kephra::Config::Default::toolbars(), _ID() );
}
$bar = Kephra::ToolBar::create( _name(), $bar_def );
}
sub destroy { Kephra::ToolBar::destroy ( _name() ) }
sub get_visibility { _config()->{visible} }
sub switch_visibility { _config()->{visible} ^= 1; show(); }
sub show {
if ( get_visibility() ){
create();
_win()->SetToolBar( _ref() );
} else {
destroy( );
_win()->SetToolBar(undef);
}
}
1;