Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/supermerill/SuperSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Slic3r/GUI/MainFrame.pm')
-rw-r--r--lib/Slic3r/GUI/MainFrame.pm22
1 files changed, 19 insertions, 3 deletions
diff --git a/lib/Slic3r/GUI/MainFrame.pm b/lib/Slic3r/GUI/MainFrame.pm
index ea4a158f4..9d2fd19ce 100644
--- a/lib/Slic3r/GUI/MainFrame.pm
+++ b/lib/Slic3r/GUI/MainFrame.pm
@@ -19,6 +19,7 @@ use Wx::Locale gettext => 'L';
our $qs_last_input_file;
our $qs_last_output_file;
our $last_config;
+our $appController;
# Events to be sent from a C++ Tab implementation:
# 1) To inform about a change of a configuration value.
@@ -31,6 +32,9 @@ sub new {
my $self = $class->SUPER::new(undef, -1, $Slic3r::FORK_NAME . ' - ' . $Slic3r::VERSION, wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_STYLE);
Slic3r::GUI::set_main_frame($self);
+
+ $appController = Slic3r::AppController->new();
+
if ($^O eq 'MSWin32') {
# Load the icon either from the exe, or from the ico file.
my $iconfile = Slic3r::decode_path($FindBin::Bin) . '\slic3r.exe';
@@ -58,10 +62,21 @@ sub new {
eval { Wx::ToolTip::SetAutoPop(32767) };
# initialize status bar
- $self->{statusbar} = Slic3r::GUI::ProgressStatusBar->new($self, -1);
+ $self->{statusbar} = Slic3r::GUI::ProgressStatusBar->new($self, Wx::NewId);
$self->{statusbar}->SetStatusText(L("Version ").$Slic3r::VERSION.L(" - Remember to check for updates at http://github.com/prusa3d/slic3r/releases"));
$self->SetStatusBar($self->{statusbar});
+ # Make the global status bar and its progress indicator available in C++
+ $appController->set_global_progress_indicator(
+ $self->{statusbar}->{prog}->GetId(),
+ $self->{statusbar}->GetId(),
+ );
+
+ $appController->set_model($self->{plater}->{model});
+ $appController->set_print($self->{plater}->{print});
+
+ $self->{plater}->{appController} = $appController;
+
$self->{loaded} = 1;
# initialize layout
@@ -73,7 +88,7 @@ sub new {
$self->Fit;
$self->SetMinSize([760, 490]);
$self->SetSize($self->GetMinSize);
- wxTheApp->restore_window_pos($self, "main_frame");
+ Slic3r::GUI::restore_window_size($self, "main_frame");
$self->Show;
$self->Layout;
}
@@ -86,12 +101,13 @@ sub new {
return;
}
# save window size
- wxTheApp->save_window_pos($self, "main_frame");
+ Slic3r::GUI::save_window_size($self, "main_frame");
# Save the slic3r.ini. Usually the ini file is saved from "on idle" callback,
# but in rare cases it may not have been called yet.
wxTheApp->{app_config}->save;
$self->{plater}->{print} = undef if($self->{plater});
Slic3r::GUI::_3DScene::remove_all_canvases();
+ Slic3r::GUI::deregister_on_request_update_callback();
# propagate event
$event->Skip;
});