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/agw/piectrl.py ADDED
@@ -0,0 +1,1082 @@
1
+ # --------------------------------------------------------------------------- #
2
+ # PIECTRL Control wxPython IMPLEMENTATION
3
+ # Python Code By:
4
+ #
5
+ # Andrea Gavana, @ 31 Oct 2005
6
+ # Latest Revision: 16 Jul 2012, 15.00 GMT
7
+ #
8
+ #
9
+ # TODO List/Caveats
10
+ #
11
+ # 1. Maybe Integrate The Very Nice PyOpenGL Implementation Of A PieChart Coded
12
+ # By Will McGugan?
13
+ #
14
+ # 2. Not Tested On Other Platforms, Only On Windows 2000/XP, With Python 2.4.1
15
+ # And wxPython 2.6.1.0
16
+ #
17
+ # For All Kind Of Problems, Requests Of Enhancements And Bug Reports, Please
18
+ # Write To Me At:
19
+ #
20
+ # andrea.gavana@gmail.com
21
+ # andrea.gavana@maerskoil.com
22
+ #
23
+ # Or, Obviously, To The wxPython Mailing List!!!
24
+ #
25
+ # Tags: phoenix-port, unittest, documented, py3-port
26
+ #
27
+ # End Of Comments
28
+ # --------------------------------------------------------------------------- #
29
+
30
+
31
+ """
32
+ :class:`~wx.lib.agw.piectrl.PieCtrl` and :class:`~wx.lib.agw.piectrl.ProgressPie` are simple classes that reproduce the behavior of a pie
33
+ chart.
34
+
35
+
36
+ Description
37
+ ===========
38
+
39
+ :class:`PieCtrl` and :class:`ProgressPie` are simple classes that reproduce the behavior of a pie
40
+ chart. They use only pure wxPython classes/methods, without external dependencies.
41
+ :class:`PieCtrl` is somewhat a "static" control, that you may create in order to display
42
+ a simple pie chart on a :class:`Panel` or similar. :class:`ProgressPie` tries to emulate the
43
+ behavior of :class:`ProgressDialog`, but using a pie chart instead of a gauge.
44
+
45
+
46
+ Usage
47
+ =====
48
+
49
+ Usage example::
50
+
51
+ import wx
52
+ import wx.lib.agw.piectrl as PC
53
+
54
+ class MyFrame(wx.Frame):
55
+
56
+ def __init__(self, parent):
57
+
58
+ wx.Frame.__init__(self, parent, -1, "PieCtrl Demo")
59
+
60
+ panel = wx.Panel(self)
61
+
62
+ # create a simple PieCtrl with 3 sectors
63
+ mypie = PC.PieCtrl(panel, -1, wx.DefaultPosition, wx.Size(180,270))
64
+
65
+ part = PC.PiePart()
66
+
67
+ part.SetLabel("Label 1")
68
+ part.SetValue(300)
69
+ part.SetColour(wx.Colour(200, 50, 50))
70
+ mypie._series.append(part)
71
+
72
+ part = PC.PiePart()
73
+
74
+ part.SetLabel("Label 2")
75
+ part.SetValue(200)
76
+ part.SetColour(wx.Colour(50, 200, 50))
77
+ mypie._series.append(part)
78
+
79
+ part = PC.PiePart()
80
+
81
+ part.SetLabel("helloworld label 3")
82
+ part.SetValue(50)
83
+ part.SetColour(wx.Colour(50, 50, 200))
84
+ mypie._series.append(part)
85
+
86
+ # create a ProgressPie
87
+ progress_pie = PC.ProgressPie(panel, 100, 50, -1, wx.DefaultPosition,
88
+ wx.Size(180, 200), wx.SIMPLE_BORDER)
89
+
90
+ progress_pie.SetBackColour(wx.Colour(150, 200, 255))
91
+ progress_pie.SetFilledColour(wx.RED)
92
+ progress_pie.SetUnfilledColour(wx.WHITE)
93
+ progress_pie.SetHeight(20)
94
+
95
+ main_sizer = wx.BoxSizer(wx.HORIZONTAL)
96
+
97
+ main_sizer.Add(mypie, 1, wx.EXPAND | wx.ALL, 5)
98
+ main_sizer.Add(progress_pie, 1, wx.EXPAND | wx.ALL, 5)
99
+
100
+ panel.SetSizer(main_sizer)
101
+ main_sizer.Layout()
102
+
103
+
104
+ # our normal wxApp-derived class, as usual
105
+
106
+ app = wx.App(0)
107
+
108
+ frame = MyFrame(None)
109
+ app.SetTopWindow(frame)
110
+ frame.Show()
111
+
112
+ app.MainLoop()
113
+
114
+
115
+
116
+ Methods and Settings
117
+ ====================
118
+
119
+ With :class:`PieCtrl` you can:
120
+
121
+ - Create a :class:`PieCtrl` with different sectors;
122
+ - Set the sector values, colours and labels;
123
+ - Assign a legend to the :class:`PieCtrl`;
124
+ - Use an image as the :class:`PieCtrl` background;
125
+ - Change the vertical rotation (perspective) of the :class:`PieCtrl`;
126
+ - Show/hide the segment edges.
127
+
128
+
129
+ Window Styles
130
+ =============
131
+
132
+ `No particular window styles are available for this class.`
133
+
134
+
135
+ Events Processing
136
+ =================
137
+
138
+ `No custom events are available for this class.`
139
+
140
+
141
+ License And Version
142
+ ===================
143
+
144
+ :class:`PieCtrl` is distributed under the wxPython license.
145
+
146
+ Latest revision: Andrea Gavana @ 16 Jul 2012, 15.00 GMT
147
+
148
+ Version 0.3
149
+
150
+ """
151
+
152
+
153
+ #----------------------------------------------------------------------
154
+ # Beginning Of PIECTRL wxPython Code
155
+ #----------------------------------------------------------------------
156
+
157
+
158
+ import wx
159
+
160
+ from math import pi, sin, cos
161
+
162
+ #----------------------------------------------------------------------
163
+ # Class PieCtrlLegend
164
+ # This Class Handles The Legend For The Classic PieCtrl.
165
+ #----------------------------------------------------------------------
166
+
167
+ class PieCtrlLegend(wx.Window):
168
+ """
169
+ This class displays a legend window for the classic :class:`PieCtrl`.
170
+ """
171
+
172
+ def __init__(self, parent, title, id=wx.ID_ANY, pos=wx.DefaultPosition,
173
+ size=wx.DefaultSize, style=0):
174
+ """
175
+ Default class constructor.
176
+
177
+ :param `parent`: the :class:`PieCtrlLegend` parent;
178
+ :param `title`: the legend title;
179
+ :param `id`: window identifier. A value of -1 indicates a default value;
180
+ :param `pos`: the control position. A value of (-1, -1) indicates a default position,
181
+ chosen by either the windowing system or wxPython, depending on platform;
182
+ :param `size`: the control size. A value of (-1, -1) indicates a default size,
183
+ chosen by either the windowing system or wxPython, depending on platform;
184
+ :param `style`: the window style (unused).
185
+ """
186
+
187
+ wx.Window.__init__(self, parent, id, pos, size, style)
188
+
189
+ self._title = title
190
+ self._istransparent = False
191
+ self._horborder = 5
192
+ self._verborder = 5
193
+ self._titlecolour = wx.Colour(0, 0, 127)
194
+ self._labelcolour = wx.BLACK
195
+ self._labelfont = wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT)
196
+ self._backcolour = wx.YELLOW
197
+ self._backgroundDC = wx.MemoryDC()
198
+ self._parent = parent
199
+
200
+ self.Bind(wx.EVT_ERASE_BACKGROUND, lambda x: None)
201
+ self.Bind(wx.EVT_PAINT, self.OnPaint)
202
+
203
+
204
+ def SetTransparent(self, value=False):
205
+ """
206
+ Toggles the legend transparency (visibility).
207
+
208
+ :param `value`: ``True`` to set the legend as transparent, ``False`` otherwise.
209
+ """
210
+
211
+ self._istransparent = value
212
+ self.Refresh()
213
+
214
+
215
+ def RecreateBackground(self, parentdc):
216
+ """
217
+ Recreates the legend background.
218
+
219
+ :param `parentdc`: an instance of :class:`wx.DC`.
220
+ """
221
+
222
+ w, h = self.GetSize()
223
+ self._background = wx.Bitmap(w, h)
224
+ self._backgroundDC.SelectObject(self._background)
225
+
226
+ if self.IsTransparent():
227
+
228
+ self._backgroundDC.Blit(0, 0, w, h, parentdc, self.GetPosition().x,
229
+ self.GetPosition().y)
230
+
231
+ else:
232
+
233
+ self._backgroundDC.SetBackground(wx.Brush(self._backcolour))
234
+ self._backgroundDC.Clear()
235
+
236
+ self.Refresh()
237
+
238
+
239
+ def SetHorizontalBorder(self, value):
240
+ """
241
+ Sets the legend's horizontal border.
242
+
243
+ :param `value`: the horizontal border thickness, in pixels.
244
+ """
245
+
246
+ self._horborder = value
247
+ self.Refresh()
248
+
249
+
250
+ def GetHorizontalBorder(self):
251
+ """ Returns the legend's horizontal border, in pixels. """
252
+
253
+ return self._horborder
254
+
255
+
256
+ def SetVerticalBorder(self, value):
257
+ """
258
+ Sets the legend's vertical border.
259
+
260
+ :param `value`: the horizontal border thickness, in pixels.
261
+ """
262
+
263
+ self._verborder = value
264
+ self.Refresh()
265
+
266
+
267
+ def GetVerticalBorder(self):
268
+ """ Returns the legend's vertical border, in pixels. """
269
+
270
+ return self._verborder
271
+
272
+
273
+ def SetLabelColour(self, colour):
274
+ """
275
+ Sets the legend label colour.
276
+
277
+ :param `colour`: a valid :class:`wx.Colour` object.
278
+ """
279
+
280
+ self._labelcolour = colour
281
+ self.Refresh()
282
+
283
+
284
+ def GetLabelColour(self):
285
+ """ Returns the legend label colour. """
286
+
287
+ return self._labelcolour
288
+
289
+
290
+ def SetLabelFont(self, font):
291
+ """
292
+ Sets the legend label font.
293
+
294
+ :param `font`: a valid :class:`wx.Font` object.
295
+ """
296
+
297
+ self._labelfont = font
298
+ self.Refresh()
299
+
300
+
301
+ def GetLabelFont(self):
302
+ """ Returns the legend label font. """
303
+
304
+ return self._labelfont
305
+
306
+
307
+ def SetBackColour(self, colour):
308
+ """
309
+ Sets the legend background colour.
310
+
311
+ :param `colour`: a valid :class:`wx.Colour` object.
312
+ """
313
+
314
+ self._backcolour = colour
315
+ self.Refresh()
316
+
317
+
318
+ def GetBackColour(self):
319
+ """ Returns the legend background colour. """
320
+
321
+ return self._backcolour
322
+
323
+
324
+ def IsTransparent(self):
325
+ """ Returns whether the legend background is transparent or not. """
326
+
327
+ return self._istransparent
328
+
329
+
330
+ def OnPaint(self, event):
331
+ """
332
+ Handles the ``wx.EVT_PAINT`` event for :class:`PieCtrlLegend`.
333
+
334
+ :param `event`: a :class:`PaintEvent` event to be processed.
335
+ """
336
+
337
+ pdc = wx.PaintDC(self)
338
+
339
+ w, h = self.GetSize()
340
+ bmp = wx.Bitmap(w, h)
341
+ mdc = wx.MemoryDC()
342
+ mdc.SelectObject(bmp)
343
+
344
+ if self.IsTransparent():
345
+
346
+ parentdc = wx.ClientDC(self.GetParent())
347
+ mdc.Blit(0, 0, w, h, self._backgroundDC, 0, 0)
348
+
349
+ else:
350
+
351
+ mdc.SetBackground(wx.Brush(self._backcolour))
352
+ mdc.Clear()
353
+
354
+ dy = self._verborder
355
+ mdc.SetFont(self._labelfont)
356
+ mdc.SetTextForeground(self._labelcolour)
357
+ maxwidth = 0
358
+
359
+ # local opts
360
+ wxBrush = wx.Brush
361
+ _parent_series = self._parent._series
362
+ _horborder = self._horborder
363
+ mdc_GetTextExtent = mdc.GetTextExtent
364
+ mdc_SetBrush = mdc.SetBrush
365
+ mdc_DrawCircle = mdc.DrawCircle
366
+ mdc_DrawText = mdc.DrawText
367
+
368
+ for ii in range(len(_parent_series)):
369
+
370
+ tw, th = mdc_GetTextExtent(_parent_series[ii].GetLabel())
371
+ mdc_SetBrush(wxBrush(_parent_series[ii].GetColour()))
372
+ mdc_DrawCircle(_horborder+5, dy+th//2, 5)
373
+ mdc_DrawText(_parent_series[ii].GetLabel(), _horborder+15, dy)
374
+ dy = dy + th + 3
375
+ maxwidth = max(maxwidth, int(2*_horborder+tw+15))
376
+
377
+ dy = dy + self._verborder
378
+ if w != maxwidth or h != dy:
379
+ self.SetSize((maxwidth, dy))
380
+
381
+ pdc.Blit(0, 0, w, h, mdc, 0, 0)
382
+
383
+
384
+ #----------------------------------------------------------------------
385
+ # Class PiePart
386
+ # This Class Handles The Legend Segments Properties, Such As Value,
387
+ # Colour And Label.
388
+ #----------------------------------------------------------------------
389
+
390
+ class PiePart(object):
391
+ """
392
+ This class handles the legend segments properties, such as value,
393
+ colour and label.
394
+ """
395
+
396
+ def __init__(self, value=0, colour=wx.BLACK, label=""):
397
+ """
398
+ Default class constructor.
399
+
400
+ :param `value`: the pie part value;
401
+ :param `colour`: the pie part colour;
402
+ :param `label`: the pie part text label.
403
+ """
404
+
405
+ self._value = value
406
+ self._colour = colour
407
+ self._label = label
408
+
409
+
410
+ def SetValue(self, value):
411
+ """
412
+ Sets the segment absolute value.
413
+
414
+ :param `value`: a floating point number representing the :class:`PiePart` value.
415
+ """
416
+
417
+ self._value = value
418
+
419
+
420
+ def GetValue(self):
421
+ """ Returns the segment absolute value. """
422
+
423
+ return self._value
424
+
425
+
426
+ def SetColour(self, colour):
427
+ """
428
+ Sets the segment colour.
429
+
430
+ :param `colour`: a valid :class:`wx.Colour` object.
431
+ """
432
+
433
+ self._colour = colour
434
+
435
+
436
+ def GetColour(self):
437
+ """ Returns the segment colour. """
438
+
439
+ return self._colour
440
+
441
+
442
+ def SetLabel(self, label):
443
+ """
444
+ Sets the segment label.
445
+
446
+ :param `label`: the pie part text label.
447
+ """
448
+
449
+ self._label = label
450
+
451
+
452
+ def GetLabel(self):
453
+ """ Returns the segment label. """
454
+
455
+ return self._label
456
+
457
+
458
+ #----------------------------------------------------------------------
459
+ # Class PieCtrl
460
+ # This Is The Main PieCtrl Implementation, Used Also By ProgressPie.
461
+ #----------------------------------------------------------------------
462
+
463
+ class PieCtrl(wx.Window):
464
+ """
465
+ :class:`PieCtrl` is somewhat a "static" control, that you may create in order to display
466
+ a simple pie chart on a :class:`Panel` or similar.
467
+ """
468
+
469
+ def __init__(self, parent, id=wx.ID_ANY, pos=wx.DefaultPosition,
470
+ size=wx.DefaultSize, style=0, name="PieCtrl"):
471
+ """
472
+ Default class constructor.
473
+
474
+ :param `parent`: the :class:`PieCtrl` parent. Must not be ``None``;
475
+ :param `id`: window identifier. A value of -1 indicates a default value;
476
+ :param `pos`: the control position. A value of (-1, -1) indicates a default position,
477
+ chosen by either the windowing system or wxPython, depending on platform;
478
+ :param `size`: the control size. A value of (-1, -1) indicates a default size,
479
+ chosen by either the windowing system or wxPython, depending on platform;
480
+ :param `style`: the window style (unused);
481
+ :param `name`: the window name.
482
+ """
483
+
484
+ wx.Window.__init__(self, parent, id, pos, size, style, name)
485
+
486
+ self._angle = pi/12.0
487
+ self._rotationangle = 0
488
+ self._height = 10
489
+ self._background = wx.NullBitmap
490
+ self._canvasbitmap = wx.Bitmap(1, 1)
491
+ self._canvasDC = wx.MemoryDC()
492
+ self._backcolour = wx.WHITE
493
+ self._showedges = True
494
+ self._series = []
495
+
496
+ self.Bind(wx.EVT_ERASE_BACKGROUND, lambda x: None)
497
+ self.Bind(wx.EVT_SIZE, self.OnSize)
498
+ self.Bind(wx.EVT_PAINT, self.OnPaint)
499
+
500
+ self.RecreateCanvas()
501
+ self._legend = PieCtrlLegend(self, "PieCtrl", -1, wx.Point(10,10), wx.Size(100,75))
502
+
503
+
504
+ def SetBackground(self, bmp):
505
+ """
506
+ Sets the :class:`PieCtrl` background image.
507
+
508
+ :param `bmp`: a valid :class:`wx.Bitmap` object.
509
+ """
510
+
511
+ self._background = bmp
512
+ self.Refresh()
513
+
514
+
515
+ def GetBackground(self):
516
+ """ Returns the :class:`PieCtrl` background image. """
517
+
518
+ return self._background
519
+
520
+
521
+ def OnSize(self, event):
522
+ """
523
+ Handles the ``wx.EVT_SIZE`` event for :class:`PieCtrl`.
524
+
525
+ :param `event`: a :class:`wx.SizeEvent` event to be processed.
526
+ """
527
+
528
+ self.RecreateCanvas()
529
+ self.Refresh()
530
+ event.Skip()
531
+
532
+
533
+ def RecreateCanvas(self):
534
+ """ Recreates the :class:`PieCtrl` container (canvas). """
535
+
536
+ self._canvasbitmap = wx.Bitmap(max(1, self.GetSize().GetWidth()),
537
+ max(1, self.GetSize().GetHeight()))
538
+ self._canvasDC.SelectObject(self._canvasbitmap)
539
+
540
+
541
+ def GetPartAngles(self):
542
+ """ Returns the angles associated to all segments. """
543
+
544
+ angles = []
545
+ total = 0.0
546
+
547
+ _series = self._series # local opt
548
+
549
+ for ii in range(len(_series)):
550
+ total = total + _series[ii].GetValue()
551
+
552
+ current = 0.0
553
+ angles.append(current)
554
+
555
+ for ii in range(len(_series)):
556
+
557
+ current = current + _series[ii].GetValue()
558
+ angles.append(360.0*current/total)
559
+
560
+ return angles
561
+
562
+
563
+ def SetAngle(self, angle):
564
+ """
565
+ Sets the orientation angle for :class:`PieCtrl`.
566
+
567
+ :param `angle`: the orientation angle for :class:`PieCtrl`, in radians.
568
+ """
569
+ if angle < 0:
570
+ angle = 0
571
+ if angle > pi/2:
572
+ angle = pi/2
573
+
574
+ self._angle = angle
575
+ self.Refresh()
576
+
577
+
578
+ def GetAngle(self):
579
+ """ Returns the orientation angle for :class:`PieCtrl`, in radians. """
580
+
581
+ return self._angle
582
+
583
+
584
+ def SetRotationAngle(self, angle):
585
+ """
586
+ Sets the angle at which the first sector starts.
587
+
588
+ :param `angle`: the first sector angle, in radians.
589
+ """
590
+
591
+ if angle < 0:
592
+ angle = 0
593
+ if angle > 2*pi:
594
+ angle = 2*pi
595
+
596
+ self._rotationangle = angle
597
+ self.Refresh()
598
+
599
+
600
+ def GetRotationAngle(self):
601
+ """ Returns the angle at which the first sector starts, in radians. """
602
+
603
+ return self._rotationangle
604
+
605
+
606
+ def SetShowEdges(self, value=True):
607
+ """
608
+ Sets whether the :class:`PieCtrl` edges are visible or not.
609
+
610
+ :param `value`: ``True`` to show the edges, ``False`` to hide them.
611
+ """
612
+
613
+ self._showedges = value
614
+ self.Refresh()
615
+
616
+
617
+ def GetShowEdges(self):
618
+ """ Returns whether the :class:`PieCtrl` edges are visible or not. """
619
+
620
+ return self._showedges
621
+
622
+
623
+ def SetBackColour(self, colour):
624
+ """
625
+ Sets the :class:`PieCtrl` background colour.
626
+
627
+ :param `colour`: a valid :class:`wx.Colour` object.
628
+ """
629
+
630
+ self._backcolour = colour
631
+ self.Refresh()
632
+
633
+
634
+ def GetBackColour(self):
635
+ """ Returns the :class:`PieCtrl` background colour. """
636
+
637
+ return self._backcolour
638
+
639
+
640
+ def SetHeight(self, value):
641
+ """
642
+ Sets the height (in pixels) of the :class:`PieCtrl`.
643
+
644
+ :param `value`: the new height of the widget, in pixels.
645
+ """
646
+
647
+ self._height = value
648
+
649
+
650
+ def GetHeight(self):
651
+ """ Returns the height (in pixels) of the :class:`PieCtrl`. """
652
+
653
+ return self._height
654
+
655
+
656
+ def GetLegend(self):
657
+ """ Returns the :class:`PieCtrl` legend. """
658
+
659
+ return self._legend
660
+
661
+
662
+ def DrawParts(self, dc, cx, cy, w, h):
663
+ """
664
+ Draws the :class:`PieCtrl` external edges.
665
+
666
+ :param `dc`: an instance of :class:`wx.DC`;
667
+ :param `cx`: the part `x` coordinate;
668
+ :param `cy`: the part `y` coordinate;
669
+ :param `w`: the control's width;
670
+ :param `h`: the control's height.
671
+ """
672
+
673
+ # local opts
674
+ _angle = self._angle
675
+ _rotationangle = self._rotationangle
676
+ wxPen = wx.Pen
677
+ wxBrush = wx.Brush
678
+ dc_SetPen = dc.SetPen
679
+ dc_SetBrush = dc.SetBrush
680
+ dc_DrawEllipticArc = dc.DrawEllipticArc
681
+
682
+ angles = self.GetPartAngles()
683
+ oldpen = dc.GetPen()
684
+
685
+ if self._showedges:
686
+ dc_SetPen(wx.BLACK_PEN)
687
+
688
+ for ii in range(len(angles)):
689
+ if ii > 0:
690
+ if not self._showedges:
691
+ dc_SetPen(wxPen(self._series[ii-1].GetColour()))
692
+
693
+ dc_SetBrush(wxBrush(self._series[ii-1].GetColour()))
694
+
695
+ if angles[ii-1] != angles[ii]:
696
+ height = int(h*sin(_angle))
697
+ if height > 0:
698
+ dc_DrawEllipticArc(0, int((1-sin(_angle))*(h//2)+cy),
699
+ w, height,
700
+ angles[ii-1]+_rotationangle/pi*180,
701
+ angles[ii]+_rotationangle/pi*180)
702
+
703
+ if len(self._series) == 1:
704
+ height = int(h*sin(_angle))
705
+ if height > 0:
706
+ dc_SetBrush(wxBrush(self._series[0].GetColour()))
707
+ dc_DrawEllipticArc(0, int((1-sin(_angle))*(h//2)+cy),
708
+ w, height, 0, 360)
709
+
710
+ dc_SetPen(oldpen)
711
+
712
+
713
+ def Draw(self, dc):
714
+ """
715
+ Draws all the sectors of :class:`PieCtrl`.
716
+
717
+ :param `dc`: an instance of :class:`wx.DC`.
718
+ """
719
+
720
+ w, h = self.GetSize()
721
+
722
+ # local opts
723
+ _angle = self._angle
724
+ _rotationangle = self._rotationangle
725
+ _height = self._height
726
+ _canvasDC = self._canvasDC
727
+ wxBrush = wx.Brush
728
+ wxPen = wx.Pen
729
+ wxColour = wx.Colour
730
+ _canvasDC_SetBrush = _canvasDC.SetBrush
731
+ _canvasDC_SetPen = _canvasDC.SetPen
732
+ _canvasDC_GetPen = _canvasDC.GetPen
733
+ _canvasDC_DrawPolygon = _canvasDC.DrawPolygon
734
+ tau = pi * 2
735
+
736
+ _canvasDC.SetBackground(wx.WHITE_BRUSH)
737
+ _canvasDC.Clear()
738
+
739
+ if self._background != wx.NullBitmap:
740
+ ## for ii in range(0, w, self._background.GetWidth()):
741
+ ## for jj in range(0, h, self._background.GetHeight()):
742
+ ## _canvasDC.DrawBitmap(self._background, ii, jj)
743
+ _background = self._background
744
+ bw, bh = _background.GetSize()
745
+ _canvasDC_DrawBitmap = _canvasDC.DrawBitmap
746
+ [_canvasDC_DrawBitmap(_background, ii, jj)
747
+ for jj in range(0, h, bh)
748
+ for ii in range(0, w, bw)]
749
+ else:
750
+ _canvasDC.SetBackground(wxBrush(self._backcolour))
751
+ _canvasDC.Clear()
752
+
753
+ if len(self._series) > 0:
754
+ _series = self._series # local opt
755
+
756
+ if _angle <= pi/2:
757
+ self.DrawParts(_canvasDC, 0, int(_height*cos(_angle)), w, h)
758
+ else:
759
+ self.DrawParts(_canvasDC, 0, 0, w, h)
760
+
761
+ points = [[0, 0]]*4
762
+ triangle = [[0, 0]]*3
763
+ _canvasDC_SetPen(wx.BLACK_PEN)
764
+ angles = self.GetPartAngles()
765
+ angleindex = 0
766
+ c = _series[angleindex].GetColour()
767
+ _canvasDC_SetBrush(wxBrush(wxColour(c.red, c.green, c.blue)))
768
+ changeangle = False
769
+ x = 0.0
770
+
771
+ while x <= tau:
772
+
773
+ changeangle = False
774
+
775
+ if angleindex < len(angles):
776
+
777
+ if x/pi*180.0 >= angles[angleindex+1]:
778
+
779
+ changeangle = True
780
+ x = angles[angleindex+1]*pi/180.0
781
+
782
+ points[0] = points[1]
783
+ px = int(w/2.0*(1+cos(x+_rotationangle)))
784
+ py = int(h/2.0-sin(_angle)*h/2.0*sin(x+_rotationangle)-1)
785
+ points[1] = [px, py]
786
+ triangle[0] = [w // 2, h // 2]
787
+ triangle[1] = points[0]
788
+ triangle[2] = points[1]
789
+
790
+ if x > 0:
791
+
792
+ _canvasDC_SetBrush(wxBrush(_series[angleindex].GetColour()))
793
+ oldPen = _canvasDC_GetPen()
794
+ _canvasDC_SetPen(wxPen(_series[angleindex].GetColour()))
795
+ _canvasDC_DrawPolygon(triangle)
796
+ _canvasDC_SetPen(oldPen)
797
+
798
+ if changeangle:
799
+
800
+ angleindex = angleindex + 1
801
+
802
+ x = x + 0.05
803
+
804
+ points[0] = points[1]
805
+ px = int(w/2.0 * (1+cos(tau+_rotationangle)))
806
+ py = int(h/2.0-sin(_angle)*h/2.0*sin(tau+_rotationangle)-1)
807
+ points[1] = [px, py]
808
+ triangle[0] = [w // 2, h // 2]
809
+ triangle[1] = points[0]
810
+ triangle[2] = points[1]
811
+
812
+ _canvasDC_SetBrush(wxBrush(_series[angleindex].GetColour()))
813
+ oldPen = _canvasDC_GetPen()
814
+ _canvasDC_SetPen(wxPen(_series[angleindex].GetColour()))
815
+ _canvasDC_DrawPolygon(triangle)
816
+
817
+ _canvasDC_SetPen(oldPen)
818
+ angleindex = 0
819
+
820
+ x = 0.0
821
+
822
+ while x <= tau:
823
+
824
+ changeangle = False
825
+ if angleindex < len(angles):
826
+
827
+ if x/pi*180 >= angles[angleindex+1]:
828
+
829
+ changeangle = True
830
+ x = angles[angleindex+1]*pi/180
831
+
832
+ points[0] = points[1]
833
+ points[3] = points[2]
834
+ px = int(w/2.0 * (1+cos(x+_rotationangle)))
835
+ py = int(h/2.0-sin(_angle)*h/2.0*sin(x+_rotationangle)-1)
836
+ points[1] = [px, py]
837
+ points[2] = [px, int(py+_height*cos(_angle))]
838
+
839
+ if w > 0:
840
+ c = _series[angleindex].GetColour()
841
+ v = 1.0-float(px)/w
842
+ curColour = wxColour(int(c.red*v), int(c.green*v), int(c.blue*v))
843
+
844
+ if not self._showedges:
845
+ _canvasDC_SetPen(wxPen(curColour))
846
+
847
+ _canvasDC_SetBrush(wxBrush(curColour))
848
+
849
+ if sin(x+_rotationangle) < 0 and sin(x-0.05+_rotationangle) <= 0 and x > 0:
850
+ _canvasDC_DrawPolygon(points)
851
+
852
+ if changeangle:
853
+
854
+ angleindex = angleindex + 1
855
+
856
+ x = x + 0.05
857
+
858
+ points[0] = points[1]
859
+ points[3] = points[2]
860
+ px = int(w/2.0 * (1+cos(tau+_rotationangle)))
861
+ py = int(h/2.0-sin(_angle)*h/2.0*sin(tau+_rotationangle)-1)
862
+ points[1] = [px, py]
863
+ points[2] = [px, int(py+_height*cos(_angle))]
864
+
865
+ if w > 0:
866
+ c = _series[angleindex].GetColour()
867
+ v = 1.0-float(px)/w
868
+ curColour = wxColour(int(c.red*v), int(c.green*v), int(c.blue*v))
869
+
870
+ if not self._showedges:
871
+ _canvasDC_SetPen(wxPen(curColour))
872
+
873
+ _canvasDC_SetBrush(wxBrush(curColour))
874
+
875
+ if sin(x+_rotationangle) < 0 and sin(x-0.05+_rotationangle) <= 0:
876
+ _canvasDC_DrawPolygon(points)
877
+
878
+ if _angle <= pi/2:
879
+ self.DrawParts(_canvasDC, 0, 0, w, h)
880
+ else:
881
+ self.DrawParts(_canvasDC, 0, int(_height*cos(_angle)), w, h)
882
+
883
+ dc.Blit(0, 0, w, h, _canvasDC, 0, 0)
884
+ self._legend.RecreateBackground(_canvasDC)
885
+
886
+
887
+ def OnPaint(self, event):
888
+ """
889
+ Handles the ``wx.EVT_PAINT`` event for :class:`PieCtrl`.
890
+
891
+ :param `event`: a :class:`PaintEvent` event to be processed.
892
+ """
893
+
894
+ pdc = wx.PaintDC(self)
895
+ self.Draw(pdc)
896
+
897
+
898
+ #----------------------------------------------------------------------
899
+ # Class ProgressPie
900
+ # This Is The Main ProgressPie Implementation. Is Is A Subclassing Of
901
+ # PieCtrl, With 2 Sectors.
902
+ #----------------------------------------------------------------------
903
+
904
+ class ProgressPie(PieCtrl):
905
+ """
906
+ :class:`ProgressPie` tries to emulate the behavior of :class:`ProgressDialog`, but
907
+ using a pie chart instead of a gauge.
908
+ """
909
+
910
+ def __init__(self, parent, maxvalue, value, id=wx.ID_ANY,
911
+ pos=wx.DefaultPosition, size=wx.DefaultSize, style=0):
912
+ """
913
+ Default class constructor.
914
+
915
+ :param `parent`: the :class:`PieCtrl` parent. Must not be ``None``;
916
+ :param `id`: window identifier. A value of -1 indicates a default value;
917
+ :param `pos`: the control position. A value of (-1, -1) indicates a default position,
918
+ chosen by either the windowing system or wxPython, depending on platform;
919
+ :param `size`: the control size. A value of (-1, -1) indicates a default size,
920
+ chosen by either the windowing system or wxPython, depending on platform;
921
+ :param `style`: the window style (unused);
922
+ :param `name`: the window name.
923
+ """
924
+
925
+ PieCtrl.__init__(self, parent, id, pos, size, style)
926
+
927
+ self._maxvalue = maxvalue
928
+ self._value = value
929
+ self.GetLegend().Hide()
930
+
931
+ self._filledcolour = wx.Colour(0, 0, 127)
932
+ self._unfilledcolour = wx.WHITE
933
+ part = PiePart()
934
+ part.SetColour(self._filledcolour)
935
+ a = min(float(value), maxvalue)
936
+ part.SetValue(max(a, 0.0))
937
+ self._series.append(part)
938
+ part = PiePart()
939
+ part.SetColour(self._unfilledcolour)
940
+ part.SetValue(max(0.0, maxvalue-part.GetValue()))
941
+ self._series.append(part)
942
+
943
+
944
+ def SetValue(self, value):
945
+ """
946
+ Sets the :class:`ProgressPie` value.
947
+
948
+ :param `value`: a floating point number representing the new value.
949
+ """
950
+
951
+ self._value = min(value, self._maxvalue)
952
+ self._series[0].SetValue(max(self._value, 0.0))
953
+ self._series[1].SetValue(max(self._maxvalue-self._value, 0.0))
954
+ self.Refresh()
955
+
956
+
957
+ def GetValue(self):
958
+ """ Returns the :class:`ProgressPie` value. """
959
+
960
+ return self._value
961
+
962
+
963
+ def SetMaxValue(self, value):
964
+ """
965
+ Sets the :class:`ProgressPie` maximum value.
966
+
967
+ :param `value`: a floating point number representing the maximum value.
968
+ """
969
+
970
+ self._maxvalue = value
971
+ self._value = min(self._value, self._maxvalue)
972
+ self._series[0].SetValue(max(self._value, 0.0))
973
+ self._series[1].SetValue(max(self._maxvalue-self._value, 0.0))
974
+ self.Refresh()
975
+
976
+
977
+ def GetMaxValue(self):
978
+ """ Returns the :class:`ProgressPie` maximum value. """
979
+
980
+ return self._maxvalue
981
+
982
+
983
+ def SetFilledColour(self, colour):
984
+ """
985
+ Sets the colour that progressively fills the :class:`ProgressPie` .
986
+
987
+ :param `colour`: a valid :class:`wx.Colour` object.
988
+ """
989
+
990
+ self._filledcolour = colour
991
+ self._series[0].SetColour(self._filledcolour)
992
+ self.Refresh()
993
+
994
+
995
+ def SetUnfilledColour(self, colour):
996
+ """
997
+ Sets the colour that is filled.
998
+
999
+ :param `colour`: a valid :class:`wx.Colour` object.
1000
+ """
1001
+
1002
+ self._unfilledcolour= colour
1003
+ self._series[1].SetColour(self._unfilledcolour)
1004
+ self.Refresh()
1005
+
1006
+
1007
+ def GetFilledColour(self):
1008
+ """ Returns the colour that progressively fills the :class:`ProgressPie`. """
1009
+
1010
+ return self._filledcolour
1011
+
1012
+
1013
+ def GetUnfilledColour(self):
1014
+ """ Returns the colour that is filled. """
1015
+
1016
+ return self._unfilledcolour
1017
+
1018
+
1019
+
1020
+ if __name__ == '__main__':
1021
+
1022
+ import wx
1023
+
1024
+ class MyFrame(wx.Frame):
1025
+
1026
+ def __init__(self, parent):
1027
+
1028
+ wx.Frame.__init__(self, parent, -1, "PieCtrl Demo")
1029
+
1030
+ panel = wx.Panel(self)
1031
+
1032
+ # create a simple PieCtrl with 3 sectors
1033
+ mypie = PieCtrl(panel, -1, wx.DefaultPosition, wx.Size(180,270))
1034
+
1035
+ part = PiePart()
1036
+
1037
+ part.SetLabel("Label 1")
1038
+ part.SetValue(300)
1039
+ part.SetColour(wx.Colour(200, 50, 50))
1040
+ mypie._series.append(part)
1041
+
1042
+ part = PiePart()
1043
+
1044
+ part.SetLabel("Label 2")
1045
+ part.SetValue(200)
1046
+ part.SetColour(wx.Colour(50, 200, 50))
1047
+ mypie._series.append(part)
1048
+
1049
+ part = PiePart()
1050
+
1051
+ part.SetLabel("helloworld label 3")
1052
+ part.SetValue(50)
1053
+ part.SetColour(wx.Colour(50, 50, 200))
1054
+ mypie._series.append(part)
1055
+
1056
+ # create a ProgressPie
1057
+ progress_pie = ProgressPie(panel, 100, 50, -1, wx.DefaultPosition,
1058
+ wx.Size(180, 200), wx.SIMPLE_BORDER)
1059
+
1060
+ progress_pie.SetBackColour(wx.Colour(150, 200, 255))
1061
+ progress_pie.SetFilledColour(wx.RED)
1062
+ progress_pie.SetUnfilledColour(wx.WHITE)
1063
+ progress_pie.SetHeight(20)
1064
+
1065
+ main_sizer = wx.BoxSizer(wx.HORIZONTAL)
1066
+
1067
+ main_sizer.Add(mypie, 1, wx.EXPAND | wx.ALL, 5)
1068
+ main_sizer.Add(progress_pie, 1, wx.EXPAND | wx.ALL, 5)
1069
+
1070
+ panel.SetSizer(main_sizer)
1071
+ main_sizer.Layout()
1072
+
1073
+
1074
+ # our normal wxApp-derived class, as usual
1075
+
1076
+ app = wx.App(0)
1077
+
1078
+ frame = MyFrame(None)
1079
+ app.SetTopWindow(frame)
1080
+ frame.Show()
1081
+
1082
+ app.MainLoop()