wxPython-zombie 3.1.5.8__cp313-cp313-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 (1175) hide show
  1. wx/__init__.py +22 -0
  2. wx/__version__.py +9 -0
  3. wx/_adv.cp313-win_amd64.pyd +0 -0
  4. wx/_aui.cp313-win_amd64.pyd +0 -0
  5. wx/_core.cp313-win_amd64.pyd +0 -0
  6. wx/_dataview.cp313-win_amd64.pyd +0 -0
  7. wx/_glcanvas.cp313-win_amd64.pyd +0 -0
  8. wx/_grid.cp313-win_amd64.pyd +0 -0
  9. wx/_html.cp313-win_amd64.pyd +0 -0
  10. wx/_html2.cp313-win_amd64.pyd +0 -0
  11. wx/_media.cp313-win_amd64.pyd +0 -0
  12. wx/_msw.cp313-win_amd64.pyd +0 -0
  13. wx/_propgrid.cp313-win_amd64.pyd +0 -0
  14. wx/_ribbon.cp313-win_amd64.pyd +0 -0
  15. wx/_richtext.cp313-win_amd64.pyd +0 -0
  16. wx/_stc.cp313-win_amd64.pyd +0 -0
  17. wx/_xml.cp313-win_amd64.pyd +0 -0
  18. wx/_xrc.cp313-win_amd64.pyd +0 -0
  19. wx/adv.py +124 -0
  20. wx/adv.pyi +5182 -0
  21. wx/aui.py +77 -0
  22. wx/aui.pyi +3655 -0
  23. wx/core.py +3540 -0
  24. wx/core.pyi +50592 -0
  25. wx/dataview.py +173 -0
  26. wx/dataview.pyi +3491 -0
  27. wx/demo/AUI_DockingWindowMgr.py +1154 -0
  28. wx/demo/AUI_MDI.py +117 -0
  29. wx/demo/AUI_Notebook.py +58 -0
  30. wx/demo/About.py +75 -0
  31. wx/demo/AboutBox.py +75 -0
  32. wx/demo/ActiveXWrapper_Acrobat.py +132 -0
  33. wx/demo/ActiveXWrapper_IE.py +187 -0
  34. wx/demo/ActiveX_FlashWindow.py +107 -0
  35. wx/demo/ActiveX_IEHtmlWindow.py +242 -0
  36. wx/demo/ActiveX_PDFWindow.py +204 -0
  37. wx/demo/ActivityIndicator.py +80 -0
  38. wx/demo/AddPrivateFont.py +116 -0
  39. wx/demo/AdjustChannels.py +178 -0
  40. wx/demo/AlphaDrawing.py +77 -0
  41. wx/demo/AnalogClock.py +144 -0
  42. wx/demo/AnimationCtrl.py +104 -0
  43. wx/demo/ArtProvider.py +893 -0
  44. wx/demo/BannerWindow.py +1 -0
  45. wx/demo/BitmapButton.py +87 -0
  46. wx/demo/BitmapComboBox.py +63 -0
  47. wx/demo/BitmapFromBuffer.py +140 -0
  48. wx/demo/Button.py +77 -0
  49. wx/demo/Cairo.py +197 -0
  50. wx/demo/Cairo_Snippets.py +135 -0
  51. wx/demo/Calendar.py +660 -0
  52. wx/demo/CalendarCtrl.py +122 -0
  53. wx/demo/CheckBox.py +74 -0
  54. wx/demo/CheckListBox.py +79 -0
  55. wx/demo/CheckListCtrl.py +99 -0
  56. wx/demo/Choice.py +55 -0
  57. wx/demo/Choicebook.py +80 -0
  58. wx/demo/CollapsibleHeaderCtrl.py +85 -0
  59. wx/demo/CollapsiblePane.py +126 -0
  60. wx/demo/ColorPanel.py +19 -0
  61. wx/demo/ColourDB.py +203 -0
  62. wx/demo/ColourDialog.py +76 -0
  63. wx/demo/ColourSelect.py +119 -0
  64. wx/demo/ComboBox.py +111 -0
  65. wx/demo/ComboCtrl.py +153 -0
  66. wx/demo/ComboTreeBox.py +71 -0
  67. wx/demo/CommandLinkButton.py +50 -0
  68. wx/demo/ContextHelp.py +112 -0
  69. wx/demo/Cursor.py +336 -0
  70. wx/demo/CustomDragAndDrop.py +353 -0
  71. wx/demo/DVC_CustomRenderer.py +204 -0
  72. wx/demo/DVC_DataViewModel.py +365 -0
  73. wx/demo/DVC_IndexListModel.py +257 -0
  74. wx/demo/DVC_ListCtrl.py +69 -0
  75. wx/demo/DVC_TreeCtrl.py +76 -0
  76. wx/demo/DatePickerCtrl.py +68 -0
  77. wx/demo/DelayedResult.py +239 -0
  78. wx/demo/Dialog.py +169 -0
  79. wx/demo/DialogUnits.py +128 -0
  80. wx/demo/DirDialog.py +58 -0
  81. wx/demo/DragAndDrop.py +265 -0
  82. wx/demo/DragImage.py +316 -0
  83. wx/demo/DragScroller.py +59 -0
  84. wx/demo/DrawXXXList.py +436 -0
  85. wx/demo/DynamicSashWindow.py +177 -0
  86. wx/demo/EditableListBox.py +101 -0
  87. wx/demo/Editor.py +70 -0
  88. wx/demo/EventManager.py +291 -0
  89. wx/demo/ExpandoTextCtrl.py +164 -0
  90. wx/demo/FancyText.py +83 -0
  91. wx/demo/FileBrowseButton.py +100 -0
  92. wx/demo/FileCtrl.py +97 -0
  93. wx/demo/FileDialog.py +144 -0
  94. wx/demo/FileHistory.py +140 -0
  95. wx/demo/FindReplaceDialog.py +123 -0
  96. wx/demo/FloatCanvas.py +1959 -0
  97. wx/demo/FontDialog.py +142 -0
  98. wx/demo/FontEnumerator.py +82 -0
  99. wx/demo/Frame.py +85 -0
  100. wx/demo/GLCanvas.py +371 -0
  101. wx/demo/Gauge.py +66 -0
  102. wx/demo/GenericButtons.py +185 -0
  103. wx/demo/GenericCheckBox.py +65 -0
  104. wx/demo/GenericDirCtrl.py +74 -0
  105. wx/demo/GetMouseState.py +159 -0
  106. wx/demo/GraphicsContext.py +236 -0
  107. wx/demo/GraphicsGradient.py +281 -0
  108. wx/demo/Grid.py +95 -0
  109. wx/demo/GridBagSizer.py +170 -0
  110. wx/demo/GridCustEditor.py +247 -0
  111. wx/demo/GridCustTable.py +170 -0
  112. wx/demo/GridDragAndDrop.py +102 -0
  113. wx/demo/GridDragable.py +206 -0
  114. wx/demo/GridEnterHandler.py +66 -0
  115. wx/demo/GridHugeTable.py +89 -0
  116. wx/demo/GridLabelRenderer.py +114 -0
  117. wx/demo/GridSimple.py +270 -0
  118. wx/demo/GridStdEdRend.py +186 -0
  119. wx/demo/Grid_MegaExample.py +490 -0
  120. wx/demo/HTML2_WebView.py +183 -0
  121. wx/demo/HtmlWindow.py +232 -0
  122. wx/demo/I18N.py +237 -0
  123. wx/demo/Image.py +338 -0
  124. wx/demo/ImageAlpha.py +87 -0
  125. wx/demo/ImageBrowser.py +70 -0
  126. wx/demo/ImageFromStream.py +49 -0
  127. wx/demo/Img2PyArtProvider.py +99 -0
  128. wx/demo/InfoBar.py +127 -0
  129. wx/demo/IntCtrl.py +343 -0
  130. wx/demo/ItemsPicker.py +108 -0
  131. wx/demo/Joystick.py +1083 -0
  132. wx/demo/KeyEvents.py +428 -0
  133. wx/demo/LEDNumberCtrl.py +121 -0
  134. wx/demo/LayoutAnchors.py +258 -0
  135. wx/demo/LayoutConstraints.py +149 -0
  136. wx/demo/Layoutf.py +69 -0
  137. wx/demo/ListBox.py +164 -0
  138. wx/demo/ListCtrl.py +538 -0
  139. wx/demo/ListCtrl_edit.py +155 -0
  140. wx/demo/ListCtrl_virtual.py +145 -0
  141. wx/demo/Listbook.py +104 -0
  142. wx/demo/MDIDemo.py +86 -0
  143. wx/demo/MDISashDemo.py +152 -0
  144. wx/demo/MDIWindows.py +66 -0
  145. wx/demo/Main.py +2768 -0
  146. wx/demo/Mask.py +137 -0
  147. wx/demo/MaskedEditControls.py +648 -0
  148. wx/demo/MaskedNumCtrl.py +359 -0
  149. wx/demo/MediaCtrl.py +190 -0
  150. wx/demo/Menu.py +322 -0
  151. wx/demo/MessageDialog.py +54 -0
  152. wx/demo/MimeTypesManager.py +354 -0
  153. wx/demo/MiniFrame.py +67 -0
  154. wx/demo/MouseGestures.py +198 -0
  155. wx/demo/MultiChoiceDialog.py +59 -0
  156. wx/demo/MultiSash.py +95 -0
  157. wx/demo/MultiSplitterWindow.py +168 -0
  158. wx/demo/MultipleChoiceDialog.py +101 -0
  159. wx/demo/Notebook.py +134 -0
  160. wx/demo/NotificationMessage.py +61 -0
  161. wx/demo/OGL.py +433 -0
  162. wx/demo/Overlay.py +209 -0
  163. wx/demo/OwnerDrawnComboBox.py +152 -0
  164. wx/demo/PDFViewer.py +109 -0
  165. wx/demo/PageSetupDialog.py +70 -0
  166. wx/demo/PenAndBrushStyles.py +208 -0
  167. wx/demo/Pickers.py +120 -0
  168. wx/demo/PlateButton.py +430 -0
  169. wx/demo/PopupControl.py +99 -0
  170. wx/demo/PopupMenu.py +156 -0
  171. wx/demo/PopupWindow.py +227 -0
  172. wx/demo/PrintDialog.py +60 -0
  173. wx/demo/PrintFramework.py +227 -0
  174. wx/demo/Process.py +168 -0
  175. wx/demo/ProgressDialog.py +87 -0
  176. wx/demo/PropertyGrid.py +1045 -0
  177. wx/demo/PropertySheetDialog.py +231 -0
  178. wx/demo/PseudoDC.py +350 -0
  179. wx/demo/PyColourChooser.py +60 -0
  180. wx/demo/PyCrust.py +21 -0
  181. wx/demo/PyPlot.py +83 -0
  182. wx/demo/PyShell.py +22 -0
  183. wx/demo/PythonEvents.py +109 -0
  184. wx/demo/README.txt +7 -0
  185. wx/demo/RadioBox.py +67 -0
  186. wx/demo/RadioButton.py +127 -0
  187. wx/demo/RawBitmapAccess.py +208 -0
  188. wx/demo/RearrangeDialog.py +160 -0
  189. wx/demo/RendererNative.py +170 -0
  190. wx/demo/ResizeWidget.py +76 -0
  191. wx/demo/RichMessageDialog.py +85 -0
  192. wx/demo/RichTextCtrl.py +732 -0
  193. wx/demo/RichToolTip.py +145 -0
  194. wx/demo/SVGImage_Bitmap.py +130 -0
  195. wx/demo/SVGImage_Render.py +138 -0
  196. wx/demo/SashWindow.py +151 -0
  197. wx/demo/ScrolledMessageDialog.py +52 -0
  198. wx/demo/ScrolledPanel.py +124 -0
  199. wx/demo/ScrolledWindow.py +260 -0
  200. wx/demo/SearchCtrl.py +115 -0
  201. wx/demo/ShapedWindow.py +145 -0
  202. wx/demo/Simplebook.py +202 -0
  203. wx/demo/SingleChoiceDialog.py +56 -0
  204. wx/demo/SizedControls.py +433 -0
  205. wx/demo/Sizers.py +609 -0
  206. wx/demo/Slider.py +52 -0
  207. wx/demo/Sound.py +95 -0
  208. wx/demo/SpinButton.py +63 -0
  209. wx/demo/SpinCtrl.py +56 -0
  210. wx/demo/SpinCtrlDouble.py +42 -0
  211. wx/demo/SplitTree.py +146 -0
  212. wx/demo/SplitterWindow.py +62 -0
  213. wx/demo/StandardPaths.py +113 -0
  214. wx/demo/StaticBitmap.py +55 -0
  215. wx/demo/StaticBox.py +62 -0
  216. wx/demo/StaticText.py +69 -0
  217. wx/demo/StatusBar.py +144 -0
  218. wx/demo/StockButtons.py +113 -0
  219. wx/demo/StyledTextCtrl_1.py +303 -0
  220. wx/demo/StyledTextCtrl_2.py +410 -0
  221. wx/demo/SystemSettings.py +333 -0
  222. wx/demo/TablePrint.py +215 -0
  223. wx/demo/TestTable.txt +38 -0
  224. wx/demo/TextCtrl.py +187 -0
  225. wx/demo/TextEntryDialog.py +57 -0
  226. wx/demo/Threads.py +258 -0
  227. wx/demo/Throbber.py +250 -0
  228. wx/demo/Ticker.py +147 -0
  229. wx/demo/TimeCtrl.py +240 -0
  230. wx/demo/TimePickerCtrl.py +60 -0
  231. wx/demo/Timer.py +275 -0
  232. wx/demo/ToggleButton.py +54 -0
  233. wx/demo/ToolBar.py +249 -0
  234. wx/demo/ToolTip.py +71 -0
  235. wx/demo/Toolbook.py +111 -0
  236. wx/demo/TreeCtrl.py +199 -0
  237. wx/demo/TreeListCtrl.py +121 -0
  238. wx/demo/TreeMixin.py +269 -0
  239. wx/demo/Treebook.py +117 -0
  240. wx/demo/UIActionSimulator.py +151 -0
  241. wx/demo/URLDragAndDrop.py +130 -0
  242. wx/demo/Unicode.py +146 -0
  243. wx/demo/VListBox.py +176 -0
  244. wx/demo/Validator.py +237 -0
  245. wx/demo/Wizard.py +248 -0
  246. wx/demo/WrapSizer.py +115 -0
  247. wx/demo/XmlResource.py +80 -0
  248. wx/demo/XmlResourceHandler.py +199 -0
  249. wx/demo/XmlResourceSubclass.py +119 -0
  250. wx/demo/__init__.py +9 -0
  251. wx/demo/agw/AGWInfoBar.py +175 -0
  252. wx/demo/agw/AUI.py +3058 -0
  253. wx/demo/agw/AdvancedSplash.py +59 -0
  254. wx/demo/agw/AquaButton.py +146 -0
  255. wx/demo/agw/BalloonTip.py +378 -0
  256. wx/demo/agw/ButtonPanel.py +890 -0
  257. wx/demo/agw/CubeColourDialog.py +83 -0
  258. wx/demo/agw/CustomTreeCtrl.py +2167 -0
  259. wx/demo/agw/Example1 +67 -0
  260. wx/demo/agw/Example2 +49 -0
  261. wx/demo/agw/FlatMenu.py +876 -0
  262. wx/demo/agw/FlatNotebook.py +994 -0
  263. wx/demo/agw/FloatSpin.py +475 -0
  264. wx/demo/agw/FoldPanelBar.py +953 -0
  265. wx/demo/agw/FourWaySplitter.py +300 -0
  266. wx/demo/agw/GenericMessageDialog.py +207 -0
  267. wx/demo/agw/GradientButton.py +156 -0
  268. wx/demo/agw/HyperLinkCtrl.py +144 -0
  269. wx/demo/agw/HyperTreeList.py +2660 -0
  270. wx/demo/agw/KnobCtrl.py +186 -0
  271. wx/demo/agw/LabelBook.py +567 -0
  272. wx/demo/agw/MacLargeDemo.py +360 -0
  273. wx/demo/agw/MultiDirDialog.py +117 -0
  274. wx/demo/agw/PeakMeter.py +194 -0
  275. wx/demo/agw/PersistentControls.py +589 -0
  276. wx/demo/agw/PieCtrl.py +206 -0
  277. wx/demo/agw/PyBusyInfo.py +64 -0
  278. wx/demo/agw/PyCollapsiblePane.py +308 -0
  279. wx/demo/agw/PyGauge.py +162 -0
  280. wx/demo/agw/PyProgress.py +155 -0
  281. wx/demo/agw/RibbonBar.py +925 -0
  282. wx/demo/agw/RulerCtrl.py +454 -0
  283. wx/demo/agw/ScrolledThumbnail.py +128 -0
  284. wx/demo/agw/ShapedButton.py +603 -0
  285. wx/demo/agw/ShortcutEditor.py +397 -0
  286. wx/demo/agw/SpeedMeter.py +668 -0
  287. wx/demo/agw/SuperToolTip.py +396 -0
  288. wx/demo/agw/ThumbDemoConfig.py +603 -0
  289. wx/demo/agw/ThumbnailCtrl.py +149 -0
  290. wx/demo/agw/ToasterBox.py +410 -0
  291. wx/demo/agw/UltimateListCtrl.py +80 -0
  292. wx/demo/agw/UltimateListIconDemo.py +908 -0
  293. wx/demo/agw/UltimateListListDemo.py +124 -0
  294. wx/demo/agw/UltimateReportDemo.py +1146 -0
  295. wx/demo/agw/UltimateVirtualDemo.py +207 -0
  296. wx/demo/agw/Windows7Explorer_Contents.py +368 -0
  297. wx/demo/agw/XLSGrid.py +238 -0
  298. wx/demo/agw/ZoomBar.py +230 -0
  299. wx/demo/agw/__demo__.py +183 -0
  300. wx/demo/agw/bitmaps/Explorer96.png +0 -0
  301. wx/demo/agw/bitmaps/Explorer96Flip40.png +0 -0
  302. wx/demo/agw/bitmaps/Folder96.png +0 -0
  303. wx/demo/agw/bitmaps/Folder96Flip40.png +0 -0
  304. wx/demo/agw/bitmaps/Monitor96.png +0 -0
  305. wx/demo/agw/bitmaps/Monitor96Flip40.png +0 -0
  306. wx/demo/agw/bitmaps/Music96.png +0 -0
  307. wx/demo/agw/bitmaps/Music96Flip40.png +0 -0
  308. wx/demo/agw/bitmaps/Photo96.png +0 -0
  309. wx/demo/agw/bitmaps/Photo96Flip40.png +0 -0
  310. wx/demo/agw/bitmaps/Search96.png +0 -0
  311. wx/demo/agw/bitmaps/Search96Flip40.png +0 -0
  312. wx/demo/agw/bitmaps/Wizard96.png +0 -0
  313. wx/demo/agw/bitmaps/Wizard96Flip40.png +0 -0
  314. wx/demo/agw/bitmaps/advancedsplash.png +0 -0
  315. wx/demo/agw/bitmaps/aquabutton.png +0 -0
  316. wx/demo/agw/bitmaps/aquachecked.ico +0 -0
  317. wx/demo/agw/bitmaps/aquaflagged.ico +0 -0
  318. wx/demo/agw/bitmaps/aquanotchecked.ico +0 -0
  319. wx/demo/agw/bitmaps/aquanotflagged.ico +0 -0
  320. wx/demo/agw/bitmaps/canada.gif +0 -0
  321. wx/demo/agw/bitmaps/checked.ico +0 -0
  322. wx/demo/agw/bitmaps/columns.png +0 -0
  323. wx/demo/agw/bitmaps/contexthelp-16.png +0 -0
  324. wx/demo/agw/bitmaps/contexthelp.png +0 -0
  325. wx/demo/agw/bitmaps/copy.png +0 -0
  326. wx/demo/agw/bitmaps/cut.png +0 -0
  327. wx/demo/agw/bitmaps/editcopy.png +0 -0
  328. wx/demo/agw/bitmaps/editcut.png +0 -0
  329. wx/demo/agw/bitmaps/editpaste.png +0 -0
  330. wx/demo/agw/bitmaps/empty_icon.png +0 -0
  331. wx/demo/agw/bitmaps/exit-16.png +0 -0
  332. wx/demo/agw/bitmaps/exit.ico +0 -0
  333. wx/demo/agw/bitmaps/ffwd.png +0 -0
  334. wx/demo/agw/bitmaps/ffwddisabled.png +0 -0
  335. wx/demo/agw/bitmaps/field-16.png +0 -0
  336. wx/demo/agw/bitmaps/filenew.png +0 -0
  337. wx/demo/agw/bitmaps/fileopen.png +0 -0
  338. wx/demo/agw/bitmaps/filesave.png +0 -0
  339. wx/demo/agw/bitmaps/flagged.ico +0 -0
  340. wx/demo/agw/bitmaps/folder.png +0 -0
  341. wx/demo/agw/bitmaps/folder_new.png +0 -0
  342. wx/demo/agw/bitmaps/ghost.png +0 -0
  343. wx/demo/agw/bitmaps/gradientbutton.png +0 -0
  344. wx/demo/agw/bitmaps/help-16.png +0 -0
  345. wx/demo/agw/bitmaps/help.ico +0 -0
  346. wx/demo/agw/bitmaps/italy.gif +0 -0
  347. wx/demo/agw/bitmaps/lbadd.png +0 -0
  348. wx/demo/agw/bitmaps/lbcharge.png +0 -0
  349. wx/demo/agw/bitmaps/lbdecrypted.png +0 -0
  350. wx/demo/agw/bitmaps/lbnews.png +0 -0
  351. wx/demo/agw/bitmaps/lbroll.png +0 -0
  352. wx/demo/agw/bitmaps/minus1.ico +0 -0
  353. wx/demo/agw/bitmaps/minus2.ico +0 -0
  354. wx/demo/agw/bitmaps/minus3.ico +0 -0
  355. wx/demo/agw/bitmaps/minus4.ico +0 -0
  356. wx/demo/agw/bitmaps/minus5.ico +0 -0
  357. wx/demo/agw/bitmaps/month-16.png +0 -0
  358. wx/demo/agw/bitmaps/new_file.png +0 -0
  359. wx/demo/agw/bitmaps/new_folder.png +0 -0
  360. wx/demo/agw/bitmaps/notchecked.ico +0 -0
  361. wx/demo/agw/bitmaps/notflagged.ico +0 -0
  362. wx/demo/agw/bitmaps/ok-16.png +0 -0
  363. wx/demo/agw/bitmaps/open_folder.png +0 -0
  364. wx/demo/agw/bitmaps/paste.png +0 -0
  365. wx/demo/agw/bitmaps/pause.png +0 -0
  366. wx/demo/agw/bitmaps/pausedisabled.png +0 -0
  367. wx/demo/agw/bitmaps/play.png +0 -0
  368. wx/demo/agw/bitmaps/playdisabled.png +0 -0
  369. wx/demo/agw/bitmaps/plus1.ico +0 -0
  370. wx/demo/agw/bitmaps/plus2.ico +0 -0
  371. wx/demo/agw/bitmaps/plus3.ico +0 -0
  372. wx/demo/agw/bitmaps/plus4.ico +0 -0
  373. wx/demo/agw/bitmaps/plus5.ico +0 -0
  374. wx/demo/agw/bitmaps/record.png +0 -0
  375. wx/demo/agw/bitmaps/recorddisabled.png +0 -0
  376. wx/demo/agw/bitmaps/recording.gif +0 -0
  377. wx/demo/agw/bitmaps/rewind.png +0 -0
  378. wx/demo/agw/bitmaps/rewinddisabled.png +0 -0
  379. wx/demo/agw/bitmaps/round.png +0 -0
  380. wx/demo/agw/bitmaps/save.png +0 -0
  381. wx/demo/agw/bitmaps/separator.gif +0 -0
  382. wx/demo/agw/bitmaps/separatorflip.png +0 -0
  383. wx/demo/agw/bitmaps/smfuel.ico +0 -0
  384. wx/demo/agw/bitmaps/smpi.ico +0 -0
  385. wx/demo/agw/bitmaps/smtemp.ico +0 -0
  386. wx/demo/agw/bitmaps/stop.png +0 -0
  387. wx/demo/agw/bitmaps/stopdisabled.png +0 -0
  388. wx/demo/agw/bitmaps/sttbutton.png +0 -0
  389. wx/demo/agw/bitmaps/sttfont.png +0 -0
  390. wx/demo/agw/bitmaps/sttheader.png +0 -0
  391. wx/demo/agw/bitmaps/stthelp.png +0 -0
  392. wx/demo/agw/bitmaps/view1.png +0 -0
  393. wx/demo/agw/bitmaps/view2.png +0 -0
  394. wx/demo/agw/bitmaps/view_choose.png +0 -0
  395. wx/demo/agw/bitmaps/view_detailed.png +0 -0
  396. wx/demo/agw/bitmaps/view_icon.png +0 -0
  397. wx/demo/agw/bitmaps/view_multicolumn.png +0 -0
  398. wx/demo/agw/bitmaps/viewmag-16.png +0 -0
  399. wx/demo/agw/bitmaps/viewmag-m-16.png +0 -0
  400. wx/demo/agw/bitmaps/viewmag-p-16.png +0 -0
  401. wx/demo/agw/bitmaps/viewmagfit-16.png +0 -0
  402. wx/demo/agw/data/Example_1.xls +0 -0
  403. wx/demo/agw/images.py +6714 -0
  404. wx/demo/bitmaps/AG00028_.gif +0 -0
  405. wx/demo/bitmaps/AG00039_.gif +0 -0
  406. wx/demo/bitmaps/AG00178_.gif +0 -0
  407. wx/demo/bitmaps/AG00183_.gif +0 -0
  408. wx/demo/bitmaps/AG00185_.gif +0 -0
  409. wx/demo/bitmaps/BD13656_.gif +0 -0
  410. wx/demo/bitmaps/advancedsplash.png +0 -0
  411. wx/demo/bitmaps/aquabutton.png +0 -0
  412. wx/demo/bitmaps/aquachecked.ico +0 -0
  413. wx/demo/bitmaps/aquaflagged.ico +0 -0
  414. wx/demo/bitmaps/aquanotchecked.ico +0 -0
  415. wx/demo/bitmaps/aquanotflagged.ico +0 -0
  416. wx/demo/bitmaps/canada.gif +0 -0
  417. wx/demo/bitmaps/checked.ico +0 -0
  418. wx/demo/bitmaps/columns.png +0 -0
  419. wx/demo/bitmaps/contexthelp-16.png +0 -0
  420. wx/demo/bitmaps/contexthelp.png +0 -0
  421. wx/demo/bitmaps/copy.png +0 -0
  422. wx/demo/bitmaps/cropshot24x20.png +0 -0
  423. wx/demo/bitmaps/cut.png +0 -0
  424. wx/demo/bitmaps/editcopy.png +0 -0
  425. wx/demo/bitmaps/editcut.png +0 -0
  426. wx/demo/bitmaps/editpaste.png +0 -0
  427. wx/demo/bitmaps/exit-16.png +0 -0
  428. wx/demo/bitmaps/exit.ico +0 -0
  429. wx/demo/bitmaps/ffwd.png +0 -0
  430. wx/demo/bitmaps/ffwddisabled.png +0 -0
  431. wx/demo/bitmaps/field-16.png +0 -0
  432. wx/demo/bitmaps/filenew.png +0 -0
  433. wx/demo/bitmaps/fileopen.png +0 -0
  434. wx/demo/bitmaps/filesave.png +0 -0
  435. wx/demo/bitmaps/flagged.ico +0 -0
  436. wx/demo/bitmaps/folder_new.png +0 -0
  437. wx/demo/bitmaps/ghost.png +0 -0
  438. wx/demo/bitmaps/gradientbutton.png +0 -0
  439. wx/demo/bitmaps/help-16.png +0 -0
  440. wx/demo/bitmaps/help.ico +0 -0
  441. wx/demo/bitmaps/honeycomb300.png +0 -0
  442. wx/demo/bitmaps/image.bmp +0 -0
  443. wx/demo/bitmaps/image.gif +0 -0
  444. wx/demo/bitmaps/image.ico +0 -0
  445. wx/demo/bitmaps/image.jpg +0 -0
  446. wx/demo/bitmaps/image.png +0 -0
  447. wx/demo/bitmaps/image.tif +0 -0
  448. wx/demo/bitmaps/italy.gif +0 -0
  449. wx/demo/bitmaps/lbadd.png +0 -0
  450. wx/demo/bitmaps/lbcharge.png +0 -0
  451. wx/demo/bitmaps/lbdecrypted.png +0 -0
  452. wx/demo/bitmaps/lbnews.png +0 -0
  453. wx/demo/bitmaps/lbroll.png +0 -0
  454. wx/demo/bitmaps/minus1.ico +0 -0
  455. wx/demo/bitmaps/minus2.ico +0 -0
  456. wx/demo/bitmaps/minus3.ico +0 -0
  457. wx/demo/bitmaps/minus4.ico +0 -0
  458. wx/demo/bitmaps/minus5.ico +0 -0
  459. wx/demo/bitmaps/month-16.png +0 -0
  460. wx/demo/bitmaps/new_file.png +0 -0
  461. wx/demo/bitmaps/new_folder.png +0 -0
  462. wx/demo/bitmaps/notchecked.ico +0 -0
  463. wx/demo/bitmaps/notflagged.ico +0 -0
  464. wx/demo/bitmaps/ok-16.png +0 -0
  465. wx/demo/bitmaps/open_folder.png +0 -0
  466. wx/demo/bitmaps/paste.png +0 -0
  467. wx/demo/bitmaps/pause.png +0 -0
  468. wx/demo/bitmaps/pausedisabled.png +0 -0
  469. wx/demo/bitmaps/phoenix_title.png +0 -0
  470. wx/demo/bitmaps/phoenix_top.png +0 -0
  471. wx/demo/bitmaps/play.png +0 -0
  472. wx/demo/bitmaps/playdisabled.png +0 -0
  473. wx/demo/bitmaps/plus1.ico +0 -0
  474. wx/demo/bitmaps/plus2.ico +0 -0
  475. wx/demo/bitmaps/plus3.ico +0 -0
  476. wx/demo/bitmaps/plus4.ico +0 -0
  477. wx/demo/bitmaps/plus5.ico +0 -0
  478. wx/demo/bitmaps/record.png +0 -0
  479. wx/demo/bitmaps/recorddisabled.png +0 -0
  480. wx/demo/bitmaps/rewind.png +0 -0
  481. wx/demo/bitmaps/rewinddisabled.png +0 -0
  482. wx/demo/bitmaps/round.png +0 -0
  483. wx/demo/bitmaps/save.png +0 -0
  484. wx/demo/bitmaps/smfuel.ico +0 -0
  485. wx/demo/bitmaps/smpi.ico +0 -0
  486. wx/demo/bitmaps/smtemp.ico +0 -0
  487. wx/demo/bitmaps/snakey_render.png +0 -0
  488. wx/demo/bitmaps/splash.png +0 -0
  489. wx/demo/bitmaps/stop.png +0 -0
  490. wx/demo/bitmaps/stopdisabled.png +0 -0
  491. wx/demo/bitmaps/sttbutton.png +0 -0
  492. wx/demo/bitmaps/sttfont.png +0 -0
  493. wx/demo/bitmaps/sttheader.png +0 -0
  494. wx/demo/bitmaps/stthelp.png +0 -0
  495. wx/demo/bitmaps/toucan.png +0 -0
  496. wx/demo/bitmaps/view1.png +0 -0
  497. wx/demo/bitmaps/view2.png +0 -0
  498. wx/demo/bitmaps/view_choose.png +0 -0
  499. wx/demo/bitmaps/view_detailed.png +0 -0
  500. wx/demo/bitmaps/view_icon.png +0 -0
  501. wx/demo/bitmaps/view_multicolumn.png +0 -0
  502. wx/demo/bitmaps/viewmag-16.png +0 -0
  503. wx/demo/bitmaps/viewmag-m-16.png +0 -0
  504. wx/demo/bitmaps/viewmag-p-16.png +0 -0
  505. wx/demo/bitmaps/viewmagfit-16.png +0 -0
  506. wx/demo/bmp_source/001.png +0 -0
  507. wx/demo/bmp_source/002.png +0 -0
  508. wx/demo/bmp_source/003.png +0 -0
  509. wx/demo/bmp_source/004.png +0 -0
  510. wx/demo/bmp_source/005.png +0 -0
  511. wx/demo/bmp_source/006.png +0 -0
  512. wx/demo/bmp_source/007.png +0 -0
  513. wx/demo/bmp_source/008.png +0 -0
  514. wx/demo/bmp_source/009.png +0 -0
  515. wx/demo/bmp_source/010.png +0 -0
  516. wx/demo/bmp_source/011.png +0 -0
  517. wx/demo/bmp_source/012.png +0 -0
  518. wx/demo/bmp_source/013.png +0 -0
  519. wx/demo/bmp_source/014.png +0 -0
  520. wx/demo/bmp_source/015.png +0 -0
  521. wx/demo/bmp_source/016.png +0 -0
  522. wx/demo/bmp_source/017.png +0 -0
  523. wx/demo/bmp_source/018.png +0 -0
  524. wx/demo/bmp_source/019.png +0 -0
  525. wx/demo/bmp_source/020.png +0 -0
  526. wx/demo/bmp_source/021.png +0 -0
  527. wx/demo/bmp_source/022.png +0 -0
  528. wx/demo/bmp_source/023.png +0 -0
  529. wx/demo/bmp_source/024.png +0 -0
  530. wx/demo/bmp_source/025.png +0 -0
  531. wx/demo/bmp_source/026.png +0 -0
  532. wx/demo/bmp_source/027.png +0 -0
  533. wx/demo/bmp_source/028.png +0 -0
  534. wx/demo/bmp_source/029.png +0 -0
  535. wx/demo/bmp_source/030.png +0 -0
  536. wx/demo/bmp_source/DbDec.bmp +0 -0
  537. wx/demo/bmp_source/DbInc.bmp +0 -0
  538. wx/demo/bmp_source/Dec.bmp +0 -0
  539. wx/demo/bmp_source/FRM_0.png +0 -0
  540. wx/demo/bmp_source/FRM_1.png +0 -0
  541. wx/demo/bmp_source/FRM_2.png +0 -0
  542. wx/demo/bmp_source/FRM_3.png +0 -0
  543. wx/demo/bmp_source/FRM_4.png +0 -0
  544. wx/demo/bmp_source/FRM_5.png +0 -0
  545. wx/demo/bmp_source/FRM_6.png +0 -0
  546. wx/demo/bmp_source/FRM_7.png +0 -0
  547. wx/demo/bmp_source/FRM_8.png +0 -0
  548. wx/demo/bmp_source/GridBG.gif +0 -0
  549. wx/demo/bmp_source/Inc.bmp +0 -0
  550. wx/demo/bmp_source/LB01.png +0 -0
  551. wx/demo/bmp_source/LB02.png +0 -0
  552. wx/demo/bmp_source/LB03.png +0 -0
  553. wx/demo/bmp_source/LB04.png +0 -0
  554. wx/demo/bmp_source/LB05.png +0 -0
  555. wx/demo/bmp_source/LB06.png +0 -0
  556. wx/demo/bmp_source/LB07.png +0 -0
  557. wx/demo/bmp_source/LB08.png +0 -0
  558. wx/demo/bmp_source/LB09.png +0 -0
  559. wx/demo/bmp_source/LB10.png +0 -0
  560. wx/demo/bmp_source/LB11.png +0 -0
  561. wx/demo/bmp_source/LB12.png +0 -0
  562. wx/demo/bmp_source/Pt.bmp +0 -0
  563. wx/demo/bmp_source/Vippi.png +0 -0
  564. wx/demo/bmp_source/backgrnd.png +0 -0
  565. wx/demo/bmp_source/book.png +0 -0
  566. wx/demo/bmp_source/book_blue.png +0 -0
  567. wx/demo/bmp_source/book_green.png +0 -0
  568. wx/demo/bmp_source/book_red.png +0 -0
  569. wx/demo/bmp_source/bp_btn1.png +0 -0
  570. wx/demo/bmp_source/bp_btn2.png +0 -0
  571. wx/demo/bmp_source/bp_btn3.png +0 -0
  572. wx/demo/bmp_source/bp_btn4.png +0 -0
  573. wx/demo/bmp_source/bulb1.bmp +0 -0
  574. wx/demo/bmp_source/bulb2.bmp +0 -0
  575. wx/demo/bmp_source/carrot.png +0 -0
  576. wx/demo/bmp_source/clipboard.png +0 -0
  577. wx/demo/bmp_source/code.png +0 -0
  578. wx/demo/bmp_source/core.png +0 -0
  579. wx/demo/bmp_source/custom.png +0 -0
  580. wx/demo/bmp_source/customcontrol.png +0 -0
  581. wx/demo/bmp_source/deletedocs.png +0 -0
  582. wx/demo/bmp_source/deleteperspective.png +0 -0
  583. wx/demo/bmp_source/demo.png +0 -0
  584. wx/demo/bmp_source/dialog.png +0 -0
  585. wx/demo/bmp_source/exit.png +0 -0
  586. wx/demo/bmp_source/expansion.png +0 -0
  587. wx/demo/bmp_source/find.png +0 -0
  588. wx/demo/bmp_source/findnext.png +0 -0
  589. wx/demo/bmp_source/floatcanvas.png +0 -0
  590. wx/demo/bmp_source/frame.png +0 -0
  591. wx/demo/bmp_source/images.png +0 -0
  592. wx/demo/bmp_source/inspect.png +0 -0
  593. wx/demo/bmp_source/layout.png +0 -0
  594. wx/demo/bmp_source/logo.png +0 -0
  595. wx/demo/bmp_source/miscellaneous.png +0 -0
  596. wx/demo/bmp_source/modifiedexists.png +0 -0
  597. wx/demo/bmp_source/mondrian.ico +0 -0
  598. wx/demo/bmp_source/morecontrols.png +0 -0
  599. wx/demo/bmp_source/moredialog.png +0 -0
  600. wx/demo/bmp_source/noicon.png +0 -0
  601. wx/demo/bmp_source/overview.png +0 -0
  602. wx/demo/bmp_source/pencil.png +0 -0
  603. wx/demo/bmp_source/pointy.png +0 -0
  604. wx/demo/bmp_source/process.png +0 -0
  605. wx/demo/bmp_source/pyshell.png +0 -0
  606. wx/demo/bmp_source/recent.png +0 -0
  607. wx/demo/bmp_source/rest.png +0 -0
  608. wx/demo/bmp_source/robin.jpg +0 -0
  609. wx/demo/bmp_source/rt_alignleft.xpm +24 -0
  610. wx/demo/bmp_source/rt_alignright.xpm +24 -0
  611. wx/demo/bmp_source/rt_bold.xpm +24 -0
  612. wx/demo/bmp_source/rt_centre.xpm +24 -0
  613. wx/demo/bmp_source/rt_colour.xpm +59 -0
  614. wx/demo/bmp_source/rt_copy.xpm +44 -0
  615. wx/demo/bmp_source/rt_cut.xpm +46 -0
  616. wx/demo/bmp_source/rt_font.xpm +25 -0
  617. wx/demo/bmp_source/rt_idea.xpm +47 -0
  618. wx/demo/bmp_source/rt_indentless.xpm +25 -0
  619. wx/demo/bmp_source/rt_indentmore.xpm +25 -0
  620. wx/demo/bmp_source/rt_italic.xpm +25 -0
  621. wx/demo/bmp_source/rt_open.xpm +57 -0
  622. wx/demo/bmp_source/rt_paste.xpm +46 -0
  623. wx/demo/bmp_source/rt_redo.xpm +58 -0
  624. wx/demo/bmp_source/rt_sample.xpm +44 -0
  625. wx/demo/bmp_source/rt_save.xpm +42 -0
  626. wx/demo/bmp_source/rt_smiley.xpm +42 -0
  627. wx/demo/bmp_source/rt_underline.xpm +25 -0
  628. wx/demo/bmp_source/rt_undo.xpm +58 -0
  629. wx/demo/bmp_source/rt_zebra.xpm +409 -0
  630. wx/demo/bmp_source/saveperspective.png +0 -0
  631. wx/demo/bmp_source/sm_down.bmp +0 -0
  632. wx/demo/bmp_source/sm_up.bmp +0 -0
  633. wx/demo/bmp_source/smiles2.bmp +0 -0
  634. wx/demo/bmp_source/test2.bmp +0 -0
  635. wx/demo/bmp_source/testmask.bmp +0 -0
  636. wx/demo/bmp_source/teststar.png +0 -0
  637. wx/demo/bmp_source/thekid.png +0 -0
  638. wx/demo/bmp_source/tog1.bmp +0 -0
  639. wx/demo/bmp_source/tog2.bmp +0 -0
  640. wx/demo/bmp_source/wiztest1.bmp +0 -0
  641. wx/demo/bmp_source/wiztest2.bmp +0 -0
  642. wx/demo/bmp_source/wxpdemo.ico +0 -0
  643. wx/demo/cursors/paperairplane_arrow_blue.cur +0 -0
  644. wx/demo/cursors/paperairplane_arrow_blue_fadeout80.cur +0 -0
  645. wx/demo/cursors/paperairplane_arrow_colorshift.ani +0 -0
  646. wx/demo/cursors/paperairplane_arrow_dark.cur +0 -0
  647. wx/demo/cursors/paperairplane_arrow_grey.cur +0 -0
  648. wx/demo/cursors/paperairplane_arrow_red.cur +0 -0
  649. wx/demo/cursors/paperairplane_arrow_white.cur +0 -0
  650. wx/demo/cursors/paperairplane_arrow_white24.png +0 -0
  651. wx/demo/data/0-tiger.svg +725 -0
  652. wx/demo/data/Asteroid_blaster.swf +0 -0
  653. wx/demo/data/SIL_OPEN_FONT_LICENSE.txt +97 -0
  654. wx/demo/data/SourceCodePro-Regular.ttf +0 -0
  655. wx/demo/data/accessories-calculator.svg +636 -0
  656. wx/demo/data/accessories-text-editor.svg +554 -0
  657. wx/demo/data/anykey.wav +0 -0
  658. wx/demo/data/applications-internet.svg +623 -0
  659. wx/demo/data/desktop-accessibility.svg +245 -0
  660. wx/demo/data/desktop-keyboard-shortcuts.svg +839 -0
  661. wx/demo/data/desktop-locale.svg +878 -0
  662. wx/demo/data/desktop-remote-desktop.svg +1479 -0
  663. wx/demo/data/desktop-theme.svg +882 -0
  664. wx/demo/data/desktop-wallpaper.svg +747 -0
  665. wx/demo/data/echo.py +25 -0
  666. wx/demo/data/imagemap.htm +20 -0
  667. wx/demo/data/imagemap.png +0 -0
  668. wx/demo/data/internet-group-chat.svg +312 -0
  669. wx/demo/data/internet-mail.svg +440 -0
  670. wx/demo/data/locale/af/LC_MESSAGES/wxpydemo.mo +0 -0
  671. wx/demo/data/locale/de/LC_MESSAGES/wxpydemo.mo +0 -0
  672. wx/demo/data/locale/es/LC_MESSAGES/wxpydemo.mo +0 -0
  673. wx/demo/data/locale/fr/LC_MESSAGES/wxpydemo.mo +0 -0
  674. wx/demo/data/locale/it/LC_MESSAGES/wxpydemo.mo +0 -0
  675. wx/demo/data/locale-src/af.po +23 -0
  676. wx/demo/data/locale-src/de.po +23 -0
  677. wx/demo/data/locale-src/es.po +22 -0
  678. wx/demo/data/locale-src/fr.po +22 -0
  679. wx/demo/data/locale-src/install +15 -0
  680. wx/demo/data/locale-src/it.po +23 -0
  681. wx/demo/data/locale-src/wxpydemo.po +21 -0
  682. wx/demo/data/office-calendar.svg +316 -0
  683. wx/demo/data/pic.png +0 -0
  684. wx/demo/data/pic2.bmp +0 -0
  685. wx/demo/data/plan.wav +0 -0
  686. wx/demo/data/proclamation.txt +115 -0
  687. wx/demo/data/resource.wdr +0 -0
  688. wx/demo/data/resource_wdr.xrc +146 -0
  689. wx/demo/data/romedalen.png +0 -0
  690. wx/demo/data/stc.h.html +3544 -0
  691. wx/demo/data/system-session.svg +510 -0
  692. wx/demo/data/system-users.svg +539 -0
  693. wx/demo/data/tables.htm +116 -0
  694. wx/demo/data/test-gradient-pen.svg +14 -0
  695. wx/demo/data/test-opacity.svg +7 -0
  696. wx/demo/data/test.htm +253 -0
  697. wx/demo/data/testmovie.mpg +0 -0
  698. wx/demo/data/testtable.txt +38 -0
  699. wx/demo/data/tips.txt +73 -0
  700. wx/demo/data/utilities-system-monitor.svg +435 -0
  701. wx/demo/data/utilities-terminal.svg +500 -0
  702. wx/demo/data/widgetTest.htm +70 -0
  703. wx/demo/data/world.dat +24055 -0
  704. wx/demo/demo.py +4 -0
  705. wx/demo/demo.pyw +4 -0
  706. wx/demo/demodata.py +310 -0
  707. wx/demo/encode_bitmaps.py +181 -0
  708. wx/demo/images.py +6812 -0
  709. wx/demo/infoframe.py +149 -0
  710. wx/demo/run.py +171 -0
  711. wx/demo/snippets/__init__.py +13 -0
  712. wx/demo/snippets/arc.py +21 -0
  713. wx/demo/snippets/arc_negative.py +21 -0
  714. wx/demo/snippets/clip.py +13 -0
  715. wx/demo/snippets/clip_image.py +13 -0
  716. wx/demo/snippets/curve_rectangle.py +53 -0
  717. wx/demo/snippets/curve_to.py +17 -0
  718. wx/demo/snippets/dash.py +18 -0
  719. wx/demo/snippets/ellipse.py +33 -0
  720. wx/demo/snippets/fill_and_stroke.py +12 -0
  721. wx/demo/snippets/fill_and_stroke2.py +18 -0
  722. wx/demo/snippets/fill_style.py +31 -0
  723. wx/demo/snippets/glyph_path.py +21 -0
  724. wx/demo/snippets/gradient.py +16 -0
  725. wx/demo/snippets/gradient_mask.py +12 -0
  726. wx/demo/snippets/group.py +16 -0
  727. wx/demo/snippets/image.py +14 -0
  728. wx/demo/snippets/imagepattern.py +23 -0
  729. wx/demo/snippets/path.py +7 -0
  730. wx/demo/snippets/set_line_cap.py +19 -0
  731. wx/demo/snippets/set_line_join.py +21 -0
  732. wx/demo/snippets/show_glyphs.py +15 -0
  733. wx/demo/snippets/text.py +22 -0
  734. wx/demo/snippets/text_align_center.py +26 -0
  735. wx/demo/snippets/text_extents.py +27 -0
  736. wx/demo/template.py +36 -0
  737. wx/demo/throbImages.py +1277 -0
  738. wx/demo/version.py +3 -0
  739. wx/demo/widgetTest.py +72 -0
  740. wx/demo/wxpdemo.ico +0 -0
  741. wx/glcanvas.py +10 -0
  742. wx/glcanvas.pyi +458 -0
  743. wx/grid.py +229 -0
  744. wx/grid.pyi +4959 -0
  745. wx/html.py +35 -0
  746. wx/html.pyi +2965 -0
  747. wx/html2.py +40 -0
  748. wx/html2.pyi +772 -0
  749. wx/lib/CDate.py +202 -0
  750. wx/lib/ClickableHtmlWindow.py +57 -0
  751. wx/lib/__init__.py +0 -0
  752. wx/lib/activex.py +178 -0
  753. wx/lib/activexwrapper.py +153 -0
  754. wx/lib/agw/__init__.py +128 -0
  755. wx/lib/agw/advancedsplash.py +564 -0
  756. wx/lib/agw/aquabutton.py +1127 -0
  757. wx/lib/agw/artmanager.py +2110 -0
  758. wx/lib/agw/aui/__init__.py +295 -0
  759. wx/lib/agw/aui/aui_constants.py +2628 -0
  760. wx/lib/agw/aui/aui_switcherdialog.py +1227 -0
  761. wx/lib/agw/aui/aui_utilities.py +672 -0
  762. wx/lib/agw/aui/auibar.py +4031 -0
  763. wx/lib/agw/aui/auibook.py +6289 -0
  764. wx/lib/agw/aui/dockart.py +1198 -0
  765. wx/lib/agw/aui/framemanager.py +10409 -0
  766. wx/lib/agw/aui/tabart.py +2771 -0
  767. wx/lib/agw/aui/tabmdi.py +679 -0
  768. wx/lib/agw/balloontip.py +1158 -0
  769. wx/lib/agw/buttonpanel.py +2823 -0
  770. wx/lib/agw/cubecolourdialog.py +3529 -0
  771. wx/lib/agw/customtreectrl.py +8963 -0
  772. wx/lib/agw/data/ShortcutEditor_1.png +0 -0
  773. wx/lib/agw/data/ShortcutEditor_1_thumb.png +0 -0
  774. wx/lib/agw/data/ShortcutEditor_2.png +0 -0
  775. wx/lib/agw/data/ShortcutEditor_2_thumb.png +0 -0
  776. wx/lib/agw/data/ShortcutEditor_3.png +0 -0
  777. wx/lib/agw/data/ShortcutEditor_3_thumb.png +0 -0
  778. wx/lib/agw/data/ShortcutEditor_4.png +0 -0
  779. wx/lib/agw/data/ShortcutEditor_4_thumb.png +0 -0
  780. wx/lib/agw/data/default_help_text.html +105 -0
  781. wx/lib/agw/flatmenu.py +7333 -0
  782. wx/lib/agw/flatnotebook.py +6672 -0
  783. wx/lib/agw/floatspin.py +1823 -0
  784. wx/lib/agw/fmcustomizedlg.py +540 -0
  785. wx/lib/agw/fmresources.py +407 -0
  786. wx/lib/agw/foldpanelbar.py +2282 -0
  787. wx/lib/agw/fourwaysplitter.py +1130 -0
  788. wx/lib/agw/genericmessagedialog.py +1549 -0
  789. wx/lib/agw/gradientbutton.py +732 -0
  790. wx/lib/agw/hyperlink.py +664 -0
  791. wx/lib/agw/hypertreelist.py +5374 -0
  792. wx/lib/agw/infobar.py +885 -0
  793. wx/lib/agw/knobctrl.py +945 -0
  794. wx/lib/agw/labelbook.py +3029 -0
  795. wx/lib/agw/multidirdialog.py +615 -0
  796. wx/lib/agw/peakmeter.py +1029 -0
  797. wx/lib/agw/persist/__init__.py +188 -0
  798. wx/lib/agw/persist/persist_constants.py +284 -0
  799. wx/lib/agw/persist/persist_handlers.py +2614 -0
  800. wx/lib/agw/persist/persistencemanager.py +864 -0
  801. wx/lib/agw/piectrl.py +1082 -0
  802. wx/lib/agw/pybusyinfo.py +399 -0
  803. wx/lib/agw/pycollapsiblepane.py +940 -0
  804. wx/lib/agw/pygauge.py +570 -0
  805. wx/lib/agw/pyprogress.py +917 -0
  806. wx/lib/agw/ribbon/__init__.py +198 -0
  807. wx/lib/agw/ribbon/art.py +219 -0
  808. wx/lib/agw/ribbon/art_aui.py +1284 -0
  809. wx/lib/agw/ribbon/art_default.py +81 -0
  810. wx/lib/agw/ribbon/art_internal.py +244 -0
  811. wx/lib/agw/ribbon/art_msw.py +2736 -0
  812. wx/lib/agw/ribbon/art_osx.py +52 -0
  813. wx/lib/agw/ribbon/bar.py +1261 -0
  814. wx/lib/agw/ribbon/buttonbar.py +1320 -0
  815. wx/lib/agw/ribbon/control.py +205 -0
  816. wx/lib/agw/ribbon/gallery.py +974 -0
  817. wx/lib/agw/ribbon/page.py +946 -0
  818. wx/lib/agw/ribbon/panel.py +1170 -0
  819. wx/lib/agw/ribbon/toolbar.py +1442 -0
  820. wx/lib/agw/rulerctrl.py +1887 -0
  821. wx/lib/agw/scrolledthumbnail.py +2119 -0
  822. wx/lib/agw/shapedbutton.py +1809 -0
  823. wx/lib/agw/shortcuteditor.py +2634 -0
  824. wx/lib/agw/speedmeter.py +1801 -0
  825. wx/lib/agw/supertooltip.py +1444 -0
  826. wx/lib/agw/thumbnailctrl.py +529 -0
  827. wx/lib/agw/toasterbox.py +1327 -0
  828. wx/lib/agw/ultimatelistctrl.py +13666 -0
  829. wx/lib/agw/xlsgrid.py +2113 -0
  830. wx/lib/agw/zoombar.py +1339 -0
  831. wx/lib/analogclock/__init__.py +140 -0
  832. wx/lib/analogclock/analogclock.py +631 -0
  833. wx/lib/analogclock/helpers.py +991 -0
  834. wx/lib/analogclock/lib_setup/__init__.py +0 -0
  835. wx/lib/analogclock/lib_setup/buttontreectrlpanel.py +297 -0
  836. wx/lib/analogclock/lib_setup/fontselect.py +57 -0
  837. wx/lib/analogclock/setup.py +490 -0
  838. wx/lib/analogclock/styles.py +47 -0
  839. wx/lib/anchors.py +103 -0
  840. wx/lib/art/__init__.py +4 -0
  841. wx/lib/art/flagart.py +1583 -0
  842. wx/lib/art/img2pyartprov.py +56 -0
  843. wx/lib/busy.py +146 -0
  844. wx/lib/buttons.py +1141 -0
  845. wx/lib/calendar.py +1597 -0
  846. wx/lib/checkbox.py +837 -0
  847. wx/lib/colourchooser/__init__.py +38 -0
  848. wx/lib/colourchooser/canvas.py +145 -0
  849. wx/lib/colourchooser/intl.py +24 -0
  850. wx/lib/colourchooser/pycolourbox.py +89 -0
  851. wx/lib/colourchooser/pycolourchooser.py +629 -0
  852. wx/lib/colourchooser/pycolourslider.py +100 -0
  853. wx/lib/colourchooser/pypalette.py +211 -0
  854. wx/lib/colourdb.py +740 -0
  855. wx/lib/colourselect.py +385 -0
  856. wx/lib/colourutils.py +118 -0
  857. wx/lib/combotreebox.py +944 -0
  858. wx/lib/delayedresult.py +420 -0
  859. wx/lib/dialogs.py +510 -0
  860. wx/lib/docview.py +3210 -0
  861. wx/lib/dragscroller.py +79 -0
  862. wx/lib/editor/README.txt +77 -0
  863. wx/lib/editor/__init__.py +24 -0
  864. wx/lib/editor/editor.py +974 -0
  865. wx/lib/editor/images.py +15 -0
  866. wx/lib/editor/selection.py +44 -0
  867. wx/lib/embeddedimage.py +76 -0
  868. wx/lib/eventStack.py +136 -0
  869. wx/lib/eventwatcher.py +440 -0
  870. wx/lib/evtmgr.py +521 -0
  871. wx/lib/expando.py +393 -0
  872. wx/lib/fancytext.py +505 -0
  873. wx/lib/filebrowsebutton.py +459 -0
  874. wx/lib/flashwin.py +262 -0
  875. wx/lib/flashwin_old.py +651 -0
  876. wx/lib/floatcanvas/FCEvents.py +53 -0
  877. wx/lib/floatcanvas/FCObjects.py +2923 -0
  878. wx/lib/floatcanvas/FloatCanvas.py +1027 -0
  879. wx/lib/floatcanvas/GUIMode.py +396 -0
  880. wx/lib/floatcanvas/NavCanvas.py +161 -0
  881. wx/lib/floatcanvas/Resources.py +319 -0
  882. wx/lib/floatcanvas/ScreenShot.py +1788 -0
  883. wx/lib/floatcanvas/Utilities/BBox.py +314 -0
  884. wx/lib/floatcanvas/Utilities/Colors.py +137 -0
  885. wx/lib/floatcanvas/Utilities/GUI.py +91 -0
  886. wx/lib/floatcanvas/Utilities/__init__.py +7 -0
  887. wx/lib/floatcanvas/__init__.py +124 -0
  888. wx/lib/foldmenu.py +89 -0
  889. wx/lib/gestures.py +310 -0
  890. wx/lib/gizmos/__init__.py +18 -0
  891. wx/lib/gizmos/dynamicsash.py +1202 -0
  892. wx/lib/gizmos/ledctrl.py +300 -0
  893. wx/lib/gizmos/treelistctrl.py +87 -0
  894. wx/lib/graphics.py +1939 -0
  895. wx/lib/gridmovers.py +511 -0
  896. wx/lib/iewin.py +249 -0
  897. wx/lib/iewin_old.py +894 -0
  898. wx/lib/imagebrowser.py +856 -0
  899. wx/lib/imageutils.py +163 -0
  900. wx/lib/infoframe.py +490 -0
  901. wx/lib/inspection.py +1255 -0
  902. wx/lib/intctrl.py +1001 -0
  903. wx/lib/itemspicker.py +256 -0
  904. wx/lib/langlistctrl.py +480 -0
  905. wx/lib/layoutf.py +271 -0
  906. wx/lib/masked/__init__.py +27 -0
  907. wx/lib/masked/combobox.py +839 -0
  908. wx/lib/masked/ctrl.py +108 -0
  909. wx/lib/masked/ipaddrctrl.py +242 -0
  910. wx/lib/masked/maskededit.py +7279 -0
  911. wx/lib/masked/numctrl.py +2001 -0
  912. wx/lib/masked/textctrl.py +465 -0
  913. wx/lib/masked/timectrl.py +1466 -0
  914. wx/lib/mixins/__init__.py +17 -0
  915. wx/lib/mixins/grid.py +47 -0
  916. wx/lib/mixins/gridlabelrenderer.py +251 -0
  917. wx/lib/mixins/imagelist.py +77 -0
  918. wx/lib/mixins/inspection.py +184 -0
  919. wx/lib/mixins/listctrl.py +894 -0
  920. wx/lib/mixins/rubberband.py +404 -0
  921. wx/lib/mixins/treemixin.py +678 -0
  922. wx/lib/msgpanel.py +95 -0
  923. wx/lib/multisash.py +747 -0
  924. wx/lib/myole4ax.idl +178 -0
  925. wx/lib/myole4ax.tlb +0 -0
  926. wx/lib/newevent.py +229 -0
  927. wx/lib/nvdlg.py +156 -0
  928. wx/lib/ogl/__init__.py +13 -0
  929. wx/lib/ogl/basic.py +3991 -0
  930. wx/lib/ogl/bmpshape.py +87 -0
  931. wx/lib/ogl/canvas.py +467 -0
  932. wx/lib/ogl/composit.py +1577 -0
  933. wx/lib/ogl/diagram.py +230 -0
  934. wx/lib/ogl/divided.py +483 -0
  935. wx/lib/ogl/drawn.py +900 -0
  936. wx/lib/ogl/lines.py +1811 -0
  937. wx/lib/ogl/oglmisc.py +608 -0
  938. wx/lib/pdfviewer/__init__.py +113 -0
  939. wx/lib/pdfviewer/bitmaps/ArrowLeft.png +0 -0
  940. wx/lib/pdfviewer/bitmaps/ArrowRight.png +0 -0
  941. wx/lib/pdfviewer/bitmaps/DirectionH.png +0 -0
  942. wx/lib/pdfviewer/bitmaps/DirectionV.png +0 -0
  943. wx/lib/pdfviewer/bitmaps/PlayerFirst.png +0 -0
  944. wx/lib/pdfviewer/bitmaps/PlayerLast.png +0 -0
  945. wx/lib/pdfviewer/bitmaps/PlayerNext.png +0 -0
  946. wx/lib/pdfviewer/bitmaps/PlayerPrev.png +0 -0
  947. wx/lib/pdfviewer/bitmaps/Printer.png +0 -0
  948. wx/lib/pdfviewer/bitmaps/ReadMe.txt +28 -0
  949. wx/lib/pdfviewer/bitmaps/Save.png +0 -0
  950. wx/lib/pdfviewer/bitmaps/ZoomIn.png +0 -0
  951. wx/lib/pdfviewer/bitmaps/ZoomOut.png +0 -0
  952. wx/lib/pdfviewer/bitmaps/encode_bitmaps.py +37 -0
  953. wx/lib/pdfviewer/buttonpanel.py +279 -0
  954. wx/lib/pdfviewer/images.py +240 -0
  955. wx/lib/pdfviewer/viewer.py +1077 -0
  956. wx/lib/pdfwin.py +295 -0
  957. wx/lib/pdfwin_old.py +789 -0
  958. wx/lib/platebtn.py +789 -0
  959. wx/lib/plot/CHANGELOG.md +150 -0
  960. wx/lib/plot/README.md +16 -0
  961. wx/lib/plot/__init__.py +46 -0
  962. wx/lib/plot/__main__.py +5 -0
  963. wx/lib/plot/examples/__init__.py +0 -0
  964. wx/lib/plot/examples/demo.py +1009 -0
  965. wx/lib/plot/examples/simple_example.py +54 -0
  966. wx/lib/plot/plotcanvas.py +2981 -0
  967. wx/lib/plot/polyobjects.py +1525 -0
  968. wx/lib/plot/utils.py +327 -0
  969. wx/lib/popupctl.py +250 -0
  970. wx/lib/printout.py +1157 -0
  971. wx/lib/progressindicator.py +151 -0
  972. wx/lib/pubsub/LICENSE_BSD_Simple.txt +23 -0
  973. wx/lib/pubsub/README_WxPython.txt +22 -0
  974. wx/lib/pubsub/RELEASE_NOTES.txt +71 -0
  975. wx/lib/pubsub/__init__.py +25 -0
  976. wx/lib/pubsub/core/__init__.py +92 -0
  977. wx/lib/pubsub/core/arg1/__init__.py +16 -0
  978. wx/lib/pubsub/core/arg1/listenerimpl.py +97 -0
  979. wx/lib/pubsub/core/arg1/publisher.py +40 -0
  980. wx/lib/pubsub/core/arg1/publishermixin.py +34 -0
  981. wx/lib/pubsub/core/arg1/topicargspecimpl.py +66 -0
  982. wx/lib/pubsub/core/arg1/topicmgrimpl.py +19 -0
  983. wx/lib/pubsub/core/callables.py +191 -0
  984. wx/lib/pubsub/core/imp2.py +63 -0
  985. wx/lib/pubsub/core/itopicdefnprovider.py +0 -0
  986. wx/lib/pubsub/core/kwargs/__init__.py +16 -0
  987. wx/lib/pubsub/core/kwargs/datamsg.py +27 -0
  988. wx/lib/pubsub/core/kwargs/listenerimpl.py +93 -0
  989. wx/lib/pubsub/core/kwargs/publisher.py +77 -0
  990. wx/lib/pubsub/core/kwargs/publishermixin.py +65 -0
  991. wx/lib/pubsub/core/kwargs/topicargspecimpl.py +217 -0
  992. wx/lib/pubsub/core/kwargs/topicmgrimpl.py +13 -0
  993. wx/lib/pubsub/core/listener.py +40 -0
  994. wx/lib/pubsub/core/listenerbase.py +185 -0
  995. wx/lib/pubsub/core/notificationmgr.py +185 -0
  996. wx/lib/pubsub/core/publisherbase.py +191 -0
  997. wx/lib/pubsub/core/topicargspec.py +77 -0
  998. wx/lib/pubsub/core/topicdefnprovider.py +632 -0
  999. wx/lib/pubsub/core/topicexc.py +72 -0
  1000. wx/lib/pubsub/core/topicmgr.py +456 -0
  1001. wx/lib/pubsub/core/topicobj.py +472 -0
  1002. wx/lib/pubsub/core/topictreetraverser.py +143 -0
  1003. wx/lib/pubsub/core/topicutils.py +118 -0
  1004. wx/lib/pubsub/core/treeconfig.py +21 -0
  1005. wx/lib/pubsub/core/validatedefnargs.py +29 -0
  1006. wx/lib/pubsub/core/weakmethod.py +102 -0
  1007. wx/lib/pubsub/policies.py +24 -0
  1008. wx/lib/pubsub/pub.py +199 -0
  1009. wx/lib/pubsub/py2and3.py +608 -0
  1010. wx/lib/pubsub/setuparg1.py +47 -0
  1011. wx/lib/pubsub/setupkwargs.py +29 -0
  1012. wx/lib/pubsub/utils/__init__.py +27 -0
  1013. wx/lib/pubsub/utils/exchandling.py +100 -0
  1014. wx/lib/pubsub/utils/misc.py +100 -0
  1015. wx/lib/pubsub/utils/notification.py +331 -0
  1016. wx/lib/pubsub/utils/topictreeprinter.py +195 -0
  1017. wx/lib/pubsub/utils/xmltopicdefnprovider.py +287 -0
  1018. wx/lib/pydocview.py +3300 -0
  1019. wx/lib/rcsizer.py +229 -0
  1020. wx/lib/resizewidget.py +357 -0
  1021. wx/lib/scrolledpanel.py +225 -0
  1022. wx/lib/sheet.py +350 -0
  1023. wx/lib/sized_controls.py +691 -0
  1024. wx/lib/softwareupdate.py +361 -0
  1025. wx/lib/splitter.py +925 -0
  1026. wx/lib/statbmp.py +199 -0
  1027. wx/lib/stattext.py +322 -0
  1028. wx/lib/throbber.py +425 -0
  1029. wx/lib/ticker.py +295 -0
  1030. wx/lib/ticker_xrc.py +48 -0
  1031. wx/lib/utils.py +89 -0
  1032. wx/lib/wordwrap.py +97 -0
  1033. wx/lib/wxcairo/__init__.py +124 -0
  1034. wx/lib/wxcairo/wx_cairocffi.py +200 -0
  1035. wx/lib/wxcairo/wx_pycairo.py +463 -0
  1036. wx/lib/wxpTag.py +274 -0
  1037. wx/locale/af/LC_MESSAGES/wxstd.mo +0 -0
  1038. wx/locale/an/LC_MESSAGES/wxstd.mo +0 -0
  1039. wx/locale/ar/LC_MESSAGES/wxstd.mo +0 -0
  1040. wx/locale/ca/LC_MESSAGES/wxstd.mo +0 -0
  1041. wx/locale/ca@valencia/LC_MESSAGES/wxstd.mo +0 -0
  1042. wx/locale/cs/LC_MESSAGES/wxstd.mo +0 -0
  1043. wx/locale/da/LC_MESSAGES/wxstd.mo +0 -0
  1044. wx/locale/de/LC_MESSAGES/wxstd.mo +0 -0
  1045. wx/locale/el/LC_MESSAGES/wxstd.mo +0 -0
  1046. wx/locale/es/LC_MESSAGES/wxstd.mo +0 -0
  1047. wx/locale/eu/LC_MESSAGES/wxstd.mo +0 -0
  1048. wx/locale/fa_IR/LC_MESSAGES/wxstd.mo +0 -0
  1049. wx/locale/fi/LC_MESSAGES/wxstd.mo +0 -0
  1050. wx/locale/fr/LC_MESSAGES/wxstd.mo +0 -0
  1051. wx/locale/gl_ES/LC_MESSAGES/wxstd.mo +0 -0
  1052. wx/locale/hi/LC_MESSAGES/wxstd.mo +0 -0
  1053. wx/locale/hr/LC_MESSAGES/wxstd.mo +0 -0
  1054. wx/locale/hu/LC_MESSAGES/wxstd.mo +0 -0
  1055. wx/locale/id/LC_MESSAGES/wxstd.mo +0 -0
  1056. wx/locale/it/LC_MESSAGES/wxstd.mo +0 -0
  1057. wx/locale/ja/LC_MESSAGES/wxstd.mo +0 -0
  1058. wx/locale/ka/LC_MESSAGES/wxstd.mo +0 -0
  1059. wx/locale/ko_KR/LC_MESSAGES/wxstd.mo +0 -0
  1060. wx/locale/lt/LC_MESSAGES/wxstd.mo +0 -0
  1061. wx/locale/lv/LC_MESSAGES/wxstd.mo +0 -0
  1062. wx/locale/ms/LC_MESSAGES/wxstd.mo +0 -0
  1063. wx/locale/nb/LC_MESSAGES/wxstd.mo +0 -0
  1064. wx/locale/ne/LC_MESSAGES/wxstd.mo +0 -0
  1065. wx/locale/nl/LC_MESSAGES/wxstd.mo +0 -0
  1066. wx/locale/pl/LC_MESSAGES/wxstd.mo +0 -0
  1067. wx/locale/pt/LC_MESSAGES/wxstd.mo +0 -0
  1068. wx/locale/pt_BR/LC_MESSAGES/wxstd.mo +0 -0
  1069. wx/locale/ro/LC_MESSAGES/wxstd.mo +0 -0
  1070. wx/locale/ru/LC_MESSAGES/wxstd.mo +0 -0
  1071. wx/locale/sk/LC_MESSAGES/wxstd.mo +0 -0
  1072. wx/locale/sl/LC_MESSAGES/wxstd.mo +0 -0
  1073. wx/locale/sq/LC_MESSAGES/wxstd.mo +0 -0
  1074. wx/locale/sv/LC_MESSAGES/wxstd.mo +0 -0
  1075. wx/locale/ta/LC_MESSAGES/wxstd.mo +0 -0
  1076. wx/locale/tr/LC_MESSAGES/wxstd.mo +0 -0
  1077. wx/locale/uk/LC_MESSAGES/wxstd.mo +0 -0
  1078. wx/locale/vi/LC_MESSAGES/wxstd.mo +0 -0
  1079. wx/locale/zh_CN/LC_MESSAGES/wxstd.mo +0 -0
  1080. wx/locale/zh_TW/LC_MESSAGES/wxstd.mo +0 -0
  1081. wx/media.py +27 -0
  1082. wx/media.pyi +223 -0
  1083. wx/msw.py +13 -0
  1084. wx/msw.pyi +65 -0
  1085. wx/propgrid.py +1451 -0
  1086. wx/propgrid.pyi +7914 -0
  1087. wx/py/CHANGES.txt +796 -0
  1088. wx/py/Py.ico +0 -0
  1089. wx/py/PyAlaCarte.py +34 -0
  1090. wx/py/PyAlaMode.py +34 -0
  1091. wx/py/PyAlaModeTest.py +33 -0
  1092. wx/py/PyCrust.ico +0 -0
  1093. wx/py/PyCrust.py +78 -0
  1094. wx/py/PyCrust_16.png +0 -0
  1095. wx/py/PyCrust_32.png +0 -0
  1096. wx/py/PyFilling.py +35 -0
  1097. wx/py/PyShell.py +78 -0
  1098. wx/py/PySlices.ico +0 -0
  1099. wx/py/PySlices.py +98 -0
  1100. wx/py/PySlicesShell.py +94 -0
  1101. wx/py/PySlices_16.png +0 -0
  1102. wx/py/PySlices_32.png +0 -0
  1103. wx/py/PyWrap.py +52 -0
  1104. wx/py/README.txt +77 -0
  1105. wx/py/__init__.py +20 -0
  1106. wx/py/buffer.py +136 -0
  1107. wx/py/crust.py +403 -0
  1108. wx/py/crustslices.py +403 -0
  1109. wx/py/dispatcher.py +259 -0
  1110. wx/py/document.py +37 -0
  1111. wx/py/editor.py +844 -0
  1112. wx/py/editwindow.py +299 -0
  1113. wx/py/filling.py +357 -0
  1114. wx/py/frame.py +978 -0
  1115. wx/py/images.py +212 -0
  1116. wx/py/interpreter.py +170 -0
  1117. wx/py/introspect.py +393 -0
  1118. wx/py/magic.py +98 -0
  1119. wx/py/parse.py +134 -0
  1120. wx/py/path.py +36 -0
  1121. wx/py/pseudo.py +99 -0
  1122. wx/py/shell.py +1588 -0
  1123. wx/py/sliceshell.py +3814 -0
  1124. wx/py/tests/test_interpreter.py +71 -0
  1125. wx/py/tests/test_introspect.py +862 -0
  1126. wx/py/tests/test_pseudo.py +70 -0
  1127. wx/py/tests/test_version.py +36 -0
  1128. wx/py/tests/testall.py +22 -0
  1129. wx/py/version.py +7 -0
  1130. wx/ribbon.py +45 -0
  1131. wx/ribbon.pyi +2494 -0
  1132. wx/richtext.py +142 -0
  1133. wx/richtext.pyi +12113 -0
  1134. wx/siplib.cp313-win_amd64.pyd +0 -0
  1135. wx/stc.py +58 -0
  1136. wx/stc.pyi +8463 -0
  1137. wx/svg/__init__.py +364 -0
  1138. wx/svg/_nanosvg.cp313-win_amd64.pyd +0 -0
  1139. wx/tools/__init__.py +18 -0
  1140. wx/tools/dbg.py +268 -0
  1141. wx/tools/genaxmodule.py +50 -0
  1142. wx/tools/helpviewer.py +92 -0
  1143. wx/tools/img2img.py +85 -0
  1144. wx/tools/img2png.py +54 -0
  1145. wx/tools/img2py.py +309 -0
  1146. wx/tools/img2xpm.py +54 -0
  1147. wx/tools/pywxrc.py +949 -0
  1148. wx/tools/wxget.py +254 -0
  1149. wx/tools/wxget_docs_demo.py +186 -0
  1150. wx/wxbase315u_net_vc140_x64.dll +0 -0
  1151. wx/wxbase315u_vc140_x64.dll +0 -0
  1152. wx/wxbase315u_xml_vc140_x64.dll +0 -0
  1153. wx/wxmsw315u_adv_vc140_x64.dll +0 -0
  1154. wx/wxmsw315u_aui_vc140_x64.dll +0 -0
  1155. wx/wxmsw315u_core_vc140_x64.dll +0 -0
  1156. wx/wxmsw315u_gl_vc140_x64.dll +0 -0
  1157. wx/wxmsw315u_html_vc140_x64.dll +0 -0
  1158. wx/wxmsw315u_media_vc140_x64.dll +0 -0
  1159. wx/wxmsw315u_propgrid_vc140_x64.dll +0 -0
  1160. wx/wxmsw315u_qa_vc140_x64.dll +0 -0
  1161. wx/wxmsw315u_ribbon_vc140_x64.dll +0 -0
  1162. wx/wxmsw315u_richtext_vc140_x64.dll +0 -0
  1163. wx/wxmsw315u_stc_vc140_x64.dll +0 -0
  1164. wx/wxmsw315u_webview_vc140_x64.dll +0 -0
  1165. wx/wxmsw315u_xrc_vc140_x64.dll +0 -0
  1166. wx/xml.py +15 -0
  1167. wx/xml.pyi +575 -0
  1168. wx/xrc.py +65 -0
  1169. wx/xrc.pyi +742 -0
  1170. wxPython_zombie-3.1.5.8.dist-info/LICENSE.txt +950 -0
  1171. wxPython_zombie-3.1.5.8.dist-info/METADATA +107 -0
  1172. wxPython_zombie-3.1.5.8.dist-info/RECORD +1175 -0
  1173. wxPython_zombie-3.1.5.8.dist-info/WHEEL +5 -0
  1174. wxPython_zombie-3.1.5.8.dist-info/entry_points.txt +2 -0
  1175. wxPython_zombie-3.1.5.8.dist-info/top_level.txt +1 -0
wx/lib/checkbox.py ADDED
@@ -0,0 +1,837 @@
1
+ #----------------------------------------------------------------------
2
+ # Name: wx.lib.checkbox
3
+ # Purpose: Various kinds of generic checkbox stuff, (not native controls
4
+ # but self-drawn.)
5
+ #
6
+ # Author: wxPython Team and wxPyWiki Contributers
7
+ #
8
+ # Created: 22-June-2020
9
+ # Copyright: (c) 2020 by Total Control Software
10
+ # Licence: wxWindows license
11
+ # Tags: phoenix-port, py3-port, documented
12
+ #----------------------------------------------------------------------
13
+
14
+
15
+ """
16
+ This module implements various forms of generic checkboxes, meaning that
17
+ they are not built on native controls but are self-drawn.
18
+
19
+
20
+ Description
21
+ ===========
22
+
23
+ This module implements various forms of generic checkboxes, meaning that
24
+ they are not built on native controls but are self-drawn.
25
+ They should act like normal checkboxes but you are able to better control how they look, etc...
26
+
27
+
28
+ Usage
29
+ =====
30
+
31
+ Sample usage::
32
+
33
+ app = wx.App(redirect=False)
34
+ class MyFrame(wx.Frame, DefineNativeCheckBoxBitmapsMixin):
35
+ def __init__(self, parent, id=wx.ID_ANY, title=wx.EmptyString,
36
+ pos=wx.DefaultPosition, size=wx.DefaultSize,
37
+ style=wx.DEFAULT_FRAME_STYLE, name='frame'):
38
+ wx.Frame.__init__(self, parent, id, title, pos, size, style, name)
39
+ ## self.DefineNativeCheckBoxBitmaps()
40
+ ## self.checkbox_bitmaps = self.GetNativeCheckBoxBitmaps()
41
+ cb1 = GenCheckBox(self, label="PurePython Checkbox1", pos=(10, 10))
42
+ cb2 = GenCheckBox(self, label="PurePython Checkbox2", pos=(10, 50))
43
+ cb1.Bind(wx.EVT_CHECKBOX, self.OnCheckBox)
44
+ cb2.Bind(wx.EVT_CHECKBOX, self.OnCheckBox)
45
+ cb2.SetForegroundColour(wx.GREEN)
46
+ cb2.SetBackgroundColour(wx.BLACK)
47
+ sizer = wx.BoxSizer()
48
+ sizer.Add(cb1, 0, wx.ALL, 5)
49
+ sizer.Add(cb2, 0, wx.ALL, 5)
50
+ self.SetSizer(sizer)
51
+
52
+ def OnCheckBox(self, event):
53
+ evtObj = event.GetEventObject()
54
+ print(evtObj.GetLabel(), evtObj.IsChecked())
55
+
56
+ frame = MyFrame(None, wx.ID_ANY, "Test Pure-Py Checkbox")
57
+ frame.Show()
58
+ app.MainLoop()
59
+
60
+ """
61
+
62
+ # Imports.---------------------------------------------------------------------
63
+
64
+ # -wxPython Imports.
65
+ import wx
66
+
67
+
68
+ class GenCheckBox(wx.Control):
69
+ """
70
+ A generic class that replicates some of the functionalities of :class:`wx.Checkbox`,
71
+ while being completely owner-drawn with a nice check bitmaps.
72
+ """
73
+
74
+ def __init__(self, parent, id=wx.ID_ANY, label="", pos=wx.DefaultPosition,
75
+ size=wx.DefaultSize, style=wx.NO_BORDER, validator=wx.DefaultValidator,
76
+ name="GenCheckBox"):
77
+ """
78
+ Default class constructor.
79
+
80
+ :param `parent`: Pointer to a parent window. Must not be ``None``.
81
+ :type `parent`: `wx.Window`
82
+ :param `id`: Window identifier. ``wx.ID_ANY`` indicates a default value.
83
+ :type `id`: int
84
+ :param `label`: Text to be displayed next to the checkbox.
85
+ :type `label`: str
86
+ :param `pos`: Window position. The value ``wx.DefaultPosition`` indicates
87
+ a default position, chosen by either the windowing system or wxWidgets, depending on platform.
88
+ :type `pos`: `wx.Point`
89
+ :param `size`: Window size. The value ``wx.DefaultSize`` indicates a default size,
90
+ chosen by either the windowing system or wxWidgets, depending on platform.
91
+ :type `size`: `wx.Size`
92
+ :param `style`: Window style. Not used in this widget, GenCheckBox has only 2 state.
93
+ :type `style`: long
94
+ :param `validator`: Window validator.
95
+ :type `validator`: `wx.Validator`
96
+ :param `name`: Window name.
97
+ :type `name`: str
98
+ """
99
+ wx.Control.__init__(self, parent, id, pos, size, style, validator, name)
100
+
101
+ self.SYS_DEFAULT_GUI_FONT = wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT)
102
+
103
+ # Initialize our cool bitmaps.
104
+ self.InitializeBitmaps()
105
+
106
+ # Initialize the focus pen colour/dashes, for faster drawing later.
107
+ self.InitializeColours()
108
+
109
+ # By default, we start unchecked.
110
+ self._checked = False
111
+
112
+ # Set the spacing between the check bitmap and the label to 3 by default.
113
+ # This can be changed using SetSpacing later.
114
+ self._spacing = 3
115
+ self._hasFocus = False
116
+
117
+ # Ok, set the wx.PyControl label, its initial size (formerly known an
118
+ # SetBestFittingSize), and inherit the attributes from the standard
119
+ # wx.CheckBox .
120
+ self.SetLabel(label)
121
+ self.SetInitialSize(size)
122
+ self.InheritAttributes()
123
+
124
+ # Bind the events related to our control: first of all, we use a
125
+ # combination of wx.BufferedPaintDC and an empty handler for
126
+ # wx.EVT_ERASE_BACKGROUND (see later) to reduce flicker.
127
+ self.Bind(wx.EVT_PAINT, self.OnPaint)
128
+ # Since the paint event draws the whole widget, we will use
129
+ # SetBackgroundStyle(wx.BG_STYLE_PAINT) and then
130
+ # implementing an erase-background handler is not neccessary.
131
+ self.SetBackgroundStyle(wx.BG_STYLE_PAINT)
132
+ # Add a size handler to refresh so the paint wont smear when resizing.
133
+ self.Bind(wx.EVT_SIZE, self.OnSize)
134
+
135
+ # Then we want to monitor user clicks, so that we can switch our
136
+ # state between checked and unchecked.
137
+ self.Bind(wx.EVT_LEFT_DOWN, self.OnMouseClick)
138
+ if wx.Platform == '__WXMSW__':
139
+ # MSW Sometimes does strange things...
140
+ self.Bind(wx.EVT_LEFT_DCLICK, self.OnMouseClick)
141
+
142
+ # We want also to react to keyboard keys, namely the space bar that can
143
+ # toggle our checked state. Whether key-up or key-down is used is based
144
+ # on platform.
145
+ if 'wxMSW' in wx.PlatformInfo:
146
+ self.Bind(wx.EVT_KEY_UP, self.OnKeyEvent)
147
+ else:
148
+ self.Bind(wx.EVT_KEY_DOWN, self.OnKeyEvent)
149
+
150
+ # Then, we react to focus event, because we want to draw a small
151
+ # dotted rectangle around the text if we have focus.
152
+ # This might be improved!!!
153
+ self.Bind(wx.EVT_SET_FOCUS, self.OnSetFocus)
154
+ self.Bind(wx.EVT_KILL_FOCUS, self.OnKillFocus)
155
+
156
+
157
+ def InitializeBitmaps(self):
158
+ """ Initializes the check bitmaps. """
159
+
160
+ # We keep 4 bitmaps for GenCheckBox, depending on the
161
+ # checking state (Checked/UnChecked) and the control
162
+ # state (Enabled/Disabled).
163
+
164
+ self._bitmaps = {
165
+ "CheckedEnable": _GetCheckedBitmap(self),
166
+ "UnCheckedEnable": _GetNotCheckedBitmap(self),
167
+ "CheckedDisable": _GetCheckedImage(self).ConvertToDisabled().ConvertToBitmap(),
168
+ "UnCheckedDisable": _GetNotCheckedImage(self).ConvertToDisabled().ConvertToBitmap()}
169
+
170
+ def InitializeColours(self):
171
+ """ Initializes the focus indicator pen. """
172
+
173
+ textClr = self.GetForegroundColour()
174
+ self._focusIndPen = wx.Pen(textClr, 1, wx.USER_DASH)
175
+ self._focusIndPen.SetDashes([1, 1])
176
+ self._focusIndPen.SetCap(wx.CAP_BUTT)
177
+ self.SYS_COLOUR_GRAYTEXT = wx.SystemSettings.GetColour(wx.SYS_COLOUR_GRAYTEXT)
178
+
179
+ def GetBitmap(self):
180
+ """
181
+ Returns the appropriated bitmap depending on the checking state
182
+ (Checked/UnChecked) and the control state (Enabled/Disabled).
183
+ """
184
+
185
+ if self.IsEnabled():
186
+ # So we are Enabled.
187
+ if self.IsChecked():
188
+ # We are Checked.
189
+ return self._bitmaps["CheckedEnable"]
190
+ else:
191
+ # We are UnChecked.
192
+ return self._bitmaps["UnCheckedEnable"]
193
+ else:
194
+ # Poor GenCheckBox, Disabled and ignored!
195
+ if self.IsChecked():
196
+ return self._bitmaps["CheckedDisable"]
197
+ else:
198
+ return self._bitmaps["UnCheckedDisable"]
199
+
200
+ def SetLabel(self, label):
201
+ """
202
+ Sets the :class:`GenCheckBox` text label and updates the control's
203
+ size to exactly fit the label plus the bitmap.
204
+
205
+ :param `label`: Text to be displayed next to the checkbox.
206
+ :type `label`: str
207
+ """
208
+
209
+ wx.Control.SetLabel(self, label)
210
+
211
+ # The text label has changed, so we must recalculate our best size
212
+ # and refresh ourselves.
213
+ self.InvalidateBestSize()
214
+ self.Refresh()
215
+
216
+ def SetFont(self, font):
217
+ """
218
+ Sets the :class:`GenCheckBox` text font and updates the control's
219
+ size to exactly fit the label plus the bitmap.
220
+
221
+ :param `font`: Font to be used to render the checkboxs label.
222
+ :type `font`: `wx.Font`
223
+ """
224
+
225
+ wx.Control.SetFont(self, font)
226
+
227
+ # The font for text label has changed, so we must recalculate our best
228
+ # size and refresh ourselves.
229
+ self.InvalidateBestSize()
230
+ self.Refresh()
231
+
232
+ def DoGetBestSize(self):
233
+ """
234
+ Overridden base class virtual. Determines the best size of the control
235
+ based on the label size, the bitmap size and the current font.
236
+ """
237
+
238
+ # Retrieve our properties: the text label, the font and the check
239
+ # bitmap.
240
+ label = self.GetLabel()
241
+ font = self.GetFont()
242
+ bitmap = self.GetBitmap()
243
+
244
+ if not font:
245
+ # No font defined? So use the default GUI font provided by the system.
246
+ font = self.SYS_DEFAULT_GUI_FONT
247
+
248
+ # Set up a wx.ClientDC. When you don't have a dc available (almost
249
+ # always you don't have it if you are not inside a wx.EVT_PAINT event),
250
+ # use a wx.ClientDC (or a wx.MemoryDC) to measure text extents.
251
+ dc = wx.ClientDC(self)
252
+ dc.SetFont(font)
253
+
254
+ # Measure our label.
255
+ textWidth, textHeight = dc.GetTextExtent(label)
256
+
257
+ # Retrieve the check bitmap dimensions.
258
+ bitmapWidth, bitmapHeight = bitmap.GetWidth(), bitmap.GetHeight()
259
+
260
+ # Get the spacing between the check bitmap and the text.
261
+ spacing = self.GetSpacing()
262
+
263
+ # Ok, we're almost done: the total width of the control is simply
264
+ # the sum of the bitmap width, the spacing and the text width,
265
+ # while the height is the maximum value between the text width and
266
+ # the bitmap width.
267
+ totalWidth = bitmapWidth + spacing + textWidth
268
+ totalHeight = max(textHeight, bitmapHeight)
269
+
270
+ best = wx.Size(totalWidth, totalHeight)
271
+
272
+ # Cache the best size so it doesn't need to be calculated again,
273
+ # at least until some properties of the window change.
274
+ self.CacheBestSize(best)
275
+
276
+ return best
277
+
278
+ def AcceptsFocusFromKeyboard(self):
279
+ """ Overridden base class virtual. """
280
+
281
+ # We can accept focus from keyboard, obviously.
282
+ return True
283
+
284
+ def AcceptsFocus(self):
285
+ """ Overridden base class virtual. """
286
+
287
+ # If it seems that wx.CheckBox does not accept focus with mouse, It does.
288
+ # You just can't see the focus rectangle until there's
289
+ # another keypress or navigation event (at least on some platforms.)
290
+ return True # This will draw focus rectangle always on mouse click.
291
+
292
+ def HasFocus(self):
293
+ """ Returns whether or not we have the focus. """
294
+
295
+ # We just returns the _hasFocus property that has been set in the
296
+ # wx.EVT_SET_FOCUS and wx.EVT_KILL_FOCUS event handlers.
297
+ return self._hasFocus
298
+
299
+ def SetForegroundColour(self, colour):
300
+ """
301
+ Overridden base class virtual.
302
+
303
+ :param `colour`: Set the foreground colour of the checkboxs label.
304
+ :type `colour`: `wx.Colour`
305
+ """
306
+
307
+ wx.Control.SetForegroundColour(self, colour)
308
+
309
+ # We have to re-initialize the focus indicator per colour as it should
310
+ # always be the same as the foreground colour.
311
+ self.InitializeColours()
312
+ self.Refresh()
313
+
314
+ def SetBackgroundColour(self, colour):
315
+ """
316
+ Overridden base class virtual.
317
+
318
+ :param `colour`: Set the background colour of the checkbox.
319
+ :type `colour`: `wx.Colour`
320
+ """
321
+
322
+ wx.Control.SetBackgroundColour(self, colour)
323
+
324
+ # We have to refresh ourselves.
325
+ self.Refresh()
326
+
327
+ def Enable(self, enable=True):
328
+ """
329
+ Enables/Disables :class:`GenCheckBox`.
330
+
331
+ :param `enable`: Set the enabled state of the checkbox.
332
+ :type `enable`: bool
333
+ """
334
+
335
+ wx.Control.Enable(self, enable)
336
+
337
+ # We have to refresh ourselves, as our state changed.
338
+ self.Refresh()
339
+
340
+ def GetDefaultAttributes(self):
341
+ """
342
+ Overridden base class virtual. By default we should use
343
+ the same font/colour attributes as the native wx.CheckBox.
344
+ """
345
+
346
+ return wx.CheckBox.GetClassDefaultAttributes()
347
+
348
+ def ShouldInheritColours(self):
349
+ """
350
+ Overridden base class virtual. If the parent has non-default
351
+ colours then we want this control to inherit them.
352
+ """
353
+
354
+ return True
355
+
356
+ def SetSpacing(self, spacing):
357
+ """
358
+ Sets a new spacing between the check bitmap and the text.
359
+
360
+ :param `spacing`: Set the amount of space between the checkboxs bitmap and text.
361
+ :type `spacing`: int
362
+ """
363
+
364
+ self._spacing = spacing
365
+
366
+ # The spacing between the check bitmap and the text has changed,
367
+ # so we must recalculate our best size and refresh ourselves.
368
+ self.InvalidateBestSize()
369
+ self.Refresh()
370
+
371
+ def GetSpacing(self):
372
+ """ Returns the spacing between the check bitmap and the text. """
373
+
374
+ return self._spacing
375
+
376
+ def GetValue(self):
377
+ """
378
+ Returns the state of :class:`GenCheckBox`, True if checked, False
379
+ otherwise.
380
+ """
381
+
382
+ return self._checked
383
+
384
+ def IsChecked(self):
385
+ """
386
+ This is just a maybe more readable synonym for GetValue: just as the
387
+ latter, it returns True if the :class:`GenCheckBox` is checked and False
388
+ otherwise.
389
+ """
390
+
391
+ return self._checked
392
+
393
+ def SetValue(self, state):
394
+ """
395
+ Sets the :class:`GenCheckBox` to the given state. This does not cause a
396
+ ``wx.wxEVT_COMMAND_CHECKBOX_CLICKED`` event to get emitted.
397
+
398
+ :param `state`: Set the value of the checkbox. True or False.
399
+ :type `state`: bool
400
+ """
401
+
402
+ self._checked = state
403
+
404
+ # Refresh ourselves: the bitmap has changed.
405
+ self.Refresh()
406
+
407
+ def OnKeyEvent(self, event):
408
+ """
409
+ Handles the ``wx.EVT_KEY_UP`` or ``wx.EVT_KEY_UP`` event (depending on
410
+ platform) for :class:`GenCheckBox`.
411
+
412
+ :param `event`: A `wx.KeyEvent` to be processed.
413
+ :type `event`: `wx.KeyEvent`
414
+ """
415
+
416
+ if event.GetKeyCode() == wx.WXK_SPACE:
417
+ # The spacebar has been pressed: toggle our state.
418
+ self.SendCheckBoxEvent()
419
+ else:
420
+ event.Skip()
421
+
422
+ def OnSetFocus(self, event):
423
+ """
424
+ Handles the ``wx.EVT_SET_FOCUS`` event for :class:`GenCheckBox`.
425
+
426
+ :param `event`: A `wx.FocusEvent` to be processed.
427
+ :type `event`: `wx.FocusEvent`
428
+ """
429
+
430
+ self._hasFocus = True
431
+
432
+ # We got focus, and we want a dotted rectangle to be painted
433
+ # around the checkbox label, so we refresh ourselves.
434
+ self.Refresh()
435
+
436
+ def OnKillFocus(self, event):
437
+ """
438
+ Handles the ``wx.EVT_KILL_FOCUS`` event for :class:`GenCheckBox`.
439
+
440
+ :param `event`: A `wx.FocusEvent` to be processed.
441
+ :type `event`: `wx.FocusEvent`
442
+ """
443
+
444
+ self._hasFocus = False
445
+
446
+ # We lost focus, and we want a dotted rectangle to be cleared
447
+ # around the checkbox label, so we refresh ourselves.
448
+ self.Refresh()
449
+
450
+ def OnSize(self, event):
451
+ """
452
+ Handles the ``wx.EVT_SIZE`` event for :class:`GenCheckBox`.
453
+
454
+ :param `event`: A `wx.SizeEvent` to be processed.
455
+ :type `event`: `wx.SizeEvent`
456
+ """
457
+ self.Refresh()
458
+
459
+ def OnPaint(self, event):
460
+ """
461
+ Handles the ``wx.EVT_PAINT`` event for :class:`GenCheckBox`.
462
+
463
+ :param `event`: A `wx.PaintEvent` to be processed.
464
+ :type `event`: `wx.PaintEvent`
465
+ """
466
+
467
+ # If you want to reduce flicker, a good starting point is to
468
+ # use wx.BufferedPaintDC .
469
+ # wx.AutoBufferedPaintDC would be marginally better.
470
+ dc = wx.AutoBufferedPaintDC(self)
471
+
472
+ # Is is advisable that you don't overcrowd the OnPaint event
473
+ # (or any other event) with a lot of code, so let's do the
474
+ # actual drawing in the Draw() method, passing the newly
475
+ # initialized wx.AutoBufferedPaintDC .
476
+ self.Draw(dc)
477
+
478
+ def Draw(self, dc):
479
+ """
480
+ Actually performs the drawing operations, for the bitmap and
481
+ for the text, positioning them centered vertically.
482
+
483
+ :param `dc`: device context to use.
484
+ :type `dc`: `wx.DC`
485
+ """
486
+
487
+ # Get the actual client size of ourselves.
488
+ width, height = self.GetClientSize()
489
+
490
+ if not width or not height:
491
+ # Nothing to do, we still don't have dimensions!
492
+ return
493
+
494
+ # Initialize the wx.BufferedPaintDC, assigning a background
495
+ # colour and a foreground colour (to draw the text).
496
+ backColour = self.GetBackgroundColour()
497
+ backBrush = wx.Brush(backColour, wx.SOLID)
498
+ dc.SetBackground(backBrush)
499
+ dc.Clear()
500
+
501
+ if self.IsEnabled():
502
+ dc.SetTextForeground(self.GetForegroundColour())
503
+ else:
504
+ dc.SetTextForeground(self.SYS_COLOUR_GRAYTEXT)
505
+
506
+ dc.SetFont(self.GetFont())
507
+
508
+ # Get the text label for the checkbox, the associated check bitmap
509
+ # and the spacing between the check bitmap and the text.
510
+ label = self.GetLabel()
511
+ bitmap = self.GetBitmap()
512
+ spacing = self.GetSpacing()
513
+
514
+ # Measure the text extent and get the check bitmap dimensions.
515
+ textWidth, textHeight = dc.GetTextExtent(label)
516
+ bitmapWidth, bitmapHeight = bitmap.GetWidth(), bitmap.GetHeight()
517
+
518
+ # Position the bitmap centered vertically.
519
+ bitmapXpos = 0
520
+ bitmapYpos = (height - bitmapHeight) // 2
521
+
522
+ # Position the text centered vertically.
523
+ textXpos = bitmapWidth + spacing
524
+ textYpos = (height - textHeight) // 2
525
+
526
+ # Draw the bitmap on the DC.
527
+ try:
528
+ dc.DrawBitmap(bitmap, bitmapXpos, bitmapYpos, True)
529
+ except Exception as exc: # bitmap might be image and need converted. Ex: if disabled.
530
+ dc.DrawBitmap(bitmap.ConvertToBitmap(), bitmapXpos, bitmapYpos, True)
531
+
532
+ # Draw the text
533
+ dc.DrawText(label, textXpos, textYpos)
534
+
535
+ # Let's see if we have keyboard focus and, if this is the case,
536
+ # we draw a dotted rectangle around the text (Windows behavior,
537
+ # I don't know on other platforms...).
538
+ if self.HasFocus():
539
+ # Yes, we are focused! So, now, use a transparent brush with
540
+ # a dotted black pen to draw a rectangle around the text.
541
+ dc.SetBrush(wx.TRANSPARENT_BRUSH)
542
+ dc.SetPen(self._focusIndPen)
543
+ dc.DrawRectangle(textXpos, textYpos, textWidth, textHeight)
544
+
545
+ def OnMouseClick(self, event):
546
+ """
547
+ Handles the ``wx.EVT_LEFT_DOWN`` event for :class:`GenCheckBox`.
548
+
549
+ :param `event`: A `wx.MouseEvent` to be processed.
550
+ :type `event`: `wx.MouseEvent`
551
+ """
552
+
553
+ if not self.IsEnabled():
554
+ # Nothing to do, we are disabled.
555
+ return
556
+
557
+ self.SendCheckBoxEvent()
558
+ event.Skip()
559
+
560
+ def SendCheckBoxEvent(self):
561
+ """ Actually sends the wx.wxEVT_COMMAND_CHECKBOX_CLICKED event. """
562
+
563
+ # This part of the code may be reduced to a 3-liner code
564
+ # but it is kept for better understanding the event handling.
565
+ # If you can, however, avoid code duplication; in this case,
566
+ # I could have done:
567
+ #
568
+ # self._checked = not self.IsChecked()
569
+ # checkEvent = wx.CommandEvent(wx.wxEVT_COMMAND_CHECKBOX_CLICKED,
570
+ # self.GetId())
571
+ # checkEvent.SetInt(int(self._checked))
572
+ if self.IsChecked():
573
+
574
+ # We were checked, so we should become unchecked.
575
+ self._checked = False
576
+
577
+ # Fire a wx.CommandEvent: this generates a
578
+ # wx.wxEVT_COMMAND_CHECKBOX_CLICKED event that can be caught by the
579
+ # developer by doing something like:
580
+ # MyCheckBox.Bind(wx.EVT_CHECKBOX, self.OnCheckBox)
581
+ checkEvent = wx.CommandEvent(wx.wxEVT_COMMAND_CHECKBOX_CLICKED,
582
+ self.GetId())
583
+
584
+ # Set the integer event value to 0 (we are switching to unchecked state).
585
+ checkEvent.SetInt(0)
586
+
587
+ else:
588
+
589
+ # We were unchecked, so we should become checked.
590
+ self._checked = True
591
+
592
+ checkEvent = wx.CommandEvent(wx.wxEVT_COMMAND_CHECKBOX_CLICKED,
593
+ self.GetId())
594
+
595
+ # Set the integer event value to 1 (we are switching to checked state).
596
+ checkEvent.SetInt(1)
597
+
598
+ # Set the originating object for the event (ourselves).
599
+ checkEvent.SetEventObject(self)
600
+
601
+ # Watch for a possible listener of this event that will catch it and
602
+ # eventually process it.
603
+ self.GetEventHandler().ProcessEvent(checkEvent)
604
+
605
+ # Refresh ourselves: the bitmap has changed.
606
+ self.Refresh()
607
+
608
+
609
+ # -----------------------------------------------------------------------------
610
+
611
+
612
+ class DefineNativeCheckBoxBitmapsMixin():
613
+ """
614
+ Inherit this mixin in your :class:`wx.Window` based subclass to easily
615
+ define the native CheckBox Bitmaps as attributes which can then be used
616
+ to customize a widgets appearance/functionality with.
617
+
618
+ Sample example usage::
619
+
620
+ class MyCheckListBoxSTC(wx.stc.StyledTextCtrl, DefineNativeCheckBoxBitmapsMixin):
621
+ '''Customized StyledTextCtrl Setup like a CheckListBox.'''
622
+ def __init__(self, parent, id=wx.ID_ANY,
623
+ pos=wx.DefaultPosition, size=wx.DefaultSize,
624
+ style=0, name='styledtextctrl'):
625
+ wx.stc.StyledTextCtrl.__init__(self, parent, id, pos, size, style, name)
626
+
627
+ # Define the checkbox bitmaps as attributes.
628
+ self.DefineNativeCheckBoxBitmaps()
629
+ # After the bitmaps have become attributes you can easily snag
630
+ # them all later on from inside a method with this inherited method.
631
+ ## self.checkbox_bitmaps = self.GetNativeCheckBoxBitmaps()
632
+
633
+ # Setup a margin to hold bookmarks.
634
+ self.SetMarginType(1, wx.stc.STC_MARGIN_SYMBOL)
635
+ self.SetMarginSensitive(1, True)
636
+ self.SetMarginWidth(1, 16)
637
+ # Define the bookmark images.
638
+ self.MarkerDefineBitmap(0, self.native_checkbox_unchecked_bmp)
639
+ self.MarkerDefineBitmap(1, self.native_checkbox_checked_bmp)
640
+
641
+ # ... do something with the bitmaps when you click the margin event.
642
+
643
+ """
644
+ def DefineNativeCheckBoxBitmaps(self):
645
+ """
646
+ Define native checkbox bitmaps as attributes. Returns True if all bitmaps was defined Ok.
647
+
648
+ bitmaps defined::
649
+
650
+ self.native_checkbox_unchecked_bmp
651
+ self.native_checkbox_unchecked_disabled_bmp
652
+ self.native_checkbox_checked_bmp
653
+ self.native_checkbox_checked_disabled_bmp
654
+ self.native_checkbox_3state_bmp
655
+ self.native_checkbox_3state_disabled_bmp
656
+ self.native_checkbox_current_bmp
657
+ self.native_checkbox_pressed_bmp
658
+
659
+ :rtype: bool
660
+ """
661
+ render = wx.RendererNative.Get()
662
+ cbX, cbY = render.GetCheckBoxSize(self)
663
+ bmp = wx.Bitmap(cbX, cbY)
664
+ dc = wx.MemoryDC(bmp)
665
+ DrawCheckBox = render.DrawCheckBox
666
+ DrawCheckBox(self, dc, (0, 0, cbX, cbY), wx.CONTROL_ISDEFAULT)
667
+ self.native_checkbox_unchecked_bmp = dc.GetAsBitmap((0, 0, cbX, cbY))
668
+ DrawCheckBox(self, dc, (0, 0, cbX, cbY), wx.CONTROL_ISDEFAULT | wx.CONTROL_DISABLED)
669
+ self.native_checkbox_unchecked_disabled_bmp = dc.GetAsBitmap((0, 0, cbX, cbY))
670
+ DrawCheckBox(self, dc, (0, 0, cbX, cbY), wx.CONTROL_CHECKED)
671
+ self.native_checkbox_checked_bmp = dc.GetAsBitmap((0, 0, cbX, cbY))
672
+ DrawCheckBox(self, dc, (0, 0, cbX, cbY), wx.CONTROL_CHECKED | wx.CONTROL_DISABLED)
673
+ self.native_checkbox_checked_disabled_bmp = dc.GetAsBitmap((0, 0, cbX, cbY))
674
+ DrawCheckBox(self, dc, (0, 0, cbX, cbY), wx.CONTROL_CHECKABLE)
675
+ self.native_checkbox_3state_bmp = dc.GetAsBitmap((0, 0, cbX, cbY))
676
+ DrawCheckBox(self, dc, (0, 0, cbX, cbY), wx.CONTROL_CHECKABLE | wx.CONTROL_DISABLED)
677
+ self.native_checkbox_3state_disabled_bmp = dc.GetAsBitmap((0, 0, cbX, cbY))
678
+ DrawCheckBox(self, dc, (0, 0, cbX, cbY), wx.CONTROL_CURRENT)
679
+ self.native_checkbox_current_bmp = dc.GetAsBitmap((0, 0, cbX, cbY))
680
+ DrawCheckBox(self, dc, (0, 0, cbX, cbY), wx.CONTROL_PRESSED)
681
+ self.native_checkbox_pressed_bmp = dc.GetAsBitmap((0, 0, cbX, cbY))
682
+ if (self.native_checkbox_unchecked_bmp.IsOk() and
683
+ self.native_checkbox_unchecked_disabled_bmp.IsOk() and
684
+ self.native_checkbox_checked_bmp.IsOk() and
685
+ self.native_checkbox_checked_disabled_bmp.IsOk() and
686
+ self.native_checkbox_3state_bmp.IsOk() and
687
+ self.native_checkbox_3state_disabled_bmp.IsOk() and
688
+ self.native_checkbox_current_bmp.IsOk() and
689
+ self.native_checkbox_pressed_bmp.IsOk()
690
+ ):
691
+ return True
692
+ return False
693
+
694
+ def GetNativeCheckBoxBitmaps(self):
695
+ """
696
+ Get a tuple of the defined checkbox bitmaps.
697
+
698
+ :rtype: tuple
699
+ """
700
+ return (self.native_checkbox_unchecked_bmp,
701
+ self.native_checkbox_unchecked_disabled_bmp,
702
+ self.native_checkbox_checked_bmp,
703
+ self.native_checkbox_checked_disabled_bmp,
704
+ self.native_checkbox_3state_bmp,
705
+ self.native_checkbox_3state_disabled_bmp,
706
+ self.native_checkbox_current_bmp,
707
+ self.native_checkbox_pressed_bmp,
708
+ )
709
+
710
+
711
+ # -----------------------------------------------------------------------------
712
+
713
+
714
+ def _GetCheckedBitmap(self):
715
+ """
716
+ Get a native checkbox(Checked) bitmap.
717
+
718
+ :rtype: `wx.Bitmap`
719
+ """
720
+ render = wx.RendererNative.Get()
721
+ cbX, cbY = render.GetCheckBoxSize(self)
722
+ bmp = wx.Bitmap(cbX, cbY)
723
+ dc = wx.MemoryDC(bmp)
724
+ render.DrawCheckBox(self, dc, (0, 0, cbX, cbY), wx.CONTROL_CHECKED)
725
+ native_checkbox_checked_bmp = dc.GetAsBitmap((0, 0, cbX, cbY))
726
+ return native_checkbox_checked_bmp
727
+
728
+ def _GetCheckedImage(self):
729
+ """
730
+ Get a native checkbox(Checked) image.
731
+
732
+ :rtype: `wx.Image`
733
+ """
734
+ return _GetCheckedBitmap(self).ConvertToImage()
735
+
736
+ def _GetNotCheckedBitmap(self):
737
+ """
738
+ Get a native checkbox(Unchecked) bitmap.
739
+
740
+ :rtype: `wx.Bitmap`
741
+ """
742
+ render = wx.RendererNative.Get()
743
+ cbX, cbY = render.GetCheckBoxSize(self)
744
+ bmp = wx.Bitmap(cbX, cbY)
745
+ dc = wx.MemoryDC(bmp)
746
+ render.DrawCheckBox(self, dc, (0, 0, cbX, cbY), wx.CONTROL_ISDEFAULT)
747
+ native_checkbox_unchecked_bmp = dc.GetAsBitmap((0, 0, cbX, cbY))
748
+ return native_checkbox_unchecked_bmp
749
+
750
+ def _GetNotCheckedImage(self):
751
+ """
752
+ Get a native checkbox(Unchecked) image.
753
+
754
+ :rtype: `wx.Image`
755
+ """
756
+ return _GetNotCheckedBitmap(self).ConvertToImage()
757
+
758
+
759
+ # -----------------------------------------------------------------------------
760
+
761
+
762
+ def _GrayOut(anImage):
763
+ """
764
+ Convert the given image (in place) to a grayed-out version,
765
+ appropriate for a 'disabled' appearance.
766
+
767
+ :param `anImage`: A `wx.Image` to gray out.
768
+ :type `anImage`: `wx.Image`
769
+ :rtype: `wx.Bitmap`
770
+ """
771
+
772
+ factor = 0.7 # 0 < f < 1. Higher Is Grayer
773
+
774
+ if anImage.HasMask():
775
+ maskColor = (anImage.GetMaskRed(), anImage.GetMaskGreen(), anImage.GetMaskBlue())
776
+ else:
777
+ maskColor = None
778
+
779
+ data = map(ord, list(anImage.GetData()))
780
+
781
+ for i in range(0, len(data), 3):
782
+ pixel = (data[i], data[i + 1], data[i + 2])
783
+ pixel = _MakeGray(pixel, factor, maskColor)
784
+
785
+ for x in range(3):
786
+ data[i + x] = pixel[x]
787
+
788
+ anImage.SetData(''.join(map(chr, data)))
789
+
790
+ return anImage.ConvertToBitmap()
791
+
792
+
793
+ def _MakeGray(rgbTuple, factor, maskColor):
794
+ """
795
+ Make a pixel grayed-out. If the pixel matches the maskcolor, it won't be
796
+ changed.
797
+
798
+ :type `rgbTuple`: red, green, blue 3-tuple
799
+ :type `factor`: float
800
+ :type `maskColor`: red, green, blue 3-tuple
801
+ """
802
+ r, g, b = rgbTuple
803
+ if (r, g, b) != maskColor:
804
+ return map(lambda x: int((230 - x) * factor) + x, (r, g, b))
805
+ else:
806
+ return (r, g, b)
807
+
808
+
809
+ if __name__ == '__main__':
810
+ # Small sample program to test.
811
+ app = wx.App(redirect=False)
812
+ class MyFrame(wx.Frame, DefineNativeCheckBoxBitmapsMixin):
813
+ def __init__(self, parent, id=wx.ID_ANY, title=wx.EmptyString,
814
+ pos=wx.DefaultPosition, size=wx.DefaultSize,
815
+ style=wx.DEFAULT_FRAME_STYLE, name='frame'):
816
+ wx.Frame.__init__(self, parent, id, title, pos, size, style, name)
817
+ ## self.DefineNativeCheckBoxBitmaps()
818
+ ## self.checkbox_bitmaps = self.GetNativeCheckBoxBitmaps()
819
+ cb1 = GenCheckBox(self, label="PurePython Checkbox1", pos=(10, 10))
820
+ cb2 = GenCheckBox(self, label="PurePython Checkbox2", pos=(10, 50))
821
+ cb1.Bind(wx.EVT_CHECKBOX, self.OnCheckBox)
822
+ cb2.Bind(wx.EVT_CHECKBOX, self.OnCheckBox)
823
+ cb2.SetForegroundColour(wx.GREEN)
824
+ cb2.SetBackgroundColour(wx.BLACK)
825
+ sizer = wx.BoxSizer()
826
+ sizer.Add(cb1, 0, wx.ALL, 5)
827
+ sizer.Add(cb2, 0, wx.ALL, 5)
828
+ self.SetSizer(sizer)
829
+
830
+ def OnCheckBox(self, event):
831
+ evtObj = event.GetEventObject()
832
+ print(evtObj.GetLabel(), evtObj.IsChecked())
833
+
834
+ frame = MyFrame(None, wx.ID_ANY, "Test Pure-Py Checkbox")
835
+ frame.Show()
836
+ app.MainLoop()
837
+