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,1127 @@
1
+ # --------------------------------------------------------------------------------- #
2
+ # AQUABUTTON wxPython IMPLEMENTATION
3
+ #
4
+ # Andrea Gavana, @ 07 October 2008
5
+ # Latest Revision: 27 Dec 2012, 21.00 GMT
6
+ #
7
+ #
8
+ # TODO List
9
+ #
10
+ # 1) Anything to do?
11
+ #
12
+ #
13
+ # For all kind of problems, requests of enhancements and bug reports, please
14
+ # write to me at:
15
+ #
16
+ # andrea.gavana@gmail.com
17
+ # andrea.gavana@maerskoil.com
18
+ #
19
+ # Or, obviously, to the wxPython mailing list!!!
20
+ #
21
+ # Tags: phoenix-port, unittest, documented, py3-port
22
+ #
23
+ # End Of Comments
24
+ # --------------------------------------------------------------------------------- #
25
+
26
+ """
27
+ :class:`~wx.lib.agw.aquabutton.AquaButton` is another custom-drawn button class which *approximatively* mimics
28
+ the behaviour of Aqua buttons on the Mac.
29
+
30
+
31
+ Description
32
+ ===========
33
+
34
+ :class:`AquaButton` is another custom-drawn button class which *approximatively* mimics
35
+ the behaviour of Aqua buttons on the Mac. At the moment this class supports:
36
+
37
+ * Bubble and shadow effects;
38
+ * Customizable background, foreground and hover colours;
39
+ * Rounded-corners buttons;
40
+ * Text-only or image+text buttons;
41
+ * Pulse effect on gaining focus.
42
+
43
+ And a lot more. Check the demo for an almost complete review of the functionalities.
44
+
45
+
46
+ Usage
47
+ =====
48
+
49
+ Sample usage::
50
+
51
+ import wx
52
+ import wx.lib.agw.aquabutton as AB
53
+
54
+ app = wx.App(0)
55
+
56
+ frame = wx.Frame(None, -1, "AquaButton Test")
57
+
58
+ mainPanel = wx.Panel(frame)
59
+ mainPanel.SetBackgroundColour(wx.WHITE)
60
+
61
+ # Initialize AquaButton 1 (with image)
62
+ bitmap = wx.Bitmap("my_button_bitmap.png", wx.BITMAP_TYPE_PNG)
63
+ btn1 = AB.AquaButton(mainPanel, -1, bitmap, "AquaButton")
64
+
65
+ # Initialize AquaButton 2 (no image)
66
+ btn2 = AB.AquaButton(mainPanel, -1, None, "Hello World!")
67
+
68
+ frame.Show()
69
+
70
+ app.MainLoop()
71
+
72
+
73
+ Supported Platforms
74
+ ===================
75
+
76
+ AquaButton has been tested on the following platforms:
77
+ * Windows (Windows XP);
78
+ * Linux Ubuntu (10.10).
79
+
80
+
81
+ Window Styles
82
+ =============
83
+
84
+ `No particular window styles are available for this class.`
85
+
86
+
87
+ Events Processing
88
+ =================
89
+
90
+ This class processes the following events:
91
+
92
+ ================= ==================================================
93
+ Event Name Description
94
+ ================= ==================================================
95
+ ``wx.EVT_BUTTON`` Process a `wxEVT_COMMAND_BUTTON_CLICKED` event, when the button is clicked.
96
+ ================= ==================================================
97
+
98
+
99
+ License And Version
100
+ ===================
101
+
102
+ :class:`AquaButton` control is distributed under the wxPython license.
103
+
104
+ Latest Revision: Andrea Gavana @ 27 Dec 2012, 21.00 GMT
105
+
106
+ Version 0.4
107
+
108
+ """
109
+
110
+ import wx
111
+
112
+ # Constants for the hovering and clicking effects
113
+ HOVER = 1
114
+ """ Indicates that the mouse is hovering over :class:`AquaButton` """
115
+ CLICK = 2
116
+ """ Indicates that :class:`AquaButton` has been clicked """
117
+
118
+
119
+ class AquaButtonEvent(wx.PyCommandEvent):
120
+ """ Event sent from the :class:`AquaButton` buttons when the button is activated. """
121
+
122
+ def __init__(self, eventType, eventId):
123
+ """
124
+ Default class constructor.
125
+
126
+ :param integer `eventType`: the event type;
127
+ :param integer `eventId`: the event identifier.
128
+ """
129
+
130
+ wx.PyCommandEvent.__init__(self, eventType, eventId)
131
+ self.isDown = False
132
+ self.theButton = None
133
+
134
+
135
+ def SetButtonObj(self, btn):
136
+ """
137
+ Sets the event object for the event.
138
+
139
+ :param `btn`: the button object, an instance of :class:`AquaButton`.
140
+ """
141
+
142
+ self.theButton = btn
143
+
144
+
145
+ def GetButtonObj(self):
146
+ """
147
+ Returns the object associated with this event.
148
+
149
+ :return: An instance of :class:`AquaButton`.
150
+ """
151
+
152
+ return self.theButton
153
+
154
+
155
+ class AquaButton(wx.Control):
156
+ """ This is the main class implementation of :class:`AquaButton`. """
157
+
158
+ def __init__(self, parent, id=wx.ID_ANY, bitmap=None, label="", pos=wx.DefaultPosition,
159
+ size=wx.DefaultSize, style=wx.NO_BORDER, validator=wx.DefaultValidator,
160
+ name="aquabutton"):
161
+ """
162
+ Default class constructor.
163
+
164
+ :param wx.Window `parent`: parent window. Must not be ``None``;
165
+ :param integer `id`: window identifier. A value of -1 indicates a default value;
166
+ :param wx.Bitmap `bitmap`: the button bitmap (if any);
167
+ :param string `label`: the button text label;
168
+ :param `pos`: the control position. A value of (-1, -1) indicates a default position,
169
+ chosen by either the windowing system or wxPython, depending on platform;
170
+ :type `pos`: tuple or :class:`wx.Point`
171
+ :param `size`: the control size. A value of (-1, -1) indicates a default size,
172
+ chosen by either the windowing system or wxPython, depending on platform;
173
+ :type `size`: tuple or :class:`wx.Size`
174
+ :param integer `style`: the button style (unused);
175
+ :param wx.Validator `validator`: the validator associated to the button;
176
+ :param string `name`: the button name.
177
+ """
178
+
179
+ wx.Control.__init__(self, parent, id, pos, size, style, validator, name)
180
+
181
+ self.SetBackgroundStyle(wx.BG_STYLE_CUSTOM)
182
+
183
+ self.Bind(wx.EVT_PAINT, self.OnPaint)
184
+ self.Bind(wx.EVT_ERASE_BACKGROUND, lambda event: None)
185
+ self.Bind(wx.EVT_SIZE, self.OnSize)
186
+ self.Bind(wx.EVT_LEFT_DOWN, self.OnLeftDown)
187
+ self.Bind(wx.EVT_LEFT_UP, self.OnLeftUp)
188
+ self.Bind(wx.EVT_LEAVE_WINDOW, self.OnMouseLeave)
189
+ self.Bind(wx.EVT_ENTER_WINDOW, self.OnMouseEnter)
190
+ self.Bind(wx.EVT_SET_FOCUS, self.OnGainFocus)
191
+ self.Bind(wx.EVT_KILL_FOCUS, self.OnLoseFocus)
192
+ self.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown)
193
+ self.Bind(wx.EVT_KEY_UP, self.OnKeyUp)
194
+ self.Bind(wx.EVT_TIMER, self.OnPulseTimer)
195
+
196
+ if "__WXMSW__" in wx.PlatformInfo:
197
+ self.Bind(wx.EVT_LEFT_DCLICK, self.OnLeftDown)
198
+
199
+ self._mouseAction = None
200
+ self.SetBitmapLabel(bitmap)
201
+ self._hasFocus = False
202
+ self._saveBitmap = True
203
+ self._storedBitmap = wx.NullBitmap
204
+ self._pulseOnFocus = False
205
+ self._gammaFactor = 1.0
206
+ self._gammaIncrement = 0.1
207
+
208
+ self._timer = wx.Timer(self, wx.ID_ANY)
209
+
210
+ self.SetLabel(label)
211
+ self.InheritAttributes()
212
+ self.SetInitialSize(size)
213
+
214
+ # The following defaults are better suited to draw the text outline
215
+ if "__WXMAC__" in wx.PlatformInfo:
216
+ self._backColour = wx.Colour(147, 202, 255)
217
+ self._hoverColour = self.LightColour(self._backColour, 30)
218
+ self._focusColour = self.LightColour(self._backColour, 40)
219
+ self._disableColour = self.LightColour(self._backColour, 70)
220
+ self._textColour = wx.BLACK
221
+ self._shadowColour = wx.Colour("grey")
222
+ self._rectColour = self.GetParent().GetBackgroundColour()
223
+ else:
224
+ self._backColour = wx.SystemSettings.GetColour(wx.SYS_COLOUR_ACTIVECAPTION)
225
+ self._hoverColour = self.LightColour(self._backColour, 30)
226
+ self._focusColour = self.LightColour(self._backColour, 40)
227
+ self._disableColour = self.LightColour(self._backColour, 70)
228
+ self._textColour = wx.WHITE
229
+ self._shadowColour = wx.Colour("grey")
230
+ self._rectColour = self.GetParent().GetBackgroundColour()
231
+
232
+
233
+ def SetBitmapLabel(self, bitmap):
234
+ """
235
+ Sets the bitmap label for the button.
236
+
237
+ :param `bitmap`: the bitmap label to set, an instance of :class:`wx.Bitmap`.
238
+ """
239
+
240
+ self._bitmap = bitmap
241
+ self.Refresh()
242
+
243
+
244
+ def LightColour(self, colour, percent):
245
+ """
246
+ Return light contrast of `colour`. The colour returned is from the scale of
247
+ `colour` ==> white.
248
+
249
+ :param `colour`: the input colour to be brightened, a valid instance of :class:`wx.Colour`;
250
+ :param integer `percent`: determines how light the colour will be. `percent` = ``100``
251
+ returns white, `percent` = ``0`` returns `colour`.
252
+
253
+ :return: A light contrast of the input `colour`, an instance of :class:`wx.Colour`.
254
+ """
255
+
256
+ end_colour = wx.WHITE
257
+ rd = end_colour.Red() - colour.Red()
258
+ gd = end_colour.Green() - colour.Green()
259
+ bd = end_colour.Blue() - colour.Blue()
260
+ high = 100
261
+
262
+ # We take the percent way of the colour from colour ==> white
263
+ i = percent
264
+ r = colour.Red() + ((i*rd*100)/high)/100
265
+ g = colour.Green() + ((i*gd*100)/high)/100
266
+ b = colour.Blue() + ((i*bd*100)/high)/100
267
+ a = colour.Alpha()
268
+
269
+ return wx.Colour(int(r), int(g), int(b), int(a))
270
+
271
+
272
+ def OnPaint(self, event):
273
+ """
274
+ Handles the ``wx.EVT_PAINT`` event for :class:`AquaButton`.
275
+
276
+ :param `event`: a :class:`PaintEvent` event to be processed.
277
+ """
278
+
279
+ dc = wx.BufferedPaintDC(self)
280
+ gc = wx.GraphicsContext.Create(dc)
281
+
282
+ xpos, ypos, width, height = self.GetClientRect()
283
+
284
+ dc.SetBackground(wx.Brush(self._rectColour))
285
+ dc.Clear()
286
+ gc.SetBrush(wx.WHITE_BRUSH)
287
+
288
+ shadowOffset = 5
289
+ btnOffset = 0
290
+ clr = self._backColour
291
+
292
+ if self._mouseAction == CLICK:
293
+ shadowOffset = 3
294
+ clr = self._hoverColour
295
+ btnOffset = 2
296
+
297
+ elif self._mouseAction == HOVER:
298
+ clr = self._hoverColour
299
+
300
+ elif self._hasFocus:
301
+ clr = self._focusColour
302
+
303
+ elif not self.IsEnabled():
304
+ clr = self._disableColour
305
+
306
+ rc1 = wx.Rect(btnOffset, btnOffset, width-8-btnOffset, height-8-btnOffset)
307
+ path1 = self.GetPath(gc, rc1, 10)
308
+ br1 = gc.CreateLinearGradientBrush(0, 0, 0, rc1.height+6, clr, wx.WHITE)
309
+
310
+ # Create shadow
311
+ rc2 = wx.Rect(*rc1)
312
+ rc2.Offset((shadowOffset, shadowOffset))
313
+ path2 = self.GetPath(gc, rc2, 10)
314
+ br2 = gc.CreateRadialGradientBrush(rc2.x, rc2.y,
315
+ rc2.x+rc2.width, rc2.y+rc2.height,
316
+ rc2.width, self._shadowColour, wx.WHITE)
317
+
318
+ # Create top water colour to give "aqua" effect
319
+ rc3 = wx.Rect(*rc1)
320
+ rc3.Inflate(-5, -5)
321
+ rc3.height = 15
322
+ path3 = self.GetPath(gc, rc3, 10)
323
+
324
+ br3 = gc.CreateLinearGradientBrush(rc3.x, rc3.y, rc3.x, rc3.y+rc3.height,
325
+ wx.WHITE, wx.TransparentColour)
326
+
327
+ # draw shapes
328
+ gc.SetBrush(br2)
329
+ gc.FillPath(path2) #draw shadow
330
+ gc.SetBrush(br1)
331
+ gc.FillPath(path1) #draw main
332
+ gc.SetBrush(br3)
333
+ gc.FillPath(path3) #draw top bubble
334
+
335
+ font = gc.CreateFont(self.GetFont(), self._textColour)
336
+
337
+ gc.SetFont(font)
338
+ label = self.GetLabel()
339
+ tw, th = gc.GetTextExtent(label)
340
+
341
+ if self._bitmap:
342
+ bw, bh = self._bitmap.GetWidth(), self._bitmap.GetHeight()
343
+ else:
344
+ bw = bh = 0
345
+
346
+ pos_x = (width-bw-tw)/2+btnOffset-shadowOffset # adjust for bitmap and text to centre
347
+ if self._bitmap:
348
+ pos_y = (height-bh-shadowOffset)/2+btnOffset
349
+ gc.DrawBitmap(self._bitmap, pos_x, pos_y, bw, bh) # draw bitmap if available
350
+ pos_x = pos_x + 2 # extra spacing from bitmap
351
+
352
+ # Create a Path to draw the text
353
+ gc.DrawText(label, pos_x + bw + btnOffset, (height-th-shadowOffset)/2+btnOffset) # draw the text
354
+
355
+ if self._saveBitmap:
356
+ # Save the bitmap using wx.MemoryDC for later use
357
+ self._saveBitmap = False
358
+ memory = wx.MemoryDC()
359
+ self._storedBitmap = wx.Bitmap.FromRGBA(max(width, 1), max(height, 1))
360
+ memory.SelectObject(self._storedBitmap)
361
+
362
+ gcMemory = wx.GraphicsContext.Create(memory)
363
+
364
+ gcMemory.SetBrush(br1)
365
+ gcMemory.FillPath(path1) #draw main
366
+ gcMemory.SetBrush(br3)
367
+ gcMemory.FillPath(path3) #draw top bubble
368
+
369
+ if self._bitmap:
370
+ gcMemory.DrawBitmap(self._bitmap, pos_x - 2, pos_y, bw, bh)
371
+
372
+ gcMemory.SetFont(font)
373
+ gcMemory.DrawText(label, pos_x + bw + btnOffset, (height-th-shadowOffset)/2+btnOffset)
374
+
375
+ memory.SelectObject(wx.NullBitmap)
376
+ self._storedBitmap = self._storedBitmap.ConvertToImage()
377
+
378
+
379
+ def GetPath(self, gc, rc, r):
380
+ """
381
+ Returns a rounded :class:`GraphicsPath` rectangle.
382
+
383
+ :param `gc`: an instance of :class:`GraphicsContext`;
384
+ :param wx.Rect `rc`: a client rectangle;
385
+ :param float `r`: the radius of the rounded part of the rectangle.
386
+
387
+ :return: A rounded rectangle, an instance of :class:`GraphicsPath`.
388
+ """
389
+
390
+ x, y, w, h = rc
391
+ path = gc.CreatePath()
392
+ path.AddRoundedRectangle(x, y, w, h, r)
393
+ path.CloseSubpath()
394
+ return path
395
+
396
+
397
+ def OnSize(self, event):
398
+ """
399
+ Handles the ``wx.EVT_SIZE`` event for :class:`AquaButton`.
400
+
401
+ :param `event`: a :class:`wx.SizeEvent` event to be processed.
402
+ """
403
+
404
+ self.Invalidate()
405
+
406
+
407
+ def OnLeftDown(self, event):
408
+ """
409
+ Handles the ``wx.EVT_LEFT_DOWN`` event for :class:`AquaButton`.
410
+
411
+ :param `event`: a :class:`MouseEvent` event to be processed.
412
+ """
413
+
414
+ if not self.IsEnabled():
415
+ return
416
+
417
+ self._mouseAction = CLICK
418
+ self.CaptureMouse()
419
+ self.Refresh()
420
+ event.Skip()
421
+
422
+
423
+ def OnLeftUp(self, event):
424
+ """
425
+ Handles the ``wx.EVT_LEFT_UP`` event for :class:`AquaButton`.
426
+
427
+ :param `event`: a :class:`MouseEvent` event to be processed.
428
+ """
429
+
430
+ if not self.IsEnabled() or not self.HasCapture():
431
+ return
432
+
433
+ pos = event.GetPosition()
434
+ rect = self.GetClientRect()
435
+
436
+ if self.HasCapture():
437
+ self.ReleaseMouse()
438
+
439
+ if rect.Contains(pos):
440
+ self._mouseAction = HOVER
441
+ self.Notify()
442
+ else:
443
+ self._mouseAction = None
444
+
445
+ self.Refresh()
446
+ event.Skip()
447
+
448
+
449
+ def OnMouseEnter(self, event):
450
+ """
451
+ Handles the ``wx.EVT_ENTER_WINDOW`` event for :class:`AquaButton`.
452
+
453
+ :param `event`: a :class:`MouseEvent` event to be processed.
454
+ """
455
+
456
+ if not self.IsEnabled():
457
+ return
458
+
459
+ self._mouseAction = HOVER
460
+ self.Refresh()
461
+ event.Skip()
462
+
463
+
464
+ def OnMouseLeave(self, event):
465
+ """
466
+ Handles the ``wx.EVT_LEAVE_WINDOW`` event for :class:`AquaButton`.
467
+
468
+ :param `event`: a :class:`MouseEvent` event to be processed.
469
+ """
470
+
471
+ self._mouseAction = None
472
+ self.Refresh()
473
+ event.Skip()
474
+
475
+
476
+ def OnGainFocus(self, event):
477
+ """
478
+ Handles the ``wx.EVT_SET_FOCUS`` event for :class:`AquaButton`.
479
+
480
+ :param `event`: a :class:`FocusEvent` event to be processed.
481
+ """
482
+
483
+ self._hasFocus = True
484
+ self.Refresh()
485
+ self.Update()
486
+
487
+ if self._pulseOnFocus:
488
+ self._gammaFactor = 1.0
489
+ self._timer.Start(100)
490
+
491
+
492
+ def OnLoseFocus(self, event):
493
+ """
494
+ Handles the ``wx.EVT_KILL_FOCUS`` event for :class:`AquaButton`.
495
+
496
+ :param `event`: a :class:`FocusEvent` event to be processed.
497
+ """
498
+
499
+ if self._pulseOnFocus:
500
+ self._gammaFactor = 1.0
501
+ self._timer.Stop()
502
+
503
+ self._hasFocus = False
504
+ self.Refresh()
505
+ self.Update()
506
+
507
+
508
+ def OnKeyDown(self, event):
509
+ """
510
+ Handles the ``wx.EVT_KEY_DOWN`` event for :class:`AquaButton`.
511
+
512
+ :param `event`: a :class:`KeyEvent` event to be processed.
513
+ """
514
+
515
+ if self._hasFocus and event.GetKeyCode() == ord(" "):
516
+ self._mouseAction = HOVER
517
+ self.Refresh()
518
+ event.Skip()
519
+
520
+
521
+ def OnKeyUp(self, event):
522
+ """
523
+ Handles the ``wx.EVT_KEY_UP`` event for :class:`AquaButton`.
524
+
525
+ :param `event`: a :class:`KeyEvent` event to be processed.
526
+ """
527
+
528
+ if self._hasFocus and event.GetKeyCode() == ord(" "):
529
+ self._mouseAction = HOVER
530
+ self.Notify()
531
+ self.Refresh()
532
+ event.Skip()
533
+
534
+
535
+ def OnPulseTimer(self, event):
536
+ """
537
+ Handles the ``wx.EVT_TIMER`` event for :class:`AquaButton`.
538
+
539
+ :param `event`: a :class:`TimerEvent` event to be processed.
540
+
541
+ :note: This method is only invoked when `pulseOnFocus` is ``True``.
542
+ """
543
+
544
+ if not self._storedBitmap.IsOk():
545
+ self._timer.Stop()
546
+ return
547
+
548
+ xpos, ypos, width, height = self.GetClientRect()
549
+ gamma = self._gammaFactor
550
+
551
+ if gamma >= 1.3:
552
+ self._gammaIncrement = -self._gammaIncrement
553
+ elif gamma < 0.7:
554
+ self._gammaIncrement = abs(self._gammaIncrement)
555
+
556
+ self._gammaFactor += self._gammaIncrement
557
+
558
+ image = self._storedBitmap.AdjustChannels(gamma, gamma, gamma, 1.0)
559
+ dc = wx.ClientDC(self)
560
+ dc.SetClippingRegion(wx.Rect(xpos, ypos, width-8, height-8))
561
+ dc.DrawBitmap(image.ConvertToBitmap(), xpos, ypos, True)
562
+
563
+
564
+ def SetInitialSize(self, size=None):
565
+ """
566
+ Given the current font and bezel width settings, calculate
567
+ and set a good size.
568
+
569
+ :param `size`: an instance of :class:`wx.Size` or ``None``, in which case the wxWidgets
570
+ :class:`DefaultSize` is used instead.
571
+ """
572
+
573
+ if size is None:
574
+ size = wx.DefaultSize
575
+ wx.Control.SetInitialSize(self, size)
576
+
577
+ SetBestSize = SetInitialSize
578
+
579
+
580
+ def AcceptsFocus(self):
581
+ """
582
+ Can this window be given focus by mouse click?
583
+
584
+ :note: Overridden from :class:`wx.Control`.
585
+ """
586
+
587
+ return self.IsShown() and self.IsEnabled()
588
+
589
+
590
+ def GetDefaultAttributes(self):
591
+ """
592
+ Overridden base class virtual. By default we should use
593
+ the same font/colour attributes as the native :class:`Button`.
594
+
595
+ :return: an instance of :class:`VisualAttributes`.
596
+
597
+ :note: Overridden from :class:`wx.Control`.
598
+ """
599
+
600
+ return wx.Button.GetClassDefaultAttributes()
601
+
602
+
603
+ def ShouldInheritColours(self):
604
+ """
605
+ Overridden base class virtual. Buttons usually don't inherit
606
+ the parent's colours.
607
+
608
+ :note: Overridden from :class:`wx.Control`.
609
+ """
610
+
611
+ return False
612
+
613
+
614
+ def Enable(self, enable=True):
615
+ """
616
+ Enables/disables the button.
617
+
618
+ :param bool `enable`: ``True`` to enable the button, ``False`` to disable it.
619
+
620
+ :note: Overridden from :class:`wx.Control`.
621
+ """
622
+
623
+ wx.Control.Enable(self, enable)
624
+ self.Refresh()
625
+
626
+
627
+ def SetPulseOnFocus(self, pulse):
628
+ """
629
+ Sets whether to enable the pulsing effect on gaining focus or not.
630
+
631
+ :param bool `pulse`: ``True`` to enable pulsing when the :class:`AquaButton` gains focus,
632
+ ``False`` to disable this effect.
633
+ """
634
+
635
+ if pulse == self._pulseOnFocus:
636
+ return
637
+
638
+ self._pulseOnFocus = pulse
639
+ self.Invalidate()
640
+
641
+
642
+ def GetPulseOnFocus(self):
643
+ """
644
+ Returns whether the pulsing effect is active.
645
+
646
+ :return: ``True`` if the pulsing effect is active, ``False`` otherwise.
647
+ """
648
+
649
+ return self._pulseOnFocus
650
+
651
+
652
+ def DoGetBestSize(self):
653
+ """
654
+ Overridden base class virtual. Determines the best size of the
655
+ button based on the label and bezel size.
656
+
657
+ :return: An instance of :class:`wx.Size`.
658
+
659
+ :note: Overridden from :class:`wx.Control`.
660
+ """
661
+
662
+ label = self.GetLabel()
663
+ if not label:
664
+ return wx.Size(112, 48)
665
+
666
+ dc = wx.ClientDC(self)
667
+ dc.SetFont(self.GetFont())
668
+ retWidth, retHeight = dc.GetTextExtent(label)
669
+
670
+ bmpWidth = bmpHeight = 0
671
+ constant = 24
672
+ if self._bitmap:
673
+ bmpWidth, bmpHeight = self._bitmap.GetWidth()+10, self._bitmap.GetHeight()
674
+ retWidth += bmpWidth
675
+ retHeight = max(bmpHeight, retHeight)
676
+ constant = 24
677
+
678
+ return wx.Size(retWidth+constant, retHeight+constant)
679
+
680
+
681
+ def DoEnable(self, enable):
682
+ """
683
+ Overridden base class virtual.
684
+
685
+ Need to Refresh otherwise Enable state change done from a
686
+ `wx.EVT_UPDATE_UI` will not show.
687
+ """
688
+ self.Refresh()
689
+
690
+
691
+ def SetBackgroundColour(self, colour):
692
+ """
693
+ Sets the :class:`AquaButton` background colour.
694
+
695
+ :param `colour`: a valid :class:`wx.Colour` object.
696
+
697
+ :note: Overridden from :class:`wx.Control`.
698
+ """
699
+
700
+ wx.Control.SetBackgroundColour(self, colour)
701
+ self._backColour = colour
702
+ self.Invalidate()
703
+
704
+
705
+ def GetBackgroundColour(self):
706
+ """
707
+ Returns the button colour when the mouse is not hovering on the button.
708
+
709
+ :return: An instance of :class:`wx.Colour`.
710
+
711
+ :note: Overridden from :class:`wx.Control`.
712
+ """
713
+
714
+ return self._backColour
715
+
716
+
717
+ def SetHoverColour(self, colour):
718
+ """
719
+ Sets the button colour when the mouse is hovering on the button.
720
+
721
+ :param `colour`: a valid :class:`wx.Colour` object.
722
+ """
723
+
724
+ self._hoverColour = colour
725
+ self.Invalidate()
726
+
727
+
728
+ def GetHoverColour(self):
729
+ """
730
+ Returns the button colour when the mouse is hovering on the button.
731
+
732
+ :return: An instance of :class:`wx.Colour`.
733
+ """
734
+
735
+ return self._hoverColour
736
+
737
+
738
+ def SetDisabledColour(self, colour):
739
+ """
740
+ Sets the button colour when it is disabled.
741
+
742
+ :param `colour`: a valid :class:`wx.Colour` object.
743
+ """
744
+
745
+ self._disableColour = colour
746
+ self.Invalidate()
747
+
748
+
749
+ def GetDisabledColour(self):
750
+ """
751
+ Returns the button colour when it is disabled.
752
+
753
+ :return: An instance of :class:`wx.Colour`.
754
+ """
755
+
756
+ return self._disableColour
757
+
758
+
759
+ def SetShadowColour(self, colour):
760
+ """
761
+ Sets the button shadow colour.
762
+
763
+ :param `colour`: a valid :class:`wx.Colour` object.
764
+
765
+ .. versionadded:: 0.9.7
766
+ """
767
+
768
+ self._shadowColour = colour
769
+ self.Invalidate()
770
+
771
+
772
+ def GetShadowColour(self):
773
+ """
774
+ Returns the button shadow colour.
775
+
776
+ :return: An instance of :class:`wx.Colour`.
777
+
778
+ .. versionadded:: 0.9.7
779
+ """
780
+
781
+ return self._shadowColour
782
+
783
+
784
+ def SetRectColour(self, colour):
785
+ """
786
+ Sets the button rectangular background colour.
787
+
788
+ :param `colour`: a valid :class:`wx.Colour` object.
789
+
790
+ .. versionadded:: 0.9.7
791
+ """
792
+
793
+ self._rectColour = colour
794
+ self.Invalidate()
795
+
796
+
797
+ def GetRectColour(self):
798
+ """
799
+ Returns the button rectangular background colour.
800
+
801
+ :return: An instance of :class:`wx.Colour`.
802
+
803
+ .. versionadded:: 0.9.7
804
+ """
805
+
806
+ return self._rectColour
807
+
808
+
809
+ SetBackgroundColor = SetBackgroundColour
810
+ SetHoverColor = SetHoverColour
811
+ GetHoverColor = GetHoverColour
812
+ SetDisabledColor = SetDisabledColour
813
+ GetDisabledColor = GetDisabledColour
814
+ SetShadowColor = SetShadowColour
815
+ GetShadowColor = SetShadowColour
816
+ SetRectColor = SetRectColour
817
+ GetRectColor = SetRectColour
818
+
819
+
820
+ def SetForegroundColour(self, colour):
821
+ """
822
+ Sets the :class:`AquaButton` foreground (text) colour.
823
+
824
+ :param `colour`: a valid :class:`wx.Colour` object.
825
+
826
+ :note: Overridden from :class:`wx.Control`.
827
+ """
828
+
829
+ wx.Control.SetForegroundColour(self, colour)
830
+ self._textColour = colour
831
+ self.Invalidate()
832
+
833
+
834
+ def GetForegroundColour(self):
835
+ """
836
+ Returns the text colour for :class:`AquaButton`.
837
+
838
+ :return: An instance of :class:`wx.Colour`.
839
+
840
+ :note: Overridden from :class:`wx.Control`.
841
+ """
842
+
843
+ return self._textColour
844
+
845
+
846
+ def SetFocusColour(self, colour):
847
+ """
848
+ Sets the button colour when the button has focus.
849
+
850
+ :param `colour`: a valid :class:`wx.Colour` object.
851
+ """
852
+
853
+ self._focusColour = colour
854
+ self.Invalidate()
855
+
856
+
857
+ def GetFocusColour(self):
858
+ """
859
+ Returns the button colour when the button has focus.
860
+
861
+ :return: An instance of :class:`wx.Colour`.
862
+ """
863
+
864
+ return self._hoverColour
865
+
866
+
867
+ def Invalidate(self):
868
+ """ Invalidate the saved bitmap and refresh the button. """
869
+
870
+ self._saveBitmap = True
871
+ self._storedBitmap = wx.NullBitmap
872
+
873
+ self.Refresh()
874
+
875
+
876
+ def SetDefault(self):
877
+ """
878
+ This sets the :class:`AquaButton` to be the default item for the panel or dialog box.
879
+
880
+ :note: Under Windows, only dialog box buttons respond to this function. As normal
881
+ under Windows and Motif, pressing return causes the default button to be depressed
882
+ when the return key is pressed. See also :meth:`wx.Window.SetFocus` which sets the
883
+ keyboard focus for windows and text panel items, and :meth:`TopLevelWindow.SetDefaultItem`.
884
+
885
+ :note: Note that under Motif, calling this function immediately after creation of a button
886
+ and before the creation of other buttons will cause misalignment of the row of buttons,
887
+ since default buttons are larger. To get around this, call :meth:`SetDefault` after you
888
+ have created a row of buttons: wxPython will then set the size of all buttons currently
889
+ on the panel to the same size.
890
+ """
891
+
892
+ tlw = wx.GetTopLevelParent(self)
893
+ if hasattr(tlw, 'SetDefaultItem'):
894
+ tlw.SetDefaultItem(self)
895
+
896
+
897
+ def Notify(self):
898
+ """ Actually sends a ``wx.EVT_BUTTON`` event to the listener (if any). """
899
+
900
+ evt = AquaButtonEvent(wx.wxEVT_COMMAND_BUTTON_CLICKED, self.GetId())
901
+ evt.SetButtonObj(self)
902
+ evt.SetEventObject(self)
903
+ self.GetEventHandler().ProcessEvent(evt)
904
+
905
+
906
+ class __ToggleMixin(object):
907
+ """
908
+ A mixin that allows to transform :class:`AquaButton` in the corresponding toggle button.
909
+ """
910
+
911
+ up = True
912
+
913
+ def SetToggle(self, flag):
914
+ """
915
+ Sets the button as toggled/not toggled.
916
+
917
+ :param bool `flag`: ``True`` to set the button as toggled, ``False`` otherwise.
918
+ """
919
+
920
+ self.up = not flag
921
+ self.Refresh()
922
+
923
+ SetValue = SetToggle
924
+
925
+
926
+ def GetToggle(self):
927
+ """
928
+ Returns the toggled state of a button.
929
+
930
+ :return: ``True`` is the button is toggled, ``False`` if it is not toggled.
931
+ """
932
+
933
+ return not self.up
934
+
935
+ GetValue = GetToggle
936
+
937
+
938
+ def OnLeftDown(self, event):
939
+ """
940
+ Handles the ``wx.EVT_LEFT_DOWN`` event for :class:`AquaButton` when used as toggle button.
941
+
942
+ :param `event`: a :class:`MouseEvent` event to be processed.
943
+ """
944
+
945
+ if not self.IsEnabled():
946
+ return
947
+
948
+ self.saveUp = self.up
949
+ self.up = not self.up
950
+ self.CaptureMouse()
951
+ self.SetFocus()
952
+ self.Refresh()
953
+
954
+
955
+ def OnLeftUp(self, event):
956
+ """
957
+ Handles the ``wx.EVT_LEFT_UP`` event for :class:`AquaButton` when used as toggle button.
958
+
959
+ :param `event`: a :class:`MouseEvent` event to be processed.
960
+ """
961
+
962
+ if not self.IsEnabled() or not self.HasCapture():
963
+ return
964
+ if self.HasCapture():
965
+ self.ReleaseMouse()
966
+ self.Refresh()
967
+ if self.up != self.saveUp:
968
+ self.Notify()
969
+
970
+
971
+ def OnKeyDown(self, event):
972
+ """
973
+ Handles the ``wx.EVT_KEY_DOWN`` event for :class:`AquaButton` when used as toggle button.
974
+
975
+ :param `event`: a :class:`KeyEvent` event to be processed.
976
+ """
977
+
978
+ event.Skip()
979
+
980
+
981
+ def OnMotion(self, event):
982
+ """
983
+ Handles the ``wx.EVT_MOTION`` event for :class:`AquaButton` when used as toggle button.
984
+
985
+ :param `event`: a :class:`MouseEvent` event to be processed.
986
+ """
987
+
988
+ if not self.IsEnabled():
989
+ return
990
+
991
+ if event.LeftIsDown() and self.HasCapture():
992
+ x, y = event.GetPosition()
993
+ w, h = self.GetClientSize()
994
+
995
+ if x < w and x >= 0 and y < h and y >= 0:
996
+ self.up = not self.saveUp
997
+ self.Refresh()
998
+ return
999
+
1000
+ if x < 0 or y < 0 or x >= w or y >= h:
1001
+ self.up = self.saveUp
1002
+ self.Refresh()
1003
+ return
1004
+
1005
+ event.Skip()
1006
+
1007
+
1008
+ def OnKeyUp(self, event):
1009
+ """
1010
+ Handles the ``wx.EVT_KEY_UP`` event for :class:`AquaButton` when used as toggle button.
1011
+
1012
+ :param `event`: a :class:`KeyEvent` event to be processed.
1013
+ """
1014
+
1015
+ if self.hasFocus and event.GetKeyCode() == ord(" "):
1016
+ self.up = not self.up
1017
+ self.Notify()
1018
+ self.Refresh()
1019
+
1020
+ event.Skip()
1021
+
1022
+
1023
+ def OnPaint(self, event):
1024
+ """
1025
+ Handles the ``wx.EVT_PAINT`` event for :class:`AquaButton` when used as toggle button.
1026
+
1027
+ :param `event`: a :class:`PaintEvent` event to be processed.
1028
+ """
1029
+
1030
+ dc = wx.BufferedPaintDC(self)
1031
+ gc = wx.GraphicsContext.Create(dc)
1032
+
1033
+ xpos, ypos, width, height = self.GetClientRect()
1034
+
1035
+ dc.SetBackground(wx.Brush(self.GetParent().GetBackgroundColour()))
1036
+ dc.Clear()
1037
+ gc.SetBrush(wx.WHITE_BRUSH)
1038
+
1039
+ shadowOffset = 5
1040
+ btnOffset = 0
1041
+ clr = self._backColour
1042
+
1043
+ if not self.up:
1044
+ shadowOffset = 3
1045
+ clr = self._hoverColour
1046
+ btnOffset = 2
1047
+
1048
+ if self._mouseAction == HOVER:
1049
+ clr = self._hoverColour
1050
+
1051
+ rc1 = wx.Rect(btnOffset, btnOffset, width-8-btnOffset, height-8-btnOffset)
1052
+ path1 = self.GetPath(gc, rc1, 10)
1053
+ br1 = gc.CreateLinearGradientBrush(0, 0, 0, rc1.height+6, clr, wx.WHITE)
1054
+
1055
+ # Create shadow
1056
+ rc2 = wx.Rect(*rc1)
1057
+ rc2.Offset((shadowOffset, shadowOffset))
1058
+ path2 = self.GetPath(gc, rc2, 10)
1059
+ br2 = gc.CreateRadialGradientBrush(rc2.x, rc2.y,
1060
+ rc2.x+rc2.width, rc2.y+rc2.height,
1061
+ rc2.width, wx.Colour("grey"), wx.WHITE)
1062
+
1063
+ # Create top water colour to give "aqua" effect
1064
+ rc3 = wx.Rect(*rc1)
1065
+ rc3.Inflate(-5, -5)
1066
+ rc3.height = 15
1067
+ path3 = self.GetPath(gc, rc3, 10)
1068
+
1069
+ br3 = gc.CreateLinearGradientBrush(rc3.x, rc3.y, rc3.x, rc3.y+rc3.height,
1070
+ wx.WHITE, wx.TransparentColour)
1071
+
1072
+ # draw shapes
1073
+ gc.SetBrush(br2)
1074
+ gc.FillPath(path2) #draw shadow
1075
+ gc.SetBrush(br1)
1076
+ gc.FillPath(path1) #draw main
1077
+ gc.SetBrush(br3)
1078
+ gc.FillPath(path3) #draw top bubble
1079
+
1080
+ font = gc.CreateFont(self.GetFont(), self._textColour)
1081
+
1082
+ gc.SetFont(font)
1083
+ label = self.GetLabel()
1084
+ tw, th = gc.GetTextExtent(label)
1085
+
1086
+ if self._bitmap:
1087
+ bw, bh = self._bitmap.GetWidth(), self._bitmap.GetHeight()
1088
+ else:
1089
+ bw = bh = 0
1090
+
1091
+ pos_x = (width-bw-tw)/2+btnOffset-shadowOffset # adjust for bitmap and text to centre
1092
+ if self._bitmap:
1093
+ pos_y = (height-bh-shadowOffset)/2+btnOffset
1094
+ gc.DrawBitmap(self._bitmap, pos_x, pos_y, bw, bh) # draw bitmap if available
1095
+ pos_x = pos_x + 2 # extra spacing from bitmap
1096
+
1097
+ # Create a Path to draw the text
1098
+ gc.DrawText(label, pos_x + bw + btnOffset, (height-th-shadowOffset)/2+btnOffset) # draw the text
1099
+
1100
+ if self._saveBitmap:
1101
+ # Save the bitmap using wx.MemoryDC for later use
1102
+ self._saveBitmap = False
1103
+ memory = wx.MemoryDC()
1104
+ self._storedBitmap = wx.Bitmap.FromRGBA(max(width, 1), max(height, 1))
1105
+ memory.SelectObject(self._storedBitmap)
1106
+
1107
+ gcMemory = wx.GraphicsContext.Create(memory)
1108
+
1109
+ gcMemory.SetBrush(br1)
1110
+ gcMemory.FillPath(path1) #draw main
1111
+ gcMemory.SetBrush(br3)
1112
+ gcMemory.FillPath(path3) #draw top bubble
1113
+
1114
+ if self._bitmap:
1115
+ gcMemory.DrawBitmap(self._bitmap, pos_x - 2, pos_y, bw, bh)
1116
+
1117
+ gcMemory.SetFont(font)
1118
+ gcMemory.DrawText(label, pos_x + bw + btnOffset, (height-th-shadowOffset)/2+btnOffset)
1119
+
1120
+ memory.SelectObject(wx.NullBitmap)
1121
+ self._storedBitmap = self._storedBitmap.ConvertToImage()
1122
+
1123
+
1124
+ class AquaToggleButton(__ToggleMixin, AquaButton):
1125
+ """ An :class:`AquaButton` toggle button. """
1126
+ pass
1127
+