Source code for timelinelib.wxgui.dialogs.eventeditortabselection.view
# Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 Rickard Lindberg, Roger Lindberg
#
# This file is part of Timeline.
#
# Timeline is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Timeline is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Timeline. If not, see <http://www.gnu.org/licenses/>.
import os
import wx
from timelinelib.config.paths import ICONS_DIR
from timelinelib.wxgui.dialogs.eventeditortabselection.controller import EventEditorTabSelectionDialogController
from timelinelib.wxgui.framework import Dialog
[docs]class EventEditorTabSelectionDialog(Dialog):
"""
<BoxSizerVertical>
<StaticText label="$(header_text)" border="ALL"/>
<BoxSizerHorizontal border="LEFT|RIGHT" proportion="1">
<ListBox
name="lst_tab_order"
width="120"
height="150"
proportion="1"
event_EVT_LISTBOX="on_selection_changed"
/>
<Spacer />
<BoxSizerVertical align="ALIGN_CENTER_VERTICAL">
<BitmapButton
name="btn_up"
bitmap="$(up_bitmap)"
event_EVT_BUTTON="on_up"
/>
<Spacer />
<BitmapButton
name="btn_down"
bitmap="$(down_bitmap)"
event_EVT_BUTTON="on_down"
/>
</BoxSizerVertical>
</BoxSizerHorizontal>
<DialogButtonsOkCancelSizer
border="ALL"
event_EVT_BUTTON__ID_OK="on_ok"
/>
</BoxSizerVertical>
"""
[docs] def __init__(self, parent, config):
Dialog.__init__(self, EventEditorTabSelectionDialogController, parent, {
"header_text": _("Select Tab Order:"),
"up_bitmap": self._GetBitmap(wx.ART_GO_UP),
"down_bitmap": self._GetBitmap(wx.ART_GO_DOWN)
}, title=_("Event Editor Tab Order"),
style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER)
self.controller.on_init(config)
[docs] def FillListbox(self, tab_items):
for text, key in tab_items:
self.lst_tab_order.Append(text, key)
self.lst_tab_order.Select(0)
[docs] def Close(self):
self.EndModalOk()
[docs] def GetSelection(self):
return self.lst_tab_order.GetSelection()
[docs] def GetClientData(self, inx):
return self.lst_tab_order.GetClientData(inx)
[docs] def DisableBtnDown(self):
self.btn_down.Disable()
[docs] def EnableBtnDown(self):
self.btn_down.Enable()
[docs] def DisableBtnUp(self):
self.btn_up.Disable()
[docs] def EnableBtnUp(self):
self.btn_up.Enable()
[docs] def MoveSelectionUp(self, inx):
self._MoveSelection(inx, -1)
[docs] def MoveSelectionDown(self, inx):
self._MoveSelection(inx, 1)
def _MoveSelection(self, inx, offset):
text = self.lst_tab_order.GetString(inx)
key = self.lst_tab_order.GetClientData(inx)
self.lst_tab_order.Delete(inx)
self.lst_tab_order.Insert(text, inx + offset, key)
self.lst_tab_order.Select(inx + offset)
def _GetBitmap(self, bitmap_id):
if 'wxMSW' in wx.PlatformInfo:
name = {wx.ART_GO_UP: "up.png", wx.ART_GO_DOWN: "down.png"}
return wx.Bitmap(os.path.join(ICONS_DIR, name[bitmap_id]))
else:
size = (24, 24)
return wx.ArtProvider.GetBitmap(bitmap_id, wx.ART_TOOLBAR, size)