You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

96 lines
2.3 KiB

'''
Created on Dec 23, 2013
@author: Chris
'''
import wx
class AbstractFooter(wx.Panel):
'''
Abstract class for the Footer panels.
'''
def __init__(self, parent, **kwargs):
wx.Panel.__init__(self, parent, **kwargs)
self.SetMinSize((30, 53))
self.cancel_button = self._button('Cancel', wx.ID_CANCEL)
self.next_button = self._button("Next", wx.ID_OK)
self._do_layout()
def _do_layout(self):
v_sizer = wx.BoxSizer(wx.VERTICAL)
h_sizer = wx.BoxSizer(wx.HORIZONTAL)
h_sizer.AddStretchSpacer(1)
h_sizer.Add(self.cancel_button, 0, wx.ALIGN_RIGHT | wx.RIGHT, 20)
h_sizer.Add(self.next_button, 0, wx.ALIGN_RIGHT | wx.RIGHT, 20)
v_sizer.AddStretchSpacer(1)
v_sizer.Add(h_sizer, 0, wx.ALIGN_CENTER_VERTICAL | wx.EXPAND)
v_sizer.AddStretchSpacer(1)
self.SetSizer(v_sizer)
def _button(self,label=None, style=None):
return wx.Button(
parent=self,
id=-1,
size=(90, 24),
label=label,
style=style)
class ConfigFooter(AbstractFooter):
'''
Footer section used on the configuration
screen of the application
args:
parent: wxPython parent window
controller: controller class used in delagating all the commands
'''
def __init__(self, parent, controller, **kwargs):
AbstractFooter.__init__(self, parent, **kwargs)
self._controller = controller
self.Bind(wx.EVT_BUTTON, self.OnConfigCancel, self.cancel_button)
self.Bind(wx.EVT_BUTTON, self.OnConfigNext, self.next_button)
def OnConfigCancel(self, event):
self._controller.OnConfigCancel(event)
def OnConfigNext(self, event):
self._controller.OnConfigNext(event)
class MainFooter(AbstractFooter):
'''
Footer section used on the Main Status
screen of the application
args:
parent: wxPython parent window
controller: controller class used in delagating all the commands
'''
def __init__(self, parent, controller, **kwargs):
AbstractFooter.__init__(self, parent, **kwargs)
self._controller = controller
self.Bind(wx.EVT_BUTTON, self.OnConfigCancel, self.cancel_button)
self.Bind(wx.EVT_BUTTON, self.OnConfigNext, self.next_button)
def OnMainCancel(self, event):
self._controller.OnMainCancel(event)
def OnMainNext(self, event):
self._controller.OnMainNext(event)