from wxPython.wx import *
from wxPython.html import wxHtmlWindow
+##from wxPython.stc import *
+
import images
#---------------------------------------------------------------------------
-## _treeList = [
-## ('New since last release', ['wxGenericDirCtrl',
-## 'wxImageFromStream',
-## 'RowColSizer',
-## 'Unicode',
-## 'wxFileHistory',
-## ]),
-
-## ('Windows', ['wxFrame', 'wxDialog', 'wxMiniFrame',
-## 'wxGrid', 'wxSashWindow',
-## 'wxScrolledWindow', 'wxSplitterWindow',
-## 'wxStatusBar', 'wxNotebook',
-## 'wxHtmlWindow',
-## 'wxStyledTextCtrl_1', 'wxStyledTextCtrl_2',
-## 'wxPopupWindow',
-## 'wxDynamicSashWindow',
-## ]),
-
-## ('Common Dialogs', ['wxColourDialog', 'wxDirDialog', 'wxFileDialog',
-## 'wxSingleChoiceDialog', 'wxTextEntryDialog',
-## 'wxFontDialog', 'wxPageSetupDialog', 'wxPrintDialog',
-## 'wxMessageDialog', 'wxProgressDialog', 'wxFindReplaceDialog',
-## ]),
-
-## ('Controls', ['wxButton', 'wxCheckBox', 'wxCheckListBox', 'wxChoice',
-## 'wxComboBox', 'wxGauge', 'wxListBox', 'wxListCtrl', 'VirtualListCtrl',
-## 'wxTextCtrl',
-## 'wxTreeCtrl', 'wxSpinButton', 'wxSpinCtrl', 'wxStaticText',
-## 'wxStaticBitmap', 'wxRadioBox', 'wxSlider', 'wxToolBar',
-## 'wxCalendarCtrl', 'wxToggleButton',
-## 'wxEditableListBox', 'wxLEDNumberCtrl',
-## ]),
-
-## ('Window Layout', ['wxLayoutConstraints', 'LayoutAnchors', 'Sizers', 'XML_Resource',
-## 'RowColSizer',
-## ]),
-
-## ('Miscellaneous', [ 'DragAndDrop', 'CustomDragAndDrop', 'URLDragAndDrop',
-## 'FontEnumerator',
-## 'wxTimer', 'wxValidator', 'wxGLCanvas', 'DialogUnits',
-## 'wxImage', 'wxMask', 'PrintFramework', 'wxOGL',
-## 'PythonEvents', 'Threads',
-## 'ActiveXWrapper_Acrobat', 'ActiveXWrapper_IE',
-## 'wxDragImage', "wxProcess", "FancyText", "OOR", "wxWave",
-## 'wxJoystick', 'DrawXXXList', 'ErrorDialogs', 'wxMimeTypesManager',
-## 'ContextHelp', 'SplitTree', 'Unicode', 'wxFileHistory',
-## ]),
-
-## ('wxPython Library', ['Layoutf', 'wxScrolledMessageDialog',
-## 'wxMultipleChoiceDialog', 'wxPlotCanvas', 'wxFloatBar',
-## 'wxCalendar', 'wxMVCTree', 'wxVTKRenderWindow',
-## 'FileBrowseButton', 'GenericButtons', 'wxEditor',
-## 'ColourSelect', 'ImageBrowser',
-## 'infoframe', 'ColourDB', 'PyCrust', 'PyCrustWithFilling',
-## 'TablePrint',
-## 'wxRightTextCtrl',
-## ]),
-
-## ('Cool Contribs', ['pyTree', 'hangman',
-## #'SlashDot',
-## 'XMLtreeview'
-## ]),
-
-## ]
-
-
_treeList = [
# new stuff
('New since last release', [
'wxFileHistory',
'wxGenericDirCtrl',
'wxImageFromStream',
+ 'wxArtProvider',
+ 'ScrolledPanel',
+ 'wxMenu',
+ 'wxIEHtmlWin',
+ 'wxKeyEvents',
+ 'wxWizard',
+ 'wxXmlResourceHandler',
]),
# managed windows == things with a caption you can close
'wxFrame',
'wxMDIWindows',
'wxMiniFrame',
+ 'wxWizard',
]),
# the common dialogs
'wxTextEntryDialog',
]),
- # dialogs form libraries
+ # dialogs from libraries
('More Dialogs', [
'ErrorDialogs',
'ImageBrowser',
# core controls
('Core Windows/Controls', [
- 'VirtualListCtrl',
'wxButton',
'wxCheckBox',
'wxCheckListBox',
'wxGrid',
'wxListBox',
'wxListCtrl',
+ 'wxListCtrl_virtual',
+ 'wxMenu',
'wxNotebook',
'wxPopupWindow',
'wxRadioBox',
'wxStaticBitmap',
'wxStatusBar',
'wxTextCtrl',
- 'wxTimer',
'wxToggleButton',
'wxToolBar',
'wxTreeCtrl',
'wxDynamicSashWindow',
'wxEditableListBox',
'wxEditor',
- 'wxFloatBar',
+ #'wxFloatBar', deprecated
'wxHtmlWindow',
+ 'wxIEHtmlWin',
'wxLEDNumberCtrl',
'wxMimeTypesManager',
- 'wxMVCTree',
+ #'wxMVCTree', deprecated
+ 'wxRightTextCtrl',
'wxStyledTextCtrl_1',
'wxStyledTextCtrl_2',
- 'wxRightTextCtrl',
]),
# How to lay out the controls in a frame/dialog
'LayoutAnchors',
'Layoutf',
'RowColSizer',
+ 'ScrolledPanel',
'Sizers',
'wxLayoutConstraints',
- 'XML_Resource',
+ 'wxXmlResource',
+ 'wxXmlResourceHandler',
]),
# ditto
'Threads',
'wxProcess',
'wxTimer',
+ 'wxKeyEvents',
]),
# Clipboard and DnD
'wxImage',
'wxImageFromStream',
'wxMask',
+ 'wxArtProvider',
]),
# Other stuff
'ActiveXWrapper_IE',
'wxGLCanvas',
'wxPlotCanvas',
- 'wxVTKRenderWindow',
]),
- # pyTree, hangman, ... in the samples dir
+
('Check out the samples dir too', [
]),
self.tc.AppendText(message + '\n')
+class MyTP(wxPyTipProvider):
+ def GetTip(self):
+ return "This is my tip"
+
#---------------------------------------------------------------------------
def opj(path):
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")
self.nb = wxNotebook(splitter2, -1, style=wxCLIP_CHILDREN)
# Set up a wxHtmlWindow on the Overview Notebook page
- self.ovr = wxHtmlWindow(self.nb, -1, size=(400, 400))
- self.nb.AddPage(self.ovr, self.overviewText)
+ # we put it in a panel first because there seems to be a
+ # refresh bug of some sort (wxGTK) when it is directly in
+ # the notebook...
+ if 0: # the old way
+ self.ovr = wxHtmlWindow(self.nb, -1, size=(400, 400))
+ self.nb.AddPage(self.ovr, self.overviewText)
+
+ else: # hopefully I can remove this hacky code soon, see bug #216861
+ panel = wxPanel(self.nb, -1, style=wxCLIP_CHILDREN)
+ self.ovr = wxHtmlWindow(panel, -1, size=(400, 400))
+ self.nb.AddPage(panel, self.overviewText)
+
+ def OnOvrSize(evt, ovr=self.ovr):
+ ovr.SetSize(evt.GetSize())
+
+ EVT_SIZE(panel, OnOvrSize)
+ EVT_ERASE_BACKGROUND(panel, EmptyHandler)
+
self.SetOverview(self.overviewText, overview)
# But instead of the above we want to show how to use our own wxLog class
wxLog_SetActiveTarget(MyLog(self.log))
-
+ # for serious debugging
+ #wxLog_SetActiveTarget(wxLogStderr())
+ #wxLog_SetTraceMask(wxTraceMessages)
self.Show(true)
+
# add the windows to the splitter and split it.
splitter2.SplitHorizontally(self.nb, self.log)
splitter.SplitVertically(self.tree, splitter2)
self.SetOverview(itemText + " Overview", module.overview)
finally:
wxEndBusyCursor()
+ self.tree.Refresh()
# in case runTest is modal, make sure things look right...
self.nb.Refresh();
- wxYield()
+ wxSafeYield()
self.window = module.runTest(self, self.nb, self) ###
if self.window:
self.nb.AddPage(self.window, 'Demo')
- wxYield()
self.nb.SetSelection(2)
+ self.nb.Refresh() # without this wxMac has troubles showing the just added page
else:
self.ovr.SetPage("")
showTip, index = (1, 0)
if showTip:
tp = wxCreateFileTipProvider(opj("data/tips.txt"), index)
+ ##tp = MyTP(0)
showTip = wxShowTip(self, tp)
index = tp.GetCurrentTip()
open(opj("data/showTips"), "w").write(str( (showTip, index) ))
bmp = wxImage(opj("bitmaps/splash.gif")).ConvertToBitmap()
wxSplashScreen.__init__(self, bmp,
wxSPLASH_CENTRE_ON_SCREEN|wxSPLASH_TIMEOUT,
- 4000, None, -1)
+ 4000, None, -1,
+ style = wxSIMPLE_BORDER|wxFRAME_NO_TASKBAR|wxSTAY_ON_TOP)
EVT_CLOSE(self, self.OnClose)
def OnClose(self, evt):
os.chdir(demoPath)
except:
pass
- app = MyApp(0)
+ app = MyApp(wxPlatform == "__WXMAC__")
app.MainLoop()