Compare commits

..

544 Commits

Author SHA1 Message Date
Bryan Petty
ee3ad6dd6e This commit was manufactured by cvs2svn to create tag 'wxPy_2_3b1'.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/tags/wxPy_2_3b1@8905 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-12-11 04:00:06 +00:00
Robin Dunn
2f2dc32851 Updated distribution stuff
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8904 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-12-11 04:00:06 +00:00
Robin Dunn
1404c10bca *** empty log message ***
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8903 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-12-11 03:20:07 +00:00
Robin Dunn
d3f175108b a fix in the demo
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8902 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-12-11 02:55:03 +00:00
Robin Dunn
2cd2fac87f Fixed a bunch of leaking references in how the callbacks deal with
objects.  Should be MUCH better now.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8901 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-12-11 02:53:24 +00:00
Robin Dunn
cb29fb86c0 *** empty log message ***
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8900 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-12-11 02:33:52 +00:00
Stefan Csomor
8d823dabdc cw6 makefiles (makemac6.mcp)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8896 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-12-10 16:03:42 +00:00
Stefan Csomor
e9d7ad4dbf added cw6 fixes and patrick's patches
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8894 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-12-10 14:41:41 +00:00
Vadim Zeitlin
ca36c2cc8f merged in slider validation bug from the 2.2 branch
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8893 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-12-10 12:50:32 +00:00
Vadim Zeitlin
3d8dea7e2e merged in the small changes from the 2.2 branch
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8891 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-12-10 12:04:19 +00:00
Stefan Csomor
d015713e78 added cw6 fixes and patrick's patches
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8888 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-12-10 10:17:00 +00:00
Robin Dunn
de20db997d Fixed a bunch of leaking references in how the callbacks deal with
objects.  Should be MUCH better now.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8887 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-12-10 08:37:52 +00:00
Vadim Zeitlin
2d5e89e1cd merged in the fix for printing \% on PS DC
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8886 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-12-10 00:24:06 +00:00
Vadim Zeitlin
d8edb3856b fixed compilation with wxUSE_TEXTFILE=0
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8883 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-12-05 22:38:43 +00:00
Julian Smart
1192d9ecd0 Small mods
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8881 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-12-04 16:44:50 +00:00
Julian Smart
51ab940072 Updated the FAQ a little
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8879 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-12-04 16:27:11 +00:00
Ron Lee
eb158888a0 added completed fi.po translation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8878 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-12-04 05:48:47 +00:00
Ron Lee
97d69640d0 rebuilt .po files
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8877 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-12-04 05:13:58 +00:00
Julian Smart
c57e060dc3 Corrected bug in cmdlpars.tex
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8874 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-12-03 18:34:19 +00:00
Julian Smart
5e0e6ceb8f Added accelerators to Undo/Redo menu items
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8873 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-12-03 18:25:13 +00:00
Vadim Zeitlin
b6a3d6ad88 fix for assert failure when deleting tree ctrl in-place edit window (sometimes)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8870 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-12-01 01:39:16 +00:00
Vadim Zeitlin
3e79ed960a fix for enter processing of owner-drawn buttons
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8868 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-12-01 01:13:20 +00:00
George Tasker
55842641bb A few spelling typos fixed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8866 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-29 15:29:04 +00:00
George Tasker
5df6ed1c52 Fixed mis-matched curley braces on third line from the end (missing a left curley brace -- [wxgetenv})
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8865 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-29 14:45:33 +00:00
David Webster
bf09fab3b6 wx22 to wx23
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8864 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-29 05:20:26 +00:00
David Webster
496fd9fb93 Minor updates to help compiles
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8863 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-29 05:18:49 +00:00
David Webster
eedb15434a VA needs FALSE not false
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8862 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-29 05:17:43 +00:00
David Webster
05a8bfed08 Updates to Timer class and a couple of wxDC methods.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8860 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-28 22:13:33 +00:00
David Webster
b9cf5e6d2b Updates to Timer class
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8859 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-28 22:12:58 +00:00
Robert Roebling
880d870ea4 Speed-up for wxCanvasImage.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8858 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-28 21:01:20 +00:00
David Webster
bd3e41f600 declare the wx2os2PenStyle helper in the header.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8854 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-27 21:26:12 +00:00
David Webster
fd368161d9 Forgot to update this enhancement from last weekend
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8852 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-27 20:01:19 +00:00
David Webster
bf2c4b942a OS/2 VisualAge doesn't know about lower case true and false and redefine a for loop variable in gdicmn for OS/2
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8851 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-27 20:00:18 +00:00
David Webster
3bdb723286 OS/2 VisualAge doesn't know about lower case true and false
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8850 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-27 19:59:25 +00:00
Václav Slavík
aaa2b34e81 MSW fixes; ^M removal
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8849 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-27 13:55:03 +00:00
Jouk Jansen
97b305b71c Modified Files:
wxWindows/setup.h_vms wxWindows/src/unix/utilsunx.cpp

 Updated VMScompile support
 Corrected typo
----------------------------------------------------------------------


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8848 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-27 12:13:25 +00:00
Robert Roebling
3ac81fb1c5 Applied glcanvas patch.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8847 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-27 11:11:49 +00:00
Robert Roebling
6491f9335e Removed most of user dir.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8846 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-27 11:11:12 +00:00
Robert Roebling
b9c6012844 Removed surplus file.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8845 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-27 11:02:07 +00:00
David Webster
19bf0c6900 A few OS/2 additions to enable the colour database to work with PM.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8844 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-27 04:18:36 +00:00
David Webster
26ac77dbe2 wxPen code to fully enable pens and their use in wxDC's.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8843 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-27 04:16:24 +00:00
David Webster
b34590ebf8 Some OS/2 customization to make a more presentable statusbar.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8842 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-27 04:14:45 +00:00
Vadim Zeitlin
308978f6aa wxSetEnv for Win32 (now seems to work)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8840 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-27 00:21:29 +00:00
Vadim Zeitlin
1fb454751d wxSetEnv for Win32 (doesn't really work)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8839 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-26 23:13:04 +00:00
Vadim Zeitlin
5807634c6e documented just added env functions
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8838 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-26 22:55:32 +00:00
Vadim Zeitlin
8fd0d89b7d added wxGet/Set/UnsetEnv() for Unix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8837 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-26 22:46:35 +00:00
Vadim Zeitlin
b855ef7757 fixed SubString docs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8835 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-26 19:40:50 +00:00
Robert Roebling
8636c073a3 Split wxCanvas into two (wxVectorCanvas).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8833 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-26 16:36:43 +00:00
Vadim Zeitlin
a2bd1fbb8b fix for uninit vars
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8832 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-26 14:18:27 +00:00
Vadim Zeitlin
6e50d0eb2f oops... compilation fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8831 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-26 14:16:39 +00:00
Julian Smart
6292dad031 Added m_destroybuf initialisation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8830 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-26 11:15:05 +00:00
Robert Roebling
da052901fd Corrected typos in geometry.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8829 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-26 10:25:20 +00:00
Robert Roebling
e22454beda Ported stable-tree refresh code to devel tree.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8828 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-26 10:20:11 +00:00
Vadim Zeitlin
af88eefff2 patch 102361 applied
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8825 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-25 23:41:27 +00:00
Vadim Zeitlin
ee495e4cab typo in AutosizeRowOrCol fixed (bug 115437)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8824 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-25 23:23:41 +00:00
Václav Slavík
9354814833 various bugfixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8823 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-25 23:14:27 +00:00
Václav Slavík
2f34c1a97e updated XRC sample
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8822 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-25 23:14:11 +00:00
Václav Slavík
bee5a36e15 added growable cols and rows to wxFlexGridSizer XRC handler
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8821 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-25 23:13:57 +00:00
Václav Slavík
91dd52fe3b added wxFrame::IsMDIChild() (msw only, protected)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8820 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-25 23:13:29 +00:00
Václav Slavík
f94dfb3897 applied (part of) Alexey Leko's patch
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8819 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-25 23:13:06 +00:00
Vadim Zeitlin
4e00f54113 fixed Set(wxPercentOf) (bug #12227)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8818 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-25 23:12:57 +00:00
Vadim Zeitlin
4ad3c82fff compilation fix for !wxUSE_DIRDLGG
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8817 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-25 22:44:55 +00:00
Vadim Zeitlin
5eaac5b574 fixed majorDim == 0 problem in wxGTK::wxRadioBox
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8816 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-25 22:23:44 +00:00
Robert Roebling
f03b31e838 Small mods to wxCanvas.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8815 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-25 20:07:21 +00:00
Robert Roebling
6c7873e1a5 Made geometry classes link.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8814 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-24 21:52:37 +00:00
Robert Roebling
cd79f7b0d9 Made geometry class link.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8813 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-24 21:51:52 +00:00
Robert Roebling
f9032263ab Trying to understand wxCanvas.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8812 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-24 20:19:39 +00:00
Václav Slavík
c8b7a961ff added i18n support to the compiler
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8809 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-24 17:20:20 +00:00
Václav Slavík
c39755aa1c added support for 'imagefile' property type
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8808 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-24 17:20:08 +00:00
Václav Slavík
26607f41ae wxrcedit bugfixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8807 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-24 17:19:48 +00:00
Václav Slavík
fda09b3f66 fixed bug in wxFileDialog: it tested wxCHANGE_DIR against GetWindowStyle() instead of m_dialogStyle
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8806 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-24 17:19:29 +00:00
Vadim Zeitlin
a1f79c1e00 1. added wxGTK::wxToolBar::SetToolShortHelp() and test for it in sample
2. fix a crash if SetSelection is called too early in wxTextCtrl
3. patch for mouse position in wxTreeCtrl events


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8805 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-24 17:07:12 +00:00
George Tasker
38cfbffa15 Added wxDbTable::SetOrderByColNums() function
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8804 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-24 16:47:45 +00:00
George Tasker
eb3b9ddac4 Increased the max length of allowed WHERE clauses and full statements (eventually needs to be changed over to use wxString).
Fixed the order of params in TablePrivileges()
Changed 0s to NULLs in params


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8803 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-24 16:46:11 +00:00
George Tasker
2b63ff5d38 Added SetOrderByColNums() function
Changed 0s to NULLs for const char * params


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8802 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-24 16:43:36 +00:00
George Tasker
59990c225c More corrections and additions
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8801 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-24 16:40:44 +00:00
Vadim Zeitlin
5442f43593 small typo fixed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8799 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-24 14:27:09 +00:00
Robert Roebling
08bf1d5d98 matrix compile fix
make listctrl scroll one line in report more,
    not some arbitrary 15 pixels


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8798 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-24 13:34:35 +00:00
Robert Roebling
fdd4c4d0a4 Added matrix.cpp to compilables
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8797 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-24 12:42:08 +00:00
Robert Roebling
513abb883f Made dnd reentrent safe as per stable tree.
Dropped in new wxMatrix.
  Compile wxMatrix.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8796 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-24 12:41:23 +00:00
Robert Roebling
555526fbff dropped in new wxMatrix (from wxCanvas)
use wxUSE_GEOMETRY


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8795 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-24 12:40:19 +00:00
Robert Roebling
147a1f7e70 RPM version 2.3.0
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8794 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-24 12:39:30 +00:00
Robert Roebling
e8f65ba610 Bump up version to 2.3.0,
Add wxUSE_GEOMETRY


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8793 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-24 12:38:55 +00:00
Robert Roebling
44f889cb5f Adding wxUSE_GEOMETRY to setup.h.in
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8792 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-24 12:36:52 +00:00
Robert Roebling
09cc749c7d Adding new wxCanvas
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8791 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-24 12:35:39 +00:00
Robert Roebling
84fba40bea Adding new wxCanvas
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8790 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-24 12:34:35 +00:00
Jouk Jansen
f90fbcc192 Committing in .
Modified Files:
 	wxWindows/src/gtk/listbox.cpp

 corrections for VMS since someone updated this one using an old version.

----------------------------------------------------------------------


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8789 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-24 09:50:27 +00:00
Jouk Jansen
f58557a80d Committing in .
Modified Files:
 	wxWindows/src/gtk/app.cpp

 Someone included VMS-stuff that I removed several month ago because it was
not working. Now it not even compiled!!!!

----------------------------------------------------------------------


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8788 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-24 08:27:02 +00:00
Vadim Zeitlin
b913871062 linking fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8787 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-24 04:22:05 +00:00
Robert Roebling
b1f541081a Updated afm files as per stable branch.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8786 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-23 21:46:23 +00:00
Robert Roebling
585266618c Don't call busy cursor when creating a message
dialog - it takes longer to set the cursor than
    to create the dialog under GTK.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8785 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-23 21:44:01 +00:00
Robert Roebling
733b25e1a9 Ported DrawPolygone fix and new PS font name
matching from stable branch.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8784 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-23 21:42:55 +00:00
Robert Roebling
96997d6511 Ported new double idle handlers for pending events
processing from stable branch.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8783 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-23 21:41:37 +00:00
Robert Roebling
4a82abc831 Upported wxListBox key handling and SetFirstItem()
from stable branch. Removed Vadim's code since
    I think mine handles all cases correctly.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8782 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-23 21:40:26 +00:00
Robert Roebling
d1dea842a0 Busy cursor don't need wxYield(), SendIdleEvents()
is enough and safe.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8781 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-23 21:38:41 +00:00
Julian Smart
42b3e73ede Some mods
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8778 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-23 20:33:40 +00:00
Vadim Zeitlin
47fc03d21a more fixes to stream code: allow deriving from wxStreamBuffer and using custom
buffers with wxBufferedInput/OutputStream


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8777 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-23 19:45:46 +00:00
Julian Smart
ee21d1542c Clarified some things for Mingw32 compilation.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8776 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-23 19:07:49 +00:00
Vadim Zeitlin
67c8c225f4 compilation fixes for wxMemoryStreams
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8775 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-23 16:26:12 +00:00
George Tasker
c67d60484b Corrections and additions to the wxODBC docs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8774 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-23 14:39:03 +00:00
George Tasker
3924dd226e Lots more memory/resource leak fixes. There are still more, but this solves about 75% of them.
These fixes also speed up tex2rtf greatly.  I can now build all the RTF version of the wxWindows manual in under 30 seconds, when before it took around 90 seconds.
Curley Brace matching is turned back on again.  I cannot find any places where it does not work.  If you find one, let me know


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8773 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-23 13:27:52 +00:00
Vadim Zeitlin
49e399d8c0 fixed memory allocation code of wxStreamBuffer to not realloc() new[]ed memory any more
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8772 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-23 04:34:27 +00:00
George Tasker
35d367d8dd Fixed missing Curley Brace
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8771 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-22 11:45:41 +00:00
David Webster
fa5593acee Update OS/2 Frame WM_PAINT processing
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8770 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-22 06:07:25 +00:00
George Tasker
973f253905 Fixed double deletion of a dialog in the effect of a failed connection to the datasource
Fixed call to TablePrivileges() in a commented out piece of code to use the correct parameters, in case someone uses it for an example


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8769 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-22 00:28:35 +00:00
George Tasker
d8a0a1c930 Fixed problems with the wxDb::Open(wxDb *copyDb) not copying in all the different data types required values
Added Interbase database support based on contributions from Roger Gammans
Enabled the wxDb::TablePrivileges() function for v2.3/2.4
Fixed a bunch of problems with wxDb::TablePrivileges() not working correctly with all databases.
Added the ability to pass in a SCHEMA to wxDbTablePrivileges() that greatly improves the speed of the privileges lookup.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8768 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-22 00:19:25 +00:00
George Tasker
f02d4a64a1 Added what I think is full support for Null column values in the tables, partially based on submissions by Roger Gammans
Added a parameters to wxDbTable::Open() to indicate whether Open() should check for table privileges or not.
wxDbTable::ClearMemberVar() added to set a single column to an initialized value
::ClearMemberVar() and ::ClearMemberVars() can now optionally set a column to be NULL via ::SetColNull()
::SetColNull() added as the primary function name for setting a column to be a NULL value, and ::SetNull() is deprecated
::SetColNull() now has a param to select whether a columns value is NULL or not.
::SetColNull() will now clear the column value in memory when setting the column to be NULL.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8767 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-22 00:18:45 +00:00
Vadim Zeitlin
3988b155d7 fixed wxTextCtrl::GetValue() bug for empty richedit ctrls (Marvin Aviles)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8766 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-21 18:01:27 +00:00
Vadim Zeitlin
e5f56a004e fixed bug with Broadcast() not waking up all threads (Pieter van der Meulen)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8765 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-21 17:22:03 +00:00
Robin Dunn
185d7c3ee4 New typemaps for wxString when compiling for Python 2.0 and beyond
that allow Unicode objects to be passed as well as String objects.  If
a Unicode object is passed PyString_AsStringAndSize is used to convert
it to a wxString using the default encoding.

Fixed the generic buttons so tool tips work for them.

Fixed a bug in the demo's tree control.

Added a listbox to the listbox demo that shows how to find items with
a patching prefix as keys are typed.

Added code to the wxListCtrl demo to show how to get text from a
column in report mode.

Added code to the toolbar demo to clear the long help from the status
bar after 2 seconds.

Added wxJoystick.

Fixed wxTimer so it can be used as described in the docs, either with
a Notify method in a subclass, or sending an event to a wxEvtHandler
object, (usually a window.)

Added wxNotifyEvent.Allow()


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8764 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-21 03:44:14 +00:00
George Tasker
baeea2909c Added From(), OrderBy() and Where() functions that correspons to the Set/GetWhereClause(), Set/GetOrderByClause() and Set/GetFromClause() functions.
Changed signature of wxDbTable constructor to have the default value of tblPath be "" instead of NULL which prevents crashes in the logging code if the constructor initialization fails for some reason.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8763 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-20 17:31:24 +00:00
George Tasker
e93a3a18fc SQL Server and (preliminary) DB2 support added
Fixed some potentially uninitialized variables


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8762 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-20 17:25:04 +00:00
George Tasker
a8aa2258e8 Added preliminary DB2 support.
Removed the #if EXPERIMENTAL_WXDB_FUNCTIONS blocks from around functions that will now be available in 2.4
Changed functions to return const char * rather than char * on certain functions
Added the wxDb::TablePrivileges() function
Added wxDb copy constructors and wxDbGetConnection() copy constructors which are able to copy the typing definitions of data types retrieved from the source wxDb instance to the new data connection instance to avoid the network/database overhead of querying the datasource for its data types once they are already known once.
SQL Server and (preliminary) DB2 support added
If compiling with Visual C++, the wxDbCreateDataSource() can now be enabled


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8761 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-20 17:23:06 +00:00
George Tasker
e2f4e132c1 Added preliminary DB2 support.
Removed the #if EXPERIMENTAL_WXDB_FUNCTIONS blocks from around functions that will now be available in 2.4
Changed functions to return const char * rather than char * on certain functions
Added the wxDb::TablePrivileges() function


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8760 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-20 17:17:09 +00:00
George Tasker
7d33179be4 Fixed the wxDirExists() function so that if asked about the root directory of a drive (i.e. "d:\") or a UNC directory, WIN32 apps will correctly report whether the dir exists
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8759 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-20 15:14:22 +00:00
David Webster
445c7bca97 Another DC fix.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8758 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-20 15:13:18 +00:00
David Webster
6f95262744 Fix and errant commented out line of code in DoGetPixel.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8757 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-20 14:09:24 +00:00
David Webster
b7084589db More OS/2 Updates
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8756 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-20 05:18:32 +00:00
Julian Smart
75212e68fd Removed #if wxUSE_TREECTRL (not in setup0.h, and not applied consistently)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8754 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-19 16:42:12 +00:00
David Webster
9adfefacbd New module def for OS/2
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8753 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-19 00:32:38 +00:00
David Webster
d08f23a71c Window proc processing updates
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8752 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-19 00:25:42 +00:00
Václav Slavík
a1db952fde added wxCursor ctor for creation from bits array
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8750 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-18 14:46:58 +00:00
Julian Smart
5740d24a02 Updated info on handlers
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8748 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-17 09:06:56 +00:00
David Webster
51c1d535fc New, reworked frame class for wxOS2 and more drawing routines in wxDC
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8747 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-17 06:02:53 +00:00
David Webster
60161cfac9 New, reworked frame class for wxOS2
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8746 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-17 06:01:48 +00:00
Vadim Zeitlin
3170a63c6f added an entry for Italian
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8745 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-16 13:48:03 +00:00
Vadim Zeitlin
05a7f61d90 patch from Mike Oliver <oliver@math.ucla.edu> to have correct position in wxTree/ListCtrl click events
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8743 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-16 13:38:56 +00:00
Václav Slavík
2c99715a09 applied Brian's patch
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8741 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-15 22:57:54 +00:00
David Webster
da4cc40ce0 For some reason VA needs a default ctor for wxHtmlHelpTreeItemData for helpfrm to compile under VA 4.0
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8740 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-15 16:54:08 +00:00
David Webster
8a985b8492 Need to define wxArrayGenericTreeItems as WX_DEFINE_WXPORTED_ARRAY instead of just WX_DEFINE_ARRAY to prevent msw .dll builds from complaining.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8739 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-15 16:52:53 +00:00
David Webster
e42b1b71ae New OS/2 VA .def file for treectrl code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8738 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-15 05:00:36 +00:00
David Webster
e15bbde041 Some OS/2 updates for VA3.0, specifically, in gsocket
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8737 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-15 04:59:08 +00:00
David Webster
86b3203fb1 bad delete operator, should be delete [] for gs_FSMimeFallbacks and removing debug allocs and deallocs for OS/2 in memory.cpp
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8736 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-15 04:58:06 +00:00
David Webster
79a4c912b5 TreeCtrl updates
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8735 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-14 22:47:31 +00:00
David Webster
1de711d740 no message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8734 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-13 19:53:34 +00:00
George Tasker
eea22fd5ff Added documentation for wxDbTable class
Added fixes/corrections for wxDb class and other associated helper classes


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8733 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-12 20:05:53 +00:00
Julian Smart
20a2bdc9c3 Minor tweaks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8732 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-12 19:55:10 +00:00
Julian Smart
34cfc23c75 Added missing VC++ project files
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8729 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-12 11:10:52 +00:00
Julian Smart
aea1dc7174 Corrected distribution file & removed ^M characters from about/makefile.g95
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8728 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-12 00:14:35 +00:00
Robin Dunn
21b020b543 some cleanup
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8726 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-12 00:07:56 +00:00
Robin Dunn
a4f7bf5849 Changed wxGridCellEditor::IsAcceptedKey to only check Control and Alt,
not Meta.  (NumLock is Meta for me, and so the old setting wouldn't
let any key activate the control if NumLock was on.)

Checked for WXK_NUMPAD_ENTER everywhere we were checking for
WXK_RETURN.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8725 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-12 00:07:15 +00:00
Julian Smart
3f3e668e3e Added Word template for formatting wxWindows manual
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8724 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-12 00:05:28 +00:00
Robin Dunn
84912ef8b7 Allow a NULL editor and/or renderer to be passed to RegisterDataType
and not crash when it tries to get them later.  (If NULL it falls back
to the grid's default like it used to before the type registry was
added.)

Added wxTE_PROCESS_TAB to wxTextCtrl style for MSW.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8723 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-11 23:57:16 +00:00
Robin Dunn
7c0d801cb4 fixed a typo and uncommented some methods
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8722 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-11 22:29:22 +00:00
Robin Dunn
425b21c7e3 for testing...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8721 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-11 22:12:45 +00:00
Vadim Zeitlin
b41ec29ad2 added missing function
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8720 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-11 16:12:09 +00:00
Vadim Zeitlin
33737618bc part of the previous patch
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8714 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-10 19:21:59 +00:00
Vadim Zeitlin
8591268f8f applied patches from Mike Oliver <oliver@math.ucla.edu> to return click position for item (right) click events in treectrl
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8713 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-10 16:44:27 +00:00
Vadim Zeitlin
779812aa23 added chinese translation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8711 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-09 13:23:04 +00:00
Vadim Zeitlin
8ce88dfa24 changed lbox font to be more readable
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8710 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-09 13:00:12 +00:00
Vadim Zeitlin
17260efd72 compilation fix for !WXWIN_COMPATIBILITY_2 and some code cleanup + smarter
code in wxDocManager::SelectViewType()


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8709 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-09 00:21:04 +00:00
Vadim Zeitlin
96bcf4f9cc compilation fix for builds when WXWIN_COMPATIBILITY_2 is not defined
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8708 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-08 23:58:42 +00:00
Vadim Zeitlin
59bd9598bc compilation/warning fixes for HP-UX
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8703 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-06 20:06:20 +00:00
Vadim Zeitlin
51a9ecbc68 ugly compilation fix for wxMotif
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8702 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-06 20:03:21 +00:00
Vadim Zeitlin
703f03c342 and another note about wxStringList vs wxArrayString
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8701 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-06 11:43:17 +00:00
Vadim Zeitlin
064998bf8b small note about untyped lists
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8700 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-06 11:41:19 +00:00
Václav Slavík
a62da4c56f added font and flags properties to wxrcedit
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8697 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-05 22:50:58 +00:00
Vadim Zeitlin
f4b6093eee updated files to know about darwin (Mac OS X)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8696 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-05 22:25:18 +00:00
Václav Slavík
237387ad31 fixed typo (IsOK instead of IsOk)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8695 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-05 18:35:48 +00:00
Václav Slavík
4f9297b0ee wxHTML src code indentation now conforms (more) to wxWin coding style
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8694 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-05 14:59:59 +00:00
Václav Slavík
1da7aa8c4a fixed <li><p> paragraph break problem
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8693 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-05 14:59:08 +00:00
Vadim Zeitlin
bb250157d9 typos fix from the main branch
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8692 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-05 14:04:04 +00:00
Vadim Zeitlin
52860855bf fix from the main branch which replaces delete with the (proper) delete []
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8690 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-05 13:26:16 +00:00
Julian Smart
68f30f26d2 Removed spurious brace
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8688 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-05 11:44:44 +00:00
Václav Slavík
12d9e30820 reworked the editor
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8687 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-04 23:34:33 +00:00
Václav Slavík
dbb88122c9 workarounded false memory leak report
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8686 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-04 23:32:29 +00:00
Robin Dunn
3351077305 some little tweaks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8684 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-04 07:41:29 +00:00
Robin Dunn
abbe77c16b Added base_IsAcceptedKey which was fogotten somehow...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8683 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-04 07:41:05 +00:00
Robin Dunn
bcb276d2ae *** empty log message ***
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8682 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-04 07:38:44 +00:00
Robin Dunn
8362557923 Added demo of creating a custom Grid Editor
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8681 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-04 07:38:17 +00:00
Robin Dunn
dbbb98cd9e updated SWIG generated stuff
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8680 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-04 07:37:31 +00:00
Robin Dunn
e7d63784e8 added /GX- to get around an internal compiler error in MSVC. I don't
get the error anymore but apparently others still do.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8679 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-04 07:36:36 +00:00
Vadim Zeitlin
3d49ce4485 ok, it does work - it's just that wxGTK doesn't
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8677 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-03 21:11:41 +00:00
Vadim Zeitlin
d6c9c1b71e added wxGetMultiChoice() (which refuses to work for some reason - will fix
a.s.a.p.)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8676 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-03 20:52:17 +00:00
Julian Smart
53ccf1c0ba Replaced comparisons with zero, with IsOk()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8675 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-03 18:02:03 +00:00
Vadim Zeitlin
f8c5636c42 regenerated
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8674 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-03 17:26:40 +00:00
Václav Slavík
10992a81d3 fixed incorrect GetTextExtent for wxTELETYPE font
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8672 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-11-01 23:04:13 +00:00
Robin Dunn
f641dada64 Changed version number in DLL name to 23_0
Added a new value for the FINAL flag to make another kind of wxPython
build possible


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8666 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-31 23:12:24 +00:00
Vadim Zeitlin
7b30ac82dd compilation fix (sorry!)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8664 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-31 15:13:54 +00:00
Robin Dunn
ea7c631cd4 The sticky tag as a bit too sticky... This check-in should now update
the right branch!


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8662 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-30 22:10:23 +00:00
Robin Dunn
494f8eacda Re-added a couple files that got left out of the merge somehow...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8661 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-30 21:58:36 +00:00
Robin Dunn
f97d84a63b Merged some STC fixes over to the main branch
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8660 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-30 21:57:12 +00:00
Robin Dunn
c368d904fc Merged wxPython 2.2.2 over to the main branch
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8658 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-30 21:08:42 +00:00
Vadim Zeitlin
7874bf5430 applied patch to uncover cells next to 0 automatically
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8657 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-30 17:06:43 +00:00
Vadim Zeitlin
f469b27cac wxDC::GetSize() should work now in wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8656 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-30 16:46:34 +00:00
Vadim Zeitlin
376aa62a5d wxDC::GetSize() should work now in wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8655 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-30 16:43:37 +00:00
Vadim Zeitlin
188781dbbd fixes from the 2.2 branch
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8654 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-30 16:38:56 +00:00
Vadim Zeitlin
4d1c1c3c70 replaced ++/-- with InterlockedInc/Decrement for accessing global vars
also cleaned wxConditionInternal code a bit (more)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8639 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-26 00:19:13 +00:00
Jouk Jansen
bbee61e50e Committing in .
Modified Files:
 	wxWindows/src/common/object.cpp

 properly #ifdef'd the DEBUG_PRINTF calls

----------------------------------------------------------------------


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8637 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-25 09:47:26 +00:00
David Webster
f44fdfb032 OS/2 fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8636 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-25 04:22:11 +00:00
David Webster
99f73df9b4 compile bug fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8635 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-25 04:18:41 +00:00
David Webster
480b358063 no message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8634 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-25 04:17:17 +00:00
David Webster
7e99520bd3 OS/2 updates for statusbar processing and easier VA debugging
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8633 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-24 21:48:58 +00:00
David Webster
28be2e8a17 OS/2 updates for statusbar processing
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8632 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-24 21:48:24 +00:00
David Webster
415ca026b4 OS/2 updates for easier VA debugging
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8631 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-24 21:47:55 +00:00
David Webster
d7e1a32274 OS/2 updates for debugging and statusbar processing
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8630 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-24 21:46:49 +00:00
David Webster
4720388fc5 Updates for os/2 -- mostly to allow easier VA debugging
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8629 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-24 21:45:56 +00:00
Julian Smart
b078fa025d Applying submitted wxOS2 mod
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8618 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-23 06:26:19 +00:00
Vadim Zeitlin
eb750029be minor fixes from the bug reports
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8606 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-20 16:10:13 +00:00
Vadim Zeitlin
e379e25847 mention 'b' flag for wxFFile::Open
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8605 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-20 15:48:49 +00:00
Vadim Zeitlin
523050b607 removed incorrect param from docs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8604 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-20 15:41:02 +00:00
Vadim Zeitlin
ba81034d1a removed the pad from wxWindow::DoGetBestSize(), now do it in Fit() only
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8603 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-20 15:32:30 +00:00
Vadim Zeitlin
9ef6ff8c4d an implementation of wxListBox::SetFirstItem() which seems to work
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8602 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-20 15:31:41 +00:00
Vadim Zeitlin
820f05f0c5 fixed off by 1 error in CharsetToEncoding() for CP encodings
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8600 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-20 14:39:18 +00:00
Vadim Zeitlin
0104114590 fixed problem with calling SetFont() when (multiline) text control didn't have any value yet
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8598 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-20 14:11:42 +00:00
Ron Lee
69754f3253 updated icon to yes (after losing the race to commit by a matter of milliseconds :)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8596 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-20 11:49:10 +00:00
Vadim Zeitlin
3dfaaa4d1d updated Swedish translation state
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8594 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-20 11:43:14 +00:00
Vadim Zeitlin
4f37a20b74 added listbox test/demo
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8589 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-19 23:58:42 +00:00
Vadim Zeitlin
6ba636000f 1. some more tests in console
2. added wxFileType::GetOpenCommand() demo in the exec sample
3. "fixed" the error messages from wxExecute() - still no idea why it happens
   though :-(


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8588 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-19 23:50:07 +00:00
Vadim Zeitlin
bab004238d added swedish translations
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8586 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-19 19:00:44 +00:00
Vadim Zeitlin
ea5ac909f8 fixed GetItemRect() and GetItemPosition() for scrolled items (patch from Mike Oliver <oliver@math.ucla.edu>)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8584 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-19 16:34:23 +00:00
Ron Lee
26345af835 updated translators info
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8583 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-19 16:14:55 +00:00
Vadim Zeitlin
bada28f00f set more event object fields for lbox dbl click events
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8581 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-19 00:52:57 +00:00
Václav Slavík
159933045e applied Brian's patches
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8580 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-18 21:51:04 +00:00
Vadim Zeitlin
216870690e crash due to missing break before WM_HELP handler fixed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8578 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-18 17:23:04 +00:00
Julian Smart
43b06bf976 Fixed memory bug
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8577 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-18 17:00:01 +00:00
Václav Slavík
c13cace125 added automatic growing of in-place wxTextCtrls for generic wxListCtrl and wxTreeCtrl
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8574 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-17 22:14:35 +00:00
Julian Smart
7328394a2a Made wxGenericDirCtrl compile with Cygwin
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8573 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-17 17:15:18 +00:00
Julian Smart
8f5bda17b3 Fixed memory leak
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8569 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-16 07:10:32 +00:00
Ron Lee
019df10ed0 merged new and updated translations from WX_2_2_BRANCH.
updated all po files with the main trunk source.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8561 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-15 18:41:37 +00:00
Vadim Zeitlin
3cc487d140 fixed false alert in wxRegKey::DeleteSelf
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8557 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-14 20:28:18 +00:00
Vadim Zeitlin
f4dcad9933 oops, removed the fix from the main branch which I somehow managed to commit in this one
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8551 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-14 00:22:45 +00:00
Julian Smart
f1d93f0bee Doc/distribution script mods
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8548 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-13 18:02:44 +00:00
Julian Smart
849c2b0b5f Added missing GIFs.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8547 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-13 16:07:33 +00:00
Julian Smart
1620f478e5 Added distribution script
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8546 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-13 15:04:40 +00:00
Vadim Zeitlin
6dfec4b8d9 added QueryRawValue() to wxRegKey and test code for it in the sample
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8543 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-12 23:40:26 +00:00
Vadim Zeitlin
1fc8878582 another GetInt/GetId bug fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8538 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-12 19:20:49 +00:00
Julian Smart
73a2995f98 Fixes for distribution scripts
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8535 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-12 16:32:03 +00:00
Vadim Zeitlin
1be06faf73 fix for assert when setting tooltip for a readonly combo
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8530 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-12 00:31:18 +00:00
Vadim Zeitlin
80a24267cb cosmetic fixes to font encoding names
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8529 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-11 23:21:32 +00:00
Václav Slavík
8a3f08bc6f fixed Cyrillic encodings
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8527 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-11 21:45:39 +00:00
Julian Smart
f5a7a9e1a9 Added a couple of distribution-related files
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8526 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-11 21:12:25 +00:00
Julian Smart
83b968da1a First draft of a cygwin script to create wxMSW distributions
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8525 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-11 18:12:14 +00:00
Julian Smart
c7107a453c Added some VC++ project files
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8524 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-11 15:33:49 +00:00
Vadim Zeitlin
b3daa5a322 added (MSW/GTK) and documented new frame and dialog flags
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8523 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-11 13:16:37 +00:00
Vadim Zeitlin
2fb40b2cd2 create dialog with !NULL parent
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8522 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-11 12:55:38 +00:00
Vadim Zeitlin
91773b3f0d added WS_POPUP style to resizeable dialogs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8521 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-11 12:49:04 +00:00
Václav Slavík
1b113a811d added wxHtmlWindow::HistoryCanBack/Forward
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8516 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-10 22:07:16 +00:00
Julian Smart
d9300df9e6 Added wxXML demo VC++ project files; corrected filename in xmldemo.cpp (but still doesn't
load menu bar)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8515 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-10 17:10:24 +00:00
Julian Smart
f485492a1e Added VC++ project files (seems logical)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8514 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-10 16:59:34 +00:00
Vadim Zeitlin
5a2762f083 fixed MDI accel bug, more tests for it in the sample
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8513 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-10 13:55:10 +00:00
Vadim Zeitlin
e5f741e5d4 attempts at making modal dialogs without parent work - failed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8512 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-10 13:16:16 +00:00
Vadim Zeitlin
b8505921fc make msg boxes without parent owned by top level app window
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8511 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-10 13:08:59 +00:00
Julian Smart
0f05afcced Removed 'interface' pragma for gcc 2.96
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8510 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-10 12:38:09 +00:00
Julian Smart
deea56b14f Doc corrections
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8509 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-10 11:11:36 +00:00
Julian Smart
2f3ebe4c1a Added wxGenericDirCtrl documentation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8508 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-10 10:50:27 +00:00
Václav Slavík
d84a4d519d fix for assertion failure
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8506 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-09 22:59:05 +00:00
Julian Smart
e3c10211e4 Added wxQuantize, wxTipWindow, wxSplashScreen docs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8499 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-09 14:31:03 +00:00
Julian Smart
4e28924cdb Doc corrections; added HelpGen project files
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8498 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-09 13:53:33 +00:00
Julian Smart
7cb74906e1 Added context-sensitive help docs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8497 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-09 13:13:39 +00:00
Vadim Zeitlin
f368ba4b28 compilation fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8495 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-08 23:40:43 +00:00
Vadim Zeitlin
3f6638b82b wxFileDialog changed to use (new) wxCHANGE_DIR flag, docs updated
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8494 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-08 23:35:09 +00:00
Václav Slavík
d7ace8a929 fixed EditLabel() for wxLC_REPORT mode
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8492 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-08 22:29:38 +00:00
Václav Slavík
e066e2566a change in XRC format
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8491 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-07 21:56:37 +00:00
Václav Slavík
3efb0e4bbd renamed resource.xml to resource.xrc
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8490 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-07 21:52:57 +00:00
Václav Slavík
88a2dafd70 fixed use of wxMenuItem::SetBitmap
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8489 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-07 21:52:01 +00:00
Vadim Zeitlin
ef8698d677 1. more warnings fixed
2. fixed wxProgressDialog to work as wxDialog now does


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8488 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-07 21:34:35 +00:00
Vadim Zeitlin
b0a6bb75bc 1. a couple of compilation warnings fixed (strconv/listctrl)
2. now reenable windows disabled by wxWindowDisabler slightly earlier:
   this solves the problem with "wrong" window being brought to top and
   eliminates the need for BringWindowToTop() and SetActiveWindow() in
   our code
3. style wxFRAME_FLOAT_ON_PARENT is now obsolete and unused, all frames
   have WS_EX_APPWINDOW style and appear on the taskbar


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8487 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-07 20:19:10 +00:00
Robin Dunn
98243feda0 Added a WXDLLEXPORT
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8486 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-07 02:38:05 +00:00
Václav Slavík
15db3cf513 fixed bug in parsing incomplete HTML when the very last tag was not closed with >
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8485 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-06 20:22:26 +00:00
Václav Slavík
df4b7d9894 changed \n\r to \r\n
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8484 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-06 20:21:47 +00:00
Julian Smart
12ed316d02 Added DECLARE/IMLEMENT_CLASS for wxToolBarBase
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8483 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-06 16:52:29 +00:00
Jouk Jansen
6955ce29ed Modified Files:
wxWindows/descrip.mms wxWindows/docs/readme_vms.txt
 	wxWindows/utils/dialoged/src/descrip.mms
 Added Files:
 	wxWindows/samples/dnd/descrip.mms

 Updated VMS compile support and readme.

----------------------------------------------------------------------


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8481 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-06 11:22:27 +00:00
Vadim Zeitlin
9eeb92ac44 fixed assert failures about missing status bar field
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8479 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-05 15:23:41 +00:00
Julian Smart
f0e9f0d3ff Removed wxFindFocusDescendant for non-wxMSW platforms.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8478 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-05 13:05:50 +00:00
Vadim Zeitlin
fb20fa43a0 merged in the commit from the 2.2 branch
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8477 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-04 23:38:26 +00:00
Julian Smart
3438012b66 More fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8475 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-04 15:16:20 +00:00
Julian Smart
4f43043985 Removed wxWS_EX_NO_AUTOFOCUS (use AcceptsFocus instead)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8474 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-04 14:33:20 +00:00
Julian Smart
08793a6da9 Fixes to generic dir dialog
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8473 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-04 13:47:13 +00:00
Julian Smart
e63fdcd600 Speed fix for wxGenericDirCtrl, starting to add text input control;
added wxWS_EX_NO_AUTOFOCUS for wxMSW so we can stop wxToolBar accepting
the focus; UI update improvement to send commands to current focus window;
split tree control horiz. scrollbar problem fixed


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8472 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-04 12:53:28 +00:00
Jouk Jansen
511eb3e71d Committing in .
Modified Files:
 	wxWindows/descrip.mms wxWindows/docs/readme_vms.txt
 Added Files:
 	wxWindows/samples/calendar/descrip.mms

 Compile support on VMS for the calendar sample

----------------------------------------------------------------------


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8471 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-04 08:15:16 +00:00
Jouk Jansen
b780fc0057 Committing in .
Modified Files:
 	wxWindows/docs/readme_vms.txt

 Updated VMS build instructions
----------------------------------------------------------------------


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8470 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-04 07:17:09 +00:00
Jouk Jansen
a17203df9e Committing in .
Modified Files:
 	wxWindows/setup.h_vms


 Oops wrong file committed earlier today
----------------------------------------------------------------------


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8467 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-03 13:08:45 +00:00
Jouk Jansen
181cbcf49e Modified Files:
wxWindows/setup.h_vms wxWindows/lib/vms_gtk.opt
 	wxWindows/src/common/fileconf.cpp
 	wxWindows/src/unix/utilsunx.cpp

Patches for VMS:
  Updated Setup
  The conftest sample in wxGTK now can read_to/write_from the home-directory.

----------------------------------------------------------------------


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8466 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-03 10:34:40 +00:00
Julian Smart
659d096cea Small fixes to defs.h; change "windows.h" to <windows.h> in filefn.cpp
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8461 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-03 07:41:33 +00:00
Vadim Zeitlin
1c68fb912d fix for group names containing ']'
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8457 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-02 18:20:54 +00:00
David Webster
cd212ee425 interface additions (mostly for new generic/toolwin)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8456 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-02 03:42:05 +00:00
David Webster
353149f8f2 Add some new files for interface additions
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8455 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-02 02:53:18 +00:00
David Webster
5b3ed31135 OS/2 Statusbar fixes, and class interface updates
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8454 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-02 02:49:35 +00:00
David Webster
f5526d3613 OS/2 Statusbar fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8453 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-02 02:45:47 +00:00
Václav Slavík
63ee409315 fixed LoadPanel (created two instances previously and returned the wrong one)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8448 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-10-01 21:31:35 +00:00
Vadim Zeitlin
2d19ad2578 fix from Robert for extra refreshes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8446 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-30 16:30:30 +00:00
Václav Slavík
426bb74a93 removed loading from in-memory document (illicit idea)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8442 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-29 19:58:31 +00:00
Václav Slavík
2e12c11a90 added wxListCtrl::AssignImageList
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8441 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-28 22:29:26 +00:00
Václav Slavík
0377efa2e9 added wxTreeCtrl::AssignImageList
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8440 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-28 22:26:15 +00:00
Václav Slavík
b656febdf0 added wxNotebook::AssingImageList
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8439 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-28 22:25:07 +00:00
Václav Slavík
46cd520d1e added wxTreeCtrl::AssignImageList
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8438 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-28 22:19:57 +00:00
Václav Slavík
8fd2b35cbe modified wxHtmlHelpFrame to use AssignImageList
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8437 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-28 22:18:47 +00:00
Vadim Zeitlin
da599db240 added event.Skip() to OnIdle() handler
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8434 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-28 14:23:00 +00:00
Václav Slavík
3ad1cd4a67 added bitmaps to menu items
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8431 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-27 23:13:02 +00:00
Václav Slavík
0996d32a07 documented wxMenuItem::SetBitmap
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8430 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-27 23:10:05 +00:00
Jouk Jansen
5fdff4a5b4 Committing in .
Modified Files:
 	wxWindows/include/wx/motif/menuitem.h
 ----------------------------------------------------------------------


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8429 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-27 11:32:03 +00:00
Václav Slavík
2193517f1b updated resources convertor
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8427 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-26 21:59:37 +00:00
Václav Slavík
bbda1088f7 fixed bug in wxHtmlWindow: HistoryBack/Forward now correctly preserves last entry's scrolled position
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8426 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-26 21:54:29 +00:00
Václav Slavík
dc743689dd added ability to read resources directly from wxXmlDocument to wxXmlResource
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8425 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-26 21:52:08 +00:00
Julian Smart
d1c8aaa3ee Fiddled with wxFindWindowAtPoint to make it work with notebooks and static boxes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8422 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-26 15:36:12 +00:00
Julian Smart
cc1fcb9584 Removed assert complaining about out-focus without in-focus, because it happens a lot
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8421 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-26 14:46:42 +00:00
Vadim Zeitlin
cdddaeea10 fix from Robert
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8420 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-26 13:54:47 +00:00
Jouk Jansen
03c046d1d5 Committing in .
Modified Files:
 	wxWindows/descrip.mms wxWindows/src/common/filefn.cpp


 Filename problem on VMS fixed.
----------------------------------------------------------------------


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8419 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-26 10:49:41 +00:00
Robin Dunn
fe47ec10b7 wxPython changes for new and improved wxSTC
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8418 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-26 05:32:50 +00:00
Robin Dunn
4370573a45 new and improved wxSTC
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8417 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-26 05:15:39 +00:00
Julian Smart
fac9339629 Enabled context-sensitive help for wxRadioBox
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8416 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-25 16:01:44 +00:00
Julian Smart
480df2cf57 Added wxID_IGNORE
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8415 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-25 14:26:56 +00:00
Ron Lee
904a68b6f6 implemented wxDisplaySizeMM for gtk, msw & motif.
used wxDisplaySize and wxDisplaySizeMM to calculate real screen PPI in
wxPostScriptPrinter.
documented wxDisplaySize and wxDisplaySizeMM.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8414 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-25 08:51:35 +00:00
Ron Lee
11207aa4c2 removed unneccesary (and unwanted) asserts
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8411 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-24 15:25:57 +00:00
Ron Lee
9732ef1cb8 make contrib symlink relative to WXDIR
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8410 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-24 15:24:10 +00:00
Vadim Zeitlin
f4b8bf2fd1 wxCaret now uses backing store instead of forcing window refresh each time the
caret is hidden; the non blinking carets work too


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8403 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-22 22:44:34 +00:00
Václav Slavík
64d452a82d added XML resources sample
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8399 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-18 20:01:54 +00:00
Vadim Zeitlin
697e0cdd12 attempts to implement non blinking caret - failed so far
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8396 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-18 19:06:35 +00:00
Vadim Zeitlin
ca8bf9766e give frame a reasonable default size if none specified
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8394 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-18 15:40:15 +00:00
Václav Slavík
9f8276c7d4 added XML resources sample
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8392 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-17 19:20:16 +00:00
Václav Slavík
1c8ac192c6 added unknown widget support
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8391 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-17 19:19:18 +00:00
Václav Slavík
d33a1e8b7b added <bitmap> and <icon> resources
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8390 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-17 19:18:31 +00:00
Václav Slavík
28c0bed36a added wxStaticLine handler
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8389 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-17 19:18:02 +00:00
Václav Slavík
a07a98dbe5 documented EVT_LIST_ITEM_RIGHT_CLICK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8388 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-17 19:17:55 +00:00
Václav Slavík
88d42654d7 added rc2xml and wxr2xml convertor (no makefiles yet)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8387 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-17 19:17:13 +00:00
Václav Slavík
5183bfc60c added disabled, focus and selected to wxBitmapButton handler
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8386 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-17 19:16:22 +00:00
Václav Slavík
d7716e1ec9 removed bitmap scaling in bitmap button handler
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8385 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-17 19:16:13 +00:00
Robert Roebling
d786bf877e Set the m_isFrame flag corrcetly.
Typo.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8376 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-16 11:26:28 +00:00
Robert Roebling
9cc7121f68 Minor corrections to new theme code.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8369 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-15 16:51:07 +00:00
Julian Smart
a2d93e735a Added Set/GetThemeEnabled and used this for determining whether to paint a theme
background.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8367 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-15 13:15:37 +00:00
Robert Roebling
117247fd2c wxFrame's m_mainWidget didn't have themes.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8366 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-15 11:49:39 +00:00
Robert Roebling
789dbcd4e3 Notebook theme attampt.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8365 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-15 11:13:06 +00:00
Václav Slavík
b29483b980 added new controls
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8364 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-14 21:32:46 +00:00
Václav Slavík
b008b592cc added new controls: wxBitmapButton, wxCalendarCtrl, wxListCtrl, wxScrollBar, wxStaticBox, wxTreeCtrl
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8363 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-14 21:32:23 +00:00
Robert Roebling
96f5fca9e4 Readded TrueType text.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8360 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-14 13:02:34 +00:00
Robert Roebling
b13480f269 Another theme fix.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8359 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-14 09:23:12 +00:00
Robert Roebling
2bc6945a25 More theme goodies.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8358 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-14 09:08:18 +00:00
Robert Roebling
27d1065d38 Compilation fixes, bug fixes and streamlining in wxCanvas.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8357 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-14 06:42:27 +00:00
Robert Roebling
300aaa8f77 wxListCtrl::InsertItem() returned wrong index.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8356 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-13 20:03:27 +00:00
Kevin Hock
5143c96b4f added polygon and polyline
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8354 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-13 19:58:09 +00:00
Robert Roebling
3fb435df3a Themed headers for wxListCtrl.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8353 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-13 15:35:45 +00:00
Vadim Zeitlin
c0f09a2e88 1. wxFrame::IsIconized() fixed - seems to work
2. a couple of unused vars removed


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8351 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-13 12:25:42 +00:00
Robert Roebling
43f5c4930f Did the unmap/map trick for wxFrame::IsIconized().
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8350 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-13 11:45:43 +00:00
Julian Smart
8088e4c628 Added accelerator to bitmap menu item
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8349 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-13 11:34:15 +00:00
Julian Smart
191ebf4d45 wxListMainWindow::HitTest no longer tests 'flags' which is garbage
at this point. HitTesting now working, hurrah!


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8348 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-13 09:35:43 +00:00
Vadim Zeitlin
99646f7ee4 wxTimer::Start() now calls Stop()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8347 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-13 09:04:48 +00:00
Robert Roebling
33ebcd800c First shot at wxBitmap based wxCanvas.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8346 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-13 08:04:28 +00:00
Vadim Zeitlin
bdb310a720 attempt to fix crash in tree ctrl
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8344 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-12 16:27:41 +00:00
Julian Smart
e37ce17035 Added cshelp.txt
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8342 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-12 15:48:06 +00:00
Julian Smart
a1b8f5489d Minor mods
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8341 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-12 15:47:20 +00:00
Vadim Zeitlin
83141d3a74 1. removed 'B' flag from treebase.cpp and regenerated the makefiles
2. fixed wxMemoryInputStream::Eof()


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8340 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-12 15:15:44 +00:00
Julian Smart
5100cabffa Added wxHelpControllerHelpProvider, added DisplayContextPopup, DisplayTextPopup
to wxHelpControllerBase and wxCHMHelpController; updated sample


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8339 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-12 14:53:39 +00:00
Jouk Jansen
135ce19c67 Committing in .
Modified Files:
 	wxWindows/descrip.mms wxWindows/src/common/descrip.mms
 	wxWindows/src/generic/descrip.mms

 VMS compile update for new files and some new wxGTK samples
----------------------------------------------------------------------


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8337 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-12 11:28:35 +00:00
Vadim Zeitlin
80d2803f70 fixed bug in mouse handling
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8336 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-12 08:29:02 +00:00
Robert Roebling
cc47eed9ca Corrcted accel keys for bitmap menus.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8335 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-12 08:18:03 +00:00
Robert Roebling
fcaf9e704e Added test for bitmap menu.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8334 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-12 08:17:23 +00:00
Robert Roebling
343e14b3e2 Added experim. support for wxFRAME_TOOL_WIN
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8330 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-11 17:12:38 +00:00
Robert Roebling
efad36b8e9 Tiny patch for wxListCtrl::HitTest(). I didn't
even test if it compiles, oh dear.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8329 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-11 16:28:34 +00:00
Julian Smart
84eacd3032 Corrected frame.cpp to recognise wxNO_BORDER properly
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8328 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-11 13:02:54 +00:00
Robert Roebling
872f1044c8 Some more tests and mouse events for wxCanvas.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8327 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-11 12:52:39 +00:00
Julian Smart
98e8d44a9e Corrected typo
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8326 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-11 12:45:29 +00:00
Julian Smart
129caaddf1 wxHelpProvider now cleans itself up. wxTipWindow doesn't
grab the mouse, but instead deletes itself when it's deactivated
or loses the focus.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8325 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-11 12:37:44 +00:00
Julian Smart
afb02ca57c Included tipwindow.h unconditionally
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8324 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-11 12:03:22 +00:00
Robert Roebling
21840a6c0a Compile fixes for wxCanvas.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8323 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-11 08:13:34 +00:00
Julian Smart
2eebb742ab Made the docs compile again.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8320 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-10 19:01:03 +00:00
Vadim Zeitlin
01fa3fe74d wxTipWindow added and is now used by wxSimpleHelpProvider
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8318 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-10 16:30:16 +00:00
Julian Smart
4204da658a #ifdefs for WIN16
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8317 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-10 15:16:17 +00:00
Vadim Zeitlin
bd83cb56d2 1. added wxHelpProvider and (unfinished) wxSimpleHelpProvider
2. added wxStringHashTable which wxStringHashTable uses


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8316 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-10 12:43:37 +00:00
Vadim Zeitlin
6b6267d320 use the native msg box if available, fall back to wxWin one instead of doing the opposite
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8315 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-10 11:27:21 +00:00
Václav Slavík
99397a94d0 yet another fix in wxHtmlParser::DoParsing
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8310 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-08 22:02:46 +00:00
Kevin Hock
59fae84103 oops winnt path to fonts wrong
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8308 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-08 18:42:58 +00:00
Kevin Hock
fcbb6b37bf added groups of canvasobject and references to groups
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8307 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-08 18:42:57 +00:00
Vadim Zeitlin
afdefa8e84 GetSelection() replaced with GetId() in OnMRUFile
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8306 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-08 18:09:34 +00:00
Julian Smart
9b8f6fa217 Removed spurious _
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8305 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-08 15:56:54 +00:00
Julian Smart
2189c64415 Fixed non-recognition of wxLIST_MASK_IMAGE flags.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8304 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-08 15:49:14 +00:00
Vadim Zeitlin
84bfc0d503 fixed wxContextHelpButton bitmap (dis)appearance
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8303 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-08 15:48:54 +00:00
Julian Smart
0460407f86 Added manual files
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8301 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-08 14:51:08 +00:00
Julian Smart
91c9bd3d71 Tried to fix problem with 'clean' target
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8300 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-08 14:48:25 +00:00
Julian Smart
68fdcf29fd Added dcclient.h
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8299 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-08 14:45:34 +00:00
Julian Smart
6981d3ecf6 Fixed memory leak in listbox, fixed memory leak reporting in app.cpp
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8298 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-08 14:36:00 +00:00
Julian Smart
542acbee80 Added context-sensitive help dialog demo.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8296 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-08 14:26:33 +00:00
Julian Smart
57591e0edb Fixed some broken things related to context help, fixed memory leak
in wxGenericTreeCtrl (Init should be called before Create, not _in_ Create)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8295 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-08 13:52:10 +00:00
Julian Smart
fb6261e9ba Put wxContextHelp into cshelp.h/cpp, added wxContextHelpButton
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8294 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-08 10:49:39 +00:00
Robin Dunn
d134f1702e Moved from Scintilla version 1.25 to 1.32
Still more changes to be made in the wxSTC wrappers for new
functionality...


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8293 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-08 04:06:33 +00:00
Brian Smith
95f99113a6 Reformatting.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8291 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-07 22:57:51 +00:00
Brian Smith
ebe0155da5 OS/2 version was using ~ instead of * for a termination character so
executables created with this packinst would not function.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8290 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-07 22:53:38 +00:00
Brian Smith
6ab5e82fc3 Somehow the packinst.c and directory got removed from the archive, so I
included the version from the OS/2 installer which probably has some fixes.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8289 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-07 22:00:52 +00:00
Václav Slavík
19bcc6049d fixed bug in parsing html strings longer than 1024 chars than does not contain tags
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8288 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-07 20:55:06 +00:00
Julian Smart
1f33eb9ff0 Added memcheck to configure
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8287 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-07 15:21:37 +00:00
Julian Smart
2db0bbdecd Applied memory allocation patch, and worked around bug that crashes memcheck.cpp
by using wxLogStderr.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8286 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-07 15:02:33 +00:00
Julian Smart
26a80c2246 Added some docs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8285 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-07 13:33:56 +00:00
Julian Smart
d3db92b294 Added comment to old wxGetMousePosition
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8284 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-07 13:32:28 +00:00
Julian Smart
1772ead058 Used GetCursorPos for new wxGetMousePosition implementation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8283 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-07 13:32:05 +00:00
Julian Smart
59a12e9034 Got wxHelpContext working, plus wxFindWindowAtPointer, wxGetMousePosition,
wxFindWindowAtPoint.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8282 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-07 13:22:42 +00:00
Robert Roebling
b85cfb6fd4 There was no need to create the buffer in OnIdle().
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8281 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-07 11:17:46 +00:00
Julian Smart
3723b7b1d8 Made wxContextHelp implementation generic and added wxFindWindowAtPointer,
wxGetMousePosition functions


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8280 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-07 09:43:05 +00:00
Robin Dunn
bfabd11afb Interface file defining functionality available in Scintilla. Will
possibly be used to automatically generate some of the wxWindows code
that wraps Scintilla.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8279 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-07 01:34:14 +00:00
David Webster
5615ab3770 fix to OWNER_DRAWN assert in listbox
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8277 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-06 19:18:35 +00:00
Julian Smart
68237521ed Implemented wxHelpContext for wxGTK.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8276 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-06 16:44:17 +00:00
Robert Roebling
61b64bd92a Added various missing bits to scrolling wxCanvas.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8275 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-06 15:09:17 +00:00
Julian Smart
c43e86bda6 Dialogs can now show a question mark for context-sensitive help.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8274 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-06 13:23:21 +00:00
Robert Roebling
41328253cd Trying to make wxCanvas less simple.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8273 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-06 13:08:28 +00:00
Julian Smart
0e929d5fd6 Added #include in helpbase.cpp
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8272 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-06 09:52:18 +00:00
Julian Smart
b96340e6f4 Added wxHelpEvent, wxContextHelp (MSW only so far), modified help sample
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8271 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-06 09:45:24 +00:00
Robert Roebling
ceae98ef7a Applied PS patch.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8270 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-06 09:18:44 +00:00
Kevin Hock
9f3b9298c0 added moving an object with the mouse
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8266 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-05 20:08:47 +00:00
Kevin Hock
dc16900b10 capturing the mouse in wxCanvasObject
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8265 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-05 20:07:57 +00:00
Robin Dunn
21156596eb Fixed some off-by-one errors that were visible on wxGTK but actually
affected wxMSW too.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8259 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-05 18:10:31 +00:00
Vadim Zeitlin
501662d307 added Dutch translation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8258 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-05 18:04:41 +00:00
David Webster
4d0986499b Updates to keep OS/2 Frame apps from crashing on exit. Fixes WM_QUIT processing
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8256 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-05 13:59:50 +00:00
Julian Smart
206b0a6792 Generic wxListCtrl now supports wxLC_HRULES, wxLC_VRULES
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8255 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-05 12:20:16 +00:00
Julian Smart
2702ed5a3d Added rules to wxListCtrl (MSW now, GTK+ soon)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8254 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-05 11:39:14 +00:00
Robert Roebling
3d0c4d2e7b Applied DrawArc patch.
Applied break-up-region patch.
  Implemented sort of ShowFullScreen() - test in scrollsub.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8253 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-05 10:51:30 +00:00
Robert Roebling
4dbd4ee604 Virtualized coordinate system for wxCanvas.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8251 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-04 15:39:52 +00:00
Julian Smart
b3eb36dfb6 Commented out palette code for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8250 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-04 14:07:50 +00:00
Julian Smart
736b80cd76 Corrected off-by-one bug in wxRect(const wxPoint&, const wxPoint&) ctor
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8249 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-04 06:58:30 +00:00
Robert Roebling
cabec8729e Added FreeType II beta 8.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8247 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-03 16:51:07 +00:00
Robert Roebling
1e1af41e4b Minor update to wxCanvas.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8246 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-03 16:38:53 +00:00
Robert Roebling
e83bf4f7e1 Makefile adaption for freetype.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8245 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-03 13:41:07 +00:00
Robert Roebling
37b09a9a1a Makefile correction
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8244 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-03 13:40:39 +00:00
Robert Roebling
3fed184012 Preparing makefiles for freetype
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8243 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-03 11:51:42 +00:00
Robert Roebling
239c1f50b0 Added wxCanvasLine, Freeze() and Thaw() and mouse events (untested)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8241 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-02 18:01:32 +00:00
Robin Dunn
3e1c4e0021 1. Setting the listctrl as the event object before sending the event
to any user event handlers.

2. InsertItem returns the actual index used when given one beyond the
end of the list.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8240 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-01 21:30:18 +00:00
Vadim Zeitlin
cba349dc6e use TRUETYPE env var for the font location
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8237 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-01 17:43:19 +00:00
Julian Smart
267a710851 Small mods
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8235 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-01 16:48:25 +00:00
Julian Smart
25093cf311 Ignored palettes for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8234 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-01 16:47:04 +00:00
David Webster
e604d44b4b Several updates for fixing the subclassing problems and accelerator processing
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8233 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-01 13:52:31 +00:00
David Webster
37123da440 Fix to properly define WXFARPROC for OS/2
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8232 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-01 13:51:48 +00:00
Robert Roebling
0fb0dd8361 Added check for <fnctl.h> which FreeType seems to need.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8227 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-01 12:47:14 +00:00
Robert Roebling
2154485967 Various improvements and addition to wxCanvas
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8226 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-01 10:25:39 +00:00
Julian Smart
6a86a6c893 Corrected typo
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8225 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-01 09:13:41 +00:00
Julian Smart
37d403aa1c Added to wxSystemSettings for better GTK+ themes compatibility
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8224 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-09-01 08:35:30 +00:00
Robert Roebling
cb281cfc8c TrueType support for Canvas.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8223 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-30 16:20:37 +00:00
Robert Roebling
d1f9b20611 Added alpha blending in prep for FreeType text to canvas.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8220 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-30 13:05:24 +00:00
Julian Smart
43bcf4c950 Fixed jumping problem with remotely scrolled tree
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8219 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-30 09:58:14 +00:00
Julian Smart
5b211fbf54 Added wxSYS_COLOUR_3DLIGHT
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8218 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-30 09:38:14 +00:00
Robert Roebling
3b111dbe53 Added wxCanvasControl before anyone else would do
any harm.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8215 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-29 20:06:25 +00:00
Julian Smart
a103e4e201 Small mods
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8212 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-29 17:56:06 +00:00
Vadim Zeitlin
5b09e9c2c3 added missing .c_str() here and there
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8211 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-29 17:33:59 +00:00
Julian Smart
dbf2885911 Fixed CanCut
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8210 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-29 16:18:39 +00:00
Julian Smart
8c023dee92 Sash window layout algorithm now fails if not enough space to complete.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8209 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-29 16:09:59 +00:00
Julian Smart
fa755cf187 Don't allow for status or toolbar size if they are not currently shown
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8208 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-29 13:21:07 +00:00
Julian Smart
d11bb14faa Added wxCLIP_SIBLINGS. CVS also seems to think lots of other files need updating.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8207 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-29 12:46:21 +00:00
Robert Roebling
aa21b5090a Merged sizer fix from stable branch
Added support for transparent wxImage::Paste()


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8206 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-29 08:55:40 +00:00
Robert Roebling
6a2c187404 Added wxCanvas prototype and sample
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8205 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-29 08:54:17 +00:00
Vadim Zeitlin
5a7faf1e02 make clean shouldn't delete lib/CVS
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8202 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-28 18:34:35 +00:00
Vadim Zeitlin
dfd4f3278c added Dutch translator
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8201 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-28 18:29:13 +00:00
Václav Slavík
09dc1241b7 added AddWindowStyles
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8200 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-27 20:52:36 +00:00
Vadim Zeitlin
fcec64291d compilation fixes for mingw32 (still leaving disabled for now)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8195 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-27 12:16:02 +00:00
Václav Slavík
3e0a432117 fixed clearly wrong use of APPEXTRALIBS in gizmos samples' Makefile.in
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8192 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-26 21:02:06 +00:00
Václav Slavík
eb29e7071f gizmos compilation fixes (gcc)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8191 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-26 21:01:48 +00:00
Julian Smart
40fab78bcf Added some casts in hopes of fixing HP compilation problem
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8188 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-25 16:52:05 +00:00
Julian Smart
621f9767c8 Added a flag to avoid Capture/Release asserts
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8187 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-25 16:51:31 +00:00
Julian Smart
2f82899bba Fixed sample; enhanced wxLayoutAlgorithm to give remaining space to
last window


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8185 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-25 15:51:23 +00:00
Jouk Jansen
16d57d674f Committing in .
Modified Files:
 	wxWindows/lib/vms_gtk.opt wxWindows/src/motif/mdi.cpp

 For VMS only

----------------------------------------------------------------------


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8183 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-25 10:39:12 +00:00
Julian Smart
601c163b1c Typo in doc, wxCHECK2_MSG replaced with wxCHECK_MSG
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8182 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-25 09:37:16 +00:00
Jouk Jansen
2f20fe2222 Committing in .
Modified Files:
 	wxWindows/samples/mdi/mdi.cpp

 VMS patch

----------------------------------------------------------------------


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8181 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-25 09:22:41 +00:00
Jouk Jansen
bcd055ae10 Committing in .
Modified Files:
 	wxWindows/src/generic/scrolwin.cpp wxWindows/src/motif/app.cpp
 	wxWindows/src/motif/bitmap.cpp
 	wxWindows/src/motif/bmpbuttn.cpp
 	wxWindows/src/motif/button.cpp
 	wxWindows/src/motif/checkbox.cpp
 	wxWindows/src/motif/choice.cpp wxWindows/src/motif/dialog.cpp
 	wxWindows/src/motif/filedlg.cpp wxWindows/src/motif/msgdlg.cpp
 	wxWindows/src/motif/radiobox.cpp
 	wxWindows/src/motif/radiobut.cpp
 	wxWindows/src/motif/statbox.cpp
 	wxWindows/src/motif/stattext.cpp
 	wxWindows/src/motif/textctrl.cpp wxWindows/src/motif/utils.cpp
 	wxWindows/src/motif/window.cpp

 More patches for VMS only

----------------------------------------------------------------------


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8180 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-25 08:00:04 +00:00
Václav Slavík
ea129d333a fixed typo
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8176 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-24 20:56:21 +00:00
Julian Smart
fa8ba9a10e Added gizmos
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8173 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-24 11:32:04 +00:00
Julian Smart
352d44d268 Fixed for wxGTK compilation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8172 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-24 11:31:32 +00:00
Julian Smart
32321f51b4 Fixed #pragma
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8171 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-24 11:31:03 +00:00
Jouk Jansen
4dff340069 Committing in .
Modified Files:
 	wxWindows/setup.h_vms wxWindows/demos/bombs/descrip.mms
 	wxWindows/lib/vms.opt wxWindows/samples/caret/descrip.mms
 	wxWindows/samples/checklst/descrip.mms
 	wxWindows/samples/config/descrip.mms
 	wxWindows/samples/controls/descrip.mms
 	wxWindows/samples/dialogs/descrip.mms
 	wxWindows/samples/drawing/descrip.mms
 	wxWindows/samples/image/descrip.mms
 	wxWindows/samples/mdi/descrip.mms
 	wxWindows/samples/menu/descrip.mms
 	wxWindows/samples/minimal/descrip.mms
 	wxWindows/samples/resource/descrip.mms
 	wxWindows/src/common/descrip.mms
 	wxWindows/src/common/gdicmn.cpp
 	wxWindows/src/generic/descrip.mms
 	wxWindows/src/motif/choice.cpp wxWindows/src/motif/descrip.mms
 	wxWindows/src/motif/font.cpp wxWindows/src/motif/frame.cpp
 	wxWindows/src/motif/gauge.cpp wxWindows/src/motif/listbox.cpp
 	wxWindows/src/motif/menu.cpp wxWindows/src/motif/msgdlg.cpp
 	wxWindows/src/motif/toolbar.cpp wxWindows/src/motif/window.cpp
 	wxWindows/src/motif/xmcombo/xmcombo.c
 	wxWindows/src/unix/descrip.mms
 	wxWindows/utils/dialoged/src/descrip.mms
 Added Files:
 	wxWindows/include/wx/vms_x_fix.h

VMS patches

----------------------------------------------------------------------


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8170 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-24 10:58:27 +00:00
Julian Smart
748a3af8e7 Replaced true/false with TRUE/FALSE
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8169 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-24 08:55:46 +00:00
Jouk Jansen
f920114415 Committing in .
Modified Files:
 	wxWindows/include/wx/gtk/app.h

Added wxEntry like in other ports (i.e. Motif)
----------------------------------------------------------------------


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8168 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-24 05:50:48 +00:00
Vadim Zeitlin
35b45b332b added test of wxFileSelector() def ext handling
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8167 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-23 22:47:33 +00:00
Vadim Zeitlin
954f4710fa bug #105 (wxFileSelector misinterprets the def extension) fixed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8166 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-23 22:45:59 +00:00
Václav Slavík
35ec54d3c5 fixed my previous fix in wxListCtrl::SetItem
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8164 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-23 10:39:33 +00:00
Václav Slavík
525fd27d24 fixed bug in wxListCtrl::SetItem (forgot to delete previous attribute from m_attrs)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8161 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-22 21:56:52 +00:00
Vadim Zeitlin
136edc27f9 typo fixed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8159 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-22 15:28:12 +00:00
Julian Smart
07d09af8cc Added Reset() to command line parser and called it from Parse(), so
that you can call Parse() multiple times and get the desired result.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8158 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-22 14:00:47 +00:00
Vadim Zeitlin
64acfbb2be bug #101 (wxListCtrl::GetItemRect() returns rectangle with incorrect height) fixed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8157 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-22 10:12:26 +00:00
Vadim Zeitlin
1464778143 bug #103 (encodings not enumerated correctly) fixed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8156 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-22 10:06:37 +00:00
Julian Smart
47608cc184 Double oops, removed include file
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8154 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-21 17:08:02 +00:00
Julian Smart
de53ac1ee1 Oops, missed out include file
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8153 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-21 17:07:16 +00:00
Julian Smart
97d590469d Doc fix and SetArguments implementation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8152 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-21 17:06:38 +00:00
David Webster
760ac9abdd no message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8151 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-21 11:08:33 +00:00
Jouk Jansen
deb818d619 Committing in .
Modified Files:
 	wxWindows/descrip.mms wxWindows/samples/caret/descrip.mms

 Compile support for caret sample on wxGTK/VMS
----------------------------------------------------------------------


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8150 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-21 10:31:06 +00:00
Václav Slavík
74d52dedf8 fixed bug in gizmos Makefile.in
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8147 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-20 21:53:14 +00:00
Václav Slavík
0071943936 added contrib/gizmos to configure
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8146 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-20 21:53:09 +00:00
Václav Slavík
29bf79638e added contrib/gizmos to configure.in
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8145 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-20 21:52:37 +00:00
Václav Slavík
2148cce296 fixed stupid loop in wxFileSystem::OpenFile
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8144 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-20 21:52:12 +00:00
Julian Smart
15770d1a1c Doc mods
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8143 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-20 19:56:24 +00:00
Robert Roebling
b0f1bf1c51 The mac text ctrl wants '/r' from the log system for line breaks.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8139 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-19 08:59:50 +00:00
Robert Roebling
d467e0c72d Added child window scrolling
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8138 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-19 08:58:19 +00:00
Robert Roebling
2116861993 Added wxChoice::GetCount() and Select()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8137 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-19 08:56:44 +00:00
Kevin Hock
fc4e7a035c wxDrawObject::Draw vritual and non const wxDCBase
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8136 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-19 06:32:50 +00:00
David Webster
3210d001bf Minor fix to app
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8131 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-18 16:45:45 +00:00
Julian Smart
1a584f14bf Added companion window. Now it's working pretty much as expected except
for the usual flickering...


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8130 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-18 16:28:38 +00:00
Stefan Neis
f1f2204967 Fixed typo.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8129 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-18 16:27:32 +00:00
Jouk Jansen
58e81f24f1 Committing in .
Modified Files:
 	wxWindows/descrip.mms wxWindows/demos/bombs/descrip.mms

  wxGTK compile support for VMS extended

----------------------------------------------------------------------


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8128 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-18 13:54:58 +00:00
Vadim Zeitlin
d9b815ac5c removed obsolete parts of SetIcon docs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8127 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-18 13:51:11 +00:00
Julian Smart
1ed01484e7 Implemented IsVisible and GetFirst/NextVisibleItem for generic tree control
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8126 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-18 12:45:21 +00:00
David Webster
f409b413be Updates to wxFrame to include SHowFullScreen method
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8125 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-18 12:03:03 +00:00
David Webster
f09d8a3b94 Reparied accel processing
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8124 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-18 12:00:39 +00:00
Julian Smart
be44e7a5f4 Added tree.rc
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8123 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-18 09:43:36 +00:00
Julian Smart
1724915f18 Bug fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8122 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-18 09:42:43 +00:00
David Webster
1a2bf4ebfc Add quantize and treebase
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8121 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-18 01:52:09 +00:00
David Webster
64e0c5c617 New frame class
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8119 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-17 20:49:41 +00:00
Julian Smart
7cc92097f6 Added psbox.tex
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8118 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-17 15:39:31 +00:00
Julian Smart
37980ec800 Small fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8117 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-17 15:38:33 +00:00
Julian Smart
58580a7e3c Added gizmos hierarchy
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8116 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-17 11:53:48 +00:00
Julian Smart
08c6402af6 Increased bib buffer size
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8115 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-17 07:17:19 +00:00
Vadim Zeitlin
9b5ae11a39 added wxUsE_XPM_H_IN_PATH
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8112 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-16 15:24:38 +00:00
Václav Slavík
bebb14d53d added wxXmlResourceHandler::GetDimension for 1D values that may be in dialog units
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8111 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-15 21:46:26 +00:00
Václav Slavík
b6b0af42a0 added 'centered' property to wxDialog handler
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8110 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-15 21:44:26 +00:00
Václav Slavík
019faef468 added wxIcon::CopyFromBitmap to wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8109 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-15 21:44:18 +00:00
Václav Slavík
8767fe35a3 fixed wxListCtrl::SetItem -- changing attributes of item with attributes already set had no effect
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8108 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-15 21:44:04 +00:00
Julian Smart
45961fa0a5 Mods to the intro.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8106 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-15 10:19:45 +00:00
Jouk Jansen
14329e037b Committing in .
Modified Files:
 	wxWindows/samples/minimal/descrip.mms
 	wxWindows/src/common/descrip.mms
 	wxWindows/src/generic/descrip.mms
 	wxWindows/src/gtk/descrip.mms wxWindows/src/unix/descrip.mms

 Compilation wxGTK for VMS updated. Now the minimal sample works OK.

----------------------------------------------------------------------


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8105 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-15 08:54:05 +00:00
Julian Smart
c49edcd039 wxBook mods.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8101 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-14 16:19:20 +00:00
Julian Smart
e846929090 Backslashes now allowed in \input filenames
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8100 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-14 13:16:32 +00:00
George Tasker
241c426ca8 Typecasting added to prevent warnings.
Instead of copying the temp file, if the temp file directory and output file directory for RTF are the same, program does a rename instead of a copy.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8099 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-14 12:05:13 +00:00
Julian Smart
405c846fc4 Fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8097 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-14 12:02:31 +00:00
George Tasker
71599f0a0a Code added to cleanup memory/resource leaks on exit
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8096 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-14 12:02:13 +00:00
Julian Smart
0f3cd383b7 Fixing broken file.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8095 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-14 12:01:32 +00:00
George Tasker
f90e5ed24a Typecasts added to prevent compiler warnings
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8094 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-14 12:00:58 +00:00
George Tasker
d0c6b305af v2.2.1 TAGGED copy ported over to main trunk of CVS
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8091 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-14 11:44:26 +00:00
George Tasker
4c6224f523 Removed the reference to table.tex, as it is no longer needed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8090 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-14 11:43:19 +00:00
George Tasker
dbd25a9f8a wxTable renamed to wxDbTable
This file is no longer needed though, as the relevent text is now included in db.tex


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8089 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-14 11:42:35 +00:00
Julian Smart
6172afe90d Added VC++ makefile
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8088 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-14 11:03:31 +00:00
Julian Smart
eecb035112 wxBook updates
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8087 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-14 10:18:04 +00:00
Julian Smart
397f14ce52 Added chapter stubs.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8086 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-14 09:44:35 +00:00
Stefan Csomor
a959b08869 transparent xpm bitmaps added, thread support finished
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8085 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-14 08:16:52 +00:00
Stefan Csomor
acd9676ebb thread support for mac finished
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8084 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-14 08:15:51 +00:00
Julian Smart
fdb8ab1db9 Started to add wxBook files
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8083 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-14 07:05:37 +00:00
Václav Slavík
81dc0f5d41 fixed creation of toolbars under MSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8057 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-12 20:06:59 +00:00
Václav Slavík
f19c82dd2a fixed bug in zlib compressed binary xml resources saving (crashed due to a typo)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8056 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-12 20:06:54 +00:00
Mark Johnson
27ced3613f de.po
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8044 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-12 11:59:01 +00:00
Mark Johnson
a9f4558ff1 db.h
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8041 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-12 11:15:24 +00:00
Mark Johnson
0cd121f9e1 db.cpp
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8040 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-12 11:14:40 +00:00
Mark Johnson
6d9f443958 de.po
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8039 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-12 11:14:02 +00:00
Václav Slavík
98b99630a5 added toolbars
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8035 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-11 19:11:06 +00:00
Václav Slavík
8576d6a454 added toolbar handling
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8034 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-11 19:10:39 +00:00
Václav Slavík
792064e93f fixed loading of bitmaps from mem_fs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8033 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-11 19:08:18 +00:00
Václav Slavík
6ba549f2a5 added binz handler to standard handlers initialized always
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8032 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-11 19:07:54 +00:00
Václav Slavík
f6853b4a5d stored bitmaps in generated resources
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8031 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-11 19:07:43 +00:00
Václav Slavík
ef02ad9ee7 fixed bug: wxButton hasn't name set correctly
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8030 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-11 19:07:30 +00:00
Mark Johnson
909e23737c de.po
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8029 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-11 14:47:19 +00:00
Julian Smart
579b10c2be Now show/hide status bar in ShowFullScreen, instead of deleting it
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8022 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-11 12:27:40 +00:00
Stefan Csomor
292d1a2fdd changed license type
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8021 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-11 03:30:47 +00:00
Stefan Csomor
2e492c85ab added plstringfuncs comment
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8020 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-11 03:29:29 +00:00
Stefan Csomor
1ebfaf0c59 wxMac merge
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8018 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-10 15:27:08 +00:00
Jouk Jansen
fa156b74fc Committing in .
Modified Files:
 	wxWindows/src/gtk/app.cpp

Patch for wxGTK on VMS
----------------------------------------------------------------------


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8012 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-10 13:26:37 +00:00
Jouk Jansen
d02af7bbb9 Committing in .
Modified Files:
 	wxWindows/include/wx/gtk/app.h wxWindows/lib/vms_gtk.opt
 	wxWindows/samples/minimal/descrip.mms
 	wxWindows/src/common/descrip.mms
 	wxWindows/src/generic/colrdlgg.cpp
 	wxWindows/src/generic/descrip.mms
 	wxWindows/src/gtk/dcclient.cpp wxWindows/src/gtk/descrip.mms
 	wxWindows/src/gtk/filedlg.cpp wxWindows/src/gtk/fontdlg.cpp
 	wxWindows/src/gtk/frame.cpp wxWindows/src/gtk/listbox.cpp
 	wxWindows/src/gtk/tbargtk.cpp wxWindows/src/gtk/win_gtk.c
 	wxWindows/src/gtk/window.cpp wxWindows/src/unix/descrip.mms

Patches for wxGTK for VMS
----------------------------------------------------------------------


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8011 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-10 13:24:55 +00:00
Vadim Zeitlin
40d432c482 wxMDIFrames define DoGetClientSize() and not GetClientSize() to avoid hiding
the base class methods


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8008 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-10 11:00:06 +00:00
Vadim Zeitlin
885df446a3 src/gtk/mdi.cpp
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8007 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-10 10:59:02 +00:00
Stefan Csomor
9c0571f341 header files for carbon targets
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8004 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-10 08:46:48 +00:00
Stefan Csomor
f2debe4d8b helper for changing types of files to TEXT
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8002 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-10 07:56:09 +00:00
Stefan Csomor
be11d578d1 wxMac merge
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8001 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-10 07:21:41 +00:00
Stefan Csomor
ee6b1d97e7 wxMac merge
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@7999 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-10 04:43:04 +00:00
Julian Smart
6342bd1ab3 Added chapter on collection and container classes to contents
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@7998 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-09 16:51:33 +00:00
Stefan Csomor
a02bb1438a merge of wxMac into main repository
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@7995 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-08-09 11:14:15 +00:00
437 changed files with 378038 additions and 1278 deletions

File diff suppressed because it is too large Load Diff

8
wxPython/.cvsignore Normal file
View File

@@ -0,0 +1,8 @@
.emacs.desktop
MANIFEST
build
build.local
dist
licence
temp
update.log

271
wxPython/BUILD.unix.txt Normal file
View File

@@ -0,0 +1,271 @@
Building wxPython on Unix or Unix-like Systems
----------------------------------------------
The basic steps for building wxPython for Unix or Unix-like systems
are:
1. Compile and/or install glib and gtk+
2. Compile and/or install wxGTK
3. Compile and install wxPython
We'll go into more detail of each of these steps below, but first a
few bits of background information on tools.
I use a tool called SWIG (http://www.swig.org) to help generate the
C++ sources used in the wxPython extension module. However you don't
need to have SWIG unless you want to modify the *.i files. If you do
you'll want to have version 1.1-883 of SWIG and you'll need to change
a flag in the setup.py script as described below.
I use the new Python Distutils tool to build wxPython. It is included
with Python 2.0, but if you want to use Python 1.5.2 or 1.6 then
you'll need to download and install Distutils 1.0 from
http://www.python.org/sigs/distutils-sig/
I usually use RedHat Linux when working on the wxGTK version of
wxPython, but I occasionally build and test on Solaris and I hope to
be able to add some other platforms soon. The compiler I use is
whatever comes with the current version of RedHat I am using. I find
that there are less portability problems with the RPMs if I don't try
using the latest and greatest compilers all the time. On the other
platforms I usually stick with as recent a version of GCC that I can
find pre-built for that platform.
Okay, now on the the fun stuff...
1. Compile and/or install glib and gtk+
---------------------------------------
A. First of all, check and see if you've already got glib/gtk+ on your
system, all the Linux distributions I know of come with it, at
least as an option. Look for libglib.* and libgtk.* in your system's
standard library directories. You'll also need the headers and
config scripts in order to build things that use glib/gtk. Try
running gtk-config:
gtk-config --version
If you have version 1.2.5 or better then you're all set. You can
skip to step #2.
B. If your system has a binary package mechanism, (RPMs, debs,
whatever...) check and see if binaries for glib abd gtk+ are
available. Be sure to get the runtime library package as well as
the development package, if they are separate. Install them with
your package tool, and skip to step #2.
C. If all else fails, you can get the source code for glib and gtk+ at
http://www.gtk.org/. Fetch the latest of each in the 1.2.x
series. Compile and install each of them like this:
gzip -d [package].tar.gz | tar xvf -
cd [package]
./configure
make
make install
The last step will probably have to be done as root. Also, if your
system needs anything done to update the dynamic loader for shared
libraries, (such as running ldconfig on Linux) then do it after
each library is installed.
2. Compile and/or install wxGTK
-------------------------------
A. You can find the sources and RPMs for wxGTK at
ftp://wesley.informatik.uni-freiburg.de/pub/linux/wxxt/source/, or
just follow the download links from http://wxwindows.org/. You can
also check out a current snapshot of the sources from the CVS
server. (Some information about annonymous CVS access is at
http://wxwindows.org/cvs.htm.) The advantage of using CVS is that
you can easily update as soon as the developers check in new
sources or fixes. The advantage of using a released version is
that it usually has had more testing done. You can decide which
method is best for you.
B. You'll usually want to use a version of wxGTK that has the same
version number as the wxPython sources you are using. (Another
advantage of using CVS is that you'll get both at the same time.)
C. If using the RPMs be sure to get both the wxGTK and wxGTK-devel
RPMs (at a minimum) and then install them as root.
rpm -Uhv wxGTK-2.2.2-0.i386.rpm wxGTK-devel-2.2.2-0.i386.rpm
D. If using the sources (either from the tarball or from CVS) then
configure it like this:
cd wxWindows # or whatever your top-level directory is called
mkdir build
cd build
../configure --with-gtk
There are gobs and gobs of options for the configure script, run
../configure --help to see them all. I'll describe some that I find
useful here.
If you have OpenGL or compatible libraries installed, then add the
--with-opengl flag.
If you are on Solaris and are using a recent version of GCC, then
you'll probably want to add the --enable-permissive flag so the
compiler won't barf on your broken X11 header files.
To make a debugging version of wxGTK, add the --enable-debug flag.
This sets the -g flag for the compiler and also activates some
special debugging code in wxWindows by defining the __WXDEBUG__
macro. You'll get some extra asserts, failure logging, etc.
To make a static library and not make a shared library, use the
--disable-shared and --enable-static flags.
E. Now just compile and install. You need to use GNU make, so if your
system has something else get GNU make and build and install it and
use it instead of your system's default make command.
make
make install
The last step will probably have to be done as root. Also, if your
system needs anything done to update the dynamic loader for shared
libraries, (such as running ldconfig on Linux) then do it now.
F. You can test your build by changing to one of the directories under
build/samples or build/demos, running make and then running the
executable that is built.
3. Compile and install wxPython
-------------------------------
A. You have the same options (and same advantages/disadvantages) for
getting the wxPython source, either a released snapshot or from
CVS. The released version file is named wxPython-[version].tar.gz
and is available at http://wxpython.org/download.php. If you want
to use CVS you'll find wxPython in the wxWindows CVS tree (see
above) in the wxWindows/wxPython directory.
B. As mentioned previouslly, wxPython is built with the standard
Python Distutils tool. If you are using Python 2.0 or later you
are all set, otherwise you need to download and install Distutils
1.0 from http://www.python.org/sigs/distutils-sig/.
On Unix systems Distutils figures out what commands and flags to
use for the compiler and linker by looking in the Makefile that was
used to build Python itself. Most of the time this works okay. If
it doesn't, there doesn't seem to be a way to override the values
that Distutils uses without hacking either Distutils itself, or
Python's Makefile. (Complain to the distutils-sig about this
please.) For example, on my Solaris system I had to edit
/usr/local/lib/python1.5/config/Makefile and replace
LDSHARED=ld -G
with
LDSHARED=gcc -G
This particular problem has been fixed in Python 1.6 and beyond,
but there may be similar issues on other platforms.
While we're on the subject of how Python was built... Since
wxPython is a C++ extension some platforms and/or compilers will
require that the Python executable was linked with the C++ linker
in order for everything to work correctly. If you build and
install Python yourself then this is easy to take care of,
otherwise you may have to mess with binary packages or bribe your
system administrator...
In my case on Solaris wxPython applications would core dump on
exit. The core file indicated that the fault happened after
_exit() was called and the run-time was trying to execute cleanup
code. After relinking the Python executable the problem went away.
To build Python to link with the C++ linker do this:
cd Python-2.0 # wherever the root of the source tree is
rm python # in case it's still there from an old build
make LINKCC=g++ # or whatever your C++ command is
make install
C. Change to the root wxPython directory and look at the setup.py
file. This is the script that configures and defines all the
information that Distutils needs to build wxPython. There are some
options near the begining of the script that you may want or need
to change based on your system and what options you have selected
up to this point, (sources from tar.gz or from CVS, etc.) You can
either change these flags directly in setup.py or supply them on
the command-line.
BUILD_GLCANVAS Set to zero if you don't want to build the
Open GL canvas extension module. If you don't
have OpenGL or compatible libraries then you'll
need to set this to zero.
BUILD_OGL Set to zero if you don't want to build the
Object Graphics Library extension module.
BUILD_STC Set to zero if you don't want to build the
wxStyledTextCtrl (the Scintilla wrapper)
extension module.
USE_SWIG If you have edited any of the *.i files you
will need to set this flag to non-zero so SWIG
will be executed to regenerate the wrapper C++
and shadow python files.
IN_CVS_TREE If you are using the CVS version of the
wxWindows and wxPython sources then you will
need to set this flag to non-zero. This is
needed because some source files from the
wxWindows tree are copied to be under the
wxPython tree in order to keep Distutils happy.
With this flag set then setup.py will
automatically keep these copied sources up to
date if the original version is ever updated.
If you are using the tar.gz version of the
Python sources then these copied sources are
already present in your source tree.
D. To build and install wxPython you simply need to execute the
setup.py script. If you have more than one version of Python
installed, be sure to execute setup.py with the version you want to
build wxPython for. Depending on the permissions on your
site-packages directory you may need to be root to run the install
command.
python setup.py build
python setup.py install
E. At this point you should be able to change into the wxPython/demo
directory and run the demo:
python demo.py
F. If you would like to make a test build that doesn't overwrite the
installed version of wxPython you can do so with this command
instead of the install command above:
python setup.py build_ext --inplace
This will build the wxPython package in the local wxPython
directory instead of installing it under your Python installation.
To run using this test version just add the base wxPython source
directory to the PYTHONPATH:
export PYTHONPATH=~/projects/wxWindows/wxPython
# or whatever is required for your shell
cd ~/projects/wxWindows/wxPython/demo
python demo.py
That's all folks!
-----------------
robin@alldunn.com

281
wxPython/BUILD.win32.txt Normal file
View File

@@ -0,0 +1,281 @@
Building wxPython on Win32
--------------------------
Building wxPython for use on win32 systems is a fairly simple process
consisting of just a few steps. However depending on where you get
your sources from and what your desired end result is, there are
several permutations of those steps. At a high level the basic steps
are:
1. Get the wxWindows sources
2. Build the wxWindows DLL
3. Get the wxPython sources
4. Build and Install wxPython
We'll go into more detail of each of these steps below, but first a
few bits of background information on tools.
I use a tool called SWIG (http://www.swig.org) to help generate the
C++ sources used in the wxPython extension module. However you don't
need to have SWIG unless you want to modify the *.i files. If you do
you'll want to have version 1.1-883 of SWIG and you'll need to change
a flag in the setup.py script as described below.
I use the new Python Distutils tool to build wxPython. It is included
with Python 2.0, but if you want to use Python 1.5.2 or 1.6 then
you'll need to download and install Distutils 1.0 from
http://www.python.org/sigs/distutils-sig/
I use Microsoft Visual C++ 6.0 (5.0 with the service packs should work
also) to compile the wxPython C++ sources. Since I am using Distutils
it should be easier now to build with other win32 compilers such as
the free mingw32 or Borland compilers, but I havn't tried them yet.
If anybody wants to try it I'll take any required patches for the
setup script and for these instructions.
And now on to the fun stuff...
1. Get the wxWindows sources
----------------------------
A. There are a few possible ways to get sources for wxWindows. You
can download a released version from http://wxwindows.org/ or you
can get current development sources from the CVS server. (Some
information about annonymous CVS access is at
http://wxwindows.org/cvs.htm.) The advantage of using CVS is that
you can easily update as soon as the developers check in new
sources or fixes. The advantage of using a released version is
that it usually has had more testing done. You can decide which
method is best for you.
B. You'll usually want to use wxWindows sources that have the same
version number as the wxPython sources you are using. (Another
advantage of using CVS is that you'll get both at the same time.)
NOTE: There probably isn't going to be an official 2.2.2 release
for wxMSW so I have taken a snapshot of my workspace and made it
available at http://alldunn.com/wxPython/dist/others/
C. Once you get the sources be sure to put them in a path without a
space in it (i.e., NOT c:\Program Files\wx) and set an environment
variable named WXWIN to this directory. For example:
mkdir \wx2
cd \wx2
unzip wxMSW-2.2.2.zip
set WXWIN=c:\wx2
You'll probably want to add that last line to your autoexec.bat or
System Properties depending on the type of system you are on.
D. Change to the wx2\include\wx\msw directory and copy setup0.h to
setup.h and then edit setup.h. This is how you control which parts
of wxWindows are compiled into or left out of the build, simply by
turning options on or off. At a minimum you should set the
following:
wxUSE_NEW_GRID 1
wxUSE_GLOBAL_MEMORY_OPERATORS 0
wxUSE_LIBTIFF 1
wxUSE_GLCANVAS 1
wxDIALOG_UNIT_COMPATIBILITY 0
I also turn off the following as they are not currently used in
wxPython. There are probably others that can be turned off to
help save space, but I havn't investigated all the potential
configurations yet. Please note that wxPython doesn't (yet) check
these flags for its own build, so if you turn off something that
wxPython expects then you'll get link errors later on.
wxUSE_DIALUP_MANAGER 0
wxUSE_DYNLIB_CLASS 0
wxUSE_DOC_VIEW_ARCHITECTURE 0
wxUSE_MDI_ARCHITECTURE 0
wxUSE_PLOT 0
wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW 0
2. Build the wxWindows DLL
---------------------------
A. Although MSVC project files are provided I always use the makefiles
to build wxWindows because by default the flags are compatible with
Python, (and I make sure they stay that way.) You would have to
edit the project files a bit to make it work otherwise.
B. There are three different types of wxWindows DLLs that can be
produced by the VC makefile simply by providing a flag on the nmake
command-line, I call the three types DEBUG, FINAL, and HYBRID.
(The last one is brand new, you'll need my version of the 2.2.2
sources to get the HYBRID capability.) Here are some more details:
DEBUG Specified with "FINAL=0" and produces a DLL named
wx[version]d.dll. This DLL is compiled with full
debugging information and with the __WXDEBUG__ set which
enables some debugging-only code in wxWindows such as
assertions and failure log messages. The /MDd flag is
used which means that it is linked with the debugging
version of the C runtime library and also that you must
use the debugging version of Python, (python_d.exe and
pythonXX_d.dll) which also means that all extensions
loaded by Python should also have the _d in the name.
With this option you can use the MSVC debugger to trace
though the Python interpreter, as well as the code for the
wxPython extension and the wxWindows DLL.
FINAL Specified with "FINAL=1" and produces a DLL named
wx[version].dll. This DLL is compiled with optimizations
turned on and without debugging information and without
__WXDEBUG__. The /MD flag is used which means that you
can use this version with the standard python.exe. This
is the version that I use when making the binary installer
for win32.
HYBRID Specified with "FINAL=hybrid" and produces a DLL named
wx[version]h.dll. This DLL is almost the same as the
DEBUG version except the /MD flag is used which means that
you can use the standard python.exe but you still get the
debugging info and the __WXDEBUG__ code enabled. With the
debugger you can trace through the the code for the
wxPython extension and the wxWindows DLL, but not the
Python interpreter. You might use this version when you
want to deploy a wxPython app with the __WXDEBUG__ code
enabled. I use this mode most of the time during
development simply because it's easier than having to
remember to type python_d all the time.
Since different DLL names and object file directories are used you
can build all three types if you like.
C. Change to the wx2\src\msw directory and type the following command,
using the value for FINAL that you want:
nmake -f makefile.vc dll pch USE_GLCANVAS=1 FINAL=hybrid
Your machine will then crunch away for possibly a long time,
depending on your hardware, and when it's done you should have a
DLL and some library files in \wx2\lib.
D. You'll either need to add \wx2\lib to the PATH or copy the DLL file
to a directory already on the PATH so the DLL can be found at runtime.
E. You can test your build by changing to one of the directories under
\wx2\samples or \wx2\demos and typing (using the right FINAL flag):
nmake -f makefile.vc FINAL=hybrid WXUSINGDLL=1
and then executing the resulting .exe file.
3. Get the wxPython sources
---------------------------
A. You have the same options (and same advantages/disadvantages) for
getting the wxPython source, either a released snapshot or from
CVS. The released version file is named wxPython-[version].tar.gz
and is available at http://wxpython.org/download.php. You can use
WinZip to unpack it if you don't have tar and gzip. If you want to
use CVS you'll find wxPython in the wxWindows CVS tree (see above)
in the wxWindows/wxPython directory.
4. Build and Install wxPython
-----------------------------
A. As mentioned previouslly, wxPython is built with the standard
Python Distutils tool. If you are using Python 2.0c1 or later you
are all set, otherwise you need to download and install Distutils
1.0 from http://www.python.org/sigs/distutils-sig/.
B. Change to the root wxPython directory and look at the setup.py
file. This is the script that configures and defines all the
information that Distutils needs to build wxPython. There are some
options near the begining of the script that you may want or need
to change based on what options you have selected up to this point,
(type of DLL built, sources from tar.gz or from CVS, etc.) You can
either change these flags directly in setup.py or supply them on
the command-line.
BUILD_GLCANVAS Set to zero if you don't want to build the
Open GL canvas extension module.
BUILD_OGL Set to zero if you don't want to build the
Object Graphics Library extension module.
BUILD_STC Set to zero if you don't want to build the
wxStyledTextCtrl (the Scintilla wrapper)
extension module.
USE_SWIG If you have edited any of the *.i files you
will need to set this flag to non-zero so SWIG
will be executed to regenerate the wrapper C++
and shadow python files.
IN_CVS_TREE If you are using the CVS version of the
wxWindows and wxPython sources then you will
need to set this flag to non-zero. This is
needed because some source files from the
wxWindows tree are copied to be under the
wxPython tree in order to keep Distutils happy.
With this flag set then setup.py will
automatically keep these copied sources up to
date if the original version is ever updated.
If you are using the tar.gz version of the
Python sources then these copied sources are
already present in your source tree.
C. To build and install wxPython you simply need to execute the
setup.py script. If you have more than one version of Python
installed, be sure to execute setup.py with the version you want to
build wxPython for.
Depending on what kind of wxWindows DLL you built there are
different command-line parameters you'll want to pass to setup (in
addition to possibly one or more of the above):
FINAL: python setup.py install
DEBUG: python setup.py build --debug install
HYBRID: python setup.py HYBRID=1 install
D. At this point you should be able to change into the wxPython\demo
directory and run the demo:
python demo.py
E. If you would like to make a test build that doesn't overwrite the
installed version of wxPython you can do so with one of these
commands instead of the install command above:
FINAL: python setup.py build_ext --inplace
DEBUG: python setup.py build_ext --debug --inplace
HYBRID: python setup.py HYBRID=1 build_ext --inplace
This will build the wxPython package in the local wxPython
directory instead of installing it under your Python installation.
To run using this test version just add the base wxPython source
directory to the PYTHONPATH:
set PYTHONPATH=c:\wx2\wxPython
cd c:\wx2\wxPython\demo
python demo.py
That's all folks!
-----------------
robin@alldunn.com

757
wxPython/CHANGES.txt Normal file
View File

@@ -0,0 +1,757 @@
CHANGES.txt for wxPython
----------------------------------------------------------------------
2.3b1
-----
New typemaps for wxString when compiling for Python 2.0 and beyond
that allow Unicode objects to be passed as well as String objects. If
a Unicode object is passed PyString_AsStringAndSize is used to convert
it to a wxString using the default encoding.
Fixed the generic buttons so tool tips work for them.
Fixed a bug in the demo's tree control.
Added a listbox to the listbox demo that shows how to find items with
a patching prefix as keys are typed.
Added code to the wxListCtrl demo to show how to get text from a
column in report mode.
Added code to the toolbar demo to clear the long help from the status
bar after 2 seconds.
Added wxJoystick.
Fixed wxTimer so it can be used as described in the docs, either with
a Notify method in a subclass, or sending an event to a wxEvtHandler
object, (usually a window.)
Added wxNotifyEvent.Allow()
Fixed GOBS of reference leaks.
New in 2.2.2
------------
Significantly changed how the wxStyledtextCtrl code that wraps
Scintilla is implemented. Most of it is now automatically generated
from an interface definition file provided by Scintilla. This means
that it will be much easier to stay in sync with new Scintilla
releases, but also means that some of the method and identifier names
have changed. See wxPython/demo/data/stc.h for a copy of the C++
interface from which the Python interface is generated. There is now
some inline documentation in that file that should really help explain
how things work.
I am now using the Python Distutils to build wxPython and to make some
of the distribution files. (See http://www.python.org/sigs/distutils-sig/)
This means no more messing with my kludgy build.py/Makefile hack,
builds will be more consistent with other Python extensions that also
use Distutils, and will hopefully make wxPython easier to build for
platforms where there have been troubles before. If you are building
wxPython for Python 1.5.2 or for 1.6, then you will need to get and
install version 1.0 of Distutils from the website above. If you are
using Python 2.0 then you already have it.
Added wxInputStream and the wxFileSystem family of classes,
contributed by Joerg Baumann.
Added wxProcess and support for it to wxExecute. wxProcess lets you
get notified when an asyncronous child process terminates, and also to
get input/output streams for the child process's stdout, stderr and
stdin.
Removed the old python sizers.
Added __add__, __sub__ and __cmp__ (equality check only) for wxPoint
and wxRealPoint.
Changed the build to make one big extension module instead of one for
the core and each contrib. This allowed me to do away with the
libwxPyHelpers.so on unix systems.
Lots of little fixes here and there.
Some hacks on wxGTK to try and make the AutoComplete listbox in the
wxStyledTextCtrl to behave better. It's still not as nice as on
wxMSW, but at least it's a bit more usable now.
New in 2.2.1
------------
Various tweaks, fixes, missing methods, etc.
Added example use of wxTaskBarIcon to the demo.
New in 2.2.0
------------
Added wxLog and friends.
Added wxFrame.ShowFullScreen for MSW.
Added PyShellWindow to the wxPython.lib package.
New in 2.1.16
-------------
Added an attribute named labelDelta to the generic buttons that
specifies how far to offset the label when the button is in the
depressed state.
Added wxTipProvider and friends. See the demo for an example.
wxGrid can now change the cell highlight colour.
Added wxDragImage.
Fixed printing on wxGTK.
Added wxDateTime, wxTimeSpan, and wxDateSpan to wxPython.utils.
Added wxCalendarCtrl.
WARNING: A while back I asked what should be done about the Magic
Method Names. (Methods that are automatically turned into event
handlers by virtue of their name.) The consensus was that it is more
confusing to have them than to try and expand them to have greater
coverage. I am finally getting around to removing the code that
generates the event binding. This means that if you are using any of
the following method names without a EVT_* call that you need to
modify your code to add the EVT_* to hook the event to the method.
OnChar
OnSize
OnEraseBackground
OnSysColourChanged
OnInitDialog
OnPaint
OnIdle
OnActivate
OnMenuHighlight
OnCloseWindow
OnScroll
Added wxSpinCtrl.
New in 2.1.15
-------------
Fixed wxTreeCtrl.HitTest to return both the tree item as well as the
flags that clairify where the click was in relation to the item.
Fixed thread state problem in wxTreeCtrl.GetBoundingBox and
GetSelections.
Fixed some problems in OGL. Also wxShape.SetClientData and
.GetClientData can now deal with Python objects.
Added wxListCtrl.SortItems and changed the demo to show how to use it.
Plugged a memory leak.
Wrapped the new wxGrid and friends. The old wxGrid class is no longer
available. There are some incompatibilities, and unfortunately the
new classes are not documented yet, (however the methods are more
consistent with each other now so you may be able to guess pretty
good...)
Updated filebrowsebutton.py and calendar.py with changes from their
authors. There is now a FileBrowseButtonWithHistory class (what a
mouthful!) and wxCalendar has printing support.
Added ActiveXWrapper to the library, and some good demos of it too.
It works great for embedding a COM (a.k.a OCX, a.k.a ActiveX) control
in a window and calling its methods. It actually creates a new class
on the fly that derives from wxWindow, the COM CoClass and others
needed to make it all work. The resulting class can be instantiated
just like wxWindow, used in sizers, etc. It also responds to all COM
method calls, properties, etc., and if the class or a mix-in has
matching method names, then the COM events will be propogated back to
them.
Created a typemap that allows a string to be used for parameters
expecting a wxColour type. The string is either a colour name as
defined in the wxColourDatabase, or a colour spec of the form
"#RRGGBB". See the wxStyledTextCtrl demo for an example.
I almost forgot to mention the wxStyledTextCtrl! Yes, the
wxStyledTextCtrl is finally in wxPython!! (And the crowd goes
wild...) There's no documentaTion yet (the crowd boos and hisses...)
but I've included a very readable source file in the
wxPython/demo/data directory, a couple fairly good examples, and you
can also refer to the Scintilla documentaion at
http://www.scintilla.org/ScintillaDoc.html to help fill in the gaps
until the docs are done. (The croud murmers contentedly as the tool
provider smiles convincingly and removes his flame-proof suit.)
What's new in 2.1.13
--------------------
Skipped a version number to match what has been released for wxGTK.
Updated wxMVCTree and added a demo for it, also fixed layout on GTK
and some flicker problems.
Added a wrapper class for the Visualization ToolKit (or VTK) in the
wxPython.lib.vtk module. (http://www.kitware.com/)
Fixed wxTreeCtrl.SetItemImage and GetItemImage to recognise the new
"which" parameter.
Added wxPython.lib.spashscreen from Mike Fletcher.
Added wxPython.lib.filebrowsebutton also from Mike Fletcher.
Renamed wxTreeCtrl.GetParent to GetItemParent to avoid a name clash
with wxWindow.GetParent.
Added wxIntersectRect to compute the intersection of two wxRect's.
It is used like this:
intersect = wxIntersectRect(rect1, rect2)
If r1 and r2 don't intersect then None is returned, otherwise the
rectangle representing the intersection is returned.
Some bug fixes for Clipboard and Drag-n-Drop.
Rotated text!!! WooHoo! (See wxDC.DrawRotatedText())
Added a set of Generic Buttons to the library. These are simple
window classes that look and act like native buttons, but you can have
a bit more control over them. The bezel width can be set in addition
to colours, fonts, etc. There is a ToggleButton as well as Bitmap
versions too. They should also serve as a good example of how to
create your own classes derived from wxControl.
The C++ wxToolBar classes have been redone, and so have the wxPython
wrappers. There have been slight modifications to some of the methods
but shouldn't impact anybody too much. I took the opportunity to add
support for setting user data on each toolbar tool. The new AddTool
methods look like this:
def AddTool(ID,
bitmap,
pushedBitmap = wxNullBitmap,
toggle = FALSE,
clientData = NULL,
shortHelpString = "",
longHelpString = "")
def AddSimpleTool(ID,
bitmap,
shortHelpString = "",
longHelpString = "",
toggle=FALSE)
There are also coresponding InsertTool and InsertSimpleTool methods
that additionally take an integer position as the first parameter.
Added a wrapper for the new PCX and TIFF ImageHandlers.
wxRect now simulates attributes named left, right, top and bottom.
Removed all non wx stuff from the glcanvas module since DA's PyOpenGL
is better and compatible with the wxGLCanvas. You can get it at
http://starship.python.net:9673/crew/da/Code/PyOpenGL.
Added some missing EVT_ functions.
Added Dirk Holtwic's editor classes to the wxPython.lib.editor
package.
Changed all the "LIST" parameter names to "choices" to match the docs.
More fixes for the wxFloatBar, and it now works on wxGTK even better
than wxMSW! (The feat is accomplished by using the wxTB_DOCKABLE
style flag instead of trying to float it ourselves.)
What's new in 2.1.11
--------------------
Skipped a few version numbers so wxMSW, wxGTK and wxPython are all
syncronized.
wxImage.SetData now makes a copy of the image data before giving it to
wxImage. I mistakenly thought that wxImage would copy the data
itself.
Fixed wxMSW's notebook so the pages get their size set as they are
being added. This should remove the need for our
wxNotebook.ResizeChildren hack.
wxPanels now support AutoLayout, and wxNotebooks and wxSplitterWindows
no longer tell their children to Layout() themselves. This will
probably only effect you if you have a wxWindow with AutoLayout inside
a notebook or splitter. If so, either change it to a wxPanel or add
an EVT_SIZE handler that calls Layout().
Fixed deadlock problem that happened when using threads.
Added new HTML printing classes.
Added wxWindow.GetHandle
Apparently wxMouseEvent.Position has been depreciated in wxWindows as
it is no longer available by default. You can use GetPositionTuple
(returning a tuple with x,y) instead, or GetPosition (returning a
wxPoint.)
Added wxPostEvent function that allows events to be posted and then
processed later. This is a thread-safe way to interact with the GUI
thread from other threads.
Added Clipboard and Drag-and-Drop classes.
Added wxFontEnumerator.
Many updates to wxMenu, wxMenuBar.
wxPyEvent and wxPyCommandEvent derived classes now give you the actual
Python object in the event handler instead of a new shadow.
Added a Calendar widget from Lorne White to the library.
Made some fixes to the wxFloatbar. It still has some troubles on
wxGTK...
Added an MVC tree control from Bryn Keller to the library.
What's new in 2.1.5
-------------------
This is a quick bug-fix release to take care of a few nasties that
crept in at the last minute before 2.1.4 was called done. No new
major features.
What's new in 2.1.4
--------------------
This release is NOT syncronized with a snapshot release of wxGTK or
wxMSW. For MSW this isn't much of a problem since you can get the
binaries from the web site. For other platforms you'll have to build
wxGTK from CVS. (See http://web.ukonline.co.uk/julian.smart/wxwin/cvs.htm)
To get the same set of sources from CVS that I used, checkout using
the wxPy-2-1-4 tag.
Now back to what's new...
Much more support for event-less callbacks and add-on modules.
Created add-on module with wxOGL classes.
Added wxWindow.GetChildren(). Be careful of this. It returns a *copy*
of the list of the window's children. While you are using the list if
anything changes in the real list (a child is deleted, etc.) then the
list you are holding will suddenly have window references to garbage
memory and your app will likely crash. But if you are careful it works
great!
Added a bunch of new and missing methods to wxTreeCrtl. The
SortChildren method is now supported, but currently only for the
default sort order.
Added typemaps for wxSize, wxPoint, wxRealPoint, and wxRect that allow
either the actual objects or Python sequence values to be used. For
example, the following are equivallent:
win = wxWindow(parent, size = wxSize(100, 100))
win = wxWindow(parent, size = (100, 100))
Super-charged the wxHtml module. You can now create your own tag
handlers and also have access to the parser and cell classes. There
is a tag handler in the library at wxPython.lib.wxpTag that
understands the WXP tag and is able to place wxPython windows on HTML
pages. See the demo for an example.
A bunch of the methods of wxMenuBar were previously ifdef'd out for
wxGTK. Added them back in since the methods exist now.
Wrapped the wxHtmlHelpController and related classes.
Wrapped the C++ versions of wxSizer and friends. The Python-only
versions are still in the library, but depreciated. (You will get a
warning message if you try to use them, but the warning can be
disabled.) The usage of the C++ versions is slightly different, and
the functionality of wxBorderSizer is now part of wxBoxSizer. I have
added a few methods to wxSizer to try and make the transition as
smooth as possible, I combined all Add methods into a single method
that handles all cases, added an AddMany method, etc. One step I did
not take was to make the default value of flag in the Add method be
wxGROW. This would have made it more backward compatible, but less
portable to and from wxWin C++ code. Please see the docs and demo for
further details.
Added wxPyEvent and wxPyCommandEvent classes, derived from wxEvent and
wxCommandEvent. Each of them has SetPyData and GetPyData methods that
accept or return a single Python object. You can use these classes
directly or derive from them to create your own types of event objects
that can pass through the wxWindows event system without loosing their
Python parts (as long as they are stored with SetPyData.) Stay tuned
for more info and examples in future releases.
Added wxPython.lib.grids as an example of how to derive a new sizer
from the C++ sizers. In this module you will find wxGridSizer and
wxFlexGridSizer. wxGridSizer arrainges its items in a grid in which
all the widths and heights are the same. wxFlexgridSizer allows
different widths and heights, and you can also specify rows and/or
columns that are growable. See the demo for a couple examples for how
to use them.
Added the wxValidator class, and created a class named wxPyValidator
that should be used for the base class of any Python validators. See
the demo for an example. Please note that you MUST implement a Clone
method in your validator classes because of the way some things work
in the underlying C++ library. I did not add wxTextValidator because
of some issues of how it transfers data to and from a wxString, which
in wxPython is automatically translated to and from Python strings, so
there would never be a concrete wxString that would hang around long
enough for the validator to do its job. On the other hand, it should
be real easy to duplicate the functionality of wxTextValidator in a
pure Python class derived from wxPyValidator.
I've finally added a feature that has been on my list for close to two
years! Ever wondered what that zero is for when you create your app
object? Well now you can leave it out or explicitly set it to a true
value. This value now controls what is to be done with sys.stdout and
sys.stderr. A false value leaves them alone, and a true value sets
them to an instance of wxPyOnDemandOutputWindow. (On windows the
default is true, on unix platforms the default is false.) This class
creates a frame containing a wxTextCtrl as soon as anything is written
to sys.stdout or sys.stderr. If you close the window it will come
back again the next time something is written. (You can call
app.RestoreStdio to turn this off.) If you would rather that the stdio be
redirected to a file, you can provide a second parameter to your app
object's constructor that is a filename. If you want to use your own
class instead of wxPyOnDemandOutputWindow you can either implement
RedirectStdio() in you app class or change the value of
wxApp.outputWindowClass like this:
class MyApp(wxApp):
outputWindowClass = MyClass
def OnInit(self):
frame = MyFrame()
self.SetTopWindow(frame)
return true
Please see the implementation of wxPyOnDemandOutputWindow and wxApp in
wx.py for more details. A few words of caution: if you are running
your app in a debugger, changing sys.stdout and sys.stderr is likely
to really screw things up.
Added wxCaret. Unfortunately it's author has still not documented it
in the wxWindows docs...
Some new 3rd party contributions in wxPython.lib. PyShell, in
shell.py is an interesting implementaion of an interactive Python
shell in wxWindows. floatbar.py has a class derived from wxToolBar
that can sense mouse drags and then reparent itself into another
frame. Moving the new frame close to where it came from puts the tool
bar back into the original parent. (Unfortunately there is currently
a bug in wxGTK's wxFrame.SetToolBar so the FloatBar has some
problems...)
What's new in 2.1b3
--------------------
This release is syncronized with release 2.1 snapshot 9 of wxWindows.
Switched to using SWIG from CVS (see http://swig.cs.uchicago.edu/cvs.html)
for some of the new features and such. Also they have encorporated my
patches so there is really no reason to stick with the current (very
old) release... This version of SWIG gives the following new
features:
1. Keyword arguments. You no longer have to specify all the
parameters with defaults to a method just to specify a
non-default value on the end. You can now do this instead:
win = wxWindow(parent, -1, style = mystyle)
2. There is now an an equivalence between Python's None and C++'s
NULL. This means that any methods that might return NULL will
now return None and you can use none where wxWindows might be
expecting NULL. This makes things much more snake-ish.
There is a new build system based on a new Python program instead of
raw makefiles. Now wxPython builds are virtually the same on MSW or
Unix systems. See the end of this file for new build instructions and
see distrib/build.py for more details.
wxDC.Bilt now includes the useMask parameter, and has been split into
two different versions. wxDC.BlitXY is like what was there before and
takes raw coordinants and sizes, and the new wxDC.Blit is for the new
interface using wxPoints and a wxSize.
What's new in 2.1b2
--------------------
Added the missing wxWindow.GetUpdateRegion() method.
Made a new change in SWIG (update your patches everybody) that
provides a fix for global shadow objects that get an exception in
their __del__ when their extension module has already been deleted.
It was only a 1 line change in .../SWIG/Modules/pycpp.cxx at about
line 496 if you want to do it by hand.
It is now possible to run through MainLoop more than once in any one
process. The cleanup that used to happen as MainLoop completed (and
prevented it from running again) has been delayed until the wxc module
is being unloaded by Python.
I fixed a bunch of stuff in the C++ version of wxGrid so it wouldn't
make wxPython look bad.
wxWindow.PopupMenu() now takes a wxPoint instead of x,y. Added
wxWindow.PopupMenuXY to be consistent with some other methods.
Added wxGrid.SetEditInPlace and wxGrid.GetEditInPlace.
You can now provide your own app.MainLoop method. See
wxPython/demo/demoMainLoop.py for an example and some explaination.
Got the in-place-edit for the wxTreeCtrl fixed and added some demo
code to show how to use it.
Put the wxIcon constructor back in for GTK as it now has one that
matches MSW's.
Added wxGrid.GetCells
Added wxSystemSettings static methods as functions with names like
wxSystemSettings_GetSystemColour.
Removed wxPyMenu since using menu callbacks have been depreciated in
wxWindows. Use wxMenu and events instead.
Added alternate wxBitmap constructor (for MSW only) as
wxBitmapFromData(data, type, width, height, depth = 1)
Added a helper function named wxPyTypeCast that can convert shadow
objects of one type into shadow objects of another type. (Like doing
a down-cast.) See the implementation in wx.py for some docs.
Fixed wxImage GetData and SetData to properly use String objects for
data transfer.
Added access methods to wxGridEvent.
New Makefile/Setup files supporting multiple dynamic extension modules
for unix systems.
Fixes for the wxGLCanvas demo to work around a strange bug in gtk.
SWIG support routines now compiled separately instead of being bundled
in wx.cpp.
What's new in 2.1b1
--------------------
Fixed wxComboBox.SetSelection so that it actually sets the selected
item. (Actually just removed it from wxPython and let it default to
wxChoice.SetSelection which was already doing the right thing.)
Added the Printing Framework.
Switched back to using the wxWindows DLL for the pre-built Win32
version. The problem was needing to reinitialize static class info
data after loading each extension module.
Lots of little tweaks and additions to reflect changes to various
wxWindows classes.
Fixed a bug with attaching objects to tree items. Actually was a
symptom of a larger problem with not obtaining the interpreter lock
when doing any Py_DECREFs.
wxSizer and friends. Sizers are layout tools that manage a colection
of windows and sizers. Different types of sizers apply different
types of layout algorithms. You saw it here first! These classes are
not even in the wxWindows C++ library yet!
What's new in 2.0b9
-------------------
Bug fix for ListCtrl in test4.py (Was a missing file... DSM!)
Bug fix for occassional GPF on Win32 systems upon termination of a
wxPython application.
Added wxListBox.GetSelections returning selections as a Tuple.
Added a wxTreeItemData that is able to hold any Python object and be
associated with items in a wxTreeCtrl. Added test pytree.py to show
this feature off.
Added wxSafeYield function.
OpenGL Canvas can be optionally compiled in to wxPython.
Awesome new Demo Framework for showing off wxPython and for learning
how it all works.
The pre-built Win32 version is no longer distributing the wxWindows
DLL. It is statically linked with the wxWindows library instead.
Added a couple missing items from the docs.
Added wxImage, wxImageHandler, wxPNGHandler, wxJPEGHandler,
wxGIFHandler and wxBMPHandler.
Added new methods to wxTextCtrl.
Fixed some problems with how SWIG was wrapping some wxTreeCtrl
methods.
What's new in 2.0b8
-------------------
Support for using Python threads in wxPython apps.
Several missing methods from various classes.
Various bug fixes.
What's new in 2.0b7
-------------------
Added DLG_PNT and DLG_SZE convienience methods to wxWindow class.
Added missing constructor and other methods for wxMenuItem.
What's new in 2.0b6
-------------------
Just a quickie update to fix the self-installer to be compatible with
Python 1.5.2b2's Registry settings.
What's new in 2.0b5
-------------------
Well obviously the numbering scheme has changed. I did this to
reflect the fact that this truly is the second major revision of
wxPython, (well the third actually if you count the one I did for
wxWindows 1.68 and then threw away...) and also that it is associated
with the 2.0 version of wxWindows.
I have finally started documenting wxPython. There are several pages
in the wxWindows documentation tree specifically about wxPython, and I
have added notes within the class references about where and how wxPython
diverges from wxWindows.
Added wxWindow_FromHWND(hWnd) for wxMSW to construct a wxWindow from a
window handle. If you can get the window handle into the python code,
it should just work... More news on this later.
Added wxImageList, wxToolTip.
Re-enabled wxConfig.DeleteAll() since it is reportedly fixed for the
wxRegConfig class.
As usual, some bug fixes, tweaks, etc.
What's new in 0.5.3
-------------------
Added wxSashWindow, wxSashEvent, wxLayoutAlgorithm, etc.
Various cleanup, tweaks, minor additions, etc. to maintain
compatibility with the current wxWindows.
What's new in 0.5.0
-------------------
Changed the import semantics from "from wxPython import *" to "from
wxPython.wx import *" This is for people who are worried about
namespace pollution, they can use "from wxPython import wx" and then
prefix all the wxPython identifiers with "wx."
Added wxTaskbarIcon for wxMSW.
Made the events work for wxGrid.
Added wxConfig.
Added wxMiniFrame for wxGTK.
Changed many of the args and return values that were pointers to gdi
objects to references to reflect changes in the wxWindows API.
Other assorted fixes and additions.
What's new in 0.4.2
-------------------
wxPython on wxGTK works!!! Both dynamic and static on Linux and
static on Solaris have been tested. Many thanks go to Harm
<H.v.d.Heijden@phys.tue.nl> for his astute detective work on tracking
down a nasty DECREF bug. Okay so I have to confess that it was just a
DSM (Dumb Stupid Mistake) on my part but it was nasty none the less
because the behavior was so different on different platforms.
The dynamicly loaded module on Solaris is still segfaulting, so it
must have been a different issue all along...
What's New in 0.4
-----------------
1. Worked on wxGTK compatibility. It is partially working. On a
Solaris/Sparc box wxPython is working but only when it is statically
linked with the Python interpreter. When built as a dyamically loaded
extension module, things start acting weirdly and it soon seg-faults.
And on Linux both the statically linked and the dynamically linked
version segfault shortly after starting up.
2. Added Toolbar, StatusBar and SplitterWindow classes.
3. Varioius bug fixes, enhancements, etc.
----------------------------------------------------------------------

92
wxPython/MANIFEST.in Normal file
View File

@@ -0,0 +1,92 @@
include *.txt
include my_distutils.py
## include my_install_data.py
include licence/*.txt
include demo/*.py
include demo/bitmaps/*.bmp
include demo/bitmaps/*.ico
include demo/bitmaps/*.gif
include demo/bitmaps/*.png
include demo/bitmaps/*.jpg
include demo/README.txt
include demo/*.xml
include demo/data/*.png
include demo/data/*.htm
include demo/data/*.html
include demo/data/*.bmp
include demo/data/*.txt
include demo/data/*.i
include demo/data/*.h
include demo/data/*.py
include wxPython/lib/*.py
include wxPython/lib/*.txt
include wxPython/lib/editor/*.py
include wxPython/lib/editor/*.txt
exclude wxPython/*
exclude tests
exclude SWIG
include src/*.i
include src/*.py
include src/*.cpp
include src/*.c
include src/*.h
include src/*.ico
include src/*.rc
include src/msw/*.cpp
include src/msw/*.h
include src/msw/*.py
include src/gtk/*.cpp
include src/gtk/*.h
include src/gtk/*.py
# src/motif/*.cpp
# src/motif/*.h
# src/motif/*.py
include contrib/glcanvas/*.i
include contrib/glcanvas/*.py
include contrib/glcanvas/*.cpp
include contrib/glcanvas/*.c
include contrib/glcanvas/*.h
include contrib/glcanvas/msw/*.cpp
include contrib/glcanvas/msw/*.h
include contrib/glcanvas/msw/*.py
include contrib/glcanvas/gtk/*.cpp
include contrib/glcanvas/gtk/*.h
include contrib/glcanvas/gtk/*.py
include contrib/ogl/*.txt
include contrib/ogl/*.i
include contrib/ogl/*.py
include contrib/ogl/*.cpp
include contrib/ogl/*.c
include contrib/ogl/*.h
include contrib/ogl/contrib/include/wx/ogl/*.h
include contrib/ogl/contrib/src/ogl/*.cpp
include contrib/stc/*.txt
include contrib/stc/*.i
include contrib/stc/*.py
include contrib/stc/*.cpp
include contrib/stc/*.c
include contrib/stc/*.h
include contrib/stc/*.cpp
include contrib/stc/*.py
include contrib/stc/contrib/include/wx/stc/*.h
include contrib/stc/contrib/src/stc/*.h
include contrib/stc/contrib/src/stc/*.cpp
include contrib/stc/contrib/src/stc/*.txt
include contrib/stc/contrib/src/stc/*.py
include contrib/stc/contrib/src/stc/*.in
include contrib/stc/contrib/src/stc/scintilla/include/*.h
include contrib/stc/contrib/src/stc/scintilla/include/*.iface
include contrib/stc/contrib/src/stc/scintilla/src/*.h
include contrib/stc/contrib/src/stc/scintilla/src/*.cxx

85
wxPython/README.txt Normal file
View File

@@ -0,0 +1,85 @@
wxPython README
---------------
Welcome to the wonderful world of wxPython!
Once you have installed the wxPython extension module, you can try it
out by going to the [install dir]\wxPython\demo directory and typing:
python demo.py
There are also some other sample files there for you to play with and
learn from.
If you selected to install the documentation then point your browser
to [install dir]\wxPython\docs\index.htm and you will then be looking
at the docs for wxWindows. For the most part you can use the C++ docs
as most classes and methods are used identically. Where there are
differences they are documented with a "wxPython Note."
On Win32 systems the binary self-installer creates a program group on
the Start Menu that contains a link to running the demo and a link to
the help file. To help you save disk space I'm now using Microsoft's
HTML Help format. If your system doesn't know what to do with the help
file, you can install the HTML Help Viewer as part of IE 4+, NT
Service Pack 4+, or the HTML Workshop at
http://msdn.microsoft.com/workshop/author/htmlhelp/download.asp.
For some features, the latest common controls library from microsoft
is required. You can get this by installing IE 5.0 or Office 2000.
You can also get it independently from here:
http://download.microsoft.com/download/platformsdk/Comctl32/5.80.2614.3600/W9XNT4/EN-US/50comupd.exe
Windows 95 users may also need the WinSock 2.0 and OpenGL libraries.
These can be found at these sites:
http://www.microsoft.com/windows95/downloads/contents/wuadmintools/s_wunetworkingtools/w95sockets2/default.asp
http://www.opengl.org/Downloads/Downloads.html
Getting Help
------------
Since wxPython is a blending of multiple technologies, help comes from
multiple sources. See the http://wxPython.org/ for details on various
sources of help, but probably the best source is the wxPython-users
mail list. You can view the archive or subscribe by going to
http://lists.sourceforge.net/mailman/listinfo/wxpython-users
Or you can send mail directly to the list using this address:
wxpython-users@lists.sourceforge.net
Other Info
----------
Please also see the following files in this directory:
CHANGES.txt Information about new features, fixes, etc. in
each release.
BUILD.unix.txt Instructions for building wxPython on various
Unix-like platforms.
BUILD.win32.txt Instructions for building wxPython on Windows.
licence/* Text of the wxWindows license.
-----------------
Robin Dunn
robin@alldunn.com

6
wxPython/SWIG/README.txt Normal file
View File

@@ -0,0 +1,6 @@
Some minor tweaks were made to these files to allow wxPython to build
with Python 1.6. Just put these in your swig_lib/python dir and
you'll be all set. These are from SWIG 1.1-810, (yes, I am a bit
behind.)

32
wxPython/SWIG/pyexp.swg Normal file
View File

@@ -0,0 +1,32 @@
#include <string.h>
#include <stdlib.h>
/* Definitions for Windows/Unix exporting */
#if defined(__WIN32__)
# if defined(_MSC_VER)
# define SWIGEXPORT(a) __declspec(dllexport) a
# else
# if defined(__BORLANDC__)
# define SWIGEXPORT(a) a _export
# else
# define SWIGEXPORT(a) a
# endif
# endif
#else
# define SWIGEXPORT(a) a
#endif
#include "Python.h"
#ifdef __cplusplus
extern "C" {
#endif
extern void SWIG_MakePtr(char *, void *, char *);
extern void SWIG_RegisterMapping(char *, char *, void *(*)(void *));
extern char *SWIG_GetPtr(char *, void **, char *);
extern char *SWIG_GetPtrObj(PyObject *, void **, char *);
extern void SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *));
extern PyObject *SWIG_newvarlink(void);
#ifdef __cplusplus
}
#endif

561
wxPython/SWIG/typemaps.i Normal file
View File

@@ -0,0 +1,561 @@
//
// SWIG Typemap library
// Dave Beazley
// May 5, 1997
//
// Python implementation
//
// This library provides standard typemaps for modifying SWIG's behavior.
// With enough entries in this file, I hope that very few people actually
// ever need to write a typemap.
//
// Disclaimer : Unless you really understand how typemaps work, this file
// probably isn't going to make much sense.
//
#ifdef AUTODOC
%section "Typemap Library (Python)",info,after,pre,nosort,skip=1,chop_left=3,chop_right=0,chop_top=0,chop_bottom=0
%text %{
%include typemaps.i
The SWIG typemap library provides a language independent mechanism for
supporting output arguments, input values, and other C function
calling mechanisms. The primary use of the library is to provide a
better interface to certain C function--especially those involving
pointers.
%}
#endif
// ------------------------------------------------------------------------
// Pointer handling
//
// These mappings provide support for input/output arguments and common
// uses for C/C++ pointers.
// ------------------------------------------------------------------------
// INPUT typemaps.
// These remap a C pointer to be an "INPUT" value which is passed by value
// instead of reference.
#ifdef AUTODOC
%subsection "Input Methods"
%text %{
The following methods can be applied to turn a pointer into a simple
"input" value. That is, instead of passing a pointer to an object,
you would use a real value instead.
int *INPUT
short *INPUT
long *INPUT
unsigned int *INPUT
unsigned short *INPUT
unsigned long *INPUT
unsigned char *INPUT
float *INPUT
double *INPUT
To use these, suppose you had a C function like this :
double fadd(double *a, double *b) {
return *a+*b;
}
You could wrap it with SWIG as follows :
%include typemaps.i
double fadd(double *INPUT, double *INPUT);
or you can use the %apply directive :
%include typemaps.i
%apply double *INPUT { double *a, double *b };
double fadd(double *a, double *b);
%}
#endif
%typemap(python,in) double *INPUT(double temp)
{
temp = PyFloat_AsDouble($source);
$target = &temp;
}
%typemap(python,in) float *INPUT(float temp)
{
temp = (float) PyFloat_AsDouble($source);
$target = &temp;
}
%typemap(python,in) int *INPUT(int temp)
{
temp = (int) PyInt_AsLong($source);
$target = &temp;
}
%typemap(python,in) short *INPUT(short temp)
{
temp = (short) PyInt_AsLong($source);
$target = &temp;
}
%typemap(python,in) long *INPUT(long temp)
{
temp = (long) PyInt_AsLong($source);
$target = &temp;
}
%typemap(python,in) unsigned int *INPUT(unsigned int temp)
{
temp = (unsigned int) PyInt_AsLong($source);
$target = &temp;
}
%typemap(python,in) unsigned short *INPUT(unsigned short temp)
{
temp = (unsigned short) PyInt_AsLong($source);
$target = &temp;
}
%typemap(python,in) unsigned long *INPUT(unsigned long temp)
{
temp = (unsigned long) PyInt_AsLong($source);
$target = &temp;
}
%typemap(python,in) unsigned char *INPUT(unsigned char temp)
{
temp = (unsigned char) PyInt_AsLong($source);
$target = &temp;
}
%typemap(python,in) signed char *INPUT(signed char temp)
{
temp = (unsigned char) PyInt_AsLong($source);
$target = &temp;
}
// OUTPUT typemaps. These typemaps are used for parameters that
// are output only. The output value is appended to the result as
// a list element.
#ifdef AUTODOC
%subsection "Output Methods"
%text %{
The following methods can be applied to turn a pointer into an "output"
value. When calling a function, no input value would be given for
a parameter, but an output value would be returned. In the case of
multiple output values, they are returned in the form of a Python tuple.
int *OUTPUT
short *OUTPUT
long *OUTPUT
unsigned int *OUTPUT
unsigned short *OUTPUT
unsigned long *OUTPUT
unsigned char *OUTPUT
float *OUTPUT
double *OUTPUT
A Python List can also be returned by using L_OUTPUT instead of OUTPUT.
For example, suppose you were trying to wrap the modf() function in the
C math library which splits x into integral and fractional parts (and
returns the integer part in one of its parameters).K:
double modf(double x, double *ip);
You could wrap it with SWIG as follows :
%include typemaps.i
double modf(double x, double *OUTPUT);
or you can use the %apply directive :
%include typemaps.i
%apply double *OUTPUT { double *ip };
double modf(double x, double *ip);
The Python output of the function would be a tuple containing both
output values.
%}
#endif
// Helper function for List output
%{
static PyObject* l_output_helper(PyObject* target, PyObject* o) {
PyObject* o2;
if (!target) {
target = o;
} else if (target == Py_None) {
Py_DECREF(Py_None);
target = o;
} else {
if (!PyList_Check(target)) {
o2 = target;
target = PyList_New(0);
PyList_Append(target, o2);
Py_XDECREF(o2);
}
PyList_Append(target,o);
Py_XDECREF(o);
}
return target;
}
%}
// Force the argument to be ignored.
%typemap(python,ignore) int *L_OUTPUT(int temp),
short *L_OUTPUT(short temp),
long *L_OUTPUT(long temp),
unsigned int *L_OUTPUT(unsigned int temp),
unsigned short *L_OUTPUT(unsigned short temp),
unsigned long *L_OUTPUT(unsigned long temp),
unsigned char *L_OUTPUT(unsigned char temp),
signed char *L_OUTPUT(signed char temp),
float *L_OUTPUT(float temp),
double *L_OUTPUT(double temp)
{
$target = &temp;
}
%typemap(python,argout) int *L_OUTPUT,
short *L_OUTPUT,
long *L_OUTPUT,
unsigned int *L_OUTPUT,
unsigned short *L_OUTPUT,
unsigned long *L_OUTPUT,
unsigned char *L_OUTPUT,
signed char *L_OUTPUT
{
PyObject *o;
o = PyInt_FromLong((long) (*$source));
l_output_helper($target,o);
}
%typemap(python,argout) float *L_OUTPUT,
double *L_OUTPUT
{
PyObject *o;
o = PyFloat_FromDouble((double) (*$source));
$target = l_output_helper($target,o);
}
// These typemaps contributed by Robin Dunn
//----------------------------------------------------------------------
//
// T_OUTPUT typemap (and helper function) to return multiple argouts as
// a tuple instead of a list.
//
// Author: Robin Dunn
//----------------------------------------------------------------------
%{
static PyObject* t_output_helper(PyObject* target, PyObject* o) {
PyObject* o2;
PyObject* o3;
if (!target) {
target = o;
} else if (target == Py_None) {
Py_DECREF(Py_None);
target = o;
} else {
if (!PyTuple_Check(target)) {
o2 = target;
target = PyTuple_New(1);
PyTuple_SetItem(target, 0, o2);
}
o3 = PyTuple_New(1);
PyTuple_SetItem(o3, 0, o);
o2 = target;
target = PySequence_Concat(o2, o3);
Py_DECREF(o2);
Py_DECREF(o3);
}
return target;
}
%}
// Force the argument to be ignored.
%typemap(python,ignore) int *T_OUTPUT(int temp),
short *T_OUTPUT(short temp),
long *T_OUTPUT(long temp),
unsigned int *T_OUTPUT(unsigned int temp),
unsigned short *T_OUTPUT(unsigned short temp),
unsigned long *T_OUTPUT(unsigned long temp),
unsigned char *T_OUTPUT(unsigned char temp),
float *T_OUTPUT(float temp),
double *T_OUTPUT(double temp)
{
$target = &temp;
}
%typemap(python,argout) int *T_OUTPUT,
short *T_OUTPUT,
long *T_OUTPUT,
unsigned int *T_OUTPUT,
unsigned short *T_OUTPUT,
unsigned long *T_OUTPUT,
unsigned char *T_OUTPUT
{
PyObject *o;
o = PyInt_FromLong((long) (*$source));
$target = t_output_helper($target, o);
}
%typemap(python,argout) float *T_OUTPUT,
double *T_OUTPUT
{
PyObject *o;
o = PyFloat_FromDouble((double) (*$source));
$target = t_output_helper($target, o);
}
// Set the default output typemap
#ifdef OUTPUT_LIST
%typemap(python,ignore) int *OUTPUT = int *L_OUTPUT;
%typemap(python,ignore) short *OUTPUT = short *L_OUTPUT;
%typemap(python,ignore) long *OUTPUT = long *L_OUTPUT;
%typemap(python,ignore) unsigned *OUTPUT = unsigned *L_OUTPUT;
%typemap(python,ignore) unsigned short *OUTPUT = unsigned short *L_OUTPUT;
%typemap(python,ignore) unsigned long *OUTPUT = unsigned long *L_OUTPUT;
%typemap(python,ignore) unsigned char *OUTPUT = unsigned char *L_OUTPUT;
%typemap(python,ignore) signed char *OUTPUT = signed char *L_OUTPUT;
%typemap(python,ignore) double *OUTPUT = double *L_OUTPUT;
%typemap(python,ignore) float *OUTPUT = float *L_OUTPUT;
%typemap(python,argout) int *OUTPUT = int *L_OUTPUT;
%typemap(python,argout) short *OUTPUT = short *L_OUTPUT;
%typemap(python,argout) long *OUTPUT = long *L_OUTPUT;
%typemap(python,argout) unsigned *OUTPUT = unsigned *L_OUTPUT;
%typemap(python,argout) unsigned short *OUTPUT = unsigned short *L_OUTPUT;
%typemap(python,argout) unsigned long *OUTPUT = unsigned long *L_OUTPUT;
%typemap(python,argout) unsigned char *OUTPUT = unsigned char *L_OUTPUT;
%typemap(python,argout) signed char *OUTPUT = signed char *L_OUTPUT;
%typemap(python,argout) double *OUTPUT = double *L_OUTPUT;
%typemap(python,argout) float *OUTPUT = float *L_OUTPUT;
#else
%typemap(python,ignore) int *OUTPUT = int *T_OUTPUT;
%typemap(python,ignore) short *OUTPUT = short *T_OUTPUT;
%typemap(python,ignore) long *OUTPUT = long *T_OUTPUT;
%typemap(python,ignore) unsigned *OUTPUT = unsigned *T_OUTPUT;
%typemap(python,ignore) unsigned short *OUTPUT = unsigned short *T_OUTPUT;
%typemap(python,ignore) unsigned long *OUTPUT = unsigned long *T_OUTPUT;
%typemap(python,ignore) unsigned char *OUTPUT = unsigned char *T_OUTPUT;
%typemap(python,ignore) signed char *OUTPUT = signed char *T_OUTPUT;
%typemap(python,ignore) double *OUTPUT = double *T_OUTPUT;
%typemap(python,ignore) float *OUTPUT = float *T_OUTPUT;
%typemap(python,argout) int *OUTPUT = int *T_OUTPUT;
%typemap(python,argout) short *OUTPUT = short *T_OUTPUT;
%typemap(python,argout) long *OUTPUT = long *T_OUTPUT;
%typemap(python,argout) unsigned *OUTPUT = unsigned *T_OUTPUT;
%typemap(python,argout) unsigned short *OUTPUT = unsigned short *T_OUTPUT;
%typemap(python,argout) unsigned long *OUTPUT = unsigned long *T_OUTPUT;
%typemap(python,argout) unsigned char *OUTPUT = unsigned char *T_OUTPUT;
%typemap(python,argout) signed char *OUTPUT = signed char *T_OUTPUT;
%typemap(python,argout) double *OUTPUT = double *T_OUTPUT;
%typemap(python,argout) float *OUTPUT = float *T_OUTPUT;
#endif
// INOUT
// Mappings for an argument that is both an input and output
// parameter
#ifdef AUTODOC
%subsection "Input/Output Methods"
%text %{
The following methods can be applied to make a function parameter both
an input and output value. This combines the behavior of both the
"INPUT" and "OUTPUT" methods described earlier. Output values are
returned in the form of a Python tuple. To return a Python list,
using L_INOUT instead.
int *INOUT
short *INOUT
long *INOUT
unsigned int *INOUT
unsigned short *INOUT
unsigned long *INOUT
unsigned char *INOUT
float *INOUT
double *INOUT
For example, suppose you were trying to wrap the following function :
void neg(double *x) {
*x = -(*x);
}
You could wrap it with SWIG as follows :
%include typemaps.i
void neg(double *INOUT);
or you can use the %apply directive :
%include typemaps.i
%apply double *INOUT { double *x };
void neg(double *x);
Unlike C, this mapping does not directly modify the input value (since
this makes no sense in Python). Rather, the modified input value shows
up as the return value of the function. Thus, to apply this function
to a Python variable you might do this :
x = neg(x)
Note : previous versions of SWIG used the symbol 'BOTH' to mark
input/output arguments. This is still supported, but will be slowly
phased out in future releases.
%}
#endif
%typemap(python,in) int *INOUT = int *INPUT;
%typemap(python,in) short *INOUT = short *INPUT;
%typemap(python,in) long *INOUT = long *INPUT;
%typemap(python,in) unsigned *INOUT = unsigned *INPUT;
%typemap(python,in) unsigned short *INOUT = unsigned short *INPUT;
%typemap(python,in) unsigned long *INOUT = unsigned long *INPUT;
%typemap(python,in) unsigned char *INOUT = unsigned char *INPUT;
%typemap(python,in) float *INOUT = float *INPUT;
%typemap(python,in) double *INOUT = double *INPUT;
%typemap(python,argout) int *INOUT = int *OUTPUT;
%typemap(python,argout) short *INOUT = short *OUTPUT;
%typemap(python,argout) long *INOUT = long *OUTPUT;
%typemap(python,argout) unsigned *INOUT = unsigned *OUTPUT;
%typemap(python,argout) unsigned short *INOUT = unsigned short *OUTPUT;
%typemap(python,argout) unsigned long *INOUT = unsigned long *OUTPUT;
%typemap(python,argout) unsigned char *INOUT = unsigned char *OUTPUT;
%typemap(python,argout) float *INOUT = float *OUTPUT;
%typemap(python,argout) double *INOUT = double *OUTPUT;
%typemap(python,in) int *T_INOUT = int *INPUT;
%typemap(python,in) short *T_INOUT = short *INPUT;
%typemap(python,in) long *T_INOUT = long *INPUT;
%typemap(python,in) unsigned *T_INOUT = unsigned *INPUT;
%typemap(python,in) unsigned short *T_INOUT = unsigned short *INPUT;
%typemap(python,in) unsigned long *T_INOUT = unsigned long *INPUT;
%typemap(python,in) unsigned char *T_INOUT = unsigned char *INPUT;
%typemap(python,in) float *T_INOUT = float *INPUT;
%typemap(python,in) double *T_INOUT = double *INPUT;
%typemap(python,argout) int *T_INOUT = int *T_OUTPUT;
%typemap(python,argout) short *T_INOUT = short *T_OUTPUT;
%typemap(python,argout) long *T_INOUT = long *T_OUTPUT;
%typemap(python,argout) unsigned *T_INOUT = unsigned *T_OUTPUT;
%typemap(python,argout) unsigned short *T_INOUT = unsigned short *T_OUTPUT;
%typemap(python,argout) unsigned long *T_INOUT = unsigned long *T_OUTPUT;
%typemap(python,argout) unsigned char *T_INOUT = unsigned char *T_OUTPUT;
%typemap(python,argout) float *T_INOUT = float *T_OUTPUT;
%typemap(python,argout) double *T_INOUT = double *T_OUTPUT;
%typemap(python,in) int *L_INOUT = int *INPUT;
%typemap(python,in) short *L_INOUT = short *INPUT;
%typemap(python,in) long *L_INOUT = long *INPUT;
%typemap(python,in) unsigned *L_INOUT = unsigned *INPUT;
%typemap(python,in) unsigned short *L_INOUT = unsigned short *INPUT;
%typemap(python,in) unsigned long *L_INOUT = unsigned long *INPUT;
%typemap(python,in) unsigned char *L_INOUT = unsigned char *INPUT;
%typemap(python,in) float *L_INOUT = float *INPUT;
%typemap(python,in) double *L_INOUT = double *INPUT;
%typemap(python,argout) int *L_INOUT = int *L_OUTPUT;
%typemap(python,argout) short *L_INOUT = short *L_OUTPUT;
%typemap(python,argout) long *L_INOUT = long *L_OUTPUT;
%typemap(python,argout) unsigned *L_INOUT = unsigned *L_OUTPUT;
%typemap(python,argout) unsigned short *L_INOUT = unsigned short *L_OUTPUT;
%typemap(python,argout) unsigned long *L_INOUT = unsigned long *L_OUTPUT;
%typemap(python,argout) unsigned char *L_INOUT = unsigned char *L_OUTPUT;
%typemap(python,argout) float *L_INOUT = float *L_OUTPUT;
%typemap(python,argout) double *L_INOUT = double *L_OUTPUT;
// Backwards compatibility
%typemap(python,in) int *BOTH = int *INOUT;
%typemap(python,in) short *BOTH = short *INOUT;
%typemap(python,in) long *BOTH = long *INOUT;
%typemap(python,in) unsigned *BOTH = unsigned *INOUT;
%typemap(python,in) unsigned short *BOTH = unsigned short *INOUT;
%typemap(python,in) unsigned long *BOTH = unsigned long *INOUT;
%typemap(python,in) unsigned char *BOTH = unsigned char *INOUT;
%typemap(python,in) float *BOTH = float *INOUT;
%typemap(python,in) double *BOTH = double *INOUT;
%typemap(python,argout) int *BOTH = int *INOUT;
%typemap(python,argout) short *BOTH = short *INOUT;
%typemap(python,argout) long *BOTH = long *INOUT;
%typemap(python,argout) unsigned *BOTH = unsigned *INOUT;
%typemap(python,argout) unsigned short *BOTH = unsigned short *INOUT;
%typemap(python,argout) unsigned long *BOTH = unsigned long *INOUT;
%typemap(python,argout) unsigned char *BOTH = unsigned char *INOUT;
%typemap(python,argout) float *BOTH = float *INOUT;
%typemap(python,argout) double *BOTH = double *INOUT;
%typemap(python,in) int *T_BOTH = int *T_INOUT;
%typemap(python,in) short *T_BOTH = short *T_INOUT;
%typemap(python,in) long *T_BOTH = long *T_INOUT;
%typemap(python,in) unsigned *T_BOTH = unsigned *T_INOUT;
%typemap(python,in) unsigned short *T_BOTH = unsigned short *T_INOUT;
%typemap(python,in) unsigned long *T_BOTH = unsigned long *T_INOUT;
%typemap(python,in) unsigned char *T_BOTH = unsigned char *T_INOUT;
%typemap(python,in) float *T_BOTH = float *T_INOUT;
%typemap(python,in) double *T_BOTH = double *T_INOUT;
%typemap(python,argout) int *T_BOTH = int *T_INOUT;
%typemap(python,argout) short *T_BOTH = short *T_INOUT;
%typemap(python,argout) long *T_BOTH = long *T_INOUT;
%typemap(python,argout) unsigned *T_BOTH = unsigned *T_INOUT;
%typemap(python,argout) unsigned short *T_BOTH = unsigned short *T_INOUT;
%typemap(python,argout) unsigned long *T_BOTH = unsigned long *T_INOUT;
%typemap(python,argout) unsigned char *T_BOTH = unsigned char *T_INOUT;
%typemap(python,argout) float *T_BOTH = float *T_INOUT;
%typemap(python,argout) double *T_BOTH = double *T_INOUT;
// --------------------------------------------------------------------
// Special types
//
// --------------------------------------------------------------------
#ifdef AUTODOC
%subsection "Special Methods"
%text %{
The typemaps.i library also provides the following mappings :
PyObject *
When a PyObject * appears as either an input value or return
value of a function, SWIG passes it through unmodified. Thus,
if you want to write a C function that operates on PyObjects,
it is easy to write. For example :
%include typemaps.i
PyObject *spam(PyObject *obj1, int n);
Unlike normal Python wrapper functions, These functions can
use any combination of parameters that you wish.
%}
#endif
// If a PyObject * appears as either an argument or a function return
// value, simply pass it straight through.
%typemap(python,in) PyObject * {
$target = $source;
}
%typemap(python,out) PyObject * {
$target = $source;
}

53
wxPython/b Executable file
View File

@@ -0,0 +1,53 @@
#!/bin/sh
if [ "$1" = "15" ]; then
PYVER=1.5
shift
elif [ "$1" = "20" ]; then
PYVER=2.0
shift
fi
SETUP="python$PYVER -u setup.py"
FLAGS="USE_SWIG=1 IN_CVS_TREE=1"
OTHERFLAGS=""
# "c" --> clean
if [ "$1" = "c" ]; then
shift
CMD="$SETUP $FLAGS $OTHERFLAGS clean"
OTHERCMD="rm -f wxPython/*.so"
# "i" --> install
elif [ "$1" = "i" ]; then
shift
CMD="$SETUP build $OTHERFLAGS install"
# "s" --> source dist
elif [ "$1" = "s" ]; then
shift
CMD="$SETUP $OTHERFLAGS sdist"
# "r" --> rpm dist
elif [ "$1" = "r" ]; then
shift
CMD="$SETUP $OTHERFLAGS bdist_rpm"
# (no command arg) --> normal build for development
else
CMD="$SETUP $FLAGS $OTHERFLAGS build_ext --inplace $*"
fi
echo $CMD
$CMD
if [ "$OTHERCMD" != "" ]; then
echo $OTHERCMD
$OTHERCMD
fi

62
wxPython/b.bat Executable file
View File

@@ -0,0 +1,62 @@
@echo off
setlocal
set FLAGS=USE_SWIG=1 IN_CVS_TREE=1
rem Use non-default python?
iff "%1" == "15" .or. "%1" == "20" then
set SETUP=c:\tools\python%1%\python.exe -u setup.py
shift
else
set SETUP=python -u setup.py
endiff
rem "c" --> clean
iff "%1" == "c" then
shift
set CMD=%SETUP% %FLAGS% clean
set OTHERCMD=del wxPython\*.pyd
rem just remove the *.pyd's
elseiff "%1" == "d" then
shift
set CMD=del wxPython\*.pyd
rem "i" --> install
elseiff "%1" == "i" then
shift
set CMD=%SETUP% build install
rem "s" --> source dist
elseiff "%1" == "s" then
shift
set CMD=%SETUP sdist
rem "f" --> FINAL
elseiff "%1" == "f" then
shift
set CMD=%SETUP% %FLAGS% FINAL=1 build_ext --inplace %1 %2 %3 %4 %5 %6 %7 %8 %9
rem "h" --> HYBRID
elseiff "%1" == "h" then
shift
set CMD=%SETUP% %FLAGS% HYBRID=1 build_ext --inplace %1 %2 %3 %4 %5 %6 %7 %8 %9
rem (no command arg) --> normal build for development
else
set CMD=%SETUP% %FLAGS% HYBRID=0 build_ext --inplace --debug %1 %2 %3 %4 %5 %6 %7 %8 %9
endiff
echo %CMD%
%CMD%
iff "%OTHERCMD%" != "" then
echo %OTHERCMD%
%OTHERCMD%
endiff

View File

@@ -0,0 +1 @@
update.log

3
wxPython/contrib/README Normal file
View File

@@ -0,0 +1,3 @@
These sub directories contain add-on modules that are not part of the
core wxPython, either because of licensing issues, optional code in
wxWindows, contrib code in wxWindows, or whatever.

View File

@@ -0,0 +1,14 @@
*.exp
*.lib
*.obj
*.pch
Makefile
Makefile.pre
Setup
build.local
config.c
glcanvas.h
glcanvasc.ilk
glcanvasc.pyd
sedscript

View File

@@ -0,0 +1,128 @@
/////////////////////////////////////////////////////////////////////////////
// Name: glcanvas.i
// Purpose: SWIG definitions for the OpenGL wxWindows classes
//
// Author: Robin Dunn
//
// Created: 15-Mar-1999
// RCS-ID: $Id$
// Copyright: (c) 1998 by Total Control Software
// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
%module glcanvas
%{
#include "helpers.h"
#include <wx/glcanvas.h>
%}
//---------------------------------------------------------------------------
%include typemaps.i
%include my_typemaps.i
%extern wx.i
%extern windows.i
%extern windows2.i
%extern windows3.i
%extern frames.i
%extern _defs.i
%extern misc.i
%extern gdi.i
%extern controls.i
%extern events.i
%{
#if defined(__WXMSW__)
static wxString wxPyEmptyStr("");
static wxPoint wxPyDefaultPosition(-1, -1);
static wxSize wxPyDefaultSize(-1, -1);
#endif
%}
%pragma(python) code = "import wx"
//---------------------------------------------------------------------------
class wxPalette;
class wxWindow;
class wxSize;
class wxPoint;
class wxGLCanvas;
//---------------------------------------------------------------------------
class wxGLContext {
public:
wxGLContext(bool isRGB, wxGLCanvas *win, const wxPalette& palette = wxNullPalette);
~wxGLContext();
void SetCurrent();
void SetColour(const char *colour);
void SwapBuffers();
#ifdef __WXGTK__
void SetupPixelFormat();
void SetupPalette(const wxPalette& palette);
wxPalette CreateDefaultPalette();
wxPalette* GetPalette();
#endif
wxWindow* GetWindow();
};
//---------------------------------------------------------------------------
%typemap(python, in) int *attribList (int *temp) {
int i;
if (PySequence_Check($source)) {
int size = PyObject_Length($source);
temp = new int[size+1]; // (int*)malloc((size + 1) * sizeof(int));
for (i = 0; i < size; i++) {
temp[i] = PyInt_AsLong(PySequence_GetItem($source, i));
}
temp[size] = 0;
$target = temp;
}
}
%typemap(python, freearg) int *attribList
{
delete [] $source;
}
class wxGLCanvas : public wxScrolledWindow {
public:
wxGLCanvas(wxWindow *parent, wxWindowID id = -1,
const wxPoint& pos = wxPyDefaultPosition,
const wxSize& size = wxPyDefaultSize, long style = 0,
const char* name = "GLCanvas",
int *attribList = NULL,
const wxPalette& palette = wxNullPalette);
%pragma(python) addtomethod = "__init__:#wx._StdWindowCallbacks(self)"
void SetCurrent();
void SetColour(const char *colour);
void SwapBuffers();
wxGLContext* GetContext();
};
//---------------------------------------------------------------------------
%init %{
wxClassInfo::CleanUpClasses();
wxClassInfo::InitializeClasses();
%}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------

View File

@@ -0,0 +1,2 @@
*~
_glcanvas.cpp

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,123 @@
# This file was created automatically by SWIG.
import glcanvasc
from misc import *
from misc2 import *
from windows import *
from gdi import *
from clip_dnd import *
from events import *
from streams import *
from mdi import *
from frames import *
from stattool import *
from controls import *
from controls2 import *
from windows2 import *
from cmndlgs import *
from windows3 import *
from image import *
from printfw import *
from sizers import *
from filesys import *
from utils import *
import wx
class wxGLContextPtr :
def __init__(self,this):
self.this = this
self.thisown = 0
def __del__(self,glcanvasc=glcanvasc):
if self.thisown == 1 :
glcanvasc.delete_wxGLContext(self)
def SetCurrent(self, *_args, **_kwargs):
val = apply(glcanvasc.wxGLContext_SetCurrent,(self,) + _args, _kwargs)
return val
def SetColour(self, *_args, **_kwargs):
val = apply(glcanvasc.wxGLContext_SetColour,(self,) + _args, _kwargs)
return val
def SwapBuffers(self, *_args, **_kwargs):
val = apply(glcanvasc.wxGLContext_SwapBuffers,(self,) + _args, _kwargs)
return val
def SetupPixelFormat(self, *_args, **_kwargs):
val = apply(glcanvasc.wxGLContext_SetupPixelFormat,(self,) + _args, _kwargs)
return val
def SetupPalette(self, *_args, **_kwargs):
val = apply(glcanvasc.wxGLContext_SetupPalette,(self,) + _args, _kwargs)
return val
def CreateDefaultPalette(self, *_args, **_kwargs):
val = apply(glcanvasc.wxGLContext_CreateDefaultPalette,(self,) + _args, _kwargs)
if val: val = wxPalettePtr(val) ; val.thisown = 1
return val
def GetPalette(self, *_args, **_kwargs):
val = apply(glcanvasc.wxGLContext_GetPalette,(self,) + _args, _kwargs)
if val: val = wxPalettePtr(val)
return val
def GetWindow(self, *_args, **_kwargs):
val = apply(glcanvasc.wxGLContext_GetWindow,(self,) + _args, _kwargs)
if val: val = wxWindowPtr(val)
return val
def __repr__(self):
return "<C wxGLContext instance at %s>" % (self.this,)
class wxGLContext(wxGLContextPtr):
def __init__(self,*_args,**_kwargs):
self.this = apply(glcanvasc.new_wxGLContext,_args,_kwargs)
self.thisown = 1
class wxGLCanvasPtr(wxScrolledWindowPtr):
def __init__(self,this):
self.this = this
self.thisown = 0
def SetCurrent(self, *_args, **_kwargs):
val = apply(glcanvasc.wxGLCanvas_SetCurrent,(self,) + _args, _kwargs)
return val
def SetColour(self, *_args, **_kwargs):
val = apply(glcanvasc.wxGLCanvas_SetColour,(self,) + _args, _kwargs)
return val
def SwapBuffers(self, *_args, **_kwargs):
val = apply(glcanvasc.wxGLCanvas_SwapBuffers,(self,) + _args, _kwargs)
return val
def GetContext(self, *_args, **_kwargs):
val = apply(glcanvasc.wxGLCanvas_GetContext,(self,) + _args, _kwargs)
if val: val = wxGLContextPtr(val)
return val
def __repr__(self):
return "<C wxGLCanvas instance at %s>" % (self.this,)
class wxGLCanvas(wxGLCanvasPtr):
def __init__(self,*_args,**_kwargs):
self.this = apply(glcanvasc.new_wxGLCanvas,_args,_kwargs)
self.thisown = 1
#wx._StdWindowCallbacks(self)
#-------------- FUNCTION WRAPPERS ------------------
#-------------- VARIABLE WRAPPERS ------------------

View File

@@ -0,0 +1 @@
*~

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,109 @@
# This file was created automatically by SWIG.
import glcanvasc
from misc import *
from misc2 import *
from windows import *
from gdi import *
from clip_dnd import *
from events import *
from streams import *
from mdi import *
from frames import *
from stattool import *
from controls import *
from controls2 import *
from windows2 import *
from cmndlgs import *
from windows3 import *
from image import *
from printfw import *
from sizers import *
from filesys import *
from utils import *
import wx
class wxGLContextPtr :
def __init__(self,this):
self.this = this
self.thisown = 0
def __del__(self,glcanvasc=glcanvasc):
if self.thisown == 1 :
glcanvasc.delete_wxGLContext(self)
def SetCurrent(self, *_args, **_kwargs):
val = apply(glcanvasc.wxGLContext_SetCurrent,(self,) + _args, _kwargs)
return val
def SetColour(self, *_args, **_kwargs):
val = apply(glcanvasc.wxGLContext_SetColour,(self,) + _args, _kwargs)
return val
def SwapBuffers(self, *_args, **_kwargs):
val = apply(glcanvasc.wxGLContext_SwapBuffers,(self,) + _args, _kwargs)
return val
def GetWindow(self, *_args, **_kwargs):
val = apply(glcanvasc.wxGLContext_GetWindow,(self,) + _args, _kwargs)
if val: val = wxWindowPtr(val)
return val
def __repr__(self):
return "<C wxGLContext instance at %s>" % (self.this,)
class wxGLContext(wxGLContextPtr):
def __init__(self,*_args,**_kwargs):
self.this = apply(glcanvasc.new_wxGLContext,_args,_kwargs)
self.thisown = 1
class wxGLCanvasPtr(wxScrolledWindowPtr):
def __init__(self,this):
self.this = this
self.thisown = 0
def SetCurrent(self, *_args, **_kwargs):
val = apply(glcanvasc.wxGLCanvas_SetCurrent,(self,) + _args, _kwargs)
return val
def SetColour(self, *_args, **_kwargs):
val = apply(glcanvasc.wxGLCanvas_SetColour,(self,) + _args, _kwargs)
return val
def SwapBuffers(self, *_args, **_kwargs):
val = apply(glcanvasc.wxGLCanvas_SwapBuffers,(self,) + _args, _kwargs)
return val
def GetContext(self, *_args, **_kwargs):
val = apply(glcanvasc.wxGLCanvas_GetContext,(self,) + _args, _kwargs)
if val: val = wxGLContextPtr(val)
return val
def __repr__(self):
return "<C wxGLCanvas instance at %s>" % (self.this,)
class wxGLCanvas(wxGLCanvasPtr):
def __init__(self,*_args,**_kwargs):
self.this = apply(glcanvasc.new_wxGLCanvas,_args,_kwargs)
self.thisown = 1
#wx._StdWindowCallbacks(self)
#-------------- FUNCTION WRAPPERS ------------------
#-------------- VARIABLE WRAPPERS ------------------

View File

@@ -0,0 +1,24 @@
/* Definitions for Windows/Unix exporting */
#if defined(__WIN32__)
# if defined(_MSC_VER)
# define SWIGEXPORT(a) __declspec(dllexport) a
# else
# if defined(__BORLANDC__)
# define SWIGEXPORT(a) a _export
# else
# define SWIGEXPORT(a) a
# endif
# endif
#else
# define SWIGEXPORT(a) a
#endif
#ifdef __cplusplus
extern "C"
#endif
SWIGEXPORT(void) initglcanvasc() {
}

View File

@@ -0,0 +1,6 @@
Makefile
contrib
oglc.exp
oglc.ilk
oglc.pch
oglc.pyd

View File

@@ -0,0 +1,7 @@
Since OGL is not always bundled with distributions of wxWindows, in
order for it to be a standard part of wxPython I need to bundle it
here. The contents of the contrib directory are copies of the
relevant parts of the main contrib directory in wxWindows. The
build.py script in this directory will also build the needed files
from there, so you no longer have to worry about aquiring and building
additional libraries beyond wxWindows itself.

View File

@@ -0,0 +1,63 @@
/////////////////////////////////////////////////////////////////////////////
// Name: _ogldefs.i
// Purpose: SWIG definitions for the wxWindows Object Graphics Library
//
// Author: Robin Dunn
//
// Created: 27-Aug-1999
// RCS-ID: $Id$
// Copyright: (c) 1998 by Total Control Software
// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
//---------------------------------------------------------------------------
class wxOGLConstraint;
class wxBitmapShape;
class wxDiagram;
class wxDrawnShape;
class wxCircleShape;
class wxCompositeShape;
class wxDividedShape;
class wxDivisionShape;
class wxEllipseShape;
class wxLineShape;
class wxPolygonShape;
class wxRectangleShape;
class wxPseudoMetaFile;
class wxShape;
class wxShapeCanvas;
class wxShapeEvtHandler;
class wxTextShape;
class wxControlPoint;
class wxPyOGLConstraint;
class wxPyBitmapShape;
class wxPyDiagram;
class wxPyDrawnShape;
class wxPyCircleShape;
class wxPyCompositeShape;
class wxPyDividedShape;
class wxPyDivisionShape;
class wxPyEllipseShape;
class wxPyLineShape;
class wxPyPolygonShape;
class wxPyRectangleShape;
class wxPyPseudoMetaFile;
class wxPyShape;
class wxPyShapeCanvas;
class wxPyShapeEvtHandler;
class wxPyTextShape;
class wxPyControlPoint;
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------

View File

@@ -0,0 +1,36 @@
wxShapeCanvas = wxPyShapeCanvas
wxShapeEvtHandler = wxPyShapeEvtHandler
wxShape = wxPyShape
wxRectangleShape = wxPyRectangleShape
wxBitmapShape = wxPyBitmapShape
wxDrawnShape = wxPyDrawnShape
wxCompositeShape = wxPyCompositeShape
wxDividedShape = wxPyDividedShape
wxDivisionShape = wxPyDivisionShape
wxEllipseShape = wxPyEllipseShape
wxCircleShape = wxPyCircleShape
wxLineShape = wxPyLineShape
wxPolygonShape = wxPyPolygonShape
wxTextShape = wxPyTextShape
wxControlPoint = wxPyControlPoint
# Stuff these names into the wx namespace so wxPyConstructObject can find them
import wx
wx.wxPyShapeCanvasPtr = wxPyShapeCanvasPtr
wx.wxPyShapeEvtHandlerPtr = wxPyShapeEvtHandlerPtr
wx.wxPyShapePtr = wxPyShapePtr
wx.wxPyRectangleShapePtr = wxPyRectangleShapePtr
wx.wxPyBitmapShapePtr = wxPyBitmapShapePtr
wx.wxPyDrawnShapePtr = wxPyDrawnShapePtr
wx.wxPyCompositeShapePtr = wxPyCompositeShapePtr
wx.wxPyDividedShapePtr = wxPyDividedShapePtr
wx.wxPyDivisionShapePtr = wxPyDivisionShapePtr
wx.wxPyEllipseShapePtr = wxPyEllipseShapePtr
wx.wxPyCircleShapePtr = wxPyCircleShapePtr
wx.wxPyLineShapePtr = wxPyLineShapePtr
wx.wxPyPolygonShapePtr = wxPyPolygonShapePtr
wx.wxPyTextShapePtr = wxPyTextShapePtr
wx.wxShapeRegionPtr = wxShapeRegionPtr
wx.wxOGLConstraintPtr = wxOGLConstraintPtr
wx.wxControlPointPtr = wxPyControlPointPtr

View File

@@ -0,0 +1,801 @@
/*
* FILE : contrib/ogl/ogl.cpp
*
* This file was automatically generated by :
* Simplified Wrapper and Interface Generator (SWIG)
* Version 1.1 (Build 883)
*
* Portions Copyright (c) 1995-1998
* The University of Utah and The Regents of the University of California.
* Permission is granted to distribute this file in any manner provided
* this notice remains intact.
*
* Do not make changes to this file--changes will be lost!
*
*/
#define SWIGCODE
/* Implementation : PYTHON */
#define SWIGPYTHON
#include <string.h>
#include <stdlib.h>
/* Definitions for Windows/Unix exporting */
#if defined(__WIN32__)
# if defined(_MSC_VER)
# define SWIGEXPORT(a) __declspec(dllexport) a
# else
# if defined(__BORLANDC__)
# define SWIGEXPORT(a) a _export
# else
# define SWIGEXPORT(a) a
# endif
# endif
#else
# define SWIGEXPORT(a) a
#endif
#include "Python.h"
#ifdef __cplusplus
extern "C" {
#endif
extern void SWIG_MakePtr(char *, void *, char *);
extern void SWIG_RegisterMapping(char *, char *, void *(*)(void *));
extern char *SWIG_GetPtr(char *, void **, char *);
extern char *SWIG_GetPtrObj(PyObject *, void **, char *);
extern void SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *));
extern PyObject *SWIG_newvarlink(void);
#ifdef __cplusplus
}
#endif
#define SWIG_init initoglc
#define SWIG_name "oglc"
#include "helpers.h"
#include "oglhelpers.h"
static PyObject* l_output_helper(PyObject* target, PyObject* o) {
PyObject* o2;
if (!target) {
target = o;
} else if (target == Py_None) {
Py_DECREF(Py_None);
target = o;
} else {
if (!PyList_Check(target)) {
o2 = target;
target = PyList_New(0);
PyList_Append(target, o2);
Py_XDECREF(o2);
}
PyList_Append(target,o);
Py_XDECREF(o);
}
return target;
}
static PyObject* t_output_helper(PyObject* target, PyObject* o) {
PyObject* o2;
PyObject* o3;
if (!target) {
target = o;
} else if (target == Py_None) {
Py_DECREF(Py_None);
target = o;
} else {
if (!PyTuple_Check(target)) {
o2 = target;
target = PyTuple_New(1);
PyTuple_SetItem(target, 0, o2);
}
o3 = PyTuple_New(1);
PyTuple_SetItem(o3, 0, o);
o2 = target;
target = PySequence_Concat(o2, o3);
Py_DECREF(o2);
Py_DECREF(o3);
}
return target;
}
static char* wxStringErrorMsg = "string type is required for parameter";
extern "C" SWIGEXPORT(void) initoglbasicc();
extern "C" SWIGEXPORT(void) initoglshapesc();
extern "C" SWIGEXPORT(void) initoglshapes2c();
extern "C" SWIGEXPORT(void) initoglcanvasc();
#ifdef __cplusplus
extern "C" {
#endif
static PyObject *_wrap_wxOGLInitialize(PyObject *self, PyObject *args, PyObject *kwargs) {
PyObject * _resultobj;
char *_kwnames[] = { NULL };
self = self;
if(!PyArg_ParseTupleAndKeywords(args,kwargs,":wxOGLInitialize",_kwnames))
return NULL;
{
wxPy_BEGIN_ALLOW_THREADS;
wxOGLInitialize();
wxPy_END_ALLOW_THREADS;
} Py_INCREF(Py_None);
_resultobj = Py_None;
return _resultobj;
}
static PyObject *_wrap_wxOGLCleanUp(PyObject *self, PyObject *args, PyObject *kwargs) {
PyObject * _resultobj;
char *_kwnames[] = { NULL };
self = self;
if(!PyArg_ParseTupleAndKeywords(args,kwargs,":wxOGLCleanUp",_kwnames))
return NULL;
{
wxPy_BEGIN_ALLOW_THREADS;
wxOGLCleanUp();
wxPy_END_ALLOW_THREADS;
} Py_INCREF(Py_None);
_resultobj = Py_None;
return _resultobj;
}
static PyMethodDef oglcMethods[] = {
{ "wxOGLCleanUp", (PyCFunction) _wrap_wxOGLCleanUp, METH_VARARGS | METH_KEYWORDS },
{ "wxOGLInitialize", (PyCFunction) _wrap_wxOGLInitialize, METH_VARARGS | METH_KEYWORDS },
{ NULL, NULL }
};
#ifdef __cplusplus
}
#endif
/*
* This table is used by the pointer type-checker
*/
static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = {
{ "_wxAcceleratorTable","_class_wxAcceleratorTable",0},
{ "_wxEvent","_class_wxEvent",0},
{ "_class_wxActivateEvent","_wxActivateEvent",0},
{ "_signed_long","_long",0},
{ "_wxMenuEvent","_class_wxMenuEvent",0},
{ "_class_wxProcessEvent","_wxProcessEvent",0},
{ "_class_wxJPEGHandler","_wxJPEGHandler",0},
{ "_class_wxFSFile","_wxFSFile",0},
{ "_wxPyBitmapDataObject","_class_wxPyBitmapDataObject",0},
{ "_wxBitmapDataObject","_class_wxBitmapDataObject",0},
{ "_class_wxPyCommandEvent","_wxPyCommandEvent",0},
{ "_wxBMPHandler","_class_wxBMPHandler",0},
{ "_wxImage","_class_wxImage",0},
{ "_wxFlexGridSizer","_class_wxFlexGridSizer",0},
{ "_wxWindowDisabler","_class_wxWindowDisabler",0},
{ "_class_wxDateTime","_wxDateTime",0},
{ "_wxPrintQuality","_wxCoord",0},
{ "_wxPrintQuality","_int",0},
{ "_wxPrintQuality","_signed_int",0},
{ "_wxPrintQuality","_unsigned_int",0},
{ "_wxPrintQuality","_wxWindowID",0},
{ "_wxPrintQuality","_uint",0},
{ "_wxPrintQuality","_EBool",0},
{ "_wxPrintQuality","_size_t",0},
{ "_wxPrintQuality","_time_t",0},
{ "_class_wxCustomDataObject","_wxCustomDataObject",0},
{ "_wxSpinCtrl","_class_wxSpinCtrl",0},
{ "_wxFontData","_class_wxFontData",0},
{ "_class_wxRegionIterator","_wxRegionIterator",0},
{ "_class_wxPyTextDropTarget","_wxPyTextDropTarget",0},
{ "_class_wxMenuBar","_wxMenuBar",0},
{ "_class_wxPyTreeItemData","_wxPyTreeItemData",0},
{ "_class_wxStaticBoxSizer","_wxStaticBoxSizer",0},
{ "_class_wxEvtHandler","_wxEvtHandler",0},
{ "_wxPaintEvent","_class_wxPaintEvent",0},
{ "_wxGIFHandler","_class_wxGIFHandler",0},
{ "_wxPySizer","_class_wxPySizer",0},
{ "_wxInternetFSHandler","_class_wxInternetFSHandler",0},
{ "_wxPyCompositeShape","_class_wxPyCompositeShape",0},
{ "_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0},
{ "_wxCursor","_class_wxCursor",0},
{ "_wxNotifyEvent","_class_wxNotifyEvent",0},
{ "_wxPyProcess","_class_wxPyProcess",0},
{ "_wxPyTreeCtrl","_class_wxPyTreeCtrl",0},
{ "_wxImageHandler","_class_wxImageHandler",0},
{ "_class_wxPyRectangleShape","_wxPyRectangleShape",0},
{ "_wxLog","_class_wxLog",0},
{ "_class_wxToolBarBase","_wxToolBarBase",0},
{ "_wxMask","_class_wxMask",0},
{ "_wxToolTip","_class_wxToolTip",0},
{ "_wxPNGHandler","_class_wxPNGHandler",0},
{ "_class_wxOGLConstraint","_wxOGLConstraint",0},
{ "_class_wxColourData","_wxColourData",0},
{ "_class_wxPageSetupDialogData","_wxPageSetupDialogData",0},
{ "_wxPrinter","_class_wxPrinter",0},
{ "_wxPseudoMetaFile","_class_wxPseudoMetaFile",0},
{ "_class_wxArrowHead","_wxArrowHead",0},
{ "_wxPen","_class_wxPen",0},
{ "_wxUpdateUIEvent","_class_wxUpdateUIEvent",0},
{ "_class_wxNotebookSizer","_wxNotebookSizer",0},
{ "_byte","_unsigned_char",0},
{ "_wxDataObject","_class_wxDataObject",0},
{ "_class_wxPyFontEnumerator","_wxPyFontEnumerator",0},
{ "_wxStaticBox","_class_wxStaticBox",0},
{ "_wxPyDataObjectSimple","_class_wxPyDataObjectSimple",0},
{ "_wxPyDropSource","_class_wxPyDropSource",0},
{ "_wxChoice","_class_wxChoice",0},
{ "_wxSlider","_class_wxSlider",0},
{ "_wxNotebookEvent","_class_wxNotebookEvent",0},
{ "_wxPyPrintout","_class_wxPyPrintout",0},
{ "_wxShapeRegion","_class_wxShapeRegion",0},
{ "_long","_unsigned_long",0},
{ "_long","_signed_long",0},
{ "_wxImageList","_class_wxImageList",0},
{ "_wxDataObjectSimple","_class_wxDataObjectSimple",0},
{ "_wxDropFilesEvent","_class_wxDropFilesEvent",0},
{ "_wxBitmapButton","_class_wxBitmapButton",0},
{ "_wxSashWindow","_class_wxSashWindow",0},
{ "_class_wxSizer","_wxSizer",0},
{ "_class_wxTIFFHandler","_wxTIFFHandler",0},
{ "_class_wxPrintDialogData","_wxPrintDialogData",0},
{ "_wxGridSizer","_class_wxGridSizer",0},
{ "_class_wxAcceleratorTable","_wxAcceleratorTable",0},
{ "_class_wxClipboard","_wxClipboard",0},
{ "_class_wxGauge","_wxGauge",0},
{ "_class_wxSashEvent","_wxSashEvent",0},
{ "_wxDC","_class_wxDC",0},
{ "_wxSizerItem","_class_wxSizerItem",0},
{ "_class_wxBitmapDataObject","_wxBitmapDataObject",0},
{ "_wxListEvent","_class_wxListEvent",0},
{ "_class_wxSingleChoiceDialog","_wxSingleChoiceDialog",0},
{ "_wxProgressDialog","_class_wxProgressDialog",0},
{ "_class_wxBMPHandler","_wxBMPHandler",0},
{ "_wxPrintPreview","_class_wxPrintPreview",0},
{ "_class_wxFlexGridSizer","_wxFlexGridSizer",0},
{ "_wxSpinEvent","_class_wxSpinEvent",0},
{ "_wxSashLayoutWindow","_class_wxSashLayoutWindow",0},
{ "_wxPyBitmapShape","_class_wxPyBitmapShape",0},
{ "_class_wxPyEllipseShape","_wxPyEllipseShape",0},
{ "_size_t","_wxCoord",0},
{ "_size_t","_wxPrintQuality",0},
{ "_size_t","_time_t",0},
{ "_size_t","_unsigned_int",0},
{ "_size_t","_int",0},
{ "_size_t","_wxWindowID",0},
{ "_size_t","_uint",0},
{ "_class_wxRealPoint","_wxRealPoint",0},
{ "_wxNavigationKeyEvent","_class_wxNavigationKeyEvent",0},
{ "_wxPNMHandler","_class_wxPNMHandler",0},
{ "_wxWindowCreateEvent","_class_wxWindowCreateEvent",0},
{ "_wxLogGui","_class_wxLogGui",0},
{ "_class_wxPyShapeEvtHandler","_wxPyShapeEvtHandler",0},
{ "_class_wxMenuItem","_wxMenuItem",0},
{ "_class_wxPaintEvent","_wxPaintEvent",0},
{ "_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0},
{ "_class_wxStatusBar","_wxStatusBar",0},
{ "_class_wxGIFHandler","_wxGIFHandler",0},
{ "_class_wxPySizer","_wxPySizer",0},
{ "_class_wxPyCompositeShape","_wxPyCompositeShape",0},
{ "_wxPyPolygonShape","_class_wxPyPolygonShape",0},
{ "_class_wxPostScriptDC","_wxPostScriptDC",0},
{ "_wxPanel","_class_wxPanel",0},
{ "_wxInitDialogEvent","_class_wxInitDialogEvent",0},
{ "_wxCheckBox","_class_wxCheckBox",0},
{ "_class_wxPyTreeCtrl","_wxPyTreeCtrl",0},
{ "_wxPyEvent","_class_wxPyEvent",0},
{ "_wxTextCtrl","_class_wxTextCtrl",0},
{ "_class_wxMask","_wxMask",0},
{ "_wxTextDataObject","_class_wxTextDataObject",0},
{ "_class_wxKeyEvent","_wxKeyEvent",0},
{ "_class_wxToolTip","_wxToolTip",0},
{ "_class_wxPNGHandler","_wxPNGHandler",0},
{ "_wxFileConfig","_class_wxFileConfig",0},
{ "_wxColour","_class_wxColour",0},
{ "_class_wxDialog","_wxDialog",0},
{ "_wxBusyCursor","_class_wxBusyCursor",0},
{ "_wxPageSetupDialog","_class_wxPageSetupDialog",0},
{ "_class_wxPrinter","_wxPrinter",0},
{ "_class_wxFileDataObject","_wxFileDataObject",0},
{ "_wxIdleEvent","_class_wxIdleEvent",0},
{ "_class_wxUpdateUIEvent","_wxUpdateUIEvent",0},
{ "_wxToolBar","_class_wxToolBar",0},
{ "_class_wxDataObject","_wxDataObject",0},
{ "_wxCaret","_class_wxCaret",0},
{ "_wxStaticLine","_class_wxStaticLine",0},
{ "_class_wxLayoutAlgorithm","_wxLayoutAlgorithm",0},
{ "_wxBrush","_class_wxBrush",0},
{ "_wxMiniFrame","_class_wxMiniFrame",0},
{ "_class_wxNotebookEvent","_wxNotebookEvent",0},
{ "_class_wxPyPrintout","_wxPyPrintout",0},
{ "_wxDataFormat","_class_wxDataFormat",0},
{ "_class_wxDataObjectSimple","_wxDataObjectSimple",0},
{ "_class_wxSashWindow","_wxSashWindow",0},
{ "_wxShowEvent","_class_wxShowEvent",0},
{ "_class_wxPyDivisionShape","_wxPyDivisionShape",0},
{ "_uint","_wxCoord",0},
{ "_uint","_wxPrintQuality",0},
{ "_uint","_time_t",0},
{ "_uint","_size_t",0},
{ "_uint","_unsigned_int",0},
{ "_uint","_int",0},
{ "_uint","_wxWindowID",0},
{ "_wxChar","_char",0},
{ "_wxPyValidator","_class_wxPyValidator",0},
{ "_class_wxEvent","_wxEvent",0},
{ "_wxCheckListBox","_class_wxCheckListBox",0},
{ "_wxSplitterEvent","_class_wxSplitterEvent",0},
{ "_wxRect","_class_wxRect",0},
{ "_wxCommandEvent","_class_wxCommandEvent",0},
{ "_wxPyShapeCanvas","_class_wxPyShapeCanvas",0},
{ "_wxSizeEvent","_class_wxSizeEvent",0},
{ "_class_wxLogWindow","_wxLogWindow",0},
{ "_class_wxImage","_wxImage",0},
{ "_wxPoint","_class_wxPoint",0},
{ "_class_wxWindowDisabler","_wxWindowDisabler",0},
{ "_class_wxSashLayoutWindow","_wxSashLayoutWindow",0},
{ "_class_wxPyBitmapShape","_wxPyBitmapShape",0},
{ "_class_wxButton","_wxButton",0},
{ "_wxRadioBox","_class_wxRadioBox",0},
{ "_class_wxSpinCtrl","_wxSpinCtrl",0},
{ "_class_wxFontData","_wxFontData",0},
{ "_class_wxPNMHandler","_wxPNMHandler",0},
{ "_wxBoxSizer","_class_wxBoxSizer",0},
{ "_class_wxZipFSHandler","_wxZipFSHandler",0},
{ "_char","_wxChar",0},
{ "_wxBitmap","_class_wxBitmap",0},
{ "_wxPrintDialog","_class_wxPrintDialog",0},
{ "_wxPyControlPoint","_class_wxPyControlPoint",0},
{ "_wxWindowDC","_class_wxWindowDC",0},
{ "_wxTimerEvent","_class_wxTimerEvent",0},
{ "_wxPyTimer","_class_wxPyTimer",0},
{ "_wxScrollBar","_class_wxScrollBar",0},
{ "_wxSpinButton","_class_wxSpinButton",0},
{ "_wxColourDialog","_class_wxColourDialog",0},
{ "_wxPrintData","_class_wxPrintData",0},
{ "_class_wxInternetFSHandler","_wxInternetFSHandler",0},
{ "_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0},
{ "_class_wxNotifyEvent","_wxNotifyEvent",0},
{ "_wxMessageDialog","_class_wxMessageDialog",0},
{ "_class_wxValidator","_wxValidator",0},
{ "_class_wxPyEvent","_wxPyEvent",0},
{ "_wxTextEntryDialog","_class_wxTextEntryDialog",0},
{ "_wxConfig","_class_wxConfig",0},
{ "_class_wxIconizeEvent","_wxIconizeEvent",0},
{ "_class_wxStaticBitmap","_wxStaticBitmap",0},
{ "_class_wxFileConfig","_wxFileConfig",0},
{ "_class_wxPyDrawnShape","_wxPyDrawnShape",0},
{ "_class_wxBusyCursor","_wxBusyCursor",0},
{ "_wxToolBarSimple","_class_wxToolBarSimple",0},
{ "_wxMDIChildFrame","_class_wxMDIChildFrame",0},
{ "_wxListItem","_class_wxListItem",0},
{ "_class_wxPseudoMetaFile","_wxPseudoMetaFile",0},
{ "_class_wxToolBar","_wxToolBar",0},
{ "_wxDropTarget","_class_wxDropTarget",0},
{ "_class_wxStaticLine","_wxStaticLine",0},
{ "_wxScrollEvent","_class_wxScrollEvent",0},
{ "_wxToolBarToolBase","_class_wxToolBarToolBase",0},
{ "_wxCalculateLayoutEvent","_class_wxCalculateLayoutEvent",0},
{ "_class_wxMemoryFSHandler","_wxMemoryFSHandler",0},
{ "_class_wxShapeRegion","_wxShapeRegion",0},
{ "_EBool","_wxCoord",0},
{ "_EBool","_wxPrintQuality",0},
{ "_EBool","_signed_int",0},
{ "_EBool","_int",0},
{ "_EBool","_wxWindowID",0},
{ "_class_wxRegion","_wxRegion",0},
{ "_class_wxDataFormat","_wxDataFormat",0},
{ "_class_wxDropFilesEvent","_wxDropFilesEvent",0},
{ "_wxWindowDestroyEvent","_class_wxWindowDestroyEvent",0},
{ "_class_wxPreviewFrame","_wxPreviewFrame",0},
{ "_wxStaticText","_class_wxStaticText",0},
{ "_wxFont","_class_wxFont",0},
{ "_class_wxPyDropTarget","_wxPyDropTarget",0},
{ "_wxCloseEvent","_class_wxCloseEvent",0},
{ "_class_wxSplitterEvent","_wxSplitterEvent",0},
{ "_wxProcessEvent","_class_wxProcessEvent",0},
{ "_wxNotebook","_class_wxNotebook",0},
{ "_wxFSFile","_class_wxFSFile",0},
{ "_unsigned_long","_long",0},
{ "_class_wxRect","_wxRect",0},
{ "_class_wxDC","_wxDC",0},
{ "_wxScrollWinEvent","_class_wxScrollWinEvent",0},
{ "_wxPyCircleShape","_class_wxPyCircleShape",0},
{ "_class_wxPyShapeCanvas","_wxPyShapeCanvas",0},
{ "_wxGenericDragImage","_class_wxGenericDragImage",0},
{ "_class_wxProgressDialog","_wxProgressDialog",0},
{ "_wxQueryNewPaletteEvent","_class_wxQueryNewPaletteEvent",0},
{ "_wxPyInputStream","_class_wxPyInputStream",0},
{ "_wxPyApp","_class_wxPyApp",0},
{ "_class_wxWindowCreateEvent","_wxWindowCreateEvent",0},
{ "_class_wxOutputStream","_wxOutputStream",0},
{ "_wxLogTextCtrl","_class_wxLogTextCtrl",0},
{ "_wxMDIParentFrame","_class_wxMDIParentFrame",0},
{ "_class_wxTreeEvent","_wxTreeEvent",0},
{ "_class_wxDirDialog","_wxDirDialog",0},
{ "_wxTimeSpan","_class_wxTimeSpan",0},
{ "_wxPyLineShape","_class_wxPyLineShape",0},
{ "_wxFocusEvent","_class_wxFocusEvent",0},
{ "_wxMaximizeEvent","_class_wxMaximizeEvent",0},
{ "_class_wxTimerEvent","_wxTimerEvent",0},
{ "_class_wxPyTimer","_wxPyTimer",0},
{ "_class_wxSpinButton","_wxSpinButton",0},
{ "_class_wxPyPolygonShape","_wxPyPolygonShape",0},
{ "_wxAcceleratorEntry","_class_wxAcceleratorEntry",0},
{ "_class_wxPanel","_wxPanel",0},
{ "_class_wxCheckBox","_wxCheckBox",0},
{ "_wxComboBox","_class_wxComboBox",0},
{ "_wxRadioButton","_class_wxRadioButton",0},
{ "_class_wxMessageDialog","_wxMessageDialog",0},
{ "_signed_int","_wxCoord",0},
{ "_signed_int","_wxPrintQuality",0},
{ "_signed_int","_EBool",0},
{ "_signed_int","_wxWindowID",0},
{ "_signed_int","_int",0},
{ "_class_wxTextCtrl","_wxTextCtrl",0},
{ "_class_wxListItemAttr","_wxListItemAttr",0},
{ "_wxLayoutConstraints","_class_wxLayoutConstraints",0},
{ "_class_wxTextDataObject","_wxTextDataObject",0},
{ "_wxMenu","_class_wxMenu",0},
{ "_class_wxMoveEvent","_wxMoveEvent",0},
{ "_wxListBox","_class_wxListBox",0},
{ "_wxScreenDC","_class_wxScreenDC",0},
{ "_class_wxToolBarSimple","_wxToolBarSimple",0},
{ "_class_wxMDIChildFrame","_wxMDIChildFrame",0},
{ "_wxArrowHead","_class_wxArrowHead",0},
{ "_WXTYPE","_wxDateTime_t",0},
{ "_WXTYPE","_short",0},
{ "_WXTYPE","_signed_short",0},
{ "_WXTYPE","_unsigned_short",0},
{ "_wxFileDialog","_class_wxFileDialog",0},
{ "_class_wxDropTarget","_wxDropTarget",0},
{ "_class_wxCaret","_wxCaret",0},
{ "_class_wxMDIClientWindow","_wxMDIClientWindow",0},
{ "_class_wxBrush","_wxBrush",0},
{ "_wxTipProvider","_class_wxTipProvider",0},
{ "_unsigned_short","_wxDateTime_t",0},
{ "_unsigned_short","_WXTYPE",0},
{ "_unsigned_short","_short",0},
{ "_class_wxWindow","_wxWindow",0},
{ "_class_wxLogStderr","_wxLogStderr",0},
{ "_wxSplitterWindow","_class_wxSplitterWindow",0},
{ "_wxDateSpan","_class_wxDateSpan",0},
{ "_class_wxStaticText","_wxStaticText",0},
{ "_wxPrintDialogData","_class_wxPrintDialogData",0},
{ "_class_wxFont","_wxFont",0},
{ "_wxClipboard","_class_wxClipboard",0},
{ "_class_wxPyValidator","_wxPyValidator",0},
{ "_class_wxCloseEvent","_wxCloseEvent",0},
{ "_wxSashEvent","_class_wxSashEvent",0},
{ "_wxBusyInfo","_class_wxBusyInfo",0},
{ "_class_wxMenuEvent","_wxMenuEvent",0},
{ "_wxPaletteChangedEvent","_class_wxPaletteChangedEvent",0},
{ "_wxJoystick","_class_wxJoystick",0},
{ "_class_wxPyBitmapDataObject","_wxPyBitmapDataObject",0},
{ "_class_wxPyCircleShape","_wxPyCircleShape",0},
{ "_wxClientDC","_class_wxClientDC",0},
{ "_wxMouseEvent","_class_wxMouseEvent",0},
{ "_class_wxGenericDragImage","_wxGenericDragImage",0},
{ "_wxListCtrl","_class_wxListCtrl",0},
{ "_wxSingleChoiceDialog","_class_wxSingleChoiceDialog",0},
{ "_wxPyDividedShape","_class_wxPyDividedShape",0},
{ "_class_wxPoint","_wxPoint",0},
{ "_class_wxPyInputStream","_wxPyInputStream",0},
{ "_wxRealPoint","_class_wxRealPoint",0},
{ "_class_wxRadioBox","_wxRadioBox",0},
{ "_class_wxBoxSizer","_wxBoxSizer",0},
{ "_signed_short","_WXTYPE",0},
{ "_signed_short","_short",0},
{ "_wxMemoryDC","_class_wxMemoryDC",0},
{ "_wxPyTextDataObject","_class_wxPyTextDataObject",0},
{ "_class_wxPrintDialog","_wxPrintDialog",0},
{ "_wxPyFileSystemHandler","_class_wxPyFileSystemHandler",0},
{ "_class_wxPyControlPoint","_wxPyControlPoint",0},
{ "_wxPaintDC","_class_wxPaintDC",0},
{ "_class_wxWindowDC","_wxWindowDC",0},
{ "_class_wxFocusEvent","_wxFocusEvent",0},
{ "_class_wxMaximizeEvent","_wxMaximizeEvent",0},
{ "_wxStatusBar","_class_wxStatusBar",0},
{ "_class_wxAcceleratorEntry","_wxAcceleratorEntry",0},
{ "_class_wxCursor","_wxCursor",0},
{ "_wxPostScriptDC","_class_wxPostScriptDC",0},
{ "_wxPyFileDropTarget","_class_wxPyFileDropTarget",0},
{ "_class_wxPyProcess","_wxPyProcess",0},
{ "_class_wxImageHandler","_wxImageHandler",0},
{ "_wxPyShape","_class_wxPyShape",0},
{ "_wxScrolledWindow","_class_wxScrolledWindow",0},
{ "_class_wxLog","_wxLog",0},
{ "_wxTreeItemId","_class_wxTreeItemId",0},
{ "_unsigned_char","_byte",0},
{ "_class_wxMenu","_wxMenu",0},
{ "_wxControl","_class_wxControl",0},
{ "_class_wxListBox","_wxListBox",0},
{ "_unsigned_int","_wxCoord",0},
{ "_unsigned_int","_wxPrintQuality",0},
{ "_unsigned_int","_time_t",0},
{ "_unsigned_int","_size_t",0},
{ "_unsigned_int","_uint",0},
{ "_unsigned_int","_wxWindowID",0},
{ "_unsigned_int","_int",0},
{ "_wxIcon","_class_wxIcon",0},
{ "_wxDialog","_class_wxDialog",0},
{ "_class_wxListItem","_wxListItem",0},
{ "_class_wxPen","_wxPen",0},
{ "_class_wxFileDialog","_wxFileDialog",0},
{ "_wxQueryLayoutInfoEvent","_class_wxQueryLayoutInfoEvent",0},
{ "_wxConfigBase","_class_wxConfigBase",0},
{ "_short","_wxDateTime_t",0},
{ "_short","_WXTYPE",0},
{ "_short","_unsigned_short",0},
{ "_short","_signed_short",0},
{ "_class_wxStaticBox","_wxStaticBox",0},
{ "_wxLayoutAlgorithm","_class_wxLayoutAlgorithm",0},
{ "_wxPyTextShape","_class_wxPyTextShape",0},
{ "_class_wxPyDataObjectSimple","_wxPyDataObjectSimple",0},
{ "_class_wxPyDropSource","_wxPyDropSource",0},
{ "_class_wxScrollEvent","_wxScrollEvent",0},
{ "_wxJoystickEvent","_class_wxJoystickEvent",0},
{ "_class_wxChoice","_wxChoice",0},
{ "_class_wxSlider","_wxSlider",0},
{ "_class_wxCalculateLayoutEvent","_wxCalculateLayoutEvent",0},
{ "_class_wxImageList","_wxImageList",0},
{ "_class_wxBitmapButton","_wxBitmapButton",0},
{ "_wxFileSystemHandler","_class_wxFileSystemHandler",0},
{ "_wxPyTipProvider","_class_wxPyTipProvider",0},
{ "_wxFrame","_class_wxFrame",0},
{ "_wxPCXHandler","_class_wxPCXHandler",0},
{ "_class_wxGridSizer","_wxGridSizer",0},
{ "_wxPyDivisionShape","_class_wxPyDivisionShape",0},
{ "_class_wxPaletteChangedEvent","_wxPaletteChangedEvent",0},
{ "_class_wxNotebook","_wxNotebook",0},
{ "_wxJPEGHandler","_class_wxJPEGHandler",0},
{ "_wxWindowID","_wxCoord",0},
{ "_wxWindowID","_wxPrintQuality",0},
{ "_wxWindowID","_time_t",0},
{ "_wxWindowID","_size_t",0},
{ "_wxWindowID","_EBool",0},
{ "_wxWindowID","_uint",0},
{ "_wxWindowID","_int",0},
{ "_wxWindowID","_signed_int",0},
{ "_wxWindowID","_unsigned_int",0},
{ "_class_wxScrollWinEvent","_wxScrollWinEvent",0},
{ "_class_wxSizerItem","_wxSizerItem",0},
{ "_int","_wxCoord",0},
{ "_int","_wxPrintQuality",0},
{ "_int","_time_t",0},
{ "_int","_size_t",0},
{ "_int","_EBool",0},
{ "_int","_uint",0},
{ "_int","_wxWindowID",0},
{ "_int","_unsigned_int",0},
{ "_int","_signed_int",0},
{ "_class_wxMouseEvent","_wxMouseEvent",0},
{ "_wxPyCommandEvent","_class_wxPyCommandEvent",0},
{ "_wxLogWindow","_class_wxLogWindow",0},
{ "_class_wxListEvent","_wxListEvent",0},
{ "_class_wxPrintPreview","_wxPrintPreview",0},
{ "_wxDateTime_t","_unsigned_short",0},
{ "_wxDateTime_t","_short",0},
{ "_wxDateTime_t","_WXTYPE",0},
{ "_class_wxSpinEvent","_wxSpinEvent",0},
{ "_class_wxQueryNewPaletteEvent","_wxQueryNewPaletteEvent",0},
{ "_wxDateTime","_class_wxDateTime",0},
{ "_time_t","_wxCoord",0},
{ "_time_t","_wxPrintQuality",0},
{ "_time_t","_unsigned_int",0},
{ "_time_t","_int",0},
{ "_time_t","_wxWindowID",0},
{ "_time_t","_uint",0},
{ "_time_t","_size_t",0},
{ "_class_wxNavigationKeyEvent","_wxNavigationKeyEvent",0},
{ "_wxLogNull","_class_wxLogNull",0},
{ "_wxButton","_class_wxButton",0},
{ "_wxZipFSHandler","_class_wxZipFSHandler",0},
{ "_class_wxPyApp","_wxPyApp",0},
{ "_wxSize","_class_wxSize",0},
{ "_wxRegionIterator","_class_wxRegionIterator",0},
{ "_class_wxPyTextDataObject","_wxPyTextDataObject",0},
{ "_class_wxLogTextCtrl","_wxLogTextCtrl",0},
{ "_class_wxLogGui","_wxLogGui",0},
{ "_class_wxMDIParentFrame","_wxMDIParentFrame",0},
{ "_wxPyTreeItemData","_class_wxPyTreeItemData",0},
{ "_wxStaticBoxSizer","_class_wxStaticBoxSizer",0},
{ "_class_wxTimeSpan","_wxTimeSpan",0},
{ "_class_wxPyFileSystemHandler","_wxPyFileSystemHandler",0},
{ "_class_wxPyLineShape","_wxPyLineShape",0},
{ "_class_wxPaintDC","_wxPaintDC",0},
{ "_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0},
{ "_class_wxPyFileDropTarget","_wxPyFileDropTarget",0},
{ "_class_wxInitDialogEvent","_wxInitDialogEvent",0},
{ "_class_wxComboBox","_wxComboBox",0},
{ "_class_wxRadioButton","_wxRadioButton",0},
{ "_class_wxPyShape","_wxPyShape",0},
{ "_wxValidator","_class_wxValidator",0},
{ "_wxToolBarBase","_class_wxToolBarBase",0},
{ "_class_wxTreeItemId","_wxTreeItemId",0},
{ "_class_wxLayoutConstraints","_wxLayoutConstraints",0},
{ "_wxIconizeEvent","_class_wxIconizeEvent",0},
{ "_class_wxControl","_wxControl",0},
{ "_wxStaticBitmap","_class_wxStaticBitmap",0},
{ "_wxPyDrawnShape","_class_wxPyDrawnShape",0},
{ "_class_wxIcon","_wxIcon",0},
{ "_class_wxColour","_wxColour",0},
{ "_class_wxScreenDC","_wxScreenDC",0},
{ "_class_wxPageSetupDialog","_wxPageSetupDialog",0},
{ "_wxPalette","_class_wxPalette",0},
{ "_class_wxIdleEvent","_wxIdleEvent",0},
{ "_class_wxConfigBase","_wxConfigBase",0},
{ "_wxCoord","_int",0},
{ "_wxCoord","_signed_int",0},
{ "_wxCoord","_unsigned_int",0},
{ "_wxCoord","_wxWindowID",0},
{ "_wxCoord","_uint",0},
{ "_wxCoord","_EBool",0},
{ "_wxCoord","_size_t",0},
{ "_wxCoord","_time_t",0},
{ "_wxCoord","_wxPrintQuality",0},
{ "_wxEraseEvent","_class_wxEraseEvent",0},
{ "_wxDataObjectComposite","_class_wxDataObjectComposite",0},
{ "_class_wxJoystickEvent","_wxJoystickEvent",0},
{ "_class_wxTipProvider","_wxTipProvider",0},
{ "_class_wxMiniFrame","_wxMiniFrame",0},
{ "_wxFontDialog","_class_wxFontDialog",0},
{ "_wxMemoryFSHandler","_class_wxMemoryFSHandler",0},
{ "_wxRegion","_class_wxRegion",0},
{ "_class_wxSplitterWindow","_wxSplitterWindow",0},
{ "_wxPreviewFrame","_class_wxPreviewFrame",0},
{ "_wxSizer","_class_wxSizer",0},
{ "_class_wxDateSpan","_wxDateSpan",0},
{ "_wxFileSystem","_class_wxFileSystem",0},
{ "_class_wxShowEvent","_wxShowEvent",0},
{ "_class_wxPyTipProvider","_wxPyTipProvider",0},
{ "_class_wxPCXHandler","_wxPCXHandler",0},
{ "_wxTIFFHandler","_class_wxTIFFHandler",0},
{ "_wxDiagram","_class_wxDiagram",0},
{ "_wxPyDropTarget","_class_wxPyDropTarget",0},
{ "_wxActivateEvent","_class_wxActivateEvent",0},
{ "_wxGauge","_class_wxGauge",0},
{ "_class_wxCheckListBox","_wxCheckListBox",0},
{ "_class_wxBusyInfo","_wxBusyInfo",0},
{ "_class_wxJoystick","_wxJoystick",0},
{ "_class_wxCommandEvent","_wxCommandEvent",0},
{ "_class_wxClientDC","_wxClientDC",0},
{ "_class_wxSizeEvent","_wxSizeEvent",0},
{ "_class_wxListCtrl","_wxListCtrl",0},
{ "_class_wxPyDividedShape","_wxPyDividedShape",0},
{ "_wxPyEllipseShape","_class_wxPyEllipseShape",0},
{ "_wxCustomDataObject","_class_wxCustomDataObject",0},
{ "_class_wxLogNull","_wxLogNull",0},
{ "_class_wxSize","_wxSize",0},
{ "_class_wxBitmap","_wxBitmap",0},
{ "_class_wxMemoryDC","_wxMemoryDC",0},
{ "_wxPyTextDropTarget","_class_wxPyTextDropTarget",0},
{ "_wxMenuBar","_class_wxMenuBar",0},
{ "_wxOutputStream","_class_wxOutputStream",0},
{ "_wxTreeEvent","_class_wxTreeEvent",0},
{ "_wxDirDialog","_class_wxDirDialog",0},
{ "_wxPyShapeEvtHandler","_class_wxPyShapeEvtHandler",0},
{ "_wxEvtHandler","_class_wxEvtHandler",0},
{ "_wxMenuItem","_class_wxMenuItem",0},
{ "_class_wxScrollBar","_wxScrollBar",0},
{ "_class_wxColourDialog","_wxColourDialog",0},
{ "_class_wxPrintData","_wxPrintData",0},
{ "_wxPyRectangleShape","_class_wxPyRectangleShape",0},
{ "_class_wxScrolledWindow","_wxScrolledWindow",0},
{ "_wxListItemAttr","_class_wxListItemAttr",0},
{ "_class_wxTextEntryDialog","_wxTextEntryDialog",0},
{ "_class_wxConfig","_wxConfig",0},
{ "_wxKeyEvent","_class_wxKeyEvent",0},
{ "_wxMoveEvent","_class_wxMoveEvent",0},
{ "_wxOGLConstraint","_class_wxOGLConstraint",0},
{ "_wxColourData","_class_wxColourData",0},
{ "_wxPageSetupDialogData","_class_wxPageSetupDialogData",0},
{ "_class_wxPalette","_wxPalette",0},
{ "_wxFileDataObject","_class_wxFileDataObject",0},
{ "_class_wxQueryLayoutInfoEvent","_wxQueryLayoutInfoEvent",0},
{ "_wxNotebookSizer","_class_wxNotebookSizer",0},
{ "_class_wxEraseEvent","_wxEraseEvent",0},
{ "_wxPyFontEnumerator","_class_wxPyFontEnumerator",0},
{ "_wxMDIClientWindow","_class_wxMDIClientWindow",0},
{ "_class_wxPyTextShape","_wxPyTextShape",0},
{ "_class_wxDataObjectComposite","_wxDataObjectComposite",0},
{ "_class_wxToolBarToolBase","_wxToolBarToolBase",0},
{ "_class_wxFontDialog","_wxFontDialog",0},
{ "_wxWindow","_class_wxWindow",0},
{ "_class_wxWindowDestroyEvent","_wxWindowDestroyEvent",0},
{ "_wxLogStderr","_class_wxLogStderr",0},
{ "_class_wxFileSystemHandler","_wxFileSystemHandler",0},
{ "_class_wxFileSystem","_wxFileSystem",0},
{ "_class_wxFrame","_wxFrame",0},
{ "_class_wxDiagram","_wxDiagram",0},
{0,0,0}};
static PyObject *SWIG_globals;
#ifdef __cplusplus
extern "C"
#endif
SWIGEXPORT(void) initoglc() {
PyObject *m, *d;
SWIG_globals = SWIG_newvarlink();
m = Py_InitModule("oglc", oglcMethods);
d = PyModule_GetDict(m);
PyDict_SetItemString(d,"KEY_SHIFT", PyInt_FromLong((long) KEY_SHIFT));
PyDict_SetItemString(d,"KEY_CTRL", PyInt_FromLong((long) KEY_CTRL));
PyDict_SetItemString(d,"ARROW_NONE", PyInt_FromLong((long) ARROW_NONE));
PyDict_SetItemString(d,"ARROW_END", PyInt_FromLong((long) ARROW_END));
PyDict_SetItemString(d,"ARROW_BOTH", PyInt_FromLong((long) ARROW_BOTH));
PyDict_SetItemString(d,"ARROW_MIDDLE", PyInt_FromLong((long) ARROW_MIDDLE));
PyDict_SetItemString(d,"ARROW_START", PyInt_FromLong((long) ARROW_START));
PyDict_SetItemString(d,"ARROW_HOLLOW_CIRCLE", PyInt_FromLong((long) ARROW_HOLLOW_CIRCLE));
PyDict_SetItemString(d,"ARROW_FILLED_CIRCLE", PyInt_FromLong((long) ARROW_FILLED_CIRCLE));
PyDict_SetItemString(d,"ARROW_ARROW", PyInt_FromLong((long) ARROW_ARROW));
PyDict_SetItemString(d,"ARROW_SINGLE_OBLIQUE", PyInt_FromLong((long) ARROW_SINGLE_OBLIQUE));
PyDict_SetItemString(d,"ARROW_DOUBLE_OBLIQUE", PyInt_FromLong((long) ARROW_DOUBLE_OBLIQUE));
PyDict_SetItemString(d,"ARROW_METAFILE", PyInt_FromLong((long) ARROW_METAFILE));
PyDict_SetItemString(d,"ARROW_POSITION_END", PyInt_FromLong((long) ARROW_POSITION_END));
PyDict_SetItemString(d,"ARROW_POSITION_START", PyInt_FromLong((long) ARROW_POSITION_START));
PyDict_SetItemString(d,"CONTROL_POINT_VERTICAL", PyInt_FromLong((long) CONTROL_POINT_VERTICAL));
PyDict_SetItemString(d,"CONTROL_POINT_HORIZONTAL", PyInt_FromLong((long) CONTROL_POINT_HORIZONTAL));
PyDict_SetItemString(d,"CONTROL_POINT_DIAGONAL", PyInt_FromLong((long) CONTROL_POINT_DIAGONAL));
PyDict_SetItemString(d,"CONTROL_POINT_ENDPOINT_TO", PyInt_FromLong((long) CONTROL_POINT_ENDPOINT_TO));
PyDict_SetItemString(d,"CONTROL_POINT_ENDPOINT_FROM", PyInt_FromLong((long) CONTROL_POINT_ENDPOINT_FROM));
PyDict_SetItemString(d,"CONTROL_POINT_LINE", PyInt_FromLong((long) CONTROL_POINT_LINE));
PyDict_SetItemString(d,"FORMAT_NONE", PyInt_FromLong((long) FORMAT_NONE));
PyDict_SetItemString(d,"FORMAT_CENTRE_HORIZ", PyInt_FromLong((long) FORMAT_CENTRE_HORIZ));
PyDict_SetItemString(d,"FORMAT_CENTRE_VERT", PyInt_FromLong((long) FORMAT_CENTRE_VERT));
PyDict_SetItemString(d,"FORMAT_SIZE_TO_CONTENTS", PyInt_FromLong((long) FORMAT_SIZE_TO_CONTENTS));
PyDict_SetItemString(d,"LINE_ALIGNMENT_HORIZ", PyInt_FromLong((long) LINE_ALIGNMENT_HORIZ));
PyDict_SetItemString(d,"LINE_ALIGNMENT_VERT", PyInt_FromLong((long) LINE_ALIGNMENT_VERT));
PyDict_SetItemString(d,"LINE_ALIGNMENT_TO_NEXT_HANDLE", PyInt_FromLong((long) LINE_ALIGNMENT_TO_NEXT_HANDLE));
PyDict_SetItemString(d,"LINE_ALIGNMENT_NONE", PyInt_FromLong((long) LINE_ALIGNMENT_NONE));
PyDict_SetItemString(d,"SHADOW_NONE", PyInt_FromLong((long) SHADOW_NONE));
PyDict_SetItemString(d,"SHADOW_LEFT", PyInt_FromLong((long) SHADOW_LEFT));
PyDict_SetItemString(d,"SHADOW_RIGHT", PyInt_FromLong((long) SHADOW_RIGHT));
PyDict_SetItemString(d,"OP_CLICK_LEFT", PyInt_FromLong((long) OP_CLICK_LEFT));
PyDict_SetItemString(d,"OP_CLICK_RIGHT", PyInt_FromLong((long) OP_CLICK_RIGHT));
PyDict_SetItemString(d,"OP_DRAG_LEFT", PyInt_FromLong((long) OP_DRAG_LEFT));
PyDict_SetItemString(d,"OP_DRAG_RIGHT", PyInt_FromLong((long) OP_DRAG_RIGHT));
PyDict_SetItemString(d,"OP_ALL", PyInt_FromLong((long) OP_ALL));
PyDict_SetItemString(d,"ATTACHMENT_MODE_NONE", PyInt_FromLong((long) ATTACHMENT_MODE_NONE));
PyDict_SetItemString(d,"ATTACHMENT_MODE_EDGE", PyInt_FromLong((long) ATTACHMENT_MODE_EDGE));
PyDict_SetItemString(d,"ATTACHMENT_MODE_BRANCHING", PyInt_FromLong((long) ATTACHMENT_MODE_BRANCHING));
PyDict_SetItemString(d,"BRANCHING_ATTACHMENT_NORMAL", PyInt_FromLong((long) BRANCHING_ATTACHMENT_NORMAL));
PyDict_SetItemString(d,"BRANCHING_ATTACHMENT_BLOB", PyInt_FromLong((long) BRANCHING_ATTACHMENT_BLOB));
PyDict_SetItemString(d,"gyCONSTRAINT_CENTRED_VERTICALLY", PyInt_FromLong((long) gyCONSTRAINT_CENTRED_VERTICALLY));
PyDict_SetItemString(d,"gyCONSTRAINT_CENTRED_HORIZONTALLY", PyInt_FromLong((long) gyCONSTRAINT_CENTRED_HORIZONTALLY));
PyDict_SetItemString(d,"gyCONSTRAINT_CENTRED_BOTH", PyInt_FromLong((long) gyCONSTRAINT_CENTRED_BOTH));
PyDict_SetItemString(d,"gyCONSTRAINT_LEFT_OF", PyInt_FromLong((long) gyCONSTRAINT_LEFT_OF));
PyDict_SetItemString(d,"gyCONSTRAINT_RIGHT_OF", PyInt_FromLong((long) gyCONSTRAINT_RIGHT_OF));
PyDict_SetItemString(d,"gyCONSTRAINT_ABOVE", PyInt_FromLong((long) gyCONSTRAINT_ABOVE));
PyDict_SetItemString(d,"gyCONSTRAINT_BELOW", PyInt_FromLong((long) gyCONSTRAINT_BELOW));
PyDict_SetItemString(d,"gyCONSTRAINT_ALIGNED_TOP", PyInt_FromLong((long) gyCONSTRAINT_ALIGNED_TOP));
PyDict_SetItemString(d,"gyCONSTRAINT_ALIGNED_BOTTOM", PyInt_FromLong((long) gyCONSTRAINT_ALIGNED_BOTTOM));
PyDict_SetItemString(d,"gyCONSTRAINT_ALIGNED_LEFT", PyInt_FromLong((long) gyCONSTRAINT_ALIGNED_LEFT));
PyDict_SetItemString(d,"gyCONSTRAINT_ALIGNED_RIGHT", PyInt_FromLong((long) gyCONSTRAINT_ALIGNED_RIGHT));
PyDict_SetItemString(d,"gyCONSTRAINT_MIDALIGNED_TOP", PyInt_FromLong((long) gyCONSTRAINT_MIDALIGNED_TOP));
PyDict_SetItemString(d,"gyCONSTRAINT_MIDALIGNED_BOTTOM", PyInt_FromLong((long) gyCONSTRAINT_MIDALIGNED_BOTTOM));
PyDict_SetItemString(d,"gyCONSTRAINT_MIDALIGNED_LEFT", PyInt_FromLong((long) gyCONSTRAINT_MIDALIGNED_LEFT));
PyDict_SetItemString(d,"gyCONSTRAINT_MIDALIGNED_RIGHT", PyInt_FromLong((long) gyCONSTRAINT_MIDALIGNED_RIGHT));
PyDict_SetItemString(d,"DIVISION_SIDE_NONE", PyInt_FromLong((long) DIVISION_SIDE_NONE));
PyDict_SetItemString(d,"DIVISION_SIDE_LEFT", PyInt_FromLong((long) DIVISION_SIDE_LEFT));
PyDict_SetItemString(d,"DIVISION_SIDE_TOP", PyInt_FromLong((long) DIVISION_SIDE_TOP));
PyDict_SetItemString(d,"DIVISION_SIDE_RIGHT", PyInt_FromLong((long) DIVISION_SIDE_RIGHT));
PyDict_SetItemString(d,"DIVISION_SIDE_BOTTOM", PyInt_FromLong((long) DIVISION_SIDE_BOTTOM));
initoglbasicc();
initoglshapesc();
initoglshapes2c();
initoglcanvasc();
wxClassInfo::CleanUpClasses();
wxClassInfo::InitializeClasses();
{
int i;
for (i = 0; _swig_mapping[i].n1; i++)
SWIG_RegisterMapping(_swig_mapping[i].n1,_swig_mapping[i].n2,_swig_mapping[i].pcnv);
}
}

167
wxPython/contrib/ogl/ogl.i Normal file
View File

@@ -0,0 +1,167 @@
/////////////////////////////////////////////////////////////////////////////
// Name: ogl.i
// Purpose: SWIG definitions for the wxWindows Object Graphics Library
//
// Author: Robin Dunn
//
// Created: 30-June-1999
// RCS-ID: $Id$
// Copyright: (c) 1998 by Total Control Software
// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
%module ogl
%{
#include "helpers.h"
#include "oglhelpers.h"
%}
//---------------------------------------------------------------------------
%include typemaps.i
%include my_typemaps.i
%extern wx.i
%import windows.i
%extern _defs.i
%extern misc.i
%extern gdi.i
%include _ogldefs.i
%import oglbasic.i
%import oglshapes.i
%import oglshapes2.i
%import oglcanvas.i
%pragma(python) code = "import wx"
//---------------------------------------------------------------------------
enum {
KEY_SHIFT,
KEY_CTRL,
ARROW_NONE,
ARROW_END,
ARROW_BOTH,
ARROW_MIDDLE,
ARROW_START,
ARROW_HOLLOW_CIRCLE,
ARROW_FILLED_CIRCLE,
ARROW_ARROW,
ARROW_SINGLE_OBLIQUE,
ARROW_DOUBLE_OBLIQUE,
ARROW_METAFILE,
ARROW_POSITION_END,
ARROW_POSITION_START,
CONTROL_POINT_VERTICAL,
CONTROL_POINT_HORIZONTAL,
CONTROL_POINT_DIAGONAL,
CONTROL_POINT_ENDPOINT_TO,
CONTROL_POINT_ENDPOINT_FROM,
CONTROL_POINT_LINE,
FORMAT_NONE,
FORMAT_CENTRE_HORIZ,
FORMAT_CENTRE_VERT,
FORMAT_SIZE_TO_CONTENTS,
LINE_ALIGNMENT_HORIZ,
LINE_ALIGNMENT_VERT,
LINE_ALIGNMENT_TO_NEXT_HANDLE,
LINE_ALIGNMENT_NONE,
SHADOW_NONE,
SHADOW_LEFT,
SHADOW_RIGHT,
// SHAPE_BASIC,
// SHAPE_RECTANGLE,
// SHAPE_ELLIPSE,
// SHAPE_POLYGON,
// SHAPE_CIRCLE,
// SHAPE_LINE,
// SHAPE_DIVIDED_RECTANGLE,
// SHAPE_COMPOSITE,
// SHAPE_CONTROL_POINT,
// SHAPE_DRAWN,
// SHAPE_DIVISION,
// SHAPE_LABEL_OBJECT,
// SHAPE_BITMAP,
// SHAPE_DIVIDED_OBJECT_CONTROL_POINT,
// OBJECT_REGION,
OP_CLICK_LEFT,
OP_CLICK_RIGHT,
OP_DRAG_LEFT,
OP_DRAG_RIGHT,
OP_ALL,
ATTACHMENT_MODE_NONE,
ATTACHMENT_MODE_EDGE,
ATTACHMENT_MODE_BRANCHING,
BRANCHING_ATTACHMENT_NORMAL,
BRANCHING_ATTACHMENT_BLOB,
gyCONSTRAINT_CENTRED_VERTICALLY,
gyCONSTRAINT_CENTRED_HORIZONTALLY,
gyCONSTRAINT_CENTRED_BOTH,
gyCONSTRAINT_LEFT_OF,
gyCONSTRAINT_RIGHT_OF,
gyCONSTRAINT_ABOVE,
gyCONSTRAINT_BELOW,
gyCONSTRAINT_ALIGNED_TOP,
gyCONSTRAINT_ALIGNED_BOTTOM,
gyCONSTRAINT_ALIGNED_LEFT,
gyCONSTRAINT_ALIGNED_RIGHT,
gyCONSTRAINT_MIDALIGNED_TOP,
gyCONSTRAINT_MIDALIGNED_BOTTOM,
gyCONSTRAINT_MIDALIGNED_LEFT,
gyCONSTRAINT_MIDALIGNED_RIGHT,
DIVISION_SIDE_NONE,
DIVISION_SIDE_LEFT,
DIVISION_SIDE_TOP,
DIVISION_SIDE_RIGHT,
DIVISION_SIDE_BOTTOM,
};
//---------------------------------------------------------------------------
void wxOGLInitialize();
void wxOGLCleanUp();
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
%{
extern "C" SWIGEXPORT(void) initoglbasicc();
extern "C" SWIGEXPORT(void) initoglshapesc();
extern "C" SWIGEXPORT(void) initoglshapes2c();
extern "C" SWIGEXPORT(void) initoglcanvasc();
%}
%init %{
initoglbasicc();
initoglshapesc();
initoglshapes2c();
initoglcanvasc();
wxClassInfo::CleanUpClasses();
wxClassInfo::InitializeClasses();
%}
//----------------------------------------------------------------------
// And this gets appended to the shadow class file.
//----------------------------------------------------------------------
%pragma(python) include="_oglextras.py";
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------

165
wxPython/contrib/ogl/ogl.py Normal file
View File

@@ -0,0 +1,165 @@
# This file was created automatically by SWIG.
import oglc
from misc import *
from misc2 import *
from windows import *
from gdi import *
from clip_dnd import *
from events import *
from streams import *
from mdi import *
from frames import *
from stattool import *
from controls import *
from controls2 import *
from windows2 import *
from cmndlgs import *
from windows3 import *
from image import *
from printfw import *
from sizers import *
from filesys import *
from utils import *
from oglbasic import *
from oglshapes import *
from oglshapes2 import *
from oglcanvas import *
import wx
#-------------- FUNCTION WRAPPERS ------------------
wxOGLInitialize = oglc.wxOGLInitialize
wxOGLCleanUp = oglc.wxOGLCleanUp
#-------------- VARIABLE WRAPPERS ------------------
KEY_SHIFT = oglc.KEY_SHIFT
KEY_CTRL = oglc.KEY_CTRL
ARROW_NONE = oglc.ARROW_NONE
ARROW_END = oglc.ARROW_END
ARROW_BOTH = oglc.ARROW_BOTH
ARROW_MIDDLE = oglc.ARROW_MIDDLE
ARROW_START = oglc.ARROW_START
ARROW_HOLLOW_CIRCLE = oglc.ARROW_HOLLOW_CIRCLE
ARROW_FILLED_CIRCLE = oglc.ARROW_FILLED_CIRCLE
ARROW_ARROW = oglc.ARROW_ARROW
ARROW_SINGLE_OBLIQUE = oglc.ARROW_SINGLE_OBLIQUE
ARROW_DOUBLE_OBLIQUE = oglc.ARROW_DOUBLE_OBLIQUE
ARROW_METAFILE = oglc.ARROW_METAFILE
ARROW_POSITION_END = oglc.ARROW_POSITION_END
ARROW_POSITION_START = oglc.ARROW_POSITION_START
CONTROL_POINT_VERTICAL = oglc.CONTROL_POINT_VERTICAL
CONTROL_POINT_HORIZONTAL = oglc.CONTROL_POINT_HORIZONTAL
CONTROL_POINT_DIAGONAL = oglc.CONTROL_POINT_DIAGONAL
CONTROL_POINT_ENDPOINT_TO = oglc.CONTROL_POINT_ENDPOINT_TO
CONTROL_POINT_ENDPOINT_FROM = oglc.CONTROL_POINT_ENDPOINT_FROM
CONTROL_POINT_LINE = oglc.CONTROL_POINT_LINE
FORMAT_NONE = oglc.FORMAT_NONE
FORMAT_CENTRE_HORIZ = oglc.FORMAT_CENTRE_HORIZ
FORMAT_CENTRE_VERT = oglc.FORMAT_CENTRE_VERT
FORMAT_SIZE_TO_CONTENTS = oglc.FORMAT_SIZE_TO_CONTENTS
LINE_ALIGNMENT_HORIZ = oglc.LINE_ALIGNMENT_HORIZ
LINE_ALIGNMENT_VERT = oglc.LINE_ALIGNMENT_VERT
LINE_ALIGNMENT_TO_NEXT_HANDLE = oglc.LINE_ALIGNMENT_TO_NEXT_HANDLE
LINE_ALIGNMENT_NONE = oglc.LINE_ALIGNMENT_NONE
SHADOW_NONE = oglc.SHADOW_NONE
SHADOW_LEFT = oglc.SHADOW_LEFT
SHADOW_RIGHT = oglc.SHADOW_RIGHT
OP_CLICK_LEFT = oglc.OP_CLICK_LEFT
OP_CLICK_RIGHT = oglc.OP_CLICK_RIGHT
OP_DRAG_LEFT = oglc.OP_DRAG_LEFT
OP_DRAG_RIGHT = oglc.OP_DRAG_RIGHT
OP_ALL = oglc.OP_ALL
ATTACHMENT_MODE_NONE = oglc.ATTACHMENT_MODE_NONE
ATTACHMENT_MODE_EDGE = oglc.ATTACHMENT_MODE_EDGE
ATTACHMENT_MODE_BRANCHING = oglc.ATTACHMENT_MODE_BRANCHING
BRANCHING_ATTACHMENT_NORMAL = oglc.BRANCHING_ATTACHMENT_NORMAL
BRANCHING_ATTACHMENT_BLOB = oglc.BRANCHING_ATTACHMENT_BLOB
gyCONSTRAINT_CENTRED_VERTICALLY = oglc.gyCONSTRAINT_CENTRED_VERTICALLY
gyCONSTRAINT_CENTRED_HORIZONTALLY = oglc.gyCONSTRAINT_CENTRED_HORIZONTALLY
gyCONSTRAINT_CENTRED_BOTH = oglc.gyCONSTRAINT_CENTRED_BOTH
gyCONSTRAINT_LEFT_OF = oglc.gyCONSTRAINT_LEFT_OF
gyCONSTRAINT_RIGHT_OF = oglc.gyCONSTRAINT_RIGHT_OF
gyCONSTRAINT_ABOVE = oglc.gyCONSTRAINT_ABOVE
gyCONSTRAINT_BELOW = oglc.gyCONSTRAINT_BELOW
gyCONSTRAINT_ALIGNED_TOP = oglc.gyCONSTRAINT_ALIGNED_TOP
gyCONSTRAINT_ALIGNED_BOTTOM = oglc.gyCONSTRAINT_ALIGNED_BOTTOM
gyCONSTRAINT_ALIGNED_LEFT = oglc.gyCONSTRAINT_ALIGNED_LEFT
gyCONSTRAINT_ALIGNED_RIGHT = oglc.gyCONSTRAINT_ALIGNED_RIGHT
gyCONSTRAINT_MIDALIGNED_TOP = oglc.gyCONSTRAINT_MIDALIGNED_TOP
gyCONSTRAINT_MIDALIGNED_BOTTOM = oglc.gyCONSTRAINT_MIDALIGNED_BOTTOM
gyCONSTRAINT_MIDALIGNED_LEFT = oglc.gyCONSTRAINT_MIDALIGNED_LEFT
gyCONSTRAINT_MIDALIGNED_RIGHT = oglc.gyCONSTRAINT_MIDALIGNED_RIGHT
DIVISION_SIDE_NONE = oglc.DIVISION_SIDE_NONE
DIVISION_SIDE_LEFT = oglc.DIVISION_SIDE_LEFT
DIVISION_SIDE_TOP = oglc.DIVISION_SIDE_TOP
DIVISION_SIDE_RIGHT = oglc.DIVISION_SIDE_RIGHT
DIVISION_SIDE_BOTTOM = oglc.DIVISION_SIDE_BOTTOM
#-------------- USER INCLUDE -----------------------
wxShapeCanvas = wxPyShapeCanvas
wxShapeEvtHandler = wxPyShapeEvtHandler
wxShape = wxPyShape
wxRectangleShape = wxPyRectangleShape
wxBitmapShape = wxPyBitmapShape
wxDrawnShape = wxPyDrawnShape
wxCompositeShape = wxPyCompositeShape
wxDividedShape = wxPyDividedShape
wxDivisionShape = wxPyDivisionShape
wxEllipseShape = wxPyEllipseShape
wxCircleShape = wxPyCircleShape
wxLineShape = wxPyLineShape
wxPolygonShape = wxPyPolygonShape
wxTextShape = wxPyTextShape
wxControlPoint = wxPyControlPoint
# Stuff these names into the wx namespace so wxPyConstructObject can find them
import wx
wx.wxPyShapeCanvasPtr = wxPyShapeCanvasPtr
wx.wxPyShapeEvtHandlerPtr = wxPyShapeEvtHandlerPtr
wx.wxPyShapePtr = wxPyShapePtr
wx.wxPyRectangleShapePtr = wxPyRectangleShapePtr
wx.wxPyBitmapShapePtr = wxPyBitmapShapePtr
wx.wxPyDrawnShapePtr = wxPyDrawnShapePtr
wx.wxPyCompositeShapePtr = wxPyCompositeShapePtr
wx.wxPyDividedShapePtr = wxPyDividedShapePtr
wx.wxPyDivisionShapePtr = wxPyDivisionShapePtr
wx.wxPyEllipseShapePtr = wxPyEllipseShapePtr
wx.wxPyCircleShapePtr = wxPyCircleShapePtr
wx.wxPyLineShapePtr = wxPyLineShapePtr
wx.wxPyPolygonShapePtr = wxPyPolygonShapePtr
wx.wxPyTextShapePtr = wxPyTextShapePtr
wx.wxShapeRegionPtr = wxShapeRegionPtr
wx.wxOGLConstraintPtr = wxOGLConstraintPtr
wx.wxControlPointPtr = wxPyControlPointPtr

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,401 @@
/////////////////////////////////////////////////////////////////////////////
// Name: oglbasic.i
// Purpose: SWIG definitions for the wxWindows Object Graphics Library
//
// Author: Robin Dunn
//
// Created: 3-Sept-1999
// RCS-ID: $Id$
// Copyright: (c) 1998 by Total Control Software
// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
%module oglbasic
%{
#include "helpers.h"
#include "oglhelpers.h"
%}
//---------------------------------------------------------------------------
%include typemaps.i
%include my_typemaps.i
%extern wx.i
%import windows.i
%extern _defs.i
%extern misc.i
%extern gdi.i
%include _ogldefs.i
//%extern oglcanvas.i
%pragma(python) code = "import wx"
%pragma(python) code = "from oglcanvas import wxPyShapeCanvasPtr"
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
class wxShapeRegion {
public:
wxShapeRegion();
//~wxShapeRegion();
void SetText(const wxString& s);
void SetFont(wxFont *f);
void SetMinSize(double w, double h);
void SetSize(double w, double h);
void SetPosition(double x, double y);
void SetProportions(double x, double y);
void SetFormatMode(int mode);
void SetName(const wxString& s);
void SetColour(const wxString& col);
wxString GetText();
wxFont *GetFont();
void GetMinSize(double *OUTPUT, double *OUTPUT);
void GetProportion(double *OUTPUT, double *OUTPUT);
void GetSize(double *OUTPUT, double *OUTPUT);
void GetPosition(double *OUTPUT, double *OUTPUT);
int GetFormatMode();
wxString GetName();
wxString GetColour();
wxColour *GetActualColourObject();
wxList& GetFormattedText();
wxString GetPenColour();
int GetPenStyle();
void SetPenStyle(int style);
void SetPenColour(const wxString& col);
wxPen *GetActualPen();
double GetWidth();
double GetHeight();
void ClearText();
};
//---------------------------------------------------------------------------
%{
WXSHAPE_IMP_CALLBACKS(wxPyShapeEvtHandler,wxShapeEvtHandler);
%}
class wxPyShapeEvtHandler {
public:
wxPyShapeEvtHandler(wxPyShapeEvtHandler *prev = NULL,
wxPyShape *shape = NULL);
void _setSelf(PyObject* self, PyObject* _class);
%pragma(python) addtomethod = "__init__:self._setSelf(self, wxPyShapeEvtHandler)"
%addmethods {
void Destroy() { delete self; }
}
void SetShape(wxPyShape *sh);
wxPyShape *GetShape();
void SetPreviousHandler(wxPyShapeEvtHandler* handler);
wxPyShapeEvtHandler* GetPreviousHandler();
wxPyShapeEvtHandler* CreateNewCopy();
void base_OnDelete();
void base_OnDraw(wxDC& dc);
void base_OnDrawContents(wxDC& dc);
void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
void base_OnMoveLinks(wxDC& dc);
void base_OnErase(wxDC& dc);
void base_OnEraseContents(wxDC& dc);
void base_OnHighlight(wxDC& dc);
void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
void base_OnSize(double x, double y);
bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
void base_OnDrawControlPoints(wxDC& dc);
void base_OnEraseControlPoints(wxDC& dc);
void base_OnMoveLink(wxDC& dc, bool moveControlPoints = TRUE);
void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
void base_OnBeginSize(double w, double h);
void base_OnEndSize(double w, double h);
// void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
};
//---------------------------------------------------------------------------
%{
WXSHAPE_IMP_CALLBACKS(wxPyShape, wxShape);
%}
class wxPyShape : public wxPyShapeEvtHandler {
public:
// wxPyShape(wxPyShapeCanvas *can = NULL); abstract base class...
void _setSelf(PyObject* self, PyObject* _class);
%pragma(python) addtomethod = "__init__:self._setSelf(self, wxPyShape)"
%addmethods {
void Destroy() { delete self; }
}
void GetBoundingBoxMax(double *OUTPUT, double *OUTPUT);
void GetBoundingBoxMin(double *OUTPUT, double *OUTPUT);
bool GetPerimeterPoint(double x1, double y1,
double x2, double y2,
double *OUTPUT, double *OUTPUT);
wxPyShapeCanvas *GetCanvas();
void SetCanvas(wxPyShapeCanvas *the_canvas);
void AddToCanvas(wxPyShapeCanvas *the_canvas, wxPyShape *addAfter = NULL);
void InsertInCanvas(wxPyShapeCanvas *the_canvas);
void RemoveFromCanvas(wxPyShapeCanvas *the_canvas);
double GetX();
double GetY();
void SetX(double x);
void SetY(double y);
wxPyShape *GetParent();
void SetParent(wxPyShape *p);
wxPyShape *GetTopAncestor();
// wxList& GetChildren();
%addmethods {
PyObject* GetChildren() {
wxList& list = self->GetChildren();
return wxPy_ConvertList(&list, "wxPyShape");
}
}
void Unlink();
void SetDrawHandles(bool drawH);
bool GetDrawHandles();
void MakeControlPoints();
void DeleteControlPoints(wxDC *dc = NULL);
void ResetControlPoints();
wxPyShapeEvtHandler *GetEventHandler();
void SetEventHandler(wxPyShapeEvtHandler *handler);
void MakeMandatoryControlPoints();
void ResetMandatoryControlPoints();
bool Recompute();
void CalculateSize();
void Select(bool select = TRUE, wxDC* dc = NULL);
void SetHighlight(bool hi = TRUE, bool recurse = FALSE);
bool IsHighlighted() ;
bool Selected();
bool AncestorSelected();
void SetSensitivityFilter(int sens = OP_ALL, bool recursive = FALSE);
int GetSensitivityFilter();
void SetDraggable(bool drag, bool recursive = FALSE);
void SetFixedSize(bool x, bool y);
void GetFixedSize(bool *OUTPUT, bool *OUTPUT) ;
bool GetFixedWidth();
bool GetFixedHeight();
void SetSpaceAttachments(bool sp);
bool GetSpaceAttachments() ;
void SetShadowMode(int mode, bool redraw = FALSE);
int GetShadowMode();
bool HitTest(double x, double y, int *OUTPUT, double *OUTPUT);
void SetCentreResize(bool cr);
bool GetCentreResize();
void SetMaintainAspectRatio(bool ar);
bool GetMaintainAspectRatio();
// wxList& GetLines();
%addmethods {
PyObject* GetLines() {
wxList& list = self->GetLines();
return wxPy_ConvertList(&list, "wxPyLineShape");
}
}
void SetDisableLabel(bool flag);
bool GetDisableLabel();
void SetAttachmentMode(int mode);
int GetAttachmentMode();
void SetId(long i);
long GetId();
void SetPen(wxPen *pen);
void SetBrush(wxBrush *brush);
// void SetClientData(wxObject *client_data);
// wxObject *GetClientData();
%addmethods {
void SetClientData(PyObject* userData) {
wxPyUserData* data = NULL;
if (userData)
data = new wxPyUserData(userData);
self->SetClientData(data);
}
PyObject* GetClientData() {
wxPyUserData* data = (wxPyUserData*)self->GetClientData();
if (data) {
Py_INCREF(data->m_obj);
return data->m_obj;
} else {
Py_INCREF(Py_None);
return Py_None;
}
}
}
void Show(bool show);
bool IsShown();
void Move(wxDC& dc, double x1, double y1, bool display = TRUE);
void Erase(wxDC& dc);
void EraseContents(wxDC& dc);
void Draw(wxDC& dc);
void Flash();
void MoveLinks(wxDC& dc);
void DrawContents(wxDC& dc);
void SetSize(double x, double y, bool recursive = TRUE);
void SetAttachmentSize(double x, double y);
void Attach(wxPyShapeCanvas *can);
void Detach();
bool Constrain();
void AddLine(wxPyLineShape *line, wxPyShape *other,
int attachFrom = 0, int attachTo = 0,
int positionFrom = -1, int positionTo = -1);
int GetLinePosition(wxPyLineShape* line);
void AddText(const wxString& string);
wxPen *GetPen();
wxBrush *GetBrush();
void SetDefaultRegionSize();
void FormatText(wxDC& dc, const wxString& s, int regionId = 0);
void SetFormatMode(int mode, int regionId = 0);
int GetFormatMode(int regionId = 0);
void SetFont(wxFont *font, int regionId = 0);
wxFont *GetFont(int regionId = 0);
void SetTextColour(const wxString& colour, int regionId = 0);
wxString GetTextColour(int regionId = 0);
int GetNumberOfTextRegions();
void SetRegionName(const wxString& name, int regionId = 0);
wxString GetRegionName(int regionId);
int GetRegionId(const wxString& name);
void NameRegions(const wxString& parentName = "");
// wxList& GetRegions();
%addmethods {
PyObject* GetRegions() {
wxList& list = self->GetRegions();
return wxPy_ConvertList(&list, "wxShapeRegion");
}
}
void AddRegion(wxShapeRegion *region);
void ClearRegions();
void AssignNewIds();
wxPyShape *FindRegion(const wxString& regionName, int *OUTPUT);
void FindRegionNames(wxStringList& list);
void ClearText(int regionId = 0);
void RemoveLine(wxPyLineShape *line);
#ifdef PROLOGIO
void WriteAttributes(wxExpr *clause);
void ReadAttributes(wxExpr *clause);
void ReadConstraints(wxExpr *clause, wxExprDatabase *database);
void WriteRegions(wxExpr *clause);
void ReadRegions(wxExpr *clause);
#endif
bool GetAttachmentPosition(int attachment, double *OUTPUT, double *OUTPUT,
int nth = 0, int no_arcs = 1, wxPyLineShape *line = NULL);
int GetNumberOfAttachments();
bool AttachmentIsValid(int attachment);
bool GetAttachmentPositionEdge(int attachment, double *OUTPUT, double *OUTPUT,
int nth = 0, int no_arcs = 1, wxPyLineShape *line = NULL);
wxRealPoint CalcSimpleAttachment(const wxRealPoint& pt1, const wxRealPoint& pt2,
int nth, int noArcs, wxPyLineShape* line);
bool AttachmentSortTest(int attachmentPoint, const wxRealPoint& pt1, const wxRealPoint& pt2);
void EraseLinks(wxDC& dc, int attachment = -1, bool recurse = FALSE);
void DrawLinks(wxDC& dc, int attachment = -1, bool recurse = FALSE);
bool MoveLineToNewAttachment(wxDC& dc, wxPyLineShape *to_move,
double x, double y);
//void ApplyAttachmentOrdering(wxList& linesToSort);
%addmethods {
void ApplyAttachmentOrdering(PyObject* linesToSort) {
wxList* list = wxPy_wxListHelper(linesToSort, "_wxPyLineShape_p");
self->ApplyAttachmentOrdering(*list);
delete list;
}
}
wxRealPoint GetBranchingAttachmentRoot(int attachment);
bool GetBranchingAttachmentInfo(int attachment, wxRealPoint& root, wxRealPoint& neck,
wxRealPoint& shoulder1, wxRealPoint& shoulder2);
bool GetBranchingAttachmentPoint(int attachment, int n, wxRealPoint& attachmentPoint,
wxRealPoint& stemPoint);
int GetAttachmentLineCount(int attachment);
void SetBranchNeckLength(int len);
int GetBranchNeckLength();
void SetBranchStemLength(int len);
int GetBranchStemLength();
void SetBranchSpacing(int len);
int GetBranchSpacing();
void SetBranchStyle(long style);
long GetBranchStyle();
int PhysicalToLogicalAttachment(int physicalAttachment);
int LogicalToPhysicalAttachment(int logicalAttachment);
bool Draggable();
bool HasDescendant(wxPyShape *image);
wxPyShape *CreateNewCopy(bool resetMapping = TRUE, bool recompute = TRUE);
void Copy(wxPyShape& copy);
void CopyWithHandler(wxPyShape& copy);
void Rotate(double x, double y, double theta);
double GetRotation();
void ClearAttachments();
void Recentre(wxDC& dc);
void ClearPointList(wxList& list);
void base_OnDelete();
void base_OnDraw(wxDC& dc);
void base_OnDrawContents(wxDC& dc);
void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
void base_OnMoveLinks(wxDC& dc);
void base_OnErase(wxDC& dc);
void base_OnEraseContents(wxDC& dc);
void base_OnHighlight(wxDC& dc);
void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
void base_OnSize(double x, double y);
bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
void base_OnDrawControlPoints(wxDC& dc);
void base_OnEraseControlPoints(wxDC& dc);
void base_OnMoveLink(wxDC& dc, bool moveControlPoints = TRUE);
void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
void base_OnBeginSize(double w, double h);
void base_OnEndSize(double w, double h);
// void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
};
//---------------------------------------------------------------------------

View File

@@ -0,0 +1,797 @@
# This file was created automatically by SWIG.
import oglbasicc
from misc import *
from misc2 import *
from windows import *
from gdi import *
from clip_dnd import *
from events import *
from streams import *
from mdi import *
from frames import *
from stattool import *
from controls import *
from controls2 import *
from windows2 import *
from cmndlgs import *
from windows3 import *
from image import *
from printfw import *
from sizers import *
from filesys import *
from utils import *
import wx
from oglcanvas import wxPyShapeCanvasPtr
class wxShapeRegionPtr :
def __init__(self,this):
self.this = this
self.thisown = 0
def SetText(self, *_args, **_kwargs):
val = apply(oglbasicc.wxShapeRegion_SetText,(self,) + _args, _kwargs)
return val
def SetFont(self, *_args, **_kwargs):
val = apply(oglbasicc.wxShapeRegion_SetFont,(self,) + _args, _kwargs)
return val
def SetMinSize(self, *_args, **_kwargs):
val = apply(oglbasicc.wxShapeRegion_SetMinSize,(self,) + _args, _kwargs)
return val
def SetSize(self, *_args, **_kwargs):
val = apply(oglbasicc.wxShapeRegion_SetSize,(self,) + _args, _kwargs)
return val
def SetPosition(self, *_args, **_kwargs):
val = apply(oglbasicc.wxShapeRegion_SetPosition,(self,) + _args, _kwargs)
return val
def SetProportions(self, *_args, **_kwargs):
val = apply(oglbasicc.wxShapeRegion_SetProportions,(self,) + _args, _kwargs)
return val
def SetFormatMode(self, *_args, **_kwargs):
val = apply(oglbasicc.wxShapeRegion_SetFormatMode,(self,) + _args, _kwargs)
return val
def SetName(self, *_args, **_kwargs):
val = apply(oglbasicc.wxShapeRegion_SetName,(self,) + _args, _kwargs)
return val
def SetColour(self, *_args, **_kwargs):
val = apply(oglbasicc.wxShapeRegion_SetColour,(self,) + _args, _kwargs)
return val
def GetText(self, *_args, **_kwargs):
val = apply(oglbasicc.wxShapeRegion_GetText,(self,) + _args, _kwargs)
return val
def GetFont(self, *_args, **_kwargs):
val = apply(oglbasicc.wxShapeRegion_GetFont,(self,) + _args, _kwargs)
if val: val = wxFontPtr(val)
return val
def GetMinSize(self, *_args, **_kwargs):
val = apply(oglbasicc.wxShapeRegion_GetMinSize,(self,) + _args, _kwargs)
return val
def GetProportion(self, *_args, **_kwargs):
val = apply(oglbasicc.wxShapeRegion_GetProportion,(self,) + _args, _kwargs)
return val
def GetSize(self, *_args, **_kwargs):
val = apply(oglbasicc.wxShapeRegion_GetSize,(self,) + _args, _kwargs)
return val
def GetPosition(self, *_args, **_kwargs):
val = apply(oglbasicc.wxShapeRegion_GetPosition,(self,) + _args, _kwargs)
return val
def GetFormatMode(self, *_args, **_kwargs):
val = apply(oglbasicc.wxShapeRegion_GetFormatMode,(self,) + _args, _kwargs)
return val
def GetName(self, *_args, **_kwargs):
val = apply(oglbasicc.wxShapeRegion_GetName,(self,) + _args, _kwargs)
return val
def GetColour(self, *_args, **_kwargs):
val = apply(oglbasicc.wxShapeRegion_GetColour,(self,) + _args, _kwargs)
return val
def GetActualColourObject(self, *_args, **_kwargs):
val = apply(oglbasicc.wxShapeRegion_GetActualColourObject,(self,) + _args, _kwargs)
if val: val = wxColourPtr(val)
return val
def GetFormattedText(self, *_args, **_kwargs):
val = apply(oglbasicc.wxShapeRegion_GetFormattedText,(self,) + _args, _kwargs)
return val
def GetPenColour(self, *_args, **_kwargs):
val = apply(oglbasicc.wxShapeRegion_GetPenColour,(self,) + _args, _kwargs)
return val
def GetPenStyle(self, *_args, **_kwargs):
val = apply(oglbasicc.wxShapeRegion_GetPenStyle,(self,) + _args, _kwargs)
return val
def SetPenStyle(self, *_args, **_kwargs):
val = apply(oglbasicc.wxShapeRegion_SetPenStyle,(self,) + _args, _kwargs)
return val
def SetPenColour(self, *_args, **_kwargs):
val = apply(oglbasicc.wxShapeRegion_SetPenColour,(self,) + _args, _kwargs)
return val
def GetActualPen(self, *_args, **_kwargs):
val = apply(oglbasicc.wxShapeRegion_GetActualPen,(self,) + _args, _kwargs)
if val: val = wxPenPtr(val)
return val
def GetWidth(self, *_args, **_kwargs):
val = apply(oglbasicc.wxShapeRegion_GetWidth,(self,) + _args, _kwargs)
return val
def GetHeight(self, *_args, **_kwargs):
val = apply(oglbasicc.wxShapeRegion_GetHeight,(self,) + _args, _kwargs)
return val
def ClearText(self, *_args, **_kwargs):
val = apply(oglbasicc.wxShapeRegion_ClearText,(self,) + _args, _kwargs)
return val
def __repr__(self):
return "<C wxShapeRegion instance at %s>" % (self.this,)
class wxShapeRegion(wxShapeRegionPtr):
def __init__(self,*_args,**_kwargs):
self.this = apply(oglbasicc.new_wxShapeRegion,_args,_kwargs)
self.thisown = 1
class wxPyShapeEvtHandlerPtr :
def __init__(self,this):
self.this = this
self.thisown = 0
def _setSelf(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShapeEvtHandler__setSelf,(self,) + _args, _kwargs)
return val
def Destroy(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShapeEvtHandler_Destroy,(self,) + _args, _kwargs)
return val
def SetShape(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShapeEvtHandler_SetShape,(self,) + _args, _kwargs)
return val
def GetShape(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShapeEvtHandler_GetShape,(self,) + _args, _kwargs)
if val: val = wxPyShapePtr(val)
return val
def SetPreviousHandler(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShapeEvtHandler_SetPreviousHandler,(self,) + _args, _kwargs)
return val
def GetPreviousHandler(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShapeEvtHandler_GetPreviousHandler,(self,) + _args, _kwargs)
if val: val = wxPyShapeEvtHandlerPtr(val)
return val
def CreateNewCopy(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShapeEvtHandler_CreateNewCopy,(self,) + _args, _kwargs)
if val: val = wxPyShapeEvtHandlerPtr(val)
return val
def base_OnDelete(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnDelete,(self,) + _args, _kwargs)
return val
def base_OnDraw(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnDraw,(self,) + _args, _kwargs)
return val
def base_OnDrawContents(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnDrawContents,(self,) + _args, _kwargs)
return val
def base_OnDrawBranches(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnDrawBranches,(self,) + _args, _kwargs)
return val
def base_OnMoveLinks(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnMoveLinks,(self,) + _args, _kwargs)
return val
def base_OnErase(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnErase,(self,) + _args, _kwargs)
return val
def base_OnEraseContents(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnEraseContents,(self,) + _args, _kwargs)
return val
def base_OnHighlight(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnHighlight,(self,) + _args, _kwargs)
return val
def base_OnLeftClick(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnLeftClick,(self,) + _args, _kwargs)
return val
def base_OnLeftDoubleClick(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnLeftDoubleClick,(self,) + _args, _kwargs)
return val
def base_OnRightClick(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnRightClick,(self,) + _args, _kwargs)
return val
def base_OnSize(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnSize,(self,) + _args, _kwargs)
return val
def base_OnMovePre(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnMovePre,(self,) + _args, _kwargs)
return val
def base_OnMovePost(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnMovePost,(self,) + _args, _kwargs)
return val
def base_OnDragLeft(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnDragLeft,(self,) + _args, _kwargs)
return val
def base_OnBeginDragLeft(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnBeginDragLeft,(self,) + _args, _kwargs)
return val
def base_OnEndDragLeft(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnEndDragLeft,(self,) + _args, _kwargs)
return val
def base_OnDragRight(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnDragRight,(self,) + _args, _kwargs)
return val
def base_OnBeginDragRight(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnBeginDragRight,(self,) + _args, _kwargs)
return val
def base_OnEndDragRight(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnEndDragRight,(self,) + _args, _kwargs)
return val
def base_OnDrawOutline(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnDrawOutline,(self,) + _args, _kwargs)
return val
def base_OnDrawControlPoints(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnDrawControlPoints,(self,) + _args, _kwargs)
return val
def base_OnEraseControlPoints(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnEraseControlPoints,(self,) + _args, _kwargs)
return val
def base_OnMoveLink(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnMoveLink,(self,) + _args, _kwargs)
return val
def base_OnSizingDragLeft(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnSizingDragLeft,(self,) + _args, _kwargs)
return val
def base_OnSizingBeginDragLeft(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnSizingBeginDragLeft,(self,) + _args, _kwargs)
return val
def base_OnSizingEndDragLeft(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnSizingEndDragLeft,(self,) + _args, _kwargs)
return val
def base_OnBeginSize(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnBeginSize,(self,) + _args, _kwargs)
return val
def base_OnEndSize(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnEndSize,(self,) + _args, _kwargs)
return val
def __repr__(self):
return "<C wxPyShapeEvtHandler instance at %s>" % (self.this,)
class wxPyShapeEvtHandler(wxPyShapeEvtHandlerPtr):
def __init__(self,*_args,**_kwargs):
self.this = apply(oglbasicc.new_wxPyShapeEvtHandler,_args,_kwargs)
self.thisown = 1
self._setSelf(self, wxPyShapeEvtHandler)
class wxPyShapePtr(wxPyShapeEvtHandlerPtr):
def __init__(self,this):
self.this = this
self.thisown = 0
def _setSelf(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape__setSelf,(self,) + _args, _kwargs)
return val
def Destroy(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_Destroy,(self,) + _args, _kwargs)
return val
def GetBoundingBoxMax(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_GetBoundingBoxMax,(self,) + _args, _kwargs)
return val
def GetBoundingBoxMin(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_GetBoundingBoxMin,(self,) + _args, _kwargs)
return val
def GetPerimeterPoint(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_GetPerimeterPoint,(self,) + _args, _kwargs)
return val
def GetCanvas(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_GetCanvas,(self,) + _args, _kwargs)
if val: val = wxPyShapeCanvasPtr(val)
return val
def SetCanvas(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_SetCanvas,(self,) + _args, _kwargs)
return val
def AddToCanvas(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_AddToCanvas,(self,) + _args, _kwargs)
return val
def InsertInCanvas(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_InsertInCanvas,(self,) + _args, _kwargs)
return val
def RemoveFromCanvas(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_RemoveFromCanvas,(self,) + _args, _kwargs)
return val
def GetX(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_GetX,(self,) + _args, _kwargs)
return val
def GetY(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_GetY,(self,) + _args, _kwargs)
return val
def SetX(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_SetX,(self,) + _args, _kwargs)
return val
def SetY(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_SetY,(self,) + _args, _kwargs)
return val
def GetParent(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_GetParent,(self,) + _args, _kwargs)
if val: val = wxPyShapePtr(val)
return val
def SetParent(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_SetParent,(self,) + _args, _kwargs)
return val
def GetTopAncestor(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_GetTopAncestor,(self,) + _args, _kwargs)
if val: val = wxPyShapePtr(val)
return val
def GetChildren(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_GetChildren,(self,) + _args, _kwargs)
return val
def Unlink(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_Unlink,(self,) + _args, _kwargs)
return val
def SetDrawHandles(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_SetDrawHandles,(self,) + _args, _kwargs)
return val
def GetDrawHandles(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_GetDrawHandles,(self,) + _args, _kwargs)
return val
def MakeControlPoints(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_MakeControlPoints,(self,) + _args, _kwargs)
return val
def DeleteControlPoints(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_DeleteControlPoints,(self,) + _args, _kwargs)
return val
def ResetControlPoints(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_ResetControlPoints,(self,) + _args, _kwargs)
return val
def GetEventHandler(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_GetEventHandler,(self,) + _args, _kwargs)
if val: val = wxPyShapeEvtHandlerPtr(val)
return val
def SetEventHandler(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_SetEventHandler,(self,) + _args, _kwargs)
return val
def MakeMandatoryControlPoints(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_MakeMandatoryControlPoints,(self,) + _args, _kwargs)
return val
def ResetMandatoryControlPoints(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_ResetMandatoryControlPoints,(self,) + _args, _kwargs)
return val
def Recompute(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_Recompute,(self,) + _args, _kwargs)
return val
def CalculateSize(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_CalculateSize,(self,) + _args, _kwargs)
return val
def Select(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_Select,(self,) + _args, _kwargs)
return val
def SetHighlight(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_SetHighlight,(self,) + _args, _kwargs)
return val
def IsHighlighted(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_IsHighlighted,(self,) + _args, _kwargs)
return val
def Selected(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_Selected,(self,) + _args, _kwargs)
return val
def AncestorSelected(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_AncestorSelected,(self,) + _args, _kwargs)
return val
def SetSensitivityFilter(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_SetSensitivityFilter,(self,) + _args, _kwargs)
return val
def GetSensitivityFilter(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_GetSensitivityFilter,(self,) + _args, _kwargs)
return val
def SetDraggable(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_SetDraggable,(self,) + _args, _kwargs)
return val
def SetFixedSize(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_SetFixedSize,(self,) + _args, _kwargs)
return val
def GetFixedSize(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_GetFixedSize,(self,) + _args, _kwargs)
return val
def GetFixedWidth(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_GetFixedWidth,(self,) + _args, _kwargs)
return val
def GetFixedHeight(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_GetFixedHeight,(self,) + _args, _kwargs)
return val
def SetSpaceAttachments(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_SetSpaceAttachments,(self,) + _args, _kwargs)
return val
def GetSpaceAttachments(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_GetSpaceAttachments,(self,) + _args, _kwargs)
return val
def SetShadowMode(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_SetShadowMode,(self,) + _args, _kwargs)
return val
def GetShadowMode(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_GetShadowMode,(self,) + _args, _kwargs)
return val
def HitTest(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_HitTest,(self,) + _args, _kwargs)
return val
def SetCentreResize(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_SetCentreResize,(self,) + _args, _kwargs)
return val
def GetCentreResize(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_GetCentreResize,(self,) + _args, _kwargs)
return val
def SetMaintainAspectRatio(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_SetMaintainAspectRatio,(self,) + _args, _kwargs)
return val
def GetMaintainAspectRatio(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_GetMaintainAspectRatio,(self,) + _args, _kwargs)
return val
def GetLines(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_GetLines,(self,) + _args, _kwargs)
return val
def SetDisableLabel(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_SetDisableLabel,(self,) + _args, _kwargs)
return val
def GetDisableLabel(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_GetDisableLabel,(self,) + _args, _kwargs)
return val
def SetAttachmentMode(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_SetAttachmentMode,(self,) + _args, _kwargs)
return val
def GetAttachmentMode(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_GetAttachmentMode,(self,) + _args, _kwargs)
return val
def SetId(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_SetId,(self,) + _args, _kwargs)
return val
def GetId(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_GetId,(self,) + _args, _kwargs)
return val
def SetPen(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_SetPen,(self,) + _args, _kwargs)
return val
def SetBrush(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_SetBrush,(self,) + _args, _kwargs)
return val
def SetClientData(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_SetClientData,(self,) + _args, _kwargs)
return val
def GetClientData(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_GetClientData,(self,) + _args, _kwargs)
return val
def Show(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_Show,(self,) + _args, _kwargs)
return val
def IsShown(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_IsShown,(self,) + _args, _kwargs)
return val
def Move(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_Move,(self,) + _args, _kwargs)
return val
def Erase(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_Erase,(self,) + _args, _kwargs)
return val
def EraseContents(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_EraseContents,(self,) + _args, _kwargs)
return val
def Draw(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_Draw,(self,) + _args, _kwargs)
return val
def Flash(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_Flash,(self,) + _args, _kwargs)
return val
def MoveLinks(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_MoveLinks,(self,) + _args, _kwargs)
return val
def DrawContents(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_DrawContents,(self,) + _args, _kwargs)
return val
def SetSize(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_SetSize,(self,) + _args, _kwargs)
return val
def SetAttachmentSize(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_SetAttachmentSize,(self,) + _args, _kwargs)
return val
def Attach(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_Attach,(self,) + _args, _kwargs)
return val
def Detach(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_Detach,(self,) + _args, _kwargs)
return val
def Constrain(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_Constrain,(self,) + _args, _kwargs)
return val
def AddLine(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_AddLine,(self,) + _args, _kwargs)
return val
def GetLinePosition(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_GetLinePosition,(self,) + _args, _kwargs)
return val
def AddText(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_AddText,(self,) + _args, _kwargs)
return val
def GetPen(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_GetPen,(self,) + _args, _kwargs)
if val: val = wxPenPtr(val)
return val
def GetBrush(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_GetBrush,(self,) + _args, _kwargs)
if val: val = wxBrushPtr(val)
return val
def SetDefaultRegionSize(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_SetDefaultRegionSize,(self,) + _args, _kwargs)
return val
def FormatText(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_FormatText,(self,) + _args, _kwargs)
return val
def SetFormatMode(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_SetFormatMode,(self,) + _args, _kwargs)
return val
def GetFormatMode(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_GetFormatMode,(self,) + _args, _kwargs)
return val
def SetFont(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_SetFont,(self,) + _args, _kwargs)
return val
def GetFont(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_GetFont,(self,) + _args, _kwargs)
if val: val = wxFontPtr(val)
return val
def SetTextColour(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_SetTextColour,(self,) + _args, _kwargs)
return val
def GetTextColour(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_GetTextColour,(self,) + _args, _kwargs)
return val
def GetNumberOfTextRegions(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_GetNumberOfTextRegions,(self,) + _args, _kwargs)
return val
def SetRegionName(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_SetRegionName,(self,) + _args, _kwargs)
return val
def GetRegionName(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_GetRegionName,(self,) + _args, _kwargs)
return val
def GetRegionId(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_GetRegionId,(self,) + _args, _kwargs)
return val
def NameRegions(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_NameRegions,(self,) + _args, _kwargs)
return val
def GetRegions(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_GetRegions,(self,) + _args, _kwargs)
return val
def AddRegion(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_AddRegion,(self,) + _args, _kwargs)
return val
def ClearRegions(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_ClearRegions,(self,) + _args, _kwargs)
return val
def AssignNewIds(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_AssignNewIds,(self,) + _args, _kwargs)
return val
def FindRegion(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_FindRegion,(self,) + _args, _kwargs)
return val
def FindRegionNames(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_FindRegionNames,(self,) + _args, _kwargs)
return val
def ClearText(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_ClearText,(self,) + _args, _kwargs)
return val
def RemoveLine(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_RemoveLine,(self,) + _args, _kwargs)
return val
def GetAttachmentPosition(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_GetAttachmentPosition,(self,) + _args, _kwargs)
return val
def GetNumberOfAttachments(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_GetNumberOfAttachments,(self,) + _args, _kwargs)
return val
def AttachmentIsValid(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_AttachmentIsValid,(self,) + _args, _kwargs)
return val
def GetAttachmentPositionEdge(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_GetAttachmentPositionEdge,(self,) + _args, _kwargs)
return val
def CalcSimpleAttachment(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_CalcSimpleAttachment,(self,) + _args, _kwargs)
if val: val = wxRealPointPtr(val) ; val.thisown = 1
return val
def AttachmentSortTest(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_AttachmentSortTest,(self,) + _args, _kwargs)
return val
def EraseLinks(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_EraseLinks,(self,) + _args, _kwargs)
return val
def DrawLinks(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_DrawLinks,(self,) + _args, _kwargs)
return val
def MoveLineToNewAttachment(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_MoveLineToNewAttachment,(self,) + _args, _kwargs)
return val
def ApplyAttachmentOrdering(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_ApplyAttachmentOrdering,(self,) + _args, _kwargs)
return val
def GetBranchingAttachmentRoot(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_GetBranchingAttachmentRoot,(self,) + _args, _kwargs)
if val: val = wxRealPointPtr(val) ; val.thisown = 1
return val
def GetBranchingAttachmentInfo(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_GetBranchingAttachmentInfo,(self,) + _args, _kwargs)
return val
def GetBranchingAttachmentPoint(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_GetBranchingAttachmentPoint,(self,) + _args, _kwargs)
return val
def GetAttachmentLineCount(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_GetAttachmentLineCount,(self,) + _args, _kwargs)
return val
def SetBranchNeckLength(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_SetBranchNeckLength,(self,) + _args, _kwargs)
return val
def GetBranchNeckLength(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_GetBranchNeckLength,(self,) + _args, _kwargs)
return val
def SetBranchStemLength(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_SetBranchStemLength,(self,) + _args, _kwargs)
return val
def GetBranchStemLength(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_GetBranchStemLength,(self,) + _args, _kwargs)
return val
def SetBranchSpacing(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_SetBranchSpacing,(self,) + _args, _kwargs)
return val
def GetBranchSpacing(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_GetBranchSpacing,(self,) + _args, _kwargs)
return val
def SetBranchStyle(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_SetBranchStyle,(self,) + _args, _kwargs)
return val
def GetBranchStyle(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_GetBranchStyle,(self,) + _args, _kwargs)
return val
def PhysicalToLogicalAttachment(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_PhysicalToLogicalAttachment,(self,) + _args, _kwargs)
return val
def LogicalToPhysicalAttachment(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_LogicalToPhysicalAttachment,(self,) + _args, _kwargs)
return val
def Draggable(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_Draggable,(self,) + _args, _kwargs)
return val
def HasDescendant(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_HasDescendant,(self,) + _args, _kwargs)
return val
def CreateNewCopy(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_CreateNewCopy,(self,) + _args, _kwargs)
if val: val = wxPyShapePtr(val)
return val
def Copy(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_Copy,(self,) + _args, _kwargs)
return val
def CopyWithHandler(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_CopyWithHandler,(self,) + _args, _kwargs)
return val
def Rotate(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_Rotate,(self,) + _args, _kwargs)
return val
def GetRotation(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_GetRotation,(self,) + _args, _kwargs)
return val
def ClearAttachments(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_ClearAttachments,(self,) + _args, _kwargs)
return val
def Recentre(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_Recentre,(self,) + _args, _kwargs)
return val
def ClearPointList(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_ClearPointList,(self,) + _args, _kwargs)
return val
def base_OnDelete(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_base_OnDelete,(self,) + _args, _kwargs)
return val
def base_OnDraw(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_base_OnDraw,(self,) + _args, _kwargs)
return val
def base_OnDrawContents(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_base_OnDrawContents,(self,) + _args, _kwargs)
return val
def base_OnDrawBranches(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_base_OnDrawBranches,(self,) + _args, _kwargs)
return val
def base_OnMoveLinks(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_base_OnMoveLinks,(self,) + _args, _kwargs)
return val
def base_OnErase(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_base_OnErase,(self,) + _args, _kwargs)
return val
def base_OnEraseContents(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_base_OnEraseContents,(self,) + _args, _kwargs)
return val
def base_OnHighlight(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_base_OnHighlight,(self,) + _args, _kwargs)
return val
def base_OnLeftClick(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_base_OnLeftClick,(self,) + _args, _kwargs)
return val
def base_OnLeftDoubleClick(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_base_OnLeftDoubleClick,(self,) + _args, _kwargs)
return val
def base_OnRightClick(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_base_OnRightClick,(self,) + _args, _kwargs)
return val
def base_OnSize(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_base_OnSize,(self,) + _args, _kwargs)
return val
def base_OnMovePre(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_base_OnMovePre,(self,) + _args, _kwargs)
return val
def base_OnMovePost(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_base_OnMovePost,(self,) + _args, _kwargs)
return val
def base_OnDragLeft(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_base_OnDragLeft,(self,) + _args, _kwargs)
return val
def base_OnBeginDragLeft(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_base_OnBeginDragLeft,(self,) + _args, _kwargs)
return val
def base_OnEndDragLeft(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_base_OnEndDragLeft,(self,) + _args, _kwargs)
return val
def base_OnDragRight(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_base_OnDragRight,(self,) + _args, _kwargs)
return val
def base_OnBeginDragRight(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_base_OnBeginDragRight,(self,) + _args, _kwargs)
return val
def base_OnEndDragRight(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_base_OnEndDragRight,(self,) + _args, _kwargs)
return val
def base_OnDrawOutline(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_base_OnDrawOutline,(self,) + _args, _kwargs)
return val
def base_OnDrawControlPoints(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_base_OnDrawControlPoints,(self,) + _args, _kwargs)
return val
def base_OnEraseControlPoints(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_base_OnEraseControlPoints,(self,) + _args, _kwargs)
return val
def base_OnMoveLink(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_base_OnMoveLink,(self,) + _args, _kwargs)
return val
def base_OnSizingDragLeft(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_base_OnSizingDragLeft,(self,) + _args, _kwargs)
return val
def base_OnSizingBeginDragLeft(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_base_OnSizingBeginDragLeft,(self,) + _args, _kwargs)
return val
def base_OnSizingEndDragLeft(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_base_OnSizingEndDragLeft,(self,) + _args, _kwargs)
return val
def base_OnBeginSize(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_base_OnBeginSize,(self,) + _args, _kwargs)
return val
def base_OnEndSize(self, *_args, **_kwargs):
val = apply(oglbasicc.wxPyShape_base_OnEndSize,(self,) + _args, _kwargs)
return val
def __repr__(self):
return "<C wxPyShape instance at %s>" % (self.this,)
class wxPyShape(wxPyShapePtr):
def __init__(self,this):
self.this = this
#-------------- FUNCTION WRAPPERS ------------------
#-------------- VARIABLE WRAPPERS ------------------

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,157 @@
/////////////////////////////////////////////////////////////////////////////
// Name: oglcanvas.i
// Purpose: SWIG definitions for the wxWindows Object Graphics Library
//
// Author: Robin Dunn
//
// Created: 7-Sept-1999
// RCS-ID: $Id$
// Copyright: (c) 1998 by Total Control Software
// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
%module oglcanvas
%{
#include "helpers.h"
#include "oglhelpers.h"
%}
//---------------------------------------------------------------------------
%include typemaps.i
%include my_typemaps.i
%extern wx.i
%import windows.i
%extern _defs.i
%extern misc.i
%extern gdi.i
%include _ogldefs.i
%extern oglbasic.i
%pragma(python) code = "import wx"
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
class wxDiagram {
public:
wxDiagram();
~wxDiagram();
void AddShape(wxPyShape*shape, wxPyShape *addAfter = NULL);
void Clear(wxDC& dc);
void DeleteAllShapes();
void DrawOutline(wxDC& dc, double x1, double y1, double x2, double y2);
wxPyShape* FindShape(long id);
wxPyShapeCanvas* GetCanvas();
int GetCount();
double GetGridSpacing();
int GetMouseTolerance();
// wxList* GetShapeList();
%addmethods {
PyObject* GetShapeList() {
wxList* list = self->GetShapeList();
return wxPy_ConvertList(list, "wxPyShape");
}
}
bool GetQuickEditMode();
bool GetSnapToGrid();
void InsertShape(wxPyShape *shape);
bool LoadFile(const wxString& filename);
// **** Have to deal with wxExpr and wxExprDatabase first...
//void OnDatabaseLoad(wxExprDatabase& database);
//void OnDatabaseSave(wxExprDatabase& database);
//bool OnHeaderLoad(wxExprDatabase& database, wxExpr& expr);
//bool OnHeaderSave(wxExprDatabase& database, wxExpr& expr);
//bool OnShapeLoad(wxExprDatabase& database, wxPyShape& shape, wxExpr& expr);
//bool OnShapeSave(wxExprDatabase& database, wxPyShape& shape, wxExpr& expr);
void ReadContainerGeometry(wxExprDatabase& database);
void ReadLines(wxExprDatabase& database);
void ReadNodes(wxExprDatabase& database);
void RecentreAll(wxDC& dc);
void Redraw(wxDC& dc);
void RemoveAllShapes();
void RemoveShape(wxPyShape* shape);
bool SaveFile(const wxString& filename);
void SetCanvas(wxPyShapeCanvas* canvas);
void SetGridSpacing(double spacing);
void SetMouseTolerance(int tolerance);
void SetQuickEditMode(bool mode);
void SetSnapToGrid(bool snap);
void ShowAll(bool show);
void Snap(double *OUTPUT, double *OUTPUT);
};
//---------------------------------------------------------------------------
%{
IMP_PYCALLBACK__2DBLINT(wxPyShapeCanvas, wxShapeCanvas, OnBeginDragLeft);
IMP_PYCALLBACK__2DBLINT(wxPyShapeCanvas, wxShapeCanvas, OnBeginDragRight);
IMP_PYCALLBACK__2DBLINT(wxPyShapeCanvas, wxShapeCanvas, OnEndDragLeft);
IMP_PYCALLBACK__2DBLINT(wxPyShapeCanvas, wxShapeCanvas, OnEndDragRight);
IMP_PYCALLBACK__BOOL2DBLINT(wxPyShapeCanvas, wxShapeCanvas, OnDragLeft);
IMP_PYCALLBACK__BOOL2DBLINT(wxPyShapeCanvas, wxShapeCanvas, OnDragRight);
IMP_PYCALLBACK__2DBLINT(wxPyShapeCanvas, wxShapeCanvas, OnLeftClick);
IMP_PYCALLBACK__2DBLINT(wxPyShapeCanvas, wxShapeCanvas, OnRightClick);
%}
class wxPyShapeCanvas : public wxScrolledWindow {
public:
wxPyShapeCanvas(wxWindow* parent = NULL, wxWindowID id = -1,
const wxPoint& pos = wxPyDefaultPosition,
const wxSize& size = wxPyDefaultSize,
long style = wxBORDER);
void _setSelf(PyObject* self, PyObject* _class);
%pragma(python) addtomethod = "__init__:self._setSelf(self, wxPyShapeCanvas)"
%pragma(python) addtomethod = "__init__:#wx._StdWindowCallbacks(self)"
%pragma(python) addtomethod = "__init__:#wx._StdOnScrollCallbacks(self)"
void AddShape(wxPyShape *shape, wxPyShape *addAfter = NULL);
// **** Need a typemap for wxClassInfo, or implement wxObject, etc.....
wxPyShape* FindShape(double x1, double y, int *OUTPUT,
wxClassInfo *info = NULL, wxPyShape* notImage = NULL);
wxPyShape * FindFirstSensitiveShape(double x1, double y, int *OUTPUT, int op);
wxDiagram* GetDiagram();
bool GetQuickEditMode();
void InsertShape(wxPyShape* shape);
void base_OnBeginDragLeft(double x, double y, int keys = 0);
void base_OnBeginDragRight(double x, double y, int keys = 0);
void base_OnEndDragLeft(double x, double y, int keys = 0);
void base_OnEndDragRight(double x, double y, int keys = 0);
void base_OnDragLeft(bool draw, double x, double y, int keys = 0);
void base_OnDragRight(bool draw, double x, double y, int keys = 0);
void base_OnLeftClick(double x, double y, int keys = 0);
void base_OnRightClick(double x, double y, int keys = 0);
void Redraw(wxDC& dc);
void RemoveShape(wxPyShape *shape);
void SetDiagram(wxDiagram *diagram);
void Snap(double *OUTPUT, double *OUTPUT);
};
//---------------------------------------------------------------------------

View File

@@ -0,0 +1,232 @@
# This file was created automatically by SWIG.
import oglcanvasc
from misc import *
from misc2 import *
from windows import *
from gdi import *
from clip_dnd import *
from events import *
from streams import *
from mdi import *
from frames import *
from stattool import *
from controls import *
from controls2 import *
from windows2 import *
from cmndlgs import *
from windows3 import *
from image import *
from printfw import *
from sizers import *
from filesys import *
from utils import *
import wx
class wxDiagramPtr :
def __init__(self,this):
self.this = this
self.thisown = 0
def __del__(self,oglcanvasc=oglcanvasc):
if self.thisown == 1 :
oglcanvasc.delete_wxDiagram(self)
def AddShape(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxDiagram_AddShape,(self,) + _args, _kwargs)
return val
def Clear(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxDiagram_Clear,(self,) + _args, _kwargs)
return val
def DeleteAllShapes(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxDiagram_DeleteAllShapes,(self,) + _args, _kwargs)
return val
def DrawOutline(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxDiagram_DrawOutline,(self,) + _args, _kwargs)
return val
def FindShape(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxDiagram_FindShape,(self,) + _args, _kwargs)
if val: val = wxPyShapePtr(val)
return val
def GetCanvas(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxDiagram_GetCanvas,(self,) + _args, _kwargs)
if val: val = wxPyShapeCanvasPtr(val)
return val
def GetCount(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxDiagram_GetCount,(self,) + _args, _kwargs)
return val
def GetGridSpacing(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxDiagram_GetGridSpacing,(self,) + _args, _kwargs)
return val
def GetMouseTolerance(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxDiagram_GetMouseTolerance,(self,) + _args, _kwargs)
return val
def GetShapeList(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxDiagram_GetShapeList,(self,) + _args, _kwargs)
return val
def GetQuickEditMode(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxDiagram_GetQuickEditMode,(self,) + _args, _kwargs)
return val
def GetSnapToGrid(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxDiagram_GetSnapToGrid,(self,) + _args, _kwargs)
return val
def InsertShape(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxDiagram_InsertShape,(self,) + _args, _kwargs)
return val
def LoadFile(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxDiagram_LoadFile,(self,) + _args, _kwargs)
return val
def ReadContainerGeometry(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxDiagram_ReadContainerGeometry,(self,) + _args, _kwargs)
return val
def ReadLines(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxDiagram_ReadLines,(self,) + _args, _kwargs)
return val
def ReadNodes(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxDiagram_ReadNodes,(self,) + _args, _kwargs)
return val
def RecentreAll(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxDiagram_RecentreAll,(self,) + _args, _kwargs)
return val
def Redraw(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxDiagram_Redraw,(self,) + _args, _kwargs)
return val
def RemoveAllShapes(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxDiagram_RemoveAllShapes,(self,) + _args, _kwargs)
return val
def RemoveShape(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxDiagram_RemoveShape,(self,) + _args, _kwargs)
return val
def SaveFile(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxDiagram_SaveFile,(self,) + _args, _kwargs)
return val
def SetCanvas(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxDiagram_SetCanvas,(self,) + _args, _kwargs)
return val
def SetGridSpacing(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxDiagram_SetGridSpacing,(self,) + _args, _kwargs)
return val
def SetMouseTolerance(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxDiagram_SetMouseTolerance,(self,) + _args, _kwargs)
return val
def SetQuickEditMode(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxDiagram_SetQuickEditMode,(self,) + _args, _kwargs)
return val
def SetSnapToGrid(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxDiagram_SetSnapToGrid,(self,) + _args, _kwargs)
return val
def ShowAll(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxDiagram_ShowAll,(self,) + _args, _kwargs)
return val
def Snap(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxDiagram_Snap,(self,) + _args, _kwargs)
return val
def __repr__(self):
return "<C wxDiagram instance at %s>" % (self.this,)
class wxDiagram(wxDiagramPtr):
def __init__(self,*_args,**_kwargs):
self.this = apply(oglcanvasc.new_wxDiagram,_args,_kwargs)
self.thisown = 1
class wxPyShapeCanvasPtr(wxScrolledWindowPtr):
def __init__(self,this):
self.this = this
self.thisown = 0
def _setSelf(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxPyShapeCanvas__setSelf,(self,) + _args, _kwargs)
return val
def AddShape(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxPyShapeCanvas_AddShape,(self,) + _args, _kwargs)
return val
def FindShape(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxPyShapeCanvas_FindShape,(self,) + _args, _kwargs)
return val
def FindFirstSensitiveShape(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxPyShapeCanvas_FindFirstSensitiveShape,(self,) + _args, _kwargs)
return val
def GetDiagram(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxPyShapeCanvas_GetDiagram,(self,) + _args, _kwargs)
if val: val = wxDiagramPtr(val)
return val
def GetQuickEditMode(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxPyShapeCanvas_GetQuickEditMode,(self,) + _args, _kwargs)
return val
def InsertShape(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxPyShapeCanvas_InsertShape,(self,) + _args, _kwargs)
return val
def base_OnBeginDragLeft(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxPyShapeCanvas_base_OnBeginDragLeft,(self,) + _args, _kwargs)
return val
def base_OnBeginDragRight(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxPyShapeCanvas_base_OnBeginDragRight,(self,) + _args, _kwargs)
return val
def base_OnEndDragLeft(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxPyShapeCanvas_base_OnEndDragLeft,(self,) + _args, _kwargs)
return val
def base_OnEndDragRight(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxPyShapeCanvas_base_OnEndDragRight,(self,) + _args, _kwargs)
return val
def base_OnDragLeft(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxPyShapeCanvas_base_OnDragLeft,(self,) + _args, _kwargs)
return val
def base_OnDragRight(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxPyShapeCanvas_base_OnDragRight,(self,) + _args, _kwargs)
return val
def base_OnLeftClick(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxPyShapeCanvas_base_OnLeftClick,(self,) + _args, _kwargs)
return val
def base_OnRightClick(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxPyShapeCanvas_base_OnRightClick,(self,) + _args, _kwargs)
return val
def Redraw(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxPyShapeCanvas_Redraw,(self,) + _args, _kwargs)
return val
def RemoveShape(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxPyShapeCanvas_RemoveShape,(self,) + _args, _kwargs)
return val
def SetDiagram(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxPyShapeCanvas_SetDiagram,(self,) + _args, _kwargs)
return val
def Snap(self, *_args, **_kwargs):
val = apply(oglcanvasc.wxPyShapeCanvas_Snap,(self,) + _args, _kwargs)
return val
def __repr__(self):
return "<C wxPyShapeCanvas instance at %s>" % (self.this,)
class wxPyShapeCanvas(wxPyShapeCanvasPtr):
def __init__(self,*_args,**_kwargs):
self.this = apply(oglcanvasc.new_wxPyShapeCanvas,_args,_kwargs)
self.thisown = 1
self._setSelf(self, wxPyShapeCanvas)
#wx._StdWindowCallbacks(self)
#wx._StdOnScrollCallbacks(self)
#-------------- FUNCTION WRAPPERS ------------------
#-------------- VARIABLE WRAPPERS ------------------

View File

@@ -0,0 +1,103 @@
/////////////////////////////////////////////////////////////////////////////
// Name: oglhelpers.cpp
// Purpose: Some Helper functions to help in data conversions in OGL
//
// Author: Robin Dunn
//
// Created: 3-Sept-1999
// RCS-ID: $Id$
// Copyright: (c) 1998 by Total Control Software
// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
#include <Python.h>
#include "helpers.h"
//---------------------------------------------------------------------------
// This one will work for any class for the VERY generic cases, but beyond that
// the helper needs to know more about the type.
wxList* wxPy_wxListHelper(PyObject* pyList, char* className) {
bool doSave = wxPyRestoreThread();
if (!PyList_Check(pyList)) {
PyErr_SetString(PyExc_TypeError, "Expected a list object.");
wxPySaveThread(doSave);
return NULL;
}
int count = PyList_Size(pyList);
wxList* list = new wxList;
if (! list) {
PyErr_SetString(PyExc_MemoryError, "Unable to allocate wxList object");
wxPySaveThread(doSave);
return NULL;
}
for (int x=0; x<count; x++) {
PyObject* pyo = PyList_GetItem(pyList, x);
wxObject* wxo = NULL;
if (SWIG_GetPtrObj(pyo, (void **)&wxo, className)) {
char errmsg[1024];
sprintf(errmsg, "Type error, expected list of %s objects", className);
PyErr_SetString(PyExc_TypeError, errmsg);
wxPySaveThread(doSave);
return NULL;
}
list->Append(wxo);
}
wxPySaveThread(doSave);
return list;
}
//---------------------------------------------------------------------------
wxList* wxPy_wxRealPoint_ListHelper(PyObject* pyList) {
bool doSave = wxPyRestoreThread();
if (!PyList_Check(pyList)) {
PyErr_SetString(PyExc_TypeError, "Expected a list object.");
wxPySaveThread(doSave);
return NULL;
}
int count = PyList_Size(pyList);
wxList* list = new wxList;
if (! list) {
PyErr_SetString(PyExc_MemoryError, "Unable to allocate wxList object");
wxPySaveThread(doSave);
return NULL;
}
for (int x=0; x<count; x++) {
PyObject* pyo = PyList_GetItem(pyList, x);
if (PyTuple_Check(pyo)) {
PyObject* o1 = PyNumber_Float(PyTuple_GetItem(pyo, 0));
PyObject* o2 = PyNumber_Float(PyTuple_GetItem(pyo, 1));
double val1 = (o1 ? PyFloat_AsDouble(o1) : 0.0);
double val2 = (o2 ? PyFloat_AsDouble(o2) : 0.0);
list->Append((wxObject*) new wxRealPoint(val1, val2));
} else {
wxRealPoint* wxo = NULL;
if (SWIG_GetPtrObj(pyo, (void **)&wxo, "_wxRealPoint_p")) {
PyErr_SetString(PyExc_TypeError, "Type error, expected list of wxRealPoint objects or 2-tuples");
wxPySaveThread(doSave);
return NULL;
}
list->Append((wxObject*) new wxRealPoint(*wxo));
}
}
wxPySaveThread(doSave);
return list;
}
//---------------------------------------------------------------------------

View File

@@ -0,0 +1,262 @@
/////////////////////////////////////////////////////////////////////////////
// Name: oglhelpers.h
// Purpose: Some Helper functions to help in data conversions in OGL
//
// Author: Robin Dunn
//
// Created: 9-Sept-1999
// RCS-ID: $Id$
// Copyright: (c) 1998 by Total Control Software
// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
#ifndef __wxp_ogl_helpers__
#define __wxp_ogl_helpers__
#include <wx/ogl/ogl.h>
#include <wx/ogl/basicp.h>
#include <wx/ogl/constrnt.h>
#include <wx/ogl/bmpshape.h>
#include <wx/ogl/drawn.h>
//---------------------------------------------------------------------------
// Define a macro that will be used in the class definintions below
#define WXSHAPE_DEC_CALLBACKS() \
DEC_PYCALLBACK__ (OnDelete); \
DEC_PYCALLBACK__DC (OnDraw); \
DEC_PYCALLBACK__DC (OnDrawContents); \
DEC_PYCALLBACK__DCBOOL (OnDrawBranches); \
DEC_PYCALLBACK__DC (OnMoveLinks); \
DEC_PYCALLBACK__DC (OnErase); \
DEC_PYCALLBACK__DC (OnEraseContents); \
DEC_PYCALLBACK__DC (OnHighlight); \
DEC_PYCALLBACK__2DBL2INT (OnLeftClick); \
DEC_PYCALLBACK__2DBL2INT (OnLeftDoubleClick); \
DEC_PYCALLBACK__2DBL2INT (OnRightClick); \
DEC_PYCALLBACK__2DBL (OnSize); \
DEC_PYCALLBACK_BOOL_DC4DBLBOOL (OnMovePre); \
DEC_PYCALLBACK__DC4DBLBOOL (OnMovePost); \
DEC_PYCALLBACK__BOOL2DBL2INT (OnDragLeft); \
DEC_PYCALLBACK__2DBL2INT (OnBeginDragLeft); \
DEC_PYCALLBACK__2DBL2INT (OnEndDragLeft); \
DEC_PYCALLBACK__BOOL2DBL2INT (OnDragRight); \
DEC_PYCALLBACK__2DBL2INT (OnBeginDragRight); \
DEC_PYCALLBACK__2DBL2INT (OnEndDragRight); \
DEC_PYCALLBACK__DC4DBL (OnDrawOutline); \
DEC_PYCALLBACK__DC (OnDrawControlPoints); \
DEC_PYCALLBACK__DC (OnEraseControlPoints); \
DEC_PYCALLBACK__DCBOOL (OnMoveLink); \
DEC_PYCALLBACK__WXCPBOOL2DBL2INT(OnSizingDragLeft); \
DEC_PYCALLBACK__WXCP2DBL2INT (OnSizingBeginDragLeft);\
DEC_PYCALLBACK__WXCP2DBL2INT (OnSizingEndDragLeft); \
DEC_PYCALLBACK__2DBL (OnBeginSize); \
DEC_PYCALLBACK__2DBL (OnEndSize); \
\
PYPRIVATE;
#define WXSHAPE_IMP_CALLBACKS(CLASS, PARENT) \
IMP_PYCALLBACK__ (CLASS, PARENT, OnDelete); \
IMP_PYCALLBACK__DC (CLASS, PARENT, OnDraw); \
IMP_PYCALLBACK__DC (CLASS, PARENT, OnDrawContents); \
IMP_PYCALLBACK__DCBOOL (CLASS, PARENT, OnDrawBranches); \
IMP_PYCALLBACK__DC (CLASS, PARENT, OnMoveLinks); \
IMP_PYCALLBACK__DC (CLASS, PARENT, OnErase); \
IMP_PYCALLBACK__DC (CLASS, PARENT, OnEraseContents); \
IMP_PYCALLBACK__DC (CLASS, PARENT, OnHighlight); \
IMP_PYCALLBACK__2DBL2INT (CLASS, PARENT, OnLeftClick); \
IMP_PYCALLBACK__2DBL2INT (CLASS, PARENT, OnLeftDoubleClick); \
IMP_PYCALLBACK__2DBL2INT (CLASS, PARENT, OnRightClick); \
IMP_PYCALLBACK__2DBL (CLASS, PARENT, OnSize); \
IMP_PYCALLBACK_BOOL_DC4DBLBOOL (CLASS, PARENT, OnMovePre); \
IMP_PYCALLBACK__DC4DBLBOOL (CLASS, PARENT, OnMovePost); \
IMP_PYCALLBACK__BOOL2DBL2INT (CLASS, PARENT, OnDragLeft); \
IMP_PYCALLBACK__2DBL2INT (CLASS, PARENT, OnBeginDragLeft); \
IMP_PYCALLBACK__2DBL2INT (CLASS, PARENT, OnEndDragLeft); \
IMP_PYCALLBACK__BOOL2DBL2INT (CLASS, PARENT, OnDragRight); \
IMP_PYCALLBACK__2DBL2INT (CLASS, PARENT, OnBeginDragRight); \
IMP_PYCALLBACK__2DBL2INT (CLASS, PARENT, OnEndDragRight); \
IMP_PYCALLBACK__DC4DBL (CLASS, PARENT, OnDrawOutline); \
IMP_PYCALLBACK__DC (CLASS, PARENT, OnDrawControlPoints); \
IMP_PYCALLBACK__DC (CLASS, PARENT, OnEraseControlPoints); \
IMP_PYCALLBACK__DCBOOL (CLASS, PARENT, OnMoveLink); \
IMP_PYCALLBACK__WXCPBOOL2DBL2INT(CLASS, PARENT, OnSizingDragLeft); \
IMP_PYCALLBACK__WXCP2DBL2INT (CLASS, PARENT, OnSizingBeginDragLeft);\
IMP_PYCALLBACK__WXCP2DBL2INT (CLASS, PARENT, OnSizingEndDragLeft); \
IMP_PYCALLBACK__2DBL (CLASS, PARENT, OnBeginSize); \
IMP_PYCALLBACK__2DBL (CLASS, PARENT, OnEndSize); \
// This one may be difficult...
//PYCALLBACK__??????? (PARENT, OnChangeAttachment);
//---------------------------------------------------------------------------
// These are prototypes of some helper functions found in oglhelpers.cpp
wxList* wxPy_wxListHelper(PyObject* pyList, char* className);
wxList* wxPy_wxRealPoint_ListHelper(PyObject* pyList);
//---------------------------------------------------------------------------
// Classes that derive from the shapes and such, but which know how to turn
// virtual callbacks into Python callbacks.
class wxPyShapeCanvas : public wxShapeCanvas {
public:
wxPyShapeCanvas(wxWindow* parent = NULL, wxWindowID id = -1,
const wxPoint& pos = wxPyDefaultPosition,
const wxSize& size = wxPyDefaultSize,
long style = wxBORDER)
: wxShapeCanvas(parent, id, pos, size, style) {}
DEC_PYCALLBACK__2DBLINT(OnBeginDragLeft);
DEC_PYCALLBACK__2DBLINT(OnBeginDragRight);
DEC_PYCALLBACK__2DBLINT(OnEndDragLeft);
DEC_PYCALLBACK__2DBLINT(OnEndDragRight);
DEC_PYCALLBACK__BOOL2DBLINT(OnDragLeft);
DEC_PYCALLBACK__BOOL2DBLINT(OnDragRight);
DEC_PYCALLBACK__2DBLINT(OnLeftClick);
DEC_PYCALLBACK__2DBLINT(OnRightClick);
PYPRIVATE;
};
class wxPyShapeEvtHandler : public wxShapeEvtHandler {
public:
wxPyShapeEvtHandler(wxShapeEvtHandler *prev = NULL, wxShape *shape = NULL)
: wxShapeEvtHandler(prev, shape) {}
WXSHAPE_DEC_CALLBACKS();
};
class wxPyShape : public wxShape {
public:
wxPyShape(wxPyShapeCanvas *can = NULL)
: wxShape(can) {}
WXSHAPE_DEC_CALLBACKS();
};
class wxPyRectangleShape : public wxRectangleShape {
public:
wxPyRectangleShape(double width = 0.0, double height = 0.0)
: wxRectangleShape(width, height) {}
WXSHAPE_DEC_CALLBACKS();
};
class wxPyControlPoint : public wxControlPoint {
public:
wxPyControlPoint(wxPyShapeCanvas *the_canvas = NULL,
wxPyShape *object = NULL,
double size = 0.0, double the_xoffset = 0.0,
double the_yoffset = 0.0, int the_type = 0)
: wxControlPoint(the_canvas, object, size,
the_xoffset, the_yoffset, the_type) {}
WXSHAPE_DEC_CALLBACKS();
};
class wxPyBitmapShape : public wxBitmapShape {
public:
wxPyBitmapShape() : wxBitmapShape() {}
WXSHAPE_DEC_CALLBACKS();
};
class wxPyDrawnShape : public wxDrawnShape {
public:
wxPyDrawnShape() : wxDrawnShape() {}
WXSHAPE_DEC_CALLBACKS();
};
class wxPyCompositeShape : public wxCompositeShape {
public:
wxPyCompositeShape() : wxCompositeShape() {}
WXSHAPE_DEC_CALLBACKS();
};
class wxPyDividedShape : public wxDividedShape {
public:
wxPyDividedShape(double width = 0.0, double height = 0.0)
: wxDividedShape(width, height) {}
WXSHAPE_DEC_CALLBACKS();
};
class wxPyDivisionShape : public wxDivisionShape {
public:
wxPyDivisionShape() : wxDivisionShape() {}
WXSHAPE_DEC_CALLBACKS();
};
class wxPyEllipseShape : public wxEllipseShape {
public:
wxPyEllipseShape(double width = 0.0, double height = 0.0)
: wxEllipseShape(width, height) {}
WXSHAPE_DEC_CALLBACKS();
};
class wxPyCircleShape : public wxCircleShape {
public:
wxPyCircleShape(double width = 0.0)
: wxCircleShape(width) {}
WXSHAPE_DEC_CALLBACKS();
};
class wxPyLineShape : public wxLineShape {
public:
wxPyLineShape() : wxLineShape() {}
WXSHAPE_DEC_CALLBACKS();
};
class wxPyPolygonShape : public wxPolygonShape {
public:
wxPyPolygonShape() : wxPolygonShape() {}
WXSHAPE_DEC_CALLBACKS();
};
class wxPyTextShape : public wxTextShape {
public:
wxPyTextShape(double width = 0.0, double height = 0.0)
: wxTextShape(width, height) {}
WXSHAPE_DEC_CALLBACKS();
};
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,574 @@
/////////////////////////////////////////////////////////////////////////////
// Name: oglshapes.i
// Purpose: SWIG definitions for the wxWindows Object Graphics Library
//
// Author: Robin Dunn
//
// Created: 3-Sept-1999
// RCS-ID: $Id$
// Copyright: (c) 1998 by Total Control Software
// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
%module oglshapes
%{
#include "helpers.h"
#include "oglhelpers.h"
%}
//---------------------------------------------------------------------------
%include typemaps.i
%include my_typemaps.i
%extern wx.i
%import windows.i
%extern _defs.i
%extern misc.i
%extern gdi.i
%include _ogldefs.i
%import oglbasic.i
%pragma(python) code = "import wx"
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
class wxPseudoMetaFile {
public:
wxPseudoMetaFile();
~wxPseudoMetaFile();
void Draw(wxDC& dc, double xoffset, double yoffset);
void WriteAttributes(wxExpr *clause, int whichAngle);
void ReadAttributes(wxExpr *clause, int whichAngle);
void Clear();
void Copy(wxPseudoMetaFile& copy);
void Scale(double sx, double sy);
void ScaleTo(double w, double h);
void Translate(double x, double y);
void Rotate(double x, double y, double theta);
bool LoadFromMetaFile(char* filename, double *width, double *height);
void GetBounds(double *minX, double *minY, double *maxX, double *maxY);
void CalculateSize(wxDrawnShape* shape);
// **** fix these... is it even possible? these are lists of various GDI opperations (not the objects...)
// wxList& GetOutlineColours();
// wxList& GetFillColours();
// wxList& GetOps();
void SetRotateable(bool rot);
bool GetRotateable();
void SetSize(double w, double h);
void SetFillBrush(wxBrush* brush);
wxBrush* GetFillBrush();
void SetOutlinePen(wxPen* pen);
wxPen* GetOutlinePen();
void SetOutlineOp(int op);
int GetOutlineOp();
bool IsValid();
void DrawLine(const wxPoint& pt1, const wxPoint& pt2);
void DrawRectangle(const wxRect& rect);
void DrawRoundedRectangle(const wxRect& rect, double radius);
void DrawArc(const wxPoint& centrePt, const wxPoint& startPt, const wxPoint& endPt);
void DrawEllipticArc(const wxRect& rect, double startAngle, double endAngle);
void DrawEllipse(const wxRect& rect);
void DrawPoint(const wxPoint& pt);
void DrawText(const wxString& text, const wxPoint& pt);
void DrawLines(int PCOUNT, wxPoint* points);
void DrawPolygon(int PCOUNT, wxPoint* points, int flags = 0);
void DrawSpline(int PCOUNT, wxPoint* points);
void SetClippingRect(const wxRect& rect);
void DestroyClippingRect();
void SetPen(wxPen* pen, bool isOutline = FALSE);
void SetBrush(wxBrush* brush, bool isFill = FALSE);
void SetFont(wxFont* font);
void SetTextColour(const wxColour& colour);
void SetBackgroundColour(const wxColour& colour);
void SetBackgroundMode(int mode);
};
//---------------------------------------------------------------------------
%{
WXSHAPE_IMP_CALLBACKS(wxPyRectangleShape, wxRectangleShape);
%}
class wxPyRectangleShape : public wxPyShape {
public:
wxPyRectangleShape(double width = 0.0, double height = 0.0);
void _setSelf(PyObject* self, PyObject* _class);
%pragma(python) addtomethod = "__init__:self._setSelf(self, wxPyRectangleShape)"
void SetCornerRadius(double radius);
void base_OnDelete();
void base_OnDraw(wxDC& dc);
void base_OnDrawContents(wxDC& dc);
void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
void base_OnMoveLinks(wxDC& dc);
void base_OnErase(wxDC& dc);
void base_OnEraseContents(wxDC& dc);
void base_OnHighlight(wxDC& dc);
void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
void base_OnSize(double x, double y);
bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
void base_OnDrawControlPoints(wxDC& dc);
void base_OnEraseControlPoints(wxDC& dc);
void base_OnMoveLink(wxDC& dc, bool moveControlPoints = TRUE);
void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
void base_OnBeginSize(double w, double h);
void base_OnEndSize(double w, double h);
// void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
};
//---------------------------------------------------------------------------
%{
WXSHAPE_IMP_CALLBACKS(wxPyControlPoint, wxControlPoint);
%}
class wxPyControlPoint : public wxPyRectangleShape {
public:
wxPyControlPoint(wxPyShapeCanvas *the_canvas = NULL,
wxPyShape *object = NULL,
double size = 0.0, double the_xoffset = 0.0,
double the_yoffset = 0.0, int the_type = 0);
void _setSelf(PyObject* self, PyObject* _class);
%pragma(python) addtomethod = "__init__:self._setSelf(self, wxPyControlPoint)"
void SetCornerRadius(double radius);
void base_OnDelete();
void base_OnDraw(wxDC& dc);
void base_OnDrawContents(wxDC& dc);
void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
void base_OnMoveLinks(wxDC& dc);
void base_OnErase(wxDC& dc);
void base_OnEraseContents(wxDC& dc);
void base_OnHighlight(wxDC& dc);
void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
void base_OnSize(double x, double y);
bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
void base_OnDrawControlPoints(wxDC& dc);
void base_OnEraseControlPoints(wxDC& dc);
void base_OnMoveLink(wxDC& dc, bool moveControlPoints = TRUE);
void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
void base_OnBeginSize(double w, double h);
void base_OnEndSize(double w, double h);
// void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
};
//---------------------------------------------------------------------------
%{
WXSHAPE_IMP_CALLBACKS(wxPyBitmapShape, wxBitmapShape);
%}
class wxPyBitmapShape : public wxPyRectangleShape {
public:
wxPyBitmapShape();
void _setSelf(PyObject* self, PyObject* _class);
%pragma(python) addtomethod = "__init__:self._setSelf(self, wxPyBitmapShape)"
wxBitmap& GetBitmap();
wxString GetFilename();
void SetBitmap(const wxBitmap& bitmap);
void SetFilename(const wxString& filename);
void base_OnDelete();
void base_OnDraw(wxDC& dc);
void base_OnDrawContents(wxDC& dc);
void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
void base_OnMoveLinks(wxDC& dc);
void base_OnErase(wxDC& dc);
void base_OnEraseContents(wxDC& dc);
void base_OnHighlight(wxDC& dc);
void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
void base_OnSize(double x, double y);
bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
void base_OnDrawControlPoints(wxDC& dc);
void base_OnEraseControlPoints(wxDC& dc);
void base_OnMoveLink(wxDC& dc, bool moveControlPoints = TRUE);
void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
void base_OnBeginSize(double w, double h);
void base_OnEndSize(double w, double h);
// void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
};
//---------------------------------------------------------------------------
%{
WXSHAPE_IMP_CALLBACKS(wxPyDrawnShape, wxDrawnShape);
%}
class wxPyDrawnShape : public wxPyRectangleShape {
public:
wxPyDrawnShape();
void _setSelf(PyObject* self, PyObject* _class);
%pragma(python) addtomethod = "__init__:self._setSelf(self, wxPyDrawnShape)"
void CalculateSize();
void DestroyClippingRect();
void DrawArc(const wxPoint& centrePoint, const wxPoint& startPoint,
const wxPoint& endPoint);
void DrawAtAngle(int angle);
void DrawEllipticArc(const wxRect& rect, double startAngle, double endAngle);
void DrawLine(const wxPoint& point1, const wxPoint& point2);
void DrawLines(int PCOUNT, wxPoint* points);
void DrawPoint(const wxPoint& point);
void DrawPolygon(int PCOUNT, wxPoint* points, int flags = 0);
void DrawRectangle(const wxRect& rect);
void DrawRoundedRectangle(const wxRect& rect, double radius);
void DrawSpline(int PCOUNT, wxPoint* points);
void DrawText(const wxString& text, const wxPoint& point);
int GetAngle();
wxPseudoMetaFile& GetMetaFile();
double GetRotation();
bool LoadFromMetaFile(char * filename);
void Rotate(double x, double y, double theta);
void SetClippingRect(const wxRect& rect);
void SetDrawnBackgroundColour(const wxColour& colour);
void SetDrawnBackgroundMode(int mode);
void SetDrawnBrush(wxBrush* pen, bool isOutline = FALSE);
void SetDrawnFont(wxFont* font);
void SetDrawnPen(wxPen* pen, bool isOutline = FALSE);
void SetDrawnTextColour(const wxColour& colour);
void Scale(double sx, double sy);
void SetSaveToFile(bool save);
void Translate(double x, double y);
void base_OnDelete();
void base_OnDraw(wxDC& dc);
void base_OnDrawContents(wxDC& dc);
void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
void base_OnMoveLinks(wxDC& dc);
void base_OnErase(wxDC& dc);
void base_OnEraseContents(wxDC& dc);
void base_OnHighlight(wxDC& dc);
void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
void base_OnSize(double x, double y);
bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
void base_OnDrawControlPoints(wxDC& dc);
void base_OnEraseControlPoints(wxDC& dc);
void base_OnMoveLink(wxDC& dc, bool moveControlPoints = TRUE);
void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
void base_OnBeginSize(double w, double h);
void base_OnEndSize(double w, double h);
// void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
};
//---------------------------------------------------------------------------
class wxOGLConstraint {
public:
//wxOGLConstraint(int type, wxPyShape *constraining, wxList& constrained);
%addmethods {
wxOGLConstraint(int type, wxPyShape *constraining, PyObject* constrained) {
wxList* list = wxPy_wxListHelper(constrained, "_wxPyShape_p");
wxOGLConstraint* rv = new wxOGLConstraint(type, constraining, *list);
delete list;
return rv;
}
}
~wxOGLConstraint();
bool Evaluate();
void SetSpacing(double x, double y);
bool Equals(double a, double b);
};
//---------------------------------------------------------------------------
%{
WXSHAPE_IMP_CALLBACKS(wxPyCompositeShape, wxCompositeShape);
%}
class wxPyCompositeShape : public wxPyRectangleShape {
public:
wxPyCompositeShape();
void _setSelf(PyObject* self, PyObject* _class);
%pragma(python) addtomethod = "__init__:self._setSelf(self, wxPyCompositeShape)"
void AddChild(wxPyShape *child, wxPyShape *addAfter = NULL);
wxOGLConstraint * AddConstraint(wxOGLConstraint *constraint);
//wxOGLConstraint * AddConstraint(int type,
// wxPyShape *constraining,
// wxList& constrained);
%addmethods {
wxOGLConstraint * AddConstrainedShapes(int type, wxPyShape *constraining,
PyObject* constrained) {
wxList* list = wxPy_wxListHelper(constrained, "_wxPyShape_p");
wxOGLConstraint* rv = self->AddConstraint(type, constraining, *list);
delete list;
return rv;
}
}
%name(AddSimpleConstraint)wxOGLConstraint* AddConstraint(int type,
wxPyShape *constraining,
wxPyShape *constrained);
void CalculateSize();
bool ContainsDivision(wxPyDivisionShape *division);
void DeleteConstraint(wxOGLConstraint *constraint);
void DeleteConstraintsInvolvingChild(wxPyShape *child);
// **** Needs an output typemap
//wxOGLConstraint * FindConstraint(long id, wxPyCompositeShape **actualComposite);
wxPyShape * FindContainerImage();
// wxList& GetConstraints();
// wxList& GetDivisions();
%addmethods {
PyObject* GetConstraints() {
wxList& list = self->GetConstraints();
return wxPy_ConvertList(&list, "wxOGLConstraint");
}
PyObject* GetDivisions() {
wxList& list = self->GetDivisions();
return wxPy_ConvertList(&list, "wxPyDivisionShape");
}
}
void MakeContainer();
bool Recompute();
void RemoveChild(wxPyShape *child);
void base_OnDelete();
void base_OnDraw(wxDC& dc);
void base_OnDrawContents(wxDC& dc);
void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
void base_OnMoveLinks(wxDC& dc);
void base_OnErase(wxDC& dc);
void base_OnEraseContents(wxDC& dc);
void base_OnHighlight(wxDC& dc);
void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
void base_OnSize(double x, double y);
bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
void base_OnDrawControlPoints(wxDC& dc);
void base_OnEraseControlPoints(wxDC& dc);
void base_OnMoveLink(wxDC& dc, bool moveControlPoints = TRUE);
void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
void base_OnBeginSize(double w, double h);
void base_OnEndSize(double w, double h);
// void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
};
//---------------------------------------------------------------------------
%{
WXSHAPE_IMP_CALLBACKS(wxPyDividedShape, wxDividedShape);
%}
class wxPyDividedShape : public wxPyRectangleShape {
public:
wxPyDividedShape(double width = 0.0, double height = 0.0);
void _setSelf(PyObject* self, PyObject* _class);
%pragma(python) addtomethod = "__init__:self._setSelf(self, wxPyDividedShape)"
void EditRegions();
void SetRegionSizes();
void base_OnDelete();
void base_OnDraw(wxDC& dc);
void base_OnDrawContents(wxDC& dc);
void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
void base_OnMoveLinks(wxDC& dc);
void base_OnErase(wxDC& dc);
void base_OnEraseContents(wxDC& dc);
void base_OnHighlight(wxDC& dc);
void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
void base_OnSize(double x, double y);
bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
void base_OnDrawControlPoints(wxDC& dc);
void base_OnEraseControlPoints(wxDC& dc);
void base_OnMoveLink(wxDC& dc, bool moveControlPoints = TRUE);
void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
void base_OnBeginSize(double w, double h);
void base_OnEndSize(double w, double h);
// void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
};
//---------------------------------------------------------------------------
%{
WXSHAPE_IMP_CALLBACKS(wxPyDivisionShape, wxDivisionShape);
%}
class wxPyDivisionShape : public wxPyCompositeShape {
public:
wxPyDivisionShape();
void _setSelf(PyObject* self, PyObject* _class);
%pragma(python) addtomethod = "__init__:self._setSelf(self, wxPyDivisionShape)"
void AdjustBottom(double bottom, bool test);
void AdjustLeft(double left, bool test);
void AdjustRight(double right, bool test);
void AdjustTop(double top, bool test);
void Divide(int direction);
void EditEdge(int side);
wxPyDivisionShape * GetBottomSide();
int GetHandleSide();
wxPyDivisionShape * GetLeftSide();
wxString GetLeftSideColour();
wxPen * GetLeftSidePen();
wxPyDivisionShape * GetRightSide();
wxPyDivisionShape * GetTopSide();
wxPen * GetTopSidePen();
void ResizeAdjoining(int side, double newPos, bool test);
void PopupMenu(double x, double y);
void SetBottomSide(wxPyDivisionShape *shape);
void SetHandleSide(int side);
void SetLeftSide(wxPyDivisionShape *shape);
void SetLeftSideColour(const wxString& colour);
void SetLeftSidePen(wxPen *pen);
void SetRightSide(wxPyDivisionShape *shape);
void SetTopSide(wxPyDivisionShape *shape);
void SetTopSideColour(const wxString& colour);
void SetTopSidePen(wxPen *pen);
void base_OnDelete();
void base_OnDraw(wxDC& dc);
void base_OnDrawContents(wxDC& dc);
void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
void base_OnMoveLinks(wxDC& dc);
void base_OnErase(wxDC& dc);
void base_OnEraseContents(wxDC& dc);
void base_OnHighlight(wxDC& dc);
void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
void base_OnSize(double x, double y);
bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
void base_OnDrawControlPoints(wxDC& dc);
void base_OnEraseControlPoints(wxDC& dc);
void base_OnMoveLink(wxDC& dc, bool moveControlPoints = TRUE);
void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
void base_OnBeginSize(double w, double h);
void base_OnEndSize(double w, double h);
// void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
};
//---------------------------------------------------------------------------

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,369 @@
/////////////////////////////////////////////////////////////////////////////
// Name: oglshapes2.i
// Purpose: SWIG definitions for the wxWindows Object Graphics Library
//
// Author: Robin Dunn
//
// Created: 3-Sept-1999
// RCS-ID: $Id$
// Copyright: (c) 1998 by Total Control Software
// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
%module oglshapes2
%{
#include "helpers.h"
#include "oglhelpers.h"
%}
//---------------------------------------------------------------------------
%include typemaps.i
%include my_typemaps.i
%extern wx.i
%import windows.i
%extern _defs.i
%extern misc.i
%extern gdi.i
%include _ogldefs.i
%import oglbasic.i
%import oglshapes.i
%pragma(python) code = "import wx"
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
%{
WXSHAPE_IMP_CALLBACKS(wxPyEllipseShape, wxEllipseShape);
%}
class wxPyEllipseShape : public wxPyShape {
public:
wxPyEllipseShape(double width = 0.0, double height = 0.0);
void _setSelf(PyObject* self, PyObject* _class);
%pragma(python) addtomethod = "__init__:self._setSelf(self, wxPyEllipseShape)"
void base_OnDraw(wxDC& dc);
void base_OnDrawContents(wxDC& dc);
void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
void base_OnMoveLinks(wxDC& dc);
void base_OnErase(wxDC& dc);
void base_OnEraseContents(wxDC& dc);
void base_OnHighlight(wxDC& dc);
void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
void base_OnSize(double x, double y);
bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
void base_OnDrawControlPoints(wxDC& dc);
void base_OnEraseControlPoints(wxDC& dc);
void base_OnMoveLink(wxDC& dc, bool moveControlPoints = TRUE);
void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
void base_OnBeginSize(double w, double h);
void base_OnEndSize(double w, double h);
// void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
};
//---------------------------------------------------------------------------
%{
WXSHAPE_IMP_CALLBACKS(wxPyCircleShape, wxCircleShape);
%}
class wxPyCircleShape : public wxPyEllipseShape {
public:
wxPyCircleShape(double width = 0.0);
void _setSelf(PyObject* self, PyObject* _class);
%pragma(python) addtomethod = "__init__:self._setSelf(self, wxPyCircleShape)"
void base_OnDraw(wxDC& dc);
void base_OnDrawContents(wxDC& dc);
void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
void base_OnMoveLinks(wxDC& dc);
void base_OnErase(wxDC& dc);
void base_OnEraseContents(wxDC& dc);
void base_OnHighlight(wxDC& dc);
void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
void base_OnSize(double x, double y);
bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
void base_OnDrawControlPoints(wxDC& dc);
void base_OnEraseControlPoints(wxDC& dc);
void base_OnMoveLink(wxDC& dc, bool moveControlPoints = TRUE);
void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
void base_OnBeginSize(double w, double h);
void base_OnEndSize(double w, double h);
// void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
};
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
class wxArrowHead {
public:
wxArrowHead(int type = 0,
int end = 0,
double size = 0.0,
double dist = 0.0,
const char * name = "",
wxPseudoMetaFile *mf = NULL,
long arrowId = -1);
~wxArrowHead();
int _GetType();
int GetPosition();
void SetPosition(int pos);
double GetXOffset();
double GetYOffset();
double GetSpacing();
double GetSize();
wxString GetName();
void SetXOffset(double x);
void SetYOffset(double y);
wxPseudoMetaFile *GetMetaFile();
long GetId();
int GetArrowEnd();
double GetArrowSize();
void SetSize(double size);
void SetSpacing(double sp);
};
//---------------------------------------------------------------------------
%{
WXSHAPE_IMP_CALLBACKS(wxPyLineShape, wxLineShape);
%}
class wxPyLineShape : public wxPyShape {
public:
wxPyLineShape();
void _setSelf(PyObject* self, PyObject* _class);
%pragma(python) addtomethod = "__init__:self._setSelf(self, wxPyLineShape)"
void AddArrow(int type, int end = ARROW_POSITION_END,
double arrowSize = 10.0, double xOffset = 0.0,
char* name = "", wxPseudoMetaFile *mf = NULL,
long arrowId = -1);
//void AddArrowOrdered(wxArrowHead *arrow, wxList& referenceList, int end);
%addmethods {
void AddArrowOrdered(wxArrowHead *arrow, PyObject* referenceList, int end) {
wxList* list = wxPy_wxListHelper(referenceList, "_wxArrowHead_p");
self->AddArrowOrdered(arrow, *list, end);
delete list;
}
}
bool ClearArrow(const wxString& name);
void ClearArrowsAtPosition(int position = -1);
void DrawArrow(wxDC& dc, wxArrowHead *arrow, double xOffset, bool proportionalOffset);
%name(DeleteArrowHeadId)bool DeleteArrowHead(long arrowId);
bool DeleteArrowHead(int position, const wxString& name);
bool DeleteLineControlPoint();
void DrawArrows(wxDC& dc);
void DrawRegion(wxDC& dc, wxShapeRegion *region, double x, double y);
void EraseRegion(wxDC& dc, wxShapeRegion *region, double x, double y);
%name(FindArrowHeadId)wxArrowHead * FindArrowHead(long arrowId);
wxArrowHead * FindArrowHead(int position, const wxString& name);
void FindLineEndPoints(double *OUTPUT, double *OUTPUT,
double *OUTPUT, double *OUTPUT);
int FindLinePosition(double x, double y);
double FindMinimumWidth();
void FindNth(wxPyShape *image, int *OUTPUT, int *OUTPUT, bool incoming);
int GetAttachmentFrom();
int GetAttachmentTo();
void GetEnds(double *OUTPUT, double *OUTPUT, double *OUTPUT, double *OUTPUT);
wxPyShape * GetFrom();
void GetLabelPosition(int position, double *OUTPUT, double *OUTPUT);
wxPoint * GetNextControlPoint(wxPyShape *shape);
wxPyShape * GetTo();
void Initialise();
void InsertLineControlPoint(wxDC* dc);
bool IsEnd(wxPyShape *shape);
bool IsSpline();
void MakeLineControlPoints(int n);
void SetAttachmentFrom(int fromAttach);
void SetAttachments(int fromAttach, int toAttach);
void SetAttachmentTo(int toAttach);
void SetEnds(double x1, double y1, double x2, double y2);
void SetFrom(wxPyShape *object);
void SetIgnoreOffsets(bool ignore);
void SetSpline(bool spline);
void SetTo(wxPyShape *object);
void Straighten(wxDC* dc = NULL);
void Unlink();
void base_OnDraw(wxDC& dc);
void base_OnDrawContents(wxDC& dc);
void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
void base_OnMoveLinks(wxDC& dc);
void base_OnErase(wxDC& dc);
void base_OnEraseContents(wxDC& dc);
void base_OnHighlight(wxDC& dc);
void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
void base_OnSize(double x, double y);
bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
void base_OnDrawControlPoints(wxDC& dc);
void base_OnEraseControlPoints(wxDC& dc);
void base_OnMoveLink(wxDC& dc, bool moveControlPoints = TRUE);
void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
void base_OnBeginSize(double w, double h);
void base_OnEndSize(double w, double h);
// void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
};
//---------------------------------------------------------------------------
%{
WXSHAPE_IMP_CALLBACKS(wxPyPolygonShape, wxPolygonShape);
%}
class wxPyPolygonShape : public wxPyShape {
public:
wxPyPolygonShape();
void _setSelf(PyObject* self, PyObject* _class);
%pragma(python) addtomethod = "__init__:self._setSelf(self, wxPyPolygonShape)"
// void Create(wxList* points);
%addmethods {
PyObject* Create(PyObject* points) {
wxList* list = wxPy_wxRealPoint_ListHelper(points);
if (list) {
self->Create(list);
Py_INCREF(Py_None);
return Py_None;
}
else return NULL;
}
}
void AddPolygonPoint(int pos = 0);
void CalculatePolygonCentre();
void DeletePolygonPoint(int pos = 0);
// wxList* GetPoints();
%addmethods {
PyObject* GetPoints() {
wxList* list = self->GetPoints();
return wxPy_ConvertList(list, "wxRealPoint");
}
}
void UpdateOriginalPoints();
void base_OnDraw(wxDC& dc);
void base_OnDrawContents(wxDC& dc);
void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
void base_OnMoveLinks(wxDC& dc);
void base_OnErase(wxDC& dc);
void base_OnEraseContents(wxDC& dc);
void base_OnHighlight(wxDC& dc);
void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
void base_OnSize(double x, double y);
bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
void base_OnDrawControlPoints(wxDC& dc);
void base_OnEraseControlPoints(wxDC& dc);
void base_OnMoveLink(wxDC& dc, bool moveControlPoints = TRUE);
void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
void base_OnBeginSize(double w, double h);
void base_OnEndSize(double w, double h);
// void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
};
//---------------------------------------------------------------------------
%{
WXSHAPE_IMP_CALLBACKS(wxPyTextShape, wxTextShape);
%}
class wxPyTextShape : public wxPyRectangleShape {
public:
wxPyTextShape(double width = 0.0, double height = 0.0);
void _setSelf(PyObject* self, PyObject* _class);
%pragma(python) addtomethod = "__init__:self._setSelf(self, wxPyTextShape)"
void base_OnDelete();
void base_OnDraw(wxDC& dc);
void base_OnDrawContents(wxDC& dc);
void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
void base_OnMoveLinks(wxDC& dc);
void base_OnErase(wxDC& dc);
void base_OnEraseContents(wxDC& dc);
void base_OnHighlight(wxDC& dc);
void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
void base_OnSize(double x, double y);
bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
void base_OnDrawControlPoints(wxDC& dc);
void base_OnEraseControlPoints(wxDC& dc);
void base_OnMoveLink(wxDC& dc, bool moveControlPoints = TRUE);
void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
void base_OnBeginSize(double w, double h);
void base_OnEndSize(double w, double h);
// void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
};
//---------------------------------------------------------------------------

View File

@@ -0,0 +1,774 @@
# This file was created automatically by SWIG.
import oglshapes2c
from misc import *
from misc2 import *
from windows import *
from gdi import *
from clip_dnd import *
from events import *
from streams import *
from mdi import *
from frames import *
from stattool import *
from controls import *
from controls2 import *
from windows2 import *
from cmndlgs import *
from windows3 import *
from image import *
from printfw import *
from sizers import *
from filesys import *
from utils import *
from oglbasic import *
from oglshapes import *
import wx
class wxPyEllipseShapePtr(wxPyShapePtr):
def __init__(self,this):
self.this = this
self.thisown = 0
def _setSelf(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyEllipseShape__setSelf,(self,) + _args, _kwargs)
return val
def base_OnDraw(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyEllipseShape_base_OnDraw,(self,) + _args, _kwargs)
return val
def base_OnDrawContents(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyEllipseShape_base_OnDrawContents,(self,) + _args, _kwargs)
return val
def base_OnDrawBranches(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyEllipseShape_base_OnDrawBranches,(self,) + _args, _kwargs)
return val
def base_OnMoveLinks(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyEllipseShape_base_OnMoveLinks,(self,) + _args, _kwargs)
return val
def base_OnErase(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyEllipseShape_base_OnErase,(self,) + _args, _kwargs)
return val
def base_OnEraseContents(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyEllipseShape_base_OnEraseContents,(self,) + _args, _kwargs)
return val
def base_OnHighlight(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyEllipseShape_base_OnHighlight,(self,) + _args, _kwargs)
return val
def base_OnLeftClick(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyEllipseShape_base_OnLeftClick,(self,) + _args, _kwargs)
return val
def base_OnLeftDoubleClick(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyEllipseShape_base_OnLeftDoubleClick,(self,) + _args, _kwargs)
return val
def base_OnRightClick(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyEllipseShape_base_OnRightClick,(self,) + _args, _kwargs)
return val
def base_OnSize(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyEllipseShape_base_OnSize,(self,) + _args, _kwargs)
return val
def base_OnMovePre(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyEllipseShape_base_OnMovePre,(self,) + _args, _kwargs)
return val
def base_OnMovePost(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyEllipseShape_base_OnMovePost,(self,) + _args, _kwargs)
return val
def base_OnDragLeft(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyEllipseShape_base_OnDragLeft,(self,) + _args, _kwargs)
return val
def base_OnBeginDragLeft(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyEllipseShape_base_OnBeginDragLeft,(self,) + _args, _kwargs)
return val
def base_OnEndDragLeft(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyEllipseShape_base_OnEndDragLeft,(self,) + _args, _kwargs)
return val
def base_OnDragRight(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyEllipseShape_base_OnDragRight,(self,) + _args, _kwargs)
return val
def base_OnBeginDragRight(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyEllipseShape_base_OnBeginDragRight,(self,) + _args, _kwargs)
return val
def base_OnEndDragRight(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyEllipseShape_base_OnEndDragRight,(self,) + _args, _kwargs)
return val
def base_OnDrawOutline(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyEllipseShape_base_OnDrawOutline,(self,) + _args, _kwargs)
return val
def base_OnDrawControlPoints(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyEllipseShape_base_OnDrawControlPoints,(self,) + _args, _kwargs)
return val
def base_OnEraseControlPoints(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyEllipseShape_base_OnEraseControlPoints,(self,) + _args, _kwargs)
return val
def base_OnMoveLink(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyEllipseShape_base_OnMoveLink,(self,) + _args, _kwargs)
return val
def base_OnSizingDragLeft(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyEllipseShape_base_OnSizingDragLeft,(self,) + _args, _kwargs)
return val
def base_OnSizingBeginDragLeft(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyEllipseShape_base_OnSizingBeginDragLeft,(self,) + _args, _kwargs)
return val
def base_OnSizingEndDragLeft(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyEllipseShape_base_OnSizingEndDragLeft,(self,) + _args, _kwargs)
return val
def base_OnBeginSize(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyEllipseShape_base_OnBeginSize,(self,) + _args, _kwargs)
return val
def base_OnEndSize(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyEllipseShape_base_OnEndSize,(self,) + _args, _kwargs)
return val
def __repr__(self):
return "<C wxPyEllipseShape instance at %s>" % (self.this,)
class wxPyEllipseShape(wxPyEllipseShapePtr):
def __init__(self,*_args,**_kwargs):
self.this = apply(oglshapes2c.new_wxPyEllipseShape,_args,_kwargs)
self.thisown = 1
self._setSelf(self, wxPyEllipseShape)
class wxPyCircleShapePtr(wxPyEllipseShapePtr):
def __init__(self,this):
self.this = this
self.thisown = 0
def _setSelf(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyCircleShape__setSelf,(self,) + _args, _kwargs)
return val
def base_OnDraw(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyCircleShape_base_OnDraw,(self,) + _args, _kwargs)
return val
def base_OnDrawContents(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyCircleShape_base_OnDrawContents,(self,) + _args, _kwargs)
return val
def base_OnDrawBranches(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyCircleShape_base_OnDrawBranches,(self,) + _args, _kwargs)
return val
def base_OnMoveLinks(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyCircleShape_base_OnMoveLinks,(self,) + _args, _kwargs)
return val
def base_OnErase(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyCircleShape_base_OnErase,(self,) + _args, _kwargs)
return val
def base_OnEraseContents(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyCircleShape_base_OnEraseContents,(self,) + _args, _kwargs)
return val
def base_OnHighlight(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyCircleShape_base_OnHighlight,(self,) + _args, _kwargs)
return val
def base_OnLeftClick(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyCircleShape_base_OnLeftClick,(self,) + _args, _kwargs)
return val
def base_OnLeftDoubleClick(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyCircleShape_base_OnLeftDoubleClick,(self,) + _args, _kwargs)
return val
def base_OnRightClick(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyCircleShape_base_OnRightClick,(self,) + _args, _kwargs)
return val
def base_OnSize(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyCircleShape_base_OnSize,(self,) + _args, _kwargs)
return val
def base_OnMovePre(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyCircleShape_base_OnMovePre,(self,) + _args, _kwargs)
return val
def base_OnMovePost(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyCircleShape_base_OnMovePost,(self,) + _args, _kwargs)
return val
def base_OnDragLeft(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyCircleShape_base_OnDragLeft,(self,) + _args, _kwargs)
return val
def base_OnBeginDragLeft(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyCircleShape_base_OnBeginDragLeft,(self,) + _args, _kwargs)
return val
def base_OnEndDragLeft(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyCircleShape_base_OnEndDragLeft,(self,) + _args, _kwargs)
return val
def base_OnDragRight(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyCircleShape_base_OnDragRight,(self,) + _args, _kwargs)
return val
def base_OnBeginDragRight(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyCircleShape_base_OnBeginDragRight,(self,) + _args, _kwargs)
return val
def base_OnEndDragRight(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyCircleShape_base_OnEndDragRight,(self,) + _args, _kwargs)
return val
def base_OnDrawOutline(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyCircleShape_base_OnDrawOutline,(self,) + _args, _kwargs)
return val
def base_OnDrawControlPoints(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyCircleShape_base_OnDrawControlPoints,(self,) + _args, _kwargs)
return val
def base_OnEraseControlPoints(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyCircleShape_base_OnEraseControlPoints,(self,) + _args, _kwargs)
return val
def base_OnMoveLink(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyCircleShape_base_OnMoveLink,(self,) + _args, _kwargs)
return val
def base_OnSizingDragLeft(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyCircleShape_base_OnSizingDragLeft,(self,) + _args, _kwargs)
return val
def base_OnSizingBeginDragLeft(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyCircleShape_base_OnSizingBeginDragLeft,(self,) + _args, _kwargs)
return val
def base_OnSizingEndDragLeft(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyCircleShape_base_OnSizingEndDragLeft,(self,) + _args, _kwargs)
return val
def base_OnBeginSize(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyCircleShape_base_OnBeginSize,(self,) + _args, _kwargs)
return val
def base_OnEndSize(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyCircleShape_base_OnEndSize,(self,) + _args, _kwargs)
return val
def __repr__(self):
return "<C wxPyCircleShape instance at %s>" % (self.this,)
class wxPyCircleShape(wxPyCircleShapePtr):
def __init__(self,*_args,**_kwargs):
self.this = apply(oglshapes2c.new_wxPyCircleShape,_args,_kwargs)
self.thisown = 1
self._setSelf(self, wxPyCircleShape)
class wxArrowHeadPtr :
def __init__(self,this):
self.this = this
self.thisown = 0
def __del__(self,oglshapes2c=oglshapes2c):
if self.thisown == 1 :
oglshapes2c.delete_wxArrowHead(self)
def _GetType(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxArrowHead__GetType,(self,) + _args, _kwargs)
return val
def GetPosition(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxArrowHead_GetPosition,(self,) + _args, _kwargs)
return val
def SetPosition(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxArrowHead_SetPosition,(self,) + _args, _kwargs)
return val
def GetXOffset(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxArrowHead_GetXOffset,(self,) + _args, _kwargs)
return val
def GetYOffset(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxArrowHead_GetYOffset,(self,) + _args, _kwargs)
return val
def GetSpacing(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxArrowHead_GetSpacing,(self,) + _args, _kwargs)
return val
def GetSize(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxArrowHead_GetSize,(self,) + _args, _kwargs)
return val
def GetName(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxArrowHead_GetName,(self,) + _args, _kwargs)
return val
def SetXOffset(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxArrowHead_SetXOffset,(self,) + _args, _kwargs)
return val
def SetYOffset(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxArrowHead_SetYOffset,(self,) + _args, _kwargs)
return val
def GetMetaFile(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxArrowHead_GetMetaFile,(self,) + _args, _kwargs)
if val: val = wxPseudoMetaFilePtr(val)
return val
def GetId(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxArrowHead_GetId,(self,) + _args, _kwargs)
return val
def GetArrowEnd(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxArrowHead_GetArrowEnd,(self,) + _args, _kwargs)
return val
def GetArrowSize(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxArrowHead_GetArrowSize,(self,) + _args, _kwargs)
return val
def SetSize(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxArrowHead_SetSize,(self,) + _args, _kwargs)
return val
def SetSpacing(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxArrowHead_SetSpacing,(self,) + _args, _kwargs)
return val
def __repr__(self):
return "<C wxArrowHead instance at %s>" % (self.this,)
class wxArrowHead(wxArrowHeadPtr):
def __init__(self,*_args,**_kwargs):
self.this = apply(oglshapes2c.new_wxArrowHead,_args,_kwargs)
self.thisown = 1
class wxPyLineShapePtr(wxPyShapePtr):
def __init__(self,this):
self.this = this
self.thisown = 0
def _setSelf(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape__setSelf,(self,) + _args, _kwargs)
return val
def AddArrow(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_AddArrow,(self,) + _args, _kwargs)
return val
def AddArrowOrdered(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_AddArrowOrdered,(self,) + _args, _kwargs)
return val
def ClearArrow(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_ClearArrow,(self,) + _args, _kwargs)
return val
def ClearArrowsAtPosition(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_ClearArrowsAtPosition,(self,) + _args, _kwargs)
return val
def DrawArrow(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_DrawArrow,(self,) + _args, _kwargs)
return val
def DeleteArrowHeadId(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_DeleteArrowHeadId,(self,) + _args, _kwargs)
return val
def DeleteArrowHead(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_DeleteArrowHead,(self,) + _args, _kwargs)
return val
def DeleteLineControlPoint(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_DeleteLineControlPoint,(self,) + _args, _kwargs)
return val
def DrawArrows(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_DrawArrows,(self,) + _args, _kwargs)
return val
def DrawRegion(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_DrawRegion,(self,) + _args, _kwargs)
return val
def EraseRegion(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_EraseRegion,(self,) + _args, _kwargs)
return val
def FindArrowHeadId(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_FindArrowHeadId,(self,) + _args, _kwargs)
if val: val = wxArrowHeadPtr(val)
return val
def FindArrowHead(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_FindArrowHead,(self,) + _args, _kwargs)
if val: val = wxArrowHeadPtr(val)
return val
def FindLineEndPoints(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_FindLineEndPoints,(self,) + _args, _kwargs)
return val
def FindLinePosition(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_FindLinePosition,(self,) + _args, _kwargs)
return val
def FindMinimumWidth(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_FindMinimumWidth,(self,) + _args, _kwargs)
return val
def FindNth(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_FindNth,(self,) + _args, _kwargs)
return val
def GetAttachmentFrom(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_GetAttachmentFrom,(self,) + _args, _kwargs)
return val
def GetAttachmentTo(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_GetAttachmentTo,(self,) + _args, _kwargs)
return val
def GetEnds(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_GetEnds,(self,) + _args, _kwargs)
return val
def GetFrom(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_GetFrom,(self,) + _args, _kwargs)
if val: val = wxPyShapePtr(val)
return val
def GetLabelPosition(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_GetLabelPosition,(self,) + _args, _kwargs)
return val
def GetNextControlPoint(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_GetNextControlPoint,(self,) + _args, _kwargs)
if val: val = wxPointPtr(val)
return val
def GetTo(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_GetTo,(self,) + _args, _kwargs)
if val: val = wxPyShapePtr(val)
return val
def Initialise(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_Initialise,(self,) + _args, _kwargs)
return val
def InsertLineControlPoint(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_InsertLineControlPoint,(self,) + _args, _kwargs)
return val
def IsEnd(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_IsEnd,(self,) + _args, _kwargs)
return val
def IsSpline(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_IsSpline,(self,) + _args, _kwargs)
return val
def MakeLineControlPoints(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_MakeLineControlPoints,(self,) + _args, _kwargs)
return val
def SetAttachmentFrom(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_SetAttachmentFrom,(self,) + _args, _kwargs)
return val
def SetAttachments(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_SetAttachments,(self,) + _args, _kwargs)
return val
def SetAttachmentTo(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_SetAttachmentTo,(self,) + _args, _kwargs)
return val
def SetEnds(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_SetEnds,(self,) + _args, _kwargs)
return val
def SetFrom(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_SetFrom,(self,) + _args, _kwargs)
return val
def SetIgnoreOffsets(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_SetIgnoreOffsets,(self,) + _args, _kwargs)
return val
def SetSpline(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_SetSpline,(self,) + _args, _kwargs)
return val
def SetTo(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_SetTo,(self,) + _args, _kwargs)
return val
def Straighten(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_Straighten,(self,) + _args, _kwargs)
return val
def Unlink(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_Unlink,(self,) + _args, _kwargs)
return val
def base_OnDraw(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_base_OnDraw,(self,) + _args, _kwargs)
return val
def base_OnDrawContents(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_base_OnDrawContents,(self,) + _args, _kwargs)
return val
def base_OnDrawBranches(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_base_OnDrawBranches,(self,) + _args, _kwargs)
return val
def base_OnMoveLinks(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_base_OnMoveLinks,(self,) + _args, _kwargs)
return val
def base_OnErase(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_base_OnErase,(self,) + _args, _kwargs)
return val
def base_OnEraseContents(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_base_OnEraseContents,(self,) + _args, _kwargs)
return val
def base_OnHighlight(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_base_OnHighlight,(self,) + _args, _kwargs)
return val
def base_OnLeftClick(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_base_OnLeftClick,(self,) + _args, _kwargs)
return val
def base_OnLeftDoubleClick(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_base_OnLeftDoubleClick,(self,) + _args, _kwargs)
return val
def base_OnRightClick(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_base_OnRightClick,(self,) + _args, _kwargs)
return val
def base_OnSize(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_base_OnSize,(self,) + _args, _kwargs)
return val
def base_OnMovePre(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_base_OnMovePre,(self,) + _args, _kwargs)
return val
def base_OnMovePost(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_base_OnMovePost,(self,) + _args, _kwargs)
return val
def base_OnDragLeft(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_base_OnDragLeft,(self,) + _args, _kwargs)
return val
def base_OnBeginDragLeft(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_base_OnBeginDragLeft,(self,) + _args, _kwargs)
return val
def base_OnEndDragLeft(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_base_OnEndDragLeft,(self,) + _args, _kwargs)
return val
def base_OnDragRight(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_base_OnDragRight,(self,) + _args, _kwargs)
return val
def base_OnBeginDragRight(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_base_OnBeginDragRight,(self,) + _args, _kwargs)
return val
def base_OnEndDragRight(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_base_OnEndDragRight,(self,) + _args, _kwargs)
return val
def base_OnDrawOutline(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_base_OnDrawOutline,(self,) + _args, _kwargs)
return val
def base_OnDrawControlPoints(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_base_OnDrawControlPoints,(self,) + _args, _kwargs)
return val
def base_OnEraseControlPoints(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_base_OnEraseControlPoints,(self,) + _args, _kwargs)
return val
def base_OnMoveLink(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_base_OnMoveLink,(self,) + _args, _kwargs)
return val
def base_OnSizingDragLeft(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_base_OnSizingDragLeft,(self,) + _args, _kwargs)
return val
def base_OnSizingBeginDragLeft(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_base_OnSizingBeginDragLeft,(self,) + _args, _kwargs)
return val
def base_OnSizingEndDragLeft(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_base_OnSizingEndDragLeft,(self,) + _args, _kwargs)
return val
def base_OnBeginSize(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_base_OnBeginSize,(self,) + _args, _kwargs)
return val
def base_OnEndSize(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyLineShape_base_OnEndSize,(self,) + _args, _kwargs)
return val
def __repr__(self):
return "<C wxPyLineShape instance at %s>" % (self.this,)
class wxPyLineShape(wxPyLineShapePtr):
def __init__(self,*_args,**_kwargs):
self.this = apply(oglshapes2c.new_wxPyLineShape,_args,_kwargs)
self.thisown = 1
self._setSelf(self, wxPyLineShape)
class wxPyPolygonShapePtr(wxPyShapePtr):
def __init__(self,this):
self.this = this
self.thisown = 0
def _setSelf(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyPolygonShape__setSelf,(self,) + _args, _kwargs)
return val
def Create(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyPolygonShape_Create,(self,) + _args, _kwargs)
return val
def AddPolygonPoint(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyPolygonShape_AddPolygonPoint,(self,) + _args, _kwargs)
return val
def CalculatePolygonCentre(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyPolygonShape_CalculatePolygonCentre,(self,) + _args, _kwargs)
return val
def DeletePolygonPoint(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyPolygonShape_DeletePolygonPoint,(self,) + _args, _kwargs)
return val
def GetPoints(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyPolygonShape_GetPoints,(self,) + _args, _kwargs)
return val
def UpdateOriginalPoints(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyPolygonShape_UpdateOriginalPoints,(self,) + _args, _kwargs)
return val
def base_OnDraw(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyPolygonShape_base_OnDraw,(self,) + _args, _kwargs)
return val
def base_OnDrawContents(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyPolygonShape_base_OnDrawContents,(self,) + _args, _kwargs)
return val
def base_OnDrawBranches(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyPolygonShape_base_OnDrawBranches,(self,) + _args, _kwargs)
return val
def base_OnMoveLinks(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyPolygonShape_base_OnMoveLinks,(self,) + _args, _kwargs)
return val
def base_OnErase(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyPolygonShape_base_OnErase,(self,) + _args, _kwargs)
return val
def base_OnEraseContents(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyPolygonShape_base_OnEraseContents,(self,) + _args, _kwargs)
return val
def base_OnHighlight(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyPolygonShape_base_OnHighlight,(self,) + _args, _kwargs)
return val
def base_OnLeftClick(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyPolygonShape_base_OnLeftClick,(self,) + _args, _kwargs)
return val
def base_OnLeftDoubleClick(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyPolygonShape_base_OnLeftDoubleClick,(self,) + _args, _kwargs)
return val
def base_OnRightClick(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyPolygonShape_base_OnRightClick,(self,) + _args, _kwargs)
return val
def base_OnSize(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyPolygonShape_base_OnSize,(self,) + _args, _kwargs)
return val
def base_OnMovePre(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyPolygonShape_base_OnMovePre,(self,) + _args, _kwargs)
return val
def base_OnMovePost(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyPolygonShape_base_OnMovePost,(self,) + _args, _kwargs)
return val
def base_OnDragLeft(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyPolygonShape_base_OnDragLeft,(self,) + _args, _kwargs)
return val
def base_OnBeginDragLeft(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyPolygonShape_base_OnBeginDragLeft,(self,) + _args, _kwargs)
return val
def base_OnEndDragLeft(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyPolygonShape_base_OnEndDragLeft,(self,) + _args, _kwargs)
return val
def base_OnDragRight(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyPolygonShape_base_OnDragRight,(self,) + _args, _kwargs)
return val
def base_OnBeginDragRight(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyPolygonShape_base_OnBeginDragRight,(self,) + _args, _kwargs)
return val
def base_OnEndDragRight(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyPolygonShape_base_OnEndDragRight,(self,) + _args, _kwargs)
return val
def base_OnDrawOutline(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyPolygonShape_base_OnDrawOutline,(self,) + _args, _kwargs)
return val
def base_OnDrawControlPoints(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyPolygonShape_base_OnDrawControlPoints,(self,) + _args, _kwargs)
return val
def base_OnEraseControlPoints(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyPolygonShape_base_OnEraseControlPoints,(self,) + _args, _kwargs)
return val
def base_OnMoveLink(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyPolygonShape_base_OnMoveLink,(self,) + _args, _kwargs)
return val
def base_OnSizingDragLeft(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyPolygonShape_base_OnSizingDragLeft,(self,) + _args, _kwargs)
return val
def base_OnSizingBeginDragLeft(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyPolygonShape_base_OnSizingBeginDragLeft,(self,) + _args, _kwargs)
return val
def base_OnSizingEndDragLeft(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyPolygonShape_base_OnSizingEndDragLeft,(self,) + _args, _kwargs)
return val
def base_OnBeginSize(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyPolygonShape_base_OnBeginSize,(self,) + _args, _kwargs)
return val
def base_OnEndSize(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyPolygonShape_base_OnEndSize,(self,) + _args, _kwargs)
return val
def __repr__(self):
return "<C wxPyPolygonShape instance at %s>" % (self.this,)
class wxPyPolygonShape(wxPyPolygonShapePtr):
def __init__(self,*_args,**_kwargs):
self.this = apply(oglshapes2c.new_wxPyPolygonShape,_args,_kwargs)
self.thisown = 1
self._setSelf(self, wxPyPolygonShape)
class wxPyTextShapePtr(wxPyRectangleShapePtr):
def __init__(self,this):
self.this = this
self.thisown = 0
def _setSelf(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyTextShape__setSelf,(self,) + _args, _kwargs)
return val
def base_OnDelete(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyTextShape_base_OnDelete,(self,) + _args, _kwargs)
return val
def base_OnDraw(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyTextShape_base_OnDraw,(self,) + _args, _kwargs)
return val
def base_OnDrawContents(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyTextShape_base_OnDrawContents,(self,) + _args, _kwargs)
return val
def base_OnDrawBranches(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyTextShape_base_OnDrawBranches,(self,) + _args, _kwargs)
return val
def base_OnMoveLinks(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyTextShape_base_OnMoveLinks,(self,) + _args, _kwargs)
return val
def base_OnErase(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyTextShape_base_OnErase,(self,) + _args, _kwargs)
return val
def base_OnEraseContents(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyTextShape_base_OnEraseContents,(self,) + _args, _kwargs)
return val
def base_OnHighlight(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyTextShape_base_OnHighlight,(self,) + _args, _kwargs)
return val
def base_OnLeftClick(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyTextShape_base_OnLeftClick,(self,) + _args, _kwargs)
return val
def base_OnLeftDoubleClick(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyTextShape_base_OnLeftDoubleClick,(self,) + _args, _kwargs)
return val
def base_OnRightClick(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyTextShape_base_OnRightClick,(self,) + _args, _kwargs)
return val
def base_OnSize(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyTextShape_base_OnSize,(self,) + _args, _kwargs)
return val
def base_OnMovePre(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyTextShape_base_OnMovePre,(self,) + _args, _kwargs)
return val
def base_OnMovePost(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyTextShape_base_OnMovePost,(self,) + _args, _kwargs)
return val
def base_OnDragLeft(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyTextShape_base_OnDragLeft,(self,) + _args, _kwargs)
return val
def base_OnBeginDragLeft(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyTextShape_base_OnBeginDragLeft,(self,) + _args, _kwargs)
return val
def base_OnEndDragLeft(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyTextShape_base_OnEndDragLeft,(self,) + _args, _kwargs)
return val
def base_OnDragRight(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyTextShape_base_OnDragRight,(self,) + _args, _kwargs)
return val
def base_OnBeginDragRight(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyTextShape_base_OnBeginDragRight,(self,) + _args, _kwargs)
return val
def base_OnEndDragRight(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyTextShape_base_OnEndDragRight,(self,) + _args, _kwargs)
return val
def base_OnDrawOutline(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyTextShape_base_OnDrawOutline,(self,) + _args, _kwargs)
return val
def base_OnDrawControlPoints(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyTextShape_base_OnDrawControlPoints,(self,) + _args, _kwargs)
return val
def base_OnEraseControlPoints(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyTextShape_base_OnEraseControlPoints,(self,) + _args, _kwargs)
return val
def base_OnMoveLink(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyTextShape_base_OnMoveLink,(self,) + _args, _kwargs)
return val
def base_OnSizingDragLeft(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyTextShape_base_OnSizingDragLeft,(self,) + _args, _kwargs)
return val
def base_OnSizingBeginDragLeft(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyTextShape_base_OnSizingBeginDragLeft,(self,) + _args, _kwargs)
return val
def base_OnSizingEndDragLeft(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyTextShape_base_OnSizingEndDragLeft,(self,) + _args, _kwargs)
return val
def base_OnBeginSize(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyTextShape_base_OnBeginSize,(self,) + _args, _kwargs)
return val
def base_OnEndSize(self, *_args, **_kwargs):
val = apply(oglshapes2c.wxPyTextShape_base_OnEndSize,(self,) + _args, _kwargs)
return val
def __repr__(self):
return "<C wxPyTextShape instance at %s>" % (self.this,)
class wxPyTextShape(wxPyTextShapePtr):
def __init__(self,*_args,**_kwargs):
self.this = apply(oglshapes2c.new_wxPyTextShape,_args,_kwargs)
self.thisown = 1
self._setSelf(self, wxPyTextShape)
#-------------- FUNCTION WRAPPERS ------------------
#-------------- VARIABLE WRAPPERS ------------------

View File

@@ -0,0 +1,24 @@
/* Definitions for Windows/Unix exporting */
#if defined(__WIN32__)
# if defined(_MSC_VER)
# define SWIGEXPORT(a) __declspec(dllexport) a
# else
# if defined(__BORLANDC__)
# define SWIGEXPORT(a) a _export
# else
# define SWIGEXPORT(a) a
# endif
# endif
#else
# define SWIGEXPORT(a) a
#endif
#ifdef __cplusplus
extern "C"
#endif
SWIGEXPORT(void) initoglc() {
}

View File

@@ -0,0 +1,6 @@
Makefile
Makefile
contrib
stc_c.exp
stc_c.ilk
stc_c.pch

View File

@@ -0,0 +1,7 @@
Since STC is not always bundled with distributions of wxWindows, in
order for it to be a standard part of wxPython I need to bundle it
here. The contents of the contrib directory are copies of the
relevant parts of the main contrib directory in wxWindows. The
build.py script in this directory will also build the needed files
from there, so you no longer have to worry about aquiring and building
additional libraries beyond wxWindows itself.

View File

@@ -0,0 +1,4 @@
# Stuff these names into the wx namespace so wxPyConstructObject can find them
wx.wxStyledTextEventPtr = wxStyledTextEventPtr
wx.wxStyledTextCtrlPtr = wxStyledTextCtrlPtr

View File

@@ -0,0 +1,7 @@
# The name "stc.cpp" was causing the debugger to get confused with the
# same module name in the stc library, so I changed the name of this
# one to stc_.cpp and this little stub to make the "stc" Python module
# name still usesable for everything that matters.
from stc_ import *

File diff suppressed because it is too large Load Diff

105
wxPython/contrib/stc/stc_.i Normal file
View File

@@ -0,0 +1,105 @@
/////////////////////////////////////////////////////////////////////////////
// Name: stc.i
// Purpose: Wrappers for the wxStyledTextCtrl.
//
// Author: Robin Dunn
//
// Created: 12-Oct-1999
// RCS-ID: $Id$
// Copyright: (c) 2000 by Total Control Software
// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
%module stc_
%{
#include "helpers.h"
#include "wx/stc/stc.h"
%}
//---------------------------------------------------------------------------
%include typemaps.i
%include my_typemaps.i
%extern wx.i
%extern windows.i
%extern _defs.i
%extern events.i
%extern controls.i
//----------------------------------------------------------------------
// Get all our defs from the REAL header file.
%include stc.h
//%include SciLexer.h
//----------------------------------------------------------------------
// Python functions to act like the event macros
%pragma(python) code = "
def EVT_STC_CHANGE(win, id, fn):
win.Connect(id, -1, wxEVT_STC_CHANGE, fn)
def EVT_STC_STYLENEEDED(win, id, fn):
win.Connect(id, -1, wxEVT_STC_STYLENEEDED, fn)
def EVT_STC_CHARADDED(win, id, fn):
win.Connect(id, -1, wxEVT_STC_CHARADDED, fn)
def EVT_STC_UPDATEUI(win, id, fn):
win.Connect(id, -1, wxEVT_STC_UPDATEUI, fn)
def EVT_STC_SAVEPOINTREACHED(win, id, fn):
win.Connect(id, -1, wxEVT_STC_SAVEPOINTREACHED, fn)
def EVT_STC_SAVEPOINTLEFT(win, id, fn):
win.Connect(id, -1, wxEVT_STC_SAVEPOINTLEFT, fn)
def EVT_STC_ROMODIFYATTEMPT(win, id, fn):
win.Connect(id, -1, wxEVT_STC_ROMODIFYATTEMPT, fn)
def EVT_STC_DOUBLECLICK(win, id, fn):
win.Connect(id, -1, wxEVT_STC_DOUBLECLICK, fn)
def EVT_STC_MODIFIED(win, id, fn):
win.Connect(id, -1, wxEVT_STC_MODIFIED, fn)
def EVT_STC_KEY(win, id, fn):
win.Connect(id, -1, wxEVT_STC_KEY, fn)
def EVT_STC_MACRORECORD(win, id, fn):
win.Connect(id, -1, wxEVT_STC_MACRORECORD, fn)
def EVT_STC_MARGINCLICK(win, id, fn):
win.Connect(id, -1, wxEVT_STC_MARGINCLICK, fn)
def EVT_STC_NEEDSHOWN(win, id, fn):
win.Connect(id, -1, wxEVT_STC_NEEDSHOWN, fn)
def EVT_STC_POSCHANGED(win, id, fn):
win.Connect(id, -1, wxEVT_STC_POSCHANGED, fn)
"
//----------------------------------------------------------------------
%init %{
wxClassInfo::CleanUpClasses();
wxClassInfo::InitializeClasses();
%}
//----------------------------------------------------------------------
%pragma(python) include="_stcextras.py";
//----------------------------------------------------------------------
//----------------------------------------------------------------------

1279
wxPython/contrib/stc/stc_.py Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,23 @@
/* Definitions for Windows/Unix exporting */
#if defined(__WIN32__)
# if defined(_MSC_VER)
# define SWIGEXPORT(a) __declspec(dllexport) a
# else
# if defined(__BORLANDC__)
# define SWIGEXPORT(a) a _export
# else
# define SWIGEXPORT(a) a
# endif
# endif
#else
# define SWIGEXPORT(a) a
#endif
#ifdef __cplusplus
extern "C"
#endif
SWIGEXPORT(void) initstc_c() {
}

7
wxPython/demo/.cvsignore Normal file
View File

@@ -0,0 +1,7 @@
*.pyc
.emacs.desktop
b.bat
hangman_dict.txt
setup.bat
test.out
tmphtml.txt

62
wxPython/demo/About.py Normal file
View File

@@ -0,0 +1,62 @@
import sys, string
from wxPython.wx import *
from wxPython.html import *
import wxPython.lib.wxpTag
#---------------------------------------------------------------------------
class MyAboutBox(wxDialog):
text = '''
<html>
<body bgcolor="#AC76DE">
<center><table bgcolor="#458154" width="100%%" cellspacing="0"
cellpadding="0" border="1">
<tr>
<td align="center">
<h1>wxPython %s</h1>
Running on Python %s<br>
</td>
</tr>
</table>
<p><b>wxPython</b> is a Python extension module that
encapsulates the wxWindows GUI classes.</p>
<p>This demo shows off some of the capabilities
of <b>wxPython</b>. Select items from the menu or tree control,
sit back and enjoy. Be sure to take a peek at the source code for each
demo item so you can learn how to use the classes yourself.</p>
<p><b>wxPython</b> is brought to you by <b>Robin Dunn</b> and<br>
<b>Total Control Software</b>, Copyright (c) 1997-2000.</p>
<p>
<font size="-1">Please see <i>license.txt</i> for licensing information.</font>
</p>
<p><wxp class="wxButton">
<param name="label" value="Okay">
<param name="id" value="wxID_OK">
</wxp></p>
</center>
</body>
</html>
'''
def __init__(self, parent):
wxDialog.__init__(self, parent, -1, 'About the wxPython demo',)
html = wxHtmlWindow(self, -1, size=(420, -1))
py_version = string.split(sys.version)[0]
html.SetPage(self.text % (wx.__version__, py_version))
ir = html.GetInternalRepresentation()
html.SetSize( (ir.GetWidth()+5, ir.GetHeight()+5) )
self.SetClientSize(html.GetSize())
self.CentreOnParent(wxBOTH)
#---------------------------------------------------------------------------

View File

@@ -0,0 +1,130 @@
"""
<html><body>
This demo shows how to embed an ActiveX control in a wxPython application, (Win32 only.)
<p>
The MakeActiveXClass function dynamically builds a new Class on the fly, that has the
same signature and semantics as wxWindow. This means that when you call the function
you get back a new class that you can use just like wxWindow, (set the size and position,
use in a sizer, etc.) except its contents will be the COM control.
<p>
This demo embeds the Adobe Acrobat Reader, and gives you some buttons for opening a PDF
file, changing pages, etc. that show how to call methods on the COM object. If you don't
have Acrobat Reader 4.0 installed it won't work.
</body></html>
"""
from wxPython.wx import *
if wxPlatform == '__WXMSW__':
from wxPython.lib.activexwrapper import MakeActiveXClass
import win32com.client.gencache
try:
acrobat = win32com.client.gencache.EnsureModule('{CA8A9783-280D-11CF-A24D-444553540000}', 0x0, 1, 3)
except:
raise ImportError("Can't load PDF.OCX, install Acrobat 4.0")
#----------------------------------------------------------------------
class TestPanel(wxPanel):
def __init__(self, parent):
wxPanel.__init__(self, parent, -1)
self.pdf = None
sizer = wxBoxSizer(wxVERTICAL)
btnSizer = wxBoxSizer(wxHORIZONTAL)
# this function creates a new class that can be used as
# a wxWindow, but contains the given ActiveX control.
ActiveXWrapper = MakeActiveXClass(acrobat.Pdf)
# create an instance of the new class
self.pdf = ActiveXWrapper( self, -1, style=wxSUNKEN_BORDER)
sizer.Add(self.pdf, 1, wxEXPAND)
btn = wxButton(self, wxNewId(), "Open PDF File")
EVT_BUTTON(self, btn.GetId(), self.OnOpenButton)
btnSizer.Add(btn, 1, wxEXPAND|wxALL, 5)
btn = wxButton(self, wxNewId(), "<-- Previous Page")
EVT_BUTTON(self, btn.GetId(), self.OnPrevPageButton)
btnSizer.Add(btn, 1, wxEXPAND|wxALL, 5)
btn = wxButton(self, wxNewId(), "Next Page -->")
EVT_BUTTON(self, btn.GetId(), self.OnNextPageButton)
btnSizer.Add(btn, 1, wxEXPAND|wxALL, 5)
btnSizer.Add(50, -1, 2, wxEXPAND)
sizer.Add(btnSizer, 0, wxEXPAND)
self.SetSizer(sizer)
self.SetAutoLayout(true)
def __del__(self):
if self.pdf:
self.pdf.Cleanup()
self.pdf = None
def OnOpenButton(self, event):
dlg = wxFileDialog(self, wildcard="*.pdf")
if dlg.ShowModal() == wxID_OK:
wxBeginBusyCursor()
self.pdf.LoadFile(dlg.GetPath())
wxEndBusyCursor()
dlg.Destroy()
def OnPrevPageButton(self, event):
self.pdf.gotoPreviousPage()
def OnNextPageButton(self, event):
self.pdf.gotoNextPage()
#----------------------------------------------------------------------
def runTest(frame, nb, log):
if wxPlatform == '__WXMSW__':
win = TestPanel(nb)
return win
else:
dlg = wxMessageDialog(frame, 'This demo only works on MSW.',
'Sorry', wxOK | wxICON_INFORMATION)
dlg.ShowModal()
dlg.Destroy()
overview = __doc__
#----------------------------------------------------------------------
if __name__ == '__main__':
class TestFrame(wxFrame):
def __init__(self):
wxFrame.__init__(self, None, -1, "ActiveX test -- Acrobat", size=(640, 480),
style=wxDEFAULT_FRAME_STYLE|wxNO_FULL_REPAINT_ON_RESIZE)
self.tp = TestPanel(self, sys.stdout)
EVT_CLOSE(self, self.OnCloseWindow)
def OnCloseWindow(self, event):
self.tp.pdf.Cleanup()
self.Destroy()
app = wxPySimpleApp()
frame = TestFrame()
frame.Show(true)
app.MainLoop()

View File

@@ -0,0 +1,205 @@
"""
<html><body>
This demo shows how to embed an ActiveX control in a wxPython
application, (Win32 only.)
<p>
The MakeActiveXClass function dynamically builds a new Class on the
fly, that has the same signature and semantics as wxWindow. This
means that when you call the function you get back a new class that
you can use just like wxWindow, (set the size and position, use in a
sizer, etc.) except its contents will be the COM control.
<p>
This demo embeds the Internet Exploer WebBrowser control, and shows
how to receive events from the COM control. (The title bar and status
bar are updated as pages change, in addition to the log messages being
shown.)
</body></html>
"""
from wxPython.wx import *
if wxPlatform == '__WXMSW__':
from wxPython.lib.activexwrapper import MakeActiveXClass
import win32com.client.gencache
try:
browserModule = win32com.client.gencache.EnsureModule("{EAB22AC0-30C1-11CF-A7EB-0000C05BAE0B}", 0, 1, 1)
except:
raise ImportError("IE4 or greater does not appear to be installed.")
#----------------------------------------------------------------------
class TestPanel(wxWindow):
def __init__(self, parent, log, frame=None):
wxWindow.__init__(self, parent, -1)#, style=wxCLIP_CHILDREN)
self.ie = None
self.log = log
self.current = "http://wxPython.org/"
self.frame = frame
if frame:
self.titleBase = frame.GetTitle()
sizer = wxBoxSizer(wxVERTICAL)
btnSizer = wxBoxSizer(wxHORIZONTAL)
# Make a new class that derives from the WebBrowser class in the
# COM module imported above. This class also derives from wxWindow and
# implements the machinery needed to integrate the two worlds.
theClass = MakeActiveXClass(browserModule.WebBrowser,
eventObj = self)
# Create an instance of that class
self.ie = theClass(self, -1, style=wxSUNKEN_BORDER)
#btn = wxButton(self, wxNewId(), " Open ")
#EVT_BUTTON(self, btn.GetId(), self.OnOpenButton)
#btnSizer.Add(btn, 0, wxEXPAND|wxALL, 5)
btn = wxButton(self, wxNewId(), " Home ")
EVT_BUTTON(self, btn.GetId(), self.OnHomeButton)
btnSizer.Add(btn, 0, wxEXPAND|wxALL, 5)
btn = wxButton(self, wxNewId(), " <-- ")
EVT_BUTTON(self, btn.GetId(), self.OnPrevPageButton)
btnSizer.Add(btn, 0, wxEXPAND|wxALL, 5)
btn = wxButton(self, wxNewId(), " --> ")
EVT_BUTTON(self, btn.GetId(), self.OnNextPageButton)
btnSizer.Add(btn, 0, wxEXPAND|wxALL, 5)
txt = wxStaticText(self, -1, "Location:")
btnSizer.Add(txt, 0, wxCENTER|wxALL, 5)
self.location = wxComboBox(self, wxNewId(), "", style=wxCB_DROPDOWN)
EVT_COMBOBOX(self, self.location.GetId(), self.OnLocationSelect)
EVT_KEY_UP(self.location, self.OnLocationKey)
#EVT_CHAR(self.location, self.IgnoreReturn)
btnSizer.Add(self.location, 1, wxEXPAND|wxALL, 5)
sizer.Add(btnSizer, 0, wxEXPAND)
sizer.Add(self.ie, 1, wxEXPAND)
self.ie.Navigate(self.current)
self.location.Append(self.current)
self.SetSizer(sizer)
self.SetAutoLayout(true)
EVT_SIZE(self, self.OnSize)
def OnSize(self, evt):
self.Layout()
def __del__(self):
if self.ie:
self.ie.Cleanup()
self.ie = None
def OnLocationSelect(self, evt):
url = self.location.GetStringSelection()
self.log.write('OnLocationSelect: %s\n' % url)
self.ie.Navigate(url)
def OnLocationKey(self, evt):
if evt.KeyCode() == WXK_RETURN:
URL = self.location.GetValue()
self.location.Append(URL)
self.ie.Navigate(URL)
else:
evt.Skip()
def IgnoreReturn(self, evt):
print 'IgnoreReturn'
if evt.KeyCode() != WXK_RETURN:
evt.Skip()
def OnOpenButton(self, event):
dlg = wxTextEntryDialog(self, "Open Location",
"Enter a full URL or local path",
self.current, wxOK|wxCANCEL)
dlg.CentreOnParent()
if dlg.ShowModal() == wxID_OK:
self.current = dlg.GetValue()
self.ie.Navigate(self.current)
dlg.Destroy()
def OnHomeButton(self, event):
self.ie.GoHome() ## ET Phone Home!
def OnPrevPageButton(self, event):
self.ie.GoBack()
def OnNextPageButton(self, event):
self.ie.GoForward()
# The following event handlers are called by the web browser COM
# control since we passed self to MakeActiveXClass. It will look
# here for matching attributes and call them if they exist. See the
# module generated by makepy for details of method names, etc.
def OnBeforeNavigate2(self, pDisp, URL, *args):
self.log.write('OnBeforeNavigate2: %s\n' % URL)
def OnNavigateComplete2(self, pDisp, URL):
self.log.write('OnNavigateComplete2: %s\n' % URL)
self.current = URL
self.location.SetValue(URL)
def OnTitleChange(self, text):
self.log.write('OnTitleChange: %s\n' % text)
if self.frame:
self.frame.SetTitle(self.titleBase + ' -- ' + text)
def OnStatusTextChange(self, text):
self.log.write('OnStatusTextChange: %s\n' % text)
if self.frame:
self.frame.SetStatusText(text)
#----------------------------------------------------------------------
# for the demo framework...
def runTest(frame, nb, log):
if wxPlatform == '__WXMSW__':
win = TestPanel(nb, log, frame)
return win
else:
dlg = wxMessageDialog(frame, 'This demo only works on MSW.',
'Sorry', wxOK | wxICON_INFORMATION)
dlg.ShowModal()
dlg.Destroy()
overview = __doc__
#----------------------------------------------------------------------
if __name__ == '__main__':
class TestFrame(wxFrame):
def __init__(self):
wxFrame.__init__(self, None, -1, "ActiveX test -- Internet Explorer",
size=(640, 480),
style=wxDEFAULT_FRAME_STYLE|wxNO_FULL_REPAINT_ON_RESIZE)
self.CreateStatusBar()
self.tp = TestPanel(self, sys.stdout, self)
EVT_CLOSE(self, self.OnCloseWindow)
def OnCloseWindow(self, event):
self.tp.ie.Cleanup()
self.Destroy()
app = wxPySimpleApp()
frame = TestFrame()
frame.Show(true)
app.MainLoop()

View File

@@ -0,0 +1,13 @@
from wxPython.wx import *
#---------------------------------------------------------------------------
class ColoredPanel(wxWindow):
def __init__(self, parent, color):
wxWindow.__init__(self, parent, -1,
wxDefaultPosition, wxDefaultSize, wxRAISED_BORDER)
self.SetBackgroundColour(color)
#---------------------------------------------------------------------------

View File

@@ -0,0 +1,285 @@
from wxPython.wx import *
import cPickle
#----------------------------------------------------------------------
class DoodlePad(wxWindow):
def __init__(self, parent, log):
wxWindow.__init__(self, parent, -1, style=wxSUNKEN_BORDER)
self.log = log
self.SetBackgroundColour(wxWHITE)
self.lines = []
self.x = self.y = 0
self.SetCursor(wxStockCursor(wxCURSOR_PENCIL))
EVT_LEFT_DOWN(self, self.OnLeftDown)
EVT_LEFT_UP(self, self.OnLeftUp)
EVT_RIGHT_UP(self, self.OnRightUp)
EVT_MOTION(self, self.OnMotion)
EVT_PAINT(self, self.OnPaint)
def OnPaint(self, event):
dc = wxPaintDC(self)
self.DrawSavedLines(dc)
def DrawSavedLines(self, dc):
dc.BeginDrawing()
dc.SetPen(wxPen(wxBLUE, 3))
for line in self.lines:
for coords in line:
apply(dc.DrawLine, coords)
dc.EndDrawing()
def OnLeftDown(self, event):
if event.ControlDown():
self.StartDragOpperation()
else:
self.curLine = []
self.x, self.y = event.GetPositionTuple()
self.CaptureMouse()
def OnLeftUp(self, event):
self.lines.append(self.curLine)
self.curLine = []
self.ReleaseMouse()
def OnRightUp(self, event):
self.lines = []
self.Refresh()
def OnMotion(self, event):
if event.Dragging() and not event.ControlDown():
dc = wxClientDC(self)
dc.BeginDrawing()
dc.SetPen(wxPen(wxBLUE, 3))
coords = (self.x, self.y) + event.GetPositionTuple()
self.curLine.append(coords)
apply(dc.DrawLine, coords)
self.x, self.y = event.GetPositionTuple()
dc.EndDrawing()
def StartDragOpperation(self):
# pickle the lines list
linesdata = cPickle.dumps(self.lines, 1)
# create our own data format and use it in a
# custom data object
ldata = wxCustomDataObject(wxCustomDataFormat("DoodleLines"))
ldata.SetData(linesdata)
# Also create a Bitmap version of the drawing
size = self.GetSize()
bmp = wxEmptyBitmap(size.width, size.height)
dc = wxMemoryDC()
dc.SelectObject(bmp)
dc.SetBackground(wxWHITE_BRUSH)
dc.Clear()
self.DrawSavedLines(dc)
dc.SelectObject(wxNullBitmap)
# Now make a data object for the bitmap and also a composite
# data object holding both of the others.
bdata = wxBitmapDataObject(bmp)
data = wxDataObjectComposite()
data.Add(ldata)
data.Add(bdata)
# And finally, create the drop source and begin the drag
# and drop opperation
dropSource = wxDropSource(self)
dropSource.SetData(data)
self.log.WriteText("Begining DragDrop\n")
result = dropSource.DoDragDrop()
self.log.WriteText("DragDrop completed: %d\n" % result)
#----------------------------------------------------------------------
class DoodleDropTarget(wxPyDropTarget):
def __init__(self, window, log):
wxPyDropTarget.__init__(self)
self.log = log
self.dv = window
# specify the type of data we will accept
self.data = wxCustomDataObject(wxCustomDataFormat("DoodleLines"))
self.SetDataObject(self.data)
# some virtual methods that track the progress of the drag
def OnEnter(self, x, y, d):
self.log.WriteText("OnEnter: %d, %d, %d\n" % (x, y, d))
return wxDragCopy
def OnLeave(self):
self.log.WriteText("OnLeave\n")
def OnDrop(self, x, y):
self.log.WriteText("OnDrop: %d %d\n" % (x, y))
return true
#def OnDragOver(self, x, y, d):
# self.log.WriteText("OnDragOver: %d, %d, %d\n" % (x, y, d))
# return wxDragCopy
# Called when OnDrop returns true. We need to get the data and
# do something with it.
def OnData(self, x, y, d):
self.log.WriteText("OnData: %d, %d, %d\n" % (x, y, d))
# copy the data from the drag source to out data object
if self.GetData():
# convert it back to a list of lines and give it to the viewer
linesdata = self.data.GetData()
lines = cPickle.loads(linesdata)
self.dv.SetLines(lines)
return d
class DoodleViewer(wxWindow):
def __init__(self, parent, log):
wxWindow.__init__(self, parent, -1, style=wxSUNKEN_BORDER)
self.log = log
self.SetBackgroundColour(wxWHITE)
self.lines = []
self.x = self.y = 0
dt = DoodleDropTarget(self, log)
self.SetDropTarget(dt)
EVT_PAINT(self, self.OnPaint)
def SetLines(self, lines):
self.lines = lines
self.Refresh()
def OnPaint(self, event):
dc = wxPaintDC(self)
self.DrawSavedLines(dc)
def DrawSavedLines(self, dc):
dc.BeginDrawing()
dc.SetPen(wxPen(wxRED, 3))
for line in self.lines:
for coords in line:
apply(dc.DrawLine, coords)
dc.EndDrawing()
#----------------------------------------------------------------------
class CustomDnDPanel(wxPanel):
def __init__(self, parent, log):
wxPanel.__init__(self, parent, -1)
self.SetFont(wxFont(10, wxSWISS, wxNORMAL, wxBOLD, false))
sizer = wxBoxSizer(wxHORIZONTAL)
text = wxStaticText(self, -1,
"Draw a little picture in this window\n"
"then Ctrl-Drag it to the lower \n"
"window or to another application\n"
"that accepts BMP's as a drop target.\n\n"
"The lower window is accepting a\n"
"custom data type that is a pickled\n"
"Python list of lines data.")
sizer.Add(text, 1, wxALL, 10)
insizer = wxBoxSizer(wxVERTICAL)
insizer.Add(DoodlePad(self, log), 1, wxEXPAND|wxALL, 5)
insizer.Add(DoodleViewer(self, log), 1, wxEXPAND|wxALL, 5)
sizer.Add(insizer, 1, wxEXPAND)
self.SetAutoLayout(true)
self.SetSizer(sizer)
#----------------------------------------------------------------------
#----------------------------------------------------------------------
class TestPanel(wxPanel):
def __init__(self, parent, log):
wxPanel.__init__(self, parent, -1)
self.SetAutoLayout(true)
sizer = wxBoxSizer(wxVERTICAL)
msg = "Custom Drag-And-Drop"
text = wxStaticText(self, -1, "", style=wxALIGN_CENTRE)
text.SetFont(wxFont(24, wxSWISS, wxNORMAL, wxBOLD, false))
text.SetLabel(msg)
w,h = text.GetTextExtent(msg)
text.SetSize(wxSize(w,h+1))
text.SetForegroundColour(wxBLUE)
sizer.Add(text, 0, wxEXPAND|wxALL, 5)
sizer.Add(wxStaticLine(self, -1), 0, wxEXPAND)
sizer.Add(CustomDnDPanel(self, log), 1, wxEXPAND)
self.SetSizer(sizer)
#----------------------------------------------------------------------
def runTest(frame, nb, log):
win = TestPanel(nb, log)
return win
if __name__ == '__main__':
import sys
class DummyLog:
def WriteText(self, text):
sys.stdout.write(text)
class TestApp(wxApp):
def OnInit(self):
self.MakeFrame()
return true
def MakeFrame(self, event=None):
frame = wxFrame(None, -1, "Custom Drag and Drop", size=(550,400))
menu = wxMenu()
menu.Append(6543, "Window")
mb = wxMenuBar()
mb.Append(menu, "New")
frame.SetMenuBar(mb)
EVT_MENU(frame, 6543, self.MakeFrame)
panel = TestPanel(frame, DummyLog())
frame.Show(true)
self.SetTopWindow(frame)
app = TestApp(0)
app.MainLoop()
#----------------------------------------------------------------------
overview = """\
This demo shows Drag and Drop using a custom data type and a custom data object. A type called "DoodleLines" is created and a Python Pickle of a list is actually transfered in the drag and drop opperation.
A second data object is also created containing a bitmap of the image and is made available to any drop target that accepts bitmaps, such as MS Word.
The two data objects are combined in a wxDataObjectComposite and the rest is handled by the framework.
"""

View File

@@ -0,0 +1,127 @@
#!/usr/bin/env python
#----------------------------------------------------------------------------
# Name: DialogUnits.py
# Purpose: A minimal wxPython program that is a bit smarter than test1.
#
# Author: Robin Dunn
#
# Created: A long time ago, in a galaxy far, far away...
# RCS-ID: $Id$
# Copyright: (c) 1998 by Total Control Software
# Licence: wxWindows license
#----------------------------------------------------------------------------
## import all of the wxPython GUI package
from wxPython.wx import *
#---------------------------------------------------------------------------
## Create a new frame class, derived from the wxPython Frame.
class MyFrame(wxFrame):
def __init__(self, parent, id, title):
# First, call the base class' __init__ method to create the frame
wxFrame.__init__(self, parent, id, title,
wxPoint(100, 100), wxSize(160, 100))
# Associate some events with methods of this class
EVT_SIZE(self, self.OnSize)
EVT_MOVE(self, self.OnMove)
EVT_CLOSE(self, self.OnCloseWindow)
# Add a panel and some controls to display the size and position
panel = wxPanel(self, -1)
wxStaticText(panel, -1, "Size:",
wxDLG_PNT(panel, wxPoint(4, 4)), wxDefaultSize)
wxStaticText(panel, -1, "Pos:",
wxDLG_PNT(panel, wxPoint(4, 16)), wxDefaultSize)
self.sizeCtrl = wxTextCtrl(panel, -1, "",
wxDLG_PNT(panel, wxPoint(24, 4)),
wxDLG_SZE(panel, wxSize(36, -1)),
wxTE_READONLY)
self.posCtrl = wxTextCtrl(panel, -1, "",
wxDLG_PNT(panel, wxPoint(24, 16)),
wxDLG_SZE(panel, wxSize(36, -1)),
wxTE_READONLY)
#print wxDLG_PNT(panel, wxPoint(24, 4)), wxDLG_SZE(panel, wxSize(36, -1))
#print wxDLG_PNT(panel, wxPoint(24, 16)),wxDLG_SZE(panel, wxSize(36, -1))
# This method is called automatically when the CLOSE event is
# sent to this window
def OnCloseWindow(self, event):
# tell the window to kill itself
self.Destroy()
# This method is called by the System when the window is resized,
# because of the association above.
def OnSize(self, event):
size = event.GetSize()
self.sizeCtrl.SetValue("%s, %s" % (size.width, size.height))
# tell the event system to continue looking for an event handler,
# so the default handler will get called.
event.Skip()
# This method is called by the System when the window is moved,
# because of the association above.
def OnMove(self, event):
pos = event.GetPosition()
self.posCtrl.SetValue("%s, %s" % (pos.x, pos.y))
#---------------------------------------------------------------------------
# if running standalone
if __name__ == "__main__":
# Every wxWindows application must have a class derived from wxApp
class MyApp(wxApp):
# wxWindows calls this method to initialize the application
def OnInit(self):
# Create an instance of our customized Frame class
frame = MyFrame(NULL, -1, "This is a test")
frame.Show(true)
# Tell wxWindows that this is our main window
self.SetTopWindow(frame)
# Return a success flag
return true
app = MyApp(0) # Create an instance of the application class
app.MainLoop() # Tell it to start processing events
#---------------------------------------------------------------------------
# if running as part of the Demo Framework...
def runTest(frame, nb, log):
win = MyFrame(frame, -1, "This is a test")
frame.otherWin = win
win.Show(true)
overview = """\
A simple example that shows how to use Dialog Units.
"""
#----------------------------------------------------------------------------
#

View File

@@ -0,0 +1,196 @@
from wxPython.wx import *
#----------------------------------------------------------------------
class ClipTextPanel(wxPanel):
def __init__(self, parent, log):
wxPanel.__init__(self, parent, -1)
self.log = log
#self.SetFont(wxFont(10, wxSWISS, wxNORMAL, wxBOLD, false))
sizer = wxBoxSizer(wxVERTICAL)
sizer.Add(wxStaticText(self, -1,
"Copy/Paste text to/from\n"
"this window and other apps"), 0, wxEXPAND|wxALL, 2)
self.text = wxTextCtrl(self, -1, "", style=wxTE_MULTILINE|wxHSCROLL)
sizer.Add(self.text, 1, wxEXPAND)
hsz = wxBoxSizer(wxHORIZONTAL)
hsz.Add(wxButton(self, 6050, " Copy "), 1, wxEXPAND|wxALL, 2)
hsz.Add(wxButton(self, 6051, " Paste "), 1, wxEXPAND|wxALL, 2)
sizer.Add(hsz, 0, wxEXPAND)
sizer.Add(wxButton(self, 6052, " Copy Bitmap "), 0, wxEXPAND|wxALL, 2)
EVT_BUTTON(self, 6050, self.OnCopy)
EVT_BUTTON(self, 6051, self.OnPaste)
EVT_BUTTON(self, 6052, self.OnCopyBitmap)
self.SetAutoLayout(true)
self.SetSizer(sizer)
def OnCopy(self, evt):
self.do = wxTextDataObject()
self.do.SetText(self.text.GetValue())
wxTheClipboard.Open()
wxTheClipboard.SetData(self.do)
wxTheClipboard.Close()
def OnPaste(self, evt):
do = wxTextDataObject()
wxTheClipboard.Open()
success = wxTheClipboard.GetData(do)
wxTheClipboard.Close()
if success:
self.text.SetValue(do.GetText())
else:
wxMessageBox("There is no data in the clipboard in the required format",
"Error")
def OnCopyBitmap(self, evt):
dlg = wxFileDialog(self, "Choose a bitmap to copy", wildcard="*.bmp")
if dlg.ShowModal() == wxID_OK:
bmp = wxBitmap(dlg.GetFilename(), wxBITMAP_TYPE_BMP)
bmpdo = wxBitmapDataObject(bmp)
wxTheClipboard.Open()
wxTheClipboard.SetData(bmpdo)
wxTheClipboard.Close()
wxMessageBox("The bitmap is now in the Clipboard. Switch to a graphics\n"
"editor and try pasting it in...")
dlg.Destroy()
#----------------------------------------------------------------------
class OtherDropTarget(wxPyDropTarget):
def __init__(self, window, log):
wxPyDropTarget.__init__(self)
self.log = log
self.do = wxFileDataObject()
self.SetDataObject(self.do)
def OnEnter(self, x, y, d):
self.log.WriteText("OnEnter: %d, %d, %d\n" % (x, y, d))
return wxDragCopy
#def OnDragOver(self, x, y, d):
# self.log.WriteText("OnDragOver: %d, %d, %d\n" % (x, y, d))
# return wxDragCopy
def OnLeave(self):
self.log.WriteText("OnLeave\n")
def OnDrop(self, x, y):
self.log.WriteText("OnDrop: %d %d\n" % (x, y))
return true
def OnData(self, x, y, d):
self.log.WriteText("OnData: %d, %d, %d\n" % (x, y, d))
self.GetData()
self.log.WriteText("%s\n" % self.do.GetFilenames())
return d
class MyFileDropTarget(wxFileDropTarget):
def __init__(self, window, log):
wxFileDropTarget.__init__(self)
self.window = window
self.log = log
def OnDropFiles(self, x, y, filenames):
self.window.SetInsertionPointEnd()
self.window.WriteText("\n%d file(s) dropped at %d,%d:\n" %
(len(filenames), x, y))
for file in filenames:
self.window.WriteText(file + '\n')
class FileDropPanel(wxPanel):
def __init__(self, parent, log):
wxPanel.__init__(self, parent, -1)
#self.SetFont(wxFont(10, wxSWISS, wxNORMAL, wxBOLD, false))
sizer = wxBoxSizer(wxVERTICAL)
sizer.Add(wxStaticText(self, -1, " \nDrag some files here:"),
0, wxEXPAND|wxALL, 2)
self.text = wxTextCtrl(self, -1, "",
style = wxTE_MULTILINE|wxHSCROLL|wxTE_READONLY)
dt = MyFileDropTarget(self, log)
self.text.SetDropTarget(dt)
sizer.Add(self.text, 1, wxEXPAND)
self.SetAutoLayout(true)
self.SetSizer(sizer)
def WriteText(self, text):
self.text.WriteText(text)
def SetInsertionPointEnd(self):
self.text.SetInsertionPointEnd()
#----------------------------------------------------------------------
#----------------------------------------------------------------------
class TestPanel(wxPanel):
def __init__(self, parent, log):
wxPanel.__init__(self, parent, -1)
self.SetAutoLayout(true)
outsideSizer = wxBoxSizer(wxVERTICAL)
msg = "Clipboard / Drag-And-Drop"
text = wxStaticText(self, -1, "", style=wxALIGN_CENTRE)
text.SetFont(wxFont(24, wxSWISS, wxNORMAL, wxBOLD, false))
text.SetLabel(msg)
w,h = text.GetTextExtent(msg)
text.SetSize(wxSize(w,h+1))
text.SetForegroundColour(wxBLUE)
outsideSizer.Add(text, 0, wxEXPAND|wxALL, 5)
outsideSizer.Add(wxStaticLine(self, -1), 0, wxEXPAND)
inSizer = wxBoxSizer(wxHORIZONTAL)
inSizer.Add(ClipTextPanel(self, log), 1, wxEXPAND)
inSizer.Add(FileDropPanel(self, log), 1, wxEXPAND)
outsideSizer.Add(inSizer, 1, wxEXPAND)
self.SetSizer(outsideSizer)
#----------------------------------------------------------------------
def runTest(frame, nb, log):
win = TestPanel(nb, log)
return win
#----------------------------------------------------------------------
overview = """\
This demo shows some examples of data transfer through clipboard or drag and drop. In wxWindows, these two ways to transfer data (either between different applications or inside one and the same) are very similar which allows to implement both of them using almost the same code - or, in other words, if you implement drag and drop support for your application, you get clipboard support for free and vice versa.
At the heart of both clipboard and drag and drop operations lies the wxDataObject class. The objects of this class (or, to be precise, classes derived from it) represent the data which is being carried by the mouse during drag and drop operation or copied to or pasted from the clipboard. wxDataObject is a "smart" piece of data because it knows which formats it supports (see GetFormatCount and GetAllFormats) and knows how to render itself in any of them (see GetDataHere). It can also receive its value from the outside in a format it supports if it implements the SetData method. Please see the documentation of this class for more details.
Both clipboard and drag and drop operations have two sides: the source and target, the data provider and the data receiver. These which may be in the same application and even the same window when, for example, you drag some text from one position to another in a word processor. Let us describe what each of them should do.
"""

View File

@@ -0,0 +1,47 @@
from wxPython.wx import *
from wxPython.lib.filebrowsebutton import FileBrowseButton, FileBrowseButtonWithHistory
#----------------------------------------------------------------------
class TestPanel(wxPanel):
def __init__(self, parent, ID, log):
wxPanel.__init__(self, parent, ID)
self.log = log
self.fbb = FileBrowseButton(self, -1, wxPoint(20,20), wxSize(450, -1),
changeCallback = self.fbbCallback)
self.fbbh = FileBrowseButtonWithHistory(self, -1, wxPoint(20, 50),
wxSize(450, -1),
#changeCallback = self.fbbhCallback
)
self.fbbh.SetHistory(['You', 'can', 'put', 'some', 'file', 'names', 'here'])
def fbbCallback(self, evt):
self.log.write('FileBrowseButton: %s\n' % evt.GetString())
def fbbhCallback(self, evt):
if hasattr(self, 'fbbh'):
value = evt.GetString()
self.log.write('FileBrowseButtonWithHistory: %s\n' % value)
history = self.fbbh.GetHistory()
history.append(value)
self.fbbh.SetHistory(history)
#----------------------------------------------------------------------
def runTest(frame, nb, log):
win = TestPanel(nb, -1, log)
return win
#----------------------------------------------------------------------
overview = FileBrowseButton.__doc__

View File

@@ -0,0 +1,61 @@
from wxPython.wx import *
#----------------------------------------------------------------------
## class MyFontEnumerator(wxFontEnumerator):
## def __init__(self, list):
## wxFontEnumerator.__init__(self)
## self.list = list
## def OnFacename(self, face):
## self.list.append(face)
## return true
class TestPanel(wxPanel):
def __init__(self, parent, log):
wxPanel.__init__(self, parent, -1)
## list = []
## e = MyFontEnumerator(list)
## e.EnumerateFacenames()
e = wxFontEnumerator()
e.EnumerateFacenames()
list = e.GetFacenames()
list.sort()
wxStaticText(self, -1, "Face names:", wxPoint(15, 50), wxSize(65, 18))
self.lb1 = wxListBox(self, 60, wxPoint(80, 50), wxSize(200, 250),
list, wxLB_SINGLE)
self.lb1.SetSelection(0)
#----------------------------------------------------------------------
def runTest(frame, nb, log):
win = TestPanel(nb, log)
return win
#----------------------------------------------------------------------
overview = """\
wxFontEnumerator enumerates either all available fonts on the system or only the ones with given attributes - either only fixed-width (suited for use in programs such as terminal emulators and the like) or the fonts available in the given encoding.
"""

View File

@@ -0,0 +1,93 @@
from wxPython.wx import *
from wxPython.lib.buttons import wxGenButton, wxGenBitmapButton, \
wxGenToggleButton, wxGenBitmapToggleButton
#----------------------------------------------------------------------
class TestPanel(wxPanel):
def __init__(self, parent, log):
wxPanel.__init__(self, parent, -1)
self.log = log
b = wxButton(self, -1, "A real button", (10,10))
b.SetDefault()
EVT_BUTTON(self, b.GetId(), self.OnButton)
b = wxButton(self, -1, "non-default", (140, 10))
EVT_BUTTON(self, b.GetId(), self.OnButton)
#wxTextCtrl(self, -1, "", (10,40))
b = wxGenButton(self, -1, 'Hello', (10,65))
EVT_BUTTON(self, b.GetId(), self.OnButton)
b = wxGenButton(self, -1, 'disabled', (140,65))
EVT_BUTTON(self, b.GetId(), self.OnButton)
b.Enable(false)
b = wxGenButton(self, -1, 'bigger', (250,50))
EVT_BUTTON(self, b.GetId(), self.OnButton)
b.SetFont(wxFont(20, wxSWISS, wxNORMAL, wxBOLD, false))
b.SetBezelWidth(5)
b.SetBestSize()
b.SetBackgroundColour(wxNamedColour("Navy"))
b.SetForegroundColour(wxWHITE)
#b.SetUseFocusIndicator(false)
b.SetToolTipString("This is a BIG button...")
bmp = wxBitmap('bitmaps/test2.bmp', wxBITMAP_TYPE_BMP)
b = wxGenBitmapButton(self, -1, bmp, (10, 130))
EVT_BUTTON(self, b.GetId(), self.OnButton)
b = wxGenBitmapButton(self, -1, None, (140, 130))
EVT_BUTTON(self, b.GetId(), self.OnButton)
bmp = wxBitmap('bitmaps/lb1.bmp', wxBITMAP_TYPE_BMP)
mask = wxMaskColour(bmp, wxBLUE)
bmp.SetMask(mask)
b.SetBitmapLabel(bmp)
bmp = wxBitmap('bitmaps/lb2.bmp', wxBITMAP_TYPE_BMP)
mask = wxMaskColour(bmp, wxBLUE)
bmp.SetMask(mask)
b.SetBitmapSelected(bmp)
b.SetBestSize()
b = wxGenToggleButton(self, -1, "Toggle Button", (10, 230))
EVT_BUTTON(self, b.GetId(), self.OnToggleButton)
b = wxGenBitmapToggleButton(self, -1, None, (140, 230))
EVT_BUTTON(self, b.GetId(), self.OnToggleButton)
bmp = wxBitmap('bitmaps/lb1.bmp', wxBITMAP_TYPE_BMP)
mask = wxMaskColour(bmp, wxBLUE)
bmp.SetMask(mask)
b.SetBitmapLabel(bmp)
bmp = wxBitmap('bitmaps/lb2.bmp', wxBITMAP_TYPE_BMP)
mask = wxMaskColour(bmp, wxBLUE)
bmp.SetMask(mask)
b.SetBitmapSelected(bmp)
b.SetToggle(true)
b.SetBestSize()
def OnButton(self, event):
self.log.WriteText("Button Clicked: %d\n" % event.GetId())
def OnToggleButton(self, event):
msg = (event.GetIsDown() and "on") or "off"
self.log.WriteText("Button %d Toggled: %s\n" % (event.GetId(), msg))
#----------------------------------------------------------------------
def runTest(frame, nb, log):
win = TestPanel(nb, log)
return win
#----------------------------------------------------------------------
import wxPython.lib.buttons
overview = wxPython.lib.buttons.__doc__

View File

@@ -0,0 +1,231 @@
#!/usr/bin/env python
from wxPython.wx import *
from wxPython.grid import *
#---------------------------------------------------------------------------
class MyCellEditor(wxPyGridCellEditor):
"""
This is a sample GridCellEditor that shows you how to make your own custom
grid editors. All the methods that can be overridden are show here. The
ones that must be overridden are marked with "*Must Override*" in the
docstring.
Notice that in order to call the base class version of these special
methods we use the method name preceded by "base_". This is because these
methods are "virtual" in C++ so if we try to call wxGridCellEditor.Create
for example, then when the wxPython extension module tries to call
ptr->Create(...) then it actually calls the derived class version which
looks up the method in this class and calls it, causing a recursion loop.
If you don't understand any of this, don't worry, just call the "base_"
version instead.
"""
def __init__(self, log):
self.log = log
self.log.write("MyCellEditor ctor\n")
wxPyGridCellEditor.__init__(self)
def Create(self, parent, id, evtHandler):
"""
Called to create the control, which must derive from wxControl.
*Must Override*
"""
self.log.write("MyCellEditor: Create\n")
self._tc = wxTextCtrl(parent, id, "")
self._tc.SetInsertionPoint(0)
self.SetControl(self._tc)
if evtHandler:
self._tc.PushEventHandler(evtHandler)
def SetSize(self, rect):
"""
Called to position/size the edit control within the cell rectangle.
If you don't fill the cell (the rect) then be sure to override
PaintBackground and do something meaningful there.
"""
self.log.write("MyCellEditor: SetSize %s\n" % rect)
self._tc.SetDimensions(rect.x, rect.y, rect.width+2, rect.height+2)
def Show(self, show, attr):
"""
Show or hide the edit control. You can use the attr (if not None)
to set colours or fonts for the control.
"""
self.log.write("MyCellEditor: Show(self, %s, %s)\n" % (show, attr))
self.base_Show(show, attr)
def PaintBackground(self, rect, attr):
"""
Draws the part of the cell not occupied by the edit control. The
base class version just fills it with background colour from the
attribute. In this class the edit control fills the whole cell so
don't do anything at all in order to reduce flicker.
"""
self.log.write("MyCellEditor: PaintBackground\n")
def BeginEdit(self, row, col, grid):
"""
Fetch the value from the table and prepare the edit control
to begin editing. Set the focus to the edit control.
*Must Override*
"""
self.log.write("MyCellEditor: BeginEdit (%d,%d)\n" % (row, col))
self.startValue = grid.GetTable().GetValue(row, col)
self._tc.SetValue(self.startValue)
self._tc.SetInsertionPointEnd()
self._tc.SetFocus()
# For this example, select the text
self._tc.SetSelection(0, self._tc.GetLastPosition())
def EndEdit(self, row, col, grid):
"""
Complete the editing of the current cell. Returns true if the value
has changed. If necessary, the control may be destroyed.
*Must Override*
"""
self.log.write("MyCellEditor: EndEdit (%d,%d)\n" % (row, col))
changed = false
val = self._tc.GetValue()
if val != self.startValue:
changed = true
grid.GetTable().SetValue(row, col, val) # update the table
self.startValue = ''
self._tc.SetValue('')
return changed
def Reset(self):
"""
Reset the value in the control back to its starting value.
*Must Override*
"""
self.log.write("MyCellEditor: Reset\n")
self._tc.SetValue(self.startValue)
self._tc.SetInsertionPointEnd()
def IsAcceptedKey(self, evt):
"""
Return TRUE to allow the given key to start editing: the base class
version only checks that the event has no modifiers. F2 is special
and will always start the editor.
"""
self.log.write("MyCellEditor: IsAcceptedKey: %d\n" % (evt.GetKeyCode()))
## Oops, there's a bug here, we'll have to do it ourself..
##return self.base_IsAcceptedKey(evt)
return (not (evt.ControlDown() or evt.AltDown()) and
evt.GetKeyCode() != WXK_SHIFT)
def StartingKey(self, evt):
"""
If the editor is enabled by pressing keys on the grid, this will be
called to let the editor do something about that first key if desired.
"""
self.log.write("MyCellEditor: StartingKey %d\n" % evt.GetKeyCode())
key = evt.GetKeyCode()
ch = None
if key in [WXK_NUMPAD0, WXK_NUMPAD1, WXK_NUMPAD2, WXK_NUMPAD3, WXK_NUMPAD4,
WXK_NUMPAD5, WXK_NUMPAD6, WXK_NUMPAD7, WXK_NUMPAD8, WXK_NUMPAD9]:
ch = ch = chr(ord('0') + key - WXK_NUMPAD0)
elif key < 256 and key >= 0 and chr(key) in string.printable:
ch = chr(key)
if not evt.ShiftDown():
ch = string.lower(ch)
if ch is not None:
# For this example, replace the text. Normally we would append it.
#self._tc.AppendText(ch)
self._tc.SetValue(ch)
else:
evt.Skip()
def StartingClick(self):
"""
If the editor is enabled by clicking on the cell, this method will be
called to allow the editor to simulate the click on the control if
needed.
"""
self.log.write("MyCellEditor: StartingClick\n")
def Destroy(self):
"""final cleanup"""
self.log.write("MyCellEditor: Destroy\n")
self.base_Destroy()
def Clone(self):
"""
Create a new object which is the copy of this one
*Must Override*
"""
self.log.write("MyCellEditor: Clone\n")
return MyCellEditor(self.log)
#---------------------------------------------------------------------------
class GridEditorTest(wxGrid):
def __init__(self, parent, log):
wxGrid.__init__(self, parent, -1)
self.log = log
self.CreateGrid(10, 3)
# Somebody changed the grid so the type registry takes precedence
# over the default attribute set for editors and renderers, so we
# have to set null handlers for the type registry before the
# default editor will get used otherwise...
#self.RegisterDataType(wxGRID_VALUE_STRING, None, None)
#self.SetDefaultEditor(MyCellEditor(self.log))
# Or we could just do it like this:
#self.RegisterDataType(wxGRID_VALUE_STRING,
# wxGridCellStringRenderer(),
# MyCellEditor(self.log))
# but for this example, we'll just set the custom editor on one cell
self.SetCellEditor(1, 0, MyCellEditor(self.log))
self.SetCellValue(1, 0, "Try to edit this box")
# and on a column
attr = wxGridCellAttr()
attr.SetEditor(MyCellEditor(self.log))
self.SetColAttr(2, attr)
self.SetCellValue(1, 2, "or any in this column")
self.SetColSize(0, 150)
self.SetColSize(1, 150)
self.SetColSize(2, 150)
#---------------------------------------------------------------------------
class TestFrame(wxFrame):
def __init__(self, parent, log):
wxFrame.__init__(self, parent, -1, "Custom Grid Cell Editor Test",
size=(640,480))
grid = GridEditorTest(self, log)
#---------------------------------------------------------------------------
if __name__ == '__main__':
import sys
app = wxPySimpleApp()
frame = TestFrame(None, sys.stdout)
frame.Show(true)
app.MainLoop()

View File

@@ -0,0 +1,153 @@
from wxPython.wx import *
from wxPython.grid import *
import string
#---------------------------------------------------------------------------
class CustomDataTable(wxPyGridTableBase):
"""
"""
def __init__(self, log):
wxPyGridTableBase.__init__(self)
self.log = log
self.colLabels = ['ID', 'Description', 'Severity', 'Priority', 'Platform',
'Opened?', 'Fixed?', 'Tested?']
self.dataTypes = [wxGRID_VALUE_NUMBER,
wxGRID_VALUE_STRING,
wxGRID_VALUE_CHOICE + ':only in a million years!,wish list,minor,normal,major,critical',
wxGRID_VALUE_NUMBER + ':1,5',
wxGRID_VALUE_CHOICE + ':all,MSW,GTK,other',
wxGRID_VALUE_BOOL,
wxGRID_VALUE_BOOL,
wxGRID_VALUE_BOOL]
self.data = [
[1010, "The foo doesn't bar", "major", 1, 'MSW', 1, 1, 1],
[1011, "I've got a wicket in my wocket", "wish list", 2, 'other', 0, 0, 0],
[1012, "Rectangle() returns a triangle", "critical", 5, 'all', 0, 0, 0]
]
#--------------------------------------------------
# required methods for the wxPyGridTableBase interface
def GetNumberRows(self):
return len(self.data) + 1
def GetNumberCols(self):
return len(self.data[0])
def IsEmptyCell(self, row, col):
return not self.data[row][col]
# Get/Set values in the table. The Python version of these
# methods can handle any data-type, (as long as the Editor and
# Renderer understands the type too,) not just strings as in the
# C++ version.
def GetValue(self, row, col):
try:
return self.data[row][col]
except IndexError:
return ''
def SetValue(self, row, col, value):
try:
self.data[row][col] = value
except IndexError:
# add a new row
self.data.append([''] * self.GetNumberCols())
self.SetValue(row, col, value)
# tell the grid we've added a row
msg = wxGridTableMessage(self, # The table
wxGRIDTABLE_NOTIFY_ROWS_APPENDED, # what we did to it
1) # how many
self.GetView().ProcessTableMessage(msg)
#--------------------------------------------------
# Some optional methods
# Called when the grid needs to display labels
def GetColLabelValue(self, col):
return self.colLabels[col]
# Called to determine the kind of editor/renderer to use by
# default, doesn't necessarily have to be the same type used
# nativly by the editor/renderer if they know how to convert.
def GetTypeName(self, row, col):
return self.dataTypes[col]
# Called to determine how the data can be fetched and stored by the
# editor and renderer. This allows you to enforce some type-safety
# in the grid.
def CanGetValueAs(self, row, col, typeName):
colType = string.split(self.dataTypes[col], ':')[0]
if typeName == colType:
return true
else:
return false
def CanSetValueAs(self, row, col, typeName):
return self.CanGetValueAs(row, col, typeName)
#---------------------------------------------------------------------------
class CustTableGrid(wxGrid):
def __init__(self, parent, log):
wxGrid.__init__(self, parent, -1)
table = CustomDataTable(log)
# The second parameter means that the grid is to take ownership of the
# table and will destroy it when done. Otherwise you would need to keep
# a reference to it and call it's Destroy method later.
self.SetTable(table, true)
self.SetRowLabelSize(0)
self.SetMargins(0,0)
self.AutoSizeColumns(false)
EVT_GRID_CELL_LEFT_DCLICK(self, self.OnLeftDClick)
# I do this because I don't like the default behaviour of not starting the
# cell editor on double clicks, but only a second click.
def OnLeftDClick(self, evt):
if self.CanEnableCellControl():
self.EnableCellEditControl()
#---------------------------------------------------------------------------
class TestFrame(wxFrame):
def __init__(self, parent, log):
wxFrame.__init__(self, parent, -1, "Custom Table, data driven Grid Demo", size=(640,480))
grid = CustTableGrid(self, log)
#---------------------------------------------------------------------------
if __name__ == '__main__':
import sys
app = wxPySimpleApp()
frame = TestFrame(None, sys.stdout)
frame.Show(true)
app.MainLoop()
#---------------------------------------------------------------------------

View File

@@ -0,0 +1,62 @@
from wxPython.wx import *
from wxPython.grid import *
#---------------------------------------------------------------------------
class NewEnterHandlingGrid(wxGrid):
def __init__(self, parent, log):
wxGrid.__init__(self, parent, -1)
self.log = log
self.CreateGrid(20, 6)
self.SetCellValue(0, 0, "Enter moves to the right")
self.SetCellValue(0, 5, "Enter wraps to next row")
self.SetColSize(0, 150)
self.SetColSize(5, 150)
EVT_KEY_DOWN(self, self.OnKeyDown)
def OnKeyDown(self, evt):
if evt.KeyCode() != WXK_RETURN:
evt.Skip()
return
if evt.ControlDown(): # the edit control needs this key
evt.Skip()
return
self.DisableCellEditControl()
success = self.MoveCursorRight(evt.ShiftDown())
if not success:
newRow = self.GetGridCursorRow() + 1
if newRow < self.GetTable().GetNumberRows():
self.SetGridCursor(newRow, 0)
self.MakeCellVisible(newRow, 0)
else:
# this would be a good place to add a new row if your app
# needs to do that
pass
#---------------------------------------------------------------------------
class TestFrame(wxFrame):
def __init__(self, parent, log):
wxFrame.__init__(self, parent, -1, "Simple Grid Demo", size=(640,480))
grid = NewEnterHandlingGrid(self, log)
#---------------------------------------------------------------------------
if __name__ == '__main__':
import sys
app = wxPySimpleApp()
frame = TestFrame(None, sys.stdout)
frame.Show(true)
app.MainLoop()
#---------------------------------------------------------------------------

View File

@@ -0,0 +1,71 @@
from wxPython.wx import *
from wxPython.grid import *
#---------------------------------------------------------------------------
class HugeTable(wxPyGridTableBase):
"""
This is all it takes to make a custom data table to plug into a
wxGrid. There are many more methods that can be overridden, but
the ones shown below are the required ones. This table simply
provides strings containing the row and column values.
"""
def __init__(self, log):
wxPyGridTableBase.__init__(self)
self.log = log
def GetNumberRows(self):
return 10000
def GetNumberCols(self):
return 10000
def IsEmptyCell(self, row, col):
return false
def GetValue(self, row, col):
return str( (row, col) )
def SetValue(self, row, col, value):
self.log.write('SetValue(%d, %d, "%s") ignored.\n' % (row, col, value))
#---------------------------------------------------------------------------
class HugeTableGrid(wxGrid):
def __init__(self, parent, log):
wxGrid.__init__(self, parent, -1)
table = HugeTable(log)
# The second parameter means that the grid is to take ownership of the
# table and will destroy it when done. Otherwise you would need to keep
# a reference to it and call it's Destroy method later.
self.SetTable(table, true)
#---------------------------------------------------------------------------
class TestFrame(wxFrame):
def __init__(self, parent, log):
wxFrame.__init__(self, parent, -1, "Huge (virtual) Table Demo", size=(640,480))
grid = HugeTableGrid(self, log)
#---------------------------------------------------------------------------
if __name__ == '__main__':
import sys
app = wxPySimpleApp()
frame = TestFrame(None, sys.stdout)
frame.Show(true)
app.MainLoop()
#---------------------------------------------------------------------------

189
wxPython/demo/GridSimple.py Normal file
View File

@@ -0,0 +1,189 @@
from wxPython.wx import *
from wxPython.grid import *
#---------------------------------------------------------------------------
class SimpleGrid(wxGrid):
def __init__(self, parent, log):
wxGrid.__init__(self, parent, -1)
self.log = log
self.moveTo = None
EVT_IDLE(self, self.OnIdle)
self.CreateGrid(25, 25)
# simple cell formatting
self.SetColSize(3, 200)
self.SetRowSize(4, 45)
self.SetCellValue(0, 0, "First cell")
self.SetCellValue(1, 1, "Another cell")
self.SetCellValue(2, 2, "Yet another cell")
self.SetCellFont(0, 0, wxFont(12, wxROMAN, wxITALIC, wxNORMAL))
self.SetCellTextColour(1, 1, wxRED)
self.SetCellBackgroundColour(2, 2, wxCYAN)
# attribute objects let you keep a set of formatting values
# in one spot, and reuse them if needed
attr = wxGridCellAttr()
attr.SetTextColour(wxBLACK)
attr.SetBackgroundColour(wxRED)
attr.SetFont(wxFont(10, wxSWISS, wxNORMAL, wxBOLD))
# you can set cell attributes for the whole row (or column)
self.SetRowAttr(5, attr)
self.SetColLabelValue(0, "Custom")
self.SetColLabelValue(1, "column")
self.SetColLabelValue(2, "labels")
# test all the events
EVT_GRID_CELL_LEFT_CLICK(self, self.OnCellLeftClick)
EVT_GRID_CELL_RIGHT_CLICK(self, self.OnCellRightClick)
EVT_GRID_CELL_LEFT_DCLICK(self, self.OnCellLeftDClick)
EVT_GRID_CELL_RIGHT_DCLICK(self, self.OnCellRightDClick)
EVT_GRID_LABEL_LEFT_CLICK(self, self.OnLabelLeftClick)
EVT_GRID_LABEL_RIGHT_CLICK(self, self.OnLabelRightClick)
EVT_GRID_LABEL_LEFT_DCLICK(self, self.OnLabelLeftDClick)
EVT_GRID_LABEL_RIGHT_DCLICK(self, self.OnLabelRightDClick)
EVT_GRID_ROW_SIZE(self, self.OnRowSize)
EVT_GRID_COL_SIZE(self, self.OnColSize)
EVT_GRID_RANGE_SELECT(self, self.OnRangeSelect)
EVT_GRID_CELL_CHANGE(self, self.OnCellChange)
EVT_GRID_SELECT_CELL(self, self.OnSelectCell)
EVT_GRID_EDITOR_SHOWN(self, self.OnEditorShown)
EVT_GRID_EDITOR_HIDDEN(self, self.OnEditorHidden)
def OnCellLeftClick(self, evt):
self.log.write("OnCellLeftClick: (%d,%d) %s\n" %
(evt.GetRow(), evt.GetCol(), evt.GetPosition()))
evt.Skip()
def OnCellRightClick(self, evt):
self.log.write("OnCellRightClick: (%d,%d) %s\n" %
(evt.GetRow(), evt.GetCol(), evt.GetPosition()))
evt.Skip()
def OnCellLeftDClick(self, evt):
self.log.write("OnCellLeftDClick: (%d,%d) %s\n" %
(evt.GetRow(), evt.GetCol(), evt.GetPosition()))
evt.Skip()
def OnCellRightDClick(self, evt):
self.log.write("OnCellRightDClick: (%d,%d) %s\n" %
(evt.GetRow(), evt.GetCol(), evt.GetPosition()))
evt.Skip()
def OnLabelLeftClick(self, evt):
self.log.write("OnLabelLeftClick: (%d,%d) %s\n" %
(evt.GetRow(), evt.GetCol(), evt.GetPosition()))
evt.Skip()
def OnLabelRightClick(self, evt):
self.log.write("OnLabelRightClick: (%d,%d) %s\n" %
(evt.GetRow(), evt.GetCol(), evt.GetPosition()))
evt.Skip()
def OnLabelLeftDClick(self, evt):
self.log.write("OnLabelLeftDClick: (%d,%d) %s\n" %
(evt.GetRow(), evt.GetCol(), evt.GetPosition()))
evt.Skip()
def OnLabelRightDClick(self, evt):
self.log.write("OnLabelRightDClick: (%d,%d) %s\n" %
(evt.GetRow(), evt.GetCol(), evt.GetPosition()))
evt.Skip()
def OnRowSize(self, evt):
self.log.write("OnRowSize: row %d, %s\n" %
(evt.GetRowOrCol(), evt.GetPosition()))
evt.Skip()
def OnColSize(self, evt):
self.log.write("OnColSize: col %d, %s\n" %
(evt.GetRowOrCol(), evt.GetPosition()))
evt.Skip()
def OnRangeSelect(self, evt):
if evt.Selecting():
self.log.write("OnRangeSelect: top-left %s, bottom-right %s\n" %
(evt.GetTopLeftCoords(), evt.GetBottomRightCoords()))
evt.Skip()
def OnCellChange(self, evt):
self.log.write("OnCellChange: (%d,%d) %s\n" %
(evt.GetRow(), evt.GetCol(), evt.GetPosition()))
# Show how to stay in a cell that has bad data. We can't just
# call SetGridCursor here since we are nested inside one so it
# won't have any effect. Instead, set coordinants to move to in
# idle time.
value = self.GetCellValue(evt.GetRow(), evt.GetCol())
if value == 'no good':
self.moveTo = evt.GetRow(), evt.GetCol()
def OnIdle(self, evt):
if self.moveTo != None:
self.SetGridCursor(self.moveTo[0], self.moveTo[1])
self.moveTo = None
def OnSelectCell(self, evt):
self.log.write("OnSelectCell: (%d,%d) %s\n" %
(evt.GetRow(), evt.GetCol(), evt.GetPosition()))
# Another way to stay in a cell that has a bad value...
row = self.GetGridCursorRow()
col = self.GetGridCursorCol()
if self.IsCellEditControlEnabled():
self.HideCellEditControl()
self.DisableCellEditControl()
value = self.GetCellValue(row, col)
if value == 'no good 2':
return # cancels the cell selection
else:
evt.Skip()
def OnEditorShown(self, evt):
self.log.write("OnEditorShown: (%d,%d) %s\n" %
(evt.GetRow(), evt.GetCol(), evt.GetPosition()))
evt.Skip()
def OnEditorHidden(self, evt):
self.log.write("OnEditorHidden: (%d,%d) %s\n" %
(evt.GetRow(), evt.GetCol(), evt.GetPosition()))
evt.Skip()
#---------------------------------------------------------------------------
class TestFrame(wxFrame):
def __init__(self, parent, log):
wxFrame.__init__(self, parent, -1, "Simple Grid Demo", size=(640,480))
grid = SimpleGrid(self, log)
#---------------------------------------------------------------------------
if __name__ == '__main__':
import sys
app = wxPySimpleApp()
frame = TestFrame(None, sys.stdout)
frame.Show(true)
app.MainLoop()
#---------------------------------------------------------------------------

View File

@@ -0,0 +1,181 @@
from wxPython.wx import *
from wxPython.grid import *
import string, random
#---------------------------------------------------------------------------
class MyCustomRenderer(wxPyGridCellRenderer):
def __init__(self):
wxPyGridCellRenderer.__init__(self)
def Draw(self, grid, attr, dc, rect, row, col, isSelected):
dc.SetBackgroundMode(wxSOLID)
dc.SetBrush(wxBrush(wxBLACK, wxSOLID))
dc.SetPen(wxTRANSPARENT_PEN)
dc.DrawRectangle(rect.x, rect.y, rect.width, rect.height)
dc.SetBackgroundMode(wxTRANSPARENT)
dc.SetFont(attr.GetFont())
text = grid.GetCellValue(row, col)
colors = [wxRED, wxWHITE, wxCYAN]
x = rect.x + 1
y = rect.y + 1
for ch in text:
dc.SetTextForeground(random.choice(colors))
dc.DrawText(ch, x, y)
w, h = dc.GetTextExtent(ch)
x = x + w
if x > rect.right - 5:
break
def GetBestSize(self, grid, attr, dc, row, col):
text = grid.GetCellValue(row, col)
dc.SetFont(attr.GetFont())
w, h = dc.GetTextExtent(text)
return wxSize(w, h)
def Clone(self):
return MyCustomRenderer()
#---------------------------------------------------------------------------
rendererDemoData = [
('wxGridCellStringRenderer\n(the default)', 'this is a text value', wxGridCellStringRenderer, ()),
('wxGridCellNumberRenderer', '12345', wxGridCellNumberRenderer, ()),
('wxGridCellFloatRenderer', '1234.5678', wxGridCellFloatRenderer, (6,2)),
('wxGridCellBoolRenderer', '1', wxGridCellBoolRenderer, ()),
('MyCustomRenderer', 'This is my renderer', MyCustomRenderer, ()),
]
editorDemoData = [
('wxGridCellTextEditor\n(the default)', 'Here is some more text', wxGridCellTextEditor, ()),
('wxGridCellNumberEditor\nwith min,max', '101', wxGridCellNumberEditor, (5, 10005)),
('wxGridCellNumberEditor\nwithout bounds', '101', wxGridCellNumberEditor, ()),
('wxGridCellFloatEditor', '1234.5678', wxGridCellFloatEditor, ()),
('wxGridCellBoolEditor', '1', wxGridCellBoolEditor, ()),
('wxGridCellChoiceEditor', 'one', wxGridCellChoiceEditor, (['one', 'two', 'three', 'four',
'kick', 'Microsoft', 'out the',
'door'], false)),
]
comboDemoData = [
('wxGridCellNumberRenderer\nwxGridCellNumberEditor', '20792', wxGridCellNumberRenderer, wxGridCellNumberEditor),
('wxGridCellBoolRenderer\nwxGridCellBoolEditor', '1', wxGridCellBoolRenderer, wxGridCellBoolEditor),
]
class EditorsAndRenderersGrid(wxGrid):
def __init__(self, parent, log):
wxGrid.__init__(self, parent, -1)
self.log = log
self.CreateGrid(25, 8)
renCol = 1
edCol = 4
self.SetCellValue(0, renCol, '''\
Cell Renderers are used to draw
the contents of the cell when they
need to be refreshed. Different
types of Renderers can be plugged in
to different cells in the grid, it can
even be automatically determined based
on the type of data in the cell.
''')
self.SetCellValue(0, edCol, '''\
Cell Editors are used when the
value of the cell is edited by
the user. An editor class is
wrapped around a an object
derived from wxControl and it
implements some methods required
to integrate with the grid.
''')
self.SetCellValue(16, renCol, '''\
Here are some combinations of Editors and
Renderers used together.
''')
row = 2
for label, value, renderClass, args in rendererDemoData:
renderer = apply(renderClass, args)
self.SetCellValue(row, renCol, label)
self.SetCellValue(row, renCol+1, value)
self.SetCellRenderer(row, renCol+1, renderer)
row = row + 2
row = 2
for label, value, editorClass, args in editorDemoData:
editor = apply(editorClass, args)
self.SetCellValue(row, edCol, label)
self.SetCellValue(row, edCol+1, value)
self.SetCellEditor(row, edCol+1, editor)
row = row + 2
row = 18
for label, value, renClass, edClass in comboDemoData:
self.SetCellValue(row, renCol, label)
self.SetCellValue(row, renCol+1, value)
editor = apply(edClass, ()) #args)
renderer = apply(renClass, ()) #args)
self.SetCellEditor(row, renCol+1, editor)
self.SetCellRenderer(row, renCol+1, renderer)
row = row + 2
font = self.GetFont()
font.SetWeight(wxBOLD)
attr = wxGridCellAttr()
attr.SetFont(font)
attr.SetBackgroundColour(wxLIGHT_GREY)
attr.SetReadOnly(true)
attr.SetAlignment(wxRIGHT, -1)
self.SetColAttr(renCol, attr)
self.SetColAttr(edCol, attr)
# There is a bug in wxGTK for this method...
if wxPlatform != '__WXGTK__':
self.AutoSizeColumns(true)
self.AutoSizeRows(true)
EVT_GRID_CELL_LEFT_DCLICK(self, self.OnLeftDClick)
# I do this because I don't like the default behaviour of not starting the
# cell editor on double clicks, but only a second click.
def OnLeftDClick(self, evt):
if self.CanEnableCellControl():
self.EnableCellEditControl()
#---------------------------------------------------------------------------
class TestFrame(wxFrame):
def __init__(self, parent, log):
wxFrame.__init__(self, parent, -1, "Editors and Renderers Demo", size=(640,480))
grid = EditorsAndRenderersGrid(self, log)
#---------------------------------------------------------------------------
if __name__ == '__main__':
import sys
app = wxPySimpleApp()
frame = TestFrame(None, sys.stdout)
frame.Show(true)
app.MainLoop()
#---------------------------------------------------------------------------

62
wxPython/demo/Layoutf.py Normal file
View File

@@ -0,0 +1,62 @@
from wxPython.wx import *
from wxPython.lib.layoutf import Layoutf
#---------------------------------------------------------------------------
class TestLayoutf(wxPanel):
def __init__(self, parent):
wxPanel.__init__(self, parent, -1)
self.SetAutoLayout(true)
EVT_BUTTON(self, 100, self.OnButton)
self.panelA = wxWindow(self, -1, wxPyDefaultPosition, wxPyDefaultSize, wxSIMPLE_BORDER)
self.panelA.SetBackgroundColour(wxBLUE)
self.panelA.SetConstraints(Layoutf('t=t10#1;l=l10#1;b=b10#1;r%r50#1',(self,)))
self.panelB = wxWindow(self, -1, wxPyDefaultPosition, wxPyDefaultSize, wxSIMPLE_BORDER)
self.panelB.SetBackgroundColour(wxRED)
self.panelB.SetConstraints(Layoutf('t=t10#1;r=r10#1;b%b30#1;l>10#2', (self,self.panelA)))
self.panelC = wxWindow(self, -1, wxPyDefaultPosition, wxPyDefaultSize, wxSIMPLE_BORDER)
self.panelC.SetBackgroundColour(wxWHITE)
self.panelC.SetConstraints(Layoutf('t_10#3;r=r10#1;b=b10#1;l>10#2', (self,self.panelA,self.panelB)))
b = wxButton(self.panelA, 100, ' Panel A ')
b.SetConstraints(Layoutf('X=X#1;Y=Y#1;h*;w%w50#1', (self.panelA,)))
b = wxButton(self.panelB, 100, ' Panel B ')
b.SetConstraints(Layoutf('t=t2#1;r=r4#1;h*;w*', (self.panelB,)))
self.panelD = wxWindow(self.panelC, -1, wxPyDefaultPosition, wxPyDefaultSize, wxSIMPLE_BORDER)
self.panelD.SetBackgroundColour(wxGREEN)
self.panelD.SetConstraints(Layoutf('b%h50#1;r%w50#1;h=h#2;w=w#2', (self.panelC, b)))
b = wxButton(self.panelC, 100, ' Panel C ')
b.SetConstraints(Layoutf('t_#1;l>#1;h*;w*', (self.panelD,)))
wxStaticText(self.panelD, -1, "Panel D", wxPoint(4, 4)).SetBackgroundColour(wxGREEN)
def OnButton(self, event):
wxBell()
#---------------------------------------------------------------------------
def runTest(frame, nb, log):
win = TestLayoutf(nb)
return win
#---------------------------------------------------------------------------
overview = Layoutf.__doc__

53
wxPython/demo/MDIDemo.py Normal file
View File

@@ -0,0 +1,53 @@
#!/usr/bin/env python
from wxPython.wx import *
from wxScrolledWindow import MyCanvas
#----------------------------------------------------------------------
class MyParentFrame(wxMDIParentFrame):
def __init__(self):
wxMDIParentFrame.__init__(self, None, -1, "MDI Parent", size=(600,400))
self.winCount = 0
menu = wxMenu()
menu.Append(5000, "&New Window")
menu.AppendSeparator()
menu.Append(5001, "E&xit")
menubar = wxMenuBar()
menubar.Append(menu, "&File")
self.SetMenuBar(menubar)
self.CreateStatusBar()
EVT_MENU(self, 5000, self.OnNewWindow)
EVT_MENU(self, 5001, self.OnExit)
def OnExit(self, evt):
self.Close(true)
def OnNewWindow(self, evt):
self.winCount = self.winCount + 1
win = wxMDIChildFrame(self, -1, "Child Window: %d" % self.winCount)
canvas = MyCanvas(win)
win.Show(true)
#----------------------------------------------------------------------
class MyApp(wxApp):
def OnInit(self):
frame = MyParentFrame()
frame.Show(true)
self.SetTopWindow(frame)
return true
app = MyApp(0)
app.MainLoop()

View File

@@ -0,0 +1,140 @@
#!/usr/bin/env python
from wxPython.wx import *
from wxScrolledWindow import MyCanvas
#----------------------------------------------------------------------
class MyParentFrame(wxMDIParentFrame):
ID_WINDOW_TOP = 5100
ID_WINDOW_LEFT1 = 5101
ID_WINDOW_LEFT2 = 5102
ID_WINDOW_BOTTOM = 5103
def __init__(self):
wxMDIParentFrame.__init__(self, None, -1, "MDI Parent", size=(600,400),
style = wxDEFAULT_FRAME_STYLE | wxHSCROLL | wxVSCROLL)
self.winCount = 0
menu = wxMenu()
menu.Append(5000, "&New Window")
menu.AppendSeparator()
menu.Append(5001, "E&xit")
menubar = wxMenuBar()
menubar.Append(menu, "&File")
self.SetMenuBar(menubar)
#self.CreateStatusBar()
EVT_MENU(self, 5000, self.OnNewWindow)
EVT_MENU(self, 5001, self.OnExit)
EVT_SASH_DRAGGED_RANGE(self,
self.ID_WINDOW_TOP, self.ID_WINDOW_BOTTOM,
self.OnSashDrag)
EVT_SIZE(self, self.OnSize)
# Create some layout windows
# A window like a toolbar
win = wxSashLayoutWindow(self, self.ID_WINDOW_TOP, style = wxNO_BORDER|wxSW_3D)
win.SetDefaultSize((1000, 30))
win.SetOrientation(wxLAYOUT_HORIZONTAL)
win.SetAlignment(wxLAYOUT_TOP)
win.SetBackgroundColour(wxColour(255, 0, 0))
win.SetSashVisible(wxSASH_BOTTOM, true)
self.topWindow = win
# A window like a statusbar
win = wxSashLayoutWindow(self, self.ID_WINDOW_BOTTOM, style = wxNO_BORDER|wxSW_3D)
win.SetDefaultSize((1000, 30))
win.SetOrientation(wxLAYOUT_HORIZONTAL)
win.SetAlignment(wxLAYOUT_BOTTOM)
win.SetBackgroundColour(wxColour(0, 0, 255))
win.SetSashVisible(wxSASH_TOP, true)
self.bottomWindow = win
# A window to the left of the client window
win = wxSashLayoutWindow(self, self.ID_WINDOW_LEFT1, style = wxNO_BORDER|wxSW_3D)
win.SetDefaultSize((120, 1000))
win.SetOrientation(wxLAYOUT_VERTICAL)
win.SetAlignment(wxLAYOUT_LEFT)
win.SetBackgroundColour(wxColour(0, 255, 0))
win.SetSashVisible(wxSASH_RIGHT, TRUE)
win.SetExtraBorderSize(10)
textWindow = wxTextCtrl(win, -1, "", wxDefaultPosition, wxDefaultSize,
wxTE_MULTILINE|wxSUNKEN_BORDER)
textWindow.SetValue("A sub window")
self.leftWindow1 = win
# Another window to the left of the client window
win = wxSashLayoutWindow(self, self.ID_WINDOW_LEFT2, style = wxNO_BORDER|wxSW_3D)
win.SetDefaultSize((120, 1000))
win.SetOrientation(wxLAYOUT_VERTICAL)
win.SetAlignment(wxLAYOUT_LEFT)
win.SetBackgroundColour(wxColour(0, 255, 255))
win.SetSashVisible(wxSASH_RIGHT, TRUE)
self.leftWindow2 = win
def OnSashDrag(self, event):
if event.GetDragStatus() == wxSASH_STATUS_OUT_OF_RANGE:
return
eID = event.GetId()
if eID == self.ID_WINDOW_TOP:
self.topWindow.SetDefaultSize(wxSize(1000, event.GetDragRect().height))
elif eID == self.ID_WINDOW_LEFT1:
self.leftWindow1.SetDefaultSize(wxSize(event.GetDragRect().width, 1000))
elif eID == self.ID_WINDOW_LEFT2:
self.leftWindow2.SetDefaultSize(wxSize(event.GetDragRect().width, 1000))
elif eID == self.ID_WINDOW_BOTTOM:
self.bottomWindow.SetDefaultSize(wxSize(1000, event.GetDragRect().height))
wxLayoutAlgorithm().LayoutMDIFrame(self)
self.GetClientWindow().Refresh()
def OnSize(self, event):
wxLayoutAlgorithm().LayoutMDIFrame(self)
def OnExit(self, evt):
self.Close(true)
def OnNewWindow(self, evt):
self.winCount = self.winCount + 1
win = wxMDIChildFrame(self, -1, "Child Window: %d" % self.winCount)
canvas = MyCanvas(win)
win.Show(true)
#----------------------------------------------------------------------
class MyApp(wxApp):
def OnInit(self):
frame = MyParentFrame()
frame.Show(true)
self.SetTopWindow(frame)
return true
app = MyApp(0)
app.MainLoop()

544
wxPython/demo/Main.py Normal file
View File

@@ -0,0 +1,544 @@
#!/bin/env python
#----------------------------------------------------------------------------
# Name: Main.py
# Purpose: Testing lots of stuff, controls, window types, etc.
#
# Author: Robin Dunn
#
# Created: A long time ago, in a galaxy far, far away...
# RCS-ID: $Id$
# Copyright: (c) 1999 by Total Control Software
# Licence: wxWindows license
#----------------------------------------------------------------------------
import sys, os
from wxPython.wx import *
from wxPython.lib.splashscreen import SplashScreen
from wxPython.html import wxHtmlWindow
#---------------------------------------------------------------------------
_treeList = [
('New since last release', ['wxProcess',
]),
('Managed Windows', ['wxFrame', 'wxDialog', 'wxMiniFrame']),
('Non-Managed Windows', ['wxGrid', 'wxSashWindow',
'wxScrolledWindow', 'wxSplitterWindow',
'wxStatusBar', 'wxNotebook',
'wxHtmlWindow',
'wxStyledTextCtrl_1', 'wxStyledTextCtrl_2',]),
('Common Dialogs', ['wxColourDialog', 'wxDirDialog', 'wxFileDialog',
'wxSingleChoiceDialog', 'wxTextEntryDialog',
'wxFontDialog', 'wxPageSetupDialog', 'wxPrintDialog',
'wxMessageDialog', 'wxProgressDialog']),
('Controls', ['wxButton', 'wxCheckBox', 'wxCheckListBox', 'wxChoice',
'wxComboBox', 'wxGauge', 'wxListBox', 'wxListCtrl', 'wxTextCtrl',
'wxTreeCtrl', 'wxSpinButton', 'wxSpinCtrl', 'wxStaticText',
'wxStaticBitmap', 'wxRadioBox', 'wxSlider', 'wxToolBar',
'wxCalendarCtrl',
]),
('Window Layout', ['wxLayoutConstraints', 'Sizers', ]),
('Miscellaneous', [ 'DragAndDrop', 'CustomDragAndDrop', 'FontEnumerator',
'wxTimer', 'wxValidator', 'wxGLCanvas', 'DialogUnits',
'wxImage', 'wxMask', 'PrintFramework', 'wxOGL',
'PythonEvents', 'Threads',
'ActiveXWrapper_Acrobat', 'ActiveXWrapper_IE',
'wxDragImage',
]),
('wxPython Library', ['Layoutf', 'wxScrolledMessageDialog',
'wxMultipleChoiceDialog', 'wxPlotCanvas', 'wxFloatBar',
'PyShell', 'wxCalendar', 'wxMVCTree', 'wxVTKRenderWindow',
'FileBrowseButton', 'GenericButtons', 'wxEditor',
'PyShellWindow',
]),
('Cool Contribs', ['pyTree', 'hangman', 'SlashDot', 'XMLtreeview']),
]
#---------------------------------------------------------------------------
class wxPythonDemo(wxFrame):
def __init__(self, parent, id, title):
wxFrame.__init__(self, parent, -1, title, size = (800, 600),
style=wxDEFAULT_FRAME_STYLE|wxNO_FULL_REPAINT_ON_RESIZE)
self.cwd = os.getcwd()
self.curOverview = ""
if wxPlatform == '__WXMSW__':
icon = wxIcon('bitmaps/mondrian.ico', wxBITMAP_TYPE_ICO)
self.SetIcon(icon)
# setup a taskbar icon, and catch some events from it
self.tbicon = wxTaskBarIcon()
self.tbicon.SetIcon(icon, "wxPython Demo")
EVT_TASKBAR_LEFT_DCLICK(self.tbicon, self.OnTaskBarActivate)
EVT_TASKBAR_RIGHT_UP(self.tbicon, self.OnTaskBarMenu)
EVT_MENU(self.tbicon, self.TBMENU_RESTORE, self.OnTaskBarActivate)
EVT_MENU(self.tbicon, self.TBMENU_CLOSE, self.OnTaskBarClose)
self.otherWin = None
EVT_IDLE(self, self.OnIdle)
EVT_CLOSE(self, self.OnCloseWindow)
self.Centre(wxBOTH)
self.CreateStatusBar(1, wxST_SIZEGRIP)
splitter = wxSplitterWindow(self, -1, style=wxNO_3D|wxSP_3D)
splitter2 = wxSplitterWindow(splitter, -1, style=wxNO_3D|wxSP_3D)
# Prevent TreeCtrl from displaying all items after destruction
self.dying = false
# Make a File menu
self.mainmenu = wxMenuBar()
menu = wxMenu()
exitID = wxNewId()
menu.Append(exitID, 'E&xit\tAlt-X', 'Get the heck outta here!')
EVT_MENU(self, exitID, self.OnFileExit)
self.mainmenu.Append(menu, '&File')
# Make a Demo menu
menu = wxMenu()
for item in _treeList:
submenu = wxMenu()
for childItem in item[1]:
mID = wxNewId()
submenu.Append(mID, childItem)
EVT_MENU(self, mID, self.OnDemoMenu)
menu.AppendMenu(wxNewId(), item[0], submenu)
self.mainmenu.Append(menu, '&Demo')
# Make a Help menu
helpID = wxNewId()
menu = wxMenu()
menu.Append(helpID, '&About\tCtrl-H', 'wxPython RULES!!!')
EVT_MENU(self, helpID, self.OnHelpAbout)
self.mainmenu.Append(menu, '&Help')
self.SetMenuBar(self.mainmenu)
# set the menu accellerator table...
aTable = wxAcceleratorTable([(wxACCEL_ALT, ord('X'), exitID),
(wxACCEL_CTRL, ord('H'), helpID)])
self.SetAcceleratorTable(aTable)
# Create a TreeCtrl
tID = wxNewId()
self.treeMap = {}
self.tree = wxTreeCtrl(splitter, tID,
style=wxTR_HAS_BUTTONS |
wxTR_EDIT_LABELS |
wxTR_HAS_VARIABLE_ROW_HEIGHT |
wxSUNKEN_BORDER)
#self.tree.SetBackgroundColour(wxNamedColour("Pink"))
root = self.tree.AddRoot("Overview")
firstChild = None
for item in _treeList:
child = self.tree.AppendItem(root, item[0])
if not firstChild: firstChild = child
for childItem in item[1]:
theDemo = self.tree.AppendItem(child, childItem)
self.treeMap[childItem] = theDemo
self.tree.Expand(root)
self.tree.Expand(firstChild)
EVT_TREE_ITEM_EXPANDED (self.tree, tID, self.OnItemExpanded)
EVT_TREE_ITEM_COLLAPSED (self.tree, tID, self.OnItemCollapsed)
EVT_TREE_SEL_CHANGED (self.tree, tID, self.OnSelChanged)
EVT_LEFT_DOWN (self.tree, self.OnTreeLeftDown)
# Create a Notebook
self.nb = wxNotebook(splitter2, -1)
# Set up a wxHtmlWindow on the Overview Notebook page
# 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, "Overview")
else: # hopefully I can remove this hacky code soon
panel = wxPanel(self.nb, -1)
self.ovr = wxHtmlWindow(panel, -1, size=(400, 400))
self.nb.AddPage(panel, "Overview")
def OnOvrSize(evt, ovr=self.ovr):
ovr.SetSize(evt.GetSize())
EVT_SIZE(panel, OnOvrSize)
self.SetOverview("Overview", overview)
# Set up a TextCtrl on the Demo Code Notebook page
self.txt = wxTextCtrl(self.nb, -1,
style = wxTE_MULTILINE|wxTE_READONLY|wxHSCROLL)
self.txt.SetFont(wxFont(9, wxMODERN, wxNORMAL, wxNORMAL, false))
self.nb.AddPage(self.txt, "Demo Code")
# Set up a log on the View Log Notebook page
self.log = wxTextCtrl(splitter2, -1,
style = wxTE_MULTILINE|wxTE_READONLY|wxHSCROLL)
# Set the wxWindows log target to be this textctrl
wxLog_SetActiveTarget(wxLogTextCtrl(self.log))
self.Show(true)
# add the windows to the splitter and split it.
splitter2.SplitHorizontally(self.nb, self.log)
splitter2.SetSashPosition(450, true)
splitter2.SetMinimumPaneSize(20)
splitter.SplitVertically(self.tree, splitter2)
splitter.SetSashPosition(180, true)
splitter.SetMinimumPaneSize(20)
# select initial items
self.nb.SetSelection(0)
self.tree.SelectItem(root)
if len(sys.argv) == 2:
try:
selectedDemo = self.treeMap[sys.argv[1]]
except:
selectedDemo = None
if selectedDemo:
self.tree.SelectItem(selectedDemo)
self.tree.EnsureVisible(selectedDemo)
wxLogMessage('window handle: %s' % self.GetHandle())
#---------------------------------------------
def WriteText(self, text):
if text[-1:] == '\n':
text = text[:-1]
wxLogMessage(text)
def write(self, txt):
self.WriteText(txt)
#---------------------------------------------
def OnItemExpanded(self, event):
item = event.GetItem()
wxLogMessage("OnItemExpanded: %s" % self.tree.GetItemText(item))
event.Skip()
#---------------------------------------------
def OnItemCollapsed(self, event):
item = event.GetItem()
wxLogMessage("OnItemCollapsed: %s" % self.tree.GetItemText(item))
event.Skip()
#---------------------------------------------
def OnTreeLeftDown(self, event):
pt = event.GetPosition();
item, flags = self.tree.HitTest(pt)
if item == self.tree.GetSelection():
self.SetOverview(self.tree.GetItemText(item), self.curOverview)
event.Skip()
#---------------------------------------------
def OnSelChanged(self, event):
if self.dying:
return
item = event.GetItem()
itemText = self.tree.GetItemText(item)
self.RunDemo(itemText)
#---------------------------------------------
def RunDemo(self, itemText):
os.chdir(self.cwd)
if self.nb.GetPageCount() == 3:
if self.nb.GetSelection() == 2:
self.nb.SetSelection(0)
self.nb.DeletePage(2)
if itemText == 'Overview':
self.GetDemoFile('Main.py')
self.SetOverview('Overview', overview)
self.nb.Refresh();
self.window = None
else:
if os.path.exists(itemText + '.py'):
wxBeginBusyCursor()
wxLogMessage("Running demo %s.py..." % itemText)
try:
self.GetDemoFile(itemText + '.py')
module = __import__(itemText, globals())
self.SetOverview(itemText, module.overview)
finally:
wxEndBusyCursor()
# in case runTest is modal, make sure things look right...
self.nb.Refresh();
wxYield()
self.window = module.runTest(self, self.nb, self) ###
if self.window:
self.nb.AddPage(self.window, 'Demo')
wxYield()
self.nb.SetSelection(2)
else:
self.ovr.SetPage("")
self.txt.Clear()
self.window = None
#---------------------------------------------
# Get the Demo files
def GetDemoFile(self, filename):
self.txt.Clear()
try:
self.txt.SetValue(open(filename).read())
except IOError:
self.txt.WriteText("Cannot open %s file." % filename)
self.txt.SetInsertionPoint(0)
self.txt.ShowPosition(0)
#---------------------------------------------
def SetOverview(self, name, text):
self.curOverview = text
lead = text[:6]
if lead != '<html>' and lead != '<HTML>':
text = string.join(string.split(text, '\n'), '<br>')
#text = '<font size="-1"><pre>' + text + '</pre></font>'
self.ovr.SetPage(text)
self.nb.SetPageText(0, name)
#---------------------------------------------
# Menu methods
def OnFileExit(self, *event):
self.Close()
def OnHelpAbout(self, event):
from About import MyAboutBox
about = MyAboutBox(self)
about.ShowModal()
about.Destroy()
#---------------------------------------------
def OnCloseWindow(self, event):
self.dying = true
self.window = None
self.mainmenu = None
if hasattr(self, "tbicon"):
del self.tbicon
self.Destroy()
#---------------------------------------------
def OnIdle(self, event):
if self.otherWin:
self.otherWin.Raise()
self.window = self.otherWin
self.otherWin = None
#---------------------------------------------
def OnDemoMenu(self, event):
try:
selectedDemo = self.treeMap[self.mainmenu.GetLabel(event.GetId())]
except:
selectedDemo = None
if selectedDemo:
self.tree.SelectItem(selectedDemo)
self.tree.EnsureVisible(selectedDemo)
#---------------------------------------------
def OnTaskBarActivate(self, evt):
if self.IsIconized():
self.Iconize(false)
if not self.IsShown():
self.Show(true)
self.Raise()
#---------------------------------------------
TBMENU_RESTORE = 1000
TBMENU_CLOSE = 1001
def OnTaskBarMenu(self, evt):
menu = wxMenu()
menu.Append(self.TBMENU_RESTORE, "Restore wxPython Demo")
menu.Append(self.TBMENU_CLOSE, "Close")
self.tbicon.PopupMenu(menu)
menu.Destroy()
#---------------------------------------------
def OnTaskBarClose(self, evt):
self.Close()
# because of the way wxTaskBarIcon.PopupMenu is implemented we have to
# prod the main idle handler a bit to get the window to actually close
wxGetApp().ProcessIdle()
#---------------------------------------------------------------------------
#---------------------------------------------------------------------------
class MyApp(wxApp):
def OnInit(self):
wxInitAllImageHandlers()
self.splash = SplashScreen(None, bitmapfile='bitmaps/splash.gif',
duration=4000, callback=self.AfterSplash)
self.splash.Show(true)
wxYield()
return true
def AfterSplash(self):
self.splash.Close(true)
frame = wxPythonDemo(None, -1, "wxPython: (A Demonstration)")
frame.Show(true)
self.SetTopWindow(frame)
self.ShowTip(frame)
def ShowTip(self, frame):
try:
showTipText = open("data/showTips").read()
showTip, index = eval(showTipText)
except IOError:
showTip, index = (1, 0)
#print showTip, index
if showTip:
tp = wxCreateFileTipProvider("data/tips.txt", index)
showTip = wxShowTip(frame, tp)
index = tp.GetCurrentTip()
open("data/showTips", "w").write(str( (showTip, index) ))
#---------------------------------------------------------------------------
def main():
try:
demoPath = os.path.split(__file__)[0]
os.chdir(demoPath)
except:
pass
app = MyApp(0)
app.MainLoop()
#---------------------------------------------------------------------------
overview = """<html><body>
<h2>Python</h2>
Python is an interpreted, interactive, object-oriented programming
language often compared to Tcl, Perl, Scheme, or Java.
<p> Python combines remarkable power with very clear syntax. It has
modules, classes, exceptions, very high level dynamic data types, and
dynamic typing. There are interfaces to many system calls and
libraries, and new built-in modules are easily written in C or
C++. Python is also usable as an extension language for applications
that need a programmable interface. <p>
<h2>wxWindows</h2>
wxWindows is a free C++ framework designed to make cross-platform
programming child's play. Well, almost. wxWindows 2 supports Windows
3.1/95/98/NT, Unix with GTK/Motif/Lesstif, with a Mac version
underway. Other ports are under consideration. <p>
wxWindows is a set of libraries that allows C++ applications to
compile and run on several different types of computers, with minimal
source code changes. There is one library per supported GUI (such as
Motif, or Windows). As well as providing a common API (Application
Programming Interface) for GUI functionality, it provides
functionality for accessing some commonly-used operating system
facilities, such as copying or deleting files. wxWindows is a
'framework' in the sense that it provides a lot of built-in
functionality, which the application can use or replace as required,
thus saving a great deal of coding effort. Basic data structures such
as strings, linked lists and hash tables are also supported.
<p>
<h2>wxPython</h2>
wxPython is a Python extension module that encapsulates the wxWindows
GUI classes. Currently it is only available for the Win32 and GTK
ports of wxWindows, but as soon as the other ports are brought up to
the same level as Win32 and GTK, it should be fairly trivial to
enable wxPython to be used with the new GUI.
<p>
The wxPython extension module attempts to mirror the class heiarchy
of wxWindows as closely as possible. This means that there is a
wxFrame class in wxPython that looks, smells, tastes and acts almost
the same as the wxFrame class in the C++ version. Unfortunately,
because of differences in the languages, wxPython doesn't match
wxWindows exactly, but the differences should be easy to absorb
because they are natural to Python. For example, some methods that
return multiple values via argument pointers in C++ will return a
tuple of values in Python.
<p>
There is still much to be done for wxPython, many classes still need
to be mirrored. Also, wxWindows is still somewhat of a moving target
so it is a bit of an effort just keeping wxPython up to date. On the
other hand, there are enough of the core classes completed that
useful applications can be written.
<p>
wxPython is close enough to the C++ version that the majority of
the wxPython documentation is actually just notes attached to the C++
documents that describe the places where wxPython is different. There
is also a series of sample programs included, and a series of
documentation pages that assist the programmer in getting started
with wxPython.
"""
#----------------------------------------------------------------------------
#----------------------------------------------------------------------------
if __name__ == '__main__':
main()
#----------------------------------------------------------------------------

View File

@@ -0,0 +1,176 @@
from wxPython.wx import *
from wxScrolledWindow import MyCanvas
#----------------------------------------------------------------------
class MyPrintout(wxPrintout):
def __init__(self, canvas, log):
wxPrintout.__init__(self)
self.canvas = canvas
self.log = log
def OnBeginDocument(self, start, end):
self.log.WriteText("wxPrintout.OnBeginDocument\n")
return self.base_OnBeginDocument(start, end)
def OnEndDocument(self):
self.log.WriteText("wxPrintout.OnEndDocument\n")
self.base_OnEndDocument()
def OnBeginPrinting(self):
self.log.WriteText("wxPrintout.OnBeginPrinting\n")
self.base_OnBeginPrinting()
def OnEndPrinting(self):
self.log.WriteText("wxPrintout.OnEndPrinting\n")
self.base_OnEndPrinting()
def OnPreparePrinting(self):
self.log.WriteText("wxPrintout.OnPreparePrinting\n")
self.base_OnPreparePrinting()
def HasPage(self, page):
self.log.WriteText("wxPrintout.HasPage\n")
if page == 1:
return true
else:
return false
def GetPageInfo(self):
self.log.WriteText("wxPrintout.GetPageInfo\n")
return (1, 1, 1, 1)
def OnPrintPage(self, page):
self.log.WriteText("wxPrintout.OnPrintPage\n")
dc = self.GetDC()
#-------------------------------------------
# One possible method of setting scaling factors...
maxX = self.canvas.getWidth()
maxY = self.canvas.getHeight()
# Let's have at least 50 device units margin
marginX = 50
marginY = 50
# Add the margin to the graphic size
maxX = maxX + (2 * marginX)
maxY = maxY + (2 * marginY)
# Get the size of the DC in pixels
(w, h) = dc.GetSizeTuple()
# Calculate a suitable scaling factor
scaleX = float(w) / maxX
scaleY = float(h) / maxY
# Use x or y scaling factor, whichever fits on the DC
actualScale = min(scaleX, scaleY)
# Calculate the position on the DC for centring the graphic
posX = (w - (self.canvas.getWidth() * actualScale)) / 2.0
posY = (h - (self.canvas.getHeight() * actualScale)) / 2.0
# Set the scale and origin
dc.SetUserScale(actualScale, actualScale)
dc.SetDeviceOrigin(int(posX), int(posY))
#-------------------------------------------
self.canvas.DoDrawing(dc)
return true
#----------------------------------------------------------------------
class TestPrintPanel(wxPanel):
def __init__(self, parent, frame, log):
wxPanel.__init__(self, parent, -1)
self.log = log
self.frame = frame
self.printData = wxPrintData()
self.printData.SetPaperId(wxPAPER_LETTER)
self.box = wxBoxSizer(wxVERTICAL)
self.canvas = MyCanvas(self)
self.box.Add(self.canvas, 1, wxGROW)
subbox = wxBoxSizer(wxHORIZONTAL)
btn = wxButton(self, 1201, "Print Setup")
EVT_BUTTON(self, 1201, self.OnPrintSetup)
subbox.Add(btn, 1, wxGROW | wxALL, 2)
btn = wxButton(self, 1202, "Print Preview")
EVT_BUTTON(self, 1202, self.OnPrintPreview)
subbox.Add(btn, 1, wxGROW | wxALL, 2)
btn = wxButton(self, 1203, "Print")
EVT_BUTTON(self, 1203, self.OnDoPrint)
subbox.Add(btn, 1, wxGROW | wxALL, 2)
self.box.Add(subbox, 0, wxGROW)
self.SetAutoLayout(true)
self.SetSizer(self.box)
def OnPrintSetup(self, event):
printerDialog = wxPrintDialog(self)
printerDialog.GetPrintDialogData().SetPrintData(self.printData)
printerDialog.GetPrintDialogData().SetSetupDialog(true)
printerDialog.ShowModal();
self.printData = printerDialog.GetPrintDialogData().GetPrintData()
printerDialog.Destroy()
def OnPrintPreview(self, event):
self.log.WriteText("OnPrintPreview\n")
printout = MyPrintout(self.canvas, self.log)
printout2 = MyPrintout(self.canvas, self.log)
self.preview = wxPrintPreview(printout, printout2, self.printData)
if not self.preview.Ok():
self.log.WriteText("Houston, we have a problem...\n")
return
frame = wxPreviewFrame(self.preview, self.frame, "This is a print preview")
frame.Initialize()
frame.SetPosition(self.frame.GetPosition())
frame.SetSize(self.frame.GetSize())
frame.Show(true)
def OnDoPrint(self, event):
pdd = wxPrintDialogData()
pdd.SetPrintData(self.printData)
printer = wxPrinter(pdd)
printout = MyPrintout(self.canvas, self.log)
if not printer.Print(self.frame, printout):
wxMessageBox("There was a problem printing.\nPerhaps your current printer is not set correctly?", "Printing", wxOK)
else:
self.printData = printer.GetPrintDialogData().GetPrintData()
printout.Destroy()
#----------------------------------------------------------------------
def runTest(frame, nb, log):
win = TestPrintPanel(nb, frame, log)
return win
#----------------------------------------------------------------------
overview = """\
"""

21
wxPython/demo/PyShell.py Normal file
View File

@@ -0,0 +1,21 @@
from wxPython.wx import *
from wxPython.lib.shell import PyShell
#----------------------------------------------------------------------
def runTest(frame, nb, log):
testGlobals = {'hello' : 'How are you?'}
win = PyShell(nb, globals=testGlobals)
win.Show(true)
return win
#----------------------------------------------------------------------
overview = """
A simple GUI version of the interactive interpreter.
"""

View File

@@ -0,0 +1,15 @@
from wxPython.lib.pyshell import PyShellWindow
#----------------------------------------------------------------------
def runTest(frame, nb, log):
win = PyShellWindow(nb, -1)
return win
#----------------------------------------------------------------------
import wxPython.lib.pyshell
overview = wxPython.lib.pyshell.__doc__

View File

@@ -0,0 +1,85 @@
from wxPython.wx import *
import sys
#----------------------------------------------------------------------
myEVT_BUTTON_CLICKPOS = 5015
def EVT_BUTTON_CLICKPOS(win, id, func):
win.Connect(id, -1, myEVT_BUTTON_CLICKPOS, func)
class MyEvent(wxPyCommandEvent):
def __init__(self, evtType, id):
wxPyCommandEvent.__init__(self, evtType, id)
self.myVal = None
#def __del__(self):
# print '__del__'
# wxPyCommandEvent.__del__(self)
def SetMyVal(self, val):
self.myVal = val
def GetMyVal(self):
return self.myVal
class MyButton(wxButton):
def __init__(self, parent, id, txt, pos):
wxButton.__init__(self, parent, id, txt, pos)
EVT_LEFT_DOWN(self, self.OnLeftDown)
def OnLeftDown(self, event):
pt = event.GetPosition()
evt = MyEvent(myEVT_BUTTON_CLICKPOS, self.GetId())
evt.SetMyVal(pt)
#print id(evt), sys.getrefcount(evt)
self.GetEventHandler().ProcessEvent(evt)
#print id(evt), sys.getrefcount(evt)
event.Skip()
class TestPanel(wxPanel):
def __init__(self, parent, log):
wxPanel.__init__(self, parent, -1)
self.log = log
b = MyButton(self, -1, " Click me ", wxPoint(30,30))
EVT_BUTTON(self, b.GetId(), self.OnClick)
EVT_BUTTON_CLICKPOS(self, b.GetId(), self.OnMyEvent)
wxStaticText(self, -1, "Please see the Overview and Demo Code for details...",
wxPoint(30, 80))
def OnClick(self, event):
self.log.WriteText("OnClick\n")
def OnMyEvent(self, event):
#print id(event), sys.getrefcount(event)
self.log.WriteText("MyEvent: %s\n" % (event.GetMyVal(), ) )
#----------------------------------------------------------------------
def runTest(frame, nb, log):
win = TestPanel(nb, log)
return win
#----------------------------------------------------------------------
overview = """\
This demo is a contrived example of defining an event class in wxPython and sending it up the containment heirachy for processing.
"""

7
wxPython/demo/README.txt Normal file
View File

@@ -0,0 +1,7 @@
To run the main demo in this directory, execute demo.py. In other
words, one of the following commands should do it:
demo.py
python demo.py
pythonw demo.py

587
wxPython/demo/Sizers.py Normal file
View File

@@ -0,0 +1,587 @@
#----------------------------------------------------------------------
# sizer test code
#----------------------------------------------------------------------
from wxPython.wx import *
from wxPython.lib.grids import wxGridSizer, wxFlexGridSizer
#----------------------------------------------------------------------
def makeSimpleBox1(win):
box = wxBoxSizer(wxHORIZONTAL)
box.Add(wxButton(win, 1010, "one"), 0, wxEXPAND)
box.Add(wxButton(win, 1010, "two"), 0, wxEXPAND)
box.Add(wxButton(win, 1010, "three"), 0, wxEXPAND)
box.Add(wxButton(win, 1010, "four"), 0, wxEXPAND)
return box
#----------------------------------------------------------------------
def makeSimpleBox2(win):
box = wxBoxSizer(wxVERTICAL)
box.Add(wxButton(win, 1010, "one"), 0, wxEXPAND)
box.Add(wxButton(win, 1010, "two"), 0, wxEXPAND)
box.Add(wxButton(win, 1010, "three"), 0, wxEXPAND)
box.Add(wxButton(win, 1010, "four"), 0, wxEXPAND)
return box
#----------------------------------------------------------------------
def makeSimpleBox3(win):
box = wxBoxSizer(wxHORIZONTAL)
box.Add(wxButton(win, 1010, "one"), 0, wxEXPAND)
box.Add(wxButton(win, 1010, "two"), 0, wxEXPAND)
box.Add(wxButton(win, 1010, "three"), 0, wxEXPAND)
box.Add(wxButton(win, 1010, "four"), 0, wxEXPAND)
box.Add(wxButton(win, 1010, "five"), 1, wxEXPAND)
return box
#----------------------------------------------------------------------
def makeSimpleBox4(win):
box = wxBoxSizer(wxHORIZONTAL)
box.Add(wxButton(win, 1010, "one"), 0, wxEXPAND)
box.Add(wxButton(win, 1010, "two"), 0, wxEXPAND)
box.Add(wxButton(win, 1010, "three"), 1, wxEXPAND)
box.Add(wxButton(win, 1010, "four"), 1, wxEXPAND)
box.Add(wxButton(win, 1010, "five"), 1, wxEXPAND)
return box
#----------------------------------------------------------------------
def makeSimpleBox5(win):
box = wxBoxSizer(wxHORIZONTAL)
box.Add(wxButton(win, 1010, "one"), 0, wxEXPAND)
box.Add(wxButton(win, 1010, "two"), 0, wxEXPAND)
box.Add(wxButton(win, 1010, "three"), 3, wxEXPAND)
box.Add(wxButton(win, 1010, "four"), 1, wxEXPAND)
box.Add(wxButton(win, 1010, "five"), 1, wxEXPAND)
return box
#----------------------------------------------------------------------
def makeSimpleBox6(win):
box = wxBoxSizer(wxHORIZONTAL)
box.Add(wxButton(win, 1010, "one"), 1, wxALIGN_TOP)
box.Add(wxButton(win, 1010, "two"), 1, wxEXPAND)
box.Add(wxButton(win, 1010, "three"), 1, wxALIGN_CENTER)
box.Add(wxButton(win, 1010, "four"), 1, wxEXPAND)
box.Add(wxButton(win, 1010, "five"), 1, wxALIGN_BOTTOM)
return box
#----------------------------------------------------------------------
def makeSimpleBox7(win):
box = wxBoxSizer(wxHORIZONTAL)
box.Add(wxButton(win, 1010, "one"), 0, wxEXPAND)
box.Add(wxButton(win, 1010, "two"), 0, wxEXPAND)
box.Add(wxButton(win, 1010, "three"), 0, wxEXPAND)
box.Add(60, 20, 0, wxEXPAND)
box.Add(wxButton(win, 1010, "five"), 1, wxEXPAND)
return box
#----------------------------------------------------------------------
def makeSimpleBox8(win):
box = wxBoxSizer(wxVERTICAL)
box.Add(wxButton(win, 1010, "one"), 0, wxEXPAND)
box.Add(0,0, 1)
box.Add(wxButton(win, 1010, "two"), 0, wxALIGN_CENTER)
box.Add(0,0, 1)
box.Add(wxButton(win, 1010, "three"), 0, wxEXPAND)
box.Add(wxButton(win, 1010, "four"), 0, wxEXPAND)
# box.Add(wxButton(win, 1010, "five"), 1, wxEXPAND)
return box
#----------------------------------------------------------------------
#----------------------------------------------------------------------
def makeSimpleBorder1(win):
bdr = wxBoxSizer(wxHORIZONTAL)
btn = wxButton(win, 1010, "border")
btn.SetSize(wxSize(80, 80))
bdr.Add(btn, 1, wxEXPAND|wxALL, 15)
return bdr
#----------------------------------------------------------------------
def makeSimpleBorder2(win):
bdr = wxBoxSizer(wxHORIZONTAL)
btn = wxButton(win, 1010, "border")
btn.SetSize(wxSize(80, 80))
bdr.Add(btn, 1, wxEXPAND | wxEAST | wxWEST, 15)
return bdr
#----------------------------------------------------------------------
def makeSimpleBorder3(win):
bdr = wxBoxSizer(wxHORIZONTAL)
btn = wxButton(win, 1010, "border")
btn.SetSize(wxSize(80, 80))
bdr.Add(btn, 1, wxEXPAND | wxNORTH | wxWEST, 15)
return bdr
#----------------------------------------------------------------------
#----------------------------------------------------------------------
def makeBoxInBox(win):
box = wxBoxSizer(wxVERTICAL)
box.Add(wxButton(win, 1010, "one"), 0, wxEXPAND)
box2 = wxBoxSizer(wxHORIZONTAL)
box2.AddMany([ (wxButton(win, 1010, "two"), 0, wxEXPAND),
(wxButton(win, 1010, "three"), 0, wxEXPAND),
(wxButton(win, 1010, "four"), 0, wxEXPAND),
(wxButton(win, 1010, "five"), 0, wxEXPAND),
])
box3 = wxBoxSizer(wxVERTICAL)
box3.AddMany([ (wxButton(win, 1010, "six"), 0, wxEXPAND),
(wxButton(win, 1010, "seven"), 2, wxEXPAND),
(wxButton(win, 1010, "eight"), 1, wxEXPAND),
(wxButton(win, 1010, "nine"), 1, wxEXPAND),
])
box2.Add(box3, 1, wxEXPAND)
box.Add(box2, 1, wxEXPAND)
box.Add(wxButton(win, 1010, "ten"), 0, wxEXPAND)
return box
#----------------------------------------------------------------------
def makeBoxInBorder(win):
bdr = wxBoxSizer(wxHORIZONTAL)
box = makeSimpleBox3(win)
bdr.Add(box, 1, wxEXPAND | wxALL, 15)
return bdr
#----------------------------------------------------------------------
def makeBorderInBox(win):
insideBox = wxBoxSizer(wxHORIZONTAL)
box2 = wxBoxSizer(wxHORIZONTAL)
box2.AddMany([ (wxButton(win, 1010, "one"), 0, wxEXPAND),
(wxButton(win, 1010, "two"), 0, wxEXPAND),
(wxButton(win, 1010, "three"), 0, wxEXPAND),
(wxButton(win, 1010, "four"), 0, wxEXPAND),
(wxButton(win, 1010, "five"), 0, wxEXPAND),
])
insideBox.Add(box2, 0, wxEXPAND)
bdr = wxBoxSizer(wxHORIZONTAL)
bdr.Add(wxButton(win, 1010, "border"), 1, wxEXPAND | wxALL)
insideBox.Add(bdr, 1, wxEXPAND | wxALL, 20)
box3 = wxBoxSizer(wxVERTICAL)
box3.AddMany([ (wxButton(win, 1010, "six"), 0, wxEXPAND),
(wxButton(win, 1010, "seven"), 2, wxEXPAND),
(wxButton(win, 1010, "eight"), 1, wxEXPAND),
(wxButton(win, 1010, "nine"), 1, wxEXPAND),
])
insideBox.Add(box3, 1, wxEXPAND)
outsideBox = wxBoxSizer(wxVERTICAL)
outsideBox.Add(wxButton(win, 1010, "top"), 0, wxEXPAND)
outsideBox.Add(insideBox, 1, wxEXPAND)
outsideBox.Add(wxButton(win, 1010, "bottom"), 0, wxEXPAND)
return outsideBox
#----------------------------------------------------------------------
def makeGrid1(win):
gs = wxGridSizer(3, 3, 2, 2) # rows, cols, hgap, vgap
gs.AddMany([ (wxButton(win, 1010, 'one'), 0, wxEXPAND),
(wxButton(win, 1010, 'two'), 0, wxEXPAND),
(wxButton(win, 1010, 'three'), 0, wxEXPAND),
(wxButton(win, 1010, 'four'), 0, wxEXPAND),
(wxButton(win, 1010, 'five'), 0, wxEXPAND),
#(75, 50),
(wxButton(win, 1010, 'six'), 0, wxEXPAND),
(wxButton(win, 1010, 'seven'), 0, wxEXPAND),
(wxButton(win, 1010, 'eight'), 0, wxEXPAND),
(wxButton(win, 1010, 'nine'), 0, wxEXPAND),
])
return gs
#----------------------------------------------------------------------
def makeGrid2(win):
gs = wxGridSizer(3, 3) # rows, cols, hgap, vgap
box = wxBoxSizer(wxVERTICAL)
box.Add(wxButton(win, 1010, 'A'), 0, wxEXPAND)
box.Add(wxButton(win, 1010, 'B'), 1, wxEXPAND)
gs2 = wxGridSizer(2,2, 4, 4)
gs2.AddMany([ (wxButton(win, 1010, 'C'), 0, wxEXPAND),
(wxButton(win, 1010, 'E'), 0, wxEXPAND),
(wxButton(win, 1010, 'F'), 0, wxEXPAND),
(wxButton(win, 1010, 'G'), 0, wxEXPAND)])
gs.AddMany([ (wxButton(win, 1010, 'one'), 0, wxALIGN_RIGHT | wxALIGN_BOTTOM),
(wxButton(win, 1010, 'two'), 0, wxEXPAND),
(wxButton(win, 1010, 'three'), 0, wxALIGN_LEFT | wxALIGN_BOTTOM),
(wxButton(win, 1010, 'four'), 0, wxEXPAND),
(wxButton(win, 1010, 'five'), 0, wxALIGN_CENTER),
(wxButton(win, 1010, 'six'), 0, wxEXPAND),
(box, 0, wxEXPAND | wxALL, 10),
(wxButton(win, 1010, 'eight'), 0, wxEXPAND),
(gs2, 0, wxEXPAND | wxALL, 4),
])
return gs
#----------------------------------------------------------------------
def makeGrid3(win):
gs = wxFlexGridSizer(3, 3, 2, 2) # rows, cols, hgap, vgap
gs.AddMany([ (wxButton(win, 1010, 'one'), 0, wxEXPAND),
(wxButton(win, 1010, 'two'), 0, wxEXPAND),
(wxButton(win, 1010, 'three'), 0, wxEXPAND),
(wxButton(win, 1010, 'four'), 0, wxEXPAND),
#(wxButton(win, 1010, 'five'), 0, wxEXPAND),
(175, 50),
(wxButton(win, 1010, 'six'), 0, wxEXPAND),
(wxButton(win, 1010, 'seven'), 0, wxEXPAND),
(wxButton(win, 1010, 'eight'), 0, wxEXPAND),
(wxButton(win, 1010, 'nine'), 0, wxEXPAND),
])
gs.AddGrowableRow(0)
gs.AddGrowableRow(2)
gs.AddGrowableCol(1)
return gs
#----------------------------------------------------------------------
def makeGrid4(win):
bpos = wxDefaultPosition
bsize = wxSize(100, 50)
gs = wxGridSizer(3, 3, 2, 2) # rows, cols, hgap, vgap
gs.AddMany([ (wxButton(win, 1010, 'one', bpos, bsize),
0, wxALIGN_TOP | wxALIGN_LEFT ),
(wxButton(win, 1010, 'two', bpos, bsize),
0, wxALIGN_TOP | wxALIGN_CENTER_HORIZONTAL ),
(wxButton(win, 1010, 'three', bpos, bsize),
0, wxALIGN_TOP | wxALIGN_RIGHT ),
(wxButton(win, 1010, 'four', bpos, bsize),
0, wxALIGN_CENTER_VERTICAL | wxALIGN_LEFT ),
(wxButton(win, 1010, 'five', bpos, bsize),
0, wxALIGN_CENTER ),
(wxButton(win, 1010, 'six', bpos, bsize),
0, wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT ),
(wxButton(win, 1010, 'seven', bpos, bsize),
0, wxALIGN_BOTTOM | wxALIGN_LEFT ),
(wxButton(win, 1010, 'eight', bpos, bsize),
0, wxALIGN_BOTTOM | wxALIGN_CENTER_HORIZONTAL ),
(wxButton(win, 1010, 'nine', bpos, bsize),
0, wxALIGN_BOTTOM | wxALIGN_RIGHT ),
])
return gs
#----------------------------------------------------------------------
def makeShapes(win):
bpos = wxDefaultPosition
bsize = wxSize(100, 50)
gs = wxGridSizer(3, 3, 2, 2) # rows, cols, hgap, vgap
gs.AddMany([ (wxButton(win, 1010, 'one', bpos, bsize),
0, wxSHAPED | wxALIGN_TOP | wxALIGN_LEFT ),
(wxButton(win, 1010, 'two', bpos, bsize),
0, wxSHAPED | wxALIGN_TOP | wxALIGN_CENTER_HORIZONTAL ),
(wxButton(win, 1010, 'three', bpos, bsize),
0, wxSHAPED | wxALIGN_TOP | wxALIGN_RIGHT ),
(wxButton(win, 1010, 'four', bpos, bsize),
0, wxSHAPED | wxALIGN_CENTER_VERTICAL | wxALIGN_LEFT ),
(wxButton(win, 1010, 'five', bpos, bsize),
0, wxSHAPED | wxALIGN_CENTER ),
(wxButton(win, 1010, 'six', bpos, bsize),
0, wxSHAPED | wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT ),
(wxButton(win, 1010, 'seven', bpos, bsize),
0, wxSHAPED | wxALIGN_BOTTOM | wxALIGN_LEFT ),
(wxButton(win, 1010, 'eight', bpos, bsize),
0, wxSHAPED | wxALIGN_BOTTOM | wxALIGN_CENTER_HORIZONTAL ),
(wxButton(win, 1010, 'nine', bpos, bsize),
0, wxSHAPED | wxALIGN_BOTTOM | wxALIGN_RIGHT ),
])
return gs
#----------------------------------------------------------------------
def makeSimpleBoxShaped(win):
box = wxBoxSizer(wxHORIZONTAL)
box.Add(wxButton(win, 1010, "one"), 0, wxEXPAND)
box.Add(wxButton(win, 1010, "two"), 0, wxEXPAND)
box.Add(wxButton(win, 1010, "three"), 0, wxEXPAND)
box.Add(wxButton(win, 1010, "four"), 0, wxEXPAND)
box.Add(wxButton(win, 1010, "five"), 1, wxSHAPED)
return box
#----------------------------------------------------------------------
theTests = [
("Simple horizontal boxes", makeSimpleBox1,
"This is a HORIZONTAL box sizer with four non-stretchable buttons held "
"within it. Notice that the buttons are added and aligned in the horizontal "
"dimension. Also notice that they are fixed size in the horizontal dimension, "
"but will stretch vertically."
),
("Simple vertical boxes", makeSimpleBox2,
"Exactly the same as the previous sample but using a VERTICAL box sizer "
"instead of a HORIZONTAL one."
),
("Add a stretchable", makeSimpleBox3,
"We've added one more button with the strechable flag turned on. Notice "
"how it grows to fill the extra space in the otherwise fixed dimension."
),
("More than one stretchable", makeSimpleBox4,
"Here there are several items that are stretchable, they all divide up the "
"extra space evenly."
),
("Weighting factor", makeSimpleBox5,
"This one shows more than one strechable, but one of them has a weighting "
"factor so it gets more of the free space."
),
("Edge Affinity", makeSimpleBox6,
"For items that don't completly fill their allotted space, and don't "
"stretch, you can specify which side (or the center) they should stay "
"attached to."
),
("Spacer", makeSimpleBox7,
"You can add empty space to be managed by a Sizer just as if it were a "
"window or another Sizer."
),
("Centering in available space", makeSimpleBox8,
"This one shows an item that does not expand to fill it's space, but rather"
"stays centered within it."
),
# ("Percent Sizer", makeSimpleBox6,
# "You can use the wxBoxSizer like a Percent Sizer. Just make sure that all "
# "the weighting factors add up to 100!"
# ),
("", None, ""),
("Simple border sizer", makeSimpleBorder1,
"The wxBoxSizer can leave empty space around its contents. This one "
"gives a border all the way around."
),
("East and West border", makeSimpleBorder2,
"You can pick and choose which sides have borders."
),
("North and West border", makeSimpleBorder3,
"You can pick and choose which sides have borders."
),
("", None, ""),
("Boxes inside of boxes", makeBoxInBox,
"This one shows nesting of boxes within boxes within boxes, using both "
"orientations. Notice also that button seven has a greater weighting "
"factor than its siblings."
),
("Boxes inside a Border", makeBoxInBorder,
"Sizers of different types can be nested withing each other as well. "
"Here is a box sizer with several buttons embedded within a border sizer."
),
("Border in a Box", makeBorderInBox,
"Another nesting example. This one has Boxes and a Border inside another Box."
),
("", None, ""),
("Simple Grid", makeGrid1,
"This is an example of the wxGridSizer. In this case all row heights "
"and column widths are kept the same as all the others and all items "
"fill their available space. The horzontal and vertical gaps are set to "
"2 pixels each."
),
("More Grid Features", makeGrid2,
"This is another example of the wxGridSizer. This one has no gaps in the grid, "
"but various cells are given different alignment options and some of them "
"hold nested sizers."
),
("Flexible Grid", makeGrid3,
"This grid allows the rows to have different heights and the columns to have "
"different widths. You can also specify rows and columns that are growable, "
"which we have done for the first and last row and the middle column for "
"this example.\n"
"\nThere is also a spacer in the middle cell instead of an actual window."
),
("Grid with Alignment", makeGrid4,
"New alignment flags allow for the positioning of items in any corner or centered "
"position."
),
("", None, ""),
("Proportional resize", makeSimpleBoxShaped,
"Managed items can preserve their original aspect ratio. The last item has the "
"wxSHAPED flag set and will resize proportional to its origingal size."
),
("Proportional resize with Alignments", makeShapes,
"This one shows various alignments as well as proportional resizing for all items."
),
]
#----------------------------------------------------------------------
class TestFrame(wxFrame):
def __init__(self, parent, title, sizerFunc):
wxFrame.__init__(self, parent, -1, title)
EVT_BUTTON(self, 1010, self.OnButton)
self.sizer = sizerFunc(self)
self.CreateStatusBar()
self.SetStatusText("Resize this frame to see how the sizers respond...")
self.sizer.Fit(self)
self.SetAutoLayout(true)
self.SetSizer(self.sizer)
EVT_CLOSE(self, self.OnCloseWindow)
def OnCloseWindow(self, event):
self.MakeModal(false)
self.Destroy()
def OnButton(self, event):
self.Close(true)
#----------------------------------------------------------------------
class TestSelectionPanel(wxPanel):
def __init__(self, parent, frame):
wxPanel.__init__(self, parent, -1)
self.frame = frame
self.list = wxListBox(self, 401,
wxDLG_PNT(self, 10, 10), wxDLG_SZE(self, 100, 100),
[])
EVT_LISTBOX(self, 401, self.OnSelect)
EVT_LISTBOX_DCLICK(self, 401, self.OnDClick)
self.btn = wxButton(self, 402, "Try it!", wxDLG_PNT(self, 120, 10)).SetDefault()
EVT_BUTTON(self, 402, self.OnDClick)
self.text = wxTextCtrl(self, -1, "",
wxDLG_PNT(self, 10, 115),
wxDLG_SZE(self, 200, 50),
wxTE_MULTILINE | wxTE_READONLY)
for item in theTests:
self.list.Append(item[0])
def OnSelect(self, event):
pos = self.list.GetSelection()
self.text.SetValue(theTests[pos][2])
def OnDClick(self, event):
pos = self.list.GetSelection()
title = theTests[pos][0]
func = theTests[pos][1]
if func:
win = TestFrame(self, title, func)
win.CentreOnParent(wxBOTH)
win.Show(true)
win.MakeModal(true)
#----------------------------------------------------------------------
def runTest(frame, nb, log):
win = TestSelectionPanel(nb, frame)
return win
overview = ""
#wxSizer.__doc__ + '\n' + '-' * 80 + '\n' + \
#wxBoxSizer.__doc__ + '\n' + '-' * 80 + '\n' + \
#wxBorderSizer.__doc__
#----------------------------------------------------------------------
if __name__ == '__main__':
class MainFrame(wxFrame):
def __init__(self):
wxFrame.__init__(self, NULL, -1, "Testing...")
self.CreateStatusBar()
mainmenu = wxMenuBar()
menu = wxMenu()
menu.Append(200, 'E&xit', 'Get the heck outta here!')
mainmenu.Append(menu, "&File")
self.SetMenuBar(mainmenu)
EVT_MENU(self, 200, self.OnExit)
self.panel = TestSelectionPanel(self, self)
self.SetSize(wxSize(400, 380))
EVT_CLOSE(self, self.OnCloseWindow)
def OnCloseWindow(self, event):
self.Destroy()
def OnExit(self, event):
self.Close(true)
class TestApp(wxApp):
def OnInit(self):
frame = MainFrame()
frame.Show(true)
self.SetTopWindow(frame)
return true
app = TestApp(0)
app.MainLoop()
#----------------------------------------------------------------------

379
wxPython/demo/SlashDot.py Normal file
View File

@@ -0,0 +1,379 @@
#!/usr/bin/python
"""This is SlashDot 1.2
It's the obligatory Slashdot.org headlines reader that
any modern widget set/library must have in order to be taken
seriously :-)
Usage is quite simple; wxSlash attempts to download the
'ultramode.txt' file from http://slashdot.org, which
contains the headlines in a computer friendly format. It
then displays said headlines in a wxWindows list control.
You can read articles using either Python's html library
or an external browser. Uncheck the 'browser->internal' menu
item to use the latter option. Use the settings dialog box
to set which external browser is started.
This code is available under the wxWindows license, see
elsewhere. If you modify this code, be aware of the fact
that slashdot.org's maintainer, CmdrTaco, explicitly asks
'ultramode.txt' downloaders not to do this automatically
more than twice per hour. If this feature is abused,
CmdrTaco may remove the ultramode file completely and that
will make a *lot* of people unhappy.
I want to thank Alex Shnitman whose slashes.pl
(Perl/GTK) script gave me the idea for this applet.
Have fun with it,
Harm van der Heijden (H.v.d.Heijden@phys.tue.nl)
"""
from wxPython.wx import *
from httplib import HTTP
from htmllib import HTMLParser
import os
import re
import formatter
class HTMLTextView(wxFrame):
def __init__(self, parent, id, title='HTMLTextView', url=None):
wxFrame.__init__(self, parent, id, title, wxPyDefaultPosition,
wxSize(600,400))
EVT_CLOSE(self, self.OnCloseWindow)
self.mainmenu = wxMenuBar()
menu = wxMenu()
menu.Append(201, '&Open URL...', 'Open URL')
EVT_MENU(self, 201, self.OnFileOpen)
menu.Append(209, 'E&xit', 'Exit viewer')
EVT_MENU(self, 209, self.OnFileExit)
self.mainmenu.Append(menu, '&File')
self.SetMenuBar(self.mainmenu)
self.CreateStatusBar(1)
self.text = wxTextCtrl(self, -1, "", wxPyDefaultPosition,
wxPyDefaultSize, wxTE_MULTILINE | wxTE_READONLY)
if (url):
self.OpenURL(url)
def logprint(self, x):
self.SetStatusText(x)
def OpenURL(self, url):
self.url = url
m = re.match('file:(\S+)\s*', url)
if m:
f = open(m.groups()[0],'r')
else:
m = re.match('http://([^/]+)(/\S*)\s*', url)
if m:
host = m.groups()[0]
path = m.groups()[1]
else:
m = re.match('http://(\S+)\s*', url)
if not m:
# Invalid URL
self.logprint("Invalid or unsupported URL: %s" % (url))
return
host = m.groups()[0]
path = ''
f = RetrieveAsFile(host,path,self.logprint)
if not f:
self.logprint("Could not open %s" % (url))
return
self.logprint("Receiving data...")
data = f.read()
tmp = open('tmphtml.txt','w')
fmt = formatter.AbstractFormatter(formatter.DumbWriter(tmp))
p = HTMLParser(fmt)
self.logprint("Parsing data...")
p.feed(data)
p.close()
tmp.close()
tmp = open('tmphtml.txt', 'r')
self.text.SetValue(tmp.read())
self.SetTitle(url)
self.logprint(url)
def OnFileOpen(self, event):
dlg = wxTextEntryDialog(self, "Enter URL to open:", "")
if dlg.ShowModal() == wxID_OK:
url = dlg.GetValue()
else:
url = None
if url:
self.OpenURL(url)
def OnFileExit(self, event):
self.Close()
def OnCloseWindow(self, event):
self.Destroy()
def ParseSlashdot(f):
art_sep = re.compile('%%\r?\n')
line_sep = re.compile('\r?\n')
data = f.read()
list = art_sep.split(data)
art_list = []
for i in range(1,len(list)-1):
art_list.append(line_sep.split(list[i]))
return art_list
def myprint(x):
print x
def RetrieveAsFile(host, path='', logprint = myprint):
try:
h = HTTP(host)
except:
logprint("Failed to create HTTP connection to %s... is the network available?" % (host))
return None
h.putrequest('GET',path)
h.putheader('Accept','text/html')
h.putheader('Accept','text/plain')
h.endheaders()
errcode, errmsg, headers = h.getreply()
if errcode != 200:
logprint("HTTP error code %d: %s" % (errcode, errmsg))
return None
f = h.getfile()
# f = open('/home/harm/ultramode.txt','r')
return f
class AppStatusBar(wxStatusBar):
def __init__(self, parent):
wxStatusBar.__init__(self,parent, -1)
self.SetFieldsCount(2)
self.SetStatusWidths([-1, 100])
self.but = wxButton(self, 1001, "Refresh")
EVT_BUTTON(self, 1001, parent.OnViewRefresh)
EVT_SIZE(self, self.OnSize)
self.OnSize(None)
def logprint(self,x):
self.SetStatusText(x,0)
def OnSize(self, event):
rect = self.GetFieldRect(1)
self.but.SetPosition(wxPoint(rect.x+2, rect.y+2))
self.but.SetSize(wxSize(rect.width-4, rect.height-4))
# This is a simple timer class to start a function after a short delay;
class QuickTimer(wxTimer):
def __init__(self, func, wait=100):
wxTimer.__init__(self)
self.callback = func
self.Start(wait); # wait .1 second (.001 second doesn't work. why?)
def Notify(self):
self.Stop();
apply(self.callback, ());
class AppFrame(wxFrame):
def __init__(self, parent, id, title):
wxFrame.__init__(self, parent, id, title, wxPyDefaultPosition,
wxSize(650, 250))
# if the window manager closes the window:
EVT_CLOSE(self, self.OnCloseWindow);
# Now Create the menu bar and items
self.mainmenu = wxMenuBar()
menu = wxMenu()
menu.Append(209, 'E&xit', 'Enough of this already!')
EVT_MENU(self, 209, self.OnFileExit)
self.mainmenu.Append(menu, '&File')
menu = wxMenu()
menu.Append(210, '&Refresh', 'Refresh headlines')
EVT_MENU(self, 210, self.OnViewRefresh)
menu.Append(211, '&Slashdot Index', 'View Slashdot index')
EVT_MENU(self, 211, self.OnViewIndex)
menu.Append(212, 'Selected &Article', 'View selected article')
EVT_MENU(self, 212, self.OnViewArticle)
self.mainmenu.Append(menu, '&View')
menu = wxMenu()
menu.Append(220, '&Internal', 'Use internal text browser',TRUE)
menu.Check(220, true)
self.UseInternal = 1;
EVT_MENU(self, 220, self.OnBrowserInternal)
menu.Append(222, '&Settings...', 'External browser Settings')
EVT_MENU(self, 222, self.OnBrowserSettings)
self.mainmenu.Append(menu, '&Browser')
menu = wxMenu()
menu.Append(230, '&About', 'Some documentation');
EVT_MENU(self, 230, self.OnAbout)
self.mainmenu.Append(menu, '&Help')
self.SetMenuBar(self.mainmenu)
if wxPlatform == '__WXGTK__':
# I like lynx. Also Netscape 4.5 doesn't react to my cmdline opts
self.BrowserSettings = "xterm -e lynx %s &"
elif wxPlatform == '__WXMSW__':
# netscape 4.x likes to hang out here...
self.BrowserSettings = '\\progra~1\\Netscape\\Communicator\\Program\\netscape.exe %s'
else:
# a wild guess...
self.BrowserSettings = 'netscape %s'
# A status bar to tell people what's happening
self.sb = AppStatusBar(self)
self.SetStatusBar(self.sb)
self.list = wxListCtrl(self, 1100, style=wxLC_REPORT)
self.list.InsertColumn(0, 'Subject')
self.list.InsertColumn(1, 'Date')
self.list.InsertColumn(2, 'Posted by')
self.list.InsertColumn(3, 'Comments')
self.list.SetColumnWidth(0, 300)
self.list.SetColumnWidth(1, 150)
self.list.SetColumnWidth(2, 100)
self.list.SetColumnWidth(3, 100)
EVT_LIST_ITEM_SELECTED(self, 1100, self.OnItemSelected)
EVT_LEFT_DCLICK(self.list, self.OnLeftDClick)
self.logprint("Connecting to slashdot... Please wait.")
# wxYield doesn't yet work here. That's why we use a timer
# to make sure that we see some GUI stuff before the slashdot
# file is transfered.
self.timer = QuickTimer(self.DoRefresh, 1000)
def logprint(self, x):
self.sb.logprint(x)
def OnFileExit(self, event):
self.Destroy()
def DoRefresh(self):
f = RetrieveAsFile('slashdot.org','/ultramode.txt',self.sb.logprint)
art_list = ParseSlashdot(f)
self.list.DeleteAllItems()
self.url = []
self.current = -1
i = 0;
for article in art_list:
self.list.InsertStringItem(i, article[0])
self.list.SetStringItem(i, 1, article[2])
self.list.SetStringItem(i, 2, article[3])
self.list.SetStringItem(i, 3, article[6])
self.url.append(article[1])
i = i + 1
self.logprint("File retrieved OK.")
def OnViewRefresh(self, event):
self.logprint("Connecting to slashdot... Please wait.");
wxYield()
self.DoRefresh()
def DoViewIndex(self):
if self.UseInternal:
self.view = HTMLTextView(self, -1, 'slashdot.org',
'http://slashdot.org')
self.view.Show(true)
else:
self.logprint(self.BrowserSettings % ('http://slashdot.org'))
#os.system(self.BrowserSettings % ('http://slashdot.org'))
wxExecute(self.BrowserSettings % ('http://slashdot.org'))
self.logprint("OK")
def OnViewIndex(self, event):
self.logprint("Starting browser... Please wait.")
wxYield()
self.DoViewIndex()
def DoViewArticle(self):
if self.current<0: return
url = self.url[self.current]
if self.UseInternal:
self.view = HTMLTextView(self, -1, url, url)
self.view.Show(true)
else:
self.logprint(self.BrowserSettings % (url))
os.system(self.BrowserSettings % (url))
self.logprint("OK")
def OnViewArticle(self, event):
self.logprint("Starting browser... Please wait.")
wxYield()
self.DoViewArticle()
def OnBrowserInternal(self, event):
if self.mainmenu.Checked(220):
self.UseInternal = 1
else:
self.UseInternal = 0
def OnBrowserSettings(self, event):
dlg = wxTextEntryDialog(self, "Enter command to view URL.\nUse %s as a placeholder for the URL.", "", self.BrowserSettings);
if dlg.ShowModal() == wxID_OK:
self.BrowserSettings = dlg.GetValue()
def OnAbout(self, event):
dlg = wxMessageDialog(self, __doc__, "wxSlash", wxOK | wxICON_INFORMATION)
dlg.ShowModal()
def OnItemSelected(self, event):
self.current = event.m_itemIndex
self.logprint("URL: %s" % (self.url[self.current]))
def OnLeftDClick(self, event):
(x,y) = event.Position();
# Actually, we should convert x,y to logical coords using
# a dc, but only for a wxScrolledWindow widget.
# Now wxGTK derives wxListCtrl from wxScrolledWindow,
# and wxMSW from wxControl... So that doesn't work.
#dc = wxClientDC(self.list)
##self.list.PrepareDC(dc)
#x = dc.DeviceToLogicalX( event.GetX() )
#y = dc.DeviceToLogicalY( event.GetY() )
id = self.list.HitTest(wxPoint(x,y))
#print "Double click at %d %d" % (x,y), id
# Okay, we got a double click. Let's assume it's the current selection
wxYield()
self.OnViewArticle(event)
def OnCloseWindow(self, event):
self.Destroy()
#---------------------------------------------------------------------------
# if running standalone
if __name__ == '__main__':
class MyApp(wxApp):
def OnInit(self):
frame = AppFrame(NULL, -1, "Slashdot Breaking News")
frame.Show(true)
self.SetTopWindow(frame)
return true
app = MyApp(0)
app.MainLoop()
#---------------------------------------------------------------------------
# if running as part of the Demo Framework...
def runTest(frame, nb, log):
win = AppFrame(NULL, -1, "Slashdot Breaking News")
frame.otherWin = win
win.Show(true)
overview = __doc__
#----------------------------------------------------------------------------

244
wxPython/demo/Threads.py Normal file
View File

@@ -0,0 +1,244 @@
from wxPython.wx import *
import thread
import time
from whrandom import random
#----------------------------------------------------------------------
wxEVT_UPDATE_BARGRAPH = 25015
def EVT_UPDATE_BARGRAPH(win, func):
win.Connect(-1, -1, wxEVT_UPDATE_BARGRAPH, func)
class UpdateBarEvent(wxPyEvent):
def __init__(self, barNum, value):
wxPyEvent.__init__(self)
self.SetEventType(wxEVT_UPDATE_BARGRAPH)
self.barNum = barNum
self.value = value
#----------------------------------------------------------------------
class CalcBarThread:
def __init__(self, win, barNum, val):
self.win = win
self.barNum = barNum
self.val = val
def Start(self):
self.keepGoing = self.running = true
thread.start_new_thread(self.Run, ())
def Stop(self):
self.keepGoing = false
def IsRunning(self):
return self.running
def Run(self):
while self.keepGoing:
evt = UpdateBarEvent(self.barNum, int(self.val))
wxPostEvent(self.win, evt)
del evt
sleeptime = (random() * 2) + 0.5
#print self.barNum, 'sleeping for', sleeptime
time.sleep(sleeptime)
sleeptime = sleeptime * 5
if int(random() * 2):
self.val = self.val + sleeptime
else:
self.val = self.val - sleeptime
if self.val < 0: self.val = 0
if self.val > 300: self.val = 300
self.running = false
#----------------------------------------------------------------------
class GraphWindow(wxWindow):
def __init__(self, parent, labels):
wxWindow.__init__(self, parent, -1)
self.values = []
for label in labels:
self.values.append((label, 0))
self.font = wxFont(12, wxSWISS, wxNORMAL, wxBOLD)
self.SetFont(self.font)
self.colors = [ wxRED, wxGREEN, wxBLUE, wxCYAN,
wxNamedColour("Yellow"), wxNamedColor("Navy") ]
EVT_ERASE_BACKGROUND(self, self.OnEraseBackground)
EVT_PAINT(self, self.OnPaint)
def SetValue(self, index, value):
assert index < len(self.values)
cur = self.values[index]
self.values[index:index+1] = [(cur[0], value)]
def SetFont(self, font):
wxWindow.SetFont(self, font)
wmax = hmax = 0
for label, val in self.values:
w,h = self.GetTextExtent(label)
if w > wmax: wmax = w
if h > hmax: hmax = h
self.linePos = wmax + 10
self.barHeight = hmax
def Draw(self, dc, size):
dc.SetFont(self.font)
dc.SetTextForeground(wxBLUE)
dc.SetBackground(wxBrush(self.GetBackgroundColour()))
dc.Clear()
dc.SetPen(wxPen(wxBLACK, 3, wxSOLID))
dc.DrawLine(self.linePos, 0, self.linePos, size.height-10)
bh = ypos = self.barHeight
for x in range(len(self.values)):
label, val = self.values[x]
dc.DrawText(label, 5, ypos)
if val:
color = self.colors[ x % len(self.colors) ]
dc.SetPen(wxPen(color))
dc.SetBrush(wxBrush(color))
dc.DrawRectangle(self.linePos+3, ypos, val, bh)
ypos = ypos + 2*bh
if ypos > size.height-10:
break
def OnPaint(self, evt):
size = self.GetSize()
bmp = wxEmptyBitmap(size.width, size.height)
dc = wxMemoryDC()
dc.SelectObject(bmp)
self.Draw(dc, size)
wdc = wxPaintDC(self)
wdc.BeginDrawing()
wdc.Blit(0,0, size.width, size.height, dc, 0,0)
wdc.EndDrawing()
dc.SelectObject(wxNullBitmap)
def OnEraseBackground(self, evt):
pass
#----------------------------------------------------------------------
class TestFrame(wxFrame):
def __init__(self, parent, log):
wxFrame.__init__(self, parent, -1, "Thread Test", size=(450,300))
self.log = log
#self.CenterOnParent()
panel = wxPanel(self, -1)
panel.SetFont(wxFont(10, wxSWISS, wxNORMAL, wxBOLD))
wxStaticText(panel, -1,
"This demo shows multiple threads interacting with this\n"
"window by sending events to it.", wxPoint(5,5))
panel.Fit()
self.graph = GraphWindow(self, ['Zero', 'One', 'Two', 'Three', 'Four',
'Five', 'Six', 'Seven'])
sizer = wxBoxSizer(wxVERTICAL)
sizer.Add(panel, 0, wxEXPAND)
sizer.Add(self.graph, 1, wxEXPAND)
self.SetSizer(sizer)
self.SetAutoLayout(true)
#self.graph.SetValue(0, 25)
#self.graph.SetValue(1, 50)
#self.graph.SetValue(2, 75)
#self.graph.SetValue(3, 100)
EVT_UPDATE_BARGRAPH(self, self.OnUpdate)
self.threads = []
self.threads.append(CalcBarThread(self, 0, 50))
self.threads.append(CalcBarThread(self, 1, 75))
self.threads.append(CalcBarThread(self, 2, 100))
self.threads.append(CalcBarThread(self, 3, 150))
self.threads.append(CalcBarThread(self, 4, 225))
self.threads.append(CalcBarThread(self, 5, 300))
self.threads.append(CalcBarThread(self, 6, 250))
self.threads.append(CalcBarThread(self, 7, 175))
for t in self.threads:
t.Start()
EVT_CLOSE(self, self.OnCloseWindow)
def OnUpdate(self, evt):
self.graph.SetValue(evt.barNum, evt.value)
self.graph.Refresh(false)
def OnCloseWindow(self, evt):
busy = wxBusyInfo("One moment please, waiting for threads to die...")
for t in self.threads:
t.Stop()
running = 1
while running:
running = 0
for t in self.threads:
running = running + t.IsRunning()
time.sleep(0.1)
self.Destroy()
#----------------------------------------------------------------------
def runTest(frame, nb, log):
win = TestFrame(frame, log)
frame.otherWin = win
win.Show(true)
return None
#----------------------------------------------------------------------
overview = """\
The main issue with multi-threaded GUI programming is the thread safty
of the GUI itself. On most platforms the GUI is not thread safe and
so any cross platform GUI Toolkit and applications written with it
need to take that into account.
The solution is to only allow interaction with the GUI from a single
thread, but this often severly limits what can be done in an
application and makes it difficult to use additional threads at all.
Since wxPython already makes extensive use of event handlers, it is a
logical extension to allow events to be sent to GUI objects from
alternate threads. A function called wxPostEvent allows you to do
this. It accepts an event and an event handler (window) and instead
of sending the event immediately in the current context like
ProcessEvent does, it processes it later from the context of the GUI
thread.
"""

View File

@@ -0,0 +1,79 @@
import string, sys
py2 = sys.version[0] == '2'
from wxPython.wx import *
try:
if py2:
from xml.parsers import expat
parsermodule = expat
else:
from xml.parsers import pyexpat
parsermodule = pyexpat
haveXML = true
except ImportError:
haveXML = false
#----------------------------------------------------------------------
if not haveXML:
def runTest(frame, nb, log):
dlg = wxMessageDialog(frame, 'This demo requires the XML package. '
'See http://www.python.org/sigs/xml-sig/',
'Sorry', wxOK | wxICON_INFORMATION)
dlg.ShowModal()
dlg.Destroy()
else:
class XMLTree(wxTreeCtrl):
def __init__(self, parent, ID):
wxTreeCtrl.__init__(self, parent, ID)
self.nodeStack = [self.AddRoot("Root")]
# Define a handler for start element events
def StartElement(self, name, attrs ):
if py2:
name = name.encode()
id = self.AppendItem(self.nodeStack[-1], name)
self.nodeStack.append(id)
def EndElement(self, name ):
self.nodeStack = self.nodeStack[:-1]
def CharacterData(self, data ):
if string.strip(data):
if py2:
data = data.encode()
self.AppendItem(self.nodeStack[-1], data)
def LoadTree(self, filename):
# Create a parser
Parser = parsermodule.ParserCreate()
# Tell the parser what the start element handler is
Parser.StartElementHandler = self.StartElement
Parser.EndElementHandler = self.EndElement
Parser.CharacterDataHandler = self.CharacterData
# Parse the XML File
ParserStatus = Parser.Parse(open(filename,'r').read(), 1)
def runTest(frame, nb, log):
win = XMLTree(nb, -1)
win.LoadTree("paper.xml")
return win
#----------------------------------------------------------------------
overview = """\
"""

View File

@@ -0,0 +1 @@
new.bmp.test

Binary file not shown.

After

Width:  |  Height:  |  Size: 545 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 990 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 630 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 630 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 630 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 630 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 630 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 630 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Some files were not shown because too many files have changed in this diff Show More