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

github.com/prusa3d/PrusaSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authortamasmeszaros <meszaros.q@gmail.com>2018-08-29 19:02:10 +0300
committertamasmeszaros <meszaros.q@gmail.com>2018-08-30 12:54:08 +0300
commit9e2d48ff3b5ad09a65b8039ed9cd6bd9d40db488 (patch)
tree84c3d82d29c0e9aa4171cd44170a4bb622156f0b /lib
parent5ee106fbf9baf114619f2622ef9e991c73a09667 (diff)
Almost working c++ status bar
Signed-off-by: tamasmeszaros <meszaros.q@gmail.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/Slic3r/GUI/MainFrame.pm9
-rw-r--r--lib/Slic3r/GUI/ProgressStatusBar.pm234
2 files changed, 123 insertions, 120 deletions
diff --git a/lib/Slic3r/GUI/MainFrame.pm b/lib/Slic3r/GUI/MainFrame.pm
index 6baefa545..6b932f92f 100644
--- a/lib/Slic3r/GUI/MainFrame.pm
+++ b/lib/Slic3r/GUI/MainFrame.pm
@@ -62,13 +62,14 @@ sub new {
eval { Wx::ToolTip::SetAutoPop(32767) };
# initialize status bar
- $self->{statusbar} = Slic3r::GUI::ProgressStatusBar->new($self, Wx::NewId);
+ $self->{statusbar} = Slic3r::GUI::ProgressStatusBar->new();
+ # $self->{statusbar}->SetParent($self, Wx::NewId);
+ $self->{statusbar}->Embed;
$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}->GetProgId(),
$self->{statusbar}->GetId(),
);
diff --git a/lib/Slic3r/GUI/ProgressStatusBar.pm b/lib/Slic3r/GUI/ProgressStatusBar.pm
index 32fd52680..a696feb7f 100644
--- a/lib/Slic3r/GUI/ProgressStatusBar.pm
+++ b/lib/Slic3r/GUI/ProgressStatusBar.pm
@@ -4,141 +4,143 @@ package Slic3r::GUI::ProgressStatusBar;
use strict;
use warnings;
-use Wx qw(:gauge :misc);
-use base 'Wx::StatusBar';
+# use Wx qw(:gauge :misc);
+# use base 'Wx::StatusBar';
-sub new {
- my $class = shift;
- my $self = $class->SUPER::new(@_);
+our $cancel_cb;
+
+# sub new {
+# my $class = shift;
+# my $self = $class->SUPER::new(@_);
- $self->{busy} = 0;
- $self->{timer} = Wx::Timer->new($self);
- $self->{prog} = Wx::Gauge->new($self, wxGA_HORIZONTAL, 100, wxDefaultPosition, wxDefaultSize);
- $self->{prog}->Hide;
- $self->{cancelbutton} = Wx::Button->new($self, -1, "Cancel", wxDefaultPosition, wxDefaultSize);
- $self->{cancelbutton}->Hide;
+# $self->{busy} = 0;
+# $self->{timer} = Wx::Timer->new($self);
+# $self->{prog} = Wx::Gauge->new($self, wxGA_HORIZONTAL, 100, wxDefaultPosition, wxDefaultSize);
+# $self->{prog}->Hide;
+# $self->{cancelbutton} = Wx::Button->new($self, -1, "Cancel", wxDefaultPosition, wxDefaultSize);
+# $self->{cancelbutton}->Hide;
- $self->SetFieldsCount(3);
- $self->SetStatusWidths(-1, 150, 155);
+# $self->SetFieldsCount(3);
+# $self->SetStatusWidths(-1, 150, 155);
- Wx::Event::EVT_TIMER($self, \&OnTimer, $self->{timer});
- Wx::Event::EVT_SIZE($self, \&OnSize);
- Wx::Event::EVT_BUTTON($self, $self->{cancelbutton}, sub {
- $self->{cancel_cb}->();
- $self->{cancelbutton}->Hide;
- });
+# Wx::Event::EVT_TIMER($self, \&OnTimer, $self->{timer});
+# Wx::Event::EVT_SIZE($self, \&OnSize);
+# Wx::Event::EVT_BUTTON($self, $self->{cancelbutton}, sub {
+# $self->{cancel_cb}->();
+# $self->{cancelbutton}->Hide;
+# });
- return $self;
-}
+# return $self;
+# }
-sub DESTROY {
- my $self = shift;
- $self->{timer}->Stop if $self->{timer} && $self->{timer}->IsRunning;
-}
+# sub DESTROY {
+# my $self = shift;
+# $self->{timer}->Stop if $self->{timer} && $self->{timer}->IsRunning;
+# }
-sub OnSize {
- my ($self, $event) = @_;
+# sub OnSize {
+# my ($self, $event) = @_;
- my %fields = (
- # 0 is reserved for status text
- 1 => $self->{cancelbutton},
- 2 => $self->{prog},
- );
-
- foreach (keys %fields) {
- my $rect = $self->GetFieldRect($_);
- my $offset = &Wx::wxGTK ? 1 : 0; # add a cosmetic 1 pixel offset on wxGTK
- my $pos = [$rect->GetX + $offset, $rect->GetY + $offset];
- $fields{$_}->Move($pos);
- $fields{$_}->SetSize($rect->GetWidth - $offset, $rect->GetHeight);
- }
-
- $event->Skip;
-}
-
-sub OnTimer {
- my ($self, $event) = @_;
+# my %fields = (
+# # 0 is reserved for status text
+# 1 => $self->{cancelbutton},
+# 2 => $self->{prog},
+# );
+
+# foreach (keys %fields) {
+# my $rect = $self->GetFieldRect($_);
+# my $offset = &Wx::wxGTK ? 1 : 0; # add a cosmetic 1 pixel offset on wxGTK
+# my $pos = [$rect->GetX + $offset, $rect->GetY + $offset];
+# $fields{$_}->Move($pos);
+# $fields{$_}->SetSize($rect->GetWidth - $offset, $rect->GetHeight);
+# }
+
+# $event->Skip;
+# }
+
+# sub OnTimer {
+# my ($self, $event) = @_;
- if ($self->{prog}->IsShown) {
- $self->{timer}->Stop;
- }
- $self->{prog}->Pulse if $self->{_busy};
-}
+# if ($self->{prog}->IsShown) {
+# $self->{timer}->Stop;
+# }
+# $self->{prog}->Pulse if $self->{_busy};
+# }
sub SetCancelCallback {
my $self = shift;
my ($cb) = @_;
- $self->{cancel_cb} = $cb;
- $cb ? $self->{cancelbutton}->Show : $self->{cancelbutton}->Hide;
-}
-
-sub Run {
- my $self = shift;
- my $rate = shift || 100;
- if (!$self->{timer}->IsRunning) {
- $self->{timer}->Start($rate);
- }
-}
-
-sub GetProgress {
- my $self = shift;
- return $self->{prog}->GetValue;
-}
-
-sub SetProgress {
- my $self = shift;
- my ($val) = @_;
- if (!$self->{prog}->IsShown) {
- $self->ShowProgress(1);
- }
- if ($val == $self->{prog}->GetRange) {
- $self->{prog}->SetValue(0);
- $self->ShowProgress(0);
- } else {
- $self->{prog}->SetValue($val);
- }
+ $cancel_cb = $cb;
+ # $cb ? $self->{cancelbutton}->Show : $self->{cancelbutton}->Hide;
}
-sub SetRange {
- my $self = shift;
- my ($val) = @_;
+# sub Run {
+# my $self = shift;
+# my $rate = shift || 100;
+# if (!$self->{timer}->IsRunning) {
+# $self->{timer}->Start($rate);
+# }
+# }
+
+# sub GetProgress {
+# my $self = shift;
+# return $self->{prog}->GetValue;
+# }
+
+# sub SetProgress {
+# my $self = shift;
+# my ($val) = @_;
+# if (!$self->{prog}->IsShown) {
+# $self->ShowProgress(1);
+# }
+# if ($val == $self->{prog}->GetRange) {
+# $self->{prog}->SetValue(0);
+# $self->ShowProgress(0);
+# } else {
+# $self->{prog}->SetValue($val);
+# }
+# }
+
+# sub SetRange {
+# my $self = shift;
+# my ($val) = @_;
- if ($val != $self->{prog}->GetRange) {
- $self->{prog}->SetRange($val);
- }
-}
-
-sub ShowProgress {
- my $self = shift;
- my ($show) = @_;
+# if ($val != $self->{prog}->GetRange) {
+# $self->{prog}->SetRange($val);
+# }
+# }
+
+# sub ShowProgress {
+# my $self = shift;
+# my ($show) = @_;
- $self->{prog}->Show($show);
- $self->{prog}->Pulse;
-}
+# $self->{prog}->Show($show);
+# $self->{prog}->Pulse;
+# }
-sub StartBusy {
- my $self = shift;
- my $rate = shift || 100;
+# sub StartBusy {
+# my $self = shift;
+# my $rate = shift || 100;
- $self->{_busy} = 1;
- $self->ShowProgress(1);
- if (!$self->{timer}->IsRunning) {
- $self->{timer}->Start($rate);
- }
-}
-
-sub StopBusy {
- my $self = shift;
+# $self->{_busy} = 1;
+# $self->ShowProgress(1);
+# if (!$self->{timer}->IsRunning) {
+# $self->{timer}->Start($rate);
+# }
+# }
+
+# sub StopBusy {
+# my $self = shift;
- $self->{timer}->Stop;
- $self->ShowProgress(0);
- $self->{prog}->SetValue(0);
- $self->{_busy} = 0;
-}
-
-sub IsBusy {
- my $self = shift;
- return $self->{_busy};
-}
+# $self->{timer}->Stop;
+# $self->ShowProgress(0);
+# $self->{prog}->SetValue(0);
+# $self->{_busy} = 0;
+# }
+
+# sub IsBusy {
+# my $self = shift;
+# return $self->{_busy};
+# }
1;