wxPython 4.3.2__cp315-cp315-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- wx/WebView2Loader.dll +0 -0
- wx/__init__.py +22 -0
- wx/__init__.pyi +10 -0
- wx/__version__.py +9 -0
- wx/__version__.pyi +15 -0
- wx/_adv.cp315-win_amd64.pyd +0 -0
- wx/_aui.cp315-win_amd64.pyd +0 -0
- wx/_core.cp315-win_amd64.pyd +0 -0
- wx/_dataview.cp315-win_amd64.pyd +0 -0
- wx/_glcanvas.cp315-win_amd64.pyd +0 -0
- wx/_grid.cp315-win_amd64.pyd +0 -0
- wx/_html.cp315-win_amd64.pyd +0 -0
- wx/_html2.cp315-win_amd64.pyd +0 -0
- wx/_media.cp315-win_amd64.pyd +0 -0
- wx/_msw.cp315-win_amd64.pyd +0 -0
- wx/_propgrid.cp315-win_amd64.pyd +0 -0
- wx/_ribbon.cp315-win_amd64.pyd +0 -0
- wx/_richtext.cp315-win_amd64.pyd +0 -0
- wx/_stc.cp315-win_amd64.pyd +0 -0
- wx/_xml.cp315-win_amd64.pyd +0 -0
- wx/_xrc.cp315-win_amd64.pyd +0 -0
- wx/adv.py +127 -0
- wx/adv.pyi +5931 -0
- wx/aui.py +70 -0
- wx/aui.pyi +4805 -0
- wx/core.py +3417 -0
- wx/core.pyi +62949 -0
- wx/dataview.py +176 -0
- wx/dataview.pyi +3828 -0
- wx/gizmos.py +18 -0
- wx/glcanvas.py +13 -0
- wx/glcanvas.pyi +544 -0
- wx/grid.py +237 -0
- wx/grid.pyi +5678 -0
- wx/html.py +38 -0
- wx/html.pyi +3283 -0
- wx/html2.py +46 -0
- wx/html2.pyi +1301 -0
- wx/include/wxPython/sip.h +1938 -0
- wx/include/wxPython/wxpy_api.h +418 -0
- wx/lib/CDate.py +201 -0
- wx/lib/ClickableHtmlWindow.py +57 -0
- wx/lib/__init__.py +0 -0
- wx/lib/activex.py +178 -0
- wx/lib/activexwrapper.py +153 -0
- wx/lib/agw/__init__.py +128 -0
- wx/lib/agw/advancedsplash.py +563 -0
- wx/lib/agw/aquabutton.py +1127 -0
- wx/lib/agw/artmanager.py +2110 -0
- wx/lib/agw/aui/__init__.py +295 -0
- wx/lib/agw/aui/aui_constants.py +2616 -0
- wx/lib/agw/aui/aui_switcherdialog.py +1232 -0
- wx/lib/agw/aui/aui_utilities.py +648 -0
- wx/lib/agw/aui/auibar.py +4045 -0
- wx/lib/agw/aui/auibook.py +6288 -0
- wx/lib/agw/aui/dockart.py +1198 -0
- wx/lib/agw/aui/framemanager.py +10485 -0
- wx/lib/agw/aui/tabart.py +2749 -0
- wx/lib/agw/aui/tabmdi.py +679 -0
- wx/lib/agw/balloontip.py +1157 -0
- wx/lib/agw/buttonpanel.py +2787 -0
- wx/lib/agw/cubecolourdialog.py +3529 -0
- wx/lib/agw/customtreectrl.py +9908 -0
- wx/lib/agw/data/ShortcutEditor_1.png +0 -0
- wx/lib/agw/data/ShortcutEditor_1_thumb.png +0 -0
- wx/lib/agw/data/ShortcutEditor_2.png +0 -0
- wx/lib/agw/data/ShortcutEditor_2_thumb.png +0 -0
- wx/lib/agw/data/ShortcutEditor_3.png +0 -0
- wx/lib/agw/data/ShortcutEditor_3_thumb.png +0 -0
- wx/lib/agw/data/ShortcutEditor_4.png +0 -0
- wx/lib/agw/data/ShortcutEditor_4_thumb.png +0 -0
- wx/lib/agw/data/default_help_text.html +105 -0
- wx/lib/agw/flatmenu.py +7392 -0
- wx/lib/agw/flatnotebook.py +6669 -0
- wx/lib/agw/floatspin.py +1820 -0
- wx/lib/agw/fmcustomizedlg.py +535 -0
- wx/lib/agw/fmresources.py +407 -0
- wx/lib/agw/foldpanelbar.py +2282 -0
- wx/lib/agw/fourwaysplitter.py +1130 -0
- wx/lib/agw/genericmessagedialog.py +1549 -0
- wx/lib/agw/gradientbutton.py +731 -0
- wx/lib/agw/hyperlink.py +664 -0
- wx/lib/agw/hypertreelist.py +5756 -0
- wx/lib/agw/infobar.py +885 -0
- wx/lib/agw/knobctrl.py +944 -0
- wx/lib/agw/labelbook.py +3028 -0
- wx/lib/agw/multidirdialog.py +581 -0
- wx/lib/agw/peakmeter.py +1028 -0
- wx/lib/agw/persist/__init__.py +188 -0
- wx/lib/agw/persist/persist_constants.py +283 -0
- wx/lib/agw/persist/persist_handlers.py +2614 -0
- wx/lib/agw/persist/persistencemanager.py +863 -0
- wx/lib/agw/piectrl.py +1082 -0
- wx/lib/agw/pybusyinfo.py +399 -0
- wx/lib/agw/pycollapsiblepane.py +940 -0
- wx/lib/agw/pygauge.py +570 -0
- wx/lib/agw/pyprogress.py +916 -0
- wx/lib/agw/ribbon/__init__.py +198 -0
- wx/lib/agw/ribbon/art.py +219 -0
- wx/lib/agw/ribbon/art_aui.py +1283 -0
- wx/lib/agw/ribbon/art_default.py +81 -0
- wx/lib/agw/ribbon/art_internal.py +248 -0
- wx/lib/agw/ribbon/art_msw.py +2735 -0
- wx/lib/agw/ribbon/art_osx.py +52 -0
- wx/lib/agw/ribbon/bar.py +1259 -0
- wx/lib/agw/ribbon/buttonbar.py +1317 -0
- wx/lib/agw/ribbon/control.py +205 -0
- wx/lib/agw/ribbon/gallery.py +973 -0
- wx/lib/agw/ribbon/page.py +946 -0
- wx/lib/agw/ribbon/panel.py +1170 -0
- wx/lib/agw/ribbon/toolbar.py +1441 -0
- wx/lib/agw/rulerctrl.py +1885 -0
- wx/lib/agw/scrolledthumbnail.py +2116 -0
- wx/lib/agw/shapedbutton.py +1809 -0
- wx/lib/agw/shortcuteditor.py +2642 -0
- wx/lib/agw/speedmeter.py +1800 -0
- wx/lib/agw/supertooltip.py +1443 -0
- wx/lib/agw/thumbnailctrl.py +529 -0
- wx/lib/agw/toasterbox.py +1327 -0
- wx/lib/agw/ultimatelistctrl.py +13671 -0
- wx/lib/agw/xlsgrid.py +2111 -0
- wx/lib/agw/zoombar.py +1336 -0
- wx/lib/analogclock/__init__.py +140 -0
- wx/lib/analogclock/analogclock.py +630 -0
- wx/lib/analogclock/helpers.py +986 -0
- wx/lib/analogclock/lib_setup/__init__.py +0 -0
- wx/lib/analogclock/lib_setup/buttontreectrlpanel.py +297 -0
- wx/lib/analogclock/lib_setup/fontselect.py +57 -0
- wx/lib/analogclock/setup.py +490 -0
- wx/lib/analogclock/styles.py +47 -0
- wx/lib/anchors.py +103 -0
- wx/lib/art/__init__.py +4 -0
- wx/lib/art/flagart.py +1583 -0
- wx/lib/art/img2pyartprov.py +56 -0
- wx/lib/busy.py +152 -0
- wx/lib/buttons.py +1140 -0
- wx/lib/calendar.py +1596 -0
- wx/lib/checkbox.py +837 -0
- wx/lib/colourchooser/__init__.py +36 -0
- wx/lib/colourchooser/canvas.py +145 -0
- wx/lib/colourchooser/intl.py +24 -0
- wx/lib/colourchooser/pycolourbox.py +89 -0
- wx/lib/colourchooser/pycolourchooser.py +626 -0
- wx/lib/colourchooser/pycolourslider.py +98 -0
- wx/lib/colourchooser/pypalette.py +208 -0
- wx/lib/colourdb.py +740 -0
- wx/lib/colourselect.py +385 -0
- wx/lib/colourutils.py +118 -0
- wx/lib/combotreebox.py +944 -0
- wx/lib/delayedresult.py +420 -0
- wx/lib/dialogs.py +510 -0
- wx/lib/docview.py +3210 -0
- wx/lib/dragscroller.py +79 -0
- wx/lib/editor/README.txt +77 -0
- wx/lib/editor/__init__.py +24 -0
- wx/lib/editor/editor.py +974 -0
- wx/lib/editor/images.py +15 -0
- wx/lib/editor/selection.py +44 -0
- wx/lib/embeddedimage.py +76 -0
- wx/lib/eventStack.py +136 -0
- wx/lib/eventwatcher.py +440 -0
- wx/lib/evtmgr.py +521 -0
- wx/lib/expando.py +393 -0
- wx/lib/fancytext.py +494 -0
- wx/lib/filebrowsebutton.py +461 -0
- wx/lib/flashwin.py +262 -0
- wx/lib/flashwin_old.py +651 -0
- wx/lib/floatcanvas/FCEvents.py +53 -0
- wx/lib/floatcanvas/FCObjects.py +2910 -0
- wx/lib/floatcanvas/FloatCanvas.py +1025 -0
- wx/lib/floatcanvas/GUIMode.py +396 -0
- wx/lib/floatcanvas/NavCanvas.py +162 -0
- wx/lib/floatcanvas/Resources.py +319 -0
- wx/lib/floatcanvas/ScreenShot.py +1788 -0
- wx/lib/floatcanvas/Utilities/BBox.py +313 -0
- wx/lib/floatcanvas/Utilities/Colors.py +137 -0
- wx/lib/floatcanvas/Utilities/GUI.py +91 -0
- wx/lib/floatcanvas/Utilities/__init__.py +7 -0
- wx/lib/floatcanvas/__init__.py +124 -0
- wx/lib/foldmenu.py +89 -0
- wx/lib/gestures.py +310 -0
- wx/lib/gizmos/__init__.py +18 -0
- wx/lib/gizmos/dynamicsash.py +1202 -0
- wx/lib/gizmos/ledctrl.py +299 -0
- wx/lib/gizmos/treelistctrl.py +87 -0
- wx/lib/graphics.py +1942 -0
- wx/lib/gridmovers.py +516 -0
- wx/lib/iewin.py +249 -0
- wx/lib/iewin_old.py +894 -0
- wx/lib/imagebrowser.py +853 -0
- wx/lib/imageutils.py +163 -0
- wx/lib/infoframe.py +490 -0
- wx/lib/inspection.py +1254 -0
- wx/lib/intctrl.py +990 -0
- wx/lib/itemspicker.py +256 -0
- wx/lib/langlistctrl.py +480 -0
- wx/lib/layoutf.py +271 -0
- wx/lib/masked/__init__.py +27 -0
- wx/lib/masked/combobox.py +839 -0
- wx/lib/masked/ctrl.py +108 -0
- wx/lib/masked/ipaddrctrl.py +241 -0
- wx/lib/masked/maskededit.py +7262 -0
- wx/lib/masked/numctrl.py +2000 -0
- wx/lib/masked/textctrl.py +465 -0
- wx/lib/masked/timectrl.py +1465 -0
- wx/lib/mixins/__init__.py +17 -0
- wx/lib/mixins/grid.py +47 -0
- wx/lib/mixins/gridlabelrenderer.py +277 -0
- wx/lib/mixins/imagelist.py +77 -0
- wx/lib/mixins/inspection.py +184 -0
- wx/lib/mixins/listctrl.py +893 -0
- wx/lib/mixins/rubberband.py +403 -0
- wx/lib/mixins/treemixin.py +678 -0
- wx/lib/msgpanel.py +95 -0
- wx/lib/multisash.py +746 -0
- wx/lib/myole4ax.idl +178 -0
- wx/lib/myole4ax.tlb +0 -0
- wx/lib/newevent.py +229 -0
- wx/lib/newevent.pyi +25 -0
- wx/lib/nvdlg.py +156 -0
- wx/lib/ogl/__init__.py +13 -0
- wx/lib/ogl/basic.py +3989 -0
- wx/lib/ogl/bmpshape.py +86 -0
- wx/lib/ogl/canvas.py +467 -0
- wx/lib/ogl/composit.py +1576 -0
- wx/lib/ogl/diagram.py +230 -0
- wx/lib/ogl/divided.py +482 -0
- wx/lib/ogl/drawn.py +898 -0
- wx/lib/ogl/lines.py +1809 -0
- wx/lib/ogl/oglmisc.py +607 -0
- wx/lib/pdfviewer/__init__.py +113 -0
- wx/lib/pdfviewer/bitmaps/ArrowLeft.png +0 -0
- wx/lib/pdfviewer/bitmaps/ArrowRight.png +0 -0
- wx/lib/pdfviewer/bitmaps/DirectionH.png +0 -0
- wx/lib/pdfviewer/bitmaps/DirectionV.png +0 -0
- wx/lib/pdfviewer/bitmaps/PlayerFirst.png +0 -0
- wx/lib/pdfviewer/bitmaps/PlayerLast.png +0 -0
- wx/lib/pdfviewer/bitmaps/PlayerNext.png +0 -0
- wx/lib/pdfviewer/bitmaps/PlayerPrev.png +0 -0
- wx/lib/pdfviewer/bitmaps/Printer.png +0 -0
- wx/lib/pdfviewer/bitmaps/ReadMe.txt +28 -0
- wx/lib/pdfviewer/bitmaps/Save.png +0 -0
- wx/lib/pdfviewer/bitmaps/ZoomIn.png +0 -0
- wx/lib/pdfviewer/bitmaps/ZoomOut.png +0 -0
- wx/lib/pdfviewer/bitmaps/encode_bitmaps.py +37 -0
- wx/lib/pdfviewer/buttonpanel.py +285 -0
- wx/lib/pdfviewer/images.py +240 -0
- wx/lib/pdfviewer/viewer.py +1118 -0
- wx/lib/pdfwin.py +295 -0
- wx/lib/pdfwin_old.py +789 -0
- wx/lib/platebtn.py +789 -0
- wx/lib/plot/CHANGELOG.md +150 -0
- wx/lib/plot/README.md +16 -0
- wx/lib/plot/__init__.py +46 -0
- wx/lib/plot/__main__.py +5 -0
- wx/lib/plot/examples/__init__.py +0 -0
- wx/lib/plot/examples/demo.py +1010 -0
- wx/lib/plot/examples/simple_example.py +56 -0
- wx/lib/plot/plotcanvas.py +2985 -0
- wx/lib/plot/polyobjects.py +1524 -0
- wx/lib/plot/utils.py +334 -0
- wx/lib/popupctl.py +251 -0
- wx/lib/printout.py +1155 -0
- wx/lib/progressindicator.py +151 -0
- wx/lib/pubsub/LICENSE_BSD_Simple.txt +23 -0
- wx/lib/pubsub/README_WxPython.txt +22 -0
- wx/lib/pubsub/RELEASE_NOTES.txt +71 -0
- wx/lib/pubsub/__init__.py +25 -0
- wx/lib/pubsub/core/__init__.py +92 -0
- wx/lib/pubsub/core/arg1/__init__.py +16 -0
- wx/lib/pubsub/core/arg1/listenerimpl.py +97 -0
- wx/lib/pubsub/core/arg1/publisher.py +40 -0
- wx/lib/pubsub/core/arg1/publishermixin.py +34 -0
- wx/lib/pubsub/core/arg1/topicargspecimpl.py +66 -0
- wx/lib/pubsub/core/arg1/topicmgrimpl.py +19 -0
- wx/lib/pubsub/core/callables.py +198 -0
- wx/lib/pubsub/core/imp2.py +62 -0
- wx/lib/pubsub/core/itopicdefnprovider.py +0 -0
- wx/lib/pubsub/core/kwargs/__init__.py +16 -0
- wx/lib/pubsub/core/kwargs/datamsg.py +27 -0
- wx/lib/pubsub/core/kwargs/listenerimpl.py +93 -0
- wx/lib/pubsub/core/kwargs/publisher.py +77 -0
- wx/lib/pubsub/core/kwargs/publishermixin.py +65 -0
- wx/lib/pubsub/core/kwargs/topicargspecimpl.py +216 -0
- wx/lib/pubsub/core/kwargs/topicmgrimpl.py +13 -0
- wx/lib/pubsub/core/listener.py +40 -0
- wx/lib/pubsub/core/listenerbase.py +185 -0
- wx/lib/pubsub/core/notificationmgr.py +185 -0
- wx/lib/pubsub/core/publisherbase.py +189 -0
- wx/lib/pubsub/core/topicargspec.py +77 -0
- wx/lib/pubsub/core/topicdefnprovider.py +631 -0
- wx/lib/pubsub/core/topicexc.py +72 -0
- wx/lib/pubsub/core/topicmgr.py +454 -0
- wx/lib/pubsub/core/topicobj.py +472 -0
- wx/lib/pubsub/core/topictreetraverser.py +143 -0
- wx/lib/pubsub/core/topicutils.py +119 -0
- wx/lib/pubsub/core/treeconfig.py +21 -0
- wx/lib/pubsub/core/validatedefnargs.py +29 -0
- wx/lib/pubsub/core/weakmethod.py +102 -0
- wx/lib/pubsub/policies.py +24 -0
- wx/lib/pubsub/pub.py +199 -0
- wx/lib/pubsub/setuparg1.py +47 -0
- wx/lib/pubsub/setupkwargs.py +29 -0
- wx/lib/pubsub/utils/__init__.py +27 -0
- wx/lib/pubsub/utils/exchandling.py +100 -0
- wx/lib/pubsub/utils/misc.py +99 -0
- wx/lib/pubsub/utils/notification.py +331 -0
- wx/lib/pubsub/utils/topictreeprinter.py +195 -0
- wx/lib/pubsub/utils/xmltopicdefnprovider.py +286 -0
- wx/lib/pydocview.py +3300 -0
- wx/lib/rcsizer.py +227 -0
- wx/lib/resizewidget.py +357 -0
- wx/lib/scrolledpanel.py +243 -0
- wx/lib/sheet.py +350 -0
- wx/lib/sized_controls.py +691 -0
- wx/lib/softwareupdate.py +355 -0
- wx/lib/splitter.py +925 -0
- wx/lib/statbmp.py +199 -0
- wx/lib/stattext.py +321 -0
- wx/lib/throbber.py +424 -0
- wx/lib/ticker.py +306 -0
- wx/lib/ticker_xrc.py +48 -0
- wx/lib/utils.py +89 -0
- wx/lib/wordwrap.py +97 -0
- wx/lib/wxcairo/__init__.py +139 -0
- wx/lib/wxcairo/wx_cairocffi.py +200 -0
- wx/lib/wxcairo/wx_pycairo.py +455 -0
- wx/lib/wxpTag.py +274 -0
- wx/libcairo-2.dll +0 -0
- wx/locale/af/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/an/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/ar/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/ca/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/ca@valencia/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/co/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/cs/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/da/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/de/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/el/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/es/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/eu/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/fa_IR/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/fi/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/fr/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/gl_ES/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/hi/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/hr/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/hu/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/id/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/it/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/ja/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/ka/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/ko_KR/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/lt/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/lv/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/ms/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/nb/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/ne/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/nl/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/pl/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/pt/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/pt_BR/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/ro/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/ru/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/sk/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/sl/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/sq/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/sr/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/sv/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/ta/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/tr/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/uk/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/vi/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/zh_CN/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/zh_TW/LC_MESSAGES/wxstd.mo +0 -0
- wx/media.py +30 -0
- wx/media.pyi +272 -0
- wx/msw.py +16 -0
- wx/msw.pyi +91 -0
- wx/propgrid.py +498 -0
- wx/propgrid.pyi +7427 -0
- wx/py/CHANGES.txt +796 -0
- wx/py/Py.ico +0 -0
- wx/py/PyAlaCarte.py +34 -0
- wx/py/PyAlaMode.py +34 -0
- wx/py/PyAlaModeTest.py +33 -0
- wx/py/PyCrust.ico +0 -0
- wx/py/PyCrust.py +78 -0
- wx/py/PyCrust_16.png +0 -0
- wx/py/PyCrust_32.png +0 -0
- wx/py/PyFilling.py +35 -0
- wx/py/PyShell.py +78 -0
- wx/py/PySlices.ico +0 -0
- wx/py/PySlices.py +98 -0
- wx/py/PySlicesShell.py +94 -0
- wx/py/PySlices_16.png +0 -0
- wx/py/PySlices_32.png +0 -0
- wx/py/PyWrap.py +52 -0
- wx/py/README.txt +77 -0
- wx/py/__init__.py +20 -0
- wx/py/buffer.py +136 -0
- wx/py/crust.py +403 -0
- wx/py/crustslices.py +403 -0
- wx/py/dispatcher.py +259 -0
- wx/py/document.py +37 -0
- wx/py/editor.py +844 -0
- wx/py/editwindow.py +316 -0
- wx/py/filling.py +358 -0
- wx/py/frame.py +976 -0
- wx/py/images.py +212 -0
- wx/py/interpreter.py +161 -0
- wx/py/introspect.py +402 -0
- wx/py/magic.py +98 -0
- wx/py/parse.py +134 -0
- wx/py/path.py +36 -0
- wx/py/pseudo.py +99 -0
- wx/py/shell.py +1579 -0
- wx/py/sliceshell.py +3805 -0
- wx/py/tests/test_interpreter.py +71 -0
- wx/py/tests/test_introspect.py +810 -0
- wx/py/tests/test_pseudo.py +70 -0
- wx/py/tests/test_version.py +36 -0
- wx/py/tests/testall.py +22 -0
- wx/py/version.py +7 -0
- wx/py.typed +0 -0
- wx/ribbon.py +48 -0
- wx/ribbon.pyi +3099 -0
- wx/richtext.py +141 -0
- wx/richtext.pyi +13581 -0
- wx/siplib.cp315-win_amd64.pyd +0 -0
- wx/siplib.pyi +19 -0
- wx/stc.py +59 -0
- wx/stc.pyi +9918 -0
- wx/svg/__init__.py +363 -0
- wx/svg/_nanosvg.cp315-win_amd64.pyd +0 -0
- wx/tools/__init__.py +18 -0
- wx/tools/dbg.py +268 -0
- wx/tools/genaxmodule.py +50 -0
- wx/tools/helpviewer.py +92 -0
- wx/tools/img2img.py +85 -0
- wx/tools/img2png.py +54 -0
- wx/tools/img2py.py +306 -0
- wx/tools/img2xpm.py +54 -0
- wx/tools/pywxrc.py +951 -0
- wx/tools/wxget.py +254 -0
- wx/tools/wxget_docs_demo.py +183 -0
- wx/wxbase334u_net_vc140_x64.dll +0 -0
- wx/wxbase334u_vc140_x64.dll +0 -0
- wx/wxbase334u_xml_vc140_x64.dll +0 -0
- wx/wxmsw334u_adv_vc140_x64.dll +0 -0
- wx/wxmsw334u_aui_vc140_x64.dll +0 -0
- wx/wxmsw334u_core_vc140_x64.dll +0 -0
- wx/wxmsw334u_gl_vc140_x64.dll +0 -0
- wx/wxmsw334u_html_vc140_x64.dll +0 -0
- wx/wxmsw334u_media_vc140_x64.dll +0 -0
- wx/wxmsw334u_propgrid_vc140_x64.dll +0 -0
- wx/wxmsw334u_qa_vc140_x64.dll +0 -0
- wx/wxmsw334u_ribbon_vc140_x64.dll +0 -0
- wx/wxmsw334u_richtext_vc140_x64.dll +0 -0
- wx/wxmsw334u_stc_vc140_x64.dll +0 -0
- wx/wxmsw334u_webview_vc140_x64.dll +0 -0
- wx/wxmsw334u_xrc_vc140_x64.dll +0 -0
- wx/xml.py +18 -0
- wx/xml.pyi +728 -0
- wx/xrc.py +68 -0
- wx/xrc.pyi +896 -0
- wxpython-4.3.2.dist-info/METADATA +71 -0
- wxpython-4.3.2.dist-info/RECORD +472 -0
- wxpython-4.3.2.dist-info/WHEEL +5 -0
- wxpython-4.3.2.dist-info/entry_points.txt +13 -0
- wxpython-4.3.2.dist-info/licenses/LICENSE.txt +610 -0
- wxpython-4.3.2.dist-info/top_level.txt +1 -0
wx/lib/agw/aui/tabmdi.py
ADDED
|
@@ -0,0 +1,679 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
#----------------------------------------------------------------------------
|
|
3
|
+
# Name: auimdi.py
|
|
4
|
+
# Purpose:
|
|
5
|
+
#
|
|
6
|
+
# Author: Andrea Gavana <andrea.gavana@gmail.com>
|
|
7
|
+
#
|
|
8
|
+
# Created:
|
|
9
|
+
# Version:
|
|
10
|
+
# Date: 31 March 2009
|
|
11
|
+
# Licence: wxWindows license
|
|
12
|
+
# Tags: phoenix-port, documented
|
|
13
|
+
#----------------------------------------------------------------------------
|
|
14
|
+
__author__ = "Andrea Gavana <andrea.gavana@gmail.com>"
|
|
15
|
+
__date__ = "31 March 2009"
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
import wx
|
|
19
|
+
|
|
20
|
+
from . import auibook
|
|
21
|
+
from .aui_constants import *
|
|
22
|
+
|
|
23
|
+
_ = wx.GetTranslation
|
|
24
|
+
|
|
25
|
+
#-----------------------------------------------------------------------------
|
|
26
|
+
# AuiMDIParentFrame
|
|
27
|
+
#-----------------------------------------------------------------------------
|
|
28
|
+
|
|
29
|
+
class AuiMDIParentFrame(wx.Frame):
|
|
30
|
+
|
|
31
|
+
def __init__(self, parent, id=wx.ID_ANY, title="", pos=wx.DefaultPosition,
|
|
32
|
+
size=wx.DefaultSize, style=wx.DEFAULT_FRAME_STYLE|wx.VSCROLL|wx.HSCROLL,
|
|
33
|
+
name="AuiMDIParentFrame"):
|
|
34
|
+
|
|
35
|
+
wx.Frame.__init__(self, parent, id, title, pos, size, style, name=name)
|
|
36
|
+
self.Init()
|
|
37
|
+
|
|
38
|
+
self.Bind(wx.EVT_MENU, self.DoHandleMenu, id=wx.ID_ANY)
|
|
39
|
+
|
|
40
|
+
# this style can be used to prevent a window from having the standard MDI
|
|
41
|
+
# "Window" menu
|
|
42
|
+
if not style & wx.FRAME_NO_WINDOW_MENU:
|
|
43
|
+
|
|
44
|
+
self._pWindowMenu = wx.Menu()
|
|
45
|
+
self._pWindowMenu.Append(wxWINDOWCLOSE, _("Cl&ose"))
|
|
46
|
+
self._pWindowMenu.Append(wxWINDOWCLOSEALL, _("Close All"))
|
|
47
|
+
self._pWindowMenu.AppendSeparator()
|
|
48
|
+
self._pWindowMenu.Append(wxWINDOWNEXT, _("&Next"))
|
|
49
|
+
self._pWindowMenu.Append(wxWINDOWPREV, _("&Previous"))
|
|
50
|
+
|
|
51
|
+
self._pClientWindow = self.OnCreateClient()
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
def SetArtProvider(self, provider):
|
|
55
|
+
|
|
56
|
+
if self._pClientWindow:
|
|
57
|
+
self._pClientWindow.SetArtProvider(provider)
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
def GetArtProvider(self):
|
|
61
|
+
|
|
62
|
+
if not self._pClientWindow:
|
|
63
|
+
return None
|
|
64
|
+
|
|
65
|
+
return self._pClientWindow.GetArtProvider()
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
def GetNotebook(self):
|
|
69
|
+
|
|
70
|
+
return self._pClientWindow
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
def SetWindowMenu(self, pMenu):
|
|
74
|
+
|
|
75
|
+
# Replace the window menu from the currently loaded menu bar.
|
|
76
|
+
pMenuBar = self.GetMenuBar()
|
|
77
|
+
|
|
78
|
+
if self._pWindowMenu:
|
|
79
|
+
self.RemoveWindowMenu(pMenuBar)
|
|
80
|
+
del self._pWindowMenu
|
|
81
|
+
self._pWindowMenu = None
|
|
82
|
+
|
|
83
|
+
if pMenu:
|
|
84
|
+
self._pWindowMenu = pMenu
|
|
85
|
+
self.AddWindowMenu(pMenuBar)
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
def GetWindowMenu(self):
|
|
89
|
+
|
|
90
|
+
return self._pWindowMenu
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
def SetMenuBar(self, pMenuBar):
|
|
94
|
+
|
|
95
|
+
# Remove the Window menu from the old menu bar
|
|
96
|
+
self.RemoveWindowMenu(self.GetMenuBar())
|
|
97
|
+
|
|
98
|
+
# Add the Window menu to the new menu bar.
|
|
99
|
+
self.AddWindowMenu(pMenuBar)
|
|
100
|
+
|
|
101
|
+
wx.Frame.SetMenuBar(self, pMenuBar)
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
def SetChildMenuBar(self, pChild):
|
|
105
|
+
|
|
106
|
+
if not pChild:
|
|
107
|
+
|
|
108
|
+
# No Child, set Our menu bar back.
|
|
109
|
+
if self._pMyMenuBar:
|
|
110
|
+
self.SetMenuBar(self._pMyMenuBar)
|
|
111
|
+
else:
|
|
112
|
+
self.SetMenuBar(self.GetMenuBar())
|
|
113
|
+
|
|
114
|
+
# Make sure we know our menu bar is in use
|
|
115
|
+
self._pMyMenuBar = None
|
|
116
|
+
|
|
117
|
+
else:
|
|
118
|
+
|
|
119
|
+
if pChild.GetMenuBar() is None:
|
|
120
|
+
return
|
|
121
|
+
|
|
122
|
+
# Do we need to save the current bar?
|
|
123
|
+
if self._pMyMenuBar is None:
|
|
124
|
+
self._pMyMenuBar = self.GetMenuBar()
|
|
125
|
+
|
|
126
|
+
self.SetMenuBar(pChild.GetMenuBar())
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
def ProcessEvent(self, event):
|
|
130
|
+
|
|
131
|
+
# stops the same event being processed repeatedly
|
|
132
|
+
if self._pLastEvt == event:
|
|
133
|
+
return False
|
|
134
|
+
|
|
135
|
+
self._pLastEvt = event
|
|
136
|
+
|
|
137
|
+
# let the active child (if any) process the event first.
|
|
138
|
+
res = False
|
|
139
|
+
if self._pActiveChild and event.IsCommandEvent() and \
|
|
140
|
+
event.GetEventObject() != self._pClientWindow and \
|
|
141
|
+
event.GetEventType() not in [wx.wxEVT_ACTIVATE, wx.wxEVT_SET_FOCUS,
|
|
142
|
+
wx.wxEVT_KILL_FOCUS, wx.wxEVT_CHILD_FOCUS,
|
|
143
|
+
wx.wxEVT_COMMAND_SET_FOCUS, wx.wxEVT_COMMAND_KILL_FOCUS]:
|
|
144
|
+
|
|
145
|
+
res = self._pActiveChild.GetEventHandler().ProcessEvent(event)
|
|
146
|
+
|
|
147
|
+
if not res:
|
|
148
|
+
|
|
149
|
+
# if the event was not handled this frame will handle it,
|
|
150
|
+
# which is why we need the protection code at the beginning
|
|
151
|
+
# of this method
|
|
152
|
+
res = self.GetEventHandler().ProcessEvent(event)
|
|
153
|
+
|
|
154
|
+
self._pLastEvt = None
|
|
155
|
+
|
|
156
|
+
return res
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
def GetActiveChild(self):
|
|
160
|
+
|
|
161
|
+
return self._pActiveChild
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
def SetActiveChild(self, pChildFrame):
|
|
165
|
+
|
|
166
|
+
self._pActiveChild = pChildFrame
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
def GetClientWindow(self):
|
|
170
|
+
|
|
171
|
+
return self._pClientWindow
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
def OnCreateClient(self):
|
|
175
|
+
|
|
176
|
+
return AuiMDIClientWindow(self)
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
def ActivateNext(self):
|
|
180
|
+
|
|
181
|
+
if self._pClientWindow and self._pClientWindow.GetSelection() != wx.NOT_FOUND:
|
|
182
|
+
|
|
183
|
+
active = self._pClientWindow.GetSelection() + 1
|
|
184
|
+
if active >= self._pClientWindow.GetPageCount():
|
|
185
|
+
active = 0
|
|
186
|
+
|
|
187
|
+
self._pClientWindow.SetSelection(active)
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
def ActivatePrevious(self):
|
|
191
|
+
|
|
192
|
+
if self._pClientWindow and self._pClientWindow.GetSelection() != wx.NOT_FOUND:
|
|
193
|
+
|
|
194
|
+
active = self._pClientWindow.GetSelection() - 1
|
|
195
|
+
if active < 0:
|
|
196
|
+
active = self._pClientWindow.GetPageCount() - 1
|
|
197
|
+
|
|
198
|
+
self._pClientWindow.SetSelection(active)
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
def Init(self):
|
|
202
|
+
|
|
203
|
+
self._pLastEvt = None
|
|
204
|
+
|
|
205
|
+
self._pClientWindow = None
|
|
206
|
+
self._pActiveChild = None
|
|
207
|
+
self._pWindowMenu = None
|
|
208
|
+
self._pMyMenuBar = None
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
def RemoveWindowMenu(self, pMenuBar):
|
|
212
|
+
|
|
213
|
+
if pMenuBar and self._pWindowMenu:
|
|
214
|
+
|
|
215
|
+
# Remove old window menu
|
|
216
|
+
pos = pMenuBar.FindMenu(_("&Window"))
|
|
217
|
+
if pos != wx.NOT_FOUND:
|
|
218
|
+
pMenuBar.Remove(pos)
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
def AddWindowMenu(self, pMenuBar):
|
|
222
|
+
|
|
223
|
+
if pMenuBar and self._pWindowMenu:
|
|
224
|
+
|
|
225
|
+
pos = pMenuBar.FindMenu(wx.GetStockLabel(wx.ID_HELP, wx.STOCK_NOFLAGS))
|
|
226
|
+
if pos == wx.NOT_FOUND:
|
|
227
|
+
pMenuBar.Append(self._pWindowMenu, _("&Window"))
|
|
228
|
+
else:
|
|
229
|
+
pMenuBar.Insert(pos, self._pWindowMenu, _("&Window"))
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
def DoHandleMenu(self, event):
|
|
233
|
+
|
|
234
|
+
evId = event.GetId()
|
|
235
|
+
|
|
236
|
+
if evId == wxWINDOWCLOSE:
|
|
237
|
+
if self._pActiveChild:
|
|
238
|
+
self._pActiveChild.Close()
|
|
239
|
+
|
|
240
|
+
elif evId == wxWINDOWCLOSEALL:
|
|
241
|
+
|
|
242
|
+
while self._pActiveChild:
|
|
243
|
+
if not self._pActiveChild.Close():
|
|
244
|
+
return # failure
|
|
245
|
+
|
|
246
|
+
elif evId == wxWINDOWNEXT:
|
|
247
|
+
self.ActivateNext()
|
|
248
|
+
|
|
249
|
+
elif evId == wxWINDOWPREV:
|
|
250
|
+
self.ActivatePrevious()
|
|
251
|
+
|
|
252
|
+
else:
|
|
253
|
+
event.Skip()
|
|
254
|
+
|
|
255
|
+
|
|
256
|
+
def Tile(self, orient=wx.HORIZONTAL):
|
|
257
|
+
|
|
258
|
+
client_window = self.GetClientWindow()
|
|
259
|
+
if not client_window:
|
|
260
|
+
raise Exception("Missing MDI Client Window")
|
|
261
|
+
|
|
262
|
+
cur_idx = client_window.GetSelection()
|
|
263
|
+
if cur_idx == -1:
|
|
264
|
+
return
|
|
265
|
+
|
|
266
|
+
if orient == wx.VERTICAL:
|
|
267
|
+
|
|
268
|
+
client_window.Split(cur_idx, wx.LEFT)
|
|
269
|
+
|
|
270
|
+
elif orient == wx.HORIZONTAL:
|
|
271
|
+
|
|
272
|
+
client_window.Split(cur_idx, wx.TOP)
|
|
273
|
+
|
|
274
|
+
|
|
275
|
+
#-----------------------------------------------------------------------------
|
|
276
|
+
# AuiMDIChildFrame
|
|
277
|
+
#-----------------------------------------------------------------------------
|
|
278
|
+
|
|
279
|
+
class AuiMDIChildFrame(wx.Panel):
|
|
280
|
+
|
|
281
|
+
def __init__(self, parent, id=wx.ID_ANY, title="", pos=wx.DefaultPosition,
|
|
282
|
+
size=wx.DefaultSize, style=wx.DEFAULT_FRAME_STYLE, name="AuiMDIChildFrame"):
|
|
283
|
+
|
|
284
|
+
pClientWindow = parent.GetClientWindow()
|
|
285
|
+
if pClientWindow is None:
|
|
286
|
+
raise Exception("Missing MDI client window.")
|
|
287
|
+
|
|
288
|
+
self.Init()
|
|
289
|
+
|
|
290
|
+
# see comment in constructor
|
|
291
|
+
if style & wx.MINIMIZE:
|
|
292
|
+
self._activate_on_create = False
|
|
293
|
+
|
|
294
|
+
cli_size = pClientWindow.GetClientSize()
|
|
295
|
+
|
|
296
|
+
# create the window off-screen to prevent flicker
|
|
297
|
+
wx.Panel.__init__(self, pClientWindow, id, wx.Point(cli_size.x+1, cli_size.y+1),
|
|
298
|
+
size, wx.NO_BORDER, name=name)
|
|
299
|
+
|
|
300
|
+
self.SetBackgroundStyle(wx.BG_STYLE_CUSTOM)
|
|
301
|
+
self.Show(False)
|
|
302
|
+
self.SetMDIParentFrame(parent)
|
|
303
|
+
|
|
304
|
+
# this is the currently active child
|
|
305
|
+
parent.SetActiveChild(self)
|
|
306
|
+
self._title = title
|
|
307
|
+
|
|
308
|
+
pClientWindow.AddPage(self, title, self._activate_on_create)
|
|
309
|
+
pClientWindow.Refresh()
|
|
310
|
+
|
|
311
|
+
self.Bind(wx.EVT_MENU_HIGHLIGHT_ALL, self.OnMenuHighlight)
|
|
312
|
+
self.Bind(wx.EVT_ACTIVATE, self.OnActivate)
|
|
313
|
+
self.Bind(wx.EVT_CLOSE, self.OnCloseWindow)
|
|
314
|
+
|
|
315
|
+
|
|
316
|
+
def Init(self):
|
|
317
|
+
|
|
318
|
+
# There are two ways to create an tabbed mdi child fram without
|
|
319
|
+
# making it the active document. Either Show(False) can be called
|
|
320
|
+
# before Create() (as is customary on some ports with wxFrame-type
|
|
321
|
+
# windows), or wx.MINIMIZE can be passed in the style flags. Note that
|
|
322
|
+
# AuiMDIChildFrame is not really derived from wxFrame, as MDIChildFrame
|
|
323
|
+
# is, but those are the expected semantics. No style flag is passed
|
|
324
|
+
# onto the panel underneath.
|
|
325
|
+
|
|
326
|
+
self._activate_on_create = True
|
|
327
|
+
|
|
328
|
+
self._pMDIParentFrame = None
|
|
329
|
+
self._pMenuBar = None
|
|
330
|
+
|
|
331
|
+
self._mdi_currect = None
|
|
332
|
+
self._mdi_newrect = wx.Rect()
|
|
333
|
+
self._icon = None
|
|
334
|
+
self._icon_bundle = None
|
|
335
|
+
|
|
336
|
+
|
|
337
|
+
def Destroy(self):
|
|
338
|
+
|
|
339
|
+
pParentFrame = self.GetMDIParentFrame()
|
|
340
|
+
if not pParentFrame:
|
|
341
|
+
raise Exception("Missing MDI Parent Frame")
|
|
342
|
+
|
|
343
|
+
pClientWindow = pParentFrame.GetClientWindow()
|
|
344
|
+
if not pClientWindow:
|
|
345
|
+
raise Exception("Missing MDI Client Window")
|
|
346
|
+
|
|
347
|
+
if pParentFrame.GetActiveChild() == self:
|
|
348
|
+
|
|
349
|
+
# deactivate ourself
|
|
350
|
+
event = wx.ActivateEvent(wx.wxEVT_ACTIVATE, False, self.GetId())
|
|
351
|
+
event.SetEventObject(self)
|
|
352
|
+
self.GetEventHandler().ProcessEvent(event)
|
|
353
|
+
|
|
354
|
+
pParentFrame.SetActiveChild(None)
|
|
355
|
+
pParentFrame.SetChildMenuBar(None)
|
|
356
|
+
|
|
357
|
+
for pos in range(pClientWindow.GetPageCount()):
|
|
358
|
+
if pClientWindow.GetPage(pos) == self:
|
|
359
|
+
return pClientWindow.DeletePage(pos)
|
|
360
|
+
|
|
361
|
+
return False
|
|
362
|
+
|
|
363
|
+
|
|
364
|
+
def SetMenuBar(self, menu_bar):
|
|
365
|
+
|
|
366
|
+
pOldMenuBar = self._pMenuBar
|
|
367
|
+
self._pMenuBar = menu_bar
|
|
368
|
+
|
|
369
|
+
if self._pMenuBar:
|
|
370
|
+
|
|
371
|
+
pParentFrame = self.GetMDIParentFrame()
|
|
372
|
+
if not pParentFrame:
|
|
373
|
+
raise Exception("Missing MDI Parent Frame")
|
|
374
|
+
|
|
375
|
+
self._pMenuBar.Reparent(pParentFrame)
|
|
376
|
+
if pParentFrame.GetActiveChild() == self:
|
|
377
|
+
|
|
378
|
+
# replace current menu bars
|
|
379
|
+
if pOldMenuBar:
|
|
380
|
+
pParentFrame.SetChildMenuBar(None)
|
|
381
|
+
|
|
382
|
+
pParentFrame.SetChildMenuBar(self)
|
|
383
|
+
|
|
384
|
+
|
|
385
|
+
def GetMenuBar(self):
|
|
386
|
+
|
|
387
|
+
return self._pMenuBar
|
|
388
|
+
|
|
389
|
+
|
|
390
|
+
def SetTitle(self, title):
|
|
391
|
+
|
|
392
|
+
self._title = title
|
|
393
|
+
|
|
394
|
+
pParentFrame = self.GetMDIParentFrame()
|
|
395
|
+
if not pParentFrame:
|
|
396
|
+
raise Exception("Missing MDI Parent Frame")
|
|
397
|
+
|
|
398
|
+
pClientWindow = pParentFrame.GetClientWindow()
|
|
399
|
+
if pClientWindow is not None:
|
|
400
|
+
|
|
401
|
+
for pos in range(pClientWindow.GetPageCount()):
|
|
402
|
+
if pClientWindow.GetPage(pos) == self:
|
|
403
|
+
pClientWindow.SetPageText(pos, self._title)
|
|
404
|
+
break
|
|
405
|
+
|
|
406
|
+
|
|
407
|
+
def GetTitle(self):
|
|
408
|
+
|
|
409
|
+
return self._title
|
|
410
|
+
|
|
411
|
+
|
|
412
|
+
def SetIcons(self, icons):
|
|
413
|
+
|
|
414
|
+
# get icon with the system icon size
|
|
415
|
+
self.SetIcon(icons.GetIcon(-1))
|
|
416
|
+
self._icon_bundle = icons
|
|
417
|
+
|
|
418
|
+
|
|
419
|
+
def GetIcons(self):
|
|
420
|
+
|
|
421
|
+
return self._icon_bundle
|
|
422
|
+
|
|
423
|
+
|
|
424
|
+
def SetIcon(self, icon):
|
|
425
|
+
|
|
426
|
+
pParentFrame = self.GetMDIParentFrame()
|
|
427
|
+
if not pParentFrame:
|
|
428
|
+
raise Exception("Missing MDI Parent Frame")
|
|
429
|
+
|
|
430
|
+
self._icon = icon
|
|
431
|
+
|
|
432
|
+
bmp = wx.Bitmap(self._icon)
|
|
433
|
+
|
|
434
|
+
pClientWindow = pParentFrame.GetClientWindow()
|
|
435
|
+
if pClientWindow is not None:
|
|
436
|
+
idx = pClientWindow.GetPageIndex(self)
|
|
437
|
+
if idx != -1:
|
|
438
|
+
pClientWindow.SetPageBitmap(idx, bmp)
|
|
439
|
+
|
|
440
|
+
|
|
441
|
+
def GetIcon(self):
|
|
442
|
+
|
|
443
|
+
return self._icon
|
|
444
|
+
|
|
445
|
+
|
|
446
|
+
def Activate(self):
|
|
447
|
+
|
|
448
|
+
pParentFrame = self.GetMDIParentFrame()
|
|
449
|
+
if not pParentFrame:
|
|
450
|
+
raise Exception("Missing MDI Parent Frame")
|
|
451
|
+
|
|
452
|
+
pClientWindow = pParentFrame.GetClientWindow()
|
|
453
|
+
if pClientWindow is not None:
|
|
454
|
+
|
|
455
|
+
for pos in range(pClientWindow.GetPageCount()):
|
|
456
|
+
if pClientWindow.GetPage(pos) == self:
|
|
457
|
+
pClientWindow.SetSelection(pos)
|
|
458
|
+
break
|
|
459
|
+
|
|
460
|
+
|
|
461
|
+
def OnMenuHighlight(self, event):
|
|
462
|
+
|
|
463
|
+
if self._pMDIParentFrame:
|
|
464
|
+
|
|
465
|
+
# we don't have any help text for this item,
|
|
466
|
+
# but may be the MDI frame does?
|
|
467
|
+
self._pMDIParentFrame.OnMenuHighlight(event)
|
|
468
|
+
|
|
469
|
+
|
|
470
|
+
def OnActivate(self, event):
|
|
471
|
+
|
|
472
|
+
# do nothing
|
|
473
|
+
pass
|
|
474
|
+
|
|
475
|
+
|
|
476
|
+
def OnCloseWindow(self, event):
|
|
477
|
+
|
|
478
|
+
pParentFrame = self.GetMDIParentFrame()
|
|
479
|
+
if pParentFrame:
|
|
480
|
+
if pParentFrame.GetActiveChild() == self:
|
|
481
|
+
|
|
482
|
+
pParentFrame.SetActiveChild(None)
|
|
483
|
+
pParentFrame.SetChildMenuBar(None)
|
|
484
|
+
|
|
485
|
+
pClientWindow = pParentFrame.GetClientWindow()
|
|
486
|
+
idx = pClientWindow.GetPageIndex(self)
|
|
487
|
+
|
|
488
|
+
if idx != wx.NOT_FOUND:
|
|
489
|
+
pClientWindow.RemovePage(idx)
|
|
490
|
+
|
|
491
|
+
self.Destroy()
|
|
492
|
+
|
|
493
|
+
|
|
494
|
+
def SetMDIParentFrame(self, parentFrame):
|
|
495
|
+
|
|
496
|
+
self._pMDIParentFrame = parentFrame
|
|
497
|
+
|
|
498
|
+
|
|
499
|
+
def GetMDIParentFrame(self):
|
|
500
|
+
|
|
501
|
+
return self._pMDIParentFrame
|
|
502
|
+
|
|
503
|
+
|
|
504
|
+
def CreateStatusBar(self, number=1, style=1, winid=1, name=""):
|
|
505
|
+
|
|
506
|
+
return None
|
|
507
|
+
|
|
508
|
+
|
|
509
|
+
def GetStatusBar(self):
|
|
510
|
+
|
|
511
|
+
return None
|
|
512
|
+
|
|
513
|
+
|
|
514
|
+
def SetStatusText(self, text, number=0):
|
|
515
|
+
|
|
516
|
+
pass
|
|
517
|
+
|
|
518
|
+
|
|
519
|
+
def SetStatusWidths(self, widths_field):
|
|
520
|
+
|
|
521
|
+
pass
|
|
522
|
+
|
|
523
|
+
|
|
524
|
+
# no toolbar bars
|
|
525
|
+
def CreateToolBar(self, style=1, winid=-1, name=""):
|
|
526
|
+
|
|
527
|
+
return None
|
|
528
|
+
|
|
529
|
+
|
|
530
|
+
def GetToolBar(self):
|
|
531
|
+
|
|
532
|
+
return None
|
|
533
|
+
|
|
534
|
+
|
|
535
|
+
# no maximize etc
|
|
536
|
+
def Maximize(self, maximize=True):
|
|
537
|
+
|
|
538
|
+
pass
|
|
539
|
+
|
|
540
|
+
|
|
541
|
+
def Restore(self):
|
|
542
|
+
|
|
543
|
+
pass
|
|
544
|
+
|
|
545
|
+
|
|
546
|
+
def Iconize(self, iconize=True):
|
|
547
|
+
|
|
548
|
+
pass
|
|
549
|
+
|
|
550
|
+
|
|
551
|
+
def IsMaximized(self):
|
|
552
|
+
|
|
553
|
+
return True
|
|
554
|
+
|
|
555
|
+
|
|
556
|
+
def IsIconized(self):
|
|
557
|
+
|
|
558
|
+
return False
|
|
559
|
+
|
|
560
|
+
|
|
561
|
+
def ShowFullScreen(self, show=True, style=0):
|
|
562
|
+
|
|
563
|
+
return False
|
|
564
|
+
|
|
565
|
+
|
|
566
|
+
def IsFullScreen(self):
|
|
567
|
+
|
|
568
|
+
return False
|
|
569
|
+
|
|
570
|
+
|
|
571
|
+
def IsTopLevel(self):
|
|
572
|
+
|
|
573
|
+
return False
|
|
574
|
+
|
|
575
|
+
|
|
576
|
+
# renamed from Show().
|
|
577
|
+
def ActivateOnCreate(self, activate_on_create):
|
|
578
|
+
|
|
579
|
+
self._activate_on_create = activate_on_create
|
|
580
|
+
return True
|
|
581
|
+
|
|
582
|
+
|
|
583
|
+
def Show(self, show=True):
|
|
584
|
+
|
|
585
|
+
wx.Panel.Show(self, show)
|
|
586
|
+
|
|
587
|
+
|
|
588
|
+
def ApplyMDIChildFrameRect(self):
|
|
589
|
+
|
|
590
|
+
if self._mdi_currect != self._mdi_newrect:
|
|
591
|
+
self.SetSize(*self._mdi_newrect)
|
|
592
|
+
self._mdi_currect = wx.Rect(*self._mdi_newrect)
|
|
593
|
+
|
|
594
|
+
|
|
595
|
+
#-----------------------------------------------------------------------------
|
|
596
|
+
# AuiMDIClientWindow
|
|
597
|
+
#-----------------------------------------------------------------------------
|
|
598
|
+
|
|
599
|
+
class AuiMDIClientWindow(auibook.AuiNotebook):
|
|
600
|
+
|
|
601
|
+
def __init__(self, parent, agwStyle=0):
|
|
602
|
+
|
|
603
|
+
auibook.AuiNotebook.__init__(self, parent, wx.ID_ANY, wx.Point(0, 0), wx.Size(100, 100),
|
|
604
|
+
agwStyle=AUI_NB_DEFAULT_STYLE|wx.NO_BORDER)
|
|
605
|
+
|
|
606
|
+
caption_icon_size = wx.Size(wx.SystemSettings.GetMetric(wx.SYS_SMALLICON_X),
|
|
607
|
+
wx.SystemSettings.GetMetric(wx.SYS_SMALLICON_Y))
|
|
608
|
+
self.SetUniformBitmapSize(caption_icon_size)
|
|
609
|
+
|
|
610
|
+
bkcolour = wx.SystemSettings.GetColour(wx.SYS_COLOUR_APPWORKSPACE)
|
|
611
|
+
self.SetOwnBackgroundColour(bkcolour)
|
|
612
|
+
|
|
613
|
+
self._mgr.GetArtProvider().SetColour(AUI_DOCKART_BACKGROUND_COLOUR, bkcolour)
|
|
614
|
+
|
|
615
|
+
self.Bind(auibook.EVT_AUINOTEBOOK_PAGE_CHANGED, self.OnPageChanged)
|
|
616
|
+
self.Bind(auibook.EVT_AUINOTEBOOK_PAGE_CLOSE, self.OnPageClose)
|
|
617
|
+
self.Bind(wx.EVT_SIZE, self.OnSize)
|
|
618
|
+
|
|
619
|
+
|
|
620
|
+
def SetSelection(self, nPage):
|
|
621
|
+
|
|
622
|
+
return auibook.AuiNotebook.SetSelection(self, nPage)
|
|
623
|
+
|
|
624
|
+
|
|
625
|
+
def PageChanged(self, old_selection, new_selection):
|
|
626
|
+
|
|
627
|
+
# don't do anything if the page doesn't actually change
|
|
628
|
+
if old_selection == new_selection:
|
|
629
|
+
return
|
|
630
|
+
|
|
631
|
+
# notify old active child that it has been deactivated
|
|
632
|
+
if old_selection != -1 and old_selection < self.GetPageCount():
|
|
633
|
+
|
|
634
|
+
old_child = self.GetPage(old_selection)
|
|
635
|
+
if not old_child:
|
|
636
|
+
raise Exception("AuiMDIClientWindow.PageChanged - null page pointer")
|
|
637
|
+
|
|
638
|
+
event = wx.ActivateEvent(wx.wxEVT_ACTIVATE, False, old_child.GetId())
|
|
639
|
+
event.SetEventObject(old_child)
|
|
640
|
+
old_child.GetEventHandler().ProcessEvent(event)
|
|
641
|
+
|
|
642
|
+
# notify new active child that it has been activated
|
|
643
|
+
if new_selection != -1:
|
|
644
|
+
|
|
645
|
+
active_child = self.GetPage(new_selection)
|
|
646
|
+
if not active_child:
|
|
647
|
+
raise Exception("AuiMDIClientWindow.PageChanged - null page pointer")
|
|
648
|
+
|
|
649
|
+
event = wx.ActivateEvent(wx.wxEVT_ACTIVATE, True, active_child.GetId())
|
|
650
|
+
event.SetEventObject(active_child)
|
|
651
|
+
active_child.GetEventHandler().ProcessEvent(event)
|
|
652
|
+
|
|
653
|
+
if active_child.GetMDIParentFrame():
|
|
654
|
+
active_child.GetMDIParentFrame().SetActiveChild(active_child)
|
|
655
|
+
active_child.GetMDIParentFrame().SetChildMenuBar(active_child)
|
|
656
|
+
|
|
657
|
+
|
|
658
|
+
def OnPageClose(self, event):
|
|
659
|
+
|
|
660
|
+
wnd = self.GetPage(event.GetSelection())
|
|
661
|
+
wnd.Close()
|
|
662
|
+
|
|
663
|
+
# regardless of the result of wnd.Close(), we've
|
|
664
|
+
# already taken care of the close operations, so
|
|
665
|
+
# suppress further processing
|
|
666
|
+
event.Veto()
|
|
667
|
+
|
|
668
|
+
|
|
669
|
+
def OnPageChanged(self, event):
|
|
670
|
+
|
|
671
|
+
self.PageChanged(event.GetOldSelection(), event.GetSelection())
|
|
672
|
+
|
|
673
|
+
|
|
674
|
+
def OnSize(self, event):
|
|
675
|
+
|
|
676
|
+
auibook.AuiNotebook.OnSize(self, event)
|
|
677
|
+
|
|
678
|
+
for pos in range(self.GetPageCount()):
|
|
679
|
+
self.GetPage(pos).ApplyMDIChildFrameRect()
|