mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-31 04:31:15 -06:00 
			
		
		
		
	Clean up Wx imports
This commit is contained in:
		
							parent
							
								
									a0f8078ee1
								
							
						
					
					
						commit
						7746040af5
					
				
					 5 changed files with 96 additions and 106 deletions
				
			
		|  | @ -9,16 +9,16 @@ use Slic3r::GUI::OptionsGroup; | ||||||
| use Slic3r::GUI::SkeinPanel; | use Slic3r::GUI::SkeinPanel; | ||||||
| use Slic3r::GUI::Tab; | use Slic3r::GUI::Tab; | ||||||
| 
 | 
 | ||||||
| use Wx 0.9901 qw(:sizer :frame wxID_EXIT wxID_ABOUT); | use Wx 0.9901 qw(:bitmap :dialog :frame :icon :id :systemsettings); | ||||||
| use Wx::Event qw(EVT_MENU EVT_CLOSE); | use Wx::Event qw(EVT_CLOSE EVT_MENU); | ||||||
| use base 'Wx::App'; | use base 'Wx::App'; | ||||||
| 
 | 
 | ||||||
| my $growler; | my $growler; | ||||||
| our $datadir; | our $datadir; | ||||||
| 
 | 
 | ||||||
| our $small_font = Wx::SystemSettings::GetFont(&Wx::wxSYS_DEFAULT_GUI_FONT); | our $small_font = Wx::SystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); | ||||||
| $small_font->SetPointSize(11) if !&Wx::wxMSW; | $small_font->SetPointSize(11) if !&Wx::wxMSW; | ||||||
| our $medium_font = Wx::SystemSettings::GetFont(&Wx::wxSYS_DEFAULT_GUI_FONT); | our $medium_font = Wx::SystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); | ||||||
| $medium_font->SetPointSize(12); | $medium_font->SetPointSize(12); | ||||||
| 
 | 
 | ||||||
| sub OnInit { | sub OnInit { | ||||||
|  | @ -52,7 +52,7 @@ sub OnInit { | ||||||
|     # application frame |     # application frame | ||||||
|     Wx::Image::AddHandler(Wx::PNGHandler->new); |     Wx::Image::AddHandler(Wx::PNGHandler->new); | ||||||
|     my $frame = Wx::Frame->new(undef, -1, 'Slic3r', [-1, -1], [760,520], wxDEFAULT_FRAME_STYLE); |     my $frame = Wx::Frame->new(undef, -1, 'Slic3r', [-1, -1], [760,520], wxDEFAULT_FRAME_STYLE); | ||||||
|     $frame->SetIcon(Wx::Icon->new("$Slic3r::var/Slic3r_128px.png", &Wx::wxBITMAP_TYPE_PNG) ); |     $frame->SetIcon(Wx::Icon->new("$Slic3r::var/Slic3r_128px.png", wxBITMAP_TYPE_PNG) ); | ||||||
|     $frame->{skeinpanel} = Slic3r::GUI::SkeinPanel->new($frame); |     $frame->{skeinpanel} = Slic3r::GUI::SkeinPanel->new($frame); | ||||||
|      |      | ||||||
|     # status bar |     # status bar | ||||||
|  | @ -127,7 +127,7 @@ sub catch_error { | ||||||
|     my ($self, $cb, $message_dialog) = @_; |     my ($self, $cb, $message_dialog) = @_; | ||||||
|     if (my $err = $@) { |     if (my $err = $@) { | ||||||
|         $cb->() if $cb; |         $cb->() if $cb; | ||||||
|         my @params = ($err, 'Error', &Wx::wxOK | &Wx::wxICON_ERROR); |         my @params = ($err, 'Error', wxOK | wxICON_ERROR); | ||||||
|         $message_dialog |         $message_dialog | ||||||
|             ? $message_dialog->(@params) |             ? $message_dialog->(@params) | ||||||
|             : Wx::MessageDialog->new($self, @params)->ShowModal; |             : Wx::MessageDialog->new($self, @params)->ShowModal; | ||||||
|  | @ -139,7 +139,7 @@ sub catch_error { | ||||||
| sub show_error { | sub show_error { | ||||||
|     my $self = shift; |     my $self = shift; | ||||||
|     my ($message) = @_; |     my ($message) = @_; | ||||||
|     Wx::MessageDialog->new($self, $message, 'Error', &Wx::wxOK | &Wx::wxICON_ERROR)->ShowModal; |     Wx::MessageDialog->new($self, $message, 'Error', wxOK | wxICON_ERROR)->ShowModal; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| sub fatal_error { | sub fatal_error { | ||||||
|  | @ -152,7 +152,7 @@ sub warning_catcher { | ||||||
|     my ($self, $message_dialog) = @_; |     my ($self, $message_dialog) = @_; | ||||||
|     return sub { |     return sub { | ||||||
|         my $message = shift; |         my $message = shift; | ||||||
|         my @params = ($message, 'Warning', &Wx::wxOK | &Wx::wxICON_WARNING); |         my @params = ($message, 'Warning', wxOK | wxICON_WARNING); | ||||||
|         $message_dialog |         $message_dialog | ||||||
|             ? $message_dialog->(@params) |             ? $message_dialog->(@params) | ||||||
|             : Wx::MessageDialog->new($self, @params)->ShowModal; |             : Wx::MessageDialog->new($self, @params)->ShowModal; | ||||||
|  | @ -169,6 +169,7 @@ sub notify { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| package Slic3r::GUI::ProgressStatusBar; | package Slic3r::GUI::ProgressStatusBar; | ||||||
|  | use Wx qw(:gauge); | ||||||
| use base 'Wx::StatusBar'; | use base 'Wx::StatusBar'; | ||||||
| 
 | 
 | ||||||
| sub new { | sub new { | ||||||
|  | @ -178,7 +179,7 @@ sub new { | ||||||
|     $self->{_changed} = 0; |     $self->{_changed} = 0; | ||||||
|     $self->{busy} = 0; |     $self->{busy} = 0; | ||||||
|     $self->{timer} = Wx::Timer->new($self); |     $self->{timer} = Wx::Timer->new($self); | ||||||
|     $self->{prog} = Wx::Gauge->new($self, &Wx::wxGA_HORIZONTAL, 100, [-1,-1], [-1,-1]); |     $self->{prog} = Wx::Gauge->new($self, wxGA_HORIZONTAL, 100, [-1,-1], [-1,-1]); | ||||||
|     $self->{prog}->Hide; |     $self->{prog}->Hide; | ||||||
|     $self->{cancelbutton} = Wx::Button->new($self, -1, "Cancel", [-1,-1], [-1,8]); |     $self->{cancelbutton} = Wx::Button->new($self, -1, "Cancel", [-1,-1], [-1,8]); | ||||||
|     $self->{cancelbutton}->Hide; |     $self->{cancelbutton}->Hide; | ||||||
|  |  | ||||||
|  | @ -2,8 +2,8 @@ package Slic3r::GUI::OptionsGroup; | ||||||
| use strict; | use strict; | ||||||
| use warnings; | use warnings; | ||||||
| 
 | 
 | ||||||
| use Wx qw(:sizer wxSYS_DEFAULT_GUI_FONT); | use Wx qw(:combobox :font :misc :sizer :systemsettings :textctrl); | ||||||
| use Wx::Event qw(EVT_TEXT EVT_SPINCTRL EVT_CHECKBOX EVT_COMBOBOX); | use Wx::Event qw(EVT_CHECKBOX EVT_COMBOBOX EVT_SPINCTRL EVT_TEXT); | ||||||
| use base 'Wx::StaticBoxSizer'; | use base 'Wx::StaticBoxSizer'; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | @ -19,12 +19,12 @@ sub new { | ||||||
|     my $self = $class->SUPER::new($box, wxVERTICAL); |     my $self = $class->SUPER::new($box, wxVERTICAL); | ||||||
|      |      | ||||||
|     my $grid_sizer = Wx::FlexGridSizer->new(scalar(@{$p{options}}), 2, ($p{no_labels} ? 1 : 2), 0); |     my $grid_sizer = Wx::FlexGridSizer->new(scalar(@{$p{options}}), 2, ($p{no_labels} ? 1 : 2), 0); | ||||||
|     $grid_sizer->SetFlexibleDirection(&Wx::wxHORIZONTAL); |     $grid_sizer->SetFlexibleDirection(wxHORIZONTAL); | ||||||
|     $grid_sizer->AddGrowableCol($p{no_labels} ? 0 : 1); |     $grid_sizer->AddGrowableCol($p{no_labels} ? 0 : 1); | ||||||
|      |      | ||||||
|     # grab the default font, to fix Windows font issues/keep things consistent |     # grab the default font, to fix Windows font issues/keep things consistent | ||||||
|     my $bold_font = Wx::SystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); |     my $bold_font = Wx::SystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); | ||||||
|     $bold_font->SetWeight(&Wx::wxFONTWEIGHT_BOLD); |     $bold_font->SetWeight(wxFONTWEIGHT_BOLD); | ||||||
|     my $sidetext_font = Wx::SystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); |     my $sidetext_font = Wx::SystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); | ||||||
|      |      | ||||||
|     my $onChange = $p{on_change} || sub {}; |     my $onChange = $p{on_change} || sub {}; | ||||||
|  | @ -33,7 +33,7 @@ sub new { | ||||||
|         my $opt = $Slic3r::Config::Options->{$opt_key}; |         my $opt = $Slic3r::Config::Options->{$opt_key}; | ||||||
|         my $label; |         my $label; | ||||||
|         if (!$p{no_labels}) { |         if (!$p{no_labels}) { | ||||||
|             $label = Wx::StaticText->new($parent, -1, "$opt->{label}:", Wx::wxDefaultPosition, [$p{label_width} || 180, -1]); |             $label = Wx::StaticText->new($parent, -1, "$opt->{label}:", wxDefaultPosition, [$p{label_width} || 180, -1]); | ||||||
|             $label->Wrap($p{label_width} || 180) ;  # needed to avoid Linux/GTK bug |             $label->Wrap($p{label_width} || 180) ;  # needed to avoid Linux/GTK bug | ||||||
|             $grid_sizer->Add($label); |             $grid_sizer->Add($label); | ||||||
|              |              | ||||||
|  | @ -45,17 +45,17 @@ sub new { | ||||||
|         my $field; |         my $field; | ||||||
|         if ($opt->{type} =~ /^(i|f|s|s@)$/) { |         if ($opt->{type} =~ /^(i|f|s|s@)$/) { | ||||||
|             my $style = 0; |             my $style = 0; | ||||||
|             $style = &Wx::wxTE_MULTILINE if $opt->{multiline}; |             $style = wxTE_MULTILINE if $opt->{multiline}; | ||||||
|             my $size = Wx::Size->new($opt->{width} || -1, $opt->{height} || -1); |             my $size = Wx::Size->new($opt->{width} || -1, $opt->{height} || -1); | ||||||
|              |              | ||||||
|             my ($get, $set) = $opt->{type} eq 's@' ? qw(serialize deserialize) : qw(get_raw set); |             my ($get, $set) = $opt->{type} eq 's@' ? qw(serialize deserialize) : qw(get_raw set); | ||||||
|              |              | ||||||
|             if ($opt->{type} eq 'i') { |             if ($opt->{type} eq 'i') { | ||||||
|                 my $value = Slic3r::Config->$get($opt_key); |                 my $value = Slic3r::Config->$get($opt_key); | ||||||
|                 $field = Wx::SpinCtrl->new($parent, -1, $value, Wx::wxDefaultPosition, $size, $style, $opt->{min} || 0, $opt->{max} || 100, $value); |                 $field = Wx::SpinCtrl->new($parent, -1, $value, wxDefaultPosition, $size, $style, $opt->{min} || 0, $opt->{max} || 100, $value); | ||||||
|                 EVT_SPINCTRL($parent, $field, sub { Slic3r::Config->$set($opt_key, $field->GetValue); $onChange->($opt_key) }); |                 EVT_SPINCTRL($parent, $field, sub { Slic3r::Config->$set($opt_key, $field->GetValue); $onChange->($opt_key) }); | ||||||
|             } else { |             } else { | ||||||
|                 $field = Wx::TextCtrl->new($parent, -1, Slic3r::Config->$get($opt_key), Wx::wxDefaultPosition, $size, $style); |                 $field = Wx::TextCtrl->new($parent, -1, Slic3r::Config->$get($opt_key), wxDefaultPosition, $size, $style); | ||||||
|                 EVT_TEXT($parent, $field, sub { Slic3r::Config->$set($opt_key, $field->GetValue); $onChange->($opt_key) }); |                 EVT_TEXT($parent, $field, sub { Slic3r::Config->$set($opt_key, $field->GetValue); $onChange->($opt_key) }); | ||||||
|             } |             } | ||||||
|             $reload_callbacks{$opt_key} = sub { $field->SetValue(Slic3r::Config->$get($opt_key)) }; |             $reload_callbacks{$opt_key} = sub { $field->SetValue(Slic3r::Config->$get($opt_key)) }; | ||||||
|  | @ -70,9 +70,9 @@ sub new { | ||||||
|             my $value = Slic3r::Config->get_raw($opt_key); |             my $value = Slic3r::Config->get_raw($opt_key); | ||||||
|             my @items = ( |             my @items = ( | ||||||
|                 Wx::StaticText->new($parent, -1, "x:"), |                 Wx::StaticText->new($parent, -1, "x:"), | ||||||
|                 my $x_field = Wx::TextCtrl->new($parent, -1, $value->[0], Wx::wxDefaultPosition, $field_size), |                 my $x_field = Wx::TextCtrl->new($parent, -1, $value->[0], wxDefaultPosition, $field_size), | ||||||
|                 Wx::StaticText->new($parent, -1, "  y:"), |                 Wx::StaticText->new($parent, -1, "  y:"), | ||||||
|                 my $y_field = Wx::TextCtrl->new($parent, -1, $value->[1], Wx::wxDefaultPosition, $field_size), |                 my $y_field = Wx::TextCtrl->new($parent, -1, $value->[1], wxDefaultPosition, $field_size), | ||||||
|             ); |             ); | ||||||
|             $field->Add($_) for @items; |             $field->Add($_) for @items; | ||||||
|             if ($opt->{tooltip}) { |             if ($opt->{tooltip}) { | ||||||
|  | @ -93,7 +93,7 @@ sub new { | ||||||
|             }; |             }; | ||||||
|             $fields{$opt_key} = [$x_field, $y_field]; |             $fields{$opt_key} = [$x_field, $y_field]; | ||||||
|         } elsif ($opt->{type} eq 'select') { |         } elsif ($opt->{type} eq 'select') { | ||||||
|             $field = Wx::ComboBox->new($parent, -1, "", Wx::wxDefaultPosition, Wx::wxDefaultSize, $opt->{labels} || $opt->{values}, &Wx::wxCB_READONLY); |             $field = Wx::ComboBox->new($parent, -1, "", wxDefaultPosition, wxDefaultSize, $opt->{labels} || $opt->{values}, wxCB_READONLY); | ||||||
|             EVT_COMBOBOX($parent, $field, sub { |             EVT_COMBOBOX($parent, $field, sub { | ||||||
|                 Slic3r::Config->set($opt_key, $opt->{values}[$field->GetSelection]); |                 Slic3r::Config->set($opt_key, $opt->{values}[$field->GetSelection]); | ||||||
|                 $onChange->($opt_key); |                 $onChange->($opt_key); | ||||||
|  | @ -109,14 +109,14 @@ sub new { | ||||||
|         $label->SetToolTipString($opt->{tooltip}) if $label && $opt->{tooltip}; |         $label->SetToolTipString($opt->{tooltip}) if $label && $opt->{tooltip}; | ||||||
|         $field->SetToolTipString($opt->{tooltip}) if $opt->{tooltip} && $field->can('SetToolTipString'); |         $field->SetToolTipString($opt->{tooltip}) if $opt->{tooltip} && $field->can('SetToolTipString'); | ||||||
|         if ($opt->{sidetext}) { |         if ($opt->{sidetext}) { | ||||||
|             my $sizer = Wx::BoxSizer->new(&Wx::wxHORIZONTAL); |             my $sizer = Wx::BoxSizer->new(wxHORIZONTAL); | ||||||
|             $sizer->Add($field); |             $sizer->Add($field); | ||||||
|             my $sidetext = Wx::StaticText->new($parent, -1, $opt->{sidetext}, Wx::wxDefaultPosition, [-1, -1]); |             my $sidetext = Wx::StaticText->new($parent, -1, $opt->{sidetext}, wxDefaultPosition, [-1, -1]); | ||||||
|             $sidetext->SetFont($sidetext_font); |             $sidetext->SetFont($sidetext_font); | ||||||
|             $sizer->Add($sidetext, 0, &Wx::wxLEFT | &Wx::wxALIGN_CENTER_VERTICAL , 4); |             $sizer->Add($sidetext, 0, wxLEFT | wxALIGN_CENTER_VERTICAL , 4); | ||||||
|             $grid_sizer->Add($sizer); |             $grid_sizer->Add($sizer); | ||||||
|         } else { |         } else { | ||||||
|             $grid_sizer->Add($field, 0, $opt->{full_width} ? &Wx::wxEXPAND : 0); |             $grid_sizer->Add($field, 0, $opt->{full_width} ? wxEXPAND : 0); | ||||||
|         } |         } | ||||||
|         $fields{$opt_key} ||= [$field]; |         $fields{$opt_key} ||= [$field]; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  | @ -8,10 +8,8 @@ use Math::ConvexHull qw(convex_hull); | ||||||
| use Slic3r::Geometry qw(X Y Z X1 Y1 X2 Y2 scale unscale); | use Slic3r::Geometry qw(X Y Z X1 Y1 X2 Y2 scale unscale); | ||||||
| use Slic3r::Geometry::Clipper qw(JT_ROUND); | use Slic3r::Geometry::Clipper qw(JT_ROUND); | ||||||
| use threads::shared qw(shared_clone); | use threads::shared qw(shared_clone); | ||||||
| use Wx qw(:sizer :progressdialog wxOK wxICON_INFORMATION wxICON_WARNING wxICON_ERROR wxICON_QUESTION | use Wx qw(:bitmap :brush :button :dialog :filedialog :font :icon :id :listctrl :pen :sizer :toolbar :window); | ||||||
|     wxOK wxCANCEL wxID_OK wxFD_OPEN wxFD_SAVE wxDEFAULT wxNORMAL); | use Wx::Event qw(EVT_BUTTON EVT_COMMAND EVT_LIST_ITEM_DESELECTED EVT_LIST_ITEM_SELECTED EVT_MOUSE_EVENTS EVT_PAINT EVT_TOOL); | ||||||
| use Wx::Event qw(EVT_BUTTON EVT_PAINT EVT_MOUSE_EVENTS EVT_LIST_ITEM_SELECTED EVT_LIST_ITEM_DESELECTED |  | ||||||
|     EVT_COMMAND EVT_TOOL); |  | ||||||
| use base 'Wx::Panel'; | use base 'Wx::Panel'; | ||||||
| 
 | 
 | ||||||
| use constant TB_MORE    => 1; | use constant TB_MORE    => 1; | ||||||
|  | @ -38,53 +36,53 @@ sub new { | ||||||
|     EVT_PAINT($self->{canvas}, \&repaint); |     EVT_PAINT($self->{canvas}, \&repaint); | ||||||
|     EVT_MOUSE_EVENTS($self->{canvas}, \&mouse_event); |     EVT_MOUSE_EVENTS($self->{canvas}, \&mouse_event); | ||||||
|      |      | ||||||
|     $self->{objects_brush} = Wx::Brush->new(Wx::Colour->new(210,210,210), &Wx::wxSOLID); |     $self->{objects_brush} = Wx::Brush->new(Wx::Colour->new(210,210,210), wxSOLID); | ||||||
|     $self->{selected_brush} = Wx::Brush->new(Wx::Colour->new(255,128,128), &Wx::wxSOLID); |     $self->{selected_brush} = Wx::Brush->new(Wx::Colour->new(255,128,128), wxSOLID); | ||||||
|     $self->{transparent_brush} = Wx::Brush->new(Wx::Colour->new(0,0,0), &Wx::wxTRANSPARENT); |     $self->{transparent_brush} = Wx::Brush->new(Wx::Colour->new(0,0,0), wxTRANSPARENT); | ||||||
|     $self->{grid_pen} = Wx::Pen->new(Wx::Colour->new(230,230,230), 1, &Wx::wxSOLID); |     $self->{grid_pen} = Wx::Pen->new(Wx::Colour->new(230,230,230), 1, wxSOLID); | ||||||
|     $self->{print_center_pen} = Wx::Pen->new(Wx::Colour->new(200,200,200), 1, &Wx::wxSOLID); |     $self->{print_center_pen} = Wx::Pen->new(Wx::Colour->new(200,200,200), 1, wxSOLID); | ||||||
|     $self->{clearance_pen} = Wx::Pen->new(Wx::Colour->new(0,0,200), 1, &Wx::wxSOLID); |     $self->{clearance_pen} = Wx::Pen->new(Wx::Colour->new(0,0,200), 1, wxSOLID); | ||||||
|     $self->{skirt_pen} = Wx::Pen->new(Wx::Colour->new(150,150,150), 1, &Wx::wxSOLID); |     $self->{skirt_pen} = Wx::Pen->new(Wx::Colour->new(150,150,150), 1, wxSOLID); | ||||||
|      |      | ||||||
|     $self->{list} = Wx::ListView->new($self, -1, [-1, -1], [-1, 180], &Wx::wxLC_SINGLE_SEL | &Wx::wxLC_REPORT | &Wx::wxBORDER_DEFAULT); |     $self->{list} = Wx::ListView->new($self, -1, [-1, -1], [-1, 180], wxLC_SINGLE_SEL | wxLC_REPORT | wxBORDER_DEFAULT); | ||||||
|     $self->{list}->InsertColumn(0, "Name", &Wx::wxLIST_FORMAT_LEFT, 300); |     $self->{list}->InsertColumn(0, "Name", wxLIST_FORMAT_LEFT, 300); | ||||||
|     $self->{list}->InsertColumn(1, "Copies", &Wx::wxLIST_FORMAT_CENTER, 50); |     $self->{list}->InsertColumn(1, "Copies", wxLIST_FORMAT_CENTER, 50); | ||||||
|     $self->{list}->InsertColumn(2, "Scale", &Wx::wxLIST_FORMAT_CENTER, &Wx::wxLIST_AUTOSIZE_USEHEADER); |     $self->{list}->InsertColumn(2, "Scale", wxLIST_FORMAT_CENTER, wxLIST_AUTOSIZE_USEHEADER); | ||||||
|     EVT_LIST_ITEM_SELECTED($self, $self->{list}, \&list_item_selected); |     EVT_LIST_ITEM_SELECTED($self, $self->{list}, \&list_item_selected); | ||||||
|     EVT_LIST_ITEM_DESELECTED($self, $self->{list}, \&list_item_deselected); |     EVT_LIST_ITEM_DESELECTED($self, $self->{list}, \&list_item_deselected); | ||||||
|      |      | ||||||
|     # toolbar for object manipulation |     # toolbar for object manipulation | ||||||
|     if (!&Wx::wxMSW) { |     if (!&Wx::wxMSW) { | ||||||
|         Wx::ToolTip::Enable(1); |         Wx::ToolTip::Enable(1); | ||||||
|         $self->{htoolbar} = Wx::ToolBar->new($self, -1, [-1, -1], [-1, -1], &Wx::wxTB_HORIZONTAL | &Wx::wxTB_HORZ_TEXT); |         $self->{htoolbar} = Wx::ToolBar->new($self, -1, [-1, -1], [-1, -1], wxTB_HORIZONTAL | wxTB_HORZ_TEXT); | ||||||
|         $self->{htoolbar}->AddTool(TB_MORE, "More", Wx::Bitmap->new("$Slic3r::var/add.png", &Wx::wxBITMAP_TYPE_PNG), ''); |         $self->{htoolbar}->AddTool(TB_MORE, "More", Wx::Bitmap->new("$Slic3r::var/add.png", wxBITMAP_TYPE_PNG), ''); | ||||||
|         $self->{htoolbar}->AddTool(TB_LESS, "Less", Wx::Bitmap->new("$Slic3r::var/delete.png", &Wx::wxBITMAP_TYPE_PNG), ''); |         $self->{htoolbar}->AddTool(TB_LESS, "Less", Wx::Bitmap->new("$Slic3r::var/delete.png", wxBITMAP_TYPE_PNG), ''); | ||||||
|         $self->{htoolbar}->AddSeparator; |         $self->{htoolbar}->AddSeparator; | ||||||
|         $self->{htoolbar}->AddTool(TB_45CCW, "45° ccw", Wx::Bitmap->new("$Slic3r::var/arrow_rotate_anticlockwise.png", &Wx::wxBITMAP_TYPE_PNG), ''); |         $self->{htoolbar}->AddTool(TB_45CCW, "45° ccw", Wx::Bitmap->new("$Slic3r::var/arrow_rotate_anticlockwise.png", wxBITMAP_TYPE_PNG), ''); | ||||||
|         $self->{htoolbar}->AddTool(TB_45CW, "45° cw", Wx::Bitmap->new("$Slic3r::var/arrow_rotate_clockwise.png", &Wx::wxBITMAP_TYPE_PNG), ''); |         $self->{htoolbar}->AddTool(TB_45CW, "45° cw", Wx::Bitmap->new("$Slic3r::var/arrow_rotate_clockwise.png", wxBITMAP_TYPE_PNG), ''); | ||||||
|         $self->{htoolbar}->AddTool(TB_ROTATE, "Rotate...", Wx::Bitmap->new("$Slic3r::var/arrow_rotate_clockwise.png", &Wx::wxBITMAP_TYPE_PNG), ''); |         $self->{htoolbar}->AddTool(TB_ROTATE, "Rotate...", Wx::Bitmap->new("$Slic3r::var/arrow_rotate_clockwise.png", wxBITMAP_TYPE_PNG), ''); | ||||||
|         $self->{htoolbar}->AddSeparator; |         $self->{htoolbar}->AddSeparator; | ||||||
|         $self->{htoolbar}->AddTool(TB_SCALE, "Scale...", Wx::Bitmap->new("$Slic3r::var/arrow_out.png", &Wx::wxBITMAP_TYPE_PNG), ''); |         $self->{htoolbar}->AddTool(TB_SCALE, "Scale...", Wx::Bitmap->new("$Slic3r::var/arrow_out.png", wxBITMAP_TYPE_PNG), ''); | ||||||
|         $self->{htoolbar}->AddSeparator; |         $self->{htoolbar}->AddSeparator; | ||||||
|         $self->{htoolbar}->AddTool(TB_SPLIT, "Split", Wx::Bitmap->new("$Slic3r::var/shape_ungroup.png", &Wx::wxBITMAP_TYPE_PNG), ''); |         $self->{htoolbar}->AddTool(TB_SPLIT, "Split", Wx::Bitmap->new("$Slic3r::var/shape_ungroup.png", wxBITMAP_TYPE_PNG), ''); | ||||||
|     } else { |     } else { | ||||||
|         my %tbar_buttons = (increase => "More", decrease => "Less", rotate45ccw => "45°", rotate45cw => "45°", |         my %tbar_buttons = (increase => "More", decrease => "Less", rotate45ccw => "45°", rotate45cw => "45°", | ||||||
|             rotate => "Rotate…", changescale => "Scale…", split => "Split"); |             rotate => "Rotate…", changescale => "Scale…", split => "Split"); | ||||||
|         $self->{btoolbar} = Wx::BoxSizer->new(wxHORIZONTAL); |         $self->{btoolbar} = Wx::BoxSizer->new(wxHORIZONTAL); | ||||||
|         for (qw(increase decrease rotate45ccw rotate45cw rotate changescale split)) { |         for (qw(increase decrease rotate45ccw rotate45cw rotate changescale split)) { | ||||||
|             $self->{"btn_$_"} = Wx::Button->new($self, -1, $tbar_buttons{$_}, [-1,-1], [-1,-1], &Wx::wxBU_EXACTFIT); |             $self->{"btn_$_"} = Wx::Button->new($self, -1, $tbar_buttons{$_}, [-1,-1], [-1,-1], wxBU_EXACTFIT); | ||||||
|             $self->{btoolbar}->Add($self->{"btn_$_"}); |             $self->{btoolbar}->Add($self->{"btn_$_"}); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|      |      | ||||||
|     # general buttons |     # general buttons | ||||||
|     $self->{btn_load} = Wx::Button->new($self, -1, "Add…", [-1,-1], [-1,-1], &Wx::wxBU_LEFT); |     $self->{btn_load} = Wx::Button->new($self, -1, "Add…", [-1,-1], [-1,-1], wxBU_LEFT); | ||||||
|     $self->{btn_remove} = Wx::Button->new($self, -1, "Delete", [-1,-1], [-1,-1], &Wx::wxBU_LEFT); |     $self->{btn_remove} = Wx::Button->new($self, -1, "Delete", [-1,-1], [-1,-1], wxBU_LEFT); | ||||||
|     $self->{btn_reset} = Wx::Button->new($self, -1, "Delete All", [-1,-1], [-1,-1], &Wx::wxBU_LEFT); |     $self->{btn_reset} = Wx::Button->new($self, -1, "Delete All", [-1,-1], [-1,-1], wxBU_LEFT); | ||||||
|     $self->{btn_arrange} = Wx::Button->new($self, -1, "Autoarrange", [-1,-1], [-1,-1], &Wx::wxBU_LEFT); |     $self->{btn_arrange} = Wx::Button->new($self, -1, "Autoarrange", [-1,-1], [-1,-1], wxBU_LEFT); | ||||||
|     $self->{btn_export_gcode} = Wx::Button->new($self, -1, "Export G-code…", [-1,-1], [-1,-1], &Wx::wxBU_LEFT); |     $self->{btn_export_gcode} = Wx::Button->new($self, -1, "Export G-code…", [-1,-1], [-1,-1], wxBU_LEFT); | ||||||
|     $self->{btn_export_gcode}->SetDefault; |     $self->{btn_export_gcode}->SetDefault; | ||||||
|     $self->{btn_export_stl} = Wx::Button->new($self, -1, "Export STL…", [-1,-1], [-1,-1], &Wx::wxBU_LEFT); |     $self->{btn_export_stl} = Wx::Button->new($self, -1, "Export STL…", [-1,-1], [-1,-1], wxBU_LEFT); | ||||||
|      |      | ||||||
|     if (&Wx::wxVERSION_STRING =~ / 2\.9\.[1-9]/) { |     if (&Wx::wxVERSION_STRING =~ / 2\.9\.[1-9]/) { | ||||||
|         my %icons = qw( |         my %icons = qw( | ||||||
|  | @ -104,7 +102,7 @@ sub new { | ||||||
|             split           shape_ungroup.png |             split           shape_ungroup.png | ||||||
|         ); |         ); | ||||||
|         for (grep $self->{"btn_$_"}, keys %icons) { |         for (grep $self->{"btn_$_"}, keys %icons) { | ||||||
|             $self->{"btn_$_"}->SetBitmap(Wx::Bitmap->new("$Slic3r::var/$icons{$_}", &Wx::wxBITMAP_TYPE_PNG)); |             $self->{"btn_$_"}->SetBitmap(Wx::Bitmap->new("$Slic3r::var/$icons{$_}", wxBITMAP_TYPE_PNG)); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|     $self->selection_changed(0); |     $self->selection_changed(0); | ||||||
|  | @ -190,7 +188,7 @@ sub new { | ||||||
|         my $vertical_sizer = Wx::BoxSizer->new(wxVERTICAL); |         my $vertical_sizer = Wx::BoxSizer->new(wxVERTICAL); | ||||||
|         $vertical_sizer->Add($self->{htoolbar}, 0, wxEXPAND, 0) if $self->{htoolbar}; |         $vertical_sizer->Add($self->{htoolbar}, 0, wxEXPAND, 0) if $self->{htoolbar}; | ||||||
|         $vertical_sizer->Add($self->{btoolbar}, 0, wxEXPAND, 0) if $self->{btoolbar}; |         $vertical_sizer->Add($self->{btoolbar}, 0, wxEXPAND, 0) if $self->{btoolbar}; | ||||||
|         $vertical_sizer->Add($list_sizer, 0, wxEXPAND | &Wx::wxBOTTOM, 10); |         $vertical_sizer->Add($list_sizer, 0, wxEXPAND | wxBOTTOM, 10); | ||||||
|         $vertical_sizer->Add($buttons, 0, wxEXPAND); |         $vertical_sizer->Add($buttons, 0, wxEXPAND); | ||||||
|          |          | ||||||
|         my $hsizer = Wx::BoxSizer->new(wxHORIZONTAL); |         my $hsizer = Wx::BoxSizer->new(wxHORIZONTAL); | ||||||
|  | @ -225,7 +223,7 @@ sub load { | ||||||
|     my $self = shift; |     my $self = shift; | ||||||
|      |      | ||||||
|     my $dir = $Slic3r::GUI::SkeinPanel::last_skein_dir || $Slic3r::GUI::SkeinPanel::last_config_dir || ""; |     my $dir = $Slic3r::GUI::SkeinPanel::last_skein_dir || $Slic3r::GUI::SkeinPanel::last_config_dir || ""; | ||||||
|     my $dialog = Wx::FileDialog->new($self, 'Choose one or more files (STL/OBJ/AMF):', $dir, "", $Slic3r::GUI::SkeinPanel::model_wildcard, wxFD_OPEN | &Wx::wxFD_MULTIPLE | &Wx::wxFD_FILE_MUST_EXIST); |     my $dialog = Wx::FileDialog->new($self, 'Choose one or more files (STL/OBJ/AMF):', $dir, "", $Slic3r::GUI::SkeinPanel::model_wildcard, wxFD_OPEN | wxFD_MULTIPLE | wxFD_FILE_MUST_EXIST); | ||||||
|     if ($dialog->ShowModal != wxID_OK) { |     if ($dialog->ShowModal != wxID_OK) { | ||||||
|         $dialog->Destroy; |         $dialog->Destroy; | ||||||
|         return; |         return; | ||||||
|  | @ -443,7 +441,7 @@ sub export_gcode { | ||||||
|     my $self = shift; |     my $self = shift; | ||||||
|      |      | ||||||
|     if ($self->{export_thread}) { |     if ($self->{export_thread}) { | ||||||
|         Wx::MessageDialog->new($self, "Another slicing job is currently running.", 'Error', wxOK | &Wx::wxICON_ERROR)->ShowModal; |         Wx::MessageDialog->new($self, "Another slicing job is currently running.", 'Error', wxOK | wxICON_ERROR)->ShowModal; | ||||||
|         return; |         return; | ||||||
|     } |     } | ||||||
|      |      | ||||||
|  | @ -579,7 +577,7 @@ sub export_stl { | ||||||
|         $output_file = $print->expanded_output_filepath($output_file); |         $output_file = $print->expanded_output_filepath($output_file); | ||||||
|         $output_file =~ s/\.gcode$/.stl/i; |         $output_file =~ s/\.gcode$/.stl/i; | ||||||
|         my $dlg = Wx::FileDialog->new($self, 'Save STL file as:', dirname($output_file), |         my $dlg = Wx::FileDialog->new($self, 'Save STL file as:', dirname($output_file), | ||||||
|             basename($output_file), $Slic3r::GUI::SkeinPanel::model_wildcard, wxFD_SAVE | &Wx::wxFD_OVERWRITE_PROMPT); |             basename($output_file), $Slic3r::GUI::SkeinPanel::model_wildcard, wxFD_SAVE | wxFD_OVERWRITE_PROMPT); | ||||||
|         if ($dlg->ShowModal != wxID_OK) { |         if ($dlg->ShowModal != wxID_OK) { | ||||||
|             $dlg->Destroy; |             $dlg->Destroy; | ||||||
|             return; |             return; | ||||||
|  | @ -692,12 +690,12 @@ sub repaint { | ||||||
|         $dc->DrawLine(0, $size[Y]/2, $size[X], $size[Y]/2); |         $dc->DrawLine(0, $size[Y]/2, $size[X], $size[Y]/2); | ||||||
|         $dc->SetTextForeground(Wx::Colour->new(0,0,0)); |         $dc->SetTextForeground(Wx::Colour->new(0,0,0)); | ||||||
|         $dc->SetFont(Wx::Font->new(10, wxDEFAULT, wxNORMAL, wxNORMAL)); |         $dc->SetFont(Wx::Font->new(10, wxDEFAULT, wxNORMAL, wxNORMAL)); | ||||||
|         $dc->DrawLabel("X = " . $Slic3r::print_center->[X], Wx::Rect->new(0, 0, $self->GetSize->GetWidth, $self->GetSize->GetHeight), &Wx::wxALIGN_CENTER_HORIZONTAL | &Wx::wxALIGN_BOTTOM); |         $dc->DrawLabel("X = " . $Slic3r::print_center->[X], Wx::Rect->new(0, 0, $self->GetSize->GetWidth, $self->GetSize->GetHeight), wxALIGN_CENTER_HORIZONTAL | wxALIGN_BOTTOM); | ||||||
|         $dc->DrawRotatedText("Y = " . $Slic3r::print_center->[Y], 0, $size[Y]/2+15, 90); |         $dc->DrawRotatedText("Y = " . $Slic3r::print_center->[Y], 0, $size[Y]/2+15, 90); | ||||||
|     } |     } | ||||||
|      |      | ||||||
|     # draw frame |     # draw frame | ||||||
|     $dc->SetPen(Wx::wxBLACK_PEN); |     $dc->SetPen(wxBLACK_PEN); | ||||||
|     $dc->SetBrush($parent->{transparent_brush}); |     $dc->SetBrush($parent->{transparent_brush}); | ||||||
|     $dc->DrawRectangle(0, 0, @size); |     $dc->DrawRectangle(0, 0, @size); | ||||||
|      |      | ||||||
|  | @ -705,11 +703,11 @@ sub repaint { | ||||||
|     if (!@{$print->objects}) { |     if (!@{$print->objects}) { | ||||||
|         $dc->SetTextForeground(Wx::Colour->new(150,50,50)); |         $dc->SetTextForeground(Wx::Colour->new(150,50,50)); | ||||||
|         $dc->SetFont(Wx::Font->new(14, wxDEFAULT, wxNORMAL, wxNORMAL)); |         $dc->SetFont(Wx::Font->new(14, wxDEFAULT, wxNORMAL, wxNORMAL)); | ||||||
|         $dc->DrawLabel("Drag your objects here", Wx::Rect->new(0, 0, $self->GetSize->GetWidth, $self->GetSize->GetHeight), &Wx::wxALIGN_CENTER_HORIZONTAL | &Wx::wxALIGN_CENTER_VERTICAL); |         $dc->DrawLabel("Drag your objects here", Wx::Rect->new(0, 0, $self->GetSize->GetWidth, $self->GetSize->GetHeight), wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL); | ||||||
|     } |     } | ||||||
|      |      | ||||||
|     # draw thumbnails |     # draw thumbnails | ||||||
|     $dc->SetPen(Wx::wxBLACK_PEN); |     $dc->SetPen(wxBLACK_PEN); | ||||||
|     @{$parent->{object_previews}} = (); |     @{$parent->{object_previews}} = (); | ||||||
|     for my $obj_idx (0 .. $#{$print->objects}) { |     for my $obj_idx (0 .. $#{$print->objects}) { | ||||||
|         next unless $parent->{thumbnails}[$obj_idx]; |         next unless $parent->{thumbnails}[$obj_idx]; | ||||||
|  | @ -852,7 +850,6 @@ sub _y { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| package Slic3r::GUI::Plater::DropTarget; | package Slic3r::GUI::Plater::DropTarget; | ||||||
| 
 |  | ||||||
| use Wx::DND; | use Wx::DND; | ||||||
| use base 'Wx::FileDropTarget'; | use base 'Wx::FileDropTarget'; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -5,8 +5,7 @@ use utf8; | ||||||
| 
 | 
 | ||||||
| use File::Basename qw(basename dirname); | use File::Basename qw(basename dirname); | ||||||
| use Slic3r::Geometry qw(X Y); | use Slic3r::Geometry qw(X Y); | ||||||
| use Wx qw(:sizer :progressdialog wxOK wxICON_INFORMATION wxICON_WARNING wxICON_ERROR wxICON_QUESTION | use Wx qw(:dialog :filedialog :font :icon :id :misc :notebook :sizer); | ||||||
|     wxOK wxCANCEL wxID_OK wxFD_OPEN wxFD_SAVE wxDEFAULT wxNORMAL); |  | ||||||
| use Wx::Event qw(EVT_BUTTON); | use Wx::Event qw(EVT_BUTTON); | ||||||
| use base 'Wx::Panel'; | use base 'Wx::Panel'; | ||||||
| 
 | 
 | ||||||
|  | @ -21,7 +20,7 @@ sub new { | ||||||
|     my ($parent) = @_; |     my ($parent) = @_; | ||||||
|     my $self = $class->SUPER::new($parent, -1); |     my $self = $class->SUPER::new($parent, -1); | ||||||
|      |      | ||||||
|     my $tabpanel = Wx::Notebook->new($self, -1, Wx::wxDefaultPosition, Wx::wxDefaultSize, &Wx::wxNB_TOP); |     my $tabpanel = Wx::Notebook->new($self, -1, wxDefaultPosition, wxDefaultSize, wxNB_TOP); | ||||||
|     $tabpanel->AddPage($self->{plater} = Slic3r::GUI::Plater->new($tabpanel), "Plater"); |     $tabpanel->AddPage($self->{plater} = Slic3r::GUI::Plater->new($tabpanel), "Plater"); | ||||||
|     $self->{options_tabs} = { |     $self->{options_tabs} = { | ||||||
|         print       => Slic3r::GUI::Tab::Print->new     ($tabpanel, sync_presets_with => $self->{plater}{preset_choosers}{print}), |         print       => Slic3r::GUI::Tab::Print->new     ($tabpanel, sync_presets_with => $self->{plater}{preset_choosers}{print}), | ||||||
|  | @ -49,7 +48,7 @@ sub new { | ||||||
|         $buttons_sizer->Add($load_button, 0, wxRIGHT, 5); |         $buttons_sizer->Add($load_button, 0, wxRIGHT, 5); | ||||||
|         EVT_BUTTON($self, $load_button, sub { $self->load_config }); |         EVT_BUTTON($self, $load_button, sub { $self->load_config }); | ||||||
|          |          | ||||||
|         my $text = Wx::StaticText->new($self, -1, "Remember to check for updates at http://slic3r.org/\nVersion: $Slic3r::VERSION", Wx::wxDefaultPosition, Wx::wxDefaultSize, wxALIGN_RIGHT); |         my $text = Wx::StaticText->new($self, -1, "Remember to check for updates at http://slic3r.org/\nVersion: $Slic3r::VERSION", wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT); | ||||||
|         my $font = Wx::Font->new(10, wxDEFAULT, wxNORMAL, wxNORMAL); |         my $font = Wx::Font->new(10, wxDEFAULT, wxNORMAL, wxNORMAL); | ||||||
|         $text->SetFont($font); |         $text->SetFont($font); | ||||||
|         $buttons_sizer->Add($text, 1, wxEXPAND | wxALIGN_RIGHT); |         $buttons_sizer->Add($text, 1, wxEXPAND | wxALIGN_RIGHT); | ||||||
|  | @ -94,7 +93,7 @@ sub do_slice { | ||||||
| 
 | 
 | ||||||
|         my $input_file; |         my $input_file; | ||||||
|         if (!$params{reslice}) { |         if (!$params{reslice}) { | ||||||
|             my $dialog = Wx::FileDialog->new($self, 'Choose a file to slice (STL/OBJ/AMF):', $dir, "", $model_wildcard, wxFD_OPEN | &Wx::wxFD_FILE_MUST_EXIST); |             my $dialog = Wx::FileDialog->new($self, 'Choose a file to slice (STL/OBJ/AMF):', $dir, "", $model_wildcard, wxFD_OPEN | wxFD_FILE_MUST_EXIST); | ||||||
|             if ($dialog->ShowModal != wxID_OK) { |             if ($dialog->ShowModal != wxID_OK) { | ||||||
|                 $dialog->Destroy; |                 $dialog->Destroy; | ||||||
|                 return; |                 return; | ||||||
|  | @ -192,7 +191,7 @@ sub save_config { | ||||||
|     my $dir = $last_config ? dirname($last_config) : $last_config_dir || $last_skein_dir || ""; |     my $dir = $last_config ? dirname($last_config) : $last_config_dir || $last_skein_dir || ""; | ||||||
|     my $filename = $last_config ? basename($last_config) : "config.ini"; |     my $filename = $last_config ? basename($last_config) : "config.ini"; | ||||||
|     my $dlg = Wx::FileDialog->new($self, 'Save configuration as:', $dir, $filename,  |     my $dlg = Wx::FileDialog->new($self, 'Save configuration as:', $dir, $filename,  | ||||||
|         $ini_wildcard, wxFD_SAVE | &Wx::wxFD_OVERWRITE_PROMPT); |         $ini_wildcard, wxFD_SAVE | wxFD_OVERWRITE_PROMPT); | ||||||
|     if ($dlg->ShowModal == wxID_OK) { |     if ($dlg->ShowModal == wxID_OK) { | ||||||
|         my $file = $dlg->GetPath; |         my $file = $dlg->GetPath; | ||||||
|         $last_config_dir = dirname($file); |         $last_config_dir = dirname($file); | ||||||
|  | @ -207,7 +206,7 @@ sub load_config { | ||||||
|      |      | ||||||
|     my $dir = $last_config ? dirname($last_config) : $last_config_dir || $last_skein_dir || ""; |     my $dir = $last_config ? dirname($last_config) : $last_config_dir || $last_skein_dir || ""; | ||||||
|     my $dlg = Wx::FileDialog->new($self, 'Select configuration to load:', $dir, "config.ini",  |     my $dlg = Wx::FileDialog->new($self, 'Select configuration to load:', $dir, "config.ini",  | ||||||
|         $ini_wildcard, wxFD_OPEN | &Wx::wxFD_FILE_MUST_EXIST); |         $ini_wildcard, wxFD_OPEN | wxFD_FILE_MUST_EXIST); | ||||||
|     if ($dlg->ShowModal == wxID_OK) { |     if ($dlg->ShowModal == wxID_OK) { | ||||||
|         my ($file) = $dlg->GetPaths; |         my ($file) = $dlg->GetPaths; | ||||||
|         $last_config_dir = dirname($file); |         $last_config_dir = dirname($file); | ||||||
|  |  | ||||||
|  | @ -5,14 +5,14 @@ use utf8; | ||||||
| 
 | 
 | ||||||
| use File::Basename qw(basename); | use File::Basename qw(basename); | ||||||
| use List::Util qw(first); | use List::Util qw(first); | ||||||
| use Wx qw(:sizer :progressdialog); | use Wx qw(:bookctrl :dialog :icon :id :sizer :treectrl); | ||||||
| use Wx::Event qw(EVT_TREE_SEL_CHANGED EVT_CHOICE EVT_BUTTON); | use Wx::Event qw(EVT_BUTTON EVT_CHOICE EVT_TREE_SEL_CHANGED); | ||||||
| use base 'Wx::Panel'; | use base 'Wx::Panel'; | ||||||
| 
 | 
 | ||||||
| sub new { | sub new { | ||||||
|     my $class = shift; |     my $class = shift; | ||||||
|     my ($parent, $title, %params) = @_; |     my ($parent, $title, %params) = @_; | ||||||
|     my $self = $class->SUPER::new($parent, -1, [-1,-1], [-1,-1], &Wx::wxBK_LEFT); |     my $self = $class->SUPER::new($parent, -1, [-1,-1], [-1,-1], wxBK_LEFT); | ||||||
|      |      | ||||||
|     $self->{title} = $title; |     $self->{title} = $title; | ||||||
|      |      | ||||||
|  | @ -23,13 +23,13 @@ sub new { | ||||||
|     }); |     }); | ||||||
|      |      | ||||||
|     # horizontal sizer |     # horizontal sizer | ||||||
|     $self->{sizer} = Wx::BoxSizer->new(&Wx::wxHORIZONTAL); |     $self->{sizer} = Wx::BoxSizer->new(wxHORIZONTAL); | ||||||
|     $self->{sizer}->SetSizeHints($self); |     $self->{sizer}->SetSizeHints($self); | ||||||
|     $self->SetSizer($self->{sizer}); |     $self->SetSizer($self->{sizer}); | ||||||
|      |      | ||||||
|     # left vertical sizer |     # left vertical sizer | ||||||
|     my $left_sizer = Wx::BoxSizer->new(&Wx::wxVERTICAL); |     my $left_sizer = Wx::BoxSizer->new(wxVERTICAL); | ||||||
|     $self->{sizer}->Add($left_sizer, 0, &Wx::wxEXPAND); |     $self->{sizer}->Add($left_sizer, 0, wxEXPAND); | ||||||
|      |      | ||||||
|     my $left_col_width = 200; |     my $left_col_width = 200; | ||||||
|      |      | ||||||
|  | @ -41,27 +41,27 @@ sub new { | ||||||
|         $self->{presets_choice}->SetFont($Slic3r::GUI::small_font); |         $self->{presets_choice}->SetFont($Slic3r::GUI::small_font); | ||||||
|          |          | ||||||
|         # buttons |         # buttons | ||||||
|         $self->{btn_save_preset} = Wx::BitmapButton->new($self, -1, Wx::Bitmap->new("$Slic3r::var/disk.png", &Wx::wxBITMAP_TYPE_PNG)); |         $self->{btn_save_preset} = Wx::BitmapButton->new($self, -1, Wx::Bitmap->new("$Slic3r::var/disk.png", wxBITMAP_TYPE_PNG)); | ||||||
|         $self->{btn_delete_preset} = Wx::BitmapButton->new($self, -1, Wx::Bitmap->new("$Slic3r::var/delete.png", &Wx::wxBITMAP_TYPE_PNG)); |         $self->{btn_delete_preset} = Wx::BitmapButton->new($self, -1, Wx::Bitmap->new("$Slic3r::var/delete.png", wxBITMAP_TYPE_PNG)); | ||||||
|         $self->{btn_save_preset}->SetToolTipString("Save current " . lc($title)); |         $self->{btn_save_preset}->SetToolTipString("Save current " . lc($title)); | ||||||
|         $self->{btn_delete_preset}->SetToolTipString("Delete this preset"); |         $self->{btn_delete_preset}->SetToolTipString("Delete this preset"); | ||||||
|         $self->{btn_delete_preset}->Disable; |         $self->{btn_delete_preset}->Disable; | ||||||
|          |          | ||||||
|         ### These cause GTK warnings: |         ### These cause GTK warnings: | ||||||
|         ###my $box = Wx::StaticBox->new($self, -1, "Presets:", [-1, -1], [$left_col_width, 50]); |         ###my $box = Wx::StaticBox->new($self, -1, "Presets:", [-1, -1], [$left_col_width, 50]); | ||||||
|         ###my $hsizer = Wx::StaticBoxSizer->new($box, &Wx::wxHORIZONTAL); |         ###my $hsizer = Wx::StaticBoxSizer->new($box, wxHORIZONTAL); | ||||||
|          |          | ||||||
|         my $hsizer = Wx::BoxSizer->new(&Wx::wxHORIZONTAL); |         my $hsizer = Wx::BoxSizer->new(wxHORIZONTAL); | ||||||
|          |          | ||||||
|         $left_sizer->Add($hsizer, 0, &Wx::wxEXPAND | &Wx::wxBOTTOM, 5); |         $left_sizer->Add($hsizer, 0, wxEXPAND | wxBOTTOM, 5); | ||||||
|         $hsizer->Add($self->{presets_choice}, 1, &Wx::wxRIGHT | &Wx::wxALIGN_CENTER_VERTICAL, 3); |         $hsizer->Add($self->{presets_choice}, 1, wxRIGHT | wxALIGN_CENTER_VERTICAL, 3); | ||||||
|         $hsizer->Add($self->{btn_save_preset}, 0, &Wx::wxALIGN_CENTER_VERTICAL); |         $hsizer->Add($self->{btn_save_preset}, 0, wxALIGN_CENTER_VERTICAL); | ||||||
|         $hsizer->Add($self->{btn_delete_preset}, 0, &Wx::wxALIGN_CENTER_VERTICAL); |         $hsizer->Add($self->{btn_delete_preset}, 0, wxALIGN_CENTER_VERTICAL); | ||||||
|     } |     } | ||||||
|      |      | ||||||
|     # tree |     # tree | ||||||
|     $self->{treectrl} = Wx::TreeCtrl->new($self, -1, [-1, -1], [$left_col_width, -1], &Wx::wxTR_NO_BUTTONS | &Wx::wxTR_HIDE_ROOT | &Wx::wxTR_SINGLE | &Wx::wxTR_NO_LINES); |     $self->{treectrl} = Wx::TreeCtrl->new($self, -1, [-1, -1], [$left_col_width, -1], wxTR_NO_BUTTONS | wxTR_HIDE_ROOT | wxTR_SINGLE | wxTR_NO_LINES); | ||||||
|     $left_sizer->Add($self->{treectrl}, 1, &Wx::wxEXPAND); |     $left_sizer->Add($self->{treectrl}, 1, wxEXPAND); | ||||||
|     $self->{icons} = Wx::ImageList->new(16, 16, 1); |     $self->{icons} = Wx::ImageList->new(16, 16, 1); | ||||||
|     $self->{treectrl}->AssignImageList($self->{icons}); |     $self->{treectrl}->AssignImageList($self->{icons}); | ||||||
|     $self->{iconcount} = -1; |     $self->{iconcount} = -1; | ||||||
|  | @ -73,7 +73,7 @@ sub new { | ||||||
|         $self->{sizer}->Remove(1); |         $self->{sizer}->Remove(1); | ||||||
|         my $page = $self->{pages}->{ $self->{treectrl}->GetItemText($self->{treectrl}->GetSelection) }; |         my $page = $self->{pages}->{ $self->{treectrl}->GetItemText($self->{treectrl}->GetSelection) }; | ||||||
|         $page->Show; |         $page->Show; | ||||||
|         $self->{sizer}->Add($page, 1, &Wx::wxEXPAND | &Wx::wxLEFT, 5); |         $self->{sizer}->Add($page, 1, wxEXPAND | wxLEFT, 5); | ||||||
|         $self->{sizer}->Layout; |         $self->{sizer}->Layout; | ||||||
|     }); |     }); | ||||||
|      |      | ||||||
|  | @ -92,7 +92,7 @@ sub new { | ||||||
|             default => $default, |             default => $default, | ||||||
|             values  => [ map { my $filename = basename($_); $filename =~ /^(.*?)\.ini$/i; $1 } @{$self->{presets}} ], |             values  => [ map { my $filename = basename($_); $filename =~ /^(.*?)\.ini$/i; $1 } @{$self->{presets}} ], | ||||||
|         ); |         ); | ||||||
|         return unless $dlg->ShowModal == &Wx::wxID_OK; |         return unless $dlg->ShowModal == wxID_OK; | ||||||
|          |          | ||||||
|         my $file = sprintf "$Slic3r::GUI::datadir/$self->{presets_group}/%s.ini", $dlg->get_name; |         my $file = sprintf "$Slic3r::GUI::datadir/$self->{presets_group}/%s.ini", $dlg->get_name; | ||||||
|         Slic3r::Config->save($file, $self->{presets_group}); |         Slic3r::Config->save($file, $self->{presets_group}); | ||||||
|  | @ -106,8 +106,8 @@ sub new { | ||||||
|     EVT_BUTTON($self, $self->{btn_delete_preset}, sub { |     EVT_BUTTON($self, $self->{btn_delete_preset}, sub { | ||||||
|         my $i = $self->{presets_choice}->GetSelection; |         my $i = $self->{presets_choice}->GetSelection; | ||||||
|         return if $i == 0;  # this shouldn't happen but let's trap it anyway |         return if $i == 0;  # this shouldn't happen but let's trap it anyway | ||||||
|         my $res = Wx::MessageDialog->new($self, "Are you sure you want to delete the selected preset?", 'Delete Preset', &Wx::wxYES_NO | &Wx::wxNO_DEFAULT | &Wx::wxICON_QUESTION)->ShowModal; |         my $res = Wx::MessageDialog->new($self, "Are you sure you want to delete the selected preset?", 'Delete Preset', wxYES_NO | wxNO_DEFAULT | wxICON_QUESTION)->ShowModal; | ||||||
|         return unless $res == &Wx::wxID_YES; |         return unless $res == wxID_YES; | ||||||
|         if (-e $self->{presets}[$i-1]) { |         if (-e $self->{presets}[$i-1]) { | ||||||
|             unlink $self->{presets}[$i-1]; |             unlink $self->{presets}[$i-1]; | ||||||
|         } |         } | ||||||
|  | @ -159,7 +159,7 @@ sub add_options_page { | ||||||
|     }); |     }); | ||||||
|      |      | ||||||
|     my $bitmap = $icon |     my $bitmap = $icon | ||||||
|         ? Wx::Bitmap->new("$Slic3r::var/$icon", &Wx::wxBITMAP_TYPE_PNG) |         ? Wx::Bitmap->new("$Slic3r::var/$icon", wxBITMAP_TYPE_PNG) | ||||||
|         : undef; |         : undef; | ||||||
|     if ($bitmap) { |     if ($bitmap) { | ||||||
|         $self->{icons}->Add($bitmap); |         $self->{icons}->Add($bitmap); | ||||||
|  | @ -260,8 +260,6 @@ sub sync_presets { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| package Slic3r::GUI::Tab::Print; | package Slic3r::GUI::Tab::Print; | ||||||
| use Wx qw(:sizer :progressdialog); |  | ||||||
| use Wx::Event qw(); |  | ||||||
| use base 'Slic3r::GUI::Tab'; | use base 'Slic3r::GUI::Tab'; | ||||||
| 
 | 
 | ||||||
| sub new { | sub new { | ||||||
|  | @ -366,8 +364,6 @@ sub new { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| package Slic3r::GUI::Tab::Filament; | package Slic3r::GUI::Tab::Filament; | ||||||
| use Wx qw(:sizer :progressdialog); |  | ||||||
| use Wx::Event qw(); |  | ||||||
| use base 'Slic3r::GUI::Tab'; | use base 'Slic3r::GUI::Tab'; | ||||||
| 
 | 
 | ||||||
| sub new { | sub new { | ||||||
|  | @ -408,8 +404,6 @@ sub new { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| package Slic3r::GUI::Tab::Printer; | package Slic3r::GUI::Tab::Printer; | ||||||
| use Wx qw(:sizer :progressdialog); |  | ||||||
| use Wx::Event qw(); |  | ||||||
| use base 'Slic3r::GUI::Tab'; | use base 'Slic3r::GUI::Tab'; | ||||||
| 
 | 
 | ||||||
| sub new { | sub new { | ||||||
|  | @ -463,8 +457,7 @@ sub new { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| package Slic3r::GUI::Tab::Page; | package Slic3r::GUI::Tab::Page; | ||||||
| use Wx qw(:sizer :progressdialog); | use Wx qw(:sizer); | ||||||
| use Wx::Event qw(); |  | ||||||
| use base 'Wx::ScrolledWindow'; | use base 'Wx::ScrolledWindow'; | ||||||
| 
 | 
 | ||||||
| sub new { | sub new { | ||||||
|  | @ -474,7 +467,7 @@ sub new { | ||||||
|      |      | ||||||
|     $self->SetScrollbars(1, 1, 1, 1); |     $self->SetScrollbars(1, 1, 1, 1); | ||||||
|      |      | ||||||
|     $self->{vsizer} = Wx::BoxSizer->new(&Wx::wxVERTICAL); |     $self->{vsizer} = Wx::BoxSizer->new(wxVERTICAL); | ||||||
|     $self->SetSizer($self->{vsizer}); |     $self->SetSizer($self->{vsizer}); | ||||||
|      |      | ||||||
|     if ($params{optgroups}) { |     if ($params{optgroups}) { | ||||||
|  | @ -492,7 +485,7 @@ sub append_optgroup { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| package Slic3r::GUI::SavePresetWindow; | package Slic3r::GUI::SavePresetWindow; | ||||||
| use Wx qw(:sizer); | use Wx qw(:combobox :dialog :id :sizer); | ||||||
| use Wx::Event qw(EVT_BUTTON EVT_TEXT_ENTER); | use Wx::Event qw(EVT_BUTTON EVT_TEXT_ENTER); | ||||||
| use base 'Wx::Dialog'; | use base 'Wx::Dialog'; | ||||||
| 
 | 
 | ||||||
|  | @ -503,15 +496,15 @@ sub new { | ||||||
|      |      | ||||||
|     my $text = Wx::StaticText->new($self, -1, "Save " . lc($params{title}) . " as:", [-1, -1], [-1, -1]); |     my $text = Wx::StaticText->new($self, -1, "Save " . lc($params{title}) . " as:", [-1, -1], [-1, -1]); | ||||||
|     $self->{combo} = Wx::ComboBox->new($self, -1, $params{default}, [-1, -1], [-1, -1], $params{values}, |     $self->{combo} = Wx::ComboBox->new($self, -1, $params{default}, [-1, -1], [-1, -1], $params{values}, | ||||||
|                                        &Wx::wxTE_PROCESS_ENTER); |                                        wxTE_PROCESS_ENTER); | ||||||
|     my $buttons = $self->CreateStdDialogButtonSizer(&Wx::wxOK | &Wx::wxCANCEL); |     my $buttons = $self->CreateStdDialogButtonSizer(wxOK | wxCANCEL); | ||||||
|      |      | ||||||
|     my $sizer = Wx::BoxSizer->new(wxVERTICAL); |     my $sizer = Wx::BoxSizer->new(wxVERTICAL); | ||||||
|     $sizer->Add($text, 0, wxEXPAND | wxTOP | wxLEFT | wxRIGHT, 10); |     $sizer->Add($text, 0, wxEXPAND | wxTOP | wxLEFT | wxRIGHT, 10); | ||||||
|     $sizer->Add($self->{combo}, 0, wxEXPAND | wxLEFT | wxRIGHT, 10); |     $sizer->Add($self->{combo}, 0, wxEXPAND | wxLEFT | wxRIGHT, 10); | ||||||
|     $sizer->Add($buttons, 0, wxEXPAND | wxBOTTOM | wxLEFT | wxRIGHT, 10); |     $sizer->Add($buttons, 0, wxEXPAND | wxBOTTOM | wxLEFT | wxRIGHT, 10); | ||||||
|      |      | ||||||
|     EVT_BUTTON($self, &Wx::wxID_OK, \&accept); |     EVT_BUTTON($self, wxID_OK, \&accept); | ||||||
|     EVT_TEXT_ENTER($self, $self->{combo}, \&accept); |     EVT_TEXT_ENTER($self, $self->{combo}, \&accept); | ||||||
|      |      | ||||||
|     $self->SetSizer($sizer); |     $self->SetSizer($sizer); | ||||||
|  | @ -524,7 +517,7 @@ sub accept { | ||||||
|     my ($self, $event) = @_; |     my ($self, $event) = @_; | ||||||
| 
 | 
 | ||||||
|     if (($self->{chosen_name} = $self->{combo}->GetValue) && $self->{chosen_name} =~ /^[a-z0-9 _-]+$/i) { |     if (($self->{chosen_name} = $self->{combo}->GetValue) && $self->{chosen_name} =~ /^[a-z0-9 _-]+$/i) { | ||||||
|         $self->EndModal(&Wx::wxID_OK); |         $self->EndModal(wxID_OK); | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Henrik Brix Andersen
						Henrik Brix Andersen