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/activex.py
ADDED
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
#----------------------------------------------------------------------
|
|
2
|
+
# Name: wx.lib.activex
|
|
3
|
+
# Purpose: The 3rd (and hopefully final) implementation of an
|
|
4
|
+
# ActiveX container for wxPython.
|
|
5
|
+
#
|
|
6
|
+
# Author: Robin Dunn
|
|
7
|
+
#
|
|
8
|
+
# Created: 5-June-2008
|
|
9
|
+
# Copyright: (c) 2008-2020 by Total Control Software
|
|
10
|
+
# Licence: wxWindows license
|
|
11
|
+
#----------------------------------------------------------------------
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
"""
|
|
15
|
+
This module provides a wx.Window that hosts ActiveX Controls using
|
|
16
|
+
just the ctypes and comtypes packages. This provides a light-weight
|
|
17
|
+
COM implementation with full dynamic dispatch support.
|
|
18
|
+
|
|
19
|
+
The only requirements are ctypes (included with Python 2.5 and
|
|
20
|
+
available separately for earlier versions of Python) and the comtypes
|
|
21
|
+
package, which is available from
|
|
22
|
+
http://starship.python.net/crew/theller/comtypes/. Be sure to get at
|
|
23
|
+
least version 0.5, which at the time of this writing is only available
|
|
24
|
+
from SVN. You can fetch it with easy_install with a command like
|
|
25
|
+
this:
|
|
26
|
+
|
|
27
|
+
easy_install http://svn.python.org/projects/ctypes/trunk/comtypes
|
|
28
|
+
|
|
29
|
+
"""
|
|
30
|
+
|
|
31
|
+
import wx
|
|
32
|
+
import wx.msw
|
|
33
|
+
|
|
34
|
+
import ctypes as ct
|
|
35
|
+
import ctypes.wintypes as wt
|
|
36
|
+
import comtypes
|
|
37
|
+
import comtypes.client as cc
|
|
38
|
+
import comtypes.hresult as hr
|
|
39
|
+
|
|
40
|
+
import sys, os
|
|
41
|
+
if not hasattr(sys, 'frozen'):
|
|
42
|
+
f = os.path.join(os.path.dirname(__file__), 'myole4ax.tlb')
|
|
43
|
+
cc.GetModule(f)
|
|
44
|
+
from comtypes.gen import myole4ax
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
kernel32 = ct.windll.kernel32
|
|
48
|
+
user32 = ct.windll.user32
|
|
49
|
+
atl = ct.windll.atl
|
|
50
|
+
|
|
51
|
+
WS_CHILD = 0x40000000
|
|
52
|
+
WS_VISIBLE = 0x10000000
|
|
53
|
+
WS_CLIPCHILDREN = 0x2000000
|
|
54
|
+
WS_CLIPSIBLINGS = 0x4000000
|
|
55
|
+
CW_USEDEFAULT = 0x80000000
|
|
56
|
+
WM_KEYDOWN = 256
|
|
57
|
+
WM_DESTROY = 2
|
|
58
|
+
|
|
59
|
+
#------------------------------------------------------------------------------
|
|
60
|
+
|
|
61
|
+
class ActiveXCtrl(wx.msw.PyAxBaseWindow):
|
|
62
|
+
"""
|
|
63
|
+
A wx.Window for hosting ActiveX controls. The COM interface of
|
|
64
|
+
the ActiveX control is accessible through the ctrl property of
|
|
65
|
+
this class, and this class is also set as the event sink for COM
|
|
66
|
+
events originating from the ActiveX control. In other words, to
|
|
67
|
+
catch the COM events you merely have to derive from this class and
|
|
68
|
+
provide a method with the correct name. See the comtypes package
|
|
69
|
+
documentation for more details.
|
|
70
|
+
"""
|
|
71
|
+
|
|
72
|
+
def __init__(self, parent, axID, wxid=-1, pos=wx.DefaultPosition,
|
|
73
|
+
size=wx.DefaultSize, style=0, name="activeXCtrl"):
|
|
74
|
+
"""
|
|
75
|
+
All parameters are like those used in normal wx.Windows with
|
|
76
|
+
the addition of axID which is a string that is either a ProgID
|
|
77
|
+
or a CLSID used to identify the ActiveX control.
|
|
78
|
+
"""
|
|
79
|
+
pos = wx.Point(*pos) # in case the arg is a tuple
|
|
80
|
+
size = wx.Size(*size) # ditto
|
|
81
|
+
|
|
82
|
+
x = pos.x
|
|
83
|
+
y = pos.y
|
|
84
|
+
if x == -1: x = CW_USEDEFAULT
|
|
85
|
+
if y == -1: y = 20
|
|
86
|
+
w = size.width
|
|
87
|
+
h = size.height
|
|
88
|
+
if w == -1: w = 20
|
|
89
|
+
if h == -1: h = 20
|
|
90
|
+
|
|
91
|
+
# create the control
|
|
92
|
+
atl.AtlAxWinInit()
|
|
93
|
+
hInstance = kernel32.GetModuleHandleA(None)
|
|
94
|
+
hwnd = user32.CreateWindowExA(0, b"AtlAxWin", axID.encode("ASCII"),
|
|
95
|
+
WS_CHILD | WS_VISIBLE
|
|
96
|
+
| WS_CLIPCHILDREN | WS_CLIPSIBLINGS,
|
|
97
|
+
x,y, w,h, parent.GetHandle(), None,
|
|
98
|
+
hInstance, 0)
|
|
99
|
+
assert hwnd != 0
|
|
100
|
+
|
|
101
|
+
# get the Interface for the Ax control
|
|
102
|
+
unknown = ct.POINTER(comtypes.IUnknown)()
|
|
103
|
+
res = atl.AtlAxGetControl(hwnd, ct.byref(unknown))
|
|
104
|
+
assert res == hr.S_OK
|
|
105
|
+
self._ax = cc.GetBestInterface(unknown)
|
|
106
|
+
|
|
107
|
+
# Fetch the interface for IOleInPlaceActiveObject. We'll use this
|
|
108
|
+
# later to call its TranslateAccelerator method so the AX Control can
|
|
109
|
+
# deal with things like tab traversal and such within itself.
|
|
110
|
+
self.ipao = self._ax.QueryInterface(myole4ax.IOleInPlaceActiveObject)
|
|
111
|
+
|
|
112
|
+
# Use this object as the event sink for the ActiveX events
|
|
113
|
+
self._evt_connections = []
|
|
114
|
+
self.AddEventSink(self)
|
|
115
|
+
|
|
116
|
+
wx.msw.PyAxBaseWindow.__init__(self, parent, wxid, pos, size, style, name)
|
|
117
|
+
|
|
118
|
+
# Turn the window handle into a wx.Window and set this object to be that window
|
|
119
|
+
self.AssociateHandle(hwnd)
|
|
120
|
+
|
|
121
|
+
# Set some wx.Window properties
|
|
122
|
+
if wxid == wx.ID_ANY:
|
|
123
|
+
wxid = wx.NewIdRef()
|
|
124
|
+
self.SetId(wxid)
|
|
125
|
+
self.SetName(name)
|
|
126
|
+
self.SetMinSize(size)
|
|
127
|
+
|
|
128
|
+
self.Bind(wx.EVT_SET_FOCUS, self.OnSetFocus)
|
|
129
|
+
self.Bind(wx.EVT_KILL_FOCUS, self.OnKillFocus)
|
|
130
|
+
self.Bind(wx.EVT_WINDOW_DESTROY, self.OnDestroyWindow)
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
def AddEventSink(self, sink, interface=None):
|
|
134
|
+
"""
|
|
135
|
+
Add a new target to search for method names that match the COM
|
|
136
|
+
Event names.
|
|
137
|
+
"""
|
|
138
|
+
self._evt_connections.append(cc.GetEvents(self._ax, sink, interface))
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
def GetCtrl(self):
|
|
142
|
+
"""Easy access to the COM interface for the ActiveX Control"""
|
|
143
|
+
return self._ax
|
|
144
|
+
# And an even easier property
|
|
145
|
+
ctrl = property(GetCtrl)
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
def MSWTranslateMessage(self, msg):
|
|
149
|
+
# Pass native messages to the IOleInPlaceActiveObject
|
|
150
|
+
# interface before wx processes them, so navigation keys and
|
|
151
|
+
# accelerators can be dealt with the way that the AXControl
|
|
152
|
+
# wants them to be done. MSWTranslateMessage is called before
|
|
153
|
+
# wxWidgets handles and eats the navigation keys itself.
|
|
154
|
+
try:
|
|
155
|
+
res = self.ipao.TranslateAccelerator(msg)
|
|
156
|
+
if res == hr.S_OK:
|
|
157
|
+
return True
|
|
158
|
+
except OSError:
|
|
159
|
+
pass
|
|
160
|
+
return super(ActiveXCtrl, self).MSWTranslateMessage(msg)
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
# TBD: Are the focus handlers needed?
|
|
164
|
+
def OnSetFocus(self, evt):
|
|
165
|
+
self.ipao.OnFrameWindowActivate(True)
|
|
166
|
+
|
|
167
|
+
def OnKillFocus(self, evt):
|
|
168
|
+
self.ipao.OnFrameWindowActivate(False)
|
|
169
|
+
|
|
170
|
+
def OnDestroyWindow(self, evt):
|
|
171
|
+
# release our event sinks while the window still exists
|
|
172
|
+
self._evt_connections = None
|
|
173
|
+
|
|
174
|
+
#------------------------------------------------------------------------------
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
|
wx/lib/activexwrapper.py
ADDED
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
#----------------------------------------------------------------------
|
|
2
|
+
# Name: wx.lib.activexwrapper
|
|
3
|
+
# Purpose: a wxWindow derived class that can hold an ActiveX control
|
|
4
|
+
#
|
|
5
|
+
# Author: Robin Dunn
|
|
6
|
+
#
|
|
7
|
+
# Copyright: (c) 2000-2020 by Total Control Software
|
|
8
|
+
# Licence: wxWindows license
|
|
9
|
+
#----------------------------------------------------------------------
|
|
10
|
+
# 11/30/2003 - Jeff Grimmett (grimmtooth@softhome.net)
|
|
11
|
+
#
|
|
12
|
+
# o Updated for wx namespace
|
|
13
|
+
# o Tested with updated demo
|
|
14
|
+
#
|
|
15
|
+
|
|
16
|
+
import wx
|
|
17
|
+
|
|
18
|
+
try:
|
|
19
|
+
import win32ui
|
|
20
|
+
import pywin.mfc.activex
|
|
21
|
+
import win32com.client
|
|
22
|
+
except ImportError:
|
|
23
|
+
import sys
|
|
24
|
+
if hasattr(sys, "frozen"):
|
|
25
|
+
import os, win32api
|
|
26
|
+
dllpath = os.path.join(win32api.GetSystemDirectory(), 'MFC71.DLL')
|
|
27
|
+
if not os.path.exists(dllpath):
|
|
28
|
+
message = "%s not found" % dllpath
|
|
29
|
+
else:
|
|
30
|
+
raise # original error message
|
|
31
|
+
else:
|
|
32
|
+
message = "ActiveXWrapper requires PythonWin. Please install the PyWin32 package."
|
|
33
|
+
raise ImportError(message)
|
|
34
|
+
|
|
35
|
+
##from win32con import WS_TABSTOP, WS_VISIBLE
|
|
36
|
+
WS_TABSTOP = 0x00010000
|
|
37
|
+
WS_VISIBLE = 0x10000000
|
|
38
|
+
|
|
39
|
+
#----------------------------------------------------------------------
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
def MakeActiveXClass(CoClass, eventClass=None, eventObj=None):
|
|
43
|
+
"""
|
|
44
|
+
Dynamically construct a new class that derives from wxWindow, the
|
|
45
|
+
ActiveX control and the appropriate COM classes. This new class
|
|
46
|
+
can be used just like the wxWindow class, but will also respond
|
|
47
|
+
appropriately to the methods and properties of the COM object. If
|
|
48
|
+
this class, a derived class or a mix-in class has method names
|
|
49
|
+
that match the COM object's event names, they will be called
|
|
50
|
+
automatically.
|
|
51
|
+
|
|
52
|
+
CoClass -- A COM control class from a module generated by
|
|
53
|
+
makepy.py from a COM TypeLibrary. Can also accept a
|
|
54
|
+
CLSID.
|
|
55
|
+
|
|
56
|
+
eventClass -- If given, this class will be added to the set of
|
|
57
|
+
base classes that the new class is drived from. It is
|
|
58
|
+
good for mix-in classes for catching events.
|
|
59
|
+
|
|
60
|
+
eventObj -- If given, this object will be searched for attributes
|
|
61
|
+
by the new class's __getattr__ method, (like a mix-in
|
|
62
|
+
object.) This is useful if you want to catch COM
|
|
63
|
+
callbacks in an existing object, (such as the parent
|
|
64
|
+
window.)
|
|
65
|
+
|
|
66
|
+
"""
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
if type(CoClass) == type(""):
|
|
70
|
+
# use the CLSID to get the real class
|
|
71
|
+
CoClass = win32com.client.CLSIDToClass(CoClass)
|
|
72
|
+
|
|
73
|
+
# determine the base classes
|
|
74
|
+
axEventClass = CoClass.default_source
|
|
75
|
+
baseClasses = [pywin.mfc.activex.Control, wx.Window, CoClass, axEventClass]
|
|
76
|
+
if eventClass:
|
|
77
|
+
baseClasses.append(eventClass)
|
|
78
|
+
baseClasses = tuple(baseClasses)
|
|
79
|
+
|
|
80
|
+
# define the class attributes
|
|
81
|
+
className = 'AXControl_'+CoClass.__name__
|
|
82
|
+
classDict = { '__init__' : axw__init__,
|
|
83
|
+
'__getattr__' : axw__getattr__,
|
|
84
|
+
'axw_OnSize' : axw_OnSize,
|
|
85
|
+
'axw_OEB' : axw_OEB,
|
|
86
|
+
'_name' : className,
|
|
87
|
+
'_eventBase' : axEventClass,
|
|
88
|
+
'_eventObj' : eventObj,
|
|
89
|
+
'Cleanup' : axw_Cleanup,
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
# make a new class object
|
|
93
|
+
classObj = type(className, baseClasses, classDict)
|
|
94
|
+
return classObj
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
# These functions will be used as methods in the new class
|
|
100
|
+
def axw__init__(self, parent, ID=-1, pos=wx.DefaultPosition, size=wx.DefaultSize, style=0):
|
|
101
|
+
|
|
102
|
+
# init base classes
|
|
103
|
+
pywin.mfc.activex.Control.__init__(self)
|
|
104
|
+
wx.Window.__init__( self, parent, -1, pos, size, style|wx.NO_FULL_REPAINT_ON_RESIZE)
|
|
105
|
+
#self.this.own(False) # this should be set in wx.Window.__init__ when it calls _setOORInfo, but...
|
|
106
|
+
|
|
107
|
+
win32ui.EnableControlContainer()
|
|
108
|
+
self._eventObj = self._eventObj # move from class to instance
|
|
109
|
+
|
|
110
|
+
# create a pythonwin wrapper around this wxWindow
|
|
111
|
+
handle = self.GetHandle()
|
|
112
|
+
self._wnd = win32ui.CreateWindowFromHandle(handle)
|
|
113
|
+
|
|
114
|
+
# create the control
|
|
115
|
+
sz = self.GetSize()
|
|
116
|
+
self.CreateControl(self._name, WS_TABSTOP | WS_VISIBLE,
|
|
117
|
+
(0, 0, sz.width, sz.height), self._wnd, ID)
|
|
118
|
+
|
|
119
|
+
# init the ax events part of the object
|
|
120
|
+
self._eventBase.__init__(self, self._dispobj_)
|
|
121
|
+
|
|
122
|
+
# hook some wx events
|
|
123
|
+
self.Bind(wx.EVT_SIZE, self.axw_OnSize)
|
|
124
|
+
|
|
125
|
+
def axw__getattr__(self, attr):
|
|
126
|
+
try:
|
|
127
|
+
return pywin.mfc.activex.Control.__getattr__(self, attr)
|
|
128
|
+
except (AttributeError, win32ui.error):
|
|
129
|
+
try:
|
|
130
|
+
eo = self.__dict__['_eventObj']
|
|
131
|
+
return getattr(eo, attr)
|
|
132
|
+
except AttributeError:
|
|
133
|
+
raise AttributeError('Attribute not found: %s' % attr)
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
def axw_OnSize(self, event):
|
|
137
|
+
sz = self.GetClientSize() # get wxWindow size
|
|
138
|
+
self.MoveWindow((0, 0, sz.width, sz.height), 1) # move the AXControl
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
def axw_OEB(self, event):
|
|
142
|
+
pass
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
def axw_Cleanup(self):
|
|
146
|
+
#del self._wnd
|
|
147
|
+
self.close()
|
|
148
|
+
pass
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
|
wx/lib/agw/__init__.py
ADDED
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
|
|
2
|
+
"""
|
|
3
|
+
This is the Advanced Generic Widgets package (AGW). It provides many
|
|
4
|
+
custom-drawn wxPython controls: some of them can be used as a replacement
|
|
5
|
+
of the platform native controls, others are simply an addition to the
|
|
6
|
+
already rich wxPython widgets set.
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
Description:
|
|
10
|
+
|
|
11
|
+
AGW contains many different modules, listed below. Items labelled with
|
|
12
|
+
an asterisk were already present in :mod:`lib` before:
|
|
13
|
+
|
|
14
|
+
- AdvancedSplash: reproduces the behaviour of :class:`~adv.SplashScreen`, with more
|
|
15
|
+
advanced features like custom shapes and text animations;
|
|
16
|
+
- AquaButton: this is another custom-drawn button class which
|
|
17
|
+
*approximately* mimics the behaviour of Aqua buttons on the Mac;
|
|
18
|
+
- AUI: a pure-Python implementation of :mod:`~wx.lib.agw.aui`, with many bug fixes and
|
|
19
|
+
new features like HUD docking and :class:`~wx.lib.agw.aui.auibook.AuiNotebook` tab arts;
|
|
20
|
+
- BalloonTip: allows you to display tooltips in a balloon style window
|
|
21
|
+
(actually a frame), similarly to the Windows XP balloon help;
|
|
22
|
+
- ButtonPanel (*): a panel with gradient background shading with the
|
|
23
|
+
possibility to add buttons and controls still respecting the gradient
|
|
24
|
+
background;
|
|
25
|
+
- CubeColourDialog: an alternative implementation of :class:`wx.ColourDialog`, it
|
|
26
|
+
offers different functionalities like colour wheel and RGB cube;
|
|
27
|
+
- CustomTreeCtrl (*): mimics the behaviour of :class:`TreeCtrl`, with almost the
|
|
28
|
+
same base functionalities plus a bunch of enhancements and goodies;
|
|
29
|
+
- FlatMenu: as the name implies, it is a generic menu implementation,
|
|
30
|
+
offering the same :class:`wx.MenuBar` / :class:`wx.Menu` / :class:`ToolBar` capabilities and much more;
|
|
31
|
+
- FlatNotebook (*): a full implementation of the :class:`Notebook`, and designed
|
|
32
|
+
to be a drop-in replacement for :class:`Notebook` with enhanced capabilities;
|
|
33
|
+
- FloatSpin: this class implements a floating point spinctrl, cabable (in
|
|
34
|
+
theory) of handling infinite-precision floating point numbers;
|
|
35
|
+
- FoldPanelBar (*): a control that contains multiple panels that can be
|
|
36
|
+
expanded or collapsed a la Windows Explorer/Outlook command bars;
|
|
37
|
+
- FourWaySplitter: this is a layout manager which manages four children like
|
|
38
|
+
four panes in a window, similar to many CAD software interfaces;
|
|
39
|
+
- GenericMessageDialog: it is a possible replacement for the standard
|
|
40
|
+
:class:`MessageDialog`, with a fancier look and extended functionalities;
|
|
41
|
+
- GradientButton: another custom-drawn button class which mimics Windows CE
|
|
42
|
+
mobile gradient buttons, using a tri-vertex blended gradient background;
|
|
43
|
+
- HyperLinkCtrl (*): this widget acts line an hyper link in a typical browser;
|
|
44
|
+
- HyperTreeList: a class that mimics the behaviour of :class:`wx.adv.TreeListCtrl`,
|
|
45
|
+
with almost the same base functionalities plus some more enhancements;
|
|
46
|
+
- InfoBar: a transient window shown at top or bottom of its parent window to display
|
|
47
|
+
non-critical information to the user;
|
|
48
|
+
- KnobCtrl: a widget which lets the user select a numerical value by
|
|
49
|
+
rotating it, like a slider with a wheel shape;
|
|
50
|
+
- LabelBook and FlatImageBook: these are a quasi-full implementations of
|
|
51
|
+
:class:`Listbook`, with additional features;
|
|
52
|
+
- MultiDirDialog: it represents a possible replacement for :class:`DirDialog`,
|
|
53
|
+
with the additional ability of selecting multiple folders at once and a
|
|
54
|
+
fancier look;
|
|
55
|
+
- PeakMeter: this widget mimics the behaviour of LED equalizers that are
|
|
56
|
+
usually found in stereos and MP3 players;
|
|
57
|
+
- PersistentControls: widgets which automatically save their state
|
|
58
|
+
when they are destroyed and restore it when they are recreated, even during
|
|
59
|
+
another program invocation;
|
|
60
|
+
- PieCtrl and ProgressPie: these are simple classes that reproduce the
|
|
61
|
+
behavior of a pie chart, in a static or progress-gauge-like way;
|
|
62
|
+
- PyBusyInfo: constructs a busy info window and displays a message in it:
|
|
63
|
+
it is similar to :class:`BusyInfo`;
|
|
64
|
+
- PyCollapsiblePane: a pure Python implementation of the original wxWidgets
|
|
65
|
+
C++ code of :class:`CollapsiblePane`, with customizable buttons;
|
|
66
|
+
- PyGauge: a generic :class:`Gauge` implementation, it supports the determinate
|
|
67
|
+
mode functions as :class:`Gauge`;
|
|
68
|
+
- PyProgress: it is similar to :class:`ProgressDialog` in indeterminated mode, but
|
|
69
|
+
with a different gauge appearance and a different spinning behavior;
|
|
70
|
+
- RibbonBar: the RibbonBar library is a set of classes for writing a ribbon
|
|
71
|
+
user interface, similar to the user interface present in recent versions
|
|
72
|
+
of Microsoft Office;
|
|
73
|
+
- RulerCtrl: it implements a ruler window that can be placed on top, bottom,
|
|
74
|
+
left or right to any wxPython widget. It is somewhat similar to the rulers
|
|
75
|
+
you can find in text editors software;
|
|
76
|
+
- ShapedButton: this class tries to fill the lack of "custom shaped" controls
|
|
77
|
+
in wxPython. It can be used to build round buttons or elliptic buttons;
|
|
78
|
+
- ShortcutEditor: a widget that allows the user to customize and change
|
|
79
|
+
keyboard shortcuts via a dialog;
|
|
80
|
+
- SpeedMeter: this widget tries to reproduce the behavior of some car
|
|
81
|
+
controls (but not only), by creating an "angular" control;
|
|
82
|
+
- SuperToolTip: a class that mimics the behaviour of :class:`TipWindow` and
|
|
83
|
+
generic tooltips, with many features and highly customizable;
|
|
84
|
+
- ThumbnailCtrl: a widget that can be used to display a series of images
|
|
85
|
+
in a "thumbnail" format; it mimics, for example, the Windows Explorer
|
|
86
|
+
behavior when you select the "view thumbnails" option;
|
|
87
|
+
- ToasterBox: a cross-platform widget to make the creation of MSN-style
|
|
88
|
+
"toaster" popups easier;
|
|
89
|
+
- UltimateListCtrl: mimics the behaviour of :class:`ListCtrl`, with almost the same
|
|
90
|
+
base functionalities plus some more enhancements;
|
|
91
|
+
- XLSGrid: a class based on :class:`grid.Grid` that can be used to faithfully
|
|
92
|
+
reproduce the appearance of a Microsoft Excel spreadsheets;
|
|
93
|
+
- ZoomBar: a class that *appoximatively* mimics the behaviour of the Mac Dock,
|
|
94
|
+
inside a :class:`Panel`.
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
Bugs and Limitations: many, patches and fixes welcome :-D
|
|
98
|
+
|
|
99
|
+
See the demos for an example of what AGW can do, and on how to use it.
|
|
100
|
+
|
|
101
|
+
Copyright: Andrea Gavana
|
|
102
|
+
|
|
103
|
+
License: Same as the version of wxPython you are using it with.
|
|
104
|
+
|
|
105
|
+
SVN for latest code:
|
|
106
|
+
http://svn.wxwidgets.org/viewvc/wx/wxPython/3rdParty/AGW/
|
|
107
|
+
|
|
108
|
+
Mailing List:
|
|
109
|
+
wxpython-users@lists.wxwidgets.org
|
|
110
|
+
|
|
111
|
+
My personal web page:
|
|
112
|
+
http://xoomer.alice.it/infinity77
|
|
113
|
+
|
|
114
|
+
Please let me know if you are using AGW!
|
|
115
|
+
|
|
116
|
+
You can contact me at:
|
|
117
|
+
|
|
118
|
+
andrea.gavana@gmail.com
|
|
119
|
+
andrea.gavana@maerskoil.com
|
|
120
|
+
|
|
121
|
+
AGW version: 0.9.7
|
|
122
|
+
|
|
123
|
+
Last updated: 09 January 2014, 23.00 GMT
|
|
124
|
+
|
|
125
|
+
"""
|
|
126
|
+
|
|
127
|
+
__version__ = "0.9.7"
|
|
128
|
+
__author__ = "Andrea Gavana <andrea.gavana@gmail.com>"
|