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.
Files changed (472) hide show
  1. wx/WebView2Loader.dll +0 -0
  2. wx/__init__.py +22 -0
  3. wx/__init__.pyi +10 -0
  4. wx/__version__.py +9 -0
  5. wx/__version__.pyi +15 -0
  6. wx/_adv.cp315-win_amd64.pyd +0 -0
  7. wx/_aui.cp315-win_amd64.pyd +0 -0
  8. wx/_core.cp315-win_amd64.pyd +0 -0
  9. wx/_dataview.cp315-win_amd64.pyd +0 -0
  10. wx/_glcanvas.cp315-win_amd64.pyd +0 -0
  11. wx/_grid.cp315-win_amd64.pyd +0 -0
  12. wx/_html.cp315-win_amd64.pyd +0 -0
  13. wx/_html2.cp315-win_amd64.pyd +0 -0
  14. wx/_media.cp315-win_amd64.pyd +0 -0
  15. wx/_msw.cp315-win_amd64.pyd +0 -0
  16. wx/_propgrid.cp315-win_amd64.pyd +0 -0
  17. wx/_ribbon.cp315-win_amd64.pyd +0 -0
  18. wx/_richtext.cp315-win_amd64.pyd +0 -0
  19. wx/_stc.cp315-win_amd64.pyd +0 -0
  20. wx/_xml.cp315-win_amd64.pyd +0 -0
  21. wx/_xrc.cp315-win_amd64.pyd +0 -0
  22. wx/adv.py +127 -0
  23. wx/adv.pyi +5931 -0
  24. wx/aui.py +70 -0
  25. wx/aui.pyi +4805 -0
  26. wx/core.py +3417 -0
  27. wx/core.pyi +62949 -0
  28. wx/dataview.py +176 -0
  29. wx/dataview.pyi +3828 -0
  30. wx/gizmos.py +18 -0
  31. wx/glcanvas.py +13 -0
  32. wx/glcanvas.pyi +544 -0
  33. wx/grid.py +237 -0
  34. wx/grid.pyi +5678 -0
  35. wx/html.py +38 -0
  36. wx/html.pyi +3283 -0
  37. wx/html2.py +46 -0
  38. wx/html2.pyi +1301 -0
  39. wx/include/wxPython/sip.h +1938 -0
  40. wx/include/wxPython/wxpy_api.h +418 -0
  41. wx/lib/CDate.py +201 -0
  42. wx/lib/ClickableHtmlWindow.py +57 -0
  43. wx/lib/__init__.py +0 -0
  44. wx/lib/activex.py +178 -0
  45. wx/lib/activexwrapper.py +153 -0
  46. wx/lib/agw/__init__.py +128 -0
  47. wx/lib/agw/advancedsplash.py +563 -0
  48. wx/lib/agw/aquabutton.py +1127 -0
  49. wx/lib/agw/artmanager.py +2110 -0
  50. wx/lib/agw/aui/__init__.py +295 -0
  51. wx/lib/agw/aui/aui_constants.py +2616 -0
  52. wx/lib/agw/aui/aui_switcherdialog.py +1232 -0
  53. wx/lib/agw/aui/aui_utilities.py +648 -0
  54. wx/lib/agw/aui/auibar.py +4045 -0
  55. wx/lib/agw/aui/auibook.py +6288 -0
  56. wx/lib/agw/aui/dockart.py +1198 -0
  57. wx/lib/agw/aui/framemanager.py +10485 -0
  58. wx/lib/agw/aui/tabart.py +2749 -0
  59. wx/lib/agw/aui/tabmdi.py +679 -0
  60. wx/lib/agw/balloontip.py +1157 -0
  61. wx/lib/agw/buttonpanel.py +2787 -0
  62. wx/lib/agw/cubecolourdialog.py +3529 -0
  63. wx/lib/agw/customtreectrl.py +9908 -0
  64. wx/lib/agw/data/ShortcutEditor_1.png +0 -0
  65. wx/lib/agw/data/ShortcutEditor_1_thumb.png +0 -0
  66. wx/lib/agw/data/ShortcutEditor_2.png +0 -0
  67. wx/lib/agw/data/ShortcutEditor_2_thumb.png +0 -0
  68. wx/lib/agw/data/ShortcutEditor_3.png +0 -0
  69. wx/lib/agw/data/ShortcutEditor_3_thumb.png +0 -0
  70. wx/lib/agw/data/ShortcutEditor_4.png +0 -0
  71. wx/lib/agw/data/ShortcutEditor_4_thumb.png +0 -0
  72. wx/lib/agw/data/default_help_text.html +105 -0
  73. wx/lib/agw/flatmenu.py +7392 -0
  74. wx/lib/agw/flatnotebook.py +6669 -0
  75. wx/lib/agw/floatspin.py +1820 -0
  76. wx/lib/agw/fmcustomizedlg.py +535 -0
  77. wx/lib/agw/fmresources.py +407 -0
  78. wx/lib/agw/foldpanelbar.py +2282 -0
  79. wx/lib/agw/fourwaysplitter.py +1130 -0
  80. wx/lib/agw/genericmessagedialog.py +1549 -0
  81. wx/lib/agw/gradientbutton.py +731 -0
  82. wx/lib/agw/hyperlink.py +664 -0
  83. wx/lib/agw/hypertreelist.py +5756 -0
  84. wx/lib/agw/infobar.py +885 -0
  85. wx/lib/agw/knobctrl.py +944 -0
  86. wx/lib/agw/labelbook.py +3028 -0
  87. wx/lib/agw/multidirdialog.py +581 -0
  88. wx/lib/agw/peakmeter.py +1028 -0
  89. wx/lib/agw/persist/__init__.py +188 -0
  90. wx/lib/agw/persist/persist_constants.py +283 -0
  91. wx/lib/agw/persist/persist_handlers.py +2614 -0
  92. wx/lib/agw/persist/persistencemanager.py +863 -0
  93. wx/lib/agw/piectrl.py +1082 -0
  94. wx/lib/agw/pybusyinfo.py +399 -0
  95. wx/lib/agw/pycollapsiblepane.py +940 -0
  96. wx/lib/agw/pygauge.py +570 -0
  97. wx/lib/agw/pyprogress.py +916 -0
  98. wx/lib/agw/ribbon/__init__.py +198 -0
  99. wx/lib/agw/ribbon/art.py +219 -0
  100. wx/lib/agw/ribbon/art_aui.py +1283 -0
  101. wx/lib/agw/ribbon/art_default.py +81 -0
  102. wx/lib/agw/ribbon/art_internal.py +248 -0
  103. wx/lib/agw/ribbon/art_msw.py +2735 -0
  104. wx/lib/agw/ribbon/art_osx.py +52 -0
  105. wx/lib/agw/ribbon/bar.py +1259 -0
  106. wx/lib/agw/ribbon/buttonbar.py +1317 -0
  107. wx/lib/agw/ribbon/control.py +205 -0
  108. wx/lib/agw/ribbon/gallery.py +973 -0
  109. wx/lib/agw/ribbon/page.py +946 -0
  110. wx/lib/agw/ribbon/panel.py +1170 -0
  111. wx/lib/agw/ribbon/toolbar.py +1441 -0
  112. wx/lib/agw/rulerctrl.py +1885 -0
  113. wx/lib/agw/scrolledthumbnail.py +2116 -0
  114. wx/lib/agw/shapedbutton.py +1809 -0
  115. wx/lib/agw/shortcuteditor.py +2642 -0
  116. wx/lib/agw/speedmeter.py +1800 -0
  117. wx/lib/agw/supertooltip.py +1443 -0
  118. wx/lib/agw/thumbnailctrl.py +529 -0
  119. wx/lib/agw/toasterbox.py +1327 -0
  120. wx/lib/agw/ultimatelistctrl.py +13671 -0
  121. wx/lib/agw/xlsgrid.py +2111 -0
  122. wx/lib/agw/zoombar.py +1336 -0
  123. wx/lib/analogclock/__init__.py +140 -0
  124. wx/lib/analogclock/analogclock.py +630 -0
  125. wx/lib/analogclock/helpers.py +986 -0
  126. wx/lib/analogclock/lib_setup/__init__.py +0 -0
  127. wx/lib/analogclock/lib_setup/buttontreectrlpanel.py +297 -0
  128. wx/lib/analogclock/lib_setup/fontselect.py +57 -0
  129. wx/lib/analogclock/setup.py +490 -0
  130. wx/lib/analogclock/styles.py +47 -0
  131. wx/lib/anchors.py +103 -0
  132. wx/lib/art/__init__.py +4 -0
  133. wx/lib/art/flagart.py +1583 -0
  134. wx/lib/art/img2pyartprov.py +56 -0
  135. wx/lib/busy.py +152 -0
  136. wx/lib/buttons.py +1140 -0
  137. wx/lib/calendar.py +1596 -0
  138. wx/lib/checkbox.py +837 -0
  139. wx/lib/colourchooser/__init__.py +36 -0
  140. wx/lib/colourchooser/canvas.py +145 -0
  141. wx/lib/colourchooser/intl.py +24 -0
  142. wx/lib/colourchooser/pycolourbox.py +89 -0
  143. wx/lib/colourchooser/pycolourchooser.py +626 -0
  144. wx/lib/colourchooser/pycolourslider.py +98 -0
  145. wx/lib/colourchooser/pypalette.py +208 -0
  146. wx/lib/colourdb.py +740 -0
  147. wx/lib/colourselect.py +385 -0
  148. wx/lib/colourutils.py +118 -0
  149. wx/lib/combotreebox.py +944 -0
  150. wx/lib/delayedresult.py +420 -0
  151. wx/lib/dialogs.py +510 -0
  152. wx/lib/docview.py +3210 -0
  153. wx/lib/dragscroller.py +79 -0
  154. wx/lib/editor/README.txt +77 -0
  155. wx/lib/editor/__init__.py +24 -0
  156. wx/lib/editor/editor.py +974 -0
  157. wx/lib/editor/images.py +15 -0
  158. wx/lib/editor/selection.py +44 -0
  159. wx/lib/embeddedimage.py +76 -0
  160. wx/lib/eventStack.py +136 -0
  161. wx/lib/eventwatcher.py +440 -0
  162. wx/lib/evtmgr.py +521 -0
  163. wx/lib/expando.py +393 -0
  164. wx/lib/fancytext.py +494 -0
  165. wx/lib/filebrowsebutton.py +461 -0
  166. wx/lib/flashwin.py +262 -0
  167. wx/lib/flashwin_old.py +651 -0
  168. wx/lib/floatcanvas/FCEvents.py +53 -0
  169. wx/lib/floatcanvas/FCObjects.py +2910 -0
  170. wx/lib/floatcanvas/FloatCanvas.py +1025 -0
  171. wx/lib/floatcanvas/GUIMode.py +396 -0
  172. wx/lib/floatcanvas/NavCanvas.py +162 -0
  173. wx/lib/floatcanvas/Resources.py +319 -0
  174. wx/lib/floatcanvas/ScreenShot.py +1788 -0
  175. wx/lib/floatcanvas/Utilities/BBox.py +313 -0
  176. wx/lib/floatcanvas/Utilities/Colors.py +137 -0
  177. wx/lib/floatcanvas/Utilities/GUI.py +91 -0
  178. wx/lib/floatcanvas/Utilities/__init__.py +7 -0
  179. wx/lib/floatcanvas/__init__.py +124 -0
  180. wx/lib/foldmenu.py +89 -0
  181. wx/lib/gestures.py +310 -0
  182. wx/lib/gizmos/__init__.py +18 -0
  183. wx/lib/gizmos/dynamicsash.py +1202 -0
  184. wx/lib/gizmos/ledctrl.py +299 -0
  185. wx/lib/gizmos/treelistctrl.py +87 -0
  186. wx/lib/graphics.py +1942 -0
  187. wx/lib/gridmovers.py +516 -0
  188. wx/lib/iewin.py +249 -0
  189. wx/lib/iewin_old.py +894 -0
  190. wx/lib/imagebrowser.py +853 -0
  191. wx/lib/imageutils.py +163 -0
  192. wx/lib/infoframe.py +490 -0
  193. wx/lib/inspection.py +1254 -0
  194. wx/lib/intctrl.py +990 -0
  195. wx/lib/itemspicker.py +256 -0
  196. wx/lib/langlistctrl.py +480 -0
  197. wx/lib/layoutf.py +271 -0
  198. wx/lib/masked/__init__.py +27 -0
  199. wx/lib/masked/combobox.py +839 -0
  200. wx/lib/masked/ctrl.py +108 -0
  201. wx/lib/masked/ipaddrctrl.py +241 -0
  202. wx/lib/masked/maskededit.py +7262 -0
  203. wx/lib/masked/numctrl.py +2000 -0
  204. wx/lib/masked/textctrl.py +465 -0
  205. wx/lib/masked/timectrl.py +1465 -0
  206. wx/lib/mixins/__init__.py +17 -0
  207. wx/lib/mixins/grid.py +47 -0
  208. wx/lib/mixins/gridlabelrenderer.py +277 -0
  209. wx/lib/mixins/imagelist.py +77 -0
  210. wx/lib/mixins/inspection.py +184 -0
  211. wx/lib/mixins/listctrl.py +893 -0
  212. wx/lib/mixins/rubberband.py +403 -0
  213. wx/lib/mixins/treemixin.py +678 -0
  214. wx/lib/msgpanel.py +95 -0
  215. wx/lib/multisash.py +746 -0
  216. wx/lib/myole4ax.idl +178 -0
  217. wx/lib/myole4ax.tlb +0 -0
  218. wx/lib/newevent.py +229 -0
  219. wx/lib/newevent.pyi +25 -0
  220. wx/lib/nvdlg.py +156 -0
  221. wx/lib/ogl/__init__.py +13 -0
  222. wx/lib/ogl/basic.py +3989 -0
  223. wx/lib/ogl/bmpshape.py +86 -0
  224. wx/lib/ogl/canvas.py +467 -0
  225. wx/lib/ogl/composit.py +1576 -0
  226. wx/lib/ogl/diagram.py +230 -0
  227. wx/lib/ogl/divided.py +482 -0
  228. wx/lib/ogl/drawn.py +898 -0
  229. wx/lib/ogl/lines.py +1809 -0
  230. wx/lib/ogl/oglmisc.py +607 -0
  231. wx/lib/pdfviewer/__init__.py +113 -0
  232. wx/lib/pdfviewer/bitmaps/ArrowLeft.png +0 -0
  233. wx/lib/pdfviewer/bitmaps/ArrowRight.png +0 -0
  234. wx/lib/pdfviewer/bitmaps/DirectionH.png +0 -0
  235. wx/lib/pdfviewer/bitmaps/DirectionV.png +0 -0
  236. wx/lib/pdfviewer/bitmaps/PlayerFirst.png +0 -0
  237. wx/lib/pdfviewer/bitmaps/PlayerLast.png +0 -0
  238. wx/lib/pdfviewer/bitmaps/PlayerNext.png +0 -0
  239. wx/lib/pdfviewer/bitmaps/PlayerPrev.png +0 -0
  240. wx/lib/pdfviewer/bitmaps/Printer.png +0 -0
  241. wx/lib/pdfviewer/bitmaps/ReadMe.txt +28 -0
  242. wx/lib/pdfviewer/bitmaps/Save.png +0 -0
  243. wx/lib/pdfviewer/bitmaps/ZoomIn.png +0 -0
  244. wx/lib/pdfviewer/bitmaps/ZoomOut.png +0 -0
  245. wx/lib/pdfviewer/bitmaps/encode_bitmaps.py +37 -0
  246. wx/lib/pdfviewer/buttonpanel.py +285 -0
  247. wx/lib/pdfviewer/images.py +240 -0
  248. wx/lib/pdfviewer/viewer.py +1118 -0
  249. wx/lib/pdfwin.py +295 -0
  250. wx/lib/pdfwin_old.py +789 -0
  251. wx/lib/platebtn.py +789 -0
  252. wx/lib/plot/CHANGELOG.md +150 -0
  253. wx/lib/plot/README.md +16 -0
  254. wx/lib/plot/__init__.py +46 -0
  255. wx/lib/plot/__main__.py +5 -0
  256. wx/lib/plot/examples/__init__.py +0 -0
  257. wx/lib/plot/examples/demo.py +1010 -0
  258. wx/lib/plot/examples/simple_example.py +56 -0
  259. wx/lib/plot/plotcanvas.py +2985 -0
  260. wx/lib/plot/polyobjects.py +1524 -0
  261. wx/lib/plot/utils.py +334 -0
  262. wx/lib/popupctl.py +251 -0
  263. wx/lib/printout.py +1155 -0
  264. wx/lib/progressindicator.py +151 -0
  265. wx/lib/pubsub/LICENSE_BSD_Simple.txt +23 -0
  266. wx/lib/pubsub/README_WxPython.txt +22 -0
  267. wx/lib/pubsub/RELEASE_NOTES.txt +71 -0
  268. wx/lib/pubsub/__init__.py +25 -0
  269. wx/lib/pubsub/core/__init__.py +92 -0
  270. wx/lib/pubsub/core/arg1/__init__.py +16 -0
  271. wx/lib/pubsub/core/arg1/listenerimpl.py +97 -0
  272. wx/lib/pubsub/core/arg1/publisher.py +40 -0
  273. wx/lib/pubsub/core/arg1/publishermixin.py +34 -0
  274. wx/lib/pubsub/core/arg1/topicargspecimpl.py +66 -0
  275. wx/lib/pubsub/core/arg1/topicmgrimpl.py +19 -0
  276. wx/lib/pubsub/core/callables.py +198 -0
  277. wx/lib/pubsub/core/imp2.py +62 -0
  278. wx/lib/pubsub/core/itopicdefnprovider.py +0 -0
  279. wx/lib/pubsub/core/kwargs/__init__.py +16 -0
  280. wx/lib/pubsub/core/kwargs/datamsg.py +27 -0
  281. wx/lib/pubsub/core/kwargs/listenerimpl.py +93 -0
  282. wx/lib/pubsub/core/kwargs/publisher.py +77 -0
  283. wx/lib/pubsub/core/kwargs/publishermixin.py +65 -0
  284. wx/lib/pubsub/core/kwargs/topicargspecimpl.py +216 -0
  285. wx/lib/pubsub/core/kwargs/topicmgrimpl.py +13 -0
  286. wx/lib/pubsub/core/listener.py +40 -0
  287. wx/lib/pubsub/core/listenerbase.py +185 -0
  288. wx/lib/pubsub/core/notificationmgr.py +185 -0
  289. wx/lib/pubsub/core/publisherbase.py +189 -0
  290. wx/lib/pubsub/core/topicargspec.py +77 -0
  291. wx/lib/pubsub/core/topicdefnprovider.py +631 -0
  292. wx/lib/pubsub/core/topicexc.py +72 -0
  293. wx/lib/pubsub/core/topicmgr.py +454 -0
  294. wx/lib/pubsub/core/topicobj.py +472 -0
  295. wx/lib/pubsub/core/topictreetraverser.py +143 -0
  296. wx/lib/pubsub/core/topicutils.py +119 -0
  297. wx/lib/pubsub/core/treeconfig.py +21 -0
  298. wx/lib/pubsub/core/validatedefnargs.py +29 -0
  299. wx/lib/pubsub/core/weakmethod.py +102 -0
  300. wx/lib/pubsub/policies.py +24 -0
  301. wx/lib/pubsub/pub.py +199 -0
  302. wx/lib/pubsub/setuparg1.py +47 -0
  303. wx/lib/pubsub/setupkwargs.py +29 -0
  304. wx/lib/pubsub/utils/__init__.py +27 -0
  305. wx/lib/pubsub/utils/exchandling.py +100 -0
  306. wx/lib/pubsub/utils/misc.py +99 -0
  307. wx/lib/pubsub/utils/notification.py +331 -0
  308. wx/lib/pubsub/utils/topictreeprinter.py +195 -0
  309. wx/lib/pubsub/utils/xmltopicdefnprovider.py +286 -0
  310. wx/lib/pydocview.py +3300 -0
  311. wx/lib/rcsizer.py +227 -0
  312. wx/lib/resizewidget.py +357 -0
  313. wx/lib/scrolledpanel.py +243 -0
  314. wx/lib/sheet.py +350 -0
  315. wx/lib/sized_controls.py +691 -0
  316. wx/lib/softwareupdate.py +355 -0
  317. wx/lib/splitter.py +925 -0
  318. wx/lib/statbmp.py +199 -0
  319. wx/lib/stattext.py +321 -0
  320. wx/lib/throbber.py +424 -0
  321. wx/lib/ticker.py +306 -0
  322. wx/lib/ticker_xrc.py +48 -0
  323. wx/lib/utils.py +89 -0
  324. wx/lib/wordwrap.py +97 -0
  325. wx/lib/wxcairo/__init__.py +139 -0
  326. wx/lib/wxcairo/wx_cairocffi.py +200 -0
  327. wx/lib/wxcairo/wx_pycairo.py +455 -0
  328. wx/lib/wxpTag.py +274 -0
  329. wx/libcairo-2.dll +0 -0
  330. wx/locale/af/LC_MESSAGES/wxstd.mo +0 -0
  331. wx/locale/an/LC_MESSAGES/wxstd.mo +0 -0
  332. wx/locale/ar/LC_MESSAGES/wxstd.mo +0 -0
  333. wx/locale/ca/LC_MESSAGES/wxstd.mo +0 -0
  334. wx/locale/ca@valencia/LC_MESSAGES/wxstd.mo +0 -0
  335. wx/locale/co/LC_MESSAGES/wxstd.mo +0 -0
  336. wx/locale/cs/LC_MESSAGES/wxstd.mo +0 -0
  337. wx/locale/da/LC_MESSAGES/wxstd.mo +0 -0
  338. wx/locale/de/LC_MESSAGES/wxstd.mo +0 -0
  339. wx/locale/el/LC_MESSAGES/wxstd.mo +0 -0
  340. wx/locale/es/LC_MESSAGES/wxstd.mo +0 -0
  341. wx/locale/eu/LC_MESSAGES/wxstd.mo +0 -0
  342. wx/locale/fa_IR/LC_MESSAGES/wxstd.mo +0 -0
  343. wx/locale/fi/LC_MESSAGES/wxstd.mo +0 -0
  344. wx/locale/fr/LC_MESSAGES/wxstd.mo +0 -0
  345. wx/locale/gl_ES/LC_MESSAGES/wxstd.mo +0 -0
  346. wx/locale/hi/LC_MESSAGES/wxstd.mo +0 -0
  347. wx/locale/hr/LC_MESSAGES/wxstd.mo +0 -0
  348. wx/locale/hu/LC_MESSAGES/wxstd.mo +0 -0
  349. wx/locale/id/LC_MESSAGES/wxstd.mo +0 -0
  350. wx/locale/it/LC_MESSAGES/wxstd.mo +0 -0
  351. wx/locale/ja/LC_MESSAGES/wxstd.mo +0 -0
  352. wx/locale/ka/LC_MESSAGES/wxstd.mo +0 -0
  353. wx/locale/ko_KR/LC_MESSAGES/wxstd.mo +0 -0
  354. wx/locale/lt/LC_MESSAGES/wxstd.mo +0 -0
  355. wx/locale/lv/LC_MESSAGES/wxstd.mo +0 -0
  356. wx/locale/ms/LC_MESSAGES/wxstd.mo +0 -0
  357. wx/locale/nb/LC_MESSAGES/wxstd.mo +0 -0
  358. wx/locale/ne/LC_MESSAGES/wxstd.mo +0 -0
  359. wx/locale/nl/LC_MESSAGES/wxstd.mo +0 -0
  360. wx/locale/pl/LC_MESSAGES/wxstd.mo +0 -0
  361. wx/locale/pt/LC_MESSAGES/wxstd.mo +0 -0
  362. wx/locale/pt_BR/LC_MESSAGES/wxstd.mo +0 -0
  363. wx/locale/ro/LC_MESSAGES/wxstd.mo +0 -0
  364. wx/locale/ru/LC_MESSAGES/wxstd.mo +0 -0
  365. wx/locale/sk/LC_MESSAGES/wxstd.mo +0 -0
  366. wx/locale/sl/LC_MESSAGES/wxstd.mo +0 -0
  367. wx/locale/sq/LC_MESSAGES/wxstd.mo +0 -0
  368. wx/locale/sr/LC_MESSAGES/wxstd.mo +0 -0
  369. wx/locale/sv/LC_MESSAGES/wxstd.mo +0 -0
  370. wx/locale/ta/LC_MESSAGES/wxstd.mo +0 -0
  371. wx/locale/tr/LC_MESSAGES/wxstd.mo +0 -0
  372. wx/locale/uk/LC_MESSAGES/wxstd.mo +0 -0
  373. wx/locale/vi/LC_MESSAGES/wxstd.mo +0 -0
  374. wx/locale/zh_CN/LC_MESSAGES/wxstd.mo +0 -0
  375. wx/locale/zh_TW/LC_MESSAGES/wxstd.mo +0 -0
  376. wx/media.py +30 -0
  377. wx/media.pyi +272 -0
  378. wx/msw.py +16 -0
  379. wx/msw.pyi +91 -0
  380. wx/propgrid.py +498 -0
  381. wx/propgrid.pyi +7427 -0
  382. wx/py/CHANGES.txt +796 -0
  383. wx/py/Py.ico +0 -0
  384. wx/py/PyAlaCarte.py +34 -0
  385. wx/py/PyAlaMode.py +34 -0
  386. wx/py/PyAlaModeTest.py +33 -0
  387. wx/py/PyCrust.ico +0 -0
  388. wx/py/PyCrust.py +78 -0
  389. wx/py/PyCrust_16.png +0 -0
  390. wx/py/PyCrust_32.png +0 -0
  391. wx/py/PyFilling.py +35 -0
  392. wx/py/PyShell.py +78 -0
  393. wx/py/PySlices.ico +0 -0
  394. wx/py/PySlices.py +98 -0
  395. wx/py/PySlicesShell.py +94 -0
  396. wx/py/PySlices_16.png +0 -0
  397. wx/py/PySlices_32.png +0 -0
  398. wx/py/PyWrap.py +52 -0
  399. wx/py/README.txt +77 -0
  400. wx/py/__init__.py +20 -0
  401. wx/py/buffer.py +136 -0
  402. wx/py/crust.py +403 -0
  403. wx/py/crustslices.py +403 -0
  404. wx/py/dispatcher.py +259 -0
  405. wx/py/document.py +37 -0
  406. wx/py/editor.py +844 -0
  407. wx/py/editwindow.py +316 -0
  408. wx/py/filling.py +358 -0
  409. wx/py/frame.py +976 -0
  410. wx/py/images.py +212 -0
  411. wx/py/interpreter.py +161 -0
  412. wx/py/introspect.py +402 -0
  413. wx/py/magic.py +98 -0
  414. wx/py/parse.py +134 -0
  415. wx/py/path.py +36 -0
  416. wx/py/pseudo.py +99 -0
  417. wx/py/shell.py +1579 -0
  418. wx/py/sliceshell.py +3805 -0
  419. wx/py/tests/test_interpreter.py +71 -0
  420. wx/py/tests/test_introspect.py +810 -0
  421. wx/py/tests/test_pseudo.py +70 -0
  422. wx/py/tests/test_version.py +36 -0
  423. wx/py/tests/testall.py +22 -0
  424. wx/py/version.py +7 -0
  425. wx/py.typed +0 -0
  426. wx/ribbon.py +48 -0
  427. wx/ribbon.pyi +3099 -0
  428. wx/richtext.py +141 -0
  429. wx/richtext.pyi +13581 -0
  430. wx/siplib.cp315-win_amd64.pyd +0 -0
  431. wx/siplib.pyi +19 -0
  432. wx/stc.py +59 -0
  433. wx/stc.pyi +9918 -0
  434. wx/svg/__init__.py +363 -0
  435. wx/svg/_nanosvg.cp315-win_amd64.pyd +0 -0
  436. wx/tools/__init__.py +18 -0
  437. wx/tools/dbg.py +268 -0
  438. wx/tools/genaxmodule.py +50 -0
  439. wx/tools/helpviewer.py +92 -0
  440. wx/tools/img2img.py +85 -0
  441. wx/tools/img2png.py +54 -0
  442. wx/tools/img2py.py +306 -0
  443. wx/tools/img2xpm.py +54 -0
  444. wx/tools/pywxrc.py +951 -0
  445. wx/tools/wxget.py +254 -0
  446. wx/tools/wxget_docs_demo.py +183 -0
  447. wx/wxbase334u_net_vc140_x64.dll +0 -0
  448. wx/wxbase334u_vc140_x64.dll +0 -0
  449. wx/wxbase334u_xml_vc140_x64.dll +0 -0
  450. wx/wxmsw334u_adv_vc140_x64.dll +0 -0
  451. wx/wxmsw334u_aui_vc140_x64.dll +0 -0
  452. wx/wxmsw334u_core_vc140_x64.dll +0 -0
  453. wx/wxmsw334u_gl_vc140_x64.dll +0 -0
  454. wx/wxmsw334u_html_vc140_x64.dll +0 -0
  455. wx/wxmsw334u_media_vc140_x64.dll +0 -0
  456. wx/wxmsw334u_propgrid_vc140_x64.dll +0 -0
  457. wx/wxmsw334u_qa_vc140_x64.dll +0 -0
  458. wx/wxmsw334u_ribbon_vc140_x64.dll +0 -0
  459. wx/wxmsw334u_richtext_vc140_x64.dll +0 -0
  460. wx/wxmsw334u_stc_vc140_x64.dll +0 -0
  461. wx/wxmsw334u_webview_vc140_x64.dll +0 -0
  462. wx/wxmsw334u_xrc_vc140_x64.dll +0 -0
  463. wx/xml.py +18 -0
  464. wx/xml.pyi +728 -0
  465. wx/xrc.py +68 -0
  466. wx/xrc.pyi +896 -0
  467. wxpython-4.3.2.dist-info/METADATA +71 -0
  468. wxpython-4.3.2.dist-info/RECORD +472 -0
  469. wxpython-4.3.2.dist-info/WHEEL +5 -0
  470. wxpython-4.3.2.dist-info/entry_points.txt +13 -0
  471. wxpython-4.3.2.dist-info/licenses/LICENSE.txt +610 -0
  472. 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 *