self.treeMap = {}
self.tree = wxTreeCtrl(splitter, tID,
style=wxTR_HAS_BUTTONS |
- wxTR_EDIT_LABELS |
- wxTR_HAS_VARIABLE_ROW_HEIGHT)
+ wxTR_HAS_VARIABLE_ROW_HEIGHT
+ )
#self.tree.SetBackgroundColour(wxNamedColour("Pink"))
root = self.tree.AddRoot("wxPython Overview")
def __init__(self, name, module):
self.name = name
self.demoModule = module
- wxApp.__init__(self, wxPlatform == "__WXMAC__")
+ wxApp.__init__(self, 0) ##wxPlatform == "__WXMAC__")
def OnInit(self):
def OnSelectClient(self, evt):
+ self.log.write("OnSelectClient\n")
self.client = eval(evt.GetString())
self.getArt()
def OnSelectID(self, evt):
+ self.log.write("OnSelectID\n")
self.artid = eval(evt.GetString())
self.getArt()
monthlist = GetMonthList()
mID = NewId()
- self.date = wxComboBox(self, mID, Month[start_month], wxPoint(100, 20), wxSize(90, -1), monthlist, wxCB_DROPDOWN)
+ self.date = wxComboBox(self, mID, "",
+ wxPoint(100, 20), wxSize(90, -1),
+ monthlist, wxCB_DROPDOWN)
+ self.date.SetSelection(start_month-1)
EVT_COMBOBOX(self, mID, self.EvtComboBox)
# set start month and year
from wxPython.wx import *
+import string
#---------------------------------------------------------------------------
+wildcard = "Python source (*.py)|*.py|" \
+ "Compiled Python (*.pyc)|*.pyc|" \
+ "All files (*.*)|*.*"
+
def runTest(frame, nb, log):
- dlg = wxFileDialog(frame, "Choose a file", ".", "", "*.*", wxOPEN|wxMULTIPLE)
+ dlg = wxFileDialog(frame, "Choose a file", "", "", wildcard, wxOPEN|wxMULTIPLE)
if dlg.ShowModal() == wxID_OK:
for path in dlg.GetPaths():
log.WriteText('You selected: %s\n' % path)
data.EnableEffects(true)
font_colour = wxColour(255, 0, 0) # colour of font (red)
data.SetColour(font_colour) # set colour
- print data.GetColour()
+ ##print data.GetColour()
dlg = wxFontDialog(frame, data)
+ dlg.SetSize((250,250))
if dlg.ShowModal() == wxID_OK:
data = dlg.GetFontData()
font = data.GetChosenFont()
self.CreateStatusBar()
self.SetStatusText("This is the statusbar")
+ tc = wxTextCtrl(self, -1, """
+A bunch of bogus menus have been created for this frame. You
+can play around with them to see how they behave and then
+check the source for this sample to see how to implement them.
+""", style=wxTE_READONLY|wxTE_MULTILINE)
+
# Prepare the menu bar
menuBar = wxMenuBar()
menu1.Append(102, "Venus", "")
menu1.Append(103, "Earth", "You may select Earth too")
menu1.AppendSeparator()
- menu1.Append(104, "Exit", "Close this frame")
+ menu1.Append(104, "Close", "Close this frame")
# Add menu to the menu bar
menuBar.Append(menu1, "&Planets")
self.AddPage(win, "Blue")
st = wxStaticText(win, -1,
"You can put nearly any type of window here,\n"
- "and the tabs can be on any side... (look below.)",
+ "and if the platform supports it then the\n"
+ "tabs can be on any side of the notebook.",
wxPoint(10, 10))
st.SetForegroundColour(wxWHITE)
st.SetBackgroundColour(wxBLUE)
from wxPython.wx import *
+havePopupWindow = 1
+try:
+ wxPopupWindow
+except NameError:
+ havePopupWindow = 0
+ wxPopupWindow = wxPopupTransientWindow = wxWindow
+
#---------------------------------------------------------------------------
class TestPopup(wxPopupWindow):
#---------------------------------------------------------------------------
def runTest(frame, nb, log):
- win = TestPanel(nb, log)
- return win
+ if havePopupWindow:
+ win = TestPanel(nb, log)
+ return win
+ else:
+ dlg = wxMessageDialog(frame, 'wxPopupWindow is not available on this platform.',
+ 'Sorry', wxOK | wxICON_INFORMATION)
+ dlg.ShowModal()
+ dlg.Destroy()
#---------------------------------------------------------------------------
keepGoing = true
count = 0
- while keepGoing and count <= max:
+ while keepGoing and count < max:
count = count + 1
wxSleep(1)
#---------------------------------------------------------------------------
+RBOX1 = wxNewId()
+RBOX2 = wxNewId()
+RBUT1 = wxNewId()
+RBUT2 = wxNewId()
+
class TestRadioButtons(wxPanel):
def __init__(self, parent, log):
self.log = log
sampleList = ['zero', 'one', 'two', 'three', 'four', 'five',
'six', 'seven', 'eight']
- rb = wxRadioBox(self, 30, "wxRadioBox", wxPoint(35, 30), wxDefaultSize,
- sampleList, 3, wxRA_SPECIFY_COLS)
- EVT_RADIOBOX(self, 30, self.EvtRadioBox)
+ sizer = wxBoxSizer(wxVERTICAL)
+ rb = wxRadioBox(self, RBOX1, "wxRadioBox",
+ wxDefaultPosition, wxDefaultSize,
+ sampleList, 2, wxRA_SPECIFY_COLS)
+ EVT_RADIOBOX(self, RBOX1, self.EvtRadioBox)
#rb.SetBackgroundColour(wxBLUE)
rb.SetToolTip(wxToolTip("This is a ToolTip!"))
+ #rb.SetLabel("wxRadioBox")
+ sizer.Add(rb, 0, wxALL, 20)
- wxRadioButton(self, 32, "wxRadioButton", (235, 35))
- wxRadioButton(self, 33, "wxRadioButton", (235, 55))
- EVT_RADIOBUTTON(self, 32, self.EvtRadioButton)
- EVT_RADIOBUTTON(self, 33, self.EvtRadioButton)
-
- rb = wxRadioBox(self, 35, "", wxPoint(35, 120), wxDefaultSize,
+ rb = wxRadioBox(self, RBOX2, "", wxDefaultPosition, wxDefaultSize,
sampleList, 3, wxRA_SPECIFY_COLS | wxNO_BORDER)
- EVT_RADIOBOX(self, 35, self.EvtRadioBox)
+ EVT_RADIOBOX(self, RBOX2, self.EvtRadioBox)
+ rb.SetToolTip(wxToolTip("This box has no label"))
+ sizer.Add(rb, 0, wxLEFT|wxRIGHT|wxBOTTOM, 20)
+
+ sizer.Add(wxStaticText(self, -1, "These are plain wxRadioButtons"),
+ 0, wxLEFT|wxRIGHT, 20)
+ sizer.Add(wxRadioButton(self, RBUT1, "wxRadioButton 1"),
+ 0, wxLEFT|wxRIGHT, 20)
+ sizer.Add(wxRadioButton(self, RBUT2, "wxRadioButton 2"),
+ 0, wxLEFT|wxRIGHT, 20)
+ EVT_RADIOBUTTON(self, RBUT1, self.EvtRadioButton)
+ EVT_RADIOBUTTON(self, RBUT2, self.EvtRadioButton)
+
+ self.SetSizer(sizer)
def EvtRadioBox(self, event):
class TestCustomStatusBar(wxFrame):
def __init__(self, parent, log):
- wxFrame.__init__(self, parent, -1, 'Test Custom StatusBar',
- wxPoint(0,0), wxSize(500, 300))
- wxWindow(self, -1).SetBackgroundColour(wxNamedColour("WHITE"))
+ wxFrame.__init__(self, parent, -1, 'Test Custom StatusBar')
+ #wxWindow(self, -1).SetBackgroundColour(wxNamedColour("WHITE"))
self.sb = CustomStatusBar(self, log)
self.SetStatusBar(self.sb)
+ tc = wxTextCtrl(self, -1, "", style=wxTE_READONLY|wxTE_MULTILINE)
+
+ self.SetSize((500, 300))
EVT_CLOSE(self, self.OnCloseWindow)
def OnCloseWindow(self, event):
from wxPython.wx import *
+haveToggleBtn = 1
+try:
+ wxToggleButton
+except NameError:
+ haveToggleBtn = 0
+
#----------------------------------------------------------------------
class TestPanel(wxPanel):
#----------------------------------------------------------------------
def runTest(frame, nb, log):
- win = TestPanel(nb, log)
- return win
+ if haveToggleBtn:
+ win = TestPanel(nb, log)
+ return win
+ else:
+ dlg = wxMessageDialog(frame, 'wxToggleButton is not available on this platform.',
+ 'Sorry', wxOK | wxICON_INFORMATION)
+ dlg.ShowModal()
+ dlg.Destroy()
+
+
#----------------------------------------------------------------------
EVT_TOOL_RCLICKED(self, -1, self.OnToolRClick) # Match all
EVT_TIMER(self, -1, self.OnClearSB)
- tb.AddSeparator()
- cbID = wxNewId()
- tb.AddControl(wxComboBox(tb, cbID, "", choices=["", "This", "is a", "wxComboBox"],
- size=(150,-1), style=wxCB_DROPDOWN))
- EVT_COMBOBOX(self, cbID, self.OnCombo)
+ if wxPlatform != "__WXMAC__":
+ tb.AddSeparator()
+ cbID = wxNewId()
+ tb.AddControl(wxComboBox(tb, cbID, "", choices=["", "This", "is a", "wxComboBox"],
+ size=(150,-1), style=wxCB_DROPDOWN))
+ EVT_COMBOBOX(self, cbID, self.OnCombo)
tb.Realize()
defSrcPath="/projects/wx"
defDstPath="/projects/wx/wxPython/dist"
-pkgName="wxMacPython"
+pkgName="wxPythonOSX"
#version=`date +"%Y-%m-%d"`
version=`cd $defSrcPath/wxPython; python$PYVER -c 'import setup;print setup.VERSION'`
highlightClr = wxSystemSettings_GetSystemColour(wxSYS_COLOUR_BTNHIGHLIGHT)
self.shadowPen = wxPen(shadowClr, 1, wxSOLID)
self.highlightPen = wxPen(highlightClr, 1, wxSOLID)
- self.focusIndPen = wxPen(textClr, 1, wxUSER_DASH)
- ##self.focusIndPen = wxPen(textClr, 1, wxDOT)
+ if wxPlatform == "__WXMAC__":
+ self.focusIndPen = wxPen(textClr, 1, wxSOLID)
+ else:
+ self.focusIndPen = wxPen(textClr, 1, wxUSER_DASH)
+ self.focusIndPen.SetDashes([1,1])
+ self.focusIndPen.SetCap(wxCAP_BUTT)
+ self.focusClr = highlightClr
def SetBackgroundColour(self, colour):
self.shadowPen = wxPen(wxColour(sr,sg,sb), 1, wxSOLID)
hr, hg, hb = min(255,r+64), min(255,g+64), min(255,b+64)
self.highlightPen = wxPen(wxColour(hr,hg,hb), 1, wxSOLID)
+ self.focusClr = wxColour(hr, hg, hb)
def _GetLabelSize(self):
def DrawFocusIndicator(self, dc, w, h):
bw = self.bezelWidth
- if self.hasFocus:
- self.focusIndPen.SetColour(self.GetForegroundColour())
- else:
- self.focusIndPen.SetColour(self.GetBackgroundColour())
- self.focusIndPen.SetDashes([1,1])
- self.focusIndPen.SetCap(wxCAP_BUTT)
+## if self.hasFocus:
+## self.focusIndPen.SetColour(self.GetForegroundColour())
+## else:
+## #self.focusIndPen.SetColour(self.GetBackgroundColour())
+## self.focusIndPen.SetColour(self.GetForegroundColour())
+ self.focusIndPen.SetColour(self.focusClr)
+ dc.SetLogicalFunction(wxINVERT)
dc.SetPen(self.focusIndPen)
dc.SetBrush(wxTRANSPARENT_BRUSH)
dc.DrawRectangle(bw+2,bw+2, w-bw*2-4, h-bw*2-4)
+ dc.SetLogicalFunction(wxCOPY)
def OnPaint(self, event):
def UpdateView(self, dc = None):
- if not dc:
+ if dc is None:
dc = wxClientDC(self)
- self.SetCharDimensions()
- self.KeepCursorOnScreen()
- self.DrawSimpleCursor(0,0,dc, true)
- self.Draw(dc)
+ if dc.Ok():
+ self.SetCharDimensions()
+ self.KeepCursorOnScreen()
+ self.DrawSimpleCursor(0,0,dc, true)
+ self.Draw(dc)
def OnPaint(self, event):
dc = wxPaintDC(self)
self.selectColor = wxColour(238, 220, 120) # r, g, b = emacsOrange
def InitDoubleBuffering(self):
- bw,bh = self.GetClientSizeTuple()
- self.mdc = wxMemoryDC()
- self.mdc.SelectObject(wxEmptyBitmap(bw,bh))
+ pass
def DrawEditText(self, t, x, y, dc):
dc.DrawText(t, x * self.fw, y * self.fh)
if not odc:
odc = wxClientDC(self)
- dc = self.mdc
- dc.SetFont(self.font)
- dc.SelectObject(wxEmptyBitmap(self.bw,self.bh))
- dc.SetBackgroundMode(wxSOLID)
- dc.SetTextBackground(self.bgColor)
- dc.SetTextForeground(self.fgColor)
- dc.Clear()
- for line in range(self.sy, self.sy + self.sh):
- self.DrawLine(line, dc)
- if len(self.lines) < self.sh + self.sy:
- self.DrawEofMarker(dc)
- odc.Blit(0,0,self.bw,self.bh,dc,0,0,wxCOPY)
- self.DrawCursor(odc)
+ bmp = wxEmptyBitmap(max(1,self.bw), max(1,self.bh))
+ dc = wxBufferedDC(odc, bmp)
+ if dc.Ok():
+ dc.SetFont(self.font)
+ dc.SetBackgroundMode(wxSOLID)
+ dc.SetTextBackground(self.bgColor)
+ dc.SetTextForeground(self.fgColor)
+ dc.Clear()
+ for line in range(self.sy, self.sy + self.sh):
+ self.DrawLine(line, dc)
+ if len(self.lines) < self.sh + self.sy:
+ self.DrawEofMarker(dc)
+ self.DrawCursor(dc)
##------------------ eofMarker stuff