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,1227 @@
1
+ # -*- coding: utf-8 -*-
2
+ #----------------------------------------------------------------------------
3
+ # Name: aui_switcherdialog.py
4
+ # Purpose:
5
+ #
6
+ # Author:
7
+ #
8
+ # Created:
9
+ # Version:
10
+ # Date:
11
+ # Licence: wxWindows license
12
+ # Tags: phoenix-port, documented, py3-port
13
+ #----------------------------------------------------------------------------
14
+ """
15
+ Description
16
+ ===========
17
+
18
+ The idea of `SwitcherDialog` is to make it easier to implement keyboard
19
+ navigation in AUI and other applications that have multiple panes and
20
+ tabs.
21
+
22
+ A key combination with a modifier (such as ``Ctrl`` + ``Tab``) shows the
23
+ dialog, and the user holds down the modifier whilst navigating with
24
+ ``Tab`` and arrow keys before releasing the modifier to dismiss the dialog
25
+ and activate the selected pane.
26
+
27
+ The switcher dialog is a multi-column menu with no scrolling, implemented
28
+ by the :class:`MultiColumnListCtrl` class. You can have headings for your items
29
+ for logical grouping, and you can force a column break if you need to.
30
+
31
+ The modifier used for invoking and dismissing the dialog can be customised,
32
+ as can the colours, number of rows, and the key used for cycling through
33
+ the items. So you can use different keys on different platforms if
34
+ required (especially since ``Ctrl`` + ``Tab`` is reserved on some platforms).
35
+
36
+ Items are shown as names and optional 16x16 images.
37
+
38
+
39
+ Base Functionalities
40
+ ====================
41
+
42
+ To use the dialog, you set up the items in a `SwitcherItems` object,
43
+ before passing this to the `SwitcherDialog` instance.
44
+
45
+ Call :meth:`SwitcherItems.AddItem` and optionally :meth:`SwitcherItems.AddGroup`
46
+ to add items and headings. These functions take a label (to be displayed to the user),
47
+ an identifying name, an integer id, and a bitmap. The name and id are purely for
48
+ application-defined identification. You may also set a description to be displayed
49
+ when each item is selected; and you can set a window pointer for convenience when
50
+ activating the desired window after the dialog returns.
51
+
52
+ Have created the dialog, you call :meth:`~Dialog.ShowModal`, and if the return value is
53
+ ``wx.ID_OK``, retrieve the selection from the dialog and activate the pane.
54
+
55
+ The sample code below shows a generic method of finding panes and notebook
56
+ tabs within the current :class:`~wx.lib.agw.aui.framemanager.AuiManager`, and using the pane name or notebook
57
+ tab position to display the pane.
58
+
59
+ The only other code to add is a menu item with the desired accelerator,
60
+ whose modifier matches the one you pass to :meth:`SwitcherDialog.SetModifierKey`
61
+ (the default being ``wx.WXK_CONTROL``).
62
+
63
+
64
+ Usage
65
+ =====
66
+
67
+ Menu item::
68
+
69
+ if wx.Platform == "__WXMAC__":
70
+ switcherAccel = "Alt+Tab"
71
+ elif wx.Platform == "__WXGTK__":
72
+ switcherAccel = "Ctrl+/"
73
+ else:
74
+ switcherAccel = "Ctrl+Tab"
75
+
76
+ view_menu.Append(ID_SwitchPane, _("S&witch Window...") + "\t" + switcherAccel)
77
+
78
+
79
+ Event handler::
80
+
81
+ def OnSwitchPane(self, event):
82
+
83
+ items = SwitcherItems()
84
+ items.SetRowCount(12)
85
+
86
+ # Add the main windows and toolbars, in two separate columns
87
+ # We'll use the item 'id' to store the notebook selection, or -1 if not a page
88
+
89
+ for k in range(2):
90
+ if k == 0:
91
+ items.AddGroup(_("Main Windows"), "mainwindows")
92
+ else:
93
+ items.AddGroup(_("Toolbars"), "toolbars").BreakColumn()
94
+
95
+ for pane in self._mgr.GetAllPanes():
96
+ name = pane.name
97
+ caption = pane.caption
98
+
99
+ toolbar = isinstance(info.window, wx.ToolBar) or isinstance(info.window, aui.AuiToolBar)
100
+ if caption and (toolBar and k == 1) or (not toolBar and k == 0):
101
+ items.AddItem(caption, name, -1).SetWindow(pane.window)
102
+
103
+ # Now add the wxAuiNotebook pages
104
+
105
+ items.AddGroup(_("Notebook Pages"), "pages").BreakColumn()
106
+
107
+ for pane in self._mgr.GetAllPanes():
108
+ nb = pane.window
109
+ if isinstance(nb, aui.AuiNotebook):
110
+ for j in range(nb.GetPageCount()):
111
+
112
+ name = nb.GetPageText(j)
113
+ win = nb.GetPage(j)
114
+
115
+ items.AddItem(name, name, j, nb.GetPageBitmap(j)).SetWindow(win)
116
+
117
+ # Select the focused window
118
+
119
+ idx = items.GetIndexForFocus()
120
+ if idx != wx.NOT_FOUND:
121
+ items.SetSelection(idx)
122
+
123
+ if wx.Platform == "__WXMAC__":
124
+ items.SetBackgroundColour(wx.WHITE)
125
+
126
+ # Show the switcher dialog
127
+
128
+ dlg = SwitcherDialog(items, wx.GetApp().GetTopWindow())
129
+
130
+ # In GTK+ we can't use Ctrl+Tab; we use Ctrl+/ instead and tell the switcher
131
+ # to treat / in the same was as tab (i.e. cycle through the names)
132
+
133
+ if wx.Platform == "__WXGTK__":
134
+ dlg.SetExtraNavigationKey(wxT('/'))
135
+
136
+ if wx.Platform == "__WXMAC__":
137
+ dlg.SetBackgroundColour(wx.WHITE)
138
+ dlg.SetModifierKey(wx.WXK_ALT)
139
+
140
+ ans = dlg.ShowModal()
141
+
142
+ if ans == wx.ID_OK and dlg.GetSelection() != -1:
143
+ item = items.GetItem(dlg.GetSelection())
144
+
145
+ if item.GetId() == -1:
146
+ info = self._mgr.GetPane(item.GetName())
147
+ info.Show()
148
+ self._mgr.Update()
149
+ info.window.SetFocus()
150
+
151
+ else:
152
+ nb = item.GetWindow().GetParent()
153
+ win = item.GetWindow();
154
+ if isinstance(nb, aui.AuiNotebook):
155
+ nb.SetSelection(item.GetId())
156
+ win.SetFocus()
157
+
158
+
159
+ """
160
+
161
+ import wx
162
+
163
+ from . import auibook
164
+ from .aui_utilities import FindFocusDescendant
165
+ from .aui_constants import SWITCHER_TEXT_MARGIN_X, SWITCHER_TEXT_MARGIN_Y
166
+
167
+
168
+ # Define a translation function
169
+ _ = wx.GetTranslation
170
+
171
+
172
+ class SwitcherItem(object):
173
+ """ An object containing information about one item. """
174
+
175
+ def __init__(self, item=None):
176
+ """ Default class constructor. """
177
+
178
+ self._id = 0
179
+ self._isGroup = False
180
+ self._breakColumn = False
181
+ self._rowPos = 0
182
+ self._colPos = 0
183
+ self._window = None
184
+ self._description = ""
185
+
186
+ self._textColour = wx.NullColour
187
+ self._bitmap = wx.NullBitmap
188
+ self._font = wx.NullFont
189
+
190
+ if item:
191
+ self.Copy(item)
192
+
193
+
194
+ def Copy(self, item):
195
+ """
196
+ Copy operator between 2 :class:`SwitcherItem` instances.
197
+
198
+ :param `item`: another instance of :class:`SwitcherItem`.
199
+ """
200
+
201
+ self._id = item._id
202
+ self._name = item._name
203
+ self._title = item._title
204
+ self._isGroup = item._isGroup
205
+ self._breakColumn = item._breakColumn
206
+ self._rect = item._rect
207
+ self._font = item._font
208
+ self._textColour = item._textColour
209
+ self._bitmap = item._bitmap
210
+ self._description = item._description
211
+ self._rowPos = item._rowPos
212
+ self._colPos = item._colPos
213
+ self._window = item._window
214
+
215
+
216
+ def SetTitle(self, title):
217
+
218
+ self._title = title
219
+ return self
220
+
221
+
222
+ def GetTitle(self):
223
+
224
+ return self._title
225
+
226
+
227
+ def SetName(self, name):
228
+
229
+ self._name = name
230
+ return self
231
+
232
+
233
+ def GetName(self):
234
+
235
+ return self._name
236
+
237
+
238
+ def SetDescription(self, descr):
239
+
240
+ self._description = descr
241
+ return self
242
+
243
+
244
+ def GetDescription(self):
245
+
246
+ return self._description
247
+
248
+
249
+ def SetId(self, id):
250
+
251
+ self._id = id
252
+ return self
253
+
254
+
255
+ def GetId(self):
256
+
257
+ return self._id
258
+
259
+
260
+ def SetIsGroup(self, isGroup):
261
+
262
+ self._isGroup = isGroup
263
+ return self
264
+
265
+
266
+ def GetIsGroup(self):
267
+
268
+ return self._isGroup
269
+
270
+
271
+ def BreakColumn(self, breakCol=True):
272
+
273
+ self._breakColumn = breakCol
274
+ return self
275
+
276
+
277
+ def GetBreakColumn(self):
278
+
279
+ return self._breakColumn
280
+
281
+
282
+ def SetRect(self, rect):
283
+
284
+ self._rect = rect
285
+ return self
286
+
287
+
288
+ def GetRect(self):
289
+
290
+ return self._rect
291
+
292
+
293
+ def SetTextColour(self, colour):
294
+
295
+ self._textColour = colour
296
+ return self
297
+
298
+
299
+ def GetTextColour(self):
300
+
301
+ return self._textColour
302
+
303
+
304
+ def SetFont(self, font):
305
+
306
+ self._font = font
307
+ return self
308
+
309
+
310
+ def GetFont(self):
311
+
312
+ return self._font
313
+
314
+
315
+ def SetBitmap(self, bitmap):
316
+
317
+ self._bitmap = bitmap
318
+ return self
319
+
320
+
321
+ def GetBitmap(self):
322
+
323
+ return self._bitmap
324
+
325
+
326
+ def SetRowPos(self, pos):
327
+
328
+ self._rowPos = pos
329
+ return self
330
+
331
+
332
+ def GetRowPos(self):
333
+
334
+ return self._rowPos
335
+
336
+
337
+ def SetColPos(self, pos):
338
+
339
+ self._colPos = pos
340
+ return self
341
+
342
+
343
+ def GetColPos(self):
344
+
345
+ return self._colPos
346
+
347
+
348
+ def SetWindow(self, win):
349
+
350
+ self._window = win
351
+ return self
352
+
353
+
354
+ def GetWindow(self):
355
+
356
+ return self._window
357
+
358
+
359
+ class SwitcherItems(object):
360
+ """ An object containing switcher items. """
361
+
362
+ def __init__(self, items=None):
363
+ """ Default class constructor. """
364
+
365
+ self._selection = -1
366
+ self._rowCount = 10
367
+ self._columnCount = 0
368
+
369
+ self._backgroundColour = wx.NullColour
370
+ self._textColour = wx.NullColour
371
+ self._selectionColour = wx.NullColour
372
+ self._selectionOutlineColour = wx.NullColour
373
+ self._itemFont = wx.NullFont
374
+
375
+ self._items = []
376
+
377
+ if wx.Platform == "__WXMSW__":
378
+ # If on Windows XP/Vista, use more appropriate colours
379
+ self.SetSelectionOutlineColour(wx.Colour(49, 106, 197))
380
+ self.SetSelectionColour(wx.Colour(193, 210, 238))
381
+
382
+ if items:
383
+ self.Copy(items)
384
+
385
+
386
+ def Copy(self, items):
387
+ """
388
+ Copy operator between 2 :class:`SwitcherItems`.
389
+
390
+ :param `items`: another instance of :class:`SwitcherItems`.
391
+ """
392
+
393
+ self.Clear()
394
+
395
+ for item in items._items:
396
+ self._items.append(item)
397
+
398
+ self._selection = items._selection
399
+ self._rowCount = items._rowCount
400
+ self._columnCount = items._columnCount
401
+
402
+ self._backgroundColour = items._backgroundColour
403
+ self._textColour = items._textColour
404
+ self._selectionColour = items._selectionColour
405
+ self._selectionOutlineColour = items._selectionOutlineColour
406
+ self._itemFont = items._itemFont
407
+
408
+
409
+ def AddItem(self, titleOrItem, name=None, id=0, bitmap=wx.NullBitmap):
410
+
411
+ if isinstance(titleOrItem, SwitcherItem):
412
+ self._items.append(titleOrItem)
413
+ return self._items[-1]
414
+
415
+ item = SwitcherItem()
416
+ item.SetTitle(titleOrItem)
417
+ item.SetName(name)
418
+ item.SetId(id)
419
+ item.SetBitmap(bitmap)
420
+
421
+ self._items.append(item)
422
+ return self._items[-1]
423
+
424
+
425
+ def AddGroup(self, title, name, id=0, bitmap=wx.NullBitmap):
426
+
427
+ item = self.AddItem(title, name, id, bitmap)
428
+ item.SetIsGroup(True)
429
+
430
+ return item
431
+
432
+
433
+ def Clear(self):
434
+
435
+ self._items = []
436
+
437
+
438
+ def FindItemByName(self, name):
439
+
440
+ for i in range(len(self._items)):
441
+ if self._items[i].GetName() == name:
442
+ return i
443
+
444
+ return wx.NOT_FOUND
445
+
446
+
447
+ def FindItemById(self, id):
448
+
449
+ for i in range(len(self._items)):
450
+ if self._items[i].GetId() == id:
451
+ return i
452
+
453
+ return wx.NOT_FOUND
454
+
455
+
456
+ def SetSelection(self, sel):
457
+
458
+ self._selection = sel
459
+
460
+
461
+ def SetSelectionByName(self, name):
462
+
463
+ idx = self.FindItemByName(name)
464
+ if idx != wx.NOT_FOUND:
465
+ self.SetSelection(idx)
466
+
467
+
468
+ def GetSelection(self):
469
+
470
+ return self._selection
471
+
472
+
473
+ def GetItem(self, i):
474
+
475
+ return self._items[i]
476
+
477
+
478
+ def GetItemCount(self):
479
+
480
+ return len(self._items)
481
+
482
+
483
+ def SetRowCount(self, rows):
484
+
485
+ self._rowCount = rows
486
+
487
+
488
+ def GetRowCount(self):
489
+
490
+ return self._rowCount
491
+
492
+
493
+ def SetColumnCount(self, cols):
494
+
495
+ self._columnCount = cols
496
+
497
+
498
+ def GetColumnCount(self):
499
+
500
+ return self._columnCount
501
+
502
+
503
+ def SetBackgroundColour(self, colour):
504
+
505
+ self._backgroundColour = colour
506
+
507
+
508
+ def GetBackgroundColour(self):
509
+
510
+ return self._backgroundColour
511
+
512
+
513
+ def SetTextColour(self, colour):
514
+
515
+ self._textColour = colour
516
+
517
+
518
+ def GetTextColour(self):
519
+
520
+ return self._textColour
521
+
522
+
523
+ def SetSelectionColour(self, colour):
524
+
525
+ self._selectionColour = colour
526
+
527
+
528
+ def GetSelectionColour(self):
529
+
530
+ return self._selectionColour
531
+
532
+
533
+ def SetSelectionOutlineColour(self, colour):
534
+
535
+ self._selectionOutlineColour = colour
536
+
537
+
538
+ def GetSelectionOutlineColour(self):
539
+
540
+ return self._selectionOutlineColour
541
+
542
+
543
+ def SetItemFont(self, font):
544
+
545
+ self._itemFont = font
546
+
547
+
548
+ def GetItemFont(self):
549
+
550
+ return self._itemFont
551
+
552
+
553
+ def PaintItems(self, dc, win):
554
+
555
+ backgroundColour = wx.SystemSettings.GetColour(wx.SYS_COLOUR_3DFACE)
556
+ standardTextColour = wx.SystemSettings.GetColour(wx.SYS_COLOUR_WINDOWTEXT)
557
+ selectionColour = wx.SystemSettings.GetColour(wx.SYS_COLOUR_HIGHLIGHT)
558
+ selectionOutlineColour = wx.SystemSettings.GetColour(wx.SYS_COLOUR_WINDOWTEXT)
559
+ standardFont = wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT)
560
+ groupFont = wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT)
561
+ groupFont.SetWeight(wx.FONTWEIGHT_BOLD)
562
+
563
+ if self.GetBackgroundColour().IsOk():
564
+ backgroundColour = self.GetBackgroundColour()
565
+
566
+ if self.GetTextColour().IsOk():
567
+ standardTextColour = self.GetTextColour()
568
+
569
+ if self.GetSelectionColour().IsOk():
570
+ selectionColour = self.GetSelectionColour()
571
+
572
+ if self.GetSelectionOutlineColour().IsOk():
573
+ selectionOutlineColour = self.GetSelectionOutlineColour()
574
+
575
+ if self.GetItemFont().IsOk():
576
+
577
+ standardFont = self.GetItemFont()
578
+ groupFont = wx.Font(standardFont.GetPointSize(), standardFont.GetFamily(), standardFont.GetStyle(),
579
+ wx.FONTWEIGHT_BOLD, standardFont.GetUnderlined(), standardFont.GetFaceName())
580
+
581
+ textMarginX = SWITCHER_TEXT_MARGIN_X
582
+
583
+ dc.SetLogicalFunction(wx.COPY)
584
+ dc.SetBrush(wx.Brush(backgroundColour))
585
+ dc.SetPen(wx.TRANSPARENT_PEN)
586
+ dc.DrawRectangle(win.GetClientRect())
587
+ dc.SetBackgroundMode(wx.TRANSPARENT)
588
+
589
+ for i in range(len(self._items)):
590
+ item = self._items[i]
591
+ if i == self._selection:
592
+ dc.SetPen(wx.Pen(selectionOutlineColour))
593
+ dc.SetBrush(wx.Brush(selectionColour))
594
+ dc.DrawRectangle(item.GetRect())
595
+
596
+ clippingRect = wx.Rect(*item.GetRect())
597
+ clippingRect.Deflate(1, 1)
598
+
599
+ dc.SetClippingRegion(clippingRect)
600
+
601
+ if item.GetTextColour().IsOk():
602
+ dc.SetTextForeground(item.GetTextColour())
603
+ else:
604
+ dc.SetTextForeground(standardTextColour)
605
+
606
+ if item.GetFont().IsOk():
607
+ dc.SetFont(item.GetFont())
608
+ else:
609
+ if item.GetIsGroup():
610
+ dc.SetFont(groupFont)
611
+ else:
612
+ dc.SetFont(standardFont)
613
+
614
+ w, h = dc.GetTextExtent(item.GetTitle())
615
+ x = item.GetRect().x
616
+
617
+ x += textMarginX
618
+
619
+ if not item.GetIsGroup():
620
+ if item.GetBitmap().IsOk() and item.GetBitmap().GetWidth() <= 16 \
621
+ and item.GetBitmap().GetHeight() <= 16:
622
+ x -= textMarginX
623
+ dc.DrawBitmap(item.GetBitmap(), x, item.GetRect().y + \
624
+ (item.GetRect().height - item.GetBitmap().GetHeight())//2,
625
+ True)
626
+ x += 16 + textMarginX
627
+ #x += textMarginX
628
+
629
+ y = item.GetRect().y + (item.GetRect().height - h)//2
630
+ dc.DrawText(item.GetTitle(), x, y)
631
+ dc.DestroyClippingRegion()
632
+
633
+
634
+ def CalculateItemSize(self, dc):
635
+
636
+ # Start off allowing for an icon
637
+ sz = wx.Size(150, 16)
638
+ standardFont = wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT)
639
+ groupFont = wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT)
640
+ groupFont.SetWeight(wx.FONTWEIGHT_BOLD)
641
+
642
+ textMarginX = SWITCHER_TEXT_MARGIN_X
643
+ textMarginY = SWITCHER_TEXT_MARGIN_Y
644
+ maxWidth = 300
645
+ maxHeight = 40
646
+
647
+ if self.GetItemFont().IsOk():
648
+ standardFont = self.GetItemFont()
649
+
650
+ for item in self._items:
651
+ if item.GetFont().IsOk():
652
+ dc.SetFont(item.GetFont())
653
+ else:
654
+ if item.GetIsGroup():
655
+ dc.SetFont(groupFont)
656
+ else:
657
+ dc.SetFont(standardFont)
658
+
659
+ w, h = dc.GetTextExtent(item.GetTitle())
660
+ w += 16 + 2*textMarginX
661
+
662
+ if w > sz.x:
663
+ sz.x = min(w, maxWidth)
664
+ if h > sz.y:
665
+ sz.y = min(h, maxHeight)
666
+
667
+ if sz == wx.Size(16, 16):
668
+ sz = wx.Size(100, 25)
669
+ else:
670
+ sz.x += textMarginX*2
671
+ sz.y += textMarginY*2
672
+
673
+ return sz
674
+
675
+
676
+ def GetIndexForFocus(self):
677
+
678
+ for i, item in enumerate(self._items):
679
+ if item.GetWindow():
680
+
681
+ if FindFocusDescendant(item.GetWindow()):
682
+ return i
683
+
684
+ return wx.NOT_FOUND
685
+
686
+
687
+ class MultiColumnListCtrl(wx.Control):
688
+ """ A control for displaying several columns (not scrollable). """
689
+
690
+ def __init__(self, parent, aui_manager, id=wx.ID_ANY, pos=wx.DefaultPosition, size=wx.DefaultSize,
691
+ style=0, validator=wx.DefaultValidator, name="MultiColumnListCtrl"):
692
+
693
+ wx.Control.__init__(self, parent, id, pos, size, style, validator, name)
694
+
695
+ self._overallSize = wx.Size(200, 100)
696
+ self._modifierKey = wx.WXK_CONTROL
697
+ self._extraNavigationKey = 0
698
+ self._aui_manager = aui_manager
699
+
700
+ self.SetInitialSize(size)
701
+ self.SetBackgroundStyle(wx.BG_STYLE_CUSTOM)
702
+
703
+ self.Bind(wx.EVT_PAINT, self.OnPaint)
704
+ self.Bind(wx.EVT_ERASE_BACKGROUND, self.OnEraseBackground)
705
+ self.Bind(wx.EVT_MOUSE_EVENTS, self.OnMouseEvent)
706
+ self.Bind(wx.EVT_CHAR, self.OnChar)
707
+ self.Bind(wx.EVT_KEY_DOWN, self.OnKey)
708
+ self.Bind(wx.EVT_KEY_UP, self.OnKey)
709
+
710
+
711
+ def __del__(self):
712
+
713
+ self._aui_manager.HideHint()
714
+
715
+
716
+ def DoGetBestSize(self):
717
+
718
+ return self._overallSize
719
+
720
+
721
+ def OnEraseBackground(self, event):
722
+
723
+ pass
724
+
725
+
726
+ def OnPaint(self, event):
727
+
728
+ dc = wx.AutoBufferedPaintDC(self)
729
+ rect = self.GetClientRect()
730
+
731
+ if self._items.GetColumnCount() == 0:
732
+ self.CalculateLayout(dc)
733
+
734
+ if self._items.GetColumnCount() == 0:
735
+ return
736
+
737
+ self._items.PaintItems(dc, self)
738
+
739
+
740
+ def OnMouseEvent(self, event):
741
+
742
+ if event.LeftDown():
743
+ self.SetFocus()
744
+
745
+
746
+ def OnChar(self, event):
747
+
748
+ event.Skip()
749
+
750
+
751
+ def OnKey(self, event):
752
+
753
+ if event.GetEventType() == wx.wxEVT_KEY_UP:
754
+ if event.GetKeyCode() == self.GetModifierKey():
755
+ topLevel = wx.GetTopLevelParent(self)
756
+ closeEvent = wx.CloseEvent(wx.wxEVT_CLOSE_WINDOW, topLevel.GetId())
757
+ closeEvent.SetEventObject(topLevel)
758
+ closeEvent.SetCanVeto(False)
759
+
760
+ topLevel.GetEventHandler().ProcessEvent(closeEvent)
761
+ return
762
+
763
+ event.Skip()
764
+ return
765
+
766
+ keyCode = event.GetKeyCode()
767
+
768
+ if keyCode in [wx.WXK_ESCAPE, wx.WXK_RETURN]:
769
+ if keyCode == wx.WXK_ESCAPE:
770
+ self._items.SetSelection(-1)
771
+
772
+ topLevel = wx.GetTopLevelParent(self)
773
+ closeEvent = wx.CloseEvent(wx.wxEVT_CLOSE_WINDOW, topLevel.GetId())
774
+ closeEvent.SetEventObject(topLevel)
775
+ closeEvent.SetCanVeto(False)
776
+
777
+ topLevel.GetEventHandler().ProcessEvent(closeEvent)
778
+ return
779
+
780
+ elif keyCode in [wx.WXK_TAB, self.GetExtraNavigationKey()]:
781
+ if event.ShiftDown():
782
+
783
+ self._items.SetSelection(self._items.GetSelection() - 1)
784
+ if self._items.GetSelection() < 0:
785
+ self._items.SetSelection(self._items.GetItemCount() - 1)
786
+
787
+ self.AdvanceToNextSelectableItem(-1)
788
+
789
+ else:
790
+
791
+ self._items.SetSelection(self._items.GetSelection() + 1)
792
+ if self._items.GetSelection() >= self._items.GetItemCount():
793
+ self._items.SetSelection(0)
794
+
795
+ self.AdvanceToNextSelectableItem(1)
796
+
797
+ self.GenerateSelectionEvent()
798
+ self.Refresh()
799
+
800
+ elif keyCode in [wx.WXK_DOWN, wx.WXK_NUMPAD_DOWN]:
801
+ self._items.SetSelection(self._items.GetSelection() + 1)
802
+ if self._items.GetSelection() >= self._items.GetItemCount():
803
+ self._items.SetSelection(0)
804
+
805
+ self.AdvanceToNextSelectableItem(1)
806
+ self.GenerateSelectionEvent()
807
+ self.Refresh()
808
+
809
+ elif keyCode in [wx.WXK_UP, wx.WXK_NUMPAD_UP]:
810
+ self._items.SetSelection(self._items.GetSelection() - 1)
811
+ if self._items.GetSelection() < 0:
812
+ self._items.SetSelection(self._items.GetItemCount() - 1)
813
+
814
+ self.AdvanceToNextSelectableItem(-1)
815
+ self.GenerateSelectionEvent()
816
+ self.Refresh()
817
+
818
+ elif keyCode in [wx.WXK_HOME, wx.WXK_NUMPAD_HOME]:
819
+ self._items.SetSelection(0)
820
+ self.AdvanceToNextSelectableItem(1)
821
+ self.GenerateSelectionEvent()
822
+ self.Refresh()
823
+
824
+ elif keyCode in [wx.WXK_END, wx.WXK_NUMPAD_END]:
825
+ self._items.SetSelection(self._items.GetItemCount() - 1)
826
+ self.AdvanceToNextSelectableItem(-1)
827
+ self.GenerateSelectionEvent()
828
+ self.Refresh()
829
+
830
+ elif keyCode in [wx.WXK_LEFT, wx.WXK_NUMPAD_LEFT]:
831
+ item = self._items.GetItem(self._items.GetSelection())
832
+
833
+ row = item.GetRowPos()
834
+ newCol = item.GetColPos() - 1
835
+ if newCol < 0:
836
+ newCol = self._items.GetColumnCount() - 1
837
+
838
+ # Find the first item from the end whose row matches and whose column is equal or lower
839
+ for i in range(self._items.GetItemCount()-1, -1, -1):
840
+ item2 = self._items.GetItem(i)
841
+ if item2.GetColPos() == newCol and item2.GetRowPos() <= row:
842
+ self._items.SetSelection(i)
843
+ break
844
+
845
+ self.AdvanceToNextSelectableItem(-1)
846
+ self.GenerateSelectionEvent()
847
+ self.Refresh()
848
+
849
+ elif keyCode in [wx.WXK_RIGHT, wx.WXK_NUMPAD_RIGHT]:
850
+ item = self._items.GetItem(self._items.GetSelection())
851
+
852
+ row = item.GetRowPos()
853
+ newCol = item.GetColPos() + 1
854
+ if newCol >= self._items.GetColumnCount():
855
+ newCol = 0
856
+
857
+ # Find the first item from the end whose row matches and whose column is equal or lower
858
+ for i in range(self._items.GetItemCount()-1, -1, -1):
859
+ item2 = self._items.GetItem(i)
860
+ if item2.GetColPos() == newCol and item2.GetRowPos() <= row:
861
+ self._items.SetSelection(i)
862
+ break
863
+
864
+ self.AdvanceToNextSelectableItem(1)
865
+ self.GenerateSelectionEvent()
866
+ self.Refresh()
867
+
868
+ else:
869
+ event.Skip()
870
+
871
+
872
+ def AdvanceToNextSelectableItem(self, direction):
873
+
874
+ if self._items.GetItemCount() < 2:
875
+ return
876
+
877
+ if self._items.GetSelection() == -1:
878
+ self._items.SetSelection(0)
879
+
880
+ oldSel = self._items.GetSelection()
881
+
882
+ while 1:
883
+
884
+ if self._items.GetItem(self._items.GetSelection()).GetIsGroup():
885
+
886
+ self._items.SetSelection(self._items.GetSelection() + direction)
887
+ if self._items.GetSelection() == -1:
888
+ self._items.SetSelection(self._items.GetItemCount()-1)
889
+ elif self._items.GetSelection() == self._items.GetItemCount():
890
+ self._items.SetSelection(0)
891
+ if self._items.GetSelection() == oldSel:
892
+ break
893
+
894
+ else:
895
+ break
896
+
897
+ self.SetTransparency()
898
+ selection = self._items.GetItem(self._items.GetSelection()).GetWindow()
899
+ pane = self._aui_manager.GetPane(selection)
900
+
901
+ if not pane.IsOk():
902
+ if isinstance(selection.GetParent(), auibook.AuiNotebook):
903
+ self.SetTransparency(selection)
904
+ self._aui_manager.ShowHint(selection.GetScreenRect())
905
+ wx.CallAfter(self.SetFocus)
906
+ self.SetFocus()
907
+ return
908
+ else:
909
+ self._aui_manager.HideHint()
910
+ return
911
+ if not pane.IsShown():
912
+ self._aui_manager.HideHint()
913
+ return
914
+
915
+ self.SetTransparency(selection)
916
+ self._aui_manager.ShowHint(selection.GetScreenRect())
917
+ # NOTE: this is odd but it is the only way for the focus to
918
+ # work correctly on wxMac...
919
+ wx.CallAfter(self.SetFocus)
920
+ self.SetFocus()
921
+
922
+
923
+ def SetTransparency(self, selection=None):
924
+
925
+ if not self.GetParent().CanSetTransparent():
926
+ return
927
+
928
+ if selection is not None:
929
+ intersects = False
930
+ if selection.GetScreenRect().Intersects(self.GetParent().GetScreenRect()):
931
+ intersects = True
932
+ self.GetParent().SetTransparent(200)
933
+ return
934
+
935
+ self.GetParent().SetTransparent(255)
936
+
937
+
938
+ def GenerateSelectionEvent(self):
939
+
940
+ event = wx.CommandEvent(wx.wxEVT_COMMAND_LISTBOX_SELECTED, self.GetId())
941
+ event.SetEventObject(self)
942
+ event.SetInt(self._items.GetSelection())
943
+ self.GetEventHandler().ProcessEvent(event)
944
+
945
+
946
+ def CalculateLayout(self, dc=None):
947
+
948
+ if dc is None:
949
+ dc = wx.ClientDC(self)
950
+
951
+ if self._items.GetSelection() == -1:
952
+ self._items.SetSelection(0)
953
+
954
+ columnCount = 1
955
+
956
+ # Spacing between edge of window or between columns
957
+ xMargin = 4
958
+ yMargin = 4
959
+
960
+ # Inter-row spacing
961
+ rowSpacing = 2
962
+
963
+ itemSize = self._items.CalculateItemSize(dc)
964
+ self._overallSize = wx.Size(350, 200)
965
+
966
+ currentRow = 0
967
+ x = xMargin
968
+ y = yMargin
969
+
970
+ breaking = False
971
+ i = 0
972
+
973
+ while 1:
974
+
975
+ oldOverallSize = self._overallSize
976
+ item = self._items.GetItem(i)
977
+
978
+ item.SetRect(wx.Rect(x, y, itemSize.x, itemSize.y))
979
+ item.SetColPos(columnCount-1)
980
+ item.SetRowPos(currentRow)
981
+
982
+ if item.GetRect().GetBottom() > self._overallSize.y:
983
+ self._overallSize.y = item.GetRect().GetBottom() + yMargin
984
+
985
+ if item.GetRect().GetRight() > self._overallSize.x:
986
+ self._overallSize.x = item.GetRect().GetRight() + xMargin
987
+
988
+ currentRow += 1
989
+
990
+ y += rowSpacing + itemSize.y
991
+ stopBreaking = breaking
992
+
993
+ if currentRow > self._items.GetRowCount() or (item.GetBreakColumn() and not breaking and currentRow != 1):
994
+ currentRow = 0
995
+ columnCount += 1
996
+ x += xMargin + itemSize.x
997
+ y = yMargin
998
+
999
+ # Make sure we don't orphan a group
1000
+ if item.GetIsGroup() or (item.GetBreakColumn() and not breaking):
1001
+ self._overallSize = oldOverallSize
1002
+
1003
+ if item.GetBreakColumn():
1004
+ breaking = True
1005
+
1006
+ # Repeat the last item, in the next column
1007
+ i -= 1
1008
+
1009
+ if stopBreaking:
1010
+ breaking = False
1011
+
1012
+ i += 1
1013
+
1014
+ if i >= self._items.GetItemCount():
1015
+ break
1016
+
1017
+ self._items.SetColumnCount(columnCount)
1018
+ self.InvalidateBestSize()
1019
+
1020
+
1021
+ def SetItems(self, items):
1022
+
1023
+ self._items = items
1024
+
1025
+
1026
+ def GetItems(self):
1027
+
1028
+ return self._items
1029
+
1030
+
1031
+ def SetExtraNavigationKey(self, keyCode):
1032
+ """
1033
+ Set an extra key that can be used to cycle through items,
1034
+ in case not using the ``Ctrl`` + ``Tab`` combination.
1035
+ """
1036
+
1037
+ self._extraNavigationKey = keyCode
1038
+
1039
+
1040
+ def GetExtraNavigationKey(self):
1041
+
1042
+ return self._extraNavigationKey
1043
+
1044
+
1045
+ def SetModifierKey(self, modifierKey):
1046
+ """
1047
+ Set the modifier used to invoke the dialog, and therefore to test for release.
1048
+ """
1049
+
1050
+ self._modifierKey = modifierKey
1051
+
1052
+
1053
+ def GetModifierKey(self):
1054
+
1055
+ return self._modifierKey
1056
+
1057
+
1058
+
1059
+ class SwitcherDialog(wx.Dialog):
1060
+ """
1061
+ SwitcherDialog shows a :class:`Dialog` with a list of panes and tabs for the user to choose.
1062
+ ``Ctrl`` + ``Tab`` cycles through them.
1063
+ """
1064
+
1065
+ def __init__(self, items, parent, aui_manager, id=wx.ID_ANY, title=_("Pane Switcher"), pos=wx.DefaultPosition,
1066
+ size=wx.DefaultSize, style=wx.STAY_ON_TOP|wx.DIALOG_NO_PARENT|wx.BORDER_SIMPLE):
1067
+ """ Default class constructor. """
1068
+
1069
+ self._switcherBorderStyle = (style & wx.BORDER_MASK)
1070
+ if self._switcherBorderStyle == wx.BORDER_NONE:
1071
+ self._switcherBorderStyle = wx.BORDER_SIMPLE
1072
+
1073
+ style &= wx.BORDER_MASK
1074
+ style |= wx.BORDER_NONE
1075
+
1076
+ wx.Dialog.__init__(self, parent, id, title, pos, size, style)
1077
+
1078
+ self._listCtrl = MultiColumnListCtrl(self, aui_manager,
1079
+ style=wx.WANTS_CHARS|wx.NO_BORDER)
1080
+ self._listCtrl.SetItems(items)
1081
+ self._listCtrl.CalculateLayout()
1082
+
1083
+ self._descriptionCtrl = wx.html.HtmlWindow(self, size=(-1, 100), style=wx.BORDER_NONE)
1084
+ self._descriptionCtrl.SetBackgroundColour(self.GetBackgroundColour())
1085
+
1086
+ if wx.Platform == "__WXGTK__":
1087
+ fontSize = 11
1088
+ self._descriptionCtrl.SetStandardFonts(fontSize)
1089
+
1090
+ sizer = wx.BoxSizer(wx.VERTICAL)
1091
+ self.SetSizer(sizer)
1092
+ sizer.Add(self._listCtrl, 1, wx.ALL|wx.EXPAND, 10)
1093
+ sizer.Add(self._descriptionCtrl, 0, wx.ALL|wx.EXPAND, 10)
1094
+ sizer.SetSizeHints(self)
1095
+
1096
+ self._listCtrl.SetFocus()
1097
+
1098
+ self.Centre(wx.BOTH)
1099
+
1100
+ if self._listCtrl.GetItems().GetSelection() == -1:
1101
+ self._listCtrl.GetItems().SetSelection(0)
1102
+
1103
+ self._listCtrl.AdvanceToNextSelectableItem(1)
1104
+
1105
+ self.ShowDescription(self._listCtrl.GetItems().GetSelection())
1106
+
1107
+ self.Bind(wx.EVT_CLOSE, self.OnCloseWindow)
1108
+ self.Bind(wx.EVT_ACTIVATE, self.OnActivate)
1109
+ self.Bind(wx.EVT_LISTBOX, self.OnSelectItem)
1110
+ self.Bind(wx.EVT_PAINT, self.OnPaint)
1111
+
1112
+ # Attributes
1113
+ self._closing = False
1114
+ if wx.Platform == "__WXMSW__":
1115
+ self._borderColour = wx.Colour(49, 106, 197)
1116
+ else:
1117
+ self._borderColour = wx.BLACK
1118
+
1119
+ self._aui_manager = aui_manager
1120
+
1121
+
1122
+ def OnCloseWindow(self, event):
1123
+
1124
+ if self._closing:
1125
+ return
1126
+
1127
+ if self.IsModal():
1128
+ self._closing = True
1129
+
1130
+ if self.GetSelection() == -1:
1131
+ self.EndModal(wx.ID_CANCEL)
1132
+ else:
1133
+ self.EndModal(wx.ID_OK)
1134
+
1135
+ self._aui_manager.HideHint()
1136
+
1137
+
1138
+ def GetSelection(self):
1139
+
1140
+ return self._listCtrl.GetItems().GetSelection()
1141
+
1142
+
1143
+ def OnActivate(self, event):
1144
+
1145
+ if not event.GetActive():
1146
+ if not self._closing:
1147
+ self._closing = True
1148
+ self.EndModal(wx.ID_CANCEL)
1149
+
1150
+
1151
+ def OnPaint(self, event):
1152
+
1153
+ dc = wx.PaintDC(self)
1154
+
1155
+ if self._switcherBorderStyle == wx.BORDER_SIMPLE:
1156
+
1157
+ dc.SetPen(wx.Pen(self._borderColour))
1158
+ dc.SetBrush(wx.TRANSPARENT_BRUSH)
1159
+
1160
+ rect = self.GetClientRect()
1161
+ dc.DrawRectangle(rect)
1162
+
1163
+ # Draw border around the HTML control
1164
+ rect = wx.Rect(*self._descriptionCtrl.GetRect())
1165
+ rect.Inflate(1, 1)
1166
+ dc.DrawRectangle(rect)
1167
+
1168
+
1169
+ def OnSelectItem(self, event):
1170
+
1171
+ self.ShowDescription(event.GetSelection())
1172
+
1173
+
1174
+ # Convert a colour to a 6-digit hex string
1175
+ def ColourToHexString(self, col):
1176
+
1177
+ hx = '%02x%02x%02x%02x' % tuple([int(c) for c in col])
1178
+ return hx
1179
+
1180
+
1181
+ def ShowDescription(self, i):
1182
+
1183
+ item = self._listCtrl.GetItems().GetItem(i)
1184
+ colour = self._listCtrl.GetItems().GetBackgroundColour()
1185
+
1186
+ if not colour.IsOk():
1187
+ colour = self.GetBackgroundColour()
1188
+
1189
+ backgroundColourHex = self.ColourToHexString(colour)
1190
+ html = _("<body bgcolor=\"#") + backgroundColourHex + _("\"><b>") + item.GetTitle() + _("</b>")
1191
+
1192
+ if item.GetDescription():
1193
+ html += _("<p>")
1194
+ html += item.GetDescription()
1195
+
1196
+ html += _("</body>")
1197
+ self._descriptionCtrl.SetPage(html)
1198
+
1199
+
1200
+ def SetExtraNavigationKey(self, keyCode):
1201
+
1202
+ self._extraNavigationKey = keyCode
1203
+ if self._listCtrl:
1204
+ self._listCtrl.SetExtraNavigationKey(keyCode)
1205
+
1206
+
1207
+ def GetExtraNavigationKey(self):
1208
+
1209
+ return self._extraNavigationKey
1210
+
1211
+
1212
+ def SetModifierKey(self, modifierKey):
1213
+
1214
+ self._modifierKey = modifierKey
1215
+ if self._listCtrl:
1216
+ self._listCtrl.SetModifierKey(modifierKey)
1217
+
1218
+
1219
+ def GetModifierKey(self):
1220
+
1221
+ return self._modifierKey
1222
+
1223
+
1224
+ def SetBorderColour(self, colour):
1225
+
1226
+ self._borderColour = colour
1227
+