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/ogl/bmpshape.py ADDED
@@ -0,0 +1,86 @@
1
+ # -*- coding: utf-8 -*-
2
+ #----------------------------------------------------------------------------
3
+ # Name: bmpshape.py
4
+ # Purpose: Bitmap shape
5
+ #
6
+ # Author: Pierre Hjälm (from C++ original by Julian Smart)
7
+ #
8
+ # Created: 2004-05-08
9
+ # Copyright: (c) 2004 Pierre Hjälm - 1998 Julian Smart
10
+ # Licence: wxWindows license
11
+ # Tags: phoenix-port, unittest, py3-port, documented
12
+ #----------------------------------------------------------------------------
13
+ """
14
+ The :class:`~lib.ogl.bmpshape.BitmapShape` class.
15
+ """
16
+ from .basic import RectangleShape
17
+
18
+
19
+ class BitmapShape(RectangleShape):
20
+ """The :class:`wx.BitmapShape` class draws a bitmap (non-resizable)."""
21
+ def __init__(self):
22
+ """
23
+ Default class constructor.
24
+ """
25
+ RectangleShape.__init__(self, 100, 50)
26
+ self._filename = ""
27
+
28
+ def OnDraw(self, dc):
29
+ """The draw handler."""
30
+ if not self._bitmap.IsOk():
31
+ return
32
+
33
+ x = self._xpos - self._bitmap.GetWidth() / 2.0
34
+ y = self._ypos - self._bitmap.GetHeight() / 2.0
35
+ dc.DrawBitmap(self._bitmap, int(x), int(y), True)
36
+
37
+ def SetSize(self, w, h, recursive = True):
38
+ """
39
+ Set the size.
40
+
41
+ :param `w`: the width
42
+ :param `h`: the height
43
+ :param `recursive`: not used
44
+
45
+ """
46
+
47
+ if self._bitmap.IsOk():
48
+ w = self._bitmap.GetWidth()
49
+ h = self._bitmap.GetHeight()
50
+
51
+ self.SetAttachmentSize(w, h)
52
+
53
+ self._width = w
54
+ self._height = h
55
+
56
+ self.SetDefaultRegionSize()
57
+
58
+ def GetBitmap(self):
59
+ """Get the associated bitmap."""
60
+ return self._bitmap
61
+
62
+ def SetBitmap(self, bitmap):
63
+ """Set the associated bitmap.
64
+
65
+ :param `bitmap`: a :class:`wx.Bitmap` instance
66
+
67
+ :note: You can delete the bitmap from the calling application, since
68
+ reference counting will take care of holding on to the internal bitmap
69
+ data.
70
+
71
+ """
72
+ self._bitmap = bitmap
73
+ if self._bitmap.IsOk():
74
+ self.SetSize(self._bitmap.GetWidth(), self._bitmap.GetHeight())
75
+
76
+ def SetFilename(self, f):
77
+ """Set the bitmap filename.
78
+
79
+ :param str `f`: the bitmap file name
80
+
81
+ """
82
+ self._filename = f
83
+
84
+ def GetFilename(self):
85
+ """Return the bitmap filename."""
86
+ return self._filename
wx/lib/ogl/canvas.py ADDED
@@ -0,0 +1,467 @@
1
+ # -*- coding: utf-8 -*-
2
+ #----------------------------------------------------------------------------
3
+ # Name: _canvas.py
4
+ # Purpose: The canvas class
5
+ #
6
+ # Author: Pierre Hjälm (from C++ original by Julian Smart)
7
+ #
8
+ # Created: 2004-05-08
9
+ # Copyright: (c) 2004 Pierre Hjälm - 1998 Julian Smart
10
+ # Licence: wxWindows license
11
+ # Tags: phoenix-port, unittest, py3-port, documented
12
+ #----------------------------------------------------------------------------
13
+ """
14
+ The :class:`~lib.ogl.canvas.ShapeCanvas` class.
15
+ """
16
+ import wx
17
+ from .lines import LineShape
18
+ from .composit import *
19
+ from .oglmisc import *
20
+
21
+ NoDragging, StartDraggingLeft, ContinueDraggingLeft, StartDraggingRight, ContinueDraggingRight = 0, 1, 2, 3, 4
22
+
23
+
24
+ def WhollyContains(contains, contained):
25
+ """Helper function.
26
+
27
+ :param `contains`: the containing shape
28
+ :param `contained`: the contained shape
29
+ :returns: `True` if 'contains' wholly contains 'contained'
30
+
31
+ """
32
+ xp1, yp1 = contains.GetX(), contains.GetY()
33
+ xp2, yp2 = contained.GetX(), contained.GetY()
34
+
35
+ w1, h1 = contains.GetBoundingBoxMax()
36
+ w2, h2 = contained.GetBoundingBoxMax()
37
+
38
+ left1 = xp1 - w1 / 2.0
39
+ top1 = yp1 - h1 / 2.0
40
+ right1 = xp1 + w1 / 2.0
41
+ bottom1 = yp1 + h1 / 2.0
42
+
43
+ left2 = xp2 - w2 / 2.0
44
+ top2 = yp2 - h2 / 2.0
45
+ right2 = xp2 + w2 / 2.0
46
+ bottom2 = yp2 + h2 / 2.0
47
+
48
+ return ((left1 <= left2) and (top1 <= top2) and (right1 >= right2) and (bottom1 >= bottom2))
49
+
50
+
51
+ class ShapeCanvas(wx.ScrolledWindow):
52
+ """The :class:`ShapeCanvas` class."""
53
+ def __init__(self, parent = None, id = -1, pos = wx.DefaultPosition, size = wx.DefaultSize, style = wx.BORDER, name = "ShapeCanvas"):
54
+ """Default class constructor.
55
+
56
+ Default class constructor.
57
+
58
+ :param `parent`: parent window
59
+ :param integer `id`: window identifier. A value of -1 indicates a default value
60
+ :param `pos`: the control position. A value of (-1, -1) indicates a default position,
61
+ chosen by either the windowing system or wxPython, depending on platform
62
+ :param `size`: the control size. A value of (-1, -1) indicates a default size,
63
+ chosen by either the windowing system or wxPython, depending on platform
64
+ :param integer `style`: the underlying :class:`wx.Window` style
65
+ :param str `name`: the window name
66
+
67
+ :type parent: :class:`wx.Window`
68
+ :type pos: tuple or :class:`wx.Point`
69
+ :type size: tuple or :class:`wx.Size`
70
+
71
+ """
72
+ wx.ScrolledWindow.__init__(self, parent, id, pos, size, style, name)
73
+
74
+ self.SetBackgroundStyle(wx.BG_STYLE_PAINT)
75
+
76
+ self._shapeDiagram = None
77
+ self._dragState = NoDragging
78
+ self._draggedShape = None
79
+ self._oldDragX = 0
80
+ self._oldDragY = 0
81
+ self._firstDragX = 0
82
+ self._firstDragY = 0
83
+ self._checkTolerance = True
84
+
85
+ self._buffer = wx.Bitmap(1, 1)
86
+
87
+ self.Bind(wx.EVT_PAINT, self.OnPaint)
88
+ self.Bind(wx.EVT_SIZE, self.OnSize)
89
+ self.Bind(wx.EVT_MOUSE_EVENTS, self.OnMouseEvent)
90
+
91
+ def Draw(self):
92
+ """
93
+ Update the buffer with the background and redraw the full diagram.
94
+ """
95
+ dc = wx.MemoryDC(self._buffer)
96
+
97
+ dc.SetBackground(wx.Brush(self.GetBackgroundColour(), wx.BRUSHSTYLE_SOLID))
98
+ dc.Clear() # make sure you clear the bitmap!
99
+
100
+ if self.GetDiagram():
101
+ self.GetDiagram().Redraw(dc)
102
+
103
+ def OnSize(self, evt):
104
+ """
105
+ The size handler, it initializes the buffer to the size of the window.
106
+ """
107
+ size = self.GetVirtualSize()
108
+
109
+ # Make sure we don't try to create a 0 size bitmap
110
+ size = wx.Size(max(size.x, 1), max(size.y, 1))
111
+ self._buffer = wx.Bitmap(size.x, size.y)
112
+ self.Draw()
113
+
114
+ def GetBuffer(self):
115
+ return self._buffer
116
+
117
+ def SetDiagram(self, diag):
118
+ """Set the diagram associated with this canvas.
119
+
120
+ :param `diag`: an instance of :class:`~lib.ogl.Diagram`
121
+
122
+ """
123
+ self._shapeDiagram = diag
124
+
125
+ def GetDiagram(self):
126
+ """Get the diagram associated with this canvas."""
127
+ return self._shapeDiagram
128
+
129
+ def OnPaint(self, evt):
130
+ """
131
+ The paint handler, uses :class:`BufferedPaintDC` to draw the
132
+ buffer to the screen.
133
+ """
134
+ dc = wx.PaintDC(self)
135
+ self.PrepareDC(dc)
136
+ dc.DrawBitmap(self._buffer, 0, 0)
137
+
138
+ def OnMouseEvent(self, evt):
139
+ """The mouse event handler."""
140
+ x, y = self.CalcUnscrolledPosition(evt.GetPosition())
141
+ keys = 0
142
+ if evt.ShiftDown():
143
+ keys |= KEY_SHIFT
144
+ if evt.ControlDown():
145
+ keys |= KEY_CTRL
146
+
147
+ dragging = evt.Dragging()
148
+
149
+ # Check if we're within the tolerance for mouse movements.
150
+ # If we're very close to the position we started dragging
151
+ # from, this may not be an intentional drag at all.
152
+ if dragging:
153
+ if self._checkTolerance:
154
+ # the difference between two logical coordinates is a logical coordinate
155
+ dx = abs(x - self._firstDragX)
156
+ dy = abs(y - self._firstDragY)
157
+ toler = self.GetDiagram().GetMouseTolerance()
158
+ if (dx <= toler) and (dy <= toler):
159
+ return
160
+ # If we've ignored the tolerance once, then ALWAYS ignore
161
+ # tolerance in this drag, even if we come back within
162
+ # the tolerance range.
163
+ self._checkTolerance = False
164
+
165
+ # Dragging - note that the effect of dragging is left entirely up
166
+ # to the object, so no movement is done unless explicitly done by
167
+ # object.
168
+ if dragging and self._draggedShape and self._dragState == StartDraggingLeft:
169
+ self._dragState = ContinueDraggingLeft
170
+
171
+ # If the object isn't m_draggable, transfer message to canvas
172
+ if self._draggedShape.Draggable():
173
+ self._draggedShape.GetEventHandler().OnBeginDragLeft(x, y, keys, self._draggedAttachment)
174
+ else:
175
+ self._draggedShape = None
176
+ self.OnBeginDragLeft(x, y, keys)
177
+
178
+ self._oldDragX, self._oldDragY = x, y
179
+
180
+ elif dragging and self._draggedShape and self._dragState == ContinueDraggingLeft:
181
+ # Continue dragging
182
+ self._draggedShape.GetEventHandler().OnDragLeft(False, self._oldDragX, self._oldDragY, keys, self._draggedAttachment)
183
+ self._draggedShape.GetEventHandler().OnDragLeft(True, x, y, keys, self._draggedAttachment)
184
+ self._oldDragX, self._oldDragY = x, y
185
+
186
+ elif evt.LeftUp() and self._draggedShape and self._dragState == ContinueDraggingLeft:
187
+ self._dragState = NoDragging
188
+ self._checkTolerance = True
189
+
190
+ self._draggedShape.GetEventHandler().OnDragLeft(False, self._oldDragX, self._oldDragY, keys, self._draggedAttachment)
191
+ self._draggedShape.GetEventHandler().OnEndDragLeft(x, y, keys, self._draggedAttachment)
192
+ self._draggedShape = None
193
+
194
+ elif dragging and self._draggedShape and self._dragState == StartDraggingRight:
195
+ self._dragState = ContinueDraggingRight
196
+ if self._draggedShape.Draggable:
197
+ self._draggedShape.GetEventHandler().OnBeginDragRight(x, y, keys, self._draggedAttachment)
198
+ else:
199
+ self._draggedShape = None
200
+ self.OnBeginDragRight(x, y, keys)
201
+ self._oldDragX, self._oldDragY = x, y
202
+
203
+ elif dragging and self._draggedShape and self._dragState == ContinueDraggingRight:
204
+ # Continue dragging
205
+ self._draggedShape.GetEventHandler().OnDragRight(False, self._oldDragX, self._oldDragY, keys, self._draggedAttachment)
206
+ self._draggedShape.GetEventHandler().OnDragRight(True, x, y, keys, self._draggedAttachment)
207
+ self._oldDragX, self._oldDragY = x, y
208
+
209
+ elif evt.RightUp() and self._draggedShape and self._dragState == ContinueDraggingRight:
210
+ self._dragState = NoDragging
211
+ self._checkTolerance = True
212
+
213
+ self._draggedShape.GetEventHandler().OnDragRight(False, self._oldDragX, self._oldDragY, keys, self._draggedAttachment)
214
+ self._draggedShape.GetEventHandler().OnEndDragRight(x, y, keys, self._draggedAttachment)
215
+ self._draggedShape = None
216
+
217
+ # All following events sent to canvas, not object
218
+ elif dragging and not self._draggedShape and self._dragState == StartDraggingLeft:
219
+ self._dragState = ContinueDraggingLeft
220
+ self.OnBeginDragLeft(x, y, keys)
221
+ self._oldDragX, self._oldDragY = x, y
222
+
223
+ elif dragging and not self._draggedShape and self._dragState == ContinueDraggingLeft:
224
+ # Continue dragging
225
+ self.OnDragLeft(False, self._oldDragX, self._oldDragY, keys)
226
+ self.OnDragLeft(True, x, y, keys)
227
+ self._oldDragX, self._oldDragY = x, y
228
+
229
+ elif evt.LeftUp() and not self._draggedShape and self._dragState == ContinueDraggingLeft:
230
+ self._dragState = NoDragging
231
+ self._checkTolerance = True
232
+
233
+ self.OnDragLeft(False, self._oldDragX, self._oldDragY, keys)
234
+ self.OnEndDragLeft(x, y, keys)
235
+ self._draggedShape = None
236
+
237
+ elif dragging and not self._draggedShape and self._dragState == StartDraggingRight:
238
+ self._dragState = ContinueDraggingRight
239
+ self.OnBeginDragRight(x, y, keys)
240
+ self._oldDragX, self._oldDragY = x, y
241
+
242
+ elif dragging and not self._draggedShape and self._dragState == ContinueDraggingRight:
243
+ # Continue dragging
244
+ self.OnDragRight(False, self._oldDragX, self._oldDragY, keys)
245
+ self.OnDragRight(True, x, y, keys)
246
+ self._oldDragX, self._oldDragY = x, y
247
+
248
+ elif evt.RightUp() and not self._draggedShape and self._dragState == ContinueDraggingRight:
249
+ self._dragState = NoDragging
250
+ self._checkTolerance = True
251
+
252
+ self.OnDragRight(False, self._oldDragX, self._oldDragY, keys)
253
+ self.OnEndDragRight(x, y, keys)
254
+ self._draggedShape = None
255
+
256
+ # Non-dragging events
257
+ elif evt.IsButton():
258
+ self._checkTolerance = True
259
+
260
+ # Find the nearest object
261
+ attachment = 0
262
+
263
+ nearest_object, attachment = self.FindShape(x, y)
264
+ if nearest_object: # Object event
265
+ if evt.LeftDown():
266
+ self._draggedShape = nearest_object
267
+ self._draggedAttachment = attachment
268
+ self._dragState = StartDraggingLeft
269
+ self._firstDragX = x
270
+ self._firstDragY = y
271
+
272
+ elif evt.LeftUp():
273
+ # N.B. Only register a click if the same object was
274
+ # identified for down *and* up.
275
+ if nearest_object == self._draggedShape:
276
+ nearest_object.GetEventHandler().OnLeftClick(x, y, keys, attachment)
277
+ self._draggedShape = None
278
+ self._dragState = NoDragging
279
+
280
+ elif evt.LeftDClick():
281
+ nearest_object.GetEventHandler().OnLeftDoubleClick(x, y, keys, attachment)
282
+ self._draggedShape = None
283
+ self._dragState = NoDragging
284
+
285
+ elif evt.RightDown():
286
+ self._draggedShape = nearest_object
287
+ self._draggedAttachment = attachment
288
+ self._dragState = StartDraggingRight
289
+ self._firstDragX = x
290
+ self._firstDragY = y
291
+
292
+ elif evt.RightUp():
293
+ if nearest_object == self._draggedShape:
294
+ nearest_object.GetEventHandler().OnRightClick(x, y, keys, attachment)
295
+ self._draggedShape = None
296
+ self._dragState = NoDragging
297
+
298
+ else: # Canvas event
299
+ if evt.LeftDown():
300
+ self._draggedShape = None
301
+ self._dragState = StartDraggingLeft
302
+ self._firstDragX = x
303
+ self._firstDragY = y
304
+
305
+ elif evt.LeftUp():
306
+ self.OnLeftClick(x, y, keys)
307
+ self._draggedShape = None
308
+ self._dragState = NoDragging
309
+
310
+ elif evt.RightDown():
311
+ self._draggedShape = None
312
+ self._dragState = StartDraggingRight
313
+ self._firstDragX = x
314
+ self._firstDragY = y
315
+
316
+ elif evt.RightUp():
317
+ self.OnRightClick(x, y, keys)
318
+ self._draggedShape = None
319
+ self._dragState = NoDragging
320
+
321
+ self.Draw()
322
+
323
+ def FindShape(self, x, y, info = None, notObject = None):
324
+ """
325
+ Find shape at given position.
326
+
327
+ :param `x`: the x position
328
+ :param `y`: the y position
329
+ :param `info`: ???
330
+ :param `notObject`: ???
331
+
332
+ """
333
+ nearest = 100000.0
334
+ nearest_attachment = 0
335
+ nearest_object = None
336
+
337
+ # Go backward through the object list, since we want:
338
+ # (a) to have the control points drawn LAST to overlay
339
+ # the other objects
340
+ # (b) to find the control points FIRST if they exist
341
+
342
+ rl = self.GetDiagram().GetShapeList()[:]
343
+ rl.reverse()
344
+ for object in rl:
345
+ # First pass for lines, which might be inside a container, so we
346
+ # want lines to take priority over containers. This first loop
347
+ # could fail if we clickout side a line, so then we'll
348
+ # try other shapes.
349
+ if object.IsShown() and \
350
+ isinstance(object, LineShape) and \
351
+ object.HitTest(x, y) and \
352
+ ((info is None) or isinstance(object, info)) and \
353
+ (not notObject or not notObject.HasDescendant(object)):
354
+ temp_attachment, dist = object.HitTest(x, y)
355
+ # A line is trickier to spot than a normal object.
356
+ # For a line, since it's the diagonal of the box
357
+ # we use for the hit test, we may have several
358
+ # lines in the box and therefore we need to be able
359
+ # to specify the nearest point to the centre of the line
360
+ # as our hit criterion, to give the user some room for
361
+ # manouevre.
362
+ if dist < nearest:
363
+ nearest = dist
364
+ nearest_object = object
365
+ nearest_attachment = temp_attachment
366
+
367
+ for object in rl:
368
+ # On second pass, only ever consider non-composites or
369
+ # divisions. If children want to pass up control to
370
+ # the composite, that's up to them.
371
+ if (object.IsShown() and
372
+ (isinstance(object, DivisionShape) or
373
+ not isinstance(object, CompositeShape)) and
374
+ object.HitTest(x, y) and
375
+ (info is None or isinstance(object, info)) and
376
+ (not notObject or not notObject.HasDescendant(object))):
377
+ temp_attachment, dist = object.HitTest(x, y)
378
+ if not isinstance(object, LineShape):
379
+ # If we've hit a container, and we have already
380
+ # found a line in the first pass, then ignore
381
+ # the container in case the line is in the container.
382
+ # Check for division in case line straddles divisions
383
+ # (i.e. is not wholly contained).
384
+ if not nearest_object or not (isinstance(object, DivisionShape) or WhollyContains(object, nearest_object)):
385
+ nearest_object = object
386
+ nearest_attachment = temp_attachment
387
+ break
388
+
389
+ return nearest_object, nearest_attachment
390
+
391
+ def AddShape(self, object, addAfter = None):
392
+ """
393
+ Add a shape to canvas.
394
+
395
+ :param `object`: the :class:`~lib.ogl.Shape` instance to add
396
+ :param `addAfter`: None or the :class:`~lib.ogl.Shape` after which
397
+ above shape is to be added.
398
+
399
+ """
400
+ self.GetDiagram().AddShape(object, addAfter)
401
+
402
+ def InsertShape(self, object):
403
+ """
404
+ Insert a shape to canvas.
405
+
406
+ :param `object`: the :class:`~lib.ogl.Shape` instance to insert
407
+
408
+ """
409
+ self.GetDiagram().InsertShape(object)
410
+
411
+ def RemoveShape(self, object):
412
+ """
413
+ Remove a shape from canvas.
414
+
415
+ :param `object`: the :class:`~lib.ogl.Shape` instance to be removed
416
+
417
+ """
418
+ self.GetDiagram().RemoveShape(object)
419
+
420
+ def GetQuickEditMode(self):
421
+ """Get quick edit mode."""
422
+ return self.GetDiagram().GetQuickEditMode()
423
+
424
+ def Redraw(self, dc):
425
+ """Redraw the diagram."""
426
+ self.GetDiagram().Redraw(dc)
427
+
428
+ def Snap(self, x, y):
429
+ """Snap ???
430
+
431
+ :param `x`: the x position
432
+ :param `y`: the y position
433
+
434
+ """
435
+ return self.GetDiagram().Snap(x, y)
436
+
437
+ def OnLeftClick(self, x, y, keys = 0):
438
+ """not implemented???"""
439
+ pass
440
+
441
+ def OnRightClick(self, x, y, keys = 0):
442
+ """not implemented???"""
443
+ pass
444
+
445
+ def OnDragLeft(self, draw, x, y, keys = 0):
446
+ """not implemented???"""
447
+ pass
448
+
449
+ def OnBeginDragLeft(self, x, y, keys = 0):
450
+ """not implemented???"""
451
+ pass
452
+
453
+ def OnEndDragLeft(self, x, y, keys = 0):
454
+ """not implemented???"""
455
+ pass
456
+
457
+ def OnDragRight(self, draw, x, y, keys = 0):
458
+ """not implemented???"""
459
+ pass
460
+
461
+ def OnBeginDragRight(self, x, y, keys = 0):
462
+ """not implemented???"""
463
+ pass
464
+
465
+ def OnEndDragRight(self, x, y, keys = 0):
466
+ """not implemented???"""
467
+ pass