mirror of
https://github.com/wxWidgets/Phoenix.git
synced 2026-01-04 11:00:07 +01:00
568 lines
20 KiB
Python
568 lines
20 KiB
Python
#!/usr/bin/env python
|
|
|
|
import wx
|
|
import wx.lib.colourselect as csel
|
|
import random
|
|
|
|
import os
|
|
import sys
|
|
|
|
try:
|
|
dirName = os.path.dirname(os.path.abspath(__file__))
|
|
except:
|
|
dirName = os.path.dirname(os.path.abspath(sys.argv[0]))
|
|
|
|
bitmapDir = os.path.join(dirName, 'bitmaps')
|
|
sys.path.append(os.path.split(dirName)[0])
|
|
|
|
try:
|
|
from agw import labelbook as LB
|
|
from agw.fmresources import *
|
|
except ImportError: # if it's not there locally, try the wxPython lib.
|
|
import wx.lib.agw.labelbook as LB
|
|
from wx.lib.agw.fmresources import *
|
|
|
|
import images
|
|
|
|
_pageTexts = ["Hello", "From", "wxPython", "LabelBook", "Demo"]
|
|
_pageIcons = ["roll.png", "charge.png", "add.png", "decrypted.png", "news.png"]
|
|
_pageColours = [wx.RED, wx.GREEN, wx.WHITE, wx.BLUE, "Pink"]
|
|
|
|
#----------------------------------------------------------------------
|
|
class SamplePane(wx.Panel):
|
|
"""
|
|
Just a simple test window to put into the LabelBook.
|
|
"""
|
|
def __init__(self, parent, colour, label):
|
|
|
|
wx.Panel.__init__(self, parent, style=0)#wx.BORDER_SUNKEN)
|
|
self.SetBackgroundColour(wx.WHITE)
|
|
|
|
label = label + "\nEnjoy the LabelBook && FlatImageBook demo!"
|
|
static = wx.StaticText(self, -1, label, pos=(10, 10))
|
|
|
|
#----------------------------------------------------------------------
|
|
|
|
class LabelBookDemo(wx.Frame):
|
|
|
|
def __init__(self, parent, log):
|
|
|
|
wx.Frame.__init__(self, parent)
|
|
|
|
self.initializing = True
|
|
self.book = None
|
|
self._oldTextSize = 1.0
|
|
|
|
self.log = log
|
|
|
|
self.splitter = wx.SplitterWindow(self, -1, style=wx.SP_3D|wx.SP_BORDER|
|
|
wx.SP_LIVE_UPDATE|wx.SP_3DSASH)
|
|
self.mainpanel = wx.Panel(self.splitter, -1)
|
|
self.leftpanel = wx.Panel(self.splitter, -1, style=0)#wx.SUNKEN_BORDER)
|
|
|
|
self.sizer_3_staticbox = wx.StaticBox(self.leftpanel, -1, "Book Styles")
|
|
self.sizer_4_staticbox = wx.StaticBox(self.leftpanel, -1, "Colours")
|
|
|
|
radioList = ["LabelBook", "FlatImageBook"]
|
|
self.labelbook = wx.RadioBox(self.leftpanel, -1, "Book Type", wx.DefaultPosition,
|
|
wx.DefaultSize, radioList, 2, wx.RA_SPECIFY_ROWS)
|
|
|
|
radioList = ["Left", "Right", "Top", "Bottom"]
|
|
self.bookdirection = wx.RadioBox(self.leftpanel, -1, "Book Orientation",
|
|
wx.DefaultPosition, wx.DefaultSize, radioList,
|
|
2, wx.RA_SPECIFY_ROWS)
|
|
|
|
self.border = wx.CheckBox(self.leftpanel, -1, "Draw Book Border")
|
|
self.onlytext = wx.CheckBox(self.leftpanel, -1, "Show Only Text")
|
|
self.onlyimages = wx.CheckBox(self.leftpanel, -1, "Show Only Images")
|
|
self.shadow = wx.CheckBox(self.leftpanel, -1, "Draw Shadows")
|
|
self.pin = wx.CheckBox(self.leftpanel, -1, "Use Pin Button")
|
|
self.gradient = wx.CheckBox(self.leftpanel, -1, "Draw Gradient Shading")
|
|
self.web = wx.CheckBox(self.leftpanel, -1, "Web Highlight")
|
|
self.fittext = wx.CheckBox(self.leftpanel, -1, "Fit Label Text")
|
|
self.boldtext = wx.CheckBox(self.leftpanel, -1, "Bold Label Text")
|
|
self.boldselection = wx.CheckBox(self.leftpanel, -1, "Bold Selected Tab")
|
|
|
|
self.textsize = wx.TextCtrl(self.leftpanel, -1, "1.0",style=wx.TE_PROCESS_ENTER)
|
|
self.background = csel.ColourSelect(self.leftpanel, -1, "Choose...",
|
|
wx.Colour(132, 164, 213), size=(-1, 20))
|
|
self.activetab = csel.ColourSelect(self.leftpanel, -1, "Choose...",
|
|
wx.WHITE, size=(-1, 20))
|
|
self.tabsborder = csel.ColourSelect(self.leftpanel, -1, "Choose...",
|
|
wx.Colour(0, 0, 204), size=(-1, 20))
|
|
self.textcolour = csel.ColourSelect(self.leftpanel, -1, "Choose...",
|
|
wx.BLACK, size=(-1, 20))
|
|
self.activetextcolour = csel.ColourSelect(self.leftpanel, -1, "Choose...",
|
|
wx.BLACK, size=(-1, 20))
|
|
self.hilite = csel.ColourSelect(self.leftpanel, -1, "Choose...",
|
|
wx.Colour(191, 216, 216), size=(-1, 20))
|
|
|
|
self.SetProperties()
|
|
self.CreateLabelBook()
|
|
self.DoLayout()
|
|
|
|
self.Bind(wx.EVT_RADIOBOX, self.OnBookType, self.labelbook)
|
|
self.Bind(wx.EVT_RADIOBOX, self.OnBookOrientation, self.bookdirection)
|
|
|
|
self.Bind(wx.EVT_CHECKBOX, self.OnStyle, self.border)
|
|
self.Bind(wx.EVT_CHECKBOX, self.OnStyle, self.onlytext)
|
|
self.Bind(wx.EVT_CHECKBOX, self.OnStyle, self.onlyimages)
|
|
self.Bind(wx.EVT_CHECKBOX, self.OnStyle, self.shadow)
|
|
self.Bind(wx.EVT_CHECKBOX, self.OnStyle, self.pin)
|
|
self.Bind(wx.EVT_CHECKBOX, self.OnStyle, self.gradient)
|
|
self.Bind(wx.EVT_CHECKBOX, self.OnStyle, self.web)
|
|
self.Bind(wx.EVT_CHECKBOX, self.OnStyle, self.fittext)
|
|
self.Bind(wx.EVT_CHECKBOX, self.OnStyle, self.boldtext)
|
|
self.Bind(wx.EVT_CHECKBOX, self.OnStyle, self.boldselection)
|
|
self.Bind(wx.EVT_TEXT_ENTER, self.OnStyle, self.textsize)
|
|
|
|
self.Bind(csel.EVT_COLOURSELECT, self.OnBookColours, self.background)
|
|
self.Bind(csel.EVT_COLOURSELECT, self.OnBookColours, self.activetab)
|
|
self.Bind(csel.EVT_COLOURSELECT, self.OnBookColours, self.activetextcolour)
|
|
self.Bind(csel.EVT_COLOURSELECT, self.OnBookColours, self.tabsborder)
|
|
self.Bind(csel.EVT_COLOURSELECT, self.OnBookColours, self.textcolour)
|
|
self.Bind(csel.EVT_COLOURSELECT, self.OnBookColours, self.hilite)
|
|
|
|
self.Bind(LB.EVT_IMAGENOTEBOOK_PAGE_CHANGING, self.OnPageChanging)
|
|
self.Bind(LB.EVT_IMAGENOTEBOOK_PAGE_CHANGED, self.OnPageChanged)
|
|
self.Bind(LB.EVT_IMAGENOTEBOOK_PAGE_CLOSING, self.OnPageClosing)
|
|
self.Bind(LB.EVT_IMAGENOTEBOOK_PAGE_CLOSED, self.OnPageClosed)
|
|
|
|
|
|
statusbar = self.CreateStatusBar(2)
|
|
statusbar.SetStatusWidths([-2, -1])
|
|
# statusbar fields
|
|
statusbar_fields = [("LabelBook & FlatImageBook wxPython Demo, Andrea Gavana @ 03 Nov 2006"),
|
|
("Welcome To wxPython!")]
|
|
|
|
for i in range(len(statusbar_fields)):
|
|
statusbar.SetStatusText(statusbar_fields[i], i)
|
|
|
|
self.CreateMenu()
|
|
|
|
self.SetSize((800,700))
|
|
|
|
self.SetIcon(images.Mondrian.GetIcon())
|
|
self.CenterOnScreen()
|
|
|
|
self.initializing = False
|
|
self.SendSizeEvent()
|
|
|
|
|
|
def SetProperties(self):
|
|
|
|
self.SetTitle("LabelBook & FlatImageBook wxPython Demo ;-)")
|
|
self.splitter.SetMinimumPaneSize(120)
|
|
self.pin.SetValue(0)
|
|
self.fittext.SetValue(1)
|
|
self.border.SetValue(1)
|
|
self.onlytext.SetValue(1)
|
|
|
|
|
|
def DoLayout(self):
|
|
|
|
mainsizer = wx.BoxSizer(wx.VERTICAL)
|
|
panelsizer = wx.BoxSizer(wx.VERTICAL)
|
|
leftsizer = wx.BoxSizer(wx.VERTICAL)
|
|
sizer_3 = wx.StaticBoxSizer(self.sizer_3_staticbox, wx.VERTICAL)
|
|
sizer_4 = wx.StaticBoxSizer(self.sizer_4_staticbox, wx.VERTICAL)
|
|
gridsizer = wx.FlexGridSizer(cols=2, hgap=5, vgap=5)
|
|
|
|
sizer_2 = wx.BoxSizer(wx.VERTICAL)
|
|
sizer_1 = wx.BoxSizer(wx.VERTICAL)
|
|
sizer_1.Add(self.labelbook, 0, wx.ALL, 3)
|
|
leftsizer.Add(sizer_1, 0, wx.ALL|wx.EXPAND, 5)
|
|
sizer_2.Add(self.bookdirection, 0, wx.ALL, 3)
|
|
leftsizer.Add(sizer_2, 0, wx.ALL|wx.EXPAND, 5)
|
|
|
|
sizer_3.Add(self.border, 0, wx.ALL, 3)
|
|
sizer_3.Add(self.onlytext, 0, wx.LEFT|wx.BOTTOM, 3)
|
|
sizer_3.Add(self.onlyimages, 0, wx.LEFT|wx.BOTTOM, 3)
|
|
sizer_3.Add(self.shadow, 0, wx.LEFT|wx.BOTTOM, 3)
|
|
sizer_3.Add(self.pin, 0, wx.LEFT|wx.BOTTOM, 3)
|
|
sizer_3.Add(self.gradient, 0, wx.LEFT|wx.BOTTOM, 3)
|
|
sizer_3.Add(self.web, 0, wx.LEFT|wx.BOTTOM, 3)
|
|
sizer_3.Add(self.fittext, 0, wx.LEFT|wx.BOTTOM, 3)
|
|
sizer_3.Add(self.boldtext, 0, wx.LEFT|wx.BOTTOM, 3)
|
|
sizer_3.Add(self.boldselection, 0, wx.LEFT|wx.BOTTOM, 3)
|
|
leftsizer.Add(sizer_3, 0, wx.ALL|wx.EXPAND, 5)
|
|
|
|
lbl = wx.StaticText(self.leftpanel, -1, "Text Font Multiple: ")
|
|
label1 = wx.StaticText(self.leftpanel, -1, "Tab Area Background Colour: ")
|
|
label2 = wx.StaticText(self.leftpanel, -1, "Active Tab Colour: ")
|
|
label3 = wx.StaticText(self.leftpanel, -1, "Tabs Border Colour: ")
|
|
label4 = wx.StaticText(self.leftpanel, -1, "Text Colour: ")
|
|
label5 = wx.StaticText(self.leftpanel, -1, "Active Tab Text Colour: ")
|
|
label6 = wx.StaticText(self.leftpanel, -1, "Tab Highlight Colour: ")
|
|
|
|
gridsizer.Add(lbl, 0, wx.EXPAND|wx.ALIGN_CENTER_VERTICAL|wx.LEFT|wx.RIGHT, 3)
|
|
gridsizer.Add(self.textsize, 0)
|
|
gridsizer.Add(label1, 0, wx.EXPAND|wx.ALIGN_CENTER_VERTICAL|wx.LEFT|wx.RIGHT, 3)
|
|
gridsizer.Add(self.background, 0)
|
|
gridsizer.Add(label2, 0, wx.EXPAND|wx.ALIGN_CENTER_VERTICAL|wx.LEFT|wx.RIGHT, 3)
|
|
gridsizer.Add(self.activetab, 0)
|
|
gridsizer.Add(label3, 0, wx.EXPAND|wx.ALIGN_CENTER_VERTICAL|wx.LEFT|wx.RIGHT, 3)
|
|
gridsizer.Add(self.tabsborder, 0)
|
|
gridsizer.Add(label4, 0, wx.EXPAND|wx.ALIGN_CENTER_VERTICAL|wx.LEFT|wx.RIGHT, 3)
|
|
gridsizer.Add(self.textcolour, 0)
|
|
gridsizer.Add(label5, 0, wx.EXPAND|wx.ALIGN_CENTER_VERTICAL|wx.LEFT|wx.RIGHT, 3)
|
|
gridsizer.Add(self.activetextcolour, 0)
|
|
gridsizer.Add(label6, 0, wx.EXPAND|wx.ALIGN_CENTER_VERTICAL|wx.LEFT|wx.RIGHT, 3)
|
|
gridsizer.Add(self.hilite, 0)
|
|
|
|
sizer_4.Add(gridsizer, 1, wx.EXPAND)
|
|
gridsizer.Layout()
|
|
leftsizer.Add(sizer_4, 0, wx.ALL|wx.EXPAND, 5)
|
|
|
|
self.leftpanel.SetSizer(leftsizer)
|
|
leftsizer.Layout()
|
|
leftsizer.SetSizeHints(self.leftpanel)
|
|
leftsizer.Fit(self.leftpanel)
|
|
|
|
panelsizer.Add(self.book, 1, wx.EXPAND, 0)
|
|
self.mainpanel.SetSizer(panelsizer)
|
|
panelsizer.Layout()
|
|
|
|
self.splitter.SplitVertically(self.leftpanel, self.mainpanel, 200)
|
|
mainsizer.Add(self.splitter, 1, wx.EXPAND, 0)
|
|
|
|
self.SetSizer(mainsizer)
|
|
mainsizer.Layout()
|
|
self.Layout()
|
|
|
|
|
|
def CreateLabelBook(self, btype=0):
|
|
|
|
if not self.initializing:
|
|
self.Freeze()
|
|
panelsizer = self.mainpanel.GetSizer()
|
|
panelsizer.Detach(0)
|
|
self.book.Destroy()
|
|
else:
|
|
self.imagelist = self.CreateImageList()
|
|
|
|
self.EnableChoices(btype)
|
|
style = self.GetBookStyles()
|
|
|
|
if btype == 0: # it is a labelbook:
|
|
self.book = LB.LabelBook(self.mainpanel, -1, agwStyle=style)
|
|
if self.bookdirection.GetSelection() > 1:
|
|
self.bookdirection.SetSelection(0)
|
|
|
|
self.SetUserColours()
|
|
self.book.SetFontSizeMultiple(1.0)
|
|
self.book.SetFontBold(False)
|
|
|
|
else:
|
|
self.book = LB.FlatImageBook(self.mainpanel, -1, agwStyle=style)
|
|
|
|
self.book.AssignImageList(self.imagelist)
|
|
|
|
for indx, txts in enumerate(_pageTexts):
|
|
label = "This is panel number %d"%(indx+1)
|
|
self.book.AddPage(SamplePane(self.book, _pageColours[indx], label),
|
|
txts, True, indx)
|
|
|
|
self.book.SetSelection(0)
|
|
|
|
if not self.initializing:
|
|
panelsizer.Add(self.book, 1, wx.EXPAND)
|
|
panelsizer.Layout()
|
|
self.GetSizer().Layout()
|
|
self.Layout()
|
|
self.Thaw()
|
|
|
|
self.SendSizeEvent()
|
|
#wx.CallAfter(self.book.SetAGWWindowStyleFlag, style)
|
|
|
|
|
|
def EnableChoices(self, btype):
|
|
|
|
self.bookdirection.EnableItem(2, btype)
|
|
self.bookdirection.EnableItem(3, btype)
|
|
self.onlyimages.Enable()
|
|
self.onlytext.Enable()
|
|
self.gradient.Enable(not btype)
|
|
self.web.Enable(not btype)
|
|
self.shadow.Enable(not btype)
|
|
self.background.Enable(not btype)
|
|
self.activetab.Enable(not btype)
|
|
self.activetextcolour.Enable(not btype)
|
|
self.textcolour.Enable(not btype)
|
|
self.hilite.Enable(not btype)
|
|
self.tabsborder.Enable(not btype)
|
|
self.fittext.Enable(not btype)
|
|
self.boldtext.Enable(not btype)
|
|
|
|
|
|
def GetBookStyles(self):
|
|
|
|
style = INB_FIT_BUTTON
|
|
style = self.GetBookOrientation(style)
|
|
|
|
if self.onlytext.IsEnabled() and self.onlytext.GetValue():
|
|
style |= INB_SHOW_ONLY_TEXT
|
|
if self.onlyimages.IsEnabled() and self.onlyimages.GetValue():
|
|
style |= INB_SHOW_ONLY_IMAGES
|
|
if self.pin.GetValue():
|
|
style |= INB_USE_PIN_BUTTON
|
|
if self.shadow.GetValue():
|
|
style |= INB_DRAW_SHADOW
|
|
if self.web.GetValue():
|
|
style |= INB_WEB_HILITE
|
|
if self.gradient.GetValue():
|
|
style |= INB_GRADIENT_BACKGROUND
|
|
if self.border.GetValue():
|
|
style |= INB_BORDER
|
|
if self.fittext.IsEnabled() and self.fittext.GetValue():
|
|
style |= INB_FIT_LABELTEXT
|
|
if self.boldselection.IsEnabled() and self.boldselection.GetValue():
|
|
style |= INB_BOLD_TAB_SELECTION
|
|
|
|
if self.book:
|
|
self.book.SetFontBold(self.boldtext.GetValue())
|
|
|
|
return style
|
|
|
|
|
|
def CreateImageList(self):
|
|
|
|
imagelist = wx.ImageList(32, 32)
|
|
for img in _pageIcons:
|
|
newImg = os.path.join(bitmapDir, "lb%s"%img)
|
|
bmp = wx.Bitmap(newImg, wx.BITMAP_TYPE_PNG)
|
|
imagelist.Add(bmp)
|
|
|
|
return imagelist
|
|
|
|
|
|
def GetBookOrientation(self, style):
|
|
|
|
selection = self.bookdirection.GetSelection()
|
|
if selection == 0:
|
|
style |= INB_LEFT
|
|
elif selection == 1:
|
|
style |= INB_RIGHT
|
|
elif selection == 2:
|
|
style |= INB_TOP
|
|
else:
|
|
style |= INB_BOTTOM
|
|
|
|
return style
|
|
|
|
|
|
def OnBookType(self, event):
|
|
|
|
self.CreateLabelBook(event.GetInt())
|
|
event.Skip()
|
|
|
|
|
|
def OnBookOrientation(self, event):
|
|
|
|
style = self.GetBookStyles()
|
|
self.book.SetAGWWindowStyleFlag(style)
|
|
|
|
event.Skip()
|
|
|
|
|
|
def OnStyle(self, event):
|
|
|
|
style = self.GetBookStyles()
|
|
self.book.SetAGWWindowStyleFlag(style)
|
|
|
|
self.book.SetFontSizeMultiple(float(self.textsize.GetValue()))
|
|
if self.textsize.GetValue() != self._oldTextSize:
|
|
self.book.ResizeTabArea()
|
|
|
|
self._oldTextSize = self.textsize.GetValue()
|
|
|
|
event.Skip()
|
|
|
|
|
|
def OnBookColours(self, event):
|
|
|
|
obj = event.GetId()
|
|
colour = event.GetValue()
|
|
|
|
if obj == self.background.GetId():
|
|
self.book.SetColour(INB_TAB_AREA_BACKGROUND_COLOUR, colour)
|
|
elif obj == self.activetab.GetId():
|
|
self.book.SetColour(INB_ACTIVE_TAB_COLOUR, colour)
|
|
elif obj == self.tabsborder.GetId():
|
|
self.book.SetColour(INB_TABS_BORDER_COLOUR, colour)
|
|
elif obj == self.textcolour.GetId():
|
|
self.book.SetColour(INB_TEXT_COLOUR, colour)
|
|
elif obj == self.activetextcolour.GetId():
|
|
self.book.SetColour(INB_ACTIVE_TEXT_COLOUR, colour)
|
|
else:
|
|
self.book.SetColour(INB_HILITE_TAB_COLOUR, colour)
|
|
|
|
self.book.Refresh()
|
|
|
|
|
|
def SetUserColours(self):
|
|
|
|
self.book.SetColour(INB_TAB_AREA_BACKGROUND_COLOUR, self.background.GetColour())
|
|
self.book.SetColour(INB_ACTIVE_TAB_COLOUR, self.activetab.GetColour())
|
|
self.book.SetColour(INB_TABS_BORDER_COLOUR, self.tabsborder.GetColour())
|
|
self.book.SetColour(INB_TEXT_COLOUR, self.textcolour.GetColour())
|
|
self.book.SetColour(INB_ACTIVE_TEXT_COLOUR, self.activetextcolour.GetColour())
|
|
self.book.SetColour(INB_HILITE_TAB_COLOUR, self.hilite.GetColour())
|
|
|
|
|
|
def OnPageChanging(self, event):
|
|
|
|
oldsel = event.GetOldSelection()
|
|
newsel = event.GetSelection()
|
|
self.log.write("Page Changing From: " + str(oldsel) + " To: " + str(newsel) + "\n")
|
|
event.Skip()
|
|
|
|
|
|
def OnPageChanged(self, event):
|
|
|
|
newsel = event.GetSelection()
|
|
self.log.write("Page Changed To: " + str(newsel) + "\n")
|
|
event.Skip()
|
|
|
|
|
|
def OnPageClosing(self, event):
|
|
|
|
newsel = event.GetSelection()
|
|
self.log.write("Closing Page: " + str(newsel) + "\n")
|
|
event.Skip()
|
|
|
|
|
|
def OnPageClosed(self, event):
|
|
|
|
newsel = event.GetSelection()
|
|
self.log.write("Closed Page: " + str(newsel) + "\n")
|
|
event.Skip()
|
|
|
|
|
|
def OnAddPage(self, event):
|
|
|
|
pageCount = self.book.GetPageCount()
|
|
indx = random.randint(0, 4)
|
|
label = "This is panel number %d"%(pageCount+1)
|
|
self.book.AddPage(SamplePane(self.book, _pageColours[indx], label),
|
|
"Added Page", True, indx)
|
|
|
|
|
|
def OnDeletePage(self, event):
|
|
|
|
msg = "Please Enter The Page Number You Want To Remove:"
|
|
dlg = wx.TextEntryDialog(self, msg, "Enter Page")
|
|
|
|
if dlg.ShowModal() != wx.ID_OK:
|
|
dlg.Destroy()
|
|
return
|
|
|
|
userString = dlg.GetValue()
|
|
dlg.Destroy()
|
|
|
|
try:
|
|
page = int(userString)
|
|
except:
|
|
return
|
|
|
|
if page < 0 or page > self.book.GetPageCount() - 1:
|
|
return
|
|
|
|
self.book.DeletePage(page)
|
|
|
|
|
|
def OnDeleteAllPages(self, event):
|
|
|
|
self.book.DeleteAllPages()
|
|
|
|
|
|
def CreateMenu(self):
|
|
|
|
menuBar = wx.MenuBar(wx.MB_DOCKABLE)
|
|
fileMenu = wx.Menu()
|
|
editMenu = wx.Menu()
|
|
helpMenu = wx.Menu()
|
|
|
|
item = wx.MenuItem(fileMenu, wx.ID_ANY, "E&xit")
|
|
self.Bind(wx.EVT_MENU, self.OnQuit, item)
|
|
fileMenu.Append(item)
|
|
|
|
item = wx.MenuItem(editMenu, wx.ID_ANY, "Add Page")
|
|
self.Bind(wx.EVT_MENU, self.OnAddPage, item)
|
|
editMenu.Append(item)
|
|
|
|
editMenu.AppendSeparator()
|
|
|
|
item = wx.MenuItem(editMenu, wx.ID_ANY, "Delete Page")
|
|
self.Bind(wx.EVT_MENU, self.OnDeletePage, item)
|
|
editMenu.Append(item)
|
|
|
|
item = wx.MenuItem(editMenu, wx.ID_ANY, "Delete All Pages")
|
|
self.Bind(wx.EVT_MENU, self.OnDeleteAllPages, item)
|
|
editMenu.Append(item)
|
|
|
|
item = wx.MenuItem(helpMenu, wx.ID_ANY, "About")
|
|
self.Bind(wx.EVT_MENU, self.OnAbout, item)
|
|
helpMenu.Append(item)
|
|
|
|
menuBar.Append(fileMenu, "&File")
|
|
menuBar.Append(editMenu, "&Edit")
|
|
menuBar.Append(helpMenu, "&Help")
|
|
|
|
self.SetMenuBar(menuBar)
|
|
|
|
|
|
def OnQuit(self, event):
|
|
|
|
self.Destroy()
|
|
|
|
|
|
def OnAbout(self, event):
|
|
|
|
msg = "This Is The About Dialog Of The LabelBook & FlatImageBook Demo.\n\n" + \
|
|
"Author: Andrea Gavana @ 03 Nov 2006\n\n" + \
|
|
"Please Report Any Bug/Requests Of Improvements\n" + \
|
|
"To Me At The Following Addresses:\n\n" + \
|
|
"andrea.gavana@gmail.com\n" + "andrea.gavana@maerskoil.com\n\n" + \
|
|
"Welcome To wxPython " + wx.VERSION_STRING + "!!"
|
|
|
|
dlg = wx.MessageDialog(self, msg, "LabelBook wxPython Demo",
|
|
wx.OK | wx.ICON_INFORMATION)
|
|
dlg.ShowModal()
|
|
dlg.Destroy()
|
|
|
|
|
|
#---------------------------------------------------------------------------
|
|
|
|
|
|
class TestPanel(wx.Panel):
|
|
def __init__(self, parent, log):
|
|
self.log = log
|
|
wx.Panel.__init__(self, parent, -1)
|
|
|
|
b = wx.Button(self, -1, " Test LabelBook And FlatImageBook ", (50,50))
|
|
self.Bind(wx.EVT_BUTTON, self.OnButton, b)
|
|
|
|
|
|
def OnButton(self, evt):
|
|
self.win = LabelBookDemo(self, self.log)
|
|
self.win.Show(True)
|
|
|
|
#----------------------------------------------------------------------
|
|
|
|
def runTest(frame, nb, log):
|
|
win = TestPanel(nb, log)
|
|
return win
|
|
|
|
#----------------------------------------------------------------------
|
|
|
|
|
|
overview = LB.__doc__
|
|
|
|
|
|
if __name__ == '__main__':
|
|
import sys,os
|
|
import run
|
|
run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:])
|
|
|