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,1198 @@
1
+ # -*- coding: utf-8 -*-
2
+ #----------------------------------------------------------------------------
3
+ # Name: dockart.py
4
+ # Purpose:
5
+ #
6
+ # Author: Andrea Gavana <andrea.gavana@gmail.com>
7
+ #
8
+ # Created:
9
+ # Version:
10
+ # Date: 31 March 2009
11
+ # Licence: wxWindows license
12
+ # Tags: phoenix-port, unittest, documented, py3-port
13
+ #----------------------------------------------------------------------------
14
+ """
15
+ Dock art provider code - a dock provider provides all drawing functionality to
16
+ the AUI dock manager. This allows the dock manager to have a plugable look-and-feel.
17
+
18
+ By default, a :class:`~wx.lib.agw.aui.framemanager` uses an instance of this class called :mod:`~wx.lib.agw.aui.dockart`
19
+ which provides bitmap art and a colour scheme that is adapted to the major platforms'
20
+ look. You can either derive from that class to alter its behaviour or write a
21
+ completely new dock art class. Call :meth:`AuiManager.SetArtProvider() <lib.agw.aui.framemanager.AuiManager.SetArtProvider>`
22
+ to make use this new dock art.
23
+ """
24
+
25
+ __author__ = "Andrea Gavana <andrea.gavana@gmail.com>"
26
+ __date__ = "31 March 2009"
27
+
28
+
29
+ import wx
30
+
31
+ from .aui_utilities import BitmapFromBits, StepColour, ChopText, GetBaseColour
32
+ from .aui_utilities import DrawGradientRectangle, DrawMACCloseButton
33
+ from .aui_utilities import DarkenBitmap, LightContrastColour
34
+ from .aui_constants import *
35
+
36
+ optionActive = 2**14
37
+ """ Indicates that a pane is active and should display an active caption (if present). """
38
+
39
+ _ctypes = False
40
+
41
+ # Try to import winxptheme for ModernDockArt
42
+ if wx.Platform == "__WXMSW__":
43
+ try:
44
+ import ctypes
45
+ import winxptheme
46
+ _ctypes = True
47
+ except ImportError:
48
+ pass
49
+
50
+ # -- AuiDefaultDockArt class implementation --
51
+
52
+ class AuiDefaultDockArt(object):
53
+ """
54
+ Dock art provider code - a dock provider provides all drawing functionality to the AUI dock manager.
55
+ This allows the dock manager to have a plugable look-and-feel.
56
+
57
+ By default, a :class:`~wx.lib.agw.aui.framemanager.AuiManager` uses an instance of this class called
58
+ :class:`AuiDefaultDockArt` which provides bitmap art and a colour scheme that is adapted to the major
59
+ platforms' look. You can either derive from that class to alter its behaviour or
60
+ write a completely new dock art class.
61
+
62
+ Call :meth:`AuiManager.SetArtProvider() <lib.agw.aui.framemanager.AuiManager.SetArtProvider>`
63
+ to make use this new dock art.
64
+
65
+
66
+ **Metric Ordinals**
67
+
68
+ These are the possible pane dock art settings for :class:`AuiDefaultDockArt`:
69
+
70
+ ================================================ ======================================
71
+ Metric Ordinal Constant Description
72
+ ================================================ ======================================
73
+ ``AUI_DOCKART_SASH_SIZE`` Customizes the sash size
74
+ ``AUI_DOCKART_CAPTION_SIZE`` Customizes the caption size
75
+ ``AUI_DOCKART_GRIPPER_SIZE`` Customizes the gripper size
76
+ ``AUI_DOCKART_PANE_BORDER_SIZE`` Customizes the pane border size
77
+ ``AUI_DOCKART_PANE_BUTTON_SIZE`` Customizes the pane button size
78
+ ``AUI_DOCKART_BACKGROUND_COLOUR`` Customizes the background colour
79
+ ``AUI_DOCKART_BACKGROUND_GRADIENT_COLOUR`` Customizes the background gradient colour
80
+ ``AUI_DOCKART_SASH_COLOUR`` Customizes the sash colour
81
+ ``AUI_DOCKART_ACTIVE_CAPTION_COLOUR`` Customizes the active caption colour
82
+ ``AUI_DOCKART_ACTIVE_CAPTION_GRADIENT_COLOUR`` Customizes the active caption gradient colour
83
+ ``AUI_DOCKART_INACTIVE_CAPTION_COLOUR`` Customizes the inactive caption colour
84
+ ``AUI_DOCKART_INACTIVE_CAPTION_GRADIENT_COLOUR`` Customizes the inactive gradient caption colour
85
+ ``AUI_DOCKART_ACTIVE_CAPTION_TEXT_COLOUR`` Customizes the active caption text colour
86
+ ``AUI_DOCKART_INACTIVE_CAPTION_TEXT_COLOUR`` Customizes the inactive caption text colour
87
+ ``AUI_DOCKART_BORDER_COLOUR`` Customizes the border colour
88
+ ``AUI_DOCKART_GRIPPER_COLOUR`` Customizes the gripper colour
89
+ ``AUI_DOCKART_CAPTION_FONT`` Customizes the caption font
90
+ ``AUI_DOCKART_GRADIENT_TYPE`` Customizes the gradient type (no gradient, vertical or horizontal)
91
+ ``AUI_DOCKART_DRAW_SASH_GRIP`` Draw a sash grip on the sash
92
+ ``AUI_DOCKART_HINT_WINDOW_COLOUR`` Customizes the hint window background colour (currently light blue)
93
+ ``AUI_DOCKART_HINT_WINDOW_BORDER_COLOUR`` Customizes the hint window border background colour (currently grey)
94
+ ================================================ ======================================
95
+
96
+
97
+ **Gradient Types**
98
+
99
+ These are the possible gradient dock art settings for :class:`AuiDefaultDockArt`:
100
+
101
+ ============================================ ======================================
102
+ Gradient Constant Description
103
+ ============================================ ======================================
104
+ ``AUI_GRADIENT_NONE`` No gradient on the captions
105
+ ``AUI_GRADIENT_VERTICAL`` Vertical gradient on the captions
106
+ ``AUI_GRADIENT_HORIZONTAL`` Horizontal gradient on the captions
107
+ ============================================ ======================================
108
+
109
+
110
+ **Button States**
111
+
112
+ These are the possible pane button / :class:`~wx.lib.agw.aui.auibook.AuiNotebook` button /
113
+ :class:`~wx.lib.agw.aui.auibar.AuiToolBar` button states:
114
+
115
+ ============================================ ======================================
116
+ Button State Constant Description
117
+ ============================================ ======================================
118
+ ``AUI_BUTTON_STATE_NORMAL`` Normal button state
119
+ ``AUI_BUTTON_STATE_HOVER`` Hovered button state
120
+ ``AUI_BUTTON_STATE_PRESSED`` Pressed button state
121
+ ``AUI_BUTTON_STATE_DISABLED`` Disabled button state
122
+ ``AUI_BUTTON_STATE_HIDDEN`` Hidden button state
123
+ ``AUI_BUTTON_STATE_CHECKED`` Checked button state
124
+ ============================================ ======================================
125
+
126
+
127
+ **Button Identifiers**
128
+
129
+ These are the possible pane button / :class:`~wx.lib.agw.aui.auibook.AuiNotebook` button /
130
+ :class:`~wx.lib.agw.aui.auibar.AuiToolBar` button identifiers:
131
+
132
+ ============================================ ======================================
133
+ Button Identifier Description
134
+ ============================================ ======================================
135
+ ``AUI_BUTTON_CLOSE`` Shows a close button on the pane
136
+ ``AUI_BUTTON_MAXIMIZE_RESTORE`` Shows a maximize/restore button on the pane
137
+ ``AUI_BUTTON_MINIMIZE`` Shows a minimize button on the pane
138
+ ``AUI_BUTTON_PIN`` Shows a pin button on the pane
139
+ ``AUI_BUTTON_OPTIONS`` Shows an option button on the pane (not implemented)
140
+ ``AUI_BUTTON_WINDOWLIST`` Shows a window list button on the pane (for :class:`~wx.lib.agw.aui.auibook.AuiNotebook`)
141
+ ``AUI_BUTTON_LEFT`` Shows a left button on the pane (for :class:`~wx.lib.agw.aui.auibook.AuiNotebook`)
142
+ ``AUI_BUTTON_RIGHT`` Shows a right button on the pane (for :class:`~wx.lib.agw.aui.auibook.AuiNotebook`)
143
+ ``AUI_BUTTON_UP`` Shows an up button on the pane (not implemented)
144
+ ``AUI_BUTTON_DOWN`` Shows a down button on the pane (not implemented)
145
+ ``AUI_BUTTON_CUSTOM1`` Shows a custom button on the pane (not implemented)
146
+ ``AUI_BUTTON_CUSTOM2`` Shows a custom button on the pane (not implemented)
147
+ ``AUI_BUTTON_CUSTOM3`` Shows a custom button on the pane (not implemented)
148
+ ============================================ ======================================
149
+
150
+ """
151
+
152
+ def __init__(self):
153
+ """ Default class constructor. """
154
+
155
+ self.Init()
156
+
157
+ isMac = wx.Platform == "__WXMAC__"
158
+
159
+ if isMac:
160
+ self._caption_font = wx.SMALL_FONT
161
+ else:
162
+ self._caption_font = wx.Font(8, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False)
163
+
164
+ self.SetDefaultPaneBitmaps(isMac)
165
+ self._restore_bitmap = wx.Bitmap(restore_xpm)
166
+
167
+ # default metric values
168
+ self._sash_size = 4
169
+
170
+ if isMac:
171
+ # This really should be implemented in wx.SystemSettings
172
+ # There is no way to do this that I am aware outside of using
173
+ # the cocoa python bindings. 8 pixels looks correct on my system
174
+ # so hard coding it for now.
175
+
176
+ # How do I translate this?!? Not sure of the below implementation...
177
+ # SInt32 height;
178
+ # GetThemeMetric( kThemeMetricSmallPaneSplitterHeight , &height );
179
+ # self._sash_size = height;
180
+
181
+ self._sash_size = 8 # Carbon.Appearance.kThemeMetricPaneSplitterHeight
182
+
183
+ elif wx.Platform == "__WXGTK__":
184
+ self._sash_size = wx.RendererNative.Get().GetSplitterParams(wx.GetTopLevelWindows()[0]).widthSash
185
+
186
+ else:
187
+ self._sash_size = 4
188
+
189
+ self._caption_size = 19
190
+ self._border_size = 1
191
+ self._button_size = 14
192
+ self._gripper_size = 9
193
+ self._gradient_type = AUI_GRADIENT_VERTICAL
194
+ self._draw_sash = False
195
+
196
+
197
+ def Init(self):
198
+ """ Initializes the dock art. """
199
+
200
+ self.SetDefaultColours()
201
+
202
+ isMac = wx.Platform == "__WXMAC__"
203
+
204
+ if isMac:
205
+ self._active_caption_colour = wx.SystemSettings.GetColour(wx.SYS_COLOUR_HIGHLIGHT)
206
+ else:
207
+ self._active_caption_colour = wx.SystemSettings.GetColour(wx.SYS_COLOUR_ACTIVECAPTION)
208
+
209
+ self._active_caption_gradient_colour = LightContrastColour(wx.SystemSettings.GetColour(wx.SYS_COLOUR_HIGHLIGHT))
210
+ self._active_caption_text_colour = wx.SystemSettings.GetColour(wx.SYS_COLOUR_HIGHLIGHTTEXT)
211
+ self._inactive_caption_text_colour = wx.BLACK
212
+
213
+
214
+ def SetDefaultColours(self, base_colour=None):
215
+ """
216
+ Sets the default colours, which are calculated from the given base colour.
217
+
218
+ :param `base_colour`: an instance of :class:`wx.Colour`. If defaulted to ``None``, a colour
219
+ is generated accordingly to the platform and theme.
220
+ """
221
+
222
+ if base_colour is None:
223
+ base_colour = GetBaseColour()
224
+
225
+ darker1_colour = StepColour(base_colour, 85)
226
+ darker2_colour = StepColour(base_colour, 75)
227
+ darker3_colour = StepColour(base_colour, 60)
228
+ darker4_colour = StepColour(base_colour, 40)
229
+
230
+ self._background_colour = base_colour
231
+ self._background_gradient_colour = StepColour(base_colour, 180)
232
+
233
+ self._inactive_caption_colour = darker1_colour
234
+ self._inactive_caption_gradient_colour = StepColour(base_colour, 97)
235
+
236
+ self._sash_brush = wx.Brush(base_colour)
237
+ self._background_brush = wx.Brush(base_colour)
238
+ self._border_pen = wx.Pen(darker2_colour)
239
+ self._gripper_brush = wx.Brush(base_colour)
240
+ self._gripper_pen1 = wx.Pen(darker4_colour)
241
+ self._gripper_pen2 = wx.Pen(darker3_colour)
242
+ self._gripper_pen3 = wx.WHITE_PEN
243
+
244
+ self._hint_background_colour = colourHintBackground
245
+ self._hint_border_colour = colourHintBorder
246
+
247
+
248
+ def GetMetric(self, id):
249
+ """
250
+ Gets the value of a certain setting.
251
+
252
+ :param integer `id`: can be one of the size values in `Metric Ordinals`.
253
+ """
254
+
255
+
256
+ if id == AUI_DOCKART_SASH_SIZE:
257
+ return self._sash_size
258
+ elif id == AUI_DOCKART_CAPTION_SIZE:
259
+ return self._caption_size
260
+ elif id == AUI_DOCKART_GRIPPER_SIZE:
261
+ return self._gripper_size
262
+ elif id == AUI_DOCKART_PANE_BORDER_SIZE:
263
+ return self._border_size
264
+ elif id == AUI_DOCKART_PANE_BUTTON_SIZE:
265
+ return self._button_size
266
+ elif id == AUI_DOCKART_GRADIENT_TYPE:
267
+ return self._gradient_type
268
+ elif id == AUI_DOCKART_DRAW_SASH_GRIP:
269
+ return self._draw_sash
270
+ else:
271
+ raise Exception("Invalid Metric Ordinal.")
272
+
273
+
274
+ def SetMetric(self, id, new_val):
275
+ """
276
+ Sets the value of a certain setting using `new_val`
277
+
278
+ :param integer `id`: can be one of the size values in `Metric Ordinals`;
279
+ :param `new_val`: the new value of the setting.
280
+ """
281
+
282
+ if id == AUI_DOCKART_SASH_SIZE:
283
+ self._sash_size = new_val
284
+ elif id == AUI_DOCKART_CAPTION_SIZE:
285
+ self._caption_size = new_val
286
+ elif id == AUI_DOCKART_GRIPPER_SIZE:
287
+ self._gripper_size = new_val
288
+ elif id == AUI_DOCKART_PANE_BORDER_SIZE:
289
+ self._border_size = new_val
290
+ elif id == AUI_DOCKART_PANE_BUTTON_SIZE:
291
+ self._button_size = new_val
292
+ elif id == AUI_DOCKART_GRADIENT_TYPE:
293
+ self._gradient_type = new_val
294
+ elif id == AUI_DOCKART_DRAW_SASH_GRIP:
295
+ self._draw_sash = new_val
296
+ else:
297
+ raise Exception("Invalid Metric Ordinal.")
298
+
299
+
300
+ def GetColor(self, id):
301
+ """
302
+ Gets the colour of a certain setting.
303
+
304
+ :param integer `id`: can be one of the colour values in `Metric Ordinals`.
305
+ """
306
+
307
+ if id == AUI_DOCKART_BACKGROUND_COLOUR:
308
+ return self._background_brush.GetColour()
309
+ elif id == AUI_DOCKART_BACKGROUND_GRADIENT_COLOUR:
310
+ return self._background_gradient_colour
311
+ elif id == AUI_DOCKART_SASH_COLOUR:
312
+ return self._sash_brush.GetColour()
313
+ elif id == AUI_DOCKART_INACTIVE_CAPTION_COLOUR:
314
+ return self._inactive_caption_colour
315
+ elif id == AUI_DOCKART_INACTIVE_CAPTION_GRADIENT_COLOUR:
316
+ return self._inactive_caption_gradient_colour
317
+ elif id == AUI_DOCKART_INACTIVE_CAPTION_TEXT_COLOUR:
318
+ return self._inactive_caption_text_colour
319
+ elif id == AUI_DOCKART_ACTIVE_CAPTION_COLOUR:
320
+ return self._active_caption_colour
321
+ elif id == AUI_DOCKART_ACTIVE_CAPTION_GRADIENT_COLOUR:
322
+ return self._active_caption_gradient_colour
323
+ elif id == AUI_DOCKART_ACTIVE_CAPTION_TEXT_COLOUR:
324
+ return self._active_caption_text_colour
325
+ elif id == AUI_DOCKART_BORDER_COLOUR:
326
+ return self._border_pen.GetColour()
327
+ elif id == AUI_DOCKART_GRIPPER_COLOUR:
328
+ return self._gripper_brush.GetColour()
329
+ elif id == AUI_DOCKART_HINT_WINDOW_COLOUR:
330
+ return self._hint_background_colour
331
+ elif id == AUI_DOCKART_HINT_WINDOW_BORDER_COLOUR:
332
+ return self._hint_border_colour
333
+ else:
334
+ raise Exception("Invalid Colour Ordinal.")
335
+
336
+
337
+ def SetColor(self, id, colour):
338
+ """
339
+ Sets the colour of a certain setting.
340
+
341
+ :param integer `id`: can be one of the colour values in `Metric Ordinals`;
342
+ :param `colour`: the new value of the setting.
343
+ :type `colour`: :class:`wx.Colour` or tuple or integer
344
+ """
345
+
346
+ colour = wx.Colour(colour)
347
+
348
+ if id == AUI_DOCKART_BACKGROUND_COLOUR:
349
+ self._background_brush.SetColour(colour)
350
+ elif id == AUI_DOCKART_BACKGROUND_GRADIENT_COLOUR:
351
+ self._background_gradient_colour = colour
352
+ elif id == AUI_DOCKART_SASH_COLOUR:
353
+ self._sash_brush.SetColour(colour)
354
+ elif id == AUI_DOCKART_INACTIVE_CAPTION_COLOUR:
355
+ self._inactive_caption_colour = colour
356
+ if not self._custom_pane_bitmaps and wx.Platform == "__WXMAC__":
357
+ # No custom bitmaps for the pane close button
358
+ # Change the MAC close bitmap colour
359
+ self._inactive_close_bitmap = DrawMACCloseButton(wx.WHITE, colour)
360
+
361
+ elif id == AUI_DOCKART_INACTIVE_CAPTION_GRADIENT_COLOUR:
362
+ self._inactive_caption_gradient_colour = colour
363
+ elif id == AUI_DOCKART_INACTIVE_CAPTION_TEXT_COLOUR:
364
+ self._inactive_caption_text_colour = colour
365
+ elif id == AUI_DOCKART_ACTIVE_CAPTION_COLOUR:
366
+ self._active_caption_colour = colour
367
+ if not self._custom_pane_bitmaps and wx.Platform == "__WXMAC__":
368
+ # No custom bitmaps for the pane close button
369
+ # Change the MAC close bitmap colour
370
+ self._active_close_bitmap = DrawMACCloseButton(wx.WHITE, colour)
371
+
372
+ elif id == AUI_DOCKART_ACTIVE_CAPTION_GRADIENT_COLOUR:
373
+ self._active_caption_gradient_colour = colour
374
+ elif id == AUI_DOCKART_ACTIVE_CAPTION_TEXT_COLOUR:
375
+ self._active_caption_text_colour = colour
376
+ elif id == AUI_DOCKART_BORDER_COLOUR:
377
+ self._border_pen.SetColour(colour)
378
+ elif id == AUI_DOCKART_GRIPPER_COLOUR:
379
+ self._gripper_brush.SetColour(colour)
380
+ self._gripper_pen1.SetColour(StepColour(colour, 40))
381
+ self._gripper_pen2.SetColour(StepColour(colour, 60))
382
+ elif id == AUI_DOCKART_HINT_WINDOW_COLOUR:
383
+ self._hint_background_colour = colour
384
+ elif id == AUI_DOCKART_HINT_WINDOW_BORDER_COLOUR:
385
+ self._hint_border_colour = colour
386
+ else:
387
+ raise Exception("Invalid Colour Ordinal.")
388
+
389
+
390
+ GetColour = GetColor
391
+ SetColour = SetColor
392
+
393
+ def SetFont(self, id, font):
394
+ """
395
+ Sets a font setting.
396
+
397
+ :param integer `id`: must be ``AUI_DOCKART_CAPTION_FONT``;
398
+ :param `font`: an instance of :class:`wx.Font`.
399
+ """
400
+
401
+ if id == AUI_DOCKART_CAPTION_FONT:
402
+ self._caption_font = font
403
+
404
+
405
+ def GetFont(self, id):
406
+ """
407
+ Gets a font setting.
408
+
409
+ :param integer `id`: must be ``AUI_DOCKART_CAPTION_FONT``, otherwise :class:`NullFont` is returned.
410
+ """
411
+
412
+ if id == AUI_DOCKART_CAPTION_FONT:
413
+ return self._caption_font
414
+
415
+ return wx.NullFont
416
+
417
+
418
+ def DrawSash(self, dc, window, orient, rect):
419
+ """
420
+ Draws a sash between two windows.
421
+
422
+ :param `dc`: a :class:`wx.DC` device context;
423
+ :param `window`: an instance of :class:`wx.Window`;
424
+ :param integer `orient`: the sash orientation;
425
+ :param wx.Rect `rect`: the sash rectangle.
426
+ """
427
+
428
+ # AG: How do we make this work?!?
429
+ # RendererNative does not use the sash_brush chosen by the user
430
+ # and the rect.GetSize() is ignored as the sash is always drawn
431
+ # 3 pixel wide
432
+ # wx.RendererNative.Get().DrawSplitterSash(window, dc, rect.GetSize(), pos, orient)
433
+
434
+ dc.SetPen(wx.TRANSPARENT_PEN)
435
+ dc.SetBrush(self._sash_brush)
436
+ dc.DrawRectangle(rect.x, rect.y, rect.width, rect.height)
437
+
438
+ draw_sash = self.GetMetric(AUI_DOCKART_DRAW_SASH_GRIP)
439
+ if draw_sash:
440
+ self.DrawSashGripper(dc, orient, rect)
441
+
442
+
443
+ def DrawBackground(self, dc, window, orient, rect):
444
+ """
445
+ Draws a background.
446
+
447
+ :param `dc`: a :class:`wx.DC` device context;
448
+ :param `window`: an instance of :class:`wx.Window`;
449
+ :param integer `orient`: the gradient (if any) orientation;
450
+ :param wx.Rect `rect`: the background rectangle.
451
+ """
452
+
453
+ dc.SetPen(wx.TRANSPARENT_PEN)
454
+ if wx.Platform == "__WXMAC__":
455
+ # we have to clear first, otherwise we are drawing a light striped pattern
456
+ # over an already darker striped background
457
+ dc.SetBrush(wx.WHITE_BRUSH)
458
+ dc.DrawRectangle(rect.x, rect.y, rect.width, rect.height)
459
+
460
+ DrawGradientRectangle(dc, rect, self._background_brush.GetColour(),
461
+ self._background_gradient_colour,
462
+ AUI_GRADIENT_HORIZONTAL, rect.x, 700)
463
+
464
+
465
+ def DrawBorder(self, dc, window, rect, pane):
466
+ """
467
+ Draws the pane border.
468
+
469
+ :param `dc`: a :class:`wx.DC` device context;
470
+ :param `window`: an instance of :class:`wx.Window`;
471
+ :param wx.Rect `rect`: the border rectangle;
472
+ :param `pane`: the pane for which the border is drawn.
473
+ """
474
+
475
+ drect = wx.Rect(*rect)
476
+
477
+ dc.SetPen(self._border_pen)
478
+ dc.SetBrush(wx.TRANSPARENT_BRUSH)
479
+
480
+ border_width = self.GetMetric(AUI_DOCKART_PANE_BORDER_SIZE)
481
+
482
+ if pane.IsToolbar():
483
+
484
+ for ii in range(0, border_width):
485
+
486
+ dc.SetPen(wx.WHITE_PEN)
487
+ dc.DrawLine(drect.x, drect.y, drect.x+drect.width, drect.y)
488
+ dc.DrawLine(drect.x, drect.y, drect.x, drect.y+drect.height)
489
+ dc.SetPen(self._border_pen)
490
+ dc.DrawLine(drect.x, drect.y+drect.height-1,
491
+ drect.x+drect.width, drect.y+drect.height-1)
492
+ dc.DrawLine(drect.x+drect.width-1, drect.y,
493
+ drect.x+drect.width-1, drect.y+drect.height)
494
+ drect.Deflate(1, 1)
495
+
496
+ else:
497
+
498
+ for ii in range(0, border_width):
499
+
500
+ dc.DrawRectangle(drect.x, drect.y, drect.width, drect.height)
501
+ drect.Deflate(1, 1)
502
+
503
+
504
+ def DrawCaptionBackground(self, dc, rect, pane):
505
+ """
506
+ Draws the text caption background in the pane.
507
+
508
+ :param `dc`: a :class:`wx.DC` device context;
509
+ :param wx.Rect `rect`: the text caption rectangle;
510
+ :param `pane`: the pane for which the text background is drawn.
511
+ """
512
+
513
+ active = pane.state & optionActive
514
+
515
+ if self._gradient_type == AUI_GRADIENT_NONE:
516
+ if active:
517
+ dc.SetBrush(wx.Brush(self._active_caption_colour))
518
+ else:
519
+ dc.SetBrush(wx.Brush(self._inactive_caption_colour))
520
+
521
+ dc.DrawRectangle(rect.x, rect.y, rect.width, rect.height)
522
+
523
+ else:
524
+
525
+ switch_gradient = pane.HasCaptionLeft()
526
+ gradient_type = self._gradient_type
527
+ if switch_gradient:
528
+ gradient_type = (self._gradient_type == AUI_GRADIENT_HORIZONTAL and [AUI_GRADIENT_VERTICAL] or \
529
+ [AUI_GRADIENT_HORIZONTAL])[0]
530
+
531
+ if active:
532
+ if wx.Platform == "__WXMAC__":
533
+ DrawGradientRectangle(dc, rect, self._active_caption_colour,
534
+ self._active_caption_gradient_colour,
535
+ gradient_type)
536
+ else:
537
+ DrawGradientRectangle(dc, rect, self._active_caption_gradient_colour,
538
+ self._active_caption_colour,
539
+ gradient_type)
540
+ else:
541
+ if wx.Platform == "__WXMAC__":
542
+ DrawGradientRectangle(dc, rect, self._inactive_caption_gradient_colour,
543
+ self._inactive_caption_colour,
544
+ gradient_type)
545
+ else:
546
+ DrawGradientRectangle(dc, rect, self._inactive_caption_colour,
547
+ self._inactive_caption_gradient_colour,
548
+ gradient_type)
549
+
550
+
551
+ def DrawIcon(self, dc, rect, pane):
552
+ """
553
+ Draws the icon in the pane caption area.
554
+
555
+ :param `dc`: a :class:`wx.DC` device context;
556
+ :param wx.Rect `rect`: the pane caption rectangle;
557
+ :param `pane`: the pane for which the icon is drawn.
558
+ """
559
+
560
+ # Draw the icon centered vertically
561
+ if pane.icon.IsOk():
562
+ if pane.HasCaptionLeft():
563
+ bmp = wx.Bitmap(pane.icon).ConvertToImage().Rotate90(clockwise=False)
564
+ dc.DrawBitmap(bmp.ConvertToBitmap(), rect.x+(rect.width-pane.icon.GetWidth())//2, rect.y+rect.height-2-pane.icon.GetHeight(), True)
565
+ else:
566
+ dc.DrawBitmap(pane.icon, rect.x+2, rect.y+(rect.height-pane.icon.GetHeight())//2, True)
567
+
568
+
569
+ def DrawCaption(self, dc, window, text, rect, pane):
570
+ """
571
+ Draws the text in the pane caption.
572
+
573
+ :param `dc`: a :class:`wx.DC` device context;
574
+ :param `window`: an instance of :class:`wx.Window`;
575
+ :param string `text`: the text to be displayed;
576
+ :param wx.Rect `rect`: the pane caption rectangle;
577
+ :param `pane`: the pane for which the text is drawn.
578
+ """
579
+
580
+ dc.SetPen(wx.TRANSPARENT_PEN)
581
+ dc.SetFont(self._caption_font)
582
+
583
+ self.DrawCaptionBackground(dc, rect, pane)
584
+
585
+ if pane.state & optionActive:
586
+ dc.SetTextForeground(self._active_caption_text_colour)
587
+ else:
588
+ dc.SetTextForeground(self._inactive_caption_text_colour)
589
+
590
+ w, h = dc.GetTextExtent("ABCDEFHXfgkj")
591
+
592
+ clip_rect = wx.Rect(*rect)
593
+ btns = pane.CountButtons()
594
+
595
+ captionLeft = pane.HasCaptionLeft()
596
+ variable = (captionLeft and [rect.height] or [rect.width])[0]
597
+
598
+ variable -= 3 # text offset
599
+ variable -= 2 # button padding
600
+
601
+ caption_offset = 0
602
+ if pane.icon:
603
+ if captionLeft:
604
+ caption_offset += pane.icon.GetHeight() + 3
605
+ else:
606
+ caption_offset += pane.icon.GetWidth() + 3
607
+
608
+ self.DrawIcon(dc, rect, pane)
609
+
610
+ variable -= caption_offset
611
+ variable -= btns*(self._button_size + self._border_size)
612
+ draw_text = ChopText(dc, text, variable)
613
+
614
+ if captionLeft:
615
+ dc.DrawRotatedText(draw_text, rect.x+(rect.width/2)-(h/2)-1, rect.y+rect.height-3-caption_offset, 90)
616
+ else:
617
+ dc.DrawText(draw_text, rect.x+3+caption_offset, rect.y+(rect.height//2)-(h//2)-1)
618
+
619
+
620
+ def RequestUserAttention(self, dc, window, text, rect, pane):
621
+ """
622
+ Requests the user attention by intermittently highlighting the pane caption.
623
+
624
+ :param `dc`: a :class:`wx.DC` device context;
625
+ :param `window`: an instance of :class:`wx.Window`;
626
+ :param string `text`: the text to be displayed;
627
+ :param wx.Rect `rect`: the pane caption rectangle;
628
+ :param `pane`: the pane for which we want to attract the user attention.
629
+ """
630
+
631
+ state = pane.state
632
+ pane.state &= ~optionActive
633
+
634
+ for indx in range(6):
635
+ active = (indx%2 == 0 and [True] or [False])[0]
636
+ if active:
637
+ pane.state |= optionActive
638
+ else:
639
+ pane.state &= ~optionActive
640
+
641
+ self.DrawCaptionBackground(dc, rect, pane)
642
+ self.DrawCaption(dc, window, text, rect, pane)
643
+ wx.SafeYield()
644
+ wx.MilliSleep(350)
645
+
646
+ pane.state = state
647
+
648
+
649
+ def DrawGripper(self, dc, window, rect, pane):
650
+ """
651
+ Draws a gripper on the pane.
652
+
653
+ :param `dc`: a :class:`wx.DC` device context;
654
+ :param `window`: an instance of :class:`wx.Window`;
655
+ :param wx.Rect `rect`: the pane caption rectangle;
656
+ :param `pane`: the pane for which the gripper is drawn.
657
+ """
658
+
659
+ dc.SetPen(wx.TRANSPARENT_PEN)
660
+ dc.SetBrush(self._gripper_brush)
661
+
662
+ dc.DrawRectangle(rect.x, rect.y, rect.width, rect.height)
663
+
664
+ if not pane.HasGripperTop():
665
+ y = 4
666
+ while 1:
667
+ dc.SetPen(self._gripper_pen1)
668
+ dc.DrawPoint(rect.x+3, rect.y+y)
669
+ dc.SetPen(self._gripper_pen2)
670
+ dc.DrawPoint(rect.x+3, rect.y+y+1)
671
+ dc.DrawPoint(rect.x+4, rect.y+y)
672
+ dc.SetPen(self._gripper_pen3)
673
+ dc.DrawPoint(rect.x+5, rect.y+y+1)
674
+ dc.DrawPoint(rect.x+5, rect.y+y+2)
675
+ dc.DrawPoint(rect.x+4, rect.y+y+2)
676
+ y = y + 4
677
+ if y > rect.GetHeight() - 4:
678
+ break
679
+ else:
680
+ x = 4
681
+ while 1:
682
+ dc.SetPen(self._gripper_pen1)
683
+ dc.DrawPoint(rect.x+x, rect.y+3)
684
+ dc.SetPen(self._gripper_pen2)
685
+ dc.DrawPoint(rect.x+x+1, rect.y+3)
686
+ dc.DrawPoint(rect.x+x, rect.y+4)
687
+ dc.SetPen(self._gripper_pen3)
688
+ dc.DrawPoint(rect.x+x+1, rect.y+5)
689
+ dc.DrawPoint(rect.x+x+2, rect.y+5)
690
+ dc.DrawPoint(rect.x+x+2, rect.y+4)
691
+ x = x + 4
692
+ if x > rect.GetWidth() - 4:
693
+ break
694
+
695
+
696
+ def DrawPaneButton(self, dc, window, button, button_state, _rect, pane):
697
+ """
698
+ Draws a pane button in the pane caption area.
699
+
700
+ :param `dc`: a :class:`wx.DC` device context;
701
+ :param `window`: an instance of :class:`wx.Window`;
702
+ :param integer `button`: the button to be drawn;
703
+ :param integer `button_state`: the pane button state;
704
+ :param wx.Rect `_rect`: the pane caption rectangle;
705
+ :param `pane`: the pane for which the button is drawn.
706
+ """
707
+
708
+ if not pane:
709
+ return
710
+
711
+ if button == AUI_BUTTON_CLOSE:
712
+ if pane.state & optionActive:
713
+ bmp = self._active_close_bitmap
714
+ else:
715
+ bmp = self._inactive_close_bitmap
716
+
717
+ elif button == AUI_BUTTON_PIN:
718
+ if pane.state & optionActive:
719
+ bmp = self._active_pin_bitmap
720
+ else:
721
+ bmp = self._inactive_pin_bitmap
722
+
723
+ elif button == AUI_BUTTON_MAXIMIZE_RESTORE:
724
+ if pane.IsMaximized():
725
+ if pane.state & optionActive:
726
+ bmp = self._active_restore_bitmap
727
+ else:
728
+ bmp = self._inactive_restore_bitmap
729
+ else:
730
+ if pane.state & optionActive:
731
+ bmp = self._active_maximize_bitmap
732
+ else:
733
+ bmp = self._inactive_maximize_bitmap
734
+
735
+ elif button == AUI_BUTTON_MINIMIZE:
736
+ if pane.state & optionActive:
737
+ bmp = self._active_minimize_bitmap
738
+ else:
739
+ bmp = self._inactive_minimize_bitmap
740
+
741
+ isVertical = pane.HasCaptionLeft()
742
+
743
+ rect = wx.Rect(*_rect)
744
+
745
+ if isVertical:
746
+ old_x = rect.x
747
+ rect.x = rect.x + (rect.width//2) - (bmp.GetWidth()//2)
748
+ rect.width = old_x + rect.width - rect.x - 1
749
+ else:
750
+ rect.y = rect.y + (rect.height//2) - (bmp.GetHeight()//2)
751
+
752
+ if button_state == AUI_BUTTON_STATE_PRESSED:
753
+ rect.x += 1
754
+ rect.y += 1
755
+
756
+ if button_state in [AUI_BUTTON_STATE_HOVER, AUI_BUTTON_STATE_PRESSED]:
757
+
758
+ if pane.state & optionActive:
759
+
760
+ dc.SetBrush(wx.Brush(StepColour(self._active_caption_colour, 120)))
761
+ dc.SetPen(wx.Pen(StepColour(self._active_caption_colour, 70)))
762
+
763
+ else:
764
+
765
+ dc.SetBrush(wx.Brush(StepColour(self._inactive_caption_colour, 120)))
766
+ dc.SetPen(wx.Pen(StepColour(self._inactive_caption_colour, 70)))
767
+
768
+ if wx.Platform != "__WXMAC__":
769
+ # draw the background behind the button
770
+ dc.DrawRectangle(rect.x, rect.y, 15, 15)
771
+ else:
772
+ # Darker the bitmap a bit
773
+ bmp = DarkenBitmap(bmp, self._active_caption_colour, StepColour(self._active_caption_colour, 110))
774
+
775
+ if isVertical:
776
+ bmp = wx.Bitmap(bmp).ConvertToImage().Rotate90(clockwise=False).ConvertToBitmap()
777
+
778
+ # draw the button itself
779
+ dc.DrawBitmap(bmp, rect.x, rect.y, True)
780
+
781
+
782
+ def DrawSashGripper(self, dc, orient, rect):
783
+ """
784
+ Draws a sash gripper on a sash between two windows.
785
+
786
+ :param `dc`: a :class:`wx.DC` device context;
787
+ :param integer `orient`: the sash orientation;
788
+ :param wx.Rect `rect`: the sash rectangle.
789
+ """
790
+
791
+ dc.SetBrush(self._gripper_brush)
792
+
793
+ if orient == wx.HORIZONTAL: # horizontal sash
794
+
795
+ x = rect.x + int((1.0/4.0)*rect.width)
796
+ xend = rect.x + int((3.0/4.0)*rect.width)
797
+ y = rect.y + (rect.height//2) - 1
798
+
799
+ while 1:
800
+ dc.SetPen(self._gripper_pen3)
801
+ dc.DrawRectangle(x, y, 2, 2)
802
+ dc.SetPen(self._gripper_pen2)
803
+ dc.DrawPoint(x+1, y+1)
804
+ x = x + 5
805
+
806
+ if x >= xend:
807
+ break
808
+
809
+ else:
810
+
811
+ y = rect.y + int((1.0/4.0)*rect.height)
812
+ yend = rect.y + int((3.0/4.0)*rect.height)
813
+ x = rect.x + (rect.width//2) - 1
814
+
815
+ while 1:
816
+ dc.SetPen(self._gripper_pen3)
817
+ dc.DrawRectangle(x, y, 2, 2)
818
+ dc.SetPen(self._gripper_pen2)
819
+ dc.DrawPoint(x+1, y+1)
820
+ y = y + 5
821
+
822
+ if y >= yend:
823
+ break
824
+
825
+
826
+ def SetDefaultPaneBitmaps(self, isMac):
827
+ """
828
+ Assigns the default pane bitmaps.
829
+
830
+ :param bool `isMac`: whether we are on wxMAC or not.
831
+ """
832
+
833
+ if isMac:
834
+ self._inactive_close_bitmap = DrawMACCloseButton(wx.WHITE, self._inactive_caption_colour)
835
+ self._active_close_bitmap = DrawMACCloseButton(wx.WHITE, self._active_caption_colour)
836
+ else:
837
+ self._inactive_close_bitmap = BitmapFromBits(close_bits, 16, 16, self._inactive_caption_text_colour)
838
+ self._active_close_bitmap = BitmapFromBits(close_bits, 16, 16, self._active_caption_text_colour)
839
+
840
+ if isMac:
841
+ self._inactive_maximize_bitmap = BitmapFromBits(max_bits, 16, 16, wx.WHITE)
842
+ self._active_maximize_bitmap = BitmapFromBits(max_bits, 16, 16, wx.WHITE)
843
+ else:
844
+ self._inactive_maximize_bitmap = BitmapFromBits(max_bits, 16, 16, self._inactive_caption_text_colour)
845
+ self._active_maximize_bitmap = BitmapFromBits(max_bits, 16, 16, self._active_caption_text_colour)
846
+
847
+ if isMac:
848
+ self._inactive_restore_bitmap = BitmapFromBits(restore_bits, 16, 16, wx.WHITE)
849
+ self._active_restore_bitmap = BitmapFromBits(restore_bits, 16, 16, wx.WHITE)
850
+ else:
851
+ self._inactive_restore_bitmap = BitmapFromBits(restore_bits, 16, 16, self._inactive_caption_text_colour)
852
+ self._active_restore_bitmap = BitmapFromBits(restore_bits, 16, 16, self._active_caption_text_colour)
853
+
854
+ if isMac:
855
+ self._inactive_minimize_bitmap = BitmapFromBits(minimize_bits, 16, 16, wx.WHITE)
856
+ self._active_minimize_bitmap = BitmapFromBits(minimize_bits, 16, 16, wx.WHITE)
857
+ else:
858
+ self._inactive_minimize_bitmap = BitmapFromBits(minimize_bits, 16, 16, self._inactive_caption_text_colour)
859
+ self._active_minimize_bitmap = BitmapFromBits(minimize_bits, 16, 16, self._active_caption_text_colour)
860
+
861
+ self._inactive_pin_bitmap = BitmapFromBits(pin_bits, 16, 16, self._inactive_caption_text_colour)
862
+ self._active_pin_bitmap = BitmapFromBits(pin_bits, 16, 16, self._active_caption_text_colour)
863
+
864
+ self._custom_pane_bitmaps = False
865
+
866
+
867
+ def SetCustomPaneBitmap(self, bmp, button, active, maximize=False):
868
+ """
869
+ Sets a custom button bitmap for the pane button.
870
+
871
+ :param wx.Bitmap `bmp`: the actual bitmap to set;
872
+ :param integer `button`: the button identifier;
873
+ :param bool `active`: whether it is the bitmap for the active button or not;
874
+ :param bool `maximize`: used to distinguish between the maximize and restore bitmaps.
875
+ """
876
+
877
+ if bmp.GetWidth() > 16 or bmp.GetHeight() > 16:
878
+ raise Exception("The input bitmap is too big")
879
+
880
+ if button == AUI_BUTTON_CLOSE:
881
+ if active:
882
+ self._active_close_bitmap = bmp
883
+ else:
884
+ self._inactive_close_bitmap = bmp
885
+
886
+ if wx.Platform == "__WXMAC__":
887
+ self._custom_pane_bitmaps = True
888
+
889
+ elif button == AUI_BUTTON_PIN:
890
+ if active:
891
+ self._active_pin_bitmap = bmp
892
+ else:
893
+ self._inactive_pin_bitmap = bmp
894
+
895
+ elif button == AUI_BUTTON_MAXIMIZE_RESTORE:
896
+ if maximize:
897
+ if active:
898
+ self._active_maximize_bitmap = bmp
899
+ else:
900
+ self._inactive_maximize_bitmap = bmp
901
+ else:
902
+ if active:
903
+ self._active_restore_bitmap = bmp
904
+ else:
905
+ self._inactive_restore_bitmap = bmp
906
+
907
+ elif button == AUI_BUTTON_MINIMIZE:
908
+ if active:
909
+ self._active_minimize_bitmap = bmp
910
+ else:
911
+ self._inactive_minimize_bitmap = bmp
912
+
913
+
914
+ if _ctypes:
915
+ class RECT(ctypes.Structure):
916
+ """ Used to handle :class:`ModernDockArt` on Windows XP/Vista/7. """
917
+ _fields_ = [('left', ctypes.c_ulong),('top', ctypes.c_ulong),('right', ctypes.c_ulong),('bottom', ctypes.c_ulong)]
918
+
919
+ def dump(self):
920
+ """ Dumps `self` as a :class:`wx.Rect`. """
921
+ return list(map(int, (self.left, self.top, self.right, self.bottom)))
922
+
923
+
924
+ class SIZE(ctypes.Structure):
925
+ """ Used to handle :class:`ModernDockArt` on Windows XP/Vista/7. """
926
+ _fields_ = [('x', ctypes.c_long),('y', ctypes.c_long)]
927
+
928
+
929
+ class ModernDockArt(AuiDefaultDockArt):
930
+ """
931
+ ModernDockArt is a custom `AuiDockArt` class, that implements a look similar to Firefox and other recents applications.
932
+
933
+ Is uses the `winxptheme <https://sourceforge.net/projects/pywin32/>`_ module and
934
+ XP themes whenever possible, so it should look good even if the user has a custom theme.
935
+
936
+ :note: This dock art is Windows only and will only work if you have installed
937
+ Mark Hammond's `pywin32` module (https://sourceforge.net/projects/pywin32/).
938
+ """
939
+
940
+ def __init__(self, win):
941
+ """
942
+ Default class constructor.
943
+
944
+ :param wx.Window `win`: the window managed by :class:`~wx.lib.agw.aui.framemanager.AuiManager`.
945
+ """
946
+
947
+ AuiDefaultDockArt.__init__(self)
948
+
949
+ self.win = win
950
+
951
+ # Get the size of a small close button (themed)
952
+ hwnd = self.win.GetHandle()
953
+ self.usingTheme = False
954
+
955
+ if _ctypes:
956
+ self.hTheme1 = winxptheme.OpenThemeData(hwnd, "Window")
957
+ self.usingTheme = True
958
+
959
+ if not self.hTheme1:
960
+ self.usingTheme = False
961
+
962
+ self._button_size = 13
963
+
964
+ self._button_border_size = 3
965
+ self._caption_text_indent = 6
966
+ self._caption_size = 22
967
+
968
+ # We only highlight the active pane with the caption text being in bold.
969
+ # So we do not want a special colour for active elements.
970
+ self._active_close_bitmap = self._inactive_close_bitmap
971
+
972
+ self.Init()
973
+
974
+
975
+ def Init(self):
976
+ """ Initializes the dock art. """
977
+
978
+ AuiDefaultDockArt.Init(self)
979
+
980
+ self._active_caption_colour = self._inactive_caption_colour
981
+ self._active_caption_text_colour = wx.SystemSettings.GetColour(wx.SYS_COLOUR_CAPTIONTEXT)
982
+ self._inactive_caption_text_colour = self._active_caption_text_colour
983
+
984
+
985
+ def DrawCaption(self, dc, window, text, rect, pane):
986
+ """
987
+ Draws the text in the pane caption.
988
+
989
+ :param `dc`: a :class:`wx.DC` device context;
990
+ :param `window`: an instance of :class:`wx.Window`;
991
+ :param string `text`: the text to be displayed;
992
+ :param wx.Rect `rect`: the pane caption rectangle;
993
+ :param `pane`: the pane for which the text is drawn.
994
+ """
995
+
996
+ dc.SetPen(wx.TRANSPARENT_PEN)
997
+ self.DrawCaptionBackground(dc, rect, pane)
998
+
999
+ active = ((pane.state & optionActive) and [True] or [False])[0]
1000
+
1001
+ self._caption_font.SetWeight(wx.FONTWEIGHT_BOLD)
1002
+ dc.SetFont(self._caption_font)
1003
+
1004
+ if active:
1005
+ dc.SetTextForeground(self._active_caption_text_colour)
1006
+ else:
1007
+ dc.SetTextForeground(self._inactive_caption_text_colour)
1008
+
1009
+ w, h = dc.GetTextExtent("ABCDEFHXfgkj")
1010
+
1011
+ clip_rect = wx.Rect(*rect)
1012
+ btns = pane.CountButtons()
1013
+
1014
+ captionLeft = pane.HasCaptionLeft()
1015
+ variable = (captionLeft and [rect.height] or [rect.width])[0]
1016
+
1017
+ variable -= 3 # text offset
1018
+ variable -= 2 # button padding
1019
+
1020
+ caption_offset = 0
1021
+ if pane.icon:
1022
+ if captionLeft:
1023
+ caption_offset += pane.icon.GetHeight() + 3
1024
+ else:
1025
+ caption_offset += pane.icon.GetWidth() + 3
1026
+
1027
+ self.DrawIcon(dc, rect, pane)
1028
+
1029
+ diff = -2
1030
+ if self.usingTheme:
1031
+ diff = -1
1032
+
1033
+ variable -= caption_offset
1034
+ variable -= btns*(self._button_size + self._button_border_size)
1035
+ draw_text = ChopText(dc, text, variable)
1036
+
1037
+ if captionLeft:
1038
+ dc.DrawRotatedText(draw_text, rect.x+(rect.width/2)-(h/2)-diff, rect.y+rect.height-3-caption_offset, 90)
1039
+ else:
1040
+ dc.DrawText(draw_text, rect.x+3+caption_offset, rect.y+(rect.height/2)-(h/2)-diff)
1041
+
1042
+
1043
+ def DrawCaptionBackground(self, dc, rect, pane):
1044
+ """
1045
+ Draws the text caption background in the pane.
1046
+
1047
+ :param `dc`: a :class:`wx.DC` device context;
1048
+ :param wx.Rect `rect`: the text caption rectangle;
1049
+ :param `pane`: the pane for which we are drawing the caption background.
1050
+ """
1051
+
1052
+ dc.SetBrush(self._background_brush)
1053
+ dc.DrawRectangle(rect.x, rect.y, rect.width, rect.height)
1054
+
1055
+ active = ((pane.state & optionActive) and [True] or [False])[0]
1056
+
1057
+ if self.usingTheme:
1058
+
1059
+ rectangle = wx.Rect()
1060
+
1061
+ rc = RECT(rectangle.x, rectangle.y, rectangle.width, rectangle.height)
1062
+
1063
+ # If rect x/y values are negative rc.right/bottom values will overflow and winxptheme.DrawThemeBackground
1064
+ # will raise a TypeError. Ensure they are never negative.
1065
+ rect.x = max(0, rect.x)
1066
+ rect.y = max(0, rect.y)
1067
+
1068
+ rc.top = rect.x
1069
+ rc.left = rect.y
1070
+ rc.right = rect.x + rect.width
1071
+ rc.bottom = rect.y + rect.height
1072
+
1073
+ if active:
1074
+ winxptheme.DrawThemeBackground(self.hTheme1, int(dc.GetHandle()), 5, 1, (rc.top, rc.left, rc.right, rc.bottom), None)
1075
+ else:
1076
+ winxptheme.DrawThemeBackground(self.hTheme1, int(dc.GetHandle()), 5, 2, (rc.top, rc.left, rc.right, rc.bottom), None)
1077
+
1078
+ else:
1079
+
1080
+ AuiDefaultDockArt.DrawCaptionBackground(self, dc, rect, pane)
1081
+
1082
+
1083
+ def RequestUserAttention(self, dc, window, text, rect, pane):
1084
+ """
1085
+ Requests the user attention by intermittently highlighting the pane caption.
1086
+
1087
+ :param `dc`: a :class:`wx.DC` device context;
1088
+ :param `window`: an instance of :class:`wx.Window`;
1089
+ :param string `text`: the text to be displayed;
1090
+ :param wx.Rect `rect`: the pane caption rectangle;
1091
+ :param `pane`: the pane for which the text is drawn.
1092
+ """
1093
+
1094
+ state = pane.state
1095
+ pane.state &= ~optionActive
1096
+
1097
+ for indx in range(6):
1098
+ active = (indx%2 == 0 and [True] or [False])[0]
1099
+ if active:
1100
+ pane.state |= optionActive
1101
+ else:
1102
+ pane.state &= ~optionActive
1103
+
1104
+ self.DrawCaptionBackground(dc, rect, pane)
1105
+ self.DrawCaption(dc, window, text, rect, pane)
1106
+ wx.SafeYield()
1107
+ wx.MilliSleep(350)
1108
+
1109
+ pane.state = state
1110
+
1111
+
1112
+ def DrawPaneButton(self, dc, window, button, button_state, rect, pane):
1113
+ """
1114
+ Draws a pane button in the pane caption area.
1115
+
1116
+ :param `dc`: a :class:`wx.DC` device context;
1117
+ :param `window`: an instance of :class:`wx.Window`;
1118
+ :param integer `button`: the button to be drawn;
1119
+ :param integer `button_state`: the pane button state;
1120
+ :param wx.Rect `rect`: the pane caption rectangle;
1121
+ :param `pane`: the pane for which the button is drawn.
1122
+ """
1123
+
1124
+ if self.usingTheme:
1125
+
1126
+ hTheme = self.hTheme1
1127
+
1128
+ # Get the real button position (compensating for borders)
1129
+ drect = wx.Rect(rect.x, rect.y, self._button_size, self._button_size)
1130
+
1131
+ # Draw the themed close button
1132
+ rc = RECT(0, 0, 0, 0)
1133
+ if pane.HasCaptionLeft():
1134
+ rc.top = rect.x + self._button_border_size
1135
+ rc.left = int(rect.y + 1.5*self._button_border_size)
1136
+ rc.right = rect.x + self._button_size + self._button_border_size
1137
+ rc.bottom = int(rect.y + self._button_size + 1.5*self._button_border_size)
1138
+ else:
1139
+ rc.top = rect.x - self._button_border_size
1140
+ rc.left = int(rect.y + 1.5*self._button_border_size)
1141
+ rc.right = rect.x + self._button_size- self._button_border_size
1142
+ rc.bottom = int(rect.y + self._button_size + 1.5*self._button_border_size)
1143
+
1144
+ if button == AUI_BUTTON_CLOSE:
1145
+ btntype = 19
1146
+
1147
+ elif button == AUI_BUTTON_PIN:
1148
+ btntype = 23
1149
+
1150
+ elif button == AUI_BUTTON_MAXIMIZE_RESTORE:
1151
+ if not pane.IsMaximized():
1152
+ btntype = 17
1153
+ else:
1154
+ btntype = 21
1155
+ else:
1156
+ btntype = 15
1157
+
1158
+ state = 4 # CBS_DISABLED
1159
+
1160
+ if pane.state & optionActive:
1161
+
1162
+ if button_state == AUI_BUTTON_STATE_NORMAL:
1163
+ state = 1 # CBS_NORMAL
1164
+
1165
+ elif button_state == AUI_BUTTON_STATE_HOVER:
1166
+ state = 2 # CBS_HOT
1167
+
1168
+ elif button_state == AUI_BUTTON_STATE_PRESSED:
1169
+ state = 3 # CBS_PUSHED
1170
+
1171
+ else:
1172
+ raise Exception("ERROR: Unknown State.")
1173
+
1174
+ else: # inactive pane
1175
+
1176
+ if button_state == AUI_BUTTON_STATE_NORMAL:
1177
+ state = 5 # CBS_NORMAL
1178
+
1179
+ elif button_state == AUI_BUTTON_STATE_HOVER:
1180
+ state = 6 # CBS_HOT
1181
+
1182
+ elif button_state == AUI_BUTTON_STATE_PRESSED:
1183
+ state = 7 # CBS_PUSHED
1184
+
1185
+ else:
1186
+ raise Exception("ERROR: Unknown State.")
1187
+
1188
+ try:
1189
+ winxptheme.DrawThemeBackground(hTheme, int(dc.GetHandle()), btntype, state, (rc.top, rc.left, rc.right, rc.bottom), None)
1190
+ except TypeError:
1191
+ return
1192
+
1193
+ else:
1194
+
1195
+ # Fallback to default closebutton if themes are not enabled
1196
+ rect2 = wx.Rect(rect.x-4, rect.y+2, rect.width, rect.height)
1197
+ AuiDefaultDockArt.DrawPaneButton(self, dc, window, button, button_state, rect2, pane)
1198
+