diff --git a/lib/Slic3r/GUI/MainFrame.pm b/lib/Slic3r/GUI/MainFrame.pm index 09e894a09..f2b8b0772 100644 --- a/lib/Slic3r/GUI/MainFrame.pm +++ b/lib/Slic3r/GUI/MainFrame.pm @@ -157,16 +157,16 @@ sub _init_menubar { { $self->_append_menu_item($fileMenu, "&Load Config…\tCtrl+L", 'Load exported configuration file', sub { $self->load_config_file; - }); + }, undef, 'plugin_add.png'); $self->_append_menu_item($fileMenu, "&Export Config…\tCtrl+E", 'Export current configuration to file', sub { $self->export_config; - }); + }, undef, 'plugin_go.png'); $self->_append_menu_item($fileMenu, "&Load Config Bundle…", 'Load presets from a bundle', sub { $self->load_configbundle; - }); + }, undef, 'lorry_add.png'); $self->_append_menu_item($fileMenu, "&Export Config Bundle…", 'Export all presets to file', sub { $self->export_configbundle; - }); + }, undef, 'lorry_go.png'); $fileMenu->AppendSeparator(); my $repeat; $self->_append_menu_item($fileMenu, "Q&uick Slice…\tCtrl+U", 'Slice file', sub { @@ -174,27 +174,27 @@ sub _init_menubar { $self->quick_slice; $repeat->Enable(defined $Slic3r::GUI::MainFrame::last_input_file); }); - }); + }, undef, 'cog_go.png'); $self->_append_menu_item($fileMenu, "Quick Slice and Save &As…\tCtrl+Alt+U", 'Slice file and save as', sub { wxTheApp->CallAfter(sub { $self->quick_slice(save_as => 1); $repeat->Enable(defined $Slic3r::GUI::MainFrame::last_input_file); }); - }); + }, undef, 'cog_go.png'); $repeat = $self->_append_menu_item($fileMenu, "&Repeat Last Quick Slice\tCtrl+Shift+U", 'Repeat last quick slice', sub { wxTheApp->CallAfter(sub { $self->quick_slice(reslice => 1); }); - }); + }, undef, 'cog_go.png'); $repeat->Enable(0); $fileMenu->AppendSeparator(); $self->_append_menu_item($fileMenu, "Slice to SV&G…\tCtrl+G", 'Slice file to SVG', sub { $self->quick_slice(save_as => 1, export_svg => 1); - }); + }, undef, 'shape_handles.png'); $fileMenu->AppendSeparator(); $self->_append_menu_item($fileMenu, "Repair STL file…", 'Automatically repair an STL file', sub { $self->repair_stl; - }); + }, undef, 'wrench.png'); $fileMenu->AppendSeparator(); $self->_append_menu_item($fileMenu, "Preferences…", 'Application preferences', sub { Slic3r::GUI::Preferences->new($self)->ShowModal; @@ -212,13 +212,13 @@ sub _init_menubar { $self->{plater_menu} = Wx::Menu->new; $self->_append_menu_item($self->{plater_menu}, "Export G-code...", 'Export current plate as G-code', sub { $plater->export_gcode; - }); + }, undef, 'cog_go.png'); $self->_append_menu_item($self->{plater_menu}, "Export plate as STL...", 'Export current plate as STL', sub { $plater->export_stl; - }); + }, undef, 'brick_go.png'); $self->_append_menu_item($self->{plater_menu}, "Export plate as AMF...", 'Export current plate as AMF', sub { $plater->export_amf; - }); + }, undef, 'brick_go.png'); $self->{object_menu} = $self->{plater}->object_menu; $self->on_plater_selection_changed(0); @@ -230,16 +230,16 @@ sub _init_menubar { my $tab_count = $self->{no_plater} ? 3 : 4; $self->_append_menu_item($windowMenu, "Select &Plater Tab\tCtrl+1", 'Show the plater', sub { $self->select_tab(0); - }) unless $self->{no_plater}; + }, undef, 'application_view_tile.png') unless $self->{no_plater}; $self->_append_menu_item($windowMenu, "Select P&rint Settings Tab\tCtrl+2", 'Show the print settings', sub { $self->select_tab($tab_count-3); - }); + }, undef, 'cog.png'); $self->_append_menu_item($windowMenu, "Select &Filament Settings Tab\tCtrl+3", 'Show the filament settings', sub { $self->select_tab($tab_count-2); - }); + }, undef, 'spool.png'); $self->_append_menu_item($windowMenu, "Select Print&er Settings Tab\tCtrl+4", 'Show the printer settings', sub { $self->select_tab($tab_count-1); - }); + }, undef, 'printer_empty.png'); } # Help menu @@ -712,12 +712,22 @@ sub select_tab { } sub _append_menu_item { - my ($self, $menu, $string, $description, $cb, $id) = @_; + my ($self, $menu, $string, $description, $cb, $id, $icon) = @_; $id //= &Wx::NewId(); my $item = $menu->Append($id, $string, $description); + $self->_set_menu_item_icon($item, $icon); + EVT_MENU($self, $id, $cb); return $item; } +sub _set_menu_item_icon { + my ($self, $menuItem, $icon) = @_; + + if ($icon && $Wx::VERSION >= 0.9927) { + $menuItem->SetBitmap(Wx::Bitmap->new("$Slic3r::var/$icon", wxBITMAP_TYPE_PNG)); + } +} + 1; diff --git a/lib/Slic3r/GUI/Plater.pm b/lib/Slic3r/GUI/Plater.pm index 86f2d532e..c44dca8f5 100644 --- a/lib/Slic3r/GUI/Plater.pm +++ b/lib/Slic3r/GUI/Plater.pm @@ -1598,26 +1598,27 @@ sub object_menu { my $menu = Wx::Menu->new; $frame->_append_menu_item($menu, "Delete\tCtrl+Del", 'Remove the selected object', sub { $self->remove; - }); + }, undef, 'brick_delete.png'); $frame->_append_menu_item($menu, "Increase copies\tCtrl++", 'Place one more copy of the selected object', sub { $self->increase; - }); + }, undef, 'add.png'); $frame->_append_menu_item($menu, "Decrease copies\tCtrl+-", 'Remove one copy of the selected object', sub { $self->decrease; - }); + }, undef, 'delete.png'); $frame->_append_menu_item($menu, "Set number of copies…", 'Change the number of copies of the selected object', sub { $self->set_number_of_copies; - }); + }, undef, 'textfield.png'); $menu->AppendSeparator(); $frame->_append_menu_item($menu, "Rotate 45° clockwise", 'Rotate the selected object by 45° clockwise', sub { $self->rotate(-45); - }); + }, undef, 'arrow_rotate_clockwise.png'); $frame->_append_menu_item($menu, "Rotate 45° counter-clockwise", 'Rotate the selected object by 45° counter-clockwise', sub { $self->rotate(+45); - }); + }, undef, 'arrow_rotate_anticlockwise.png'); my $rotateMenu = Wx::Menu->new; - $menu->AppendSubMenu($rotateMenu, "Rotate", 'Rotate the selected object by an arbitrary angle'); + my $rotateMenuItem = $menu->AppendSubMenu($rotateMenu, "Rotate", 'Rotate the selected object by an arbitrary angle'); + $frame->_set_menu_item_icon($rotateMenuItem, 'textfield.png'); $frame->_append_menu_item($rotateMenu, "Around X axis…", 'Rotate the selected object by an arbitrary angle around X axis', sub { $self->rotate(undef, X); }); @@ -1629,7 +1630,8 @@ sub object_menu { }); my $flipMenu = Wx::Menu->new; - $menu->AppendSubMenu($flipMenu, "Flip", 'Mirror the selected object'); + my $flipMenuItem = $menu->AppendSubMenu($flipMenu, "Flip", 'Mirror the selected object'); + $frame->_set_menu_item_icon($flipMenuItem, 'shape_flip_horizontal.png'); $frame->_append_menu_item($flipMenu, "Along X axis…", 'Mirror the selected object along the X axis', sub { $self->flip(X); }); @@ -1641,7 +1643,8 @@ sub object_menu { }); my $scaleMenu = Wx::Menu->new; - $menu->AppendSubMenu($scaleMenu, "Scale", 'Scale the selected object along a single axis'); + my $scaleMenuItem = $menu->AppendSubMenu($scaleMenu, "Scale", 'Scale the selected object along a single axis'); + $frame->_set_menu_item_icon($scaleMenuItem, 'arrow_out.png'); $frame->_append_menu_item($scaleMenu, "Uniformly…", 'Scale the selected object along the XYZ axes', sub { $self->changescale(undef); }); @@ -1657,18 +1660,18 @@ sub object_menu { $frame->_append_menu_item($menu, "Split", 'Split the selected object into individual parts', sub { $self->split_object; - }); + }, undef, 'shape_ungroup.png'); $frame->_append_menu_item($menu, "Cut…", 'Open the 3D cutting tool', sub { $self->object_cut_dialog; - }); + }, undef, 'package.png'); $menu->AppendSeparator(); $frame->_append_menu_item($menu, "Settings…", 'Open the object editor dialog', sub { $self->object_settings_dialog; - }); + }, undef, 'cog.png'); $menu->AppendSeparator(); $frame->_append_menu_item($menu, "Export object as STL…", 'Export this single object as STL file', sub { $self->export_object_stl; - }); + }, undef, 'brick_go.png'); return $menu; } diff --git a/var/application_view_tile.png b/var/application_view_tile.png new file mode 100755 index 000000000..3bc0bd32f Binary files /dev/null and b/var/application_view_tile.png differ diff --git a/var/lorry_add.png b/var/lorry_add.png new file mode 100755 index 000000000..a2c512499 Binary files /dev/null and b/var/lorry_add.png differ diff --git a/var/lorry_go.png b/var/lorry_go.png new file mode 100755 index 000000000..1c296a6aa Binary files /dev/null and b/var/lorry_go.png differ diff --git a/var/plugin_add.png b/var/plugin_add.png new file mode 100755 index 000000000..ae43690ec Binary files /dev/null and b/var/plugin_add.png differ diff --git a/var/plugin_go.png b/var/plugin_go.png new file mode 100755 index 000000000..41da9913d Binary files /dev/null and b/var/plugin_go.png differ diff --git a/var/shape_flip_horizontal.png b/var/shape_flip_horizontal.png new file mode 100755 index 000000000..8667c81f8 Binary files /dev/null and b/var/shape_flip_horizontal.png differ diff --git a/var/shape_handles.png b/var/shape_handles.png new file mode 100755 index 000000000..ce27fe3a0 Binary files /dev/null and b/var/shape_handles.png differ diff --git a/var/textfield.png b/var/textfield.png new file mode 100755 index 000000000..d37e7304e Binary files /dev/null and b/var/textfield.png differ