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
@@ -0,0 +1,679 @@
1
+ # -*- coding: utf-8 -*-
2
+ #----------------------------------------------------------------------------
3
+ # Name: auimdi.py
4
+ # Purpose:
5
+ #
6
+ # Author: Andrea Gavana <andrea.gavana@gmail.com>
7
+ #
8
+ # Created:
9
+ # Version:
10
+ # Date: 31 March 2009
11
+ # Licence: wxWindows license
12
+ # Tags: phoenix-port, documented
13
+ #----------------------------------------------------------------------------
14
+ __author__ = "Andrea Gavana <andrea.gavana@gmail.com>"
15
+ __date__ = "31 March 2009"
16
+
17
+
18
+ import wx
19
+
20
+ from . import auibook
21
+ from .aui_constants import *
22
+
23
+ _ = wx.GetTranslation
24
+
25
+ #-----------------------------------------------------------------------------
26
+ # AuiMDIParentFrame
27
+ #-----------------------------------------------------------------------------
28
+
29
+ class AuiMDIParentFrame(wx.Frame):
30
+
31
+ def __init__(self, parent, id=wx.ID_ANY, title="", pos=wx.DefaultPosition,
32
+ size=wx.DefaultSize, style=wx.DEFAULT_FRAME_STYLE|wx.VSCROLL|wx.HSCROLL,
33
+ name="AuiMDIParentFrame"):
34
+
35
+ wx.Frame.__init__(self, parent, id, title, pos, size, style, name=name)
36
+ self.Init()
37
+
38
+ self.Bind(wx.EVT_MENU, self.DoHandleMenu, id=wx.ID_ANY)
39
+
40
+ # this style can be used to prevent a window from having the standard MDI
41
+ # "Window" menu
42
+ if not style & wx.FRAME_NO_WINDOW_MENU:
43
+
44
+ self._pWindowMenu = wx.Menu()
45
+ self._pWindowMenu.Append(wxWINDOWCLOSE, _("Cl&ose"))
46
+ self._pWindowMenu.Append(wxWINDOWCLOSEALL, _("Close All"))
47
+ self._pWindowMenu.AppendSeparator()
48
+ self._pWindowMenu.Append(wxWINDOWNEXT, _("&Next"))
49
+ self._pWindowMenu.Append(wxWINDOWPREV, _("&Previous"))
50
+
51
+ self._pClientWindow = self.OnCreateClient()
52
+
53
+
54
+ def SetArtProvider(self, provider):
55
+
56
+ if self._pClientWindow:
57
+ self._pClientWindow.SetArtProvider(provider)
58
+
59
+
60
+ def GetArtProvider(self):
61
+
62
+ if not self._pClientWindow:
63
+ return None
64
+
65
+ return self._pClientWindow.GetArtProvider()
66
+
67
+
68
+ def GetNotebook(self):
69
+
70
+ return self._pClientWindow
71
+
72
+
73
+ def SetWindowMenu(self, pMenu):
74
+
75
+ # Replace the window menu from the currently loaded menu bar.
76
+ pMenuBar = self.GetMenuBar()
77
+
78
+ if self._pWindowMenu:
79
+ self.RemoveWindowMenu(pMenuBar)
80
+ del self._pWindowMenu
81
+ self._pWindowMenu = None
82
+
83
+ if pMenu:
84
+ self._pWindowMenu = pMenu
85
+ self.AddWindowMenu(pMenuBar)
86
+
87
+
88
+ def GetWindowMenu(self):
89
+
90
+ return self._pWindowMenu
91
+
92
+
93
+ def SetMenuBar(self, pMenuBar):
94
+
95
+ # Remove the Window menu from the old menu bar
96
+ self.RemoveWindowMenu(self.GetMenuBar())
97
+
98
+ # Add the Window menu to the new menu bar.
99
+ self.AddWindowMenu(pMenuBar)
100
+
101
+ wx.Frame.SetMenuBar(self, pMenuBar)
102
+
103
+
104
+ def SetChildMenuBar(self, pChild):
105
+
106
+ if not pChild:
107
+
108
+ # No Child, set Our menu bar back.
109
+ if self._pMyMenuBar:
110
+ self.SetMenuBar(self._pMyMenuBar)
111
+ else:
112
+ self.SetMenuBar(self.GetMenuBar())
113
+
114
+ # Make sure we know our menu bar is in use
115
+ self._pMyMenuBar = None
116
+
117
+ else:
118
+
119
+ if pChild.GetMenuBar() is None:
120
+ return
121
+
122
+ # Do we need to save the current bar?
123
+ if self._pMyMenuBar is None:
124
+ self._pMyMenuBar = self.GetMenuBar()
125
+
126
+ self.SetMenuBar(pChild.GetMenuBar())
127
+
128
+
129
+ def ProcessEvent(self, event):
130
+
131
+ # stops the same event being processed repeatedly
132
+ if self._pLastEvt == event:
133
+ return False
134
+
135
+ self._pLastEvt = event
136
+
137
+ # let the active child (if any) process the event first.
138
+ res = False
139
+ if self._pActiveChild and event.IsCommandEvent() and \
140
+ event.GetEventObject() != self._pClientWindow and \
141
+ event.GetEventType() not in [wx.wxEVT_ACTIVATE, wx.wxEVT_SET_FOCUS,
142
+ wx.wxEVT_KILL_FOCUS, wx.wxEVT_CHILD_FOCUS,
143
+ wx.wxEVT_COMMAND_SET_FOCUS, wx.wxEVT_COMMAND_KILL_FOCUS]:
144
+
145
+ res = self._pActiveChild.GetEventHandler().ProcessEvent(event)
146
+
147
+ if not res:
148
+
149
+ # if the event was not handled this frame will handle it,
150
+ # which is why we need the protection code at the beginning
151
+ # of this method
152
+ res = self.GetEventHandler().ProcessEvent(event)
153
+
154
+ self._pLastEvt = None
155
+
156
+ return res
157
+
158
+
159
+ def GetActiveChild(self):
160
+
161
+ return self._pActiveChild
162
+
163
+
164
+ def SetActiveChild(self, pChildFrame):
165
+
166
+ self._pActiveChild = pChildFrame
167
+
168
+
169
+ def GetClientWindow(self):
170
+
171
+ return self._pClientWindow
172
+
173
+
174
+ def OnCreateClient(self):
175
+
176
+ return AuiMDIClientWindow(self)
177
+
178
+
179
+ def ActivateNext(self):
180
+
181
+ if self._pClientWindow and self._pClientWindow.GetSelection() != wx.NOT_FOUND:
182
+
183
+ active = self._pClientWindow.GetSelection() + 1
184
+ if active >= self._pClientWindow.GetPageCount():
185
+ active = 0
186
+
187
+ self._pClientWindow.SetSelection(active)
188
+
189
+
190
+ def ActivatePrevious(self):
191
+
192
+ if self._pClientWindow and self._pClientWindow.GetSelection() != wx.NOT_FOUND:
193
+
194
+ active = self._pClientWindow.GetSelection() - 1
195
+ if active < 0:
196
+ active = self._pClientWindow.GetPageCount() - 1
197
+
198
+ self._pClientWindow.SetSelection(active)
199
+
200
+
201
+ def Init(self):
202
+
203
+ self._pLastEvt = None
204
+
205
+ self._pClientWindow = None
206
+ self._pActiveChild = None
207
+ self._pWindowMenu = None
208
+ self._pMyMenuBar = None
209
+
210
+
211
+ def RemoveWindowMenu(self, pMenuBar):
212
+
213
+ if pMenuBar and self._pWindowMenu:
214
+
215
+ # Remove old window menu
216
+ pos = pMenuBar.FindMenu(_("&Window"))
217
+ if pos != wx.NOT_FOUND:
218
+ pMenuBar.Remove(pos)
219
+
220
+
221
+ def AddWindowMenu(self, pMenuBar):
222
+
223
+ if pMenuBar and self._pWindowMenu:
224
+
225
+ pos = pMenuBar.FindMenu(wx.GetStockLabel(wx.ID_HELP, wx.STOCK_NOFLAGS))
226
+ if pos == wx.NOT_FOUND:
227
+ pMenuBar.Append(self._pWindowMenu, _("&Window"))
228
+ else:
229
+ pMenuBar.Insert(pos, self._pWindowMenu, _("&Window"))
230
+
231
+
232
+ def DoHandleMenu(self, event):
233
+
234
+ evId = event.GetId()
235
+
236
+ if evId == wxWINDOWCLOSE:
237
+ if self._pActiveChild:
238
+ self._pActiveChild.Close()
239
+
240
+ elif evId == wxWINDOWCLOSEALL:
241
+
242
+ while self._pActiveChild:
243
+ if not self._pActiveChild.Close():
244
+ return # failure
245
+
246
+ elif evId == wxWINDOWNEXT:
247
+ self.ActivateNext()
248
+
249
+ elif evId == wxWINDOWPREV:
250
+ self.ActivatePrevious()
251
+
252
+ else:
253
+ event.Skip()
254
+
255
+
256
+ def Tile(self, orient=wx.HORIZONTAL):
257
+
258
+ client_window = self.GetClientWindow()
259
+ if not client_window:
260
+ raise Exception("Missing MDI Client Window")
261
+
262
+ cur_idx = client_window.GetSelection()
263
+ if cur_idx == -1:
264
+ return
265
+
266
+ if orient == wx.VERTICAL:
267
+
268
+ client_window.Split(cur_idx, wx.LEFT)
269
+
270
+ elif orient == wx.HORIZONTAL:
271
+
272
+ client_window.Split(cur_idx, wx.TOP)
273
+
274
+
275
+ #-----------------------------------------------------------------------------
276
+ # AuiMDIChildFrame
277
+ #-----------------------------------------------------------------------------
278
+
279
+ class AuiMDIChildFrame(wx.Panel):
280
+
281
+ def __init__(self, parent, id=wx.ID_ANY, title="", pos=wx.DefaultPosition,
282
+ size=wx.DefaultSize, style=wx.DEFAULT_FRAME_STYLE, name="AuiMDIChildFrame"):
283
+
284
+ pClientWindow = parent.GetClientWindow()
285
+ if pClientWindow is None:
286
+ raise Exception("Missing MDI client window.")
287
+
288
+ self.Init()
289
+
290
+ # see comment in constructor
291
+ if style & wx.MINIMIZE:
292
+ self._activate_on_create = False
293
+
294
+ cli_size = pClientWindow.GetClientSize()
295
+
296
+ # create the window off-screen to prevent flicker
297
+ wx.Panel.__init__(self, pClientWindow, id, wx.Point(cli_size.x+1, cli_size.y+1),
298
+ size, wx.NO_BORDER, name=name)
299
+
300
+ self.SetBackgroundStyle(wx.BG_STYLE_CUSTOM)
301
+ self.Show(False)
302
+ self.SetMDIParentFrame(parent)
303
+
304
+ # this is the currently active child
305
+ parent.SetActiveChild(self)
306
+ self._title = title
307
+
308
+ pClientWindow.AddPage(self, title, self._activate_on_create)
309
+ pClientWindow.Refresh()
310
+
311
+ self.Bind(wx.EVT_MENU_HIGHLIGHT_ALL, self.OnMenuHighlight)
312
+ self.Bind(wx.EVT_ACTIVATE, self.OnActivate)
313
+ self.Bind(wx.EVT_CLOSE, self.OnCloseWindow)
314
+
315
+
316
+ def Init(self):
317
+
318
+ # There are two ways to create an tabbed mdi child fram without
319
+ # making it the active document. Either Show(False) can be called
320
+ # before Create() (as is customary on some ports with wxFrame-type
321
+ # windows), or wx.MINIMIZE can be passed in the style flags. Note that
322
+ # AuiMDIChildFrame is not really derived from wxFrame, as MDIChildFrame
323
+ # is, but those are the expected semantics. No style flag is passed
324
+ # onto the panel underneath.
325
+
326
+ self._activate_on_create = True
327
+
328
+ self._pMDIParentFrame = None
329
+ self._pMenuBar = None
330
+
331
+ self._mdi_currect = None
332
+ self._mdi_newrect = wx.Rect()
333
+ self._icon = None
334
+ self._icon_bundle = None
335
+
336
+
337
+ def Destroy(self):
338
+
339
+ pParentFrame = self.GetMDIParentFrame()
340
+ if not pParentFrame:
341
+ raise Exception("Missing MDI Parent Frame")
342
+
343
+ pClientWindow = pParentFrame.GetClientWindow()
344
+ if not pClientWindow:
345
+ raise Exception("Missing MDI Client Window")
346
+
347
+ if pParentFrame.GetActiveChild() == self:
348
+
349
+ # deactivate ourself
350
+ event = wx.ActivateEvent(wx.wxEVT_ACTIVATE, False, self.GetId())
351
+ event.SetEventObject(self)
352
+ self.GetEventHandler().ProcessEvent(event)
353
+
354
+ pParentFrame.SetActiveChild(None)
355
+ pParentFrame.SetChildMenuBar(None)
356
+
357
+ for pos in range(pClientWindow.GetPageCount()):
358
+ if pClientWindow.GetPage(pos) == self:
359
+ return pClientWindow.DeletePage(pos)
360
+
361
+ return False
362
+
363
+
364
+ def SetMenuBar(self, menu_bar):
365
+
366
+ pOldMenuBar = self._pMenuBar
367
+ self._pMenuBar = menu_bar
368
+
369
+ if self._pMenuBar:
370
+
371
+ pParentFrame = self.GetMDIParentFrame()
372
+ if not pParentFrame:
373
+ raise Exception("Missing MDI Parent Frame")
374
+
375
+ self._pMenuBar.Reparent(pParentFrame)
376
+ if pParentFrame.GetActiveChild() == self:
377
+
378
+ # replace current menu bars
379
+ if pOldMenuBar:
380
+ pParentFrame.SetChildMenuBar(None)
381
+
382
+ pParentFrame.SetChildMenuBar(self)
383
+
384
+
385
+ def GetMenuBar(self):
386
+
387
+ return self._pMenuBar
388
+
389
+
390
+ def SetTitle(self, title):
391
+
392
+ self._title = title
393
+
394
+ pParentFrame = self.GetMDIParentFrame()
395
+ if not pParentFrame:
396
+ raise Exception("Missing MDI Parent Frame")
397
+
398
+ pClientWindow = pParentFrame.GetClientWindow()
399
+ if pClientWindow is not None:
400
+
401
+ for pos in range(pClientWindow.GetPageCount()):
402
+ if pClientWindow.GetPage(pos) == self:
403
+ pClientWindow.SetPageText(pos, self._title)
404
+ break
405
+
406
+
407
+ def GetTitle(self):
408
+
409
+ return self._title
410
+
411
+
412
+ def SetIcons(self, icons):
413
+
414
+ # get icon with the system icon size
415
+ self.SetIcon(icons.GetIcon(-1))
416
+ self._icon_bundle = icons
417
+
418
+
419
+ def GetIcons(self):
420
+
421
+ return self._icon_bundle
422
+
423
+
424
+ def SetIcon(self, icon):
425
+
426
+ pParentFrame = self.GetMDIParentFrame()
427
+ if not pParentFrame:
428
+ raise Exception("Missing MDI Parent Frame")
429
+
430
+ self._icon = icon
431
+
432
+ bmp = wx.Bitmap(self._icon)
433
+
434
+ pClientWindow = pParentFrame.GetClientWindow()
435
+ if pClientWindow is not None:
436
+ idx = pClientWindow.GetPageIndex(self)
437
+ if idx != -1:
438
+ pClientWindow.SetPageBitmap(idx, bmp)
439
+
440
+
441
+ def GetIcon(self):
442
+
443
+ return self._icon
444
+
445
+
446
+ def Activate(self):
447
+
448
+ pParentFrame = self.GetMDIParentFrame()
449
+ if not pParentFrame:
450
+ raise Exception("Missing MDI Parent Frame")
451
+
452
+ pClientWindow = pParentFrame.GetClientWindow()
453
+ if pClientWindow is not None:
454
+
455
+ for pos in range(pClientWindow.GetPageCount()):
456
+ if pClientWindow.GetPage(pos) == self:
457
+ pClientWindow.SetSelection(pos)
458
+ break
459
+
460
+
461
+ def OnMenuHighlight(self, event):
462
+
463
+ if self._pMDIParentFrame:
464
+
465
+ # we don't have any help text for this item,
466
+ # but may be the MDI frame does?
467
+ self._pMDIParentFrame.OnMenuHighlight(event)
468
+
469
+
470
+ def OnActivate(self, event):
471
+
472
+ # do nothing
473
+ pass
474
+
475
+
476
+ def OnCloseWindow(self, event):
477
+
478
+ pParentFrame = self.GetMDIParentFrame()
479
+ if pParentFrame:
480
+ if pParentFrame.GetActiveChild() == self:
481
+
482
+ pParentFrame.SetActiveChild(None)
483
+ pParentFrame.SetChildMenuBar(None)
484
+
485
+ pClientWindow = pParentFrame.GetClientWindow()
486
+ idx = pClientWindow.GetPageIndex(self)
487
+
488
+ if idx != wx.NOT_FOUND:
489
+ pClientWindow.RemovePage(idx)
490
+
491
+ self.Destroy()
492
+
493
+
494
+ def SetMDIParentFrame(self, parentFrame):
495
+
496
+ self._pMDIParentFrame = parentFrame
497
+
498
+
499
+ def GetMDIParentFrame(self):
500
+
501
+ return self._pMDIParentFrame
502
+
503
+
504
+ def CreateStatusBar(self, number=1, style=1, winid=1, name=""):
505
+
506
+ return None
507
+
508
+
509
+ def GetStatusBar(self):
510
+
511
+ return None
512
+
513
+
514
+ def SetStatusText(self, text, number=0):
515
+
516
+ pass
517
+
518
+
519
+ def SetStatusWidths(self, widths_field):
520
+
521
+ pass
522
+
523
+
524
+ # no toolbar bars
525
+ def CreateToolBar(self, style=1, winid=-1, name=""):
526
+
527
+ return None
528
+
529
+
530
+ def GetToolBar(self):
531
+
532
+ return None
533
+
534
+
535
+ # no maximize etc
536
+ def Maximize(self, maximize=True):
537
+
538
+ pass
539
+
540
+
541
+ def Restore(self):
542
+
543
+ pass
544
+
545
+
546
+ def Iconize(self, iconize=True):
547
+
548
+ pass
549
+
550
+
551
+ def IsMaximized(self):
552
+
553
+ return True
554
+
555
+
556
+ def IsIconized(self):
557
+
558
+ return False
559
+
560
+
561
+ def ShowFullScreen(self, show=True, style=0):
562
+
563
+ return False
564
+
565
+
566
+ def IsFullScreen(self):
567
+
568
+ return False
569
+
570
+
571
+ def IsTopLevel(self):
572
+
573
+ return False
574
+
575
+
576
+ # renamed from Show().
577
+ def ActivateOnCreate(self, activate_on_create):
578
+
579
+ self._activate_on_create = activate_on_create
580
+ return True
581
+
582
+
583
+ def Show(self, show=True):
584
+
585
+ wx.Panel.Show(self, show)
586
+
587
+
588
+ def ApplyMDIChildFrameRect(self):
589
+
590
+ if self._mdi_currect != self._mdi_newrect:
591
+ self.SetSize(*self._mdi_newrect)
592
+ self._mdi_currect = wx.Rect(*self._mdi_newrect)
593
+
594
+
595
+ #-----------------------------------------------------------------------------
596
+ # AuiMDIClientWindow
597
+ #-----------------------------------------------------------------------------
598
+
599
+ class AuiMDIClientWindow(auibook.AuiNotebook):
600
+
601
+ def __init__(self, parent, agwStyle=0):
602
+
603
+ auibook.AuiNotebook.__init__(self, parent, wx.ID_ANY, wx.Point(0, 0), wx.Size(100, 100),
604
+ agwStyle=AUI_NB_DEFAULT_STYLE|wx.NO_BORDER)
605
+
606
+ caption_icon_size = wx.Size(wx.SystemSettings.GetMetric(wx.SYS_SMALLICON_X),
607
+ wx.SystemSettings.GetMetric(wx.SYS_SMALLICON_Y))
608
+ self.SetUniformBitmapSize(caption_icon_size)
609
+
610
+ bkcolour = wx.SystemSettings.GetColour(wx.SYS_COLOUR_APPWORKSPACE)
611
+ self.SetOwnBackgroundColour(bkcolour)
612
+
613
+ self._mgr.GetArtProvider().SetColour(AUI_DOCKART_BACKGROUND_COLOUR, bkcolour)
614
+
615
+ self.Bind(auibook.EVT_AUINOTEBOOK_PAGE_CHANGED, self.OnPageChanged)
616
+ self.Bind(auibook.EVT_AUINOTEBOOK_PAGE_CLOSE, self.OnPageClose)
617
+ self.Bind(wx.EVT_SIZE, self.OnSize)
618
+
619
+
620
+ def SetSelection(self, nPage):
621
+
622
+ return auibook.AuiNotebook.SetSelection(self, nPage)
623
+
624
+
625
+ def PageChanged(self, old_selection, new_selection):
626
+
627
+ # don't do anything if the page doesn't actually change
628
+ if old_selection == new_selection:
629
+ return
630
+
631
+ # notify old active child that it has been deactivated
632
+ if old_selection != -1 and old_selection < self.GetPageCount():
633
+
634
+ old_child = self.GetPage(old_selection)
635
+ if not old_child:
636
+ raise Exception("AuiMDIClientWindow.PageChanged - null page pointer")
637
+
638
+ event = wx.ActivateEvent(wx.wxEVT_ACTIVATE, False, old_child.GetId())
639
+ event.SetEventObject(old_child)
640
+ old_child.GetEventHandler().ProcessEvent(event)
641
+
642
+ # notify new active child that it has been activated
643
+ if new_selection != -1:
644
+
645
+ active_child = self.GetPage(new_selection)
646
+ if not active_child:
647
+ raise Exception("AuiMDIClientWindow.PageChanged - null page pointer")
648
+
649
+ event = wx.ActivateEvent(wx.wxEVT_ACTIVATE, True, active_child.GetId())
650
+ event.SetEventObject(active_child)
651
+ active_child.GetEventHandler().ProcessEvent(event)
652
+
653
+ if active_child.GetMDIParentFrame():
654
+ active_child.GetMDIParentFrame().SetActiveChild(active_child)
655
+ active_child.GetMDIParentFrame().SetChildMenuBar(active_child)
656
+
657
+
658
+ def OnPageClose(self, event):
659
+
660
+ wnd = self.GetPage(event.GetSelection())
661
+ wnd.Close()
662
+
663
+ # regardless of the result of wnd.Close(), we've
664
+ # already taken care of the close operations, so
665
+ # suppress further processing
666
+ event.Veto()
667
+
668
+
669
+ def OnPageChanged(self, event):
670
+
671
+ self.PageChanged(event.GetOldSelection(), event.GetSelection())
672
+
673
+
674
+ def OnSize(self, event):
675
+
676
+ auibook.AuiNotebook.OnSize(self, event)
677
+
678
+ for pos in range(self.GetPageCount()):
679
+ self.GetPage(pos).ApplyMDIChildFrameRect()