opal/trunk/forms.py
2012-04-23 07:02:06 +00:00

107 lines
3.4 KiB
Python

# -*- coding: utf-8 -*-
import wx
import wx.gizmos
import wx.propgrid as wxpg
ID_TEST = wx.NewId()
ID_ADD_MODEL_ROOT = wx.NewId()
ID_ADD_MODEL_SELECTED = wx.NewId()
ID_DUPLICATE_MODEL = wx.NewId()
ID_DELETE_MODEL = wx.NewId()
ID_PROCESS_MODEL = wx.NewId()
class MyTreeListCtrl(wx.gizmos.TreeListCtrl):
def Refresh(self, erase, rect):
wx.gizmos.TreeListCtrl.Refresh(False, rect)
class MainFrame (wx.Frame):
def __init__(self, parent):
wx.Frame.__init__ (self, parent, title = 'Opal', size = wx.Size(873,594))
self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize)
bSizer3 = wx.BoxSizer(wx.HORIZONTAL)
self.m_specs = wx.TreeCtrl(self, style = wx.TR_DEFAULT_STYLE)
self.m_specs.SetMinSize(wx.Size(150,-1))
bSizer3.Add(self.m_specs, 0, wx.ALL|wx.EXPAND, 1)
bSizer4 = wx.BoxSizer(wx.VERTICAL)
self.m_user_models = wx.gizmos.TreeListCtrl(self,
#self.m_user_models = MyTreeListCtrl(self,
#self.m_user_models = wx.TreeCtrl(self,
style = wx.TR_DEFAULT_STYLE | wx.TR_HIDE_ROOT
| wx.TR_EDIT_LABELS | wx.TR_ROW_LINES | wx.TR_MULTIPLE)
self.m_user_models.SetMinSize(wx.Size(-1, 200))
self.m_user_models.AddColumn("Model name")
self.m_user_models.AddColumn("Status")
self.m_user_models.AddColumn("Progress")
self.m_user_models.AddColumn("Comment")
bSizer4.Add(self.m_user_models, 0, wx.ALL|wx.EXPAND, 1)
# WARNING: wxPython code generation isn't supported for this widget yet.
self.m_params = wxpg.PropertyGridManager(self,
style = wxpg.PG_TOOLBAR)
self.m_params.AddPage('fp')
bSizer4.Add(self.m_params, 1, wx.EXPAND |wx.ALL, 1)
bSizer3.Add(bSizer4, 1, wx.EXPAND, 5)
self.m_job_list = wx.ListBox(self)#, style = wx.LC_LIST)
self.m_job_list.SetMinSize(wx.Size(200,-1))
bSizer3.Add(self.m_job_list, 0, wx.ALL|wx.EXPAND, 1)
sbar = wx.StatusBar(self)
self.SetStatusBar(sbar)
mbar = self.BuildMenu()
self.SetMenuBar(mbar)
self.BuildContextMenu()
self.SetSizer(bSizer3)
self.Layout()
self.Centre(wx.BOTH)
def __del__(self):
pass
def BuildMenu(self):
menubar = wx.MenuBar()
menu = wx.Menu()
menu.Append(1, "&Open\tCtrl+O")
menubar.Append(menu, '&File')
menu = wx.Menu()
menu.Append(ID_TEST, "&Test\tCtrl+T")
menu.Append(ID_ADD_MODEL_ROOT, 'Add model to root')
menu.Append(ID_ADD_MODEL_SELECTED, 'Append model to selected')
#menu.AppendSeparator()
menu.Append(ID_DUPLICATE_MODEL, "&Duplicate\tCtrl+D")
menu.Append(ID_DELETE_MODEL, 'Delete')
menu.AppendSeparator()
menu.Append(ID_PROCESS_MODEL, 'Process\tCtrl+R')
menubar.Append(menu, '&Model')
menu = wx.Menu()
menu.Append(3, "&Log In\tCtrl+L")
menu.Append(2, "&Options\tCtrl+P")
menubar.Append(menu, '&Help')
return menubar
def BuildContextMenu(self):
menu = wx.Menu()
menu.Append(ID_ADD_MODEL_ROOT, 'Add model to root')
menu.Append(ID_ADD_MODEL_SELECTED, 'Add model to selected')
self.m_specs.Bind(wx.EVT_CONTEXT_MENU,
lambda x: self.m_specs.PopupMenu(menu))