mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-31 04:31:15 -06:00 
			
		
		
		
	Allow TAB key navigation of controls.
This commit is contained in:
		
							parent
							
								
									0b0e531661
								
							
						
					
					
						commit
						44f3b7d2b5
					
				
					 2 changed files with 18 additions and 10 deletions
				
			
		|  | @ -8,8 +8,8 @@ use Math::ConvexHull qw(convex_hull); | |||
| use Slic3r::Geometry qw(X Y Z X1 Y1 X2 Y2 scale unscale); | ||||
| use Slic3r::Geometry::Clipper qw(JT_ROUND); | ||||
| use threads::shared qw(shared_clone); | ||||
| use Wx qw(:bitmap :brush :button :dialog :filedialog :font :icon :id :listctrl :misc :pen :sizer :toolbar :window); | ||||
| 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 qw(:bitmap :brush :button :dialog :filedialog :font :keycode :icon :id :listctrl :misc :panel :pen :sizer :toolbar :window); | ||||
| use Wx::Event qw(EVT_BUTTON EVT_COMMAND EVT_KEY_DOWN EVT_LIST_ITEM_DESELECTED EVT_LIST_ITEM_SELECTED EVT_MOUSE_EVENTS EVT_PAINT EVT_TOOL); | ||||
| use base 'Wx::Panel'; | ||||
| 
 | ||||
| use constant TB_MORE    => 1; | ||||
|  | @ -29,9 +29,9 @@ my $EXPORT_FAILED_EVENT     : shared = Wx::NewEventType; | |||
| sub new { | ||||
|     my $class = shift; | ||||
|     my ($parent) = @_; | ||||
|     my $self = $class->SUPER::new($parent, -1); | ||||
|     my $self = $class->SUPER::new($parent, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL); | ||||
|      | ||||
|     $self->{canvas} = Wx::Panel->new($self, -1, wxDefaultPosition, [300, 300]); | ||||
|     $self->{canvas} = Wx::Panel->new($self, -1, wxDefaultPosition, [300, 300], wxTAB_TRAVERSAL); | ||||
|     $self->{canvas}->SetBackgroundColour(Wx::wxWHITE); | ||||
|     EVT_PAINT($self->{canvas}, \&repaint); | ||||
|     EVT_MOUSE_EVENTS($self->{canvas}, \&mouse_event); | ||||
|  | @ -44,17 +44,25 @@ sub new { | |||
|     $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, wxSOLID); | ||||
|      | ||||
|     $self->{list} = Wx::ListView->new($self, -1, wxDefaultPosition, [-1, 180], wxLC_SINGLE_SEL | wxLC_REPORT | wxBORDER_SUNKEN); | ||||
|     $self->{list} = Wx::ListView->new($self, -1, wxDefaultPosition, [-1, 180], wxLC_SINGLE_SEL | wxLC_REPORT | wxBORDER_SUNKEN | wxTAB_TRAVERSAL | wxWANTS_CHARS); | ||||
|     $self->{list}->InsertColumn(0, "Name", wxLIST_FORMAT_LEFT, 300); | ||||
|     $self->{list}->InsertColumn(1, "Copies", wxLIST_FORMAT_CENTER, 50); | ||||
|     $self->{list}->InsertColumn(2, "Scale", wxLIST_FORMAT_CENTER, wxLIST_AUTOSIZE_USEHEADER); | ||||
|     EVT_LIST_ITEM_SELECTED($self, $self->{list}, \&list_item_selected); | ||||
|     EVT_LIST_ITEM_DESELECTED($self, $self->{list}, \&list_item_deselected); | ||||
|      | ||||
|     EVT_KEY_DOWN($self->{list}, sub { | ||||
|         my ($list, $event) = @_; | ||||
|         if ($event->GetKeyCode == WXK_TAB) { | ||||
|             $list->Navigate($event->ShiftDown ? &Wx::wxNavigateBackward : &Wx::wxNavigateForward); | ||||
|         } else { | ||||
|             $event->Skip; | ||||
|         } | ||||
|     }); | ||||
| 
 | ||||
|     # toolbar for object manipulation | ||||
|     if (!&Wx::wxMSW) { | ||||
|         Wx::ToolTip::Enable(1); | ||||
|         $self->{htoolbar} = Wx::ToolBar->new($self, -1, wxDefaultPosition, wxDefaultSize, wxTB_HORIZONTAL | wxTB_TEXT | wxBORDER_SIMPLE); | ||||
|         $self->{htoolbar} = Wx::ToolBar->new($self, -1, wxDefaultPosition, wxDefaultSize, wxTB_HORIZONTAL | wxTB_TEXT | wxBORDER_SIMPLE | wxTAB_TRAVERSAL); | ||||
|         $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", wxBITMAP_TYPE_PNG), ''); | ||||
|         $self->{htoolbar}->AddSeparator; | ||||
|  |  | |||
|  | @ -5,7 +5,7 @@ use utf8; | |||
| 
 | ||||
| use File::Basename qw(basename dirname); | ||||
| use Slic3r::Geometry qw(X Y); | ||||
| use Wx qw(:dialog :filedialog :font :icon :id :misc :notebook :sizer); | ||||
| use Wx qw(:dialog :filedialog :font :icon :id :misc :notebook :panel :sizer); | ||||
| use Wx::Event qw(EVT_BUTTON); | ||||
| use base 'Wx::Panel'; | ||||
| 
 | ||||
|  | @ -18,9 +18,9 @@ our $last_config; | |||
| sub new { | ||||
|     my $class = shift; | ||||
|     my ($parent) = @_; | ||||
|     my $self = $class->SUPER::new($parent, -1); | ||||
|     my $self = $class->SUPER::new($parent, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL); | ||||
|      | ||||
|     $self->{tabpanel} = Wx::Notebook->new($self, -1, wxDefaultPosition, wxDefaultSize, wxNB_TOP); | ||||
|     $self->{tabpanel} = Wx::Notebook->new($self, -1, wxDefaultPosition, wxDefaultSize, wxNB_TOP | wxTAB_TRAVERSAL); | ||||
|     $self->{tabpanel}->AddPage($self->{plater} = Slic3r::GUI::Plater->new($self->{tabpanel}), "Plater"); | ||||
|     $self->{options_tabs} = { | ||||
|         print       => Slic3r::GUI::Tab::Print->new     ($self->{tabpanel}, sync_presets_with => $self->{plater}{preset_choosers}{print}), | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Henrik Brix Andersen
						Henrik Brix Andersen