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/myole4ax.idl
ADDED
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
#define CALLCONV __stdcall
|
|
2
|
+
[
|
|
3
|
+
//Regenerate this, stolen from GetObj.odl
|
|
4
|
+
uuid(99AB80C4-5E19-4fd5-B3CA-5EF62FC3F765),
|
|
5
|
+
helpstring("My Ole Guid and interface definitions"),
|
|
6
|
+
lcid(0x0),
|
|
7
|
+
version(1.0)
|
|
8
|
+
]
|
|
9
|
+
|
|
10
|
+
library myole4ax
|
|
11
|
+
{
|
|
12
|
+
|
|
13
|
+
importlib("stdole2.tlb");
|
|
14
|
+
interface IOleInPlaceUIWindow;
|
|
15
|
+
|
|
16
|
+
// typedef struct
|
|
17
|
+
// {
|
|
18
|
+
// LONG Left;
|
|
19
|
+
// LONG Top;
|
|
20
|
+
// LONG Right;
|
|
21
|
+
// LONG Bottom;
|
|
22
|
+
// }RECT;
|
|
23
|
+
|
|
24
|
+
// typedef struct
|
|
25
|
+
// {
|
|
26
|
+
// LONG x;
|
|
27
|
+
// LONG y;
|
|
28
|
+
// }POINT;
|
|
29
|
+
|
|
30
|
+
// typedef struct
|
|
31
|
+
// {
|
|
32
|
+
// float x;
|
|
33
|
+
// float y;
|
|
34
|
+
// }POINTF;
|
|
35
|
+
|
|
36
|
+
// typedef struct {
|
|
37
|
+
// long hWnd;
|
|
38
|
+
// long message;
|
|
39
|
+
// long wParam;
|
|
40
|
+
// long lParam;
|
|
41
|
+
// long time;
|
|
42
|
+
// POINT pt;
|
|
43
|
+
// }MSG;
|
|
44
|
+
|
|
45
|
+
// typedef [public] RECT BORDERWIDTHS;
|
|
46
|
+
// typedef [public] long StructPtr;
|
|
47
|
+
|
|
48
|
+
// typedef struct
|
|
49
|
+
// {
|
|
50
|
+
// LONG cx;
|
|
51
|
+
// LONG cy;
|
|
52
|
+
// }SIZE;
|
|
53
|
+
|
|
54
|
+
typedef struct
|
|
55
|
+
{
|
|
56
|
+
long cb;
|
|
57
|
+
long fMDIApp;
|
|
58
|
+
OLE_HANDLE hwndFrame;
|
|
59
|
+
OLE_HANDLE haccel;
|
|
60
|
+
LONG cAccelEntries;
|
|
61
|
+
} OLEINPLACEFRAMEINFO;
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
// [
|
|
65
|
+
// uuid(00000000-0000-0000-C000-000000000046),
|
|
66
|
+
// odl,
|
|
67
|
+
// hidden
|
|
68
|
+
// ]
|
|
69
|
+
// interface IUnknownUnrestricted
|
|
70
|
+
// {
|
|
71
|
+
// long QueryInterface([in] long priid, [out,in] long* pvObj);
|
|
72
|
+
// long AddRef();
|
|
73
|
+
// long Release();
|
|
74
|
+
// };
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
[
|
|
78
|
+
uuid(00000114-0000-0000-C000-000000000046),
|
|
79
|
+
odl
|
|
80
|
+
]
|
|
81
|
+
interface IOleWindow : IUnknown
|
|
82
|
+
{
|
|
83
|
+
HRESULT GetWindow([out,retval] long *phwnd);
|
|
84
|
+
HRESULT ContextSensitiveHelp([in] long fEnterMode);
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
[
|
|
88
|
+
uuid(00000118-0000-0000-C000-000000000046),
|
|
89
|
+
odl
|
|
90
|
+
]
|
|
91
|
+
interface IOleClientSite : IUnknown
|
|
92
|
+
{
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
[
|
|
96
|
+
uuid(00000112-0000-0000-C000-000000000046),
|
|
97
|
+
odl
|
|
98
|
+
]
|
|
99
|
+
interface IOleObject : IUnknown
|
|
100
|
+
{
|
|
101
|
+
HRESULT SetClientSite([in] IOleClientSite *pClientSite);
|
|
102
|
+
HRESULT GetClientSite([out,retval] IOleClientSite **ppClientSite);
|
|
103
|
+
//Lots more.
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
[
|
|
107
|
+
uuid(B196B289-BAB4-101A-B69C-00AA00341D07),
|
|
108
|
+
odl
|
|
109
|
+
]
|
|
110
|
+
interface IOleControlSite : IUnknown
|
|
111
|
+
{
|
|
112
|
+
HRESULT OnControlInfoChanged();
|
|
113
|
+
HRESULT LockInPlaceActive([in] long fLock);
|
|
114
|
+
HRESULT GetExtendedControl([out,retval] IDispatch** ppDisp);
|
|
115
|
+
HRESULT TransformCoords([in] StructPtr pPtlHimetric, [in] StructPtr pPtfContainer, [in] long dwFlags);
|
|
116
|
+
long TranslateAccelerator([in] StructPtr lpmsg, [in] long grfModifiers);
|
|
117
|
+
HRESULT OnFocus([in] long fGotFocus);
|
|
118
|
+
HRESULT ShowPropertyFrame();
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
[
|
|
122
|
+
uuid(00000117-0000-0000-C000-000000000046),
|
|
123
|
+
odl
|
|
124
|
+
]
|
|
125
|
+
interface IOleInPlaceActiveObject : IOleWindow
|
|
126
|
+
{
|
|
127
|
+
long TranslateAccelerator([in] long lpmsg);
|
|
128
|
+
long OnFrameWindowActivate([in] long fActivate);
|
|
129
|
+
long OnDocWindowActivate([in] long fActivate);
|
|
130
|
+
long ResizeBorder([in] StructPtr prcBorder,
|
|
131
|
+
[in] IOleInPlaceUIWindow* pUIWindow,
|
|
132
|
+
[in] long fFrameWindow);
|
|
133
|
+
long EnableModeless([in] long fEnable);
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
[
|
|
137
|
+
uuid(00000115-0000-0000-C000-000000000046),
|
|
138
|
+
odl
|
|
139
|
+
]
|
|
140
|
+
interface IOleInPlaceUIWindow : IOleWindow
|
|
141
|
+
{
|
|
142
|
+
HRESULT GetBorder([in] StructPtr lprectBorder);
|
|
143
|
+
HRESULT RequestBorderSpace([in] StructPtr pborderwidths);
|
|
144
|
+
HRESULT SetBorderSpace([in] StructPtr pborderwidths);
|
|
145
|
+
HRESULT SetActiveObject([in] IOleInPlaceActiveObject *pActiveObject, [in] LPWSTR pszObjName);
|
|
146
|
+
};
|
|
147
|
+
|
|
148
|
+
[
|
|
149
|
+
uuid(00000116-0000-0000-C000-000000000046),
|
|
150
|
+
odl
|
|
151
|
+
]
|
|
152
|
+
interface IOleInPlaceFrame : IOleInPlaceUIWindow
|
|
153
|
+
{
|
|
154
|
+
//Not done, placeholder only
|
|
155
|
+
};
|
|
156
|
+
|
|
157
|
+
[
|
|
158
|
+
uuid(00000119-0000-0000-C000-000000000046),
|
|
159
|
+
odl
|
|
160
|
+
]
|
|
161
|
+
interface IOleInPlaceSite : IOleWindow
|
|
162
|
+
{
|
|
163
|
+
long CanInPlaceActivate();
|
|
164
|
+
HRESULT OnInPlaceActivate();
|
|
165
|
+
HRESULT OnUIActivate();
|
|
166
|
+
HRESULT GetWindowContext([out] IOleInPlaceFrame** ppFrame,
|
|
167
|
+
[out] IOleInPlaceUIWindow** ppDoc,
|
|
168
|
+
[in] StructPtr lprcPosRect,
|
|
169
|
+
[in] StructPtr lprcClipRect,
|
|
170
|
+
[in] StructPtr lpFrameInfo);
|
|
171
|
+
HRESULT Scroll([in] CURRENCY scrollExtant);
|
|
172
|
+
HRESULT OnUIDeactivate([in] long fUndoable);
|
|
173
|
+
HRESULT OnInPlaceDeactivate();
|
|
174
|
+
HRESULT DiscardUndoState();
|
|
175
|
+
HRESULT DeactivateAndUndo();
|
|
176
|
+
HRESULT OnPosRectChange([in] long lprcPosRect);
|
|
177
|
+
}
|
|
178
|
+
}
|
wx/lib/myole4ax.tlb
ADDED
|
Binary file
|
wx/lib/newevent.py
ADDED
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
#---------------------------------------------------------------------------
|
|
2
|
+
# Name: newevent.py
|
|
3
|
+
# Purpose: Easy generation of new events classes and binder objects.
|
|
4
|
+
#
|
|
5
|
+
# Author: Miki Tebeka <miki.tebeka@gmail.com>
|
|
6
|
+
#
|
|
7
|
+
# Created: 18-Sept-2006
|
|
8
|
+
# Copyright: (c) 2006-2020 by Total Control Software
|
|
9
|
+
# Licence: wxWindows license
|
|
10
|
+
#
|
|
11
|
+
# Tags: phoenix-port, documented
|
|
12
|
+
#---------------------------------------------------------------------------
|
|
13
|
+
|
|
14
|
+
"""
|
|
15
|
+
Easy generation of new events classes and binder objects.
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
Description
|
|
19
|
+
===========
|
|
20
|
+
|
|
21
|
+
This module contains two functions which makes the generation of custom wxPython events
|
|
22
|
+
particularly easy.
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
Usage
|
|
26
|
+
=====
|
|
27
|
+
|
|
28
|
+
Sample usage::
|
|
29
|
+
|
|
30
|
+
import wx
|
|
31
|
+
import time
|
|
32
|
+
import threading
|
|
33
|
+
|
|
34
|
+
import wx.lib.newevent as NE
|
|
35
|
+
|
|
36
|
+
MooEvent, EVT_MOO = NE.NewEvent()
|
|
37
|
+
GooEvent, EVT_GOO = NE.NewCommandEvent()
|
|
38
|
+
|
|
39
|
+
DELAY = 0.7
|
|
40
|
+
|
|
41
|
+
def evt_thr(win):
|
|
42
|
+
time.sleep(DELAY)
|
|
43
|
+
wx.PostEvent(win, MooEvent(moo=1))
|
|
44
|
+
|
|
45
|
+
def cmd_thr(win, id):
|
|
46
|
+
time.sleep(DELAY)
|
|
47
|
+
wx.PostEvent(win, GooEvent(id, goo=id))
|
|
48
|
+
|
|
49
|
+
ID_CMD1 = wx.NewIdRef()
|
|
50
|
+
ID_CMD2 = wx.NewIdRef()
|
|
51
|
+
|
|
52
|
+
class Frame(wx.Frame):
|
|
53
|
+
def __init__(self):
|
|
54
|
+
wx.Frame.__init__(self, None, -1, "MOO")
|
|
55
|
+
sizer = wx.BoxSizer(wx.VERTICAL)
|
|
56
|
+
self.Bind(EVT_MOO, self.on_moo)
|
|
57
|
+
b = wx.Button(self, -1, "Generate MOO")
|
|
58
|
+
sizer.Add(b, 1, wx.EXPAND)
|
|
59
|
+
b.Bind(wx.EVT_BUTTON, self.on_evt_click)
|
|
60
|
+
b = wx.Button(self, ID_CMD1, "Generate GOO with %d" % ID_CMD1)
|
|
61
|
+
sizer.Add(b, 1, wx.EXPAND)
|
|
62
|
+
b.Bind(wx.EVT_BUTTON, self.on_cmd_click)
|
|
63
|
+
b = wx.Button(self, ID_CMD2, "Generate GOO with %d" % ID_CMD2)
|
|
64
|
+
sizer.Add(b, 1, wx.EXPAND)
|
|
65
|
+
b.Bind(wx.EVT_BUTTON, self.on_cmd_click)
|
|
66
|
+
|
|
67
|
+
self.Bind(EVT_GOO, self.on_cmd1, id=ID_CMD1)
|
|
68
|
+
self.Bind(EVT_GOO, self.on_cmd2, id=ID_CMD2)
|
|
69
|
+
|
|
70
|
+
self.SetSizer(sizer)
|
|
71
|
+
self.SetAutoLayout(True)
|
|
72
|
+
sizer.Fit(self)
|
|
73
|
+
|
|
74
|
+
def on_evt_click(self, e):
|
|
75
|
+
t = threading.Thread(target=evt_thr, args=(self, ))
|
|
76
|
+
t.setDaemon(True)
|
|
77
|
+
t.start()
|
|
78
|
+
|
|
79
|
+
def on_cmd_click(self, e):
|
|
80
|
+
t = threading.Thread(target=cmd_thr, args=(self, e.GetId()))
|
|
81
|
+
t.setDaemon(True)
|
|
82
|
+
t.start()
|
|
83
|
+
|
|
84
|
+
def show(self, msg, title):
|
|
85
|
+
dlg = wx.MessageDialog(self, msg, title, wx.OK)
|
|
86
|
+
dlg.ShowModal()
|
|
87
|
+
dlg.Destroy()
|
|
88
|
+
|
|
89
|
+
def on_moo(self, e):
|
|
90
|
+
self.show("MOO = %s" % e.moo, "Got Moo")
|
|
91
|
+
|
|
92
|
+
def on_cmd1(self, e):
|
|
93
|
+
self.show("goo = %s" % e.goo, "Got Goo (cmd1)")
|
|
94
|
+
|
|
95
|
+
def on_cmd2(self, e):
|
|
96
|
+
self.show("goo = %s" % e.goo, "Got Goo (cmd2)")
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
app = wx.App(0)
|
|
100
|
+
f = Frame()
|
|
101
|
+
f.Show(True)
|
|
102
|
+
app.MainLoop()
|
|
103
|
+
|
|
104
|
+
"""
|
|
105
|
+
|
|
106
|
+
__author__ = "Miki Tebeka <miki.tebeka@gmail.com>"
|
|
107
|
+
|
|
108
|
+
import wx
|
|
109
|
+
|
|
110
|
+
#---------------------------------------------------------------------------
|
|
111
|
+
|
|
112
|
+
def NewEvent():
|
|
113
|
+
"""
|
|
114
|
+
Generates a new `(event, binder)` tuple.
|
|
115
|
+
|
|
116
|
+
::
|
|
117
|
+
|
|
118
|
+
MooEvent, EVT_MOO = NewEvent()
|
|
119
|
+
|
|
120
|
+
"""
|
|
121
|
+
|
|
122
|
+
evttype = wx.NewEventType()
|
|
123
|
+
|
|
124
|
+
class _Event(wx.PyEvent):
|
|
125
|
+
def __init__(self, **kw):
|
|
126
|
+
wx.PyEvent.__init__(self)
|
|
127
|
+
self.SetEventType(evttype)
|
|
128
|
+
self._getAttrDict().update(kw)
|
|
129
|
+
|
|
130
|
+
return _Event, wx.PyEventBinder(evttype)
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
def NewCommandEvent():
|
|
134
|
+
"""
|
|
135
|
+
Generates a new `(command_event, binder)` tuple.
|
|
136
|
+
|
|
137
|
+
::
|
|
138
|
+
|
|
139
|
+
MooCmdEvent, EVT_MOO = NewCommandEvent()
|
|
140
|
+
|
|
141
|
+
"""
|
|
142
|
+
|
|
143
|
+
evttype = wx.NewEventType()
|
|
144
|
+
|
|
145
|
+
class _Event(wx.PyCommandEvent):
|
|
146
|
+
def __init__(self, id, **kw):
|
|
147
|
+
wx.PyCommandEvent.__init__(self, evttype, id)
|
|
148
|
+
self._getAttrDict().update(kw)
|
|
149
|
+
|
|
150
|
+
return _Event, wx.PyEventBinder(evttype, 1)
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
#---------------------------------------------------------------------------
|
|
154
|
+
|
|
155
|
+
def _test():
|
|
156
|
+
"""A little smoke test"""
|
|
157
|
+
import time
|
|
158
|
+
import threading
|
|
159
|
+
|
|
160
|
+
MooEvent, EVT_MOO = NewEvent()
|
|
161
|
+
GooEvent, EVT_GOO = NewCommandEvent()
|
|
162
|
+
|
|
163
|
+
DELAY = 0.7
|
|
164
|
+
|
|
165
|
+
def evt_thr(win):
|
|
166
|
+
time.sleep(DELAY)
|
|
167
|
+
wx.PostEvent(win, MooEvent(moo=1))
|
|
168
|
+
|
|
169
|
+
def cmd_thr(win, id):
|
|
170
|
+
time.sleep(DELAY)
|
|
171
|
+
wx.PostEvent(win, GooEvent(id, goo=id))
|
|
172
|
+
|
|
173
|
+
ID_CMD1 = wx.NewIdRef()
|
|
174
|
+
ID_CMD2 = wx.NewIdRef()
|
|
175
|
+
|
|
176
|
+
class Frame(wx.Frame):
|
|
177
|
+
def __init__(self):
|
|
178
|
+
wx.Frame.__init__(self, None, -1, "MOO")
|
|
179
|
+
sizer = wx.BoxSizer(wx.VERTICAL)
|
|
180
|
+
self.Bind(EVT_MOO, self.on_moo)
|
|
181
|
+
b = wx.Button(self, -1, "Generate MOO")
|
|
182
|
+
sizer.Add(b, 1, wx.EXPAND)
|
|
183
|
+
b.Bind(wx.EVT_BUTTON, self.on_evt_click)
|
|
184
|
+
b = wx.Button(self, ID_CMD1, "Generate GOO with %d" % ID_CMD1)
|
|
185
|
+
sizer.Add(b, 1, wx.EXPAND)
|
|
186
|
+
b.Bind(wx.EVT_BUTTON, self.on_cmd_click)
|
|
187
|
+
b = wx.Button(self, ID_CMD2, "Generate GOO with %d" % ID_CMD2)
|
|
188
|
+
sizer.Add(b, 1, wx.EXPAND)
|
|
189
|
+
b.Bind(wx.EVT_BUTTON, self.on_cmd_click)
|
|
190
|
+
|
|
191
|
+
self.Bind(EVT_GOO, self.on_cmd1, id=ID_CMD1)
|
|
192
|
+
self.Bind(EVT_GOO, self.on_cmd2, id=ID_CMD2)
|
|
193
|
+
|
|
194
|
+
self.SetSizer(sizer)
|
|
195
|
+
self.SetAutoLayout(True)
|
|
196
|
+
sizer.Fit(self)
|
|
197
|
+
|
|
198
|
+
def on_evt_click(self, e):
|
|
199
|
+
t = threading.Thread(target=evt_thr, args=(self, ))
|
|
200
|
+
t.setDaemon(True)
|
|
201
|
+
t.start()
|
|
202
|
+
|
|
203
|
+
def on_cmd_click(self, e):
|
|
204
|
+
t = threading.Thread(target=cmd_thr, args=(self, e.GetId()))
|
|
205
|
+
t.setDaemon(True)
|
|
206
|
+
t.start()
|
|
207
|
+
|
|
208
|
+
def show(self, msg, title):
|
|
209
|
+
dlg = wx.MessageDialog(self, msg, title, wx.OK)
|
|
210
|
+
dlg.ShowModal()
|
|
211
|
+
dlg.Destroy()
|
|
212
|
+
|
|
213
|
+
def on_moo(self, e):
|
|
214
|
+
self.show("MOO = %s" % e.moo, "Got Moo")
|
|
215
|
+
|
|
216
|
+
def on_cmd1(self, e):
|
|
217
|
+
self.show("goo = %s" % e.goo, "Got Goo (cmd1)")
|
|
218
|
+
|
|
219
|
+
def on_cmd2(self, e):
|
|
220
|
+
self.show("goo = %s" % e.goo, "Got Goo (cmd2)")
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
app = wx.App(0)
|
|
224
|
+
f = Frame()
|
|
225
|
+
f.Show(True)
|
|
226
|
+
app.MainLoop()
|
|
227
|
+
|
|
228
|
+
if __name__ == "__main__":
|
|
229
|
+
_test()
|
wx/lib/newevent.pyi
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#---------------------------------------------------------------------------
|
|
2
|
+
# Name: wx/lib/newevent.pyi
|
|
3
|
+
# Purpose: Type stub for wx.lib.newevent
|
|
4
|
+
#
|
|
5
|
+
# License: wxWindows License
|
|
6
|
+
#---------------------------------------------------------------------------
|
|
7
|
+
|
|
8
|
+
from typing import Any, Tuple, Type
|
|
9
|
+
|
|
10
|
+
import wx
|
|
11
|
+
|
|
12
|
+
# The event classes are made when NewEvent and NewCommandEvent are called, so
|
|
13
|
+
# these stand in for them. Their instances have attributes for the keyword
|
|
14
|
+
# arguments they are created with.
|
|
15
|
+
|
|
16
|
+
class _PyEvent(wx.PyEvent):
|
|
17
|
+
def __init__(self, **kw: Any) -> None: ...
|
|
18
|
+
def __getattr__(self, name: str) -> Any: ...
|
|
19
|
+
|
|
20
|
+
class _PyCommandEvent(wx.PyCommandEvent):
|
|
21
|
+
def __init__(self, id: int, **kw: Any) -> None: ...
|
|
22
|
+
def __getattr__(self, name: str) -> Any: ...
|
|
23
|
+
|
|
24
|
+
def NewEvent() -> Tuple[Type[_PyEvent], wx.PyEventBinder[_PyEvent]]: ...
|
|
25
|
+
def NewCommandEvent() -> Tuple[Type[_PyCommandEvent], wx.PyEventBinder[_PyCommandEvent]]: ...
|
wx/lib/nvdlg.py
ADDED
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
#----------------------------------------------------------------------
|
|
2
|
+
# Name: wx.lib.nvdlg
|
|
3
|
+
# Purpose: Dialog for editing name/value pairs
|
|
4
|
+
#
|
|
5
|
+
# Author: Robin Dunn
|
|
6
|
+
#
|
|
7
|
+
# Created: 30-Nov-2009
|
|
8
|
+
# Copyright: (c) 2009-2020 by Total Control Software
|
|
9
|
+
# Licence: wxWindows license
|
|
10
|
+
# Tags: phoenix-port
|
|
11
|
+
#----------------------------------------------------------------------
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
"""
|
|
15
|
+
A simple dialog that can prompt for values for any arbitrary set of name/value
|
|
16
|
+
pairs, where the fields are defined by a list of info passed to the
|
|
17
|
+
constructor. A dictionary of initial values can also be passed. Each item in
|
|
18
|
+
the fields list is a tuple of 3 items, which are:
|
|
19
|
+
|
|
20
|
+
* a string to be used for the attribute name for storing the value
|
|
21
|
+
* a string to be used for the label
|
|
22
|
+
* None, or a dictionary of kwargs to be passed to the wx.TextCtrl ctor
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
import wx
|
|
26
|
+
|
|
27
|
+
MARGIN = 4
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
class SimpleNameValueDialog(wx.Dialog):
|
|
32
|
+
def __init__(self, parent, id=-1, title="", pos=wx.DefaultPosition,
|
|
33
|
+
size=wx.DefaultSize, style=wx.DEFAULT_DIALOG_STYLE,
|
|
34
|
+
fields=[], initialValues=None,
|
|
35
|
+
captionTitle="", captionDescr=""):
|
|
36
|
+
wx.Dialog.__init__(self, parent, id, title, pos, size, style)
|
|
37
|
+
|
|
38
|
+
self._fields = dict()
|
|
39
|
+
self.Sizer = wx.BoxSizer(wx.VERTICAL)
|
|
40
|
+
self._contentSizer = wx.FlexGridSizer(cols=2, hgap=MARGIN, vgap=MARGIN)
|
|
41
|
+
self._contentSizer.AddGrowableCol(1)
|
|
42
|
+
|
|
43
|
+
if captionTitle:
|
|
44
|
+
titleTxt = wx.StaticText(self, -1, captionTitle)
|
|
45
|
+
titleTxt.SetFont(wx.FFont(18, wx.FONTFAMILY_SWISS, wx.FONTFLAG_BOLD))
|
|
46
|
+
self.Sizer.Add(titleTxt, 0, wx.ALL, MARGIN)
|
|
47
|
+
if captionDescr:
|
|
48
|
+
descTxt = wx.StaticText(self, -1, captionDescr)
|
|
49
|
+
self.Sizer.Add(descTxt, 0, wx.LEFT|wx.RIGHT|wx.BOTTOM, MARGIN)
|
|
50
|
+
if captionTitle or captionDescr:
|
|
51
|
+
self.Sizer.Add(wx.StaticLine(self), 0, wx.EXPAND|wx.TOP|wx.BOTTOM, MARGIN)
|
|
52
|
+
|
|
53
|
+
self.createFields(fields)
|
|
54
|
+
self.loadValues(initialValues)
|
|
55
|
+
|
|
56
|
+
self.Sizer.Add(self._contentSizer, 1, wx.EXPAND|wx.ALL, MARGIN)
|
|
57
|
+
self.Sizer.Add(wx.StaticLine(self), 0, wx.EXPAND|wx.TOP|wx.BOTTOM, MARGIN)
|
|
58
|
+
|
|
59
|
+
# TODO: add ability to specify which stock or custom buttons are used
|
|
60
|
+
btnSizer = wx.StdDialogButtonSizer()
|
|
61
|
+
btnSizer.AddButton(wx.Button(self, wx.ID_OK))
|
|
62
|
+
btnSizer.AddButton(wx.Button(self, wx.ID_CANCEL))
|
|
63
|
+
btnSizer.Realize()
|
|
64
|
+
self.Sizer.Add(btnSizer, 0, wx.EXPAND|wx.ALL, MARGIN)
|
|
65
|
+
self.FindWindow(wx.ID_OK).SetDefault()
|
|
66
|
+
|
|
67
|
+
self.Fit()
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
def createFields(self, fields):
|
|
71
|
+
self.destroyFields()
|
|
72
|
+
for name, label, args in fields:
|
|
73
|
+
kwargs = dict(validator=_TransferValidator(name))
|
|
74
|
+
if args:
|
|
75
|
+
kwargs.update(args)
|
|
76
|
+
stxt = wx.StaticText(self, -1, label)
|
|
77
|
+
txt = wx.TextCtrl(self, **kwargs)
|
|
78
|
+
|
|
79
|
+
self._contentSizer.Add(stxt, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_RIGHT)
|
|
80
|
+
self._contentSizer.Add(txt, 0, wx.EXPAND)
|
|
81
|
+
|
|
82
|
+
self.__dict__[name] = ""
|
|
83
|
+
self._fields[name] = (stxt, txt)
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
def destroyFields(self):
|
|
87
|
+
for name, widgets in self._fields.items():
|
|
88
|
+
for w in widgets:
|
|
89
|
+
w.Destroy()
|
|
90
|
+
del self.__dict__[name]
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
def loadValues(self, values):
|
|
94
|
+
self.clearValues()
|
|
95
|
+
if values:
|
|
96
|
+
for name, value in values.items():
|
|
97
|
+
if name in self._fields:
|
|
98
|
+
setattr(self, name, value)
|
|
99
|
+
|
|
100
|
+
def clearValues(self):
|
|
101
|
+
for name in self._fields:
|
|
102
|
+
setattr(self, name, "")
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
class _TransferValidator(wx.PyValidator):
|
|
107
|
+
"""
|
|
108
|
+
This validator is used to transfer values to/from the widgets and
|
|
109
|
+
attributes of the dialog.
|
|
110
|
+
"""
|
|
111
|
+
def __init__(self, name):
|
|
112
|
+
wx.PyValidator.__init__(self)
|
|
113
|
+
self.name = name
|
|
114
|
+
|
|
115
|
+
def Clone(self):
|
|
116
|
+
return _TransferValidator(self.name)
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
def Validate(self, win):
|
|
120
|
+
return True
|
|
121
|
+
|
|
122
|
+
def TransferFromWindow(self):
|
|
123
|
+
dlg = self.Window.Parent
|
|
124
|
+
value = dlg._fields[self.name][1].GetValue()
|
|
125
|
+
setattr(dlg, self.name, value)
|
|
126
|
+
return True
|
|
127
|
+
|
|
128
|
+
def TransferToWindow(self):
|
|
129
|
+
dlg = self.Window.Parent
|
|
130
|
+
value = getattr(dlg, self.name)
|
|
131
|
+
dlg._fields[self.name][1].SetValue(value)
|
|
132
|
+
return True
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
if __name__ == '__main__':
|
|
138
|
+
from wx.lib.mixins.inspection import InspectableApp
|
|
139
|
+
app = InspectableApp(redirect=False)
|
|
140
|
+
#app = wx.App(redirect=False)
|
|
141
|
+
|
|
142
|
+
fields = [ ('username', 'Login ID:', None),
|
|
143
|
+
('passwd', 'Password:', dict(size=(150,-1), style=wx.TE_PASSWORD)),
|
|
144
|
+
]
|
|
145
|
+
|
|
146
|
+
dlg = SimpleNameValueDialog(None, title="This is the title",
|
|
147
|
+
fields=fields,
|
|
148
|
+
initialValues=dict(username='rdunn'),
|
|
149
|
+
captionTitle="Login",
|
|
150
|
+
captionDescr="Enter your testing credentials")
|
|
151
|
+
if dlg.ShowModal() == wx.ID_OK:
|
|
152
|
+
print(dlg.username, dlg.passwd)
|
|
153
|
+
dlg.Destroy()
|
|
154
|
+
app.MainLoop()
|
|
155
|
+
|
|
156
|
+
|
wx/lib/ogl/__init__.py
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"""
|
|
2
|
+
The Object Graphics Library provides for simple drawing and manipulation
|
|
3
|
+
of 2D objects.
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
from .basic import *
|
|
7
|
+
from .diagram import *
|
|
8
|
+
from .canvas import *
|
|
9
|
+
from .lines import *
|
|
10
|
+
from .bmpshape import *
|
|
11
|
+
from .divided import *
|
|
12
|
+
from .composit import *
|
|
13
|
+
from .drawn import *
|