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
@@ -0,0 +1,1029 @@
1
+ # --------------------------------------------------------------------------------- #
2
+ # PEAKMETERCTRL wxPython IMPLEMENTATION
3
+ #
4
+ # Andrea Gavana, @ 07 October 2008
5
+ # Latest Revision: 31 Jul 2014, 21.00 GMT
6
+ # (c) 2021 Zombie
7
+ #
8
+ #
9
+ # TODO List
10
+ #
11
+ # 1) Possibly some nicer drawing of bands and leds (using GraphicsContext).
12
+ #
13
+ #
14
+ # For all kind of problems, requests of enhancements and bug reports, please
15
+ # write to me at:
16
+ #
17
+ # andrea.gavana@gmail.com
18
+ # andrea.gavana@maerskoil.com
19
+ #
20
+ # Or, obviously, to the wxPython mailing list!!!
21
+ #
22
+ # Tags: phoenix-port, unittest, documented, py3-port
23
+ #
24
+ # End Of Comments
25
+ # --------------------------------------------------------------------------------- #
26
+
27
+ """
28
+ :class:`~wx.lib.agw.peakmeter.PeakMeterCtrl` mimics the behaviour of equalizers that are usually found in stereos
29
+ and MP3 players.
30
+
31
+
32
+ Description
33
+ ===========
34
+
35
+ :class:`PeakMeterCtrl` mimics the behaviour of equalizers that are usually found in stereos
36
+ and MP3 players. This widgets supports:
37
+
38
+ * Vertical and horizontal led bands;
39
+ * Settings number of bands and leds per band;
40
+ * Possibility to change the colour for low/medium/high band frequencies;
41
+ * Falloff effects;
42
+ * Showing a background grid for the bands.
43
+
44
+ And a lot more. Check the demo for an almost complete review of the functionalities.
45
+
46
+
47
+ Usage
48
+ =====
49
+
50
+ Usage example::
51
+
52
+ import wx
53
+ import random
54
+
55
+ import wx.lib.agw.peakmeter as PM
56
+
57
+ class MyFrame(wx.Frame):
58
+
59
+ def __init__(self, parent):
60
+
61
+ wx.Frame.__init__(self, parent, -1, "PeakMeterCtrl Demo")
62
+
63
+ panel = wx.Panel(self)
64
+
65
+ # Initialize Peak Meter control 1
66
+ self.vertPeak = PM.PeakMeterCtrl(panel, -1, style=wx.SIMPLE_BORDER, agwStyle=PM.PM_VERTICAL)
67
+ # Initialize Peak Meter control 2
68
+ self.horzPeak = PM.PeakMeterCtrl(panel, -1, style=wx.SUNKEN_BORDER, agwStyle=PM.PM_HORIZONTAL)
69
+
70
+ self.vertPeak.SetMeterBands(10, 15)
71
+ self.horzPeak.SetMeterBands(10, 15)
72
+
73
+ # Layout the two PeakMeterCtrl
74
+ mainSizer = wx.BoxSizer(wx.HORIZONTAL)
75
+ mainSizer.Add(self.vertPeak, 0, wx.EXPAND | wx.ALL, 15)
76
+ mainSizer.Add(self.horzPeak, 0, wx.EXPAND | wx.ALL, 15)
77
+
78
+ panel.SetSizer(mainSizer)
79
+ mainSizer.Layout()
80
+
81
+ self.timer = wx.Timer(self)
82
+ self.Bind(wx.EVT_TIMER, self.OnTimer)
83
+
84
+ wx.CallLater(500, self.Start)
85
+
86
+
87
+ def Start(self):
88
+ ''' Starts the PeakMeterCtrl. '''
89
+
90
+ self.timer.Start(1000//2) # 2 fps
91
+
92
+ self.vertPeak.Start(1000//18) # 18 fps
93
+ self.horzPeak.Start(1000//20) # 20 fps
94
+
95
+
96
+ def OnTimer(self, event):
97
+ '''
98
+ Handles the ``wx.EVT_TIMER`` event for :class:`PeakMeterCtrl`.
99
+
100
+ :param `event`: a :class:`TimerEvent` event to be processed.
101
+ '''
102
+
103
+ # Generate 15 random number and set them as data for the meter
104
+ nElements = 15
105
+ arrayData = []
106
+
107
+ for i in xrange(nElements):
108
+ nRandom = random.randint(0, 100)
109
+ arrayData.append(nRandom)
110
+
111
+ self.vertPeak.SetData(arrayData, 0, nElements)
112
+ self.horzPeak.SetData(arrayData, 0, nElements)
113
+
114
+
115
+ # our normal wxApp-derived class, as usual
116
+
117
+ app = wx.App(0)
118
+
119
+ frame = MyFrame(None)
120
+ app.SetTopWindow(frame)
121
+ frame.Show()
122
+
123
+ app.MainLoop()
124
+
125
+
126
+
127
+ Supported Platforms
128
+ ===================
129
+
130
+ :class:`PeakMeterCtrl` has been tested on the following platforms:
131
+ * Windows (Windows XP).
132
+
133
+
134
+ Window Styles
135
+ =============
136
+
137
+ This class supports the following window styles:
138
+
139
+ ======================== =========== ========================================================
140
+ Window Styles Hex Value Description
141
+ ======================== =========== ========================================================
142
+ ``PM_HORIZONTAL`` 0x0 Shows horizontal bands in :class:`PeakMeterCtrl`.
143
+ ``PM_VERTICAL`` 0x1 Shows vertical bands in :class:`PeakMeterCtrl`.
144
+ ``PM_VERTICAL_INVERTED`` 0x2 Shows inverted vertical bands in :class:`PeakMeterCtrl`.
145
+ ======================== =========== ========================================================
146
+
147
+
148
+ Events Processing
149
+ =================
150
+
151
+ `No custom events are available for this class.`
152
+
153
+
154
+ License And Version
155
+ ===================
156
+
157
+ :class:`PeakMeterCtrl` is distributed under the wxPython license.
158
+
159
+ Latest Revision: Andrea Gavana @ 31 Jul 2014, 21.00 GMT
160
+
161
+ Version 0.4
162
+
163
+ """
164
+
165
+ import wx
166
+
167
+ # Horizontal or vertical PeakMeterCtrl
168
+ PM_HORIZONTAL = 0
169
+ """ Shows horizontal bands in :class:`PeakMeterCtrl`. """
170
+ PM_VERTICAL = 1
171
+ """ Shows vertical bands in :class:`PeakMeterCtrl`. """
172
+ PM_VERTICAL_INVERTED = 2
173
+ """ Shows inverted vertical bands in :class:`PeakMeterCtrl`. """
174
+
175
+ # Some useful constants...
176
+ BAND_DEFAULT = 8
177
+ """ Number of bands in the :class:`PeakMeterCtrl`. """
178
+ LEDS_DEFAULT = 8
179
+ """ Number of leds per band in the :class:`PeakMeterCtrl`. """
180
+ BAND_PERCENT = 10 # 10% of Max Range (Auto Decrease)
181
+ """ 10% of max range (auto decrease). """
182
+ GRID_INCREASEBY = 15 # Increase Grid colour based on Background colour
183
+ """ Increase grid colour based on background colour. """
184
+ FALL_INCREASEBY = 60 # Increase Falloff colour based on Background
185
+ """ Increase falloff colour based on background colour. """
186
+ DEFAULT_SPEED = 10
187
+ """ Default increase/decrease speed. """
188
+
189
+
190
+ def InRange(val, valMin, valMax):
191
+ """
192
+ Returns whether the value `val` is between `valMin` and `valMax`.
193
+
194
+ :param `val`: the value to test;
195
+ :param `valMin`: the minimum range value;
196
+ :param `valMax`: the maximum range value.
197
+ """
198
+
199
+ return val >= valMin and val <= valMax
200
+
201
+
202
+ def LightenColour(crColour, byIncreaseVal):
203
+ """
204
+ Lightens a colour.
205
+
206
+ :param `crColour`: a valid :class:`wx.Colour` object;
207
+ :param `byIncreaseVal`: an integer specifying the amount for which the input
208
+ colour should be brightened.
209
+ """
210
+
211
+ byRed = crColour.Red()
212
+ byGreen = crColour.Green()
213
+ byBlue = crColour.Blue()
214
+
215
+ byRed = (byRed + byIncreaseVal <= 255 and [byRed + byIncreaseVal] or [255])[0]
216
+ byGreen = (byGreen + byIncreaseVal <= 255 and [byGreen + byIncreaseVal] or [255])[0]
217
+ byBlue = (byBlue + byIncreaseVal <= 255 and [byBlue + byIncreaseVal] or [255])[0]
218
+
219
+ return wx.Colour(byRed, byGreen, byBlue)
220
+
221
+
222
+ def DarkenColour(crColour, byReduceVal):
223
+ """
224
+ Darkens a colour.
225
+
226
+ :param `crColour`: a valid :class:`wx.Colour` object;
227
+ :param `byReduceVal`: an integer specifying the amount for which the input
228
+ colour should be darkened.
229
+ """
230
+
231
+ byRed = crColour.Red()
232
+ byGreen = crColour.Green()
233
+ byBlue = crColour.Blue()
234
+
235
+ byRed = (byRed >= byReduceVal and [byRed - byReduceVal] or [0])[0]
236
+ byGreen = (byGreen >= byReduceVal and [byGreen - byReduceVal] or [0])[0]
237
+ byBlue = (byBlue >= byReduceVal and [byBlue - byReduceVal] or [0])[0]
238
+
239
+ return wx.Colour(byRed, byGreen, byBlue)
240
+
241
+
242
+ class PeakMeterData(object):
243
+ """ A simple class which holds data for our :class:`PeakMeterCtrl`. """
244
+
245
+ def __init__(self, value=0, falloff=0, peak=0):
246
+ """
247
+ Default class constructor.
248
+
249
+ :param `value`: the current :class:`PeakMeterCtrl` value;
250
+ :param `falloff`: the falloff effect. ``True`` to enable it, ``False`` to
251
+ disable it;
252
+ :param `peak`: the peak value.
253
+ """
254
+
255
+ self._value = value
256
+ self._falloff = falloff
257
+ self._peak = peak
258
+
259
+
260
+ def IsEqual(self, pm):
261
+ """
262
+ Returns whether 2 instances of :class:`PeakMeterData` are the same.
263
+
264
+ :param `pm`: another instance of :class:`PeakMeterData`.
265
+ """
266
+
267
+ return self._value == pm._value
268
+
269
+
270
+ def IsGreater(self, pm):
271
+ """
272
+ Returns whether one :class:`PeakMeterData` is greater than another.
273
+
274
+ :param `pm`: another instance of :class:`PeakMeterData`.
275
+ """
276
+
277
+ return self._value > pm._value
278
+
279
+
280
+ def IsLower(self, pm):
281
+ """
282
+ Returns whether one :class:`PeakMeterData` is smaller than another.
283
+
284
+ :param `pm`: another instance of :class:`PeakMeterData`.
285
+ """
286
+
287
+ return self._value < pm._value
288
+
289
+
290
+ class PeakMeterCtrl(wx.Control):
291
+ """ The main :class:`PeakMeterCtrl` implementation. """
292
+
293
+ def __init__(self, parent, id=wx.ID_ANY, pos=wx.DefaultPosition, size=wx.DefaultSize,
294
+ style=0, agwStyle=PM_VERTICAL):
295
+ """
296
+ Default class constructor.
297
+
298
+ :param parent: the :class:`PeakMeterCtrl` parent. Must not be ``None``
299
+ :param `id`: window identifier. A value of -1 indicates a default value;
300
+ :param `pos`: the control position. A value of (-1, -1) indicates a default position,
301
+ chosen by either the windowing system or wxPython, depending on platform;
302
+ :param `size`: the control size. A value of (-1, -1) indicates a default size,
303
+ chosen by either the windowing system or wxPython, depending on platform;
304
+ :param `style`: the underlying :class:`wx.Control` window style;
305
+ :param `agwStyle`: the AGW-specific window style, which can be one of the following bits:
306
+
307
+ ======================== =========== ========================================================
308
+ Window Styles Hex Value Description
309
+ ======================== =========== ========================================================
310
+ ``PM_HORIZONTAL`` 0x0 Shows horizontal bands in :class:`PeakMeterCtrl`.
311
+ ``PM_VERTICAL`` 0x1 Shows vertical bands in :class:`PeakMeterCtrl`.
312
+ ``PM_VERTICAL_INVERTED`` 0x2 Shows inverted vertical bands in :class:`PeakMeterCtrl`.
313
+ ======================== =========== ========================================================
314
+
315
+ """
316
+
317
+ wx.Control.__init__(self, parent, id, pos, size, style)
318
+ self.SetBackgroundStyle(wx.BG_STYLE_CUSTOM)
319
+
320
+ self._agwStyle = agwStyle
321
+ # Initializes all data
322
+ self.InitData()
323
+
324
+ self.Bind(wx.EVT_PAINT, self.OnPaint)
325
+ self.Bind(wx.EVT_SIZE, self.OnSize)
326
+ self.Bind(wx.EVT_ERASE_BACKGROUND, self.OnEraseBackground)
327
+ self.Bind(wx.EVT_TIMER, self.OnTimer)
328
+
329
+
330
+ def InitData(self):
331
+ """ Initializes the control. """
332
+
333
+ colLime = wx.GREEN
334
+ colRed = wx.RED
335
+ colYellow = wx.YELLOW
336
+
337
+ self._showGrid = False
338
+ self._showFalloff = True
339
+ self._delay = 10
340
+ self._minValue = 60 # Min Range 0-60
341
+ self._medValue = 80 # Med Range 60-80
342
+ self._maxValue = 100 # Max Range 80-100
343
+ self._numBands = BAND_DEFAULT
344
+ self._ledBands = LEDS_DEFAULT
345
+ self._clrBackground = self.GetBackgroundColour()
346
+ self._clrNormal = colLime
347
+ self._clrMedium = colYellow
348
+ self._clrHigh = colRed
349
+ self._speed = DEFAULT_SPEED
350
+ self._timer = wx.Timer(self)
351
+
352
+ # clear vector data
353
+ self._meterData = []
354
+
355
+
356
+ def SetAGWWindowStyleFlag(self, agwStyle):
357
+ """
358
+ Sets the :class:`PeakMeterCtrl` window style flags.
359
+
360
+ :param `agwStyle`: the AGW-specific window style. This can be a combination of the
361
+ following bits:
362
+
363
+ ======================== =========== ========================================================
364
+ Window Styles Hex Value Description
365
+ ======================== =========== ========================================================
366
+ ``PM_HORIZONTAL`` 0x0 Shows horizontal bands in :class:`PeakMeterCtrl`.
367
+ ``PM_VERTICAL`` 0x1 Shows vertical bands in :class:`PeakMeterCtrl`.
368
+ ``PM_VERTICAL_INVERTED`` 0x2 Shows inverted vertical bands in :class:`PeakMeterCtrl`.
369
+ ======================== =========== ========================================================
370
+
371
+ """
372
+
373
+ self._agwStyle = agwStyle
374
+ self.Refresh()
375
+
376
+
377
+ def GetAGWWindowStyleFlag(self):
378
+ """
379
+ Returns the :class:`PeakMeterCtrl` window style.
380
+
381
+ :see: :meth:`PeakMeterCtrl.SetAGWWindowStyleFlag` for a list of possible window style flags.
382
+ """
383
+
384
+ return self._agwStyle
385
+
386
+
387
+ def ResetControl(self):
388
+ """ Resets the :class:`PeakMeterCtrl`. """
389
+
390
+ # Initialize vector
391
+ for i in range(self._numBands):
392
+ pm = PeakMeterData(self._maxValue, self._maxValue, self._speed)
393
+ self._meterData.append(pm)
394
+
395
+ self.Refresh()
396
+
397
+
398
+ def SetBackgroundColour(self, colourBgnd):
399
+ """
400
+ Changes the background colour of :class:`PeakMeterCtrl`.
401
+
402
+ :param `colourBgnd`: the colour to be used as the background colour, pass
403
+ :class:`NullColour` to reset to the default colour.
404
+
405
+ :note: The background colour is usually painted by the default :class:`EraseEvent`
406
+ event handler function under Windows and automatically under GTK.
407
+
408
+ :note: Setting the background colour does not cause an immediate refresh, so
409
+ you may wish to call :meth:`wx.Window.ClearBackground` or :meth:`wx.Window.Refresh` after
410
+ calling this function.
411
+
412
+ :note: Overridden from :class:`wx.Control`.
413
+ """
414
+
415
+ wx.Control.SetBackgroundColour(self, colourBgnd)
416
+ self._clrBackground = colourBgnd
417
+ self.Refresh()
418
+
419
+
420
+ def SetBandsColour(self, colourNormal, colourMedium, colourHigh):
421
+ """
422
+ Set bands colour for :class:`PeakMeterCtrl`.
423
+
424
+ :param `colourNormal`: the colour for normal (low) bands, a valid :class:`wx.Colour`
425
+ object;
426
+ :param `colourMedium`: the colour for medium bands, a valid :class:`wx.Colour`
427
+ object;
428
+ :param `colourHigh`: the colour for high bands, a valid :class:`wx.Colour`
429
+ object.
430
+ """
431
+
432
+ self._clrNormal = colourNormal
433
+ self._clrMedium = colourMedium
434
+ self._clrHigh = colourHigh
435
+
436
+ self.Refresh()
437
+
438
+
439
+ def SetMeterBands(self, numBands, ledBands):
440
+ """
441
+ Set number of vertical or horizontal bands to display.
442
+
443
+ :param `numBands`: number of bands to display (either vertical or horizontal);
444
+ :param `ledBands`: the number of leds per band.
445
+
446
+ :note: You can obtain a smooth effect by setting `nHorz` or `nVert` to "1", these
447
+ cannot be 0.
448
+ """
449
+
450
+ assert (numBands > 0 and ledBands > 0)
451
+
452
+ self._numBands = numBands
453
+ self._ledBands = ledBands
454
+
455
+ # Reset vector
456
+ self.ResetControl()
457
+
458
+
459
+ def SetRangeValue(self, minVal, medVal, maxVal):
460
+ """
461
+ Sets the ranges for low, medium and high bands.
462
+
463
+ :param `minVal`: the value for low bands;
464
+ :param `medVal`: the value for medium bands;
465
+ :param `maxVal`: the value for high bands.
466
+
467
+ :note: The conditions to be satisfied are:
468
+
469
+ Min: [0 - nMin[, Med: [nMin - nMed[, Max: [nMed - nMax]
470
+
471
+ """
472
+
473
+ assert (maxVal > medVal and medVal > minVal and minVal > 0)
474
+
475
+ self._minValue = minVal
476
+ self._medValue = medVal
477
+ self._maxValue = maxVal
478
+
479
+
480
+ def GetRangeValue(self):
481
+ """ Get range value of :class:`PeakMeterCtrl`. """
482
+
483
+ return self._minValue, self._medValue, self._maxValue
484
+
485
+
486
+ def SetFalloffDelay(self, speed):
487
+ """
488
+ Set peak value speed before falling off.
489
+
490
+ :param `speed`: the speed at which the falloff happens.
491
+ """
492
+
493
+ self._speed = speed
494
+
495
+
496
+ def SetFalloffEffect(self, falloffEffect):
497
+ """
498
+ Set falloff effect flag.
499
+
500
+ :param `falloffEffect`: ``True`` to enable the falloff effect, ``False``
501
+ to disable it.
502
+ """
503
+
504
+ if self._showFalloff != falloffEffect:
505
+
506
+ self._showFalloff = falloffEffect
507
+ self.Refresh()
508
+
509
+
510
+ def GetFalloffEffect(self):
511
+ """ Returns the falloff effect flag. """
512
+
513
+ return self._showFalloff
514
+
515
+
516
+ def ShowGrid(self, showGrid):
517
+ """
518
+ Request to have gridlines visible or not.
519
+
520
+ :param `showGrid`: ``True`` to show grid lines, ``False`` otherwise.
521
+ """
522
+
523
+ if self._showGrid != showGrid:
524
+
525
+ self._showGrid = showGrid
526
+ self.Refresh()
527
+
528
+
529
+ def IsGridVisible(self):
530
+ """ Returns if gridlines are visible. """
531
+
532
+ return self._showGrid
533
+
534
+
535
+ def SetData(self, arrayValue, offset, size):
536
+ """
537
+ Change data value. Use this function to change only
538
+ a set of values. All bands can be changed or only 1 band,
539
+ depending on the application.
540
+
541
+ :param `arrayValue`: a Python list containing the :class:`PeakMeterData` values;
542
+ :param `offset`: the (optional) offset where to start applying the new data;
543
+ :param `size`: the size of the input data.
544
+ """
545
+
546
+ assert (offset >= 0 and arrayValue != [])
547
+
548
+ isRunning = self.IsStarted()
549
+
550
+ # Stop timer if Animation is active
551
+ if isRunning:
552
+ self.Stop()
553
+
554
+ maxSize = offset + size
555
+
556
+ for i in range(offset, maxSize):
557
+
558
+ if i < len(self._meterData):
559
+
560
+ pm = self._meterData[i]
561
+ pm._value = arrayValue[i]
562
+
563
+ if pm._falloff < pm._value:
564
+
565
+ pm._falloff = pm._value
566
+ pm._peak = self._speed
567
+
568
+ self._meterData[i] = pm
569
+
570
+ # Auto-restart
571
+ if isRunning:
572
+ return self.Start(self._delay)
573
+
574
+ self.Refresh()
575
+
576
+ return True
577
+
578
+
579
+ def IsStarted(self):
580
+ """ Check if animation is active. """
581
+
582
+ return self._timer.IsRunning()
583
+
584
+
585
+ def Start(self, delay):
586
+ """
587
+ Start the timer and animation effect.
588
+
589
+ :param `delay`: the animation effect delay, in milliseconds.
590
+ """
591
+
592
+ if not self.IsStarted():
593
+ self._delay = delay
594
+ self._timer.Start(self._delay)
595
+ else:
596
+ return False
597
+
598
+ return True
599
+
600
+
601
+ def Stop(self):
602
+ """ Stop the timer and animation effect. """
603
+
604
+ if self.IsStarted():
605
+ self._timer.Stop()
606
+ return True
607
+
608
+ return False
609
+
610
+
611
+ def DoTimerProcessing(self):
612
+ """ :class:`PeakMeterCtrl` animation, does the ``wx.EVT_TIMER`` processing. """
613
+
614
+ self.Refresh()
615
+
616
+ decValue = self._maxValue//self._ledBands
617
+ noChange = True
618
+
619
+ for pm in self._meterData:
620
+
621
+ if pm._value > 0:
622
+
623
+ pm._value -= (self._ledBands > 1 and [decValue] or [self._maxValue*BAND_PERCENT//100])[0]
624
+ if pm._value < 0:
625
+ pm._value = 0
626
+
627
+ noChange = False
628
+
629
+ if pm._peak > 0:
630
+
631
+ pm._peak -= 1
632
+ noChange = False
633
+
634
+
635
+ if pm._peak == 0 and pm._falloff > 0:
636
+
637
+ pm._falloff -= (self._ledBands > 1 and [decValue >> 1] or [5])[0]
638
+ if pm._falloff < 0:
639
+ pm._falloff = 0
640
+
641
+ noChange = False
642
+
643
+ if noChange: # Stop timer if no more data
644
+
645
+ self.Stop()
646
+
647
+
648
+ def DoGetBestSize(self):
649
+ """
650
+ Gets the size which best suits the window: for a control, it would be the
651
+ minimal size which doesn't truncate the control, for a panel - the same size
652
+ as it would have after a call to `Fit()`.
653
+
654
+ :note: Overridden from :class:`wx.Control`.
655
+ """
656
+
657
+ # something is better than nothing...
658
+ return wx.Size(200, 150)
659
+
660
+
661
+ def OnPaint(self, event):
662
+ """
663
+ Handles the ``wx.EVT_PAINT`` event for :class:`PeakMeterCtrl`.
664
+
665
+ :param `event`: a :class:`PaintEvent` event to be processed.
666
+ """
667
+
668
+ dc = wx.AutoBufferedPaintDC(self)
669
+ self._clrBackground = self.GetBackgroundColour()
670
+ dc.SetBackground(wx.Brush(self._clrBackground))
671
+ dc.Clear()
672
+ rc = self.GetClientRect()
673
+
674
+ pen = wx.Pen(self._clrBackground)
675
+ dc.SetPen(pen)
676
+
677
+ if self.GetAGWWindowStyleFlag() & PM_VERTICAL:
678
+ self.DrawVertBand(dc, rc)
679
+ elif self.GetAGWWindowStyleFlag() & PM_VERTICAL_INVERTED:
680
+ self.DrawVertBandInverted(dc, rc)
681
+ else:
682
+ self.DrawHorzBand(dc, rc)
683
+
684
+
685
+ def OnEraseBackground(self, event):
686
+ """
687
+ Handles the ``wx.EVT_ERASE_BACKGROUND`` event for :class:`PeakMeterCtrl`.
688
+
689
+ :param `event`: a :class:`EraseEvent` event to be processed.
690
+
691
+ :note: This method is intentionally empty to reduce flicker.
692
+ """
693
+
694
+ # This is intentionally empty, to reduce flicker
695
+ pass
696
+
697
+
698
+ def OnSize(self, event):
699
+ """
700
+ Handles the ``wx.EVT_SIZE`` event for :class:`PeakMeterCtrl`.
701
+
702
+ :param `event`: a :class:`wx.SizeEvent` event to be processed.
703
+ """
704
+
705
+ self.Refresh()
706
+ event.Skip()
707
+
708
+
709
+ def OnTimer(self, event):
710
+ """
711
+ Handles the ``wx.EVT_TIMER`` event for :class:`PeakMeterCtrl`.
712
+
713
+ :param `event`: a :class:`TimerEvent` event to be processed.
714
+ """
715
+
716
+ self.DoTimerProcessing()
717
+
718
+
719
+ def DrawHorzBand(self, dc, rect):
720
+ """
721
+ Draws horizontal bands.
722
+
723
+ :param `dc`: an instance of :class:`wx.DC`;
724
+ :param `rect`: the horizontal bands client rectangle.
725
+
726
+ .. todo:: Implement falloff effect for horizontal bands.
727
+ """
728
+
729
+ horzBands = (self._ledBands > 1 and [self._ledBands] or [self._maxValue*BAND_PERCENT//100])[0]
730
+ minHorzLimit = self._minValue*horzBands//self._maxValue
731
+ medHorzLimit = self._medValue*horzBands//self._maxValue
732
+ maxHorzLimit = horzBands
733
+
734
+ size = wx.Size(rect.width//horzBands, rect.height//self._numBands)
735
+ rectBand = wx.Rect(rect.GetTopLeft(), size)
736
+
737
+ # Draw band from top
738
+ rectBand.Offset(0, rect.height-size.y*self._numBands)
739
+ xDecal = (self._ledBands > 1 and [1] or [0])[0]
740
+ yDecal = (self._numBands > 1 and [1] or [0])[0]
741
+ rectPrev = wx.Rect(*rectBand)
742
+
743
+ for vert in range(self._numBands):
744
+
745
+ self._value = self._meterData[vert]._value
746
+ horzLimit = self._value*horzBands//self._maxValue
747
+
748
+ for horz in range(horzBands):
749
+
750
+ rectBand.Deflate(0, yDecal)
751
+
752
+ # Find colour based on range value
753
+ colourRect = self._clrBackground
754
+ if self._showGrid:
755
+ colourRect = DarkenColour(self._clrBackground, GRID_INCREASEBY)
756
+
757
+ if self._showGrid and (horz == minHorzLimit or horz == (horzBands-1)):
758
+
759
+ points = [wx.Point() for i in range(2)]
760
+ points[0].x = rectBand.GetTopLeft().x + (rectBand.width >> 1)
761
+ points[0].y = rectBand.GetTopLeft().y - yDecal
762
+ points[1].x = points[0].x
763
+ points[1].y = rectBand.GetBottomRight().y + yDecal
764
+ dc.DrawLine(points[0], points[1])
765
+
766
+ if horz < horzLimit:
767
+
768
+ if InRange(horz, 0, minHorzLimit-1):
769
+ colourRect = self._clrNormal
770
+ elif InRange(horz, minHorzLimit, medHorzLimit-1):
771
+ colourRect = self._clrMedium
772
+ elif InRange(horz, medHorzLimit, maxHorzLimit):
773
+ colourRect = self._clrHigh
774
+
775
+ dc.SetBrush(wx.Brush(colourRect))
776
+ dc.DrawRectangle(rectBand)
777
+
778
+ rectBand.Inflate(0, yDecal)
779
+ rectBand.Offset(size.x, 0)
780
+
781
+ # Draw falloff effect (Seems to be working now.)
782
+ if self._showFalloff:
783
+ oldPen = dc.GetPen()
784
+ pen = wx.Pen(DarkenColour(self._clrBackground, FALL_INCREASEBY))
785
+ maxWidth = size.x*horzBands
786
+ points = [wx.Point() for i in range(2)]
787
+ points[0].y = rectPrev.GetTopRight().y - yDecal
788
+ points[0].x = int(rectPrev.GetBottomLeft().x + self._meterData[vert]._falloff*maxWidth/self._maxValue)
789
+ points[1].y = rectPrev.GetBottomLeft().y + yDecal
790
+ points[1].x = points[0].x
791
+ dc.SetPen(pen)
792
+ dc.DrawLine(points[0], points[1])
793
+ dc.SetPen(oldPen)
794
+
795
+ # Move to Next Vertical band
796
+ rectBand.Offset(-size.x*horzBands, size.y)
797
+
798
+
799
+ def DrawVertBand(self, dc, rect):
800
+ """
801
+ Draws vertical bands.
802
+
803
+ :param `dc`: an instance of :class:`wx.DC`;
804
+ :param `rect`: the vertical bands client rectangle.
805
+ """
806
+
807
+ vertBands = (self._ledBands > 1 and [self._ledBands] or [self._maxValue*BAND_PERCENT//100])[0]
808
+ minVertLimit = self._minValue*vertBands//self._maxValue
809
+ medVertLimit = self._medValue*vertBands//self._maxValue
810
+ maxVertLimit = vertBands
811
+
812
+ size = wx.Size(rect.width//self._numBands, rect.height//vertBands)
813
+ rectBand = wx.Rect(rect.GetTopLeft(), size)
814
+
815
+ # Draw band from bottom
816
+ rectBand.Offset(0, rect.bottom-size.y)
817
+ xDecal = (self._numBands > 1 and [1] or [0])[0]
818
+ yDecal = (self._ledBands > 1 and [1] or [0])[0]
819
+
820
+ for horz in range(self._numBands):
821
+
822
+ self._value = self._meterData[horz]._value
823
+ vertLimit = self._value*vertBands//self._maxValue
824
+ rectPrev = wx.Rect(*rectBand)
825
+
826
+ for vert in range(vertBands):
827
+
828
+ rectBand.Deflate(xDecal, 0)
829
+
830
+ # Find colour based on range value
831
+ colourRect = self._clrBackground
832
+ if self._showGrid:
833
+ colourRect = DarkenColour(self._clrBackground, GRID_INCREASEBY)
834
+
835
+ # Draw grid line (level) bar
836
+ if self._showGrid and (vert == minVertLimit or vert == (vertBands-1)):
837
+
838
+ points = [wx.Point() for i in range(2)]
839
+ points[0].x = rectBand.GetTopLeft().x - xDecal
840
+ points[0].y = rectBand.GetTopLeft().y + (rectBand.height >> 1)
841
+ points[1].x = rectBand.GetBottomRight().x + xDecal
842
+ points[1].y = points[0].y
843
+ dc.DrawLine(points[0], points[1])
844
+
845
+ if vert < vertLimit:
846
+
847
+ if InRange(vert, 0, minVertLimit-1):
848
+ colourRect = self._clrNormal
849
+ elif InRange(vert, minVertLimit, medVertLimit-1):
850
+ colourRect = self._clrMedium
851
+ elif InRange(vert, medVertLimit, maxVertLimit):
852
+ colourRect = self._clrHigh
853
+
854
+ dc.SetBrush(wx.Brush(colourRect))
855
+ dc.DrawRectangle(rectBand)
856
+
857
+ rectBand.Inflate(xDecal, 0)
858
+ rectBand.Offset(0, -size.y)
859
+
860
+ # Draw falloff effect
861
+ if self._showFalloff:
862
+
863
+ oldPen = dc.GetPen()
864
+ pen = wx.Pen(DarkenColour(self._clrBackground, FALL_INCREASEBY))
865
+ maxHeight = size.y*vertBands
866
+ points = [wx.Point() for i in range(2)]
867
+ points[0].x = rectPrev.GetTopLeft().x + xDecal
868
+ points[0].y = rectPrev.GetBottomRight().y - self._meterData[horz]._falloff*maxHeight//self._maxValue
869
+ points[1].x = rectPrev.GetBottomRight().x - xDecal
870
+ points[1].y = points[0].y
871
+ dc.SetPen(pen)
872
+ dc.DrawLine(points[0], points[1])
873
+ dc.SetPen(oldPen)
874
+
875
+ # Move to Next Horizontal band
876
+ rectBand.Offset(size.x, size.y*vertBands)
877
+
878
+
879
+ def DrawVertBandInverted(self, dc, rect):
880
+ """
881
+ Draws vertical bands inverted.
882
+
883
+ :param `dc`: an instance of :class:`wx.DC`;
884
+ :param `rect`: the vertical bands client rectangle.
885
+ """
886
+
887
+ vertBands = (self._ledBands > 1 and [self._ledBands] or [self._maxValue*BAND_PERCENT//100])[0]
888
+ minVertLimit = self._minValue*vertBands//self._maxValue
889
+ medVertLimit = self._medValue*vertBands//self._maxValue
890
+ maxVertLimit = vertBands
891
+
892
+ size = wx.Size(rect.width//self._numBands, rect.height//vertBands)
893
+ rectBand = wx.Rect(rect.GetTopLeft(), size)
894
+
895
+ # Draw band from top?
896
+ rectBand.Offset(0, 0)
897
+ xDecal = (self._numBands > 1 and [1] or [0])[0]
898
+ yDecal = (self._ledBands > 1 and [1] or [0])[0]
899
+
900
+ for horz in range(self._numBands):
901
+
902
+ self._value = self._meterData[horz]._value
903
+ vertLimit = self._value*vertBands//self._maxValue
904
+ rectPrev = wx.Rect(*rectBand)
905
+
906
+ for vert in range(vertBands):
907
+
908
+ rectBand.Deflate(xDecal, 0)
909
+
910
+ # Find colour based on range value
911
+ colourRect = self._clrBackground
912
+ if self._showGrid:
913
+ colourRect = DarkenColour(self._clrBackground, GRID_INCREASEBY)
914
+
915
+ # Draw grid line (level) bar
916
+ if self._showGrid and (vert == minVertLimit or vert == (vertBands-1)):
917
+
918
+ points = [wx.Point() for i in range(2)]
919
+ points[0].x = rectBand.GetTopLeft().x - xDecal
920
+ points[0].y = rectBand.GetTopLeft().y + (rectBand.height >> 1)
921
+ points[1].x = rectBand.GetBottomRight().x + xDecal
922
+ points[1].y = points[0].y
923
+ dc.DrawLine(points[0], points[1])
924
+
925
+ if vert < vertLimit:
926
+
927
+ if InRange(vert, 0, minVertLimit-1):
928
+ colourRect = self._clrNormal
929
+ elif InRange(vert, minVertLimit, medVertLimit-1):
930
+ colourRect = self._clrMedium
931
+ elif InRange(vert, medVertLimit, maxVertLimit):
932
+ colourRect = self._clrHigh
933
+
934
+ dc.SetBrush(wx.Brush(colourRect))
935
+ dc.DrawRectangle(rectBand)
936
+
937
+ rectBand.Inflate(xDecal, 0)
938
+ rectBand.Offset(0, size.y)
939
+
940
+ # Draw falloff effect
941
+ if self._showFalloff:
942
+
943
+ oldPen = dc.GetPen()
944
+ pen = wx.Pen(DarkenColour(self._clrBackground, FALL_INCREASEBY))
945
+ maxHeight = -size.y*vertBands
946
+ points = [wx.Point() for i in range(2)]
947
+ points[0].x = rectPrev.GetBottomLeft().x + xDecal
948
+ points[0].y = rectPrev.GetTopRight().y - self._meterData[horz]._falloff*maxHeight/self._maxValue
949
+ points[1].x = rectPrev.GetTopRight().x - xDecal
950
+ points[1].y = points[0].y
951
+ dc.SetPen(pen)
952
+ dc.DrawLine(points[0], points[1])
953
+ dc.SetPen(oldPen)
954
+
955
+ # Move to Next Horizontal band
956
+ rectBand.Offset(size.x, -size.y*vertBands)
957
+
958
+ if __name__ == '__main__':
959
+
960
+ import wx
961
+ import random
962
+
963
+ class MyFrame(wx.Frame):
964
+
965
+ def __init__(self, parent):
966
+
967
+ wx.Frame.__init__(self, parent, -1, "PeakMeterCtrl Demo")
968
+
969
+ panel = wx.Panel(self)
970
+
971
+ # Initialize Peak Meter control 1
972
+ self.vertPeak = PeakMeterCtrl(panel, -1, style=wx.SIMPLE_BORDER, agwStyle=PM_VERTICAL)
973
+ # Initialize Peak Meter control 2
974
+ self.horzPeak = PeakMeterCtrl(panel, -1, style=wx.SUNKEN_BORDER, agwStyle=PM_HORIZONTAL)
975
+
976
+ self.vertPeak.SetMeterBands(10, 15)
977
+ self.horzPeak.SetMeterBands(10, 15)
978
+
979
+ # Layout the two PeakMeterCtrl
980
+ mainSizer = wx.BoxSizer(wx.HORIZONTAL)
981
+ mainSizer.Add(self.vertPeak, 0, wx.EXPAND|wx.ALL, 15)
982
+ mainSizer.Add(self.horzPeak, 0, wx.EXPAND|wx.ALL, 15)
983
+
984
+ panel.SetSizer(mainSizer)
985
+ mainSizer.Layout()
986
+
987
+ self.timer = wx.Timer(self)
988
+ self.Bind(wx.EVT_TIMER, self.OnTimer)
989
+
990
+ wx.CallLater(500, self.Start)
991
+
992
+
993
+ def Start(self):
994
+ ''' Starts the PeakMeterCtrl. '''
995
+
996
+ self.timer.Start(1000//2) # 2 fps
997
+
998
+ self.vertPeak.Start(1000//18) # 18 fps
999
+ self.horzPeak.Start(1000//20) # 20 fps
1000
+
1001
+
1002
+ def OnTimer(self, event):
1003
+ '''
1004
+ Handles the ``wx.EVT_TIMER`` event for :class:`PeakMeterCtrl`.
1005
+
1006
+ :param `event`: a :class:`TimerEvent` event to be processed.
1007
+ '''
1008
+
1009
+ # Generate 15 random number and set them as data for the meter
1010
+ nElements = 15
1011
+ arrayData = []
1012
+
1013
+ for i in range(nElements):
1014
+ nRandom = random.randint(0, 100)
1015
+ arrayData.append(nRandom)
1016
+
1017
+ self.vertPeak.SetData(arrayData, 0, nElements)
1018
+ self.horzPeak.SetData(arrayData, 0, nElements)
1019
+
1020
+
1021
+ # our normal wxApp-derived class, as usual
1022
+
1023
+ app = wx.App(0)
1024
+
1025
+ frame = MyFrame(None)
1026
+ app.SetTopWindow(frame)
1027
+ frame.Show()
1028
+
1029
+ app.MainLoop()