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,1158 @@
1
+ # --------------------------------------------------------------------------- #
2
+ # BALLOONTIP wxPython IMPLEMENTATION
3
+ # Python Code By:
4
+ #
5
+ # Andrea Gavana, @ 29 May 2005
6
+ # Latest Revision: 16 Jul 2012, 15.00 GMT
7
+ # (c) 2021 Zombie
8
+ #
9
+ #
10
+ # TODO List/Caveats
11
+ #
12
+ # 1. With wx.ListBox (And Probably Other Controls), The BalloonTip Sometimes
13
+ # Flashes (It Is Created And Suddenly Destroyed). I Don't Know What Is
14
+ # Happening. Probably I Don't Handle Correctly The wx.EVT_ENTER_WINDOW
15
+ # wx.EVT_LEAVE_WINDOW?
16
+ #
17
+ # 2. wx.RadioBox Seems Not To Receive The wx.EVT_ENTER_WINDOW Event
18
+ #
19
+ # 3. wx.SpinCtrl (And Probably Other Controls), When Put In A Sizer, Does Not
20
+ # Return The Correct Size/Position. Probably Is Something I Am Missing.
21
+ #
22
+ # 4. Other Issues?
23
+ #
24
+ #
25
+ # FIXED Problems
26
+ #
27
+ # 1. Now BalloonTip Control Works Also For TaskBarIcon (Thanks To Everyone
28
+ # For The Suggetions I Read In The wxPython Mailing List)
29
+ #
30
+ #
31
+ # For All Kind Of Problems, Requests Of Enhancements And Bug Reports, Please
32
+ # Write To Me At:
33
+ #
34
+ # andrea.gavana@gmail.com
35
+ # andrea.gavana@maerskoil.com
36
+ #
37
+ # Or, Obviously, To The wxPython Mailing List!!!
38
+ #
39
+ # Tags: phoenix-port, unittest, documented
40
+ #
41
+ # End Of Comments
42
+ # --------------------------------------------------------------------------- #
43
+
44
+ """
45
+ :class:`~wx.lib.agw.balloontip.BalloonTip` is a class that allows you to display tooltips in a balloon style
46
+ window.
47
+
48
+
49
+ Description
50
+ ===========
51
+
52
+ :class:`BalloonTip` is a class that allows you to display tooltips in a balloon style
53
+ window (actually a frame), similarly to the windows XP balloon help. There is
54
+ also an arrow that points to the center of the control designed as a "target"
55
+ for the :class:`BalloonTip`.
56
+
57
+ What it can do:
58
+
59
+ - Set the balloon shape as a rectangle or a rounded rectangle;
60
+ - Set an icon to the top-left of the :class:`BalloonTip` frame;
61
+ - Set a title at the top of the :class:`BalloonTip` frame;
62
+ - Automatic "best" placement of :class:`BalloonTip` frame depending on the target
63
+ control/window position;
64
+ - Runtime customization of title/tip fonts and foreground colours;
65
+ - Runtime change of :class:`BalloonTip` frame shape;
66
+ - Set the balloon background colour;
67
+ - Possibility to set the delay after which the :class:`BalloonTip` is displayed;
68
+ - Possibility to set the delay after which the :class:`BalloonTip` is destroyed;
69
+ - Three different behaviors for the :class:`BalloonTip` window (regardless the delay
70
+ destruction time set):
71
+
72
+ a) Destroy by leave: the :class:`BalloonTip` is destroyed when the mouse leaves the
73
+ target control/window;
74
+ b) Destroy by click: the :class:`BalloonTip` is destroyed when you click on any area
75
+ of the target control/window;
76
+ c) Destroy by button: the :class:`BalloonTip` is destroyed when you click on the
77
+ top-right close button;
78
+ - Possibility to enable/disable globally the :class:`BalloonTip` on you application;
79
+ - Set the :class:`BalloonTip` also for the taskbar icon.
80
+
81
+
82
+ Usage
83
+ =====
84
+
85
+ Usage example::
86
+
87
+ import wx
88
+ import wx.lib.agw.balloontip as BT
89
+
90
+ class MyFrame(wx.Frame):
91
+
92
+ def __init__(self, parent):
93
+
94
+ wx.Frame.__init__(self, parent, -1, "BalloonTip Demo")
95
+
96
+ panel = wx.Panel(self)
97
+
98
+ # Let's suppose that in your application you have a wx.TextCtrl defined as:
99
+ mytextctrl = wx.TextCtrl(panel, -1, "I am a textctrl", pos=(100, 100))
100
+
101
+ # You can define your BalloonTip as follows:
102
+ tipballoon = BT.BalloonTip(topicon=None, toptitle="textctrl",
103
+ message="this is a textctrl",
104
+ shape=BT.BT_ROUNDED,
105
+ tipstyle=BT.BT_LEAVE)
106
+
107
+ # Set the BalloonTip target
108
+ tipballoon.SetTarget(mytextctrl)
109
+ # Set the BalloonTip background colour
110
+ tipballoon.SetBalloonColour(wx.WHITE)
111
+ # Set the font for the balloon title
112
+ tipballoon.SetTitleFont(wx.Font(9, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, False))
113
+ # Set the colour for the balloon title
114
+ tipballoon.SetTitleColour(wx.BLACK)
115
+ # Leave the message font as default
116
+ tipballoon.SetMessageFont()
117
+ # Set the message (tip) foreground colour
118
+ tipballoon.SetMessageColour(wx.LIGHT_GREY)
119
+ # Set the start delay for the BalloonTip
120
+ tipballoon.SetStartDelay(1000)
121
+ # Set the time after which the BalloonTip is destroyed
122
+ tipballoon.SetEndDelay(3000)
123
+
124
+ # our normal wxApp-derived class, as usual
125
+
126
+ app = wx.App(0)
127
+
128
+ frame = MyFrame(None)
129
+ app.SetTopWindow(frame)
130
+ frame.Show()
131
+
132
+ app.MainLoop()
133
+
134
+
135
+ Window Styles
136
+ =============
137
+
138
+ This class supports the following window styles:
139
+
140
+ ================ =========== ==================================================
141
+ Window Styles Hex Value Description
142
+ ================ =========== ==================================================
143
+ ``BT_ROUNDED`` 0x1 :class:`BalloonTip` will have a rounded rectangular shape.
144
+ ``BT_RECTANGLE`` 0x2 :class:`BalloonTip` will have a rectangular shape.
145
+ ``BT_LEAVE`` 0x3 :class:`BalloonTip` will be destroyed when the user moves the mouse outside the target window.
146
+ ``BT_CLICK`` 0x4 :class:`BalloonTip` will be destroyed when the user click on :class:`BalloonTip`.
147
+ ``BT_BUTTON`` 0x5 :class:`BalloonTip` will be destroyed when the user click on the close button.
148
+ ================ =========== ==================================================
149
+
150
+
151
+ Events Processing
152
+ =================
153
+
154
+ `No custom events are available for this class.`
155
+
156
+
157
+ License And Version
158
+ ===================
159
+
160
+ BalloonTip is distributed under the wxPython license.
161
+
162
+ Latest revision: Andrea Gavana @ 16 Jul 2012, 15.00 GMT
163
+
164
+ Version 0.3
165
+
166
+ """
167
+
168
+
169
+ import wx
170
+ import time
171
+
172
+ import wx.adv
173
+ from wx.lib.buttons import GenButton
174
+
175
+ # Define The Values For The BalloonTip Frame Shape
176
+ BT_ROUNDED = 1
177
+ """ :class:`BalloonTip` will have a rounded rectangular shape. """
178
+ BT_RECTANGLE = 2
179
+ """ :class:`BalloonTip` will have a rectangular shape. """
180
+
181
+ # Define The Value For The BalloonTip Destruction Behavior
182
+ BT_LEAVE = 3
183
+ """ :class:`BalloonTip` will be destroyed when the user moves the mouse outside the target window. """
184
+ BT_CLICK = 4
185
+ """ :class:`BalloonTip` will be destroyed when the user click on :class:`BalloonTip`. """
186
+ BT_BUTTON = 5
187
+ """ :class:`BalloonTip` will be destroyed when the user click on the close button. """
188
+
189
+
190
+ # ---------------------------------------------------------------
191
+ # Class BalloonFrame
192
+ # ---------------------------------------------------------------
193
+ # This Class Is Called By The Main BalloonTip Class, And It Is
194
+ # Responsible For The Frame Creation/Positioning On Screen
195
+ # Depending On Target Control/Window, The Frame Can Position
196
+ # Itself To NW (Default), NE, SW, SE. The Switch On Positioning
197
+ # Is Done By Calculating The Absolute Position Of The Target
198
+ # Control/Window Plus/Minus The BalloonTip Size. The Pointing
199
+ # Arrow Is Positioned Accordingly.
200
+ # ---------------------------------------------------------------
201
+
202
+ class BalloonFrame(wx.Frame):
203
+ """
204
+ This class is called by the main :class:`BalloonTip` class, and it is
205
+ responsible for the frame creation/positioning on screen
206
+ depending on target control/window, the frame can position
207
+ itself to NW (default), NE, SW, SE. The switch on positioning
208
+ is done by calculating the absolute position of the target
209
+ control/window plus/minus the balloontip size. The pointing
210
+ arrow is positioned accordingly.
211
+ """
212
+ def __init__(self, parent, id=wx.ID_ANY, pos=wx.DefaultPosition,
213
+ size=wx.DefaultSize, classparent=None):
214
+ """
215
+ Default class constructor.
216
+
217
+ Used internally. Do not call directly this class in your application!
218
+ """
219
+
220
+ wx.Frame.__init__(self, None, -1, "BalloonTip", pos, size,
221
+ style=wx.FRAME_SHAPED |
222
+ wx.SIMPLE_BORDER |
223
+ wx.FRAME_NO_TASKBAR |
224
+ wx.STAY_ON_TOP)
225
+
226
+ self._parent = classparent
227
+ self._toptitle = self._parent._toptitle
228
+ self._topicon = self._parent._topicon
229
+ self._message = self._parent._message
230
+ self._shape = self._parent._shape
231
+ self._tipstyle = self._parent._tipstyle
232
+
233
+ self._ballooncolour = self._parent._ballooncolour
234
+ self._balloonmsgcolour = self._parent._balloonmsgcolour
235
+ self._balloonmsgfont = self._parent._balloonmsgfont
236
+
237
+ if self._toptitle != "":
238
+ self._balloontitlecolour = self._parent._balloontitlecolour
239
+ self._balloontitlefont = self._parent._balloontitlefont
240
+
241
+ panel = wx.Panel(self, -1)
242
+ sizer = wx.BoxSizer(wx.VERTICAL)
243
+
244
+ self.panel = panel
245
+
246
+ subsizer = wx.BoxSizer(wx.VERTICAL)
247
+ hsizer = wx.BoxSizer(wx.HORIZONTAL)
248
+ subsizer.Add((0,20), 0, wx.EXPAND)
249
+
250
+ if self._topicon is not None:
251
+ stb = wx.StaticBitmap(panel, -1, self._topicon)
252
+ hsizer.Add(stb, 0, wx.EXPAND | wx.LEFT | wx.RIGHT | wx.TOP, 10)
253
+ self._balloonbmp = stb
254
+
255
+ if self._toptitle != "":
256
+ stt = wx.StaticText(panel, -1, self._toptitle)
257
+ stt.SetFont(wx.Font(9, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, False))
258
+ if self._topicon is None:
259
+ hsizer.Add((10,0), 0, wx.EXPAND)
260
+
261
+ hsizer.Add(stt, 1, wx.EXPAND | wx.TOP, 10)
262
+
263
+ self._balloontitle = stt
264
+ self._balloontitle.SetForegroundColour(self._balloontitlecolour)
265
+ self._balloontitle.SetFont(self._balloontitlefont)
266
+
267
+ if self._tipstyle == BT_BUTTON:
268
+ self._closebutton = GenButton(panel, -1, "X", style=wx.NO_BORDER)
269
+ self._closebutton.SetMinSize((16,16))
270
+ self._closebutton.SetFont(wx.Font(9, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, False))
271
+ self._closebutton.Bind(wx.EVT_ENTER_WINDOW, self.OnEnterButton)
272
+ self._closebutton.Bind(wx.EVT_LEAVE_WINDOW, self.OnLeaveButton)
273
+ self._closebutton.SetUseFocusIndicator(False)
274
+ if self._toptitle != "":
275
+ hsizer.Add(self._closebutton, 0, wx.TOP | wx.RIGHT, 5)
276
+ else:
277
+ hsizer.Add((10,0), 1, wx.EXPAND)
278
+ hsizer.Add(self._closebutton, 0, wx.ALIGN_RIGHT | wx.TOP
279
+ | wx.RIGHT, 5)
280
+
281
+ if self._topicon is not None or self._toptitle != "" \
282
+ or self._tipstyle == BT_BUTTON:
283
+
284
+ subsizer.Add(hsizer, 0, wx.EXPAND | wx.BOTTOM, 5)
285
+
286
+ self._firstline = line = wx.StaticLine(panel, -1, style=wx.LI_HORIZONTAL)
287
+
288
+ if self._topicon is not None or self._toptitle != "" \
289
+ or self._tipstyle == BT_BUTTON:
290
+ subsizer.Add(self._firstline, 0, wx.EXPAND | wx.LEFT | wx.RIGHT
291
+ | wx.BOTTOM, 10)
292
+ else:
293
+ subsizer.Add(self._firstline, 0, wx.EXPAND | wx.LEFT | wx.RIGHT
294
+ | wx.BOTTOM | wx.TOP, 10)
295
+
296
+ mainstt = wx.StaticText(panel, -1, self._message)
297
+
298
+ self._balloonmsg = mainstt
299
+ self._balloonmsg.SetForegroundColour(self._balloonmsgcolour)
300
+ self._balloonmsg.SetFont(self._balloonmsgfont)
301
+
302
+ subsizer.Add(self._balloonmsg, 1, wx.EXPAND | wx.LEFT | wx.RIGHT |
303
+ wx.BOTTOM, 10)
304
+ self._secondline = wx.StaticLine(panel, -1, style=wx.LI_HORIZONTAL)
305
+ subsizer.Add(self._secondline, 0, wx.EXPAND | wx.LEFT | wx.RIGHT, 10)
306
+ subsizer.Add((0,0),1)
307
+ panel.SetSizer(subsizer)
308
+
309
+ sizer.Add(panel, 1, wx.EXPAND)
310
+ self.SetSizerAndFit(sizer)
311
+ sizer.Layout()
312
+
313
+ if self._tipstyle == BT_CLICK:
314
+ if self._toptitle != "":
315
+ self._balloontitle.Bind(wx.EVT_LEFT_DOWN, self.OnClose)
316
+
317
+ if self._topicon is not None:
318
+ self._balloonbmp.Bind(wx.EVT_LEFT_DOWN, self.OnClose)
319
+
320
+ self._balloonmsg.Bind(wx.EVT_LEFT_DOWN, self.OnClose)
321
+ self.panel.Bind(wx.EVT_LEFT_DOWN, self.OnClose)
322
+
323
+ elif self._tipstyle == BT_BUTTON:
324
+ self._closebutton.Bind(wx.EVT_BUTTON, self.OnClose)
325
+
326
+ self.panel.SetBackgroundColour(self._ballooncolour)
327
+
328
+ if wx.Platform == "__WXGTK__":
329
+ self.Bind(wx.EVT_WINDOW_CREATE, self.SetBalloonShape)
330
+ else:
331
+ self.SetBalloonShape()
332
+
333
+ self.Show(True)
334
+
335
+
336
+ def SetBalloonShape(self, event=None):
337
+ """
338
+ Sets the balloon shape.
339
+
340
+ :param `event`: on wxGTK, a :class:`wx.WindowCreateEvent` event to process.
341
+ """
342
+
343
+ size = self.GetSize()
344
+ pos = self.GetPosition()
345
+
346
+ dc = wx.MemoryDC(wx.Bitmap(1,1))
347
+ textlabel = self._balloonmsg.GetLabel()
348
+ textfont = self._balloonmsg.GetFont()
349
+ textextent = dc.GetFullTextExtent(textlabel, textfont)
350
+
351
+ boxheight = size.y - textextent[1]*len(textlabel.split("\n"))
352
+ boxwidth = size.x
353
+
354
+ position = wx.GetMousePosition()
355
+
356
+ xpos = position[0]
357
+ ypos = position[1]
358
+
359
+ if xpos > 20 and ypos > 20:
360
+
361
+ # This Is NW Positioning
362
+ positioning = "NW"
363
+ xpos = position[0] - boxwidth + 20
364
+ ypos = position[1] - boxheight - 20
365
+
366
+ elif xpos <= 20 and ypos <= 20:
367
+
368
+ # This Is SE Positioning
369
+ positioning = "SE"
370
+ xpos = position[0] - 20
371
+ ypos = position[1]
372
+
373
+ elif xpos > 20 and ypos <= 20:
374
+
375
+ # This Is SW Positioning
376
+ positioning = "SW"
377
+ xpos = position[0] - boxwidth + 20
378
+ ypos = position[1]
379
+
380
+ else:
381
+
382
+ # This Is NE Positioning
383
+ positioning = "NE"
384
+ xpos = position[0]
385
+ ypos = position[1] - boxheight + 20
386
+
387
+ bmp = wx.Bitmap(size.x,size.y)
388
+ dc = wx.BufferedDC(None, bmp)
389
+ dc.SetBackground(wx.BLACK_BRUSH)
390
+ dc.Clear()
391
+ dc.SetPen(wx.Pen(wx.BLACK, 1, wx.PENSTYLE_TRANSPARENT))
392
+
393
+ if self._shape == BT_ROUNDED:
394
+ dc.DrawRoundedRectangle(0, 20, boxwidth, boxheight-20, 12)
395
+
396
+ elif self._shape == BT_RECTANGLE:
397
+ dc.DrawRectangle(0, 20, boxwidth, boxheight-20)
398
+
399
+ if positioning == "NW":
400
+ dc.DrawPolygon(((boxwidth-40, boxheight), (boxwidth-20, boxheight+20),
401
+ (boxwidth-20, boxheight)))
402
+ elif positioning == "SE":
403
+ dc.DrawPolygon(((20, 20), (20, 0), (40, 20)))
404
+
405
+ elif positioning == "SW":
406
+ dc.DrawPolygon(((boxwidth-40, 20), (boxwidth-20, 0), (boxwidth-20, 20)))
407
+
408
+ else:
409
+ dc.DrawPolygon(((20, boxheight), (20, boxheight+20), (40, boxheight)))
410
+
411
+ r = wx.Region(bmp, wx.BLACK)
412
+ self.hasShape = self.SetShape(r)
413
+
414
+ if self._tipstyle == BT_BUTTON:
415
+ colour = self.panel.GetBackgroundColour()
416
+ self._closebutton.SetBackgroundColour(colour)
417
+
418
+ self.SetPosition((xpos, ypos))
419
+
420
+
421
+ def OnEnterButton(self, event):
422
+ """
423
+ Handles the ``wx.EVT_ENTER_WINDOW`` for the :class:`BalloonTip` button.
424
+
425
+ When the :class:`BalloonTip` is created with the `tipstyle` = ``BT_BUTTON``, this event
426
+ provide some kind of 3D effect when the mouse enters the button area.
427
+
428
+ :param `event`: a :class:`MouseEvent` event to be processed.
429
+ """
430
+
431
+ button = event.GetEventObject()
432
+ colour = button.GetBackgroundColour()
433
+ red = colour.Red()
434
+ green = colour.Green()
435
+ blue = colour.Blue()
436
+
437
+ if red < 30:
438
+ red = red + 30
439
+ if green < 30:
440
+ green = green + 30
441
+ if blue < 30:
442
+ blue = blue + 30
443
+
444
+ colour = wx.Colour(red-30, green-30, blue-30)
445
+ button.SetBackgroundColour(colour)
446
+ button.SetForegroundColour(wx.WHITE)
447
+ button.Refresh()
448
+ event.Skip()
449
+
450
+
451
+ def OnLeaveButton(self, event):
452
+ """
453
+ Handles the ``wx.EVT_LEAVE_WINDOW`` for the :class:`BalloonTip` button.
454
+
455
+ When the :class:`BalloonTip` is created with the `tipstyle` = ``BT_BUTTON``, this event
456
+ provide some kind of 3D effect when the mouse enters the button area.
457
+
458
+ :param `event`: a :class:`MouseEvent` event to be processed.
459
+ """
460
+
461
+ button = event.GetEventObject()
462
+ colour = self.panel.GetBackgroundColour()
463
+ button.SetBackgroundColour(colour)
464
+ button.SetForegroundColour(wx.BLACK)
465
+ button.Refresh()
466
+ event.Skip()
467
+
468
+
469
+ def OnClose(self, event):
470
+ """
471
+ Handles the ``wx.EVT_CLOSE`` event for :class:`BalloonTip`.
472
+
473
+ :param `event`: a :class:`CloseEvent` event to be processed.
474
+ """
475
+
476
+ if isinstance(self._parent._widget, wx.adv.TaskBarIcon):
477
+ self._parent.taskbarcreation = 0
478
+ self._parent.taskbartime.Stop()
479
+ del self._parent.taskbartime
480
+ del self._parent.BalloonFrame
481
+
482
+ self.Destroy()
483
+
484
+
485
+ # ---------------------------------------------------------------
486
+ # Class BalloonTip
487
+ # ---------------------------------------------------------------
488
+ # This Is The Main BalloonTip Implementation
489
+ # ---------------------------------------------------------------
490
+
491
+ class BalloonTip(object):
492
+ """
493
+ :class:`BalloonTip` is a class that allows you to display tooltips in a balloon style
494
+ window.
495
+
496
+ This is the main class implementation.
497
+ """
498
+ def __init__(self, topicon=None, toptitle="",
499
+ message="", shape=BT_ROUNDED, tipstyle=BT_LEAVE):
500
+ """
501
+ Default class constructor.
502
+
503
+ :param `topicon`: an icon that will be displayed on the top-left part of the
504
+ :class:`BalloonTip` frame. If set to ``None``, no icon will be displayed;
505
+ :type `topicon`: :class:`wx.Bitmap` or ``None``
506
+ :param string `toptitle`: a title that will be displayed on the top part of the
507
+ :class:`BalloonTip` frame. If set to an empty string, no title will be displayed;
508
+ :param string `message`: the tip message that will be displayed. It can not be set to
509
+ an empty string;
510
+ :param integer `shape`: the :class:`BalloonTip` shape. It can be one of the following:
511
+
512
+ ======================= ========= ====================================
513
+ Shape Flag Hex Value Description
514
+ ======================= ========= ====================================
515
+ ``BT_ROUNDED`` 0x1 :class:`BalloonTip` will have a rounded rectangular shape.
516
+ ``BT_RECTANGLE`` 0x2 :class:`BalloonTip` will have a rectangular shape.
517
+ ======================= ========= ====================================
518
+
519
+ :param integer `tipstyle`: the :class:`BalloonTip` destruction behavior. It can be one of:
520
+
521
+ ======================= ========= ====================================
522
+ Tip Flag Hex Value Description
523
+ ======================= ========= ====================================
524
+ ``BT_LEAVE`` 0x3 :class:`BalloonTip` will be destroyed when the user moves the mouse outside the target window.
525
+ ``BT_CLICK`` 0x4 :class:`BalloonTip` will be destroyed when the user click on :class:`BalloonTip`.
526
+ ``BT_BUTTON`` 0x5 :class:`BalloonTip` will be destroyed when the user click on the close button.
527
+ ======================= ========= ====================================
528
+
529
+ :raise: `Exception` in the following cases:
530
+
531
+ - The `message` parameter is an empty string;
532
+ - The `shape` parameter has an invalid value (i.e., it's not one of ``BT_ROUNDED``, ``BT_RECTANGLE``);
533
+ - The `tipstyle` parameter has an invalid value (i.e., it's not one of ``BT_LEAVE``, ``BT_CLICK``, ``BT_BUTTON``).
534
+
535
+ """
536
+
537
+ self._shape = shape
538
+ self._topicon = topicon
539
+ self._toptitle = toptitle
540
+ self._message = message
541
+ self._tipstyle = tipstyle
542
+
543
+ app = wx.GetApp()
544
+ self._runningapp = app
545
+ self._runningapp.__tooltipenabled__ = True
546
+
547
+ if self._message == "":
548
+ raise Exception("\nERROR: You Should At Least Set The Message For The BalloonTip")
549
+
550
+ if self._shape not in [BT_ROUNDED, BT_RECTANGLE]:
551
+ raise Exception('\nERROR: BalloonTip Shape Should Be One Of "BT_ROUNDED", "BT_RECTANGLE"')
552
+
553
+ if self._tipstyle not in [BT_LEAVE, BT_CLICK, BT_BUTTON]:
554
+ raise Exception('\nERROR: BalloonTip TipStyle Should Be One Of "BT_LEAVE", '\
555
+ '"BT_CLICK", "BT_BUTTON"')
556
+
557
+ self.SetStartDelay()
558
+ self.SetEndDelay()
559
+ self.SetBalloonColour()
560
+
561
+ if toptitle != "":
562
+ self.SetTitleFont()
563
+ self.SetTitleColour()
564
+
565
+ if topicon is not None:
566
+ self.SetBalloonIcon(topicon)
567
+
568
+ self.SetMessageFont()
569
+ self.SetMessageColour()
570
+
571
+
572
+ def SetTarget(self, widget):
573
+ """
574
+ Sets the target control/window for the :class:`BalloonTip`.
575
+
576
+ :param `widget`: any subclass of :class:`wx.Window`.
577
+ """
578
+
579
+ self._widget = widget
580
+
581
+ if isinstance(widget, wx.adv.TaskBarIcon):
582
+ self._widget.Bind(wx.adv.EVT_TASKBAR_MOVE, self.OnTaskBarMove)
583
+ self._widget.Bind(wx.EVT_WINDOW_DESTROY, self.OnDestroy)
584
+ self.taskbarcreation = 0
585
+ else:
586
+ self._widget.Bind(wx.EVT_ENTER_WINDOW, self.OnWidgetEnter)
587
+ self._widget.Bind(wx.EVT_LEAVE_WINDOW, self.OnWidgetLeave)
588
+ self._widget.Bind(wx.EVT_MOTION, self.OnWidgetMotion)
589
+ self._widget.Bind(wx.EVT_WINDOW_DESTROY, self.OnDestroy)
590
+
591
+
592
+ def GetTarget(self):
593
+ """
594
+ Returns the target window for the :class:`BalloonTip`.
595
+
596
+ :return: An instance of :class:`wx.Window`.
597
+
598
+ :raise: `Exception` if the :meth:`~BalloonTip.SetTarget` method has not previously called.
599
+ """
600
+
601
+ if not hasattr(self, "_widget"):
602
+ raise Exception("\nERROR: BalloonTip Target Has Not Been Set")
603
+
604
+ return self._widget
605
+
606
+
607
+ def SetStartDelay(self, delay=1):
608
+ """
609
+ Sets the delay time after which the :class:`BalloonTip` is created.
610
+
611
+ :param integer `delay`: the number of milliseconds after which :class:`BalloonTip` is created.
612
+
613
+ :raise: `Exception` if `delay` is less than ``1`` milliseconds.
614
+ """
615
+
616
+ if delay < 1:
617
+ raise Exception("\nERROR: Delay Time For BalloonTip Creation Should Be Greater Than 1 ms")
618
+
619
+ self._startdelaytime = delay
620
+
621
+
622
+ def GetStartDelay(self):
623
+ """
624
+ Returns the delay time after which the :class:`BalloonTip` is created.
625
+
626
+ :return: the delay time, in milliseconds.
627
+ """
628
+
629
+ return self._startdelaytime
630
+
631
+
632
+ def SetEndDelay(self, delay = 1000000):
633
+ """
634
+ Sets the delay time after which the BalloonTip is destroyed.
635
+
636
+ :param integer `delay`: the number of milliseconds after which :class:`BalloonTip` is destroyed.
637
+
638
+ :raise: `Exception` if `delay` is less than ``1`` milliseconds.
639
+ """
640
+
641
+ if delay < 1:
642
+ raise Exception("\nERROR: Delay Time For BalloonTip Destruction Should Be Greater Than 1 ms")
643
+
644
+ self._enddelaytime = delay
645
+
646
+
647
+ def GetEndDelay(self):
648
+ """
649
+ Returns the delay time after which the :class:`BalloonTip` is destroyed.
650
+
651
+ :return: the delay time, in milliseconds.
652
+ """
653
+
654
+ return self._enddelaytime
655
+
656
+
657
+ def OnWidgetEnter(self, event):
658
+ """
659
+ Handles the ``wx.EVT_ENTER_WINDOW`` for the target control/window and
660
+ starts the :class:`BalloonTip` timer for creation.
661
+
662
+ :param `event`: a :class:`MouseEvent` event to be processed.
663
+ """
664
+
665
+ if hasattr(self, "BalloonFrame"):
666
+ if self.BalloonFrame:
667
+ return
668
+
669
+ if not self._runningapp.__tooltipenabled__:
670
+ return
671
+
672
+ self.showtime = wx.Timer(self._widget)
673
+ self._widget.Bind(wx.EVT_TIMER, self.NotifyTimer, self.showtime)
674
+ self.showtime.Start(self._startdelaytime)
675
+
676
+ event.Skip()
677
+
678
+
679
+ def OnWidgetLeave(self, event):
680
+ """
681
+ Handles the ``wx.EVT_LEAVE_WINDOW`` for the target control/window.
682
+
683
+ :param `event`: a :class:`MouseEvent` event to be processed.
684
+
685
+ :note: If the BalloonTip `tipstyle` is set to ``BT_LEAVE``, the :class:`BalloonTip` is destroyed.
686
+ """
687
+
688
+ if hasattr(self, "showtime"):
689
+ if self.showtime:
690
+ self.showtime.Stop()
691
+ del self.showtime
692
+
693
+ if hasattr(self, "BalloonFrame"):
694
+ if self.BalloonFrame:
695
+ if self._tipstyle == BT_LEAVE:
696
+ endtime = time.time()
697
+ if endtime - self.starttime > 0.1:
698
+ try:
699
+ self.BalloonFrame.Destroy()
700
+ except:
701
+ pass
702
+ else:
703
+ event.Skip()
704
+ else:
705
+ event.Skip()
706
+ else:
707
+ event.Skip()
708
+
709
+
710
+ def OnTaskBarMove(self, event):
711
+ """
712
+ Handles the mouse motion inside the taskbar icon area.
713
+
714
+ :param `event`: a :class:`MouseEvent` event to be processed.
715
+ """
716
+
717
+ if not hasattr(self, "BalloonFrame"):
718
+ if self.taskbarcreation == 0:
719
+ self.mousepos = wx.GetMousePosition()
720
+ self.currentmousepos = self.mousepos
721
+ self.taskbartime = wx.Timer(self._widget)
722
+ self._widget.Bind(wx.EVT_TIMER, self.TaskBarTimer, self.taskbartime)
723
+ self.taskbartime.Start(100)
724
+ self.showtime = wx.Timer(self._widget)
725
+ self._widget.Bind(wx.EVT_TIMER, self.NotifyTimer, self.showtime)
726
+ self.showtime.Start(self._startdelaytime)
727
+
728
+ if self.taskbarcreation == 0:
729
+ self.taskbarcreation = 1
730
+
731
+ return
732
+
733
+ event.Skip()
734
+
735
+
736
+ def OnWidgetMotion(self, event):
737
+ """
738
+ Handle the mouse motion inside the target.
739
+
740
+ This prevents the annoying behavior of :class:`BalloonTip` to display when the
741
+ user does something else inside the window. The :class:`BalloonTip` window is
742
+ displayed only when the mouse does *not* move for the start delay time.
743
+
744
+ :param `event`: a :class:`MouseEvent` event to be processed.
745
+ """
746
+
747
+ if hasattr(self, "BalloonFrame"):
748
+ if self.BalloonFrame:
749
+ return
750
+
751
+ if hasattr(self, "showtime"):
752
+ if self.showtime:
753
+ self.showtime.Start(self._startdelaytime)
754
+
755
+ event.Skip()
756
+
757
+
758
+ def NotifyTimer(self, event):
759
+ """
760
+ The creation timer has expired. Creates the :class:`BalloonTip` frame.
761
+
762
+ :param `event`: a :class:`wx.TimerEvent` to be processed.
763
+ """
764
+
765
+ self.BalloonFrame = BalloonFrame(self._widget, classparent=self)
766
+ self.BalloonFrame.Show(True)
767
+ self.starttime = time.time()
768
+
769
+ if hasattr(self, "showtime"):
770
+ self.showtime.Stop()
771
+ del self.showtime
772
+
773
+ self.destroytime = wx.Timer(self._widget)
774
+ self._widget.Bind(wx.EVT_TIMER, self.NotifyTimer, self.destroytime)
775
+ self.destroytime.Start(self._enddelaytime)
776
+
777
+
778
+ def TaskBarTimer(self, event):
779
+ """
780
+ This timer check periodically the mouse position.
781
+
782
+ If the current mouse position is sufficiently far from the coordinates
783
+ it had when entered the taskbar icon and the :class:`BalloonTip` style is
784
+ ``BT_LEAVE``, the :class:`BalloonTip` frame is destroyed.
785
+
786
+ :param `event`: a :class:`wx.TimerEvent` to be processed.
787
+ """
788
+
789
+ self.currentmousepos = wx.GetMousePosition()
790
+ mousepos = self.mousepos
791
+
792
+ if abs(self.currentmousepos[0] - mousepos[0]) > 30 or \
793
+ abs(self.currentmousepos[1] - mousepos[1]) > 30:
794
+ if hasattr(self, "BalloonFrame"):
795
+ if self._tipstyle == BT_LEAVE:
796
+ try:
797
+ self.BalloonFrame.Destroy()
798
+ self.taskbartime.Stop()
799
+ del self.taskbartime
800
+ del self.BalloonFrame
801
+ self.taskbarcreation = 0
802
+ except:
803
+ pass
804
+
805
+
806
+ def DestroyTimer(self, event):
807
+ """
808
+ The destruction timer has expired. Destroys the :class:`BalloonTip` frame.
809
+
810
+ :param `event`: a :class:`wx.TimerEvent` to be processed.
811
+ """
812
+
813
+ self.destroytime.Stop()
814
+ del self.destroytime
815
+
816
+ try:
817
+ self.BalloonFrame.Destroy()
818
+ except:
819
+ pass
820
+
821
+
822
+ def SetBalloonShape(self, shape=BT_ROUNDED):
823
+ """
824
+ Sets the :class:`BalloonTip` frame shape.
825
+
826
+ :param integer `shape`: should be one of ``BT_ROUNDED`` or ``BT_RECTANGLE``.
827
+
828
+ :raise: `Exception` if the `shape` parameter is not a valid value
829
+ (i.e., it's not one of ``BT_ROUNDED``, ``BT_RECTANGLE``);
830
+ """
831
+
832
+ if shape not in [BT_ROUNDED, BT_RECTANGLE]:
833
+ raise Exception('\nERROR: BalloonTip Shape Should Be One Of "BT_ROUNDED", "BT_RECTANGLE"')
834
+
835
+ self._shape = shape
836
+
837
+
838
+ def GetBalloonShape(self):
839
+ """
840
+ Returns the :class:`BalloonTip` frame shape.
841
+
842
+ :return: An integer, one of ``BT_ROUNDED``, ``BT_RECTANGLE``.
843
+ """
844
+
845
+ return self._shape
846
+
847
+
848
+ def SetBalloonIcon(self, icon):
849
+ """
850
+ Sets the :class:`BalloonTip` top-left icon.
851
+
852
+ :param `icon`: an instance of :class:`wx.Bitmap`.
853
+
854
+ :raise: `Exception` if the `icon` bitmap is not a valid :class:`wx.Bitmap`.
855
+ """
856
+
857
+ if icon.IsOk():
858
+ self._topicon = icon
859
+ else:
860
+ raise Exception("\nERROR: Invalid Image Passed To BalloonTip")
861
+
862
+
863
+ def GetBalloonIcon(self):
864
+ """
865
+ Returns the :class:`BalloonTip` top-left icon.
866
+
867
+ :return: An instance of :class:`wx.Bitmap`.
868
+ """
869
+
870
+ return self._topicon
871
+
872
+
873
+ def SetBalloonTitle(self, title=""):
874
+ """
875
+ Sets the :class:`BalloonTip` top title.
876
+
877
+ :param string `title`: a string to use as a :class:`BalloonTip` title.
878
+ """
879
+
880
+ self._toptitle = title
881
+
882
+
883
+ def GetBalloonTitle(self):
884
+ """
885
+ Returns the :class:`BalloonTip` top title.
886
+
887
+ :return: A string containing the top title.
888
+ """
889
+
890
+ return self._toptitle
891
+
892
+
893
+ def SetBalloonMessage(self, message):
894
+ """
895
+ Sets the :class:`BalloonTip` tip message.
896
+
897
+ :param string `message`: a string identifying the main message body of :class:`BalloonTip`.
898
+
899
+ :raise: `Exception` if the message is an empty string.
900
+
901
+ :note: The :class:`BalloonTip` message should never be empty.
902
+ """
903
+
904
+ if len(message.strip()) < 1:
905
+ raise Exception("\nERROR: BalloonTip Message Can Not Be Empty")
906
+
907
+ self._message = message
908
+
909
+
910
+ def GetBalloonMessage(self):
911
+ """
912
+ Returns the :class:`BalloonTip` tip message.
913
+
914
+ :return: A string containing the main message.
915
+ """
916
+
917
+ return self._message
918
+
919
+
920
+ def SetBalloonTipStyle(self, tipstyle=BT_LEAVE):
921
+ """
922
+ Sets the :class:`BalloonTip` `tipstyle` parameter.
923
+
924
+ :param integer `tipstyle`: one of the following bit set:
925
+
926
+ ============== ========== =====================================
927
+ Tip Style Hex Value Description
928
+ ============== ========== =====================================
929
+ ``BT_LEAVE`` 0x3 :class:`BalloonTip` will be destroyed when the user moves the mouse outside the target window.
930
+ ``BT_CLICK`` 0x4 :class:`BalloonTip` will be destroyed when the user click on :class:`BalloonTip`.
931
+ ``BT_BUTTON`` 0x5 :class:`BalloonTip` will be destroyed when the user click on the close button.
932
+ ============== ========== =====================================
933
+
934
+ :raise: `Exception` if the `tipstyle` parameter has an invalid value
935
+ (i.e., it's not one of ``BT_LEAVE``, ``BT_CLICK``, ``BT_BUTTON``).
936
+ """
937
+
938
+ if tipstyle not in [BT_LEAVE, BT_CLICK, BT_BUTTON]:
939
+ raise Exception('\nERROR: BalloonTip TipStyle Should Be One Of "BT_LEAVE", '\
940
+ '"BT_CLICK", "BT_BUTTON"')
941
+
942
+ self._tipstyle = tipstyle
943
+
944
+
945
+ def GetBalloonTipStyle(self):
946
+ """
947
+ Returns the :class:`BalloonTip` `tipstyle` parameter.
948
+
949
+ :return: An integer representing the style.
950
+
951
+ :see: :meth:`~BalloonTip.SetBalloonTipStyle`
952
+ """
953
+
954
+ return self._tipstyle
955
+
956
+
957
+ def SetBalloonColour(self, colour=None):
958
+ """
959
+ Sets the :class:`BalloonTip` background colour.
960
+
961
+ :param `colour`: a valid :class:`wx.Colour` instance.
962
+ """
963
+
964
+ if colour is None:
965
+ colour = wx.Colour(255, 250, 205)
966
+
967
+ self._ballooncolour = colour
968
+
969
+
970
+ def GetBalloonColour(self):
971
+ """
972
+ Returns the :class:`BalloonTip` background colour.
973
+
974
+ :return: An instance of :class:`wx.Colour`.
975
+ """
976
+
977
+ return self._ballooncolour
978
+
979
+
980
+ def SetTitleFont(self, font=None):
981
+ """
982
+ Sets the font for the top title.
983
+
984
+ :param `font`: a valid :class:`wx.Font` instance.
985
+ """
986
+
987
+ if font is None:
988
+ font = wx.Font(9, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, False)
989
+
990
+ self._balloontitlefont = font
991
+
992
+
993
+ def GetTitleFont(self):
994
+ """
995
+ Returns the font for the top title.
996
+
997
+ :return: An instance of :class:`wx.Font`.
998
+ """
999
+
1000
+ return self._balloontitlefont
1001
+
1002
+
1003
+ def SetMessageFont(self, font=None):
1004
+ """
1005
+ Sets the font for the tip message.
1006
+
1007
+ :param `font`: a valid :class:`wx.Font` instance.
1008
+ """
1009
+
1010
+ if font is None:
1011
+ font = wx.Font(8, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False)
1012
+
1013
+ self._balloonmsgfont = font
1014
+
1015
+
1016
+ def GetMessageFont(self):
1017
+ """
1018
+ Returns the font for the tip message.
1019
+
1020
+ :return: An instance of :class:`wx.Font`.
1021
+ """
1022
+
1023
+ return self._balloonmsgfont
1024
+
1025
+
1026
+ def SetTitleColour(self, colour=None):
1027
+ """
1028
+ Sets the colour for the top title.
1029
+
1030
+ :param `colour`: a valid :class:`wx.Colour` instance.
1031
+ """
1032
+
1033
+ if colour is None:
1034
+ colour = wx.BLACK
1035
+
1036
+ self._balloontitlecolour = colour
1037
+
1038
+
1039
+ def GetTitleColour(self):
1040
+ """
1041
+ Returns the colour for the top title.
1042
+
1043
+ :return: An instance of :class:`wx.Colour`.
1044
+ """
1045
+
1046
+ return self._balloontitlecolour
1047
+
1048
+
1049
+ def SetMessageColour(self, colour=None):
1050
+ """
1051
+ Sets the colour for the tip message.
1052
+
1053
+ :param `colour`: a valid :class:`wx.Colour` instance.
1054
+ """
1055
+
1056
+ if colour is None:
1057
+ colour = wx.BLACK
1058
+
1059
+ self._balloonmsgcolour = colour
1060
+
1061
+
1062
+ def GetMessageColour(self):
1063
+ """
1064
+ Returns the colour for the tip message.
1065
+
1066
+ :return: An instance of :class:`wx.Colour`.
1067
+ """
1068
+
1069
+ return self._balloonmsgcolour
1070
+
1071
+
1072
+ def OnDestroy(self, event):
1073
+ """
1074
+ Handles the target destruction, specifically handling the ``wx.EVT_WINDOW_DESTROY``
1075
+ event.
1076
+
1077
+ :param `event`: a :class:`wx.WindowDestroyEvent` event to be processed.
1078
+ """
1079
+
1080
+ if hasattr(self, "BalloonFrame"):
1081
+ if self.BalloonFrame:
1082
+ try:
1083
+ if isinstance(self._widget, wx.adv.TaskBarIcon):
1084
+ self._widget.Unbind(wx.adv.EVT_TASKBAR_MOVE)
1085
+ self.taskbartime.Stop()
1086
+ del self.taskbartime
1087
+ else:
1088
+ self._widget.Unbind(wx.EVT_MOTION)
1089
+ self._widget.Unbind(wx.EVT_LEAVE_WINDOW)
1090
+ self._widget.Unbind(wx.EVT_ENTER_WINDOW)
1091
+
1092
+ self.BalloonFrame.Destroy()
1093
+
1094
+ except:
1095
+ pass
1096
+
1097
+ del self.BalloonFrame
1098
+
1099
+
1100
+ def EnableTip(self, enable=True):
1101
+ """
1102
+ Enable/disable globally the :class:`BalloonTip`.
1103
+
1104
+ :param bool `enable`: ``True`` to enable :class:`BalloonTip`, ``False`` otherwise.
1105
+ """
1106
+
1107
+ self._runningapp.__tooltipenabled__ = enable
1108
+
1109
+
1110
+ if __name__ == '__main__':
1111
+
1112
+ import wx
1113
+
1114
+ class MyFrame(wx.Frame):
1115
+
1116
+ def __init__(self, parent):
1117
+
1118
+ wx.Frame.__init__(self, parent, -1, "BalloonTip Demo")
1119
+
1120
+ panel = wx.Panel(self)
1121
+
1122
+ # Let's suppose that in your application you have a wx.TextCtrl defined as:
1123
+ mytextctrl = wx.TextCtrl(panel, -1, "I am a textctrl", pos=(100, 100))
1124
+
1125
+ # You can define your BalloonTip as follows:
1126
+ tipballoon = BalloonTip(topicon=None, toptitle="textctrl",
1127
+ message="this is a textctrl",
1128
+ shape=BT_ROUNDED,
1129
+ tipstyle=BT_LEAVE)
1130
+
1131
+ # Set the BalloonTip target
1132
+ tipballoon.SetTarget(mytextctrl)
1133
+ # Set the BalloonTip background colour
1134
+ tipballoon.SetBalloonColour(wx.WHITE)
1135
+ # Set the font for the balloon title
1136
+ tipballoon.SetTitleFont(wx.Font(9, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, False))
1137
+ # Set the colour for the balloon title
1138
+ tipballoon.SetTitleColour(wx.BLACK)
1139
+ # Leave the message font as default
1140
+ tipballoon.SetMessageFont()
1141
+ # Set the message (tip) foreground colour
1142
+ tipballoon.SetMessageColour(wx.LIGHT_GREY)
1143
+ # Set the start delay for the BalloonTip
1144
+ tipballoon.SetStartDelay(1000)
1145
+ # Set the time after which the BalloonTip is destroyed
1146
+ tipballoon.SetEndDelay(3000)
1147
+
1148
+ # our normal wxApp-derived class, as usual
1149
+
1150
+ app = wx.App(0)
1151
+
1152
+ frame = MyFrame(None)
1153
+ app.SetTopWindow(frame)
1154
+ frame.Show()
1155
+
1156
+ app.MainLoop()
1157
+
1158
+