package Kephra::Dialog::Notify;
our $VERSION = '0.06';
use strict;
use warnings;
our $dialog;
sub file_changed {
my $file_nr = shift;#Kephra::Document::Data::current_nr();
my $file_path = Kephra::Document::Data::get_attribute('file_path', $file_nr);
my $file_name = Kephra::Document::Data::get_attribute('name', $file_nr);
my $d10n = Kephra::Config::Localisation::strings()->{dialog};
my $g10n = $d10n->{general};
#$Kephra::app{dialog}{notify}{changed}
$dialog = create_raw_dialog(3);
$dialog->SetTitle($file_name . ' ' . $g10n->{changed});
$dialog->{msg}->SetLabel( $d10n->{file}{file_changed_msg} );
$dialog->{filename}->SetValue($file_path);
$dialog->{btn}{1}->SetLabel( $g10n->{reload});
$dialog->{btn}{2}->SetLabel( $g10n->{save_reload} );
$dialog->{btn}{3}->SetLabel( $g10n->{ignore} );
Wx::Event::EVT_BUTTON($dialog, $dialog->{btn}{1}, sub {
quit_dialog();
Kephra::File::reload_current();
} );
Wx::Event::EVT_BUTTON($dialog, $dialog->{btn}{2}, sub {
quit_dialog();
Kephra::File::save_copy_as();
Kephra::File::reload_current()
} );
Wx::Event::EVT_BUTTON($dialog, $dialog->{btn}{3}, sub {
quit_dialog();
} );
#Kephra::Document::Data::get_attribute('did_notify', 'ignore', $file_nr);
ready_dialog($dialog);
}
sub file_deleted {
my $file_nr = shift;#Kephra::Document::current_nr();
my $file_path = Kephra::Document::Data::get_attribute('file_path', $file_nr);
my $file_name = Kephra::Document::Data::get_attribute('name', $file_nr);
my $d10n = Kephra::Config::Localisation::strings()->{dialog};
my $g10n = $d10n->{general};
# $Kephra::app{dialog}{notify}{deleted}
$dialog = create_raw_dialog(4);
$dialog->{msg}->SetLabel( $d10n->{file}{file_deleted_msg} );
$dialog->{btn}{1}->SetLabel( $g10n->{close});
$dialog->{btn}{2}->SetLabel( $d10n->{file}{save_as} );
$dialog->{btn}{3}->SetLabel( $g10n->{save} );
$dialog->{btn}{4}->SetLabel( $g10n->{ignore} );
Wx::Event::EVT_BUTTON($dialog, $dialog->{btn}{1}, sub {
quit_dialog(); Kephra::File::close_current_unsaved()
} );
Wx::Event::EVT_BUTTON($dialog, $dialog->{btn}{2}, sub {
quit_dialog(); Kephra::File::save_as()
} );
Wx::Event::EVT_BUTTON($dialog, $dialog->{btn}{3}, sub {
quit_dialog(); Kephra::File::save_current()
} );
$dialog->SetTitle($file_name . ' ' . $g10n->{deleted});
$dialog->{filename}->SetValue($file_path);
Wx::Event::EVT_BUTTON($dialog, $dialog->{btn}{4}, sub {
quit_dialog();
Kephra::Document::Data::set_attribute('did_notify', 'ignore', $file_nr);
} );
ready_dialog($dialog);
}
sub create_raw_dialog {
my $btn_count = shift || 3;
my $dialog = Wx::Dialog->new(
Kephra::App::Window::_ref(), -1, '', [-1,-1], [361, 145],
&Wx::wxNO_FULL_REPAINT_ON_RESIZE | &Wx::wxSTAY_ON_TOP |
&Wx::wxSYSTEM_MENU | &Wx::wxCAPTION | &Wx::wxCLOSE_BOX ,
);
Kephra::App::Window::load_icon
($dialog, Kephra::Config::filepath
(Kephra::API::settings()->{app}{window}{icon}));
#$dialog->SetBackgroundColour(&Wx::wxWHITE);
Wx::Event::EVT_CLOSE( $dialog, \&quit_dialog );
# starting dialog layout
my $h_sizer = Wx::BoxSizer->new(&Wx::wxHORIZONTAL);
$dialog->{btn}{1} = Wx::Button->new( $dialog, -1, '' );
$h_sizer->Add( $dialog->{btn}{1} ,0, &Wx::wxLEFT, 0);
for my $btn_nr (2 .. $btn_count) {
$dialog->{btn}{$btn_nr} = Wx::Button->new( $dialog, -1, '' );
$h_sizer->Add( $dialog->{btn}{$btn_nr} ,0, &Wx::wxLEFT, 10);
}
$dialog->{msg} = Wx::StaticText->new($dialog, -1, '');
$dialog->{filename} = Wx::TextCtrl->new
( $dialog,-1, '', [-1,-1], [-1,-1], &Wx::wxTE_READONLY | &Wx::wxTE_CENTRE );
my $v_sizer = Wx::BoxSizer->new(&Wx::wxVERTICAL);
$v_sizer->Add( $dialog->{msg} ,1, &Wx::wxCENTER | &Wx::wxTOP , 10 );
$v_sizer->Add( $dialog->{filename},0, &Wx::wxCENTER | &Wx::wxBOTTOM | &Wx::wxGROW, 10 );
$v_sizer->Add( $h_sizer ,0, &Wx::wxALL | &Wx::wxALIGN_CENTER_HORIZONTAL, 10 );
$dialog->SetSizer($v_sizer);
return $dialog;
}
sub ready_dialog {
$dialog = shift;
$dialog->SetAutoLayout(1);
$dialog->CenterOnScreen;
$dialog->ShowModal; #$v_sizer->Fit($dialog);
}
sub quit_dialog {
my ( $win, $event ) = @_;
$dialog->Destroy();
}
1;