wxPython-zombie 3.1.5.8__cp313-cp313-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1175) hide show
  1. wx/__init__.py +22 -0
  2. wx/__version__.py +9 -0
  3. wx/_adv.cp313-win_amd64.pyd +0 -0
  4. wx/_aui.cp313-win_amd64.pyd +0 -0
  5. wx/_core.cp313-win_amd64.pyd +0 -0
  6. wx/_dataview.cp313-win_amd64.pyd +0 -0
  7. wx/_glcanvas.cp313-win_amd64.pyd +0 -0
  8. wx/_grid.cp313-win_amd64.pyd +0 -0
  9. wx/_html.cp313-win_amd64.pyd +0 -0
  10. wx/_html2.cp313-win_amd64.pyd +0 -0
  11. wx/_media.cp313-win_amd64.pyd +0 -0
  12. wx/_msw.cp313-win_amd64.pyd +0 -0
  13. wx/_propgrid.cp313-win_amd64.pyd +0 -0
  14. wx/_ribbon.cp313-win_amd64.pyd +0 -0
  15. wx/_richtext.cp313-win_amd64.pyd +0 -0
  16. wx/_stc.cp313-win_amd64.pyd +0 -0
  17. wx/_xml.cp313-win_amd64.pyd +0 -0
  18. wx/_xrc.cp313-win_amd64.pyd +0 -0
  19. wx/adv.py +124 -0
  20. wx/adv.pyi +5182 -0
  21. wx/aui.py +77 -0
  22. wx/aui.pyi +3655 -0
  23. wx/core.py +3540 -0
  24. wx/core.pyi +50592 -0
  25. wx/dataview.py +173 -0
  26. wx/dataview.pyi +3491 -0
  27. wx/demo/AUI_DockingWindowMgr.py +1154 -0
  28. wx/demo/AUI_MDI.py +117 -0
  29. wx/demo/AUI_Notebook.py +58 -0
  30. wx/demo/About.py +75 -0
  31. wx/demo/AboutBox.py +75 -0
  32. wx/demo/ActiveXWrapper_Acrobat.py +132 -0
  33. wx/demo/ActiveXWrapper_IE.py +187 -0
  34. wx/demo/ActiveX_FlashWindow.py +107 -0
  35. wx/demo/ActiveX_IEHtmlWindow.py +242 -0
  36. wx/demo/ActiveX_PDFWindow.py +204 -0
  37. wx/demo/ActivityIndicator.py +80 -0
  38. wx/demo/AddPrivateFont.py +116 -0
  39. wx/demo/AdjustChannels.py +178 -0
  40. wx/demo/AlphaDrawing.py +77 -0
  41. wx/demo/AnalogClock.py +144 -0
  42. wx/demo/AnimationCtrl.py +104 -0
  43. wx/demo/ArtProvider.py +893 -0
  44. wx/demo/BannerWindow.py +1 -0
  45. wx/demo/BitmapButton.py +87 -0
  46. wx/demo/BitmapComboBox.py +63 -0
  47. wx/demo/BitmapFromBuffer.py +140 -0
  48. wx/demo/Button.py +77 -0
  49. wx/demo/Cairo.py +197 -0
  50. wx/demo/Cairo_Snippets.py +135 -0
  51. wx/demo/Calendar.py +660 -0
  52. wx/demo/CalendarCtrl.py +122 -0
  53. wx/demo/CheckBox.py +74 -0
  54. wx/demo/CheckListBox.py +79 -0
  55. wx/demo/CheckListCtrl.py +99 -0
  56. wx/demo/Choice.py +55 -0
  57. wx/demo/Choicebook.py +80 -0
  58. wx/demo/CollapsibleHeaderCtrl.py +85 -0
  59. wx/demo/CollapsiblePane.py +126 -0
  60. wx/demo/ColorPanel.py +19 -0
  61. wx/demo/ColourDB.py +203 -0
  62. wx/demo/ColourDialog.py +76 -0
  63. wx/demo/ColourSelect.py +119 -0
  64. wx/demo/ComboBox.py +111 -0
  65. wx/demo/ComboCtrl.py +153 -0
  66. wx/demo/ComboTreeBox.py +71 -0
  67. wx/demo/CommandLinkButton.py +50 -0
  68. wx/demo/ContextHelp.py +112 -0
  69. wx/demo/Cursor.py +336 -0
  70. wx/demo/CustomDragAndDrop.py +353 -0
  71. wx/demo/DVC_CustomRenderer.py +204 -0
  72. wx/demo/DVC_DataViewModel.py +365 -0
  73. wx/demo/DVC_IndexListModel.py +257 -0
  74. wx/demo/DVC_ListCtrl.py +69 -0
  75. wx/demo/DVC_TreeCtrl.py +76 -0
  76. wx/demo/DatePickerCtrl.py +68 -0
  77. wx/demo/DelayedResult.py +239 -0
  78. wx/demo/Dialog.py +169 -0
  79. wx/demo/DialogUnits.py +128 -0
  80. wx/demo/DirDialog.py +58 -0
  81. wx/demo/DragAndDrop.py +265 -0
  82. wx/demo/DragImage.py +316 -0
  83. wx/demo/DragScroller.py +59 -0
  84. wx/demo/DrawXXXList.py +436 -0
  85. wx/demo/DynamicSashWindow.py +177 -0
  86. wx/demo/EditableListBox.py +101 -0
  87. wx/demo/Editor.py +70 -0
  88. wx/demo/EventManager.py +291 -0
  89. wx/demo/ExpandoTextCtrl.py +164 -0
  90. wx/demo/FancyText.py +83 -0
  91. wx/demo/FileBrowseButton.py +100 -0
  92. wx/demo/FileCtrl.py +97 -0
  93. wx/demo/FileDialog.py +144 -0
  94. wx/demo/FileHistory.py +140 -0
  95. wx/demo/FindReplaceDialog.py +123 -0
  96. wx/demo/FloatCanvas.py +1959 -0
  97. wx/demo/FontDialog.py +142 -0
  98. wx/demo/FontEnumerator.py +82 -0
  99. wx/demo/Frame.py +85 -0
  100. wx/demo/GLCanvas.py +371 -0
  101. wx/demo/Gauge.py +66 -0
  102. wx/demo/GenericButtons.py +185 -0
  103. wx/demo/GenericCheckBox.py +65 -0
  104. wx/demo/GenericDirCtrl.py +74 -0
  105. wx/demo/GetMouseState.py +159 -0
  106. wx/demo/GraphicsContext.py +236 -0
  107. wx/demo/GraphicsGradient.py +281 -0
  108. wx/demo/Grid.py +95 -0
  109. wx/demo/GridBagSizer.py +170 -0
  110. wx/demo/GridCustEditor.py +247 -0
  111. wx/demo/GridCustTable.py +170 -0
  112. wx/demo/GridDragAndDrop.py +102 -0
  113. wx/demo/GridDragable.py +206 -0
  114. wx/demo/GridEnterHandler.py +66 -0
  115. wx/demo/GridHugeTable.py +89 -0
  116. wx/demo/GridLabelRenderer.py +114 -0
  117. wx/demo/GridSimple.py +270 -0
  118. wx/demo/GridStdEdRend.py +186 -0
  119. wx/demo/Grid_MegaExample.py +490 -0
  120. wx/demo/HTML2_WebView.py +183 -0
  121. wx/demo/HtmlWindow.py +232 -0
  122. wx/demo/I18N.py +237 -0
  123. wx/demo/Image.py +338 -0
  124. wx/demo/ImageAlpha.py +87 -0
  125. wx/demo/ImageBrowser.py +70 -0
  126. wx/demo/ImageFromStream.py +49 -0
  127. wx/demo/Img2PyArtProvider.py +99 -0
  128. wx/demo/InfoBar.py +127 -0
  129. wx/demo/IntCtrl.py +343 -0
  130. wx/demo/ItemsPicker.py +108 -0
  131. wx/demo/Joystick.py +1083 -0
  132. wx/demo/KeyEvents.py +428 -0
  133. wx/demo/LEDNumberCtrl.py +121 -0
  134. wx/demo/LayoutAnchors.py +258 -0
  135. wx/demo/LayoutConstraints.py +149 -0
  136. wx/demo/Layoutf.py +69 -0
  137. wx/demo/ListBox.py +164 -0
  138. wx/demo/ListCtrl.py +538 -0
  139. wx/demo/ListCtrl_edit.py +155 -0
  140. wx/demo/ListCtrl_virtual.py +145 -0
  141. wx/demo/Listbook.py +104 -0
  142. wx/demo/MDIDemo.py +86 -0
  143. wx/demo/MDISashDemo.py +152 -0
  144. wx/demo/MDIWindows.py +66 -0
  145. wx/demo/Main.py +2768 -0
  146. wx/demo/Mask.py +137 -0
  147. wx/demo/MaskedEditControls.py +648 -0
  148. wx/demo/MaskedNumCtrl.py +359 -0
  149. wx/demo/MediaCtrl.py +190 -0
  150. wx/demo/Menu.py +322 -0
  151. wx/demo/MessageDialog.py +54 -0
  152. wx/demo/MimeTypesManager.py +354 -0
  153. wx/demo/MiniFrame.py +67 -0
  154. wx/demo/MouseGestures.py +198 -0
  155. wx/demo/MultiChoiceDialog.py +59 -0
  156. wx/demo/MultiSash.py +95 -0
  157. wx/demo/MultiSplitterWindow.py +168 -0
  158. wx/demo/MultipleChoiceDialog.py +101 -0
  159. wx/demo/Notebook.py +134 -0
  160. wx/demo/NotificationMessage.py +61 -0
  161. wx/demo/OGL.py +433 -0
  162. wx/demo/Overlay.py +209 -0
  163. wx/demo/OwnerDrawnComboBox.py +152 -0
  164. wx/demo/PDFViewer.py +109 -0
  165. wx/demo/PageSetupDialog.py +70 -0
  166. wx/demo/PenAndBrushStyles.py +208 -0
  167. wx/demo/Pickers.py +120 -0
  168. wx/demo/PlateButton.py +430 -0
  169. wx/demo/PopupControl.py +99 -0
  170. wx/demo/PopupMenu.py +156 -0
  171. wx/demo/PopupWindow.py +227 -0
  172. wx/demo/PrintDialog.py +60 -0
  173. wx/demo/PrintFramework.py +227 -0
  174. wx/demo/Process.py +168 -0
  175. wx/demo/ProgressDialog.py +87 -0
  176. wx/demo/PropertyGrid.py +1045 -0
  177. wx/demo/PropertySheetDialog.py +231 -0
  178. wx/demo/PseudoDC.py +350 -0
  179. wx/demo/PyColourChooser.py +60 -0
  180. wx/demo/PyCrust.py +21 -0
  181. wx/demo/PyPlot.py +83 -0
  182. wx/demo/PyShell.py +22 -0
  183. wx/demo/PythonEvents.py +109 -0
  184. wx/demo/README.txt +7 -0
  185. wx/demo/RadioBox.py +67 -0
  186. wx/demo/RadioButton.py +127 -0
  187. wx/demo/RawBitmapAccess.py +208 -0
  188. wx/demo/RearrangeDialog.py +160 -0
  189. wx/demo/RendererNative.py +170 -0
  190. wx/demo/ResizeWidget.py +76 -0
  191. wx/demo/RichMessageDialog.py +85 -0
  192. wx/demo/RichTextCtrl.py +732 -0
  193. wx/demo/RichToolTip.py +145 -0
  194. wx/demo/SVGImage_Bitmap.py +130 -0
  195. wx/demo/SVGImage_Render.py +138 -0
  196. wx/demo/SashWindow.py +151 -0
  197. wx/demo/ScrolledMessageDialog.py +52 -0
  198. wx/demo/ScrolledPanel.py +124 -0
  199. wx/demo/ScrolledWindow.py +260 -0
  200. wx/demo/SearchCtrl.py +115 -0
  201. wx/demo/ShapedWindow.py +145 -0
  202. wx/demo/Simplebook.py +202 -0
  203. wx/demo/SingleChoiceDialog.py +56 -0
  204. wx/demo/SizedControls.py +433 -0
  205. wx/demo/Sizers.py +609 -0
  206. wx/demo/Slider.py +52 -0
  207. wx/demo/Sound.py +95 -0
  208. wx/demo/SpinButton.py +63 -0
  209. wx/demo/SpinCtrl.py +56 -0
  210. wx/demo/SpinCtrlDouble.py +42 -0
  211. wx/demo/SplitTree.py +146 -0
  212. wx/demo/SplitterWindow.py +62 -0
  213. wx/demo/StandardPaths.py +113 -0
  214. wx/demo/StaticBitmap.py +55 -0
  215. wx/demo/StaticBox.py +62 -0
  216. wx/demo/StaticText.py +69 -0
  217. wx/demo/StatusBar.py +144 -0
  218. wx/demo/StockButtons.py +113 -0
  219. wx/demo/StyledTextCtrl_1.py +303 -0
  220. wx/demo/StyledTextCtrl_2.py +410 -0
  221. wx/demo/SystemSettings.py +333 -0
  222. wx/demo/TablePrint.py +215 -0
  223. wx/demo/TestTable.txt +38 -0
  224. wx/demo/TextCtrl.py +187 -0
  225. wx/demo/TextEntryDialog.py +57 -0
  226. wx/demo/Threads.py +258 -0
  227. wx/demo/Throbber.py +250 -0
  228. wx/demo/Ticker.py +147 -0
  229. wx/demo/TimeCtrl.py +240 -0
  230. wx/demo/TimePickerCtrl.py +60 -0
  231. wx/demo/Timer.py +275 -0
  232. wx/demo/ToggleButton.py +54 -0
  233. wx/demo/ToolBar.py +249 -0
  234. wx/demo/ToolTip.py +71 -0
  235. wx/demo/Toolbook.py +111 -0
  236. wx/demo/TreeCtrl.py +199 -0
  237. wx/demo/TreeListCtrl.py +121 -0
  238. wx/demo/TreeMixin.py +269 -0
  239. wx/demo/Treebook.py +117 -0
  240. wx/demo/UIActionSimulator.py +151 -0
  241. wx/demo/URLDragAndDrop.py +130 -0
  242. wx/demo/Unicode.py +146 -0
  243. wx/demo/VListBox.py +176 -0
  244. wx/demo/Validator.py +237 -0
  245. wx/demo/Wizard.py +248 -0
  246. wx/demo/WrapSizer.py +115 -0
  247. wx/demo/XmlResource.py +80 -0
  248. wx/demo/XmlResourceHandler.py +199 -0
  249. wx/demo/XmlResourceSubclass.py +119 -0
  250. wx/demo/__init__.py +9 -0
  251. wx/demo/agw/AGWInfoBar.py +175 -0
  252. wx/demo/agw/AUI.py +3058 -0
  253. wx/demo/agw/AdvancedSplash.py +59 -0
  254. wx/demo/agw/AquaButton.py +146 -0
  255. wx/demo/agw/BalloonTip.py +378 -0
  256. wx/demo/agw/ButtonPanel.py +890 -0
  257. wx/demo/agw/CubeColourDialog.py +83 -0
  258. wx/demo/agw/CustomTreeCtrl.py +2167 -0
  259. wx/demo/agw/Example1 +67 -0
  260. wx/demo/agw/Example2 +49 -0
  261. wx/demo/agw/FlatMenu.py +876 -0
  262. wx/demo/agw/FlatNotebook.py +994 -0
  263. wx/demo/agw/FloatSpin.py +475 -0
  264. wx/demo/agw/FoldPanelBar.py +953 -0
  265. wx/demo/agw/FourWaySplitter.py +300 -0
  266. wx/demo/agw/GenericMessageDialog.py +207 -0
  267. wx/demo/agw/GradientButton.py +156 -0
  268. wx/demo/agw/HyperLinkCtrl.py +144 -0
  269. wx/demo/agw/HyperTreeList.py +2660 -0
  270. wx/demo/agw/KnobCtrl.py +186 -0
  271. wx/demo/agw/LabelBook.py +567 -0
  272. wx/demo/agw/MacLargeDemo.py +360 -0
  273. wx/demo/agw/MultiDirDialog.py +117 -0
  274. wx/demo/agw/PeakMeter.py +194 -0
  275. wx/demo/agw/PersistentControls.py +589 -0
  276. wx/demo/agw/PieCtrl.py +206 -0
  277. wx/demo/agw/PyBusyInfo.py +64 -0
  278. wx/demo/agw/PyCollapsiblePane.py +308 -0
  279. wx/demo/agw/PyGauge.py +162 -0
  280. wx/demo/agw/PyProgress.py +155 -0
  281. wx/demo/agw/RibbonBar.py +925 -0
  282. wx/demo/agw/RulerCtrl.py +454 -0
  283. wx/demo/agw/ScrolledThumbnail.py +128 -0
  284. wx/demo/agw/ShapedButton.py +603 -0
  285. wx/demo/agw/ShortcutEditor.py +397 -0
  286. wx/demo/agw/SpeedMeter.py +668 -0
  287. wx/demo/agw/SuperToolTip.py +396 -0
  288. wx/demo/agw/ThumbDemoConfig.py +603 -0
  289. wx/demo/agw/ThumbnailCtrl.py +149 -0
  290. wx/demo/agw/ToasterBox.py +410 -0
  291. wx/demo/agw/UltimateListCtrl.py +80 -0
  292. wx/demo/agw/UltimateListIconDemo.py +908 -0
  293. wx/demo/agw/UltimateListListDemo.py +124 -0
  294. wx/demo/agw/UltimateReportDemo.py +1146 -0
  295. wx/demo/agw/UltimateVirtualDemo.py +207 -0
  296. wx/demo/agw/Windows7Explorer_Contents.py +368 -0
  297. wx/demo/agw/XLSGrid.py +238 -0
  298. wx/demo/agw/ZoomBar.py +230 -0
  299. wx/demo/agw/__demo__.py +183 -0
  300. wx/demo/agw/bitmaps/Explorer96.png +0 -0
  301. wx/demo/agw/bitmaps/Explorer96Flip40.png +0 -0
  302. wx/demo/agw/bitmaps/Folder96.png +0 -0
  303. wx/demo/agw/bitmaps/Folder96Flip40.png +0 -0
  304. wx/demo/agw/bitmaps/Monitor96.png +0 -0
  305. wx/demo/agw/bitmaps/Monitor96Flip40.png +0 -0
  306. wx/demo/agw/bitmaps/Music96.png +0 -0
  307. wx/demo/agw/bitmaps/Music96Flip40.png +0 -0
  308. wx/demo/agw/bitmaps/Photo96.png +0 -0
  309. wx/demo/agw/bitmaps/Photo96Flip40.png +0 -0
  310. wx/demo/agw/bitmaps/Search96.png +0 -0
  311. wx/demo/agw/bitmaps/Search96Flip40.png +0 -0
  312. wx/demo/agw/bitmaps/Wizard96.png +0 -0
  313. wx/demo/agw/bitmaps/Wizard96Flip40.png +0 -0
  314. wx/demo/agw/bitmaps/advancedsplash.png +0 -0
  315. wx/demo/agw/bitmaps/aquabutton.png +0 -0
  316. wx/demo/agw/bitmaps/aquachecked.ico +0 -0
  317. wx/demo/agw/bitmaps/aquaflagged.ico +0 -0
  318. wx/demo/agw/bitmaps/aquanotchecked.ico +0 -0
  319. wx/demo/agw/bitmaps/aquanotflagged.ico +0 -0
  320. wx/demo/agw/bitmaps/canada.gif +0 -0
  321. wx/demo/agw/bitmaps/checked.ico +0 -0
  322. wx/demo/agw/bitmaps/columns.png +0 -0
  323. wx/demo/agw/bitmaps/contexthelp-16.png +0 -0
  324. wx/demo/agw/bitmaps/contexthelp.png +0 -0
  325. wx/demo/agw/bitmaps/copy.png +0 -0
  326. wx/demo/agw/bitmaps/cut.png +0 -0
  327. wx/demo/agw/bitmaps/editcopy.png +0 -0
  328. wx/demo/agw/bitmaps/editcut.png +0 -0
  329. wx/demo/agw/bitmaps/editpaste.png +0 -0
  330. wx/demo/agw/bitmaps/empty_icon.png +0 -0
  331. wx/demo/agw/bitmaps/exit-16.png +0 -0
  332. wx/demo/agw/bitmaps/exit.ico +0 -0
  333. wx/demo/agw/bitmaps/ffwd.png +0 -0
  334. wx/demo/agw/bitmaps/ffwddisabled.png +0 -0
  335. wx/demo/agw/bitmaps/field-16.png +0 -0
  336. wx/demo/agw/bitmaps/filenew.png +0 -0
  337. wx/demo/agw/bitmaps/fileopen.png +0 -0
  338. wx/demo/agw/bitmaps/filesave.png +0 -0
  339. wx/demo/agw/bitmaps/flagged.ico +0 -0
  340. wx/demo/agw/bitmaps/folder.png +0 -0
  341. wx/demo/agw/bitmaps/folder_new.png +0 -0
  342. wx/demo/agw/bitmaps/ghost.png +0 -0
  343. wx/demo/agw/bitmaps/gradientbutton.png +0 -0
  344. wx/demo/agw/bitmaps/help-16.png +0 -0
  345. wx/demo/agw/bitmaps/help.ico +0 -0
  346. wx/demo/agw/bitmaps/italy.gif +0 -0
  347. wx/demo/agw/bitmaps/lbadd.png +0 -0
  348. wx/demo/agw/bitmaps/lbcharge.png +0 -0
  349. wx/demo/agw/bitmaps/lbdecrypted.png +0 -0
  350. wx/demo/agw/bitmaps/lbnews.png +0 -0
  351. wx/demo/agw/bitmaps/lbroll.png +0 -0
  352. wx/demo/agw/bitmaps/minus1.ico +0 -0
  353. wx/demo/agw/bitmaps/minus2.ico +0 -0
  354. wx/demo/agw/bitmaps/minus3.ico +0 -0
  355. wx/demo/agw/bitmaps/minus4.ico +0 -0
  356. wx/demo/agw/bitmaps/minus5.ico +0 -0
  357. wx/demo/agw/bitmaps/month-16.png +0 -0
  358. wx/demo/agw/bitmaps/new_file.png +0 -0
  359. wx/demo/agw/bitmaps/new_folder.png +0 -0
  360. wx/demo/agw/bitmaps/notchecked.ico +0 -0
  361. wx/demo/agw/bitmaps/notflagged.ico +0 -0
  362. wx/demo/agw/bitmaps/ok-16.png +0 -0
  363. wx/demo/agw/bitmaps/open_folder.png +0 -0
  364. wx/demo/agw/bitmaps/paste.png +0 -0
  365. wx/demo/agw/bitmaps/pause.png +0 -0
  366. wx/demo/agw/bitmaps/pausedisabled.png +0 -0
  367. wx/demo/agw/bitmaps/play.png +0 -0
  368. wx/demo/agw/bitmaps/playdisabled.png +0 -0
  369. wx/demo/agw/bitmaps/plus1.ico +0 -0
  370. wx/demo/agw/bitmaps/plus2.ico +0 -0
  371. wx/demo/agw/bitmaps/plus3.ico +0 -0
  372. wx/demo/agw/bitmaps/plus4.ico +0 -0
  373. wx/demo/agw/bitmaps/plus5.ico +0 -0
  374. wx/demo/agw/bitmaps/record.png +0 -0
  375. wx/demo/agw/bitmaps/recorddisabled.png +0 -0
  376. wx/demo/agw/bitmaps/recording.gif +0 -0
  377. wx/demo/agw/bitmaps/rewind.png +0 -0
  378. wx/demo/agw/bitmaps/rewinddisabled.png +0 -0
  379. wx/demo/agw/bitmaps/round.png +0 -0
  380. wx/demo/agw/bitmaps/save.png +0 -0
  381. wx/demo/agw/bitmaps/separator.gif +0 -0
  382. wx/demo/agw/bitmaps/separatorflip.png +0 -0
  383. wx/demo/agw/bitmaps/smfuel.ico +0 -0
  384. wx/demo/agw/bitmaps/smpi.ico +0 -0
  385. wx/demo/agw/bitmaps/smtemp.ico +0 -0
  386. wx/demo/agw/bitmaps/stop.png +0 -0
  387. wx/demo/agw/bitmaps/stopdisabled.png +0 -0
  388. wx/demo/agw/bitmaps/sttbutton.png +0 -0
  389. wx/demo/agw/bitmaps/sttfont.png +0 -0
  390. wx/demo/agw/bitmaps/sttheader.png +0 -0
  391. wx/demo/agw/bitmaps/stthelp.png +0 -0
  392. wx/demo/agw/bitmaps/view1.png +0 -0
  393. wx/demo/agw/bitmaps/view2.png +0 -0
  394. wx/demo/agw/bitmaps/view_choose.png +0 -0
  395. wx/demo/agw/bitmaps/view_detailed.png +0 -0
  396. wx/demo/agw/bitmaps/view_icon.png +0 -0
  397. wx/demo/agw/bitmaps/view_multicolumn.png +0 -0
  398. wx/demo/agw/bitmaps/viewmag-16.png +0 -0
  399. wx/demo/agw/bitmaps/viewmag-m-16.png +0 -0
  400. wx/demo/agw/bitmaps/viewmag-p-16.png +0 -0
  401. wx/demo/agw/bitmaps/viewmagfit-16.png +0 -0
  402. wx/demo/agw/data/Example_1.xls +0 -0
  403. wx/demo/agw/images.py +6714 -0
  404. wx/demo/bitmaps/AG00028_.gif +0 -0
  405. wx/demo/bitmaps/AG00039_.gif +0 -0
  406. wx/demo/bitmaps/AG00178_.gif +0 -0
  407. wx/demo/bitmaps/AG00183_.gif +0 -0
  408. wx/demo/bitmaps/AG00185_.gif +0 -0
  409. wx/demo/bitmaps/BD13656_.gif +0 -0
  410. wx/demo/bitmaps/advancedsplash.png +0 -0
  411. wx/demo/bitmaps/aquabutton.png +0 -0
  412. wx/demo/bitmaps/aquachecked.ico +0 -0
  413. wx/demo/bitmaps/aquaflagged.ico +0 -0
  414. wx/demo/bitmaps/aquanotchecked.ico +0 -0
  415. wx/demo/bitmaps/aquanotflagged.ico +0 -0
  416. wx/demo/bitmaps/canada.gif +0 -0
  417. wx/demo/bitmaps/checked.ico +0 -0
  418. wx/demo/bitmaps/columns.png +0 -0
  419. wx/demo/bitmaps/contexthelp-16.png +0 -0
  420. wx/demo/bitmaps/contexthelp.png +0 -0
  421. wx/demo/bitmaps/copy.png +0 -0
  422. wx/demo/bitmaps/cropshot24x20.png +0 -0
  423. wx/demo/bitmaps/cut.png +0 -0
  424. wx/demo/bitmaps/editcopy.png +0 -0
  425. wx/demo/bitmaps/editcut.png +0 -0
  426. wx/demo/bitmaps/editpaste.png +0 -0
  427. wx/demo/bitmaps/exit-16.png +0 -0
  428. wx/demo/bitmaps/exit.ico +0 -0
  429. wx/demo/bitmaps/ffwd.png +0 -0
  430. wx/demo/bitmaps/ffwddisabled.png +0 -0
  431. wx/demo/bitmaps/field-16.png +0 -0
  432. wx/demo/bitmaps/filenew.png +0 -0
  433. wx/demo/bitmaps/fileopen.png +0 -0
  434. wx/demo/bitmaps/filesave.png +0 -0
  435. wx/demo/bitmaps/flagged.ico +0 -0
  436. wx/demo/bitmaps/folder_new.png +0 -0
  437. wx/demo/bitmaps/ghost.png +0 -0
  438. wx/demo/bitmaps/gradientbutton.png +0 -0
  439. wx/demo/bitmaps/help-16.png +0 -0
  440. wx/demo/bitmaps/help.ico +0 -0
  441. wx/demo/bitmaps/honeycomb300.png +0 -0
  442. wx/demo/bitmaps/image.bmp +0 -0
  443. wx/demo/bitmaps/image.gif +0 -0
  444. wx/demo/bitmaps/image.ico +0 -0
  445. wx/demo/bitmaps/image.jpg +0 -0
  446. wx/demo/bitmaps/image.png +0 -0
  447. wx/demo/bitmaps/image.tif +0 -0
  448. wx/demo/bitmaps/italy.gif +0 -0
  449. wx/demo/bitmaps/lbadd.png +0 -0
  450. wx/demo/bitmaps/lbcharge.png +0 -0
  451. wx/demo/bitmaps/lbdecrypted.png +0 -0
  452. wx/demo/bitmaps/lbnews.png +0 -0
  453. wx/demo/bitmaps/lbroll.png +0 -0
  454. wx/demo/bitmaps/minus1.ico +0 -0
  455. wx/demo/bitmaps/minus2.ico +0 -0
  456. wx/demo/bitmaps/minus3.ico +0 -0
  457. wx/demo/bitmaps/minus4.ico +0 -0
  458. wx/demo/bitmaps/minus5.ico +0 -0
  459. wx/demo/bitmaps/month-16.png +0 -0
  460. wx/demo/bitmaps/new_file.png +0 -0
  461. wx/demo/bitmaps/new_folder.png +0 -0
  462. wx/demo/bitmaps/notchecked.ico +0 -0
  463. wx/demo/bitmaps/notflagged.ico +0 -0
  464. wx/demo/bitmaps/ok-16.png +0 -0
  465. wx/demo/bitmaps/open_folder.png +0 -0
  466. wx/demo/bitmaps/paste.png +0 -0
  467. wx/demo/bitmaps/pause.png +0 -0
  468. wx/demo/bitmaps/pausedisabled.png +0 -0
  469. wx/demo/bitmaps/phoenix_title.png +0 -0
  470. wx/demo/bitmaps/phoenix_top.png +0 -0
  471. wx/demo/bitmaps/play.png +0 -0
  472. wx/demo/bitmaps/playdisabled.png +0 -0
  473. wx/demo/bitmaps/plus1.ico +0 -0
  474. wx/demo/bitmaps/plus2.ico +0 -0
  475. wx/demo/bitmaps/plus3.ico +0 -0
  476. wx/demo/bitmaps/plus4.ico +0 -0
  477. wx/demo/bitmaps/plus5.ico +0 -0
  478. wx/demo/bitmaps/record.png +0 -0
  479. wx/demo/bitmaps/recorddisabled.png +0 -0
  480. wx/demo/bitmaps/rewind.png +0 -0
  481. wx/demo/bitmaps/rewinddisabled.png +0 -0
  482. wx/demo/bitmaps/round.png +0 -0
  483. wx/demo/bitmaps/save.png +0 -0
  484. wx/demo/bitmaps/smfuel.ico +0 -0
  485. wx/demo/bitmaps/smpi.ico +0 -0
  486. wx/demo/bitmaps/smtemp.ico +0 -0
  487. wx/demo/bitmaps/snakey_render.png +0 -0
  488. wx/demo/bitmaps/splash.png +0 -0
  489. wx/demo/bitmaps/stop.png +0 -0
  490. wx/demo/bitmaps/stopdisabled.png +0 -0
  491. wx/demo/bitmaps/sttbutton.png +0 -0
  492. wx/demo/bitmaps/sttfont.png +0 -0
  493. wx/demo/bitmaps/sttheader.png +0 -0
  494. wx/demo/bitmaps/stthelp.png +0 -0
  495. wx/demo/bitmaps/toucan.png +0 -0
  496. wx/demo/bitmaps/view1.png +0 -0
  497. wx/demo/bitmaps/view2.png +0 -0
  498. wx/demo/bitmaps/view_choose.png +0 -0
  499. wx/demo/bitmaps/view_detailed.png +0 -0
  500. wx/demo/bitmaps/view_icon.png +0 -0
  501. wx/demo/bitmaps/view_multicolumn.png +0 -0
  502. wx/demo/bitmaps/viewmag-16.png +0 -0
  503. wx/demo/bitmaps/viewmag-m-16.png +0 -0
  504. wx/demo/bitmaps/viewmag-p-16.png +0 -0
  505. wx/demo/bitmaps/viewmagfit-16.png +0 -0
  506. wx/demo/bmp_source/001.png +0 -0
  507. wx/demo/bmp_source/002.png +0 -0
  508. wx/demo/bmp_source/003.png +0 -0
  509. wx/demo/bmp_source/004.png +0 -0
  510. wx/demo/bmp_source/005.png +0 -0
  511. wx/demo/bmp_source/006.png +0 -0
  512. wx/demo/bmp_source/007.png +0 -0
  513. wx/demo/bmp_source/008.png +0 -0
  514. wx/demo/bmp_source/009.png +0 -0
  515. wx/demo/bmp_source/010.png +0 -0
  516. wx/demo/bmp_source/011.png +0 -0
  517. wx/demo/bmp_source/012.png +0 -0
  518. wx/demo/bmp_source/013.png +0 -0
  519. wx/demo/bmp_source/014.png +0 -0
  520. wx/demo/bmp_source/015.png +0 -0
  521. wx/demo/bmp_source/016.png +0 -0
  522. wx/demo/bmp_source/017.png +0 -0
  523. wx/demo/bmp_source/018.png +0 -0
  524. wx/demo/bmp_source/019.png +0 -0
  525. wx/demo/bmp_source/020.png +0 -0
  526. wx/demo/bmp_source/021.png +0 -0
  527. wx/demo/bmp_source/022.png +0 -0
  528. wx/demo/bmp_source/023.png +0 -0
  529. wx/demo/bmp_source/024.png +0 -0
  530. wx/demo/bmp_source/025.png +0 -0
  531. wx/demo/bmp_source/026.png +0 -0
  532. wx/demo/bmp_source/027.png +0 -0
  533. wx/demo/bmp_source/028.png +0 -0
  534. wx/demo/bmp_source/029.png +0 -0
  535. wx/demo/bmp_source/030.png +0 -0
  536. wx/demo/bmp_source/DbDec.bmp +0 -0
  537. wx/demo/bmp_source/DbInc.bmp +0 -0
  538. wx/demo/bmp_source/Dec.bmp +0 -0
  539. wx/demo/bmp_source/FRM_0.png +0 -0
  540. wx/demo/bmp_source/FRM_1.png +0 -0
  541. wx/demo/bmp_source/FRM_2.png +0 -0
  542. wx/demo/bmp_source/FRM_3.png +0 -0
  543. wx/demo/bmp_source/FRM_4.png +0 -0
  544. wx/demo/bmp_source/FRM_5.png +0 -0
  545. wx/demo/bmp_source/FRM_6.png +0 -0
  546. wx/demo/bmp_source/FRM_7.png +0 -0
  547. wx/demo/bmp_source/FRM_8.png +0 -0
  548. wx/demo/bmp_source/GridBG.gif +0 -0
  549. wx/demo/bmp_source/Inc.bmp +0 -0
  550. wx/demo/bmp_source/LB01.png +0 -0
  551. wx/demo/bmp_source/LB02.png +0 -0
  552. wx/demo/bmp_source/LB03.png +0 -0
  553. wx/demo/bmp_source/LB04.png +0 -0
  554. wx/demo/bmp_source/LB05.png +0 -0
  555. wx/demo/bmp_source/LB06.png +0 -0
  556. wx/demo/bmp_source/LB07.png +0 -0
  557. wx/demo/bmp_source/LB08.png +0 -0
  558. wx/demo/bmp_source/LB09.png +0 -0
  559. wx/demo/bmp_source/LB10.png +0 -0
  560. wx/demo/bmp_source/LB11.png +0 -0
  561. wx/demo/bmp_source/LB12.png +0 -0
  562. wx/demo/bmp_source/Pt.bmp +0 -0
  563. wx/demo/bmp_source/Vippi.png +0 -0
  564. wx/demo/bmp_source/backgrnd.png +0 -0
  565. wx/demo/bmp_source/book.png +0 -0
  566. wx/demo/bmp_source/book_blue.png +0 -0
  567. wx/demo/bmp_source/book_green.png +0 -0
  568. wx/demo/bmp_source/book_red.png +0 -0
  569. wx/demo/bmp_source/bp_btn1.png +0 -0
  570. wx/demo/bmp_source/bp_btn2.png +0 -0
  571. wx/demo/bmp_source/bp_btn3.png +0 -0
  572. wx/demo/bmp_source/bp_btn4.png +0 -0
  573. wx/demo/bmp_source/bulb1.bmp +0 -0
  574. wx/demo/bmp_source/bulb2.bmp +0 -0
  575. wx/demo/bmp_source/carrot.png +0 -0
  576. wx/demo/bmp_source/clipboard.png +0 -0
  577. wx/demo/bmp_source/code.png +0 -0
  578. wx/demo/bmp_source/core.png +0 -0
  579. wx/demo/bmp_source/custom.png +0 -0
  580. wx/demo/bmp_source/customcontrol.png +0 -0
  581. wx/demo/bmp_source/deletedocs.png +0 -0
  582. wx/demo/bmp_source/deleteperspective.png +0 -0
  583. wx/demo/bmp_source/demo.png +0 -0
  584. wx/demo/bmp_source/dialog.png +0 -0
  585. wx/demo/bmp_source/exit.png +0 -0
  586. wx/demo/bmp_source/expansion.png +0 -0
  587. wx/demo/bmp_source/find.png +0 -0
  588. wx/demo/bmp_source/findnext.png +0 -0
  589. wx/demo/bmp_source/floatcanvas.png +0 -0
  590. wx/demo/bmp_source/frame.png +0 -0
  591. wx/demo/bmp_source/images.png +0 -0
  592. wx/demo/bmp_source/inspect.png +0 -0
  593. wx/demo/bmp_source/layout.png +0 -0
  594. wx/demo/bmp_source/logo.png +0 -0
  595. wx/demo/bmp_source/miscellaneous.png +0 -0
  596. wx/demo/bmp_source/modifiedexists.png +0 -0
  597. wx/demo/bmp_source/mondrian.ico +0 -0
  598. wx/demo/bmp_source/morecontrols.png +0 -0
  599. wx/demo/bmp_source/moredialog.png +0 -0
  600. wx/demo/bmp_source/noicon.png +0 -0
  601. wx/demo/bmp_source/overview.png +0 -0
  602. wx/demo/bmp_source/pencil.png +0 -0
  603. wx/demo/bmp_source/pointy.png +0 -0
  604. wx/demo/bmp_source/process.png +0 -0
  605. wx/demo/bmp_source/pyshell.png +0 -0
  606. wx/demo/bmp_source/recent.png +0 -0
  607. wx/demo/bmp_source/rest.png +0 -0
  608. wx/demo/bmp_source/robin.jpg +0 -0
  609. wx/demo/bmp_source/rt_alignleft.xpm +24 -0
  610. wx/demo/bmp_source/rt_alignright.xpm +24 -0
  611. wx/demo/bmp_source/rt_bold.xpm +24 -0
  612. wx/demo/bmp_source/rt_centre.xpm +24 -0
  613. wx/demo/bmp_source/rt_colour.xpm +59 -0
  614. wx/demo/bmp_source/rt_copy.xpm +44 -0
  615. wx/demo/bmp_source/rt_cut.xpm +46 -0
  616. wx/demo/bmp_source/rt_font.xpm +25 -0
  617. wx/demo/bmp_source/rt_idea.xpm +47 -0
  618. wx/demo/bmp_source/rt_indentless.xpm +25 -0
  619. wx/demo/bmp_source/rt_indentmore.xpm +25 -0
  620. wx/demo/bmp_source/rt_italic.xpm +25 -0
  621. wx/demo/bmp_source/rt_open.xpm +57 -0
  622. wx/demo/bmp_source/rt_paste.xpm +46 -0
  623. wx/demo/bmp_source/rt_redo.xpm +58 -0
  624. wx/demo/bmp_source/rt_sample.xpm +44 -0
  625. wx/demo/bmp_source/rt_save.xpm +42 -0
  626. wx/demo/bmp_source/rt_smiley.xpm +42 -0
  627. wx/demo/bmp_source/rt_underline.xpm +25 -0
  628. wx/demo/bmp_source/rt_undo.xpm +58 -0
  629. wx/demo/bmp_source/rt_zebra.xpm +409 -0
  630. wx/demo/bmp_source/saveperspective.png +0 -0
  631. wx/demo/bmp_source/sm_down.bmp +0 -0
  632. wx/demo/bmp_source/sm_up.bmp +0 -0
  633. wx/demo/bmp_source/smiles2.bmp +0 -0
  634. wx/demo/bmp_source/test2.bmp +0 -0
  635. wx/demo/bmp_source/testmask.bmp +0 -0
  636. wx/demo/bmp_source/teststar.png +0 -0
  637. wx/demo/bmp_source/thekid.png +0 -0
  638. wx/demo/bmp_source/tog1.bmp +0 -0
  639. wx/demo/bmp_source/tog2.bmp +0 -0
  640. wx/demo/bmp_source/wiztest1.bmp +0 -0
  641. wx/demo/bmp_source/wiztest2.bmp +0 -0
  642. wx/demo/bmp_source/wxpdemo.ico +0 -0
  643. wx/demo/cursors/paperairplane_arrow_blue.cur +0 -0
  644. wx/demo/cursors/paperairplane_arrow_blue_fadeout80.cur +0 -0
  645. wx/demo/cursors/paperairplane_arrow_colorshift.ani +0 -0
  646. wx/demo/cursors/paperairplane_arrow_dark.cur +0 -0
  647. wx/demo/cursors/paperairplane_arrow_grey.cur +0 -0
  648. wx/demo/cursors/paperairplane_arrow_red.cur +0 -0
  649. wx/demo/cursors/paperairplane_arrow_white.cur +0 -0
  650. wx/demo/cursors/paperairplane_arrow_white24.png +0 -0
  651. wx/demo/data/0-tiger.svg +725 -0
  652. wx/demo/data/Asteroid_blaster.swf +0 -0
  653. wx/demo/data/SIL_OPEN_FONT_LICENSE.txt +97 -0
  654. wx/demo/data/SourceCodePro-Regular.ttf +0 -0
  655. wx/demo/data/accessories-calculator.svg +636 -0
  656. wx/demo/data/accessories-text-editor.svg +554 -0
  657. wx/demo/data/anykey.wav +0 -0
  658. wx/demo/data/applications-internet.svg +623 -0
  659. wx/demo/data/desktop-accessibility.svg +245 -0
  660. wx/demo/data/desktop-keyboard-shortcuts.svg +839 -0
  661. wx/demo/data/desktop-locale.svg +878 -0
  662. wx/demo/data/desktop-remote-desktop.svg +1479 -0
  663. wx/demo/data/desktop-theme.svg +882 -0
  664. wx/demo/data/desktop-wallpaper.svg +747 -0
  665. wx/demo/data/echo.py +25 -0
  666. wx/demo/data/imagemap.htm +20 -0
  667. wx/demo/data/imagemap.png +0 -0
  668. wx/demo/data/internet-group-chat.svg +312 -0
  669. wx/demo/data/internet-mail.svg +440 -0
  670. wx/demo/data/locale/af/LC_MESSAGES/wxpydemo.mo +0 -0
  671. wx/demo/data/locale/de/LC_MESSAGES/wxpydemo.mo +0 -0
  672. wx/demo/data/locale/es/LC_MESSAGES/wxpydemo.mo +0 -0
  673. wx/demo/data/locale/fr/LC_MESSAGES/wxpydemo.mo +0 -0
  674. wx/demo/data/locale/it/LC_MESSAGES/wxpydemo.mo +0 -0
  675. wx/demo/data/locale-src/af.po +23 -0
  676. wx/demo/data/locale-src/de.po +23 -0
  677. wx/demo/data/locale-src/es.po +22 -0
  678. wx/demo/data/locale-src/fr.po +22 -0
  679. wx/demo/data/locale-src/install +15 -0
  680. wx/demo/data/locale-src/it.po +23 -0
  681. wx/demo/data/locale-src/wxpydemo.po +21 -0
  682. wx/demo/data/office-calendar.svg +316 -0
  683. wx/demo/data/pic.png +0 -0
  684. wx/demo/data/pic2.bmp +0 -0
  685. wx/demo/data/plan.wav +0 -0
  686. wx/demo/data/proclamation.txt +115 -0
  687. wx/demo/data/resource.wdr +0 -0
  688. wx/demo/data/resource_wdr.xrc +146 -0
  689. wx/demo/data/romedalen.png +0 -0
  690. wx/demo/data/stc.h.html +3544 -0
  691. wx/demo/data/system-session.svg +510 -0
  692. wx/demo/data/system-users.svg +539 -0
  693. wx/demo/data/tables.htm +116 -0
  694. wx/demo/data/test-gradient-pen.svg +14 -0
  695. wx/demo/data/test-opacity.svg +7 -0
  696. wx/demo/data/test.htm +253 -0
  697. wx/demo/data/testmovie.mpg +0 -0
  698. wx/demo/data/testtable.txt +38 -0
  699. wx/demo/data/tips.txt +73 -0
  700. wx/demo/data/utilities-system-monitor.svg +435 -0
  701. wx/demo/data/utilities-terminal.svg +500 -0
  702. wx/demo/data/widgetTest.htm +70 -0
  703. wx/demo/data/world.dat +24055 -0
  704. wx/demo/demo.py +4 -0
  705. wx/demo/demo.pyw +4 -0
  706. wx/demo/demodata.py +310 -0
  707. wx/demo/encode_bitmaps.py +181 -0
  708. wx/demo/images.py +6812 -0
  709. wx/demo/infoframe.py +149 -0
  710. wx/demo/run.py +171 -0
  711. wx/demo/snippets/__init__.py +13 -0
  712. wx/demo/snippets/arc.py +21 -0
  713. wx/demo/snippets/arc_negative.py +21 -0
  714. wx/demo/snippets/clip.py +13 -0
  715. wx/demo/snippets/clip_image.py +13 -0
  716. wx/demo/snippets/curve_rectangle.py +53 -0
  717. wx/demo/snippets/curve_to.py +17 -0
  718. wx/demo/snippets/dash.py +18 -0
  719. wx/demo/snippets/ellipse.py +33 -0
  720. wx/demo/snippets/fill_and_stroke.py +12 -0
  721. wx/demo/snippets/fill_and_stroke2.py +18 -0
  722. wx/demo/snippets/fill_style.py +31 -0
  723. wx/demo/snippets/glyph_path.py +21 -0
  724. wx/demo/snippets/gradient.py +16 -0
  725. wx/demo/snippets/gradient_mask.py +12 -0
  726. wx/demo/snippets/group.py +16 -0
  727. wx/demo/snippets/image.py +14 -0
  728. wx/demo/snippets/imagepattern.py +23 -0
  729. wx/demo/snippets/path.py +7 -0
  730. wx/demo/snippets/set_line_cap.py +19 -0
  731. wx/demo/snippets/set_line_join.py +21 -0
  732. wx/demo/snippets/show_glyphs.py +15 -0
  733. wx/demo/snippets/text.py +22 -0
  734. wx/demo/snippets/text_align_center.py +26 -0
  735. wx/demo/snippets/text_extents.py +27 -0
  736. wx/demo/template.py +36 -0
  737. wx/demo/throbImages.py +1277 -0
  738. wx/demo/version.py +3 -0
  739. wx/demo/widgetTest.py +72 -0
  740. wx/demo/wxpdemo.ico +0 -0
  741. wx/glcanvas.py +10 -0
  742. wx/glcanvas.pyi +458 -0
  743. wx/grid.py +229 -0
  744. wx/grid.pyi +4959 -0
  745. wx/html.py +35 -0
  746. wx/html.pyi +2965 -0
  747. wx/html2.py +40 -0
  748. wx/html2.pyi +772 -0
  749. wx/lib/CDate.py +202 -0
  750. wx/lib/ClickableHtmlWindow.py +57 -0
  751. wx/lib/__init__.py +0 -0
  752. wx/lib/activex.py +178 -0
  753. wx/lib/activexwrapper.py +153 -0
  754. wx/lib/agw/__init__.py +128 -0
  755. wx/lib/agw/advancedsplash.py +564 -0
  756. wx/lib/agw/aquabutton.py +1127 -0
  757. wx/lib/agw/artmanager.py +2110 -0
  758. wx/lib/agw/aui/__init__.py +295 -0
  759. wx/lib/agw/aui/aui_constants.py +2628 -0
  760. wx/lib/agw/aui/aui_switcherdialog.py +1227 -0
  761. wx/lib/agw/aui/aui_utilities.py +672 -0
  762. wx/lib/agw/aui/auibar.py +4031 -0
  763. wx/lib/agw/aui/auibook.py +6289 -0
  764. wx/lib/agw/aui/dockart.py +1198 -0
  765. wx/lib/agw/aui/framemanager.py +10409 -0
  766. wx/lib/agw/aui/tabart.py +2771 -0
  767. wx/lib/agw/aui/tabmdi.py +679 -0
  768. wx/lib/agw/balloontip.py +1158 -0
  769. wx/lib/agw/buttonpanel.py +2823 -0
  770. wx/lib/agw/cubecolourdialog.py +3529 -0
  771. wx/lib/agw/customtreectrl.py +8963 -0
  772. wx/lib/agw/data/ShortcutEditor_1.png +0 -0
  773. wx/lib/agw/data/ShortcutEditor_1_thumb.png +0 -0
  774. wx/lib/agw/data/ShortcutEditor_2.png +0 -0
  775. wx/lib/agw/data/ShortcutEditor_2_thumb.png +0 -0
  776. wx/lib/agw/data/ShortcutEditor_3.png +0 -0
  777. wx/lib/agw/data/ShortcutEditor_3_thumb.png +0 -0
  778. wx/lib/agw/data/ShortcutEditor_4.png +0 -0
  779. wx/lib/agw/data/ShortcutEditor_4_thumb.png +0 -0
  780. wx/lib/agw/data/default_help_text.html +105 -0
  781. wx/lib/agw/flatmenu.py +7333 -0
  782. wx/lib/agw/flatnotebook.py +6672 -0
  783. wx/lib/agw/floatspin.py +1823 -0
  784. wx/lib/agw/fmcustomizedlg.py +540 -0
  785. wx/lib/agw/fmresources.py +407 -0
  786. wx/lib/agw/foldpanelbar.py +2282 -0
  787. wx/lib/agw/fourwaysplitter.py +1130 -0
  788. wx/lib/agw/genericmessagedialog.py +1549 -0
  789. wx/lib/agw/gradientbutton.py +732 -0
  790. wx/lib/agw/hyperlink.py +664 -0
  791. wx/lib/agw/hypertreelist.py +5374 -0
  792. wx/lib/agw/infobar.py +885 -0
  793. wx/lib/agw/knobctrl.py +945 -0
  794. wx/lib/agw/labelbook.py +3029 -0
  795. wx/lib/agw/multidirdialog.py +615 -0
  796. wx/lib/agw/peakmeter.py +1029 -0
  797. wx/lib/agw/persist/__init__.py +188 -0
  798. wx/lib/agw/persist/persist_constants.py +284 -0
  799. wx/lib/agw/persist/persist_handlers.py +2614 -0
  800. wx/lib/agw/persist/persistencemanager.py +864 -0
  801. wx/lib/agw/piectrl.py +1082 -0
  802. wx/lib/agw/pybusyinfo.py +399 -0
  803. wx/lib/agw/pycollapsiblepane.py +940 -0
  804. wx/lib/agw/pygauge.py +570 -0
  805. wx/lib/agw/pyprogress.py +917 -0
  806. wx/lib/agw/ribbon/__init__.py +198 -0
  807. wx/lib/agw/ribbon/art.py +219 -0
  808. wx/lib/agw/ribbon/art_aui.py +1284 -0
  809. wx/lib/agw/ribbon/art_default.py +81 -0
  810. wx/lib/agw/ribbon/art_internal.py +244 -0
  811. wx/lib/agw/ribbon/art_msw.py +2736 -0
  812. wx/lib/agw/ribbon/art_osx.py +52 -0
  813. wx/lib/agw/ribbon/bar.py +1261 -0
  814. wx/lib/agw/ribbon/buttonbar.py +1320 -0
  815. wx/lib/agw/ribbon/control.py +205 -0
  816. wx/lib/agw/ribbon/gallery.py +974 -0
  817. wx/lib/agw/ribbon/page.py +946 -0
  818. wx/lib/agw/ribbon/panel.py +1170 -0
  819. wx/lib/agw/ribbon/toolbar.py +1442 -0
  820. wx/lib/agw/rulerctrl.py +1887 -0
  821. wx/lib/agw/scrolledthumbnail.py +2119 -0
  822. wx/lib/agw/shapedbutton.py +1809 -0
  823. wx/lib/agw/shortcuteditor.py +2634 -0
  824. wx/lib/agw/speedmeter.py +1801 -0
  825. wx/lib/agw/supertooltip.py +1444 -0
  826. wx/lib/agw/thumbnailctrl.py +529 -0
  827. wx/lib/agw/toasterbox.py +1327 -0
  828. wx/lib/agw/ultimatelistctrl.py +13666 -0
  829. wx/lib/agw/xlsgrid.py +2113 -0
  830. wx/lib/agw/zoombar.py +1339 -0
  831. wx/lib/analogclock/__init__.py +140 -0
  832. wx/lib/analogclock/analogclock.py +631 -0
  833. wx/lib/analogclock/helpers.py +991 -0
  834. wx/lib/analogclock/lib_setup/__init__.py +0 -0
  835. wx/lib/analogclock/lib_setup/buttontreectrlpanel.py +297 -0
  836. wx/lib/analogclock/lib_setup/fontselect.py +57 -0
  837. wx/lib/analogclock/setup.py +490 -0
  838. wx/lib/analogclock/styles.py +47 -0
  839. wx/lib/anchors.py +103 -0
  840. wx/lib/art/__init__.py +4 -0
  841. wx/lib/art/flagart.py +1583 -0
  842. wx/lib/art/img2pyartprov.py +56 -0
  843. wx/lib/busy.py +146 -0
  844. wx/lib/buttons.py +1141 -0
  845. wx/lib/calendar.py +1597 -0
  846. wx/lib/checkbox.py +837 -0
  847. wx/lib/colourchooser/__init__.py +38 -0
  848. wx/lib/colourchooser/canvas.py +145 -0
  849. wx/lib/colourchooser/intl.py +24 -0
  850. wx/lib/colourchooser/pycolourbox.py +89 -0
  851. wx/lib/colourchooser/pycolourchooser.py +629 -0
  852. wx/lib/colourchooser/pycolourslider.py +100 -0
  853. wx/lib/colourchooser/pypalette.py +211 -0
  854. wx/lib/colourdb.py +740 -0
  855. wx/lib/colourselect.py +385 -0
  856. wx/lib/colourutils.py +118 -0
  857. wx/lib/combotreebox.py +944 -0
  858. wx/lib/delayedresult.py +420 -0
  859. wx/lib/dialogs.py +510 -0
  860. wx/lib/docview.py +3210 -0
  861. wx/lib/dragscroller.py +79 -0
  862. wx/lib/editor/README.txt +77 -0
  863. wx/lib/editor/__init__.py +24 -0
  864. wx/lib/editor/editor.py +974 -0
  865. wx/lib/editor/images.py +15 -0
  866. wx/lib/editor/selection.py +44 -0
  867. wx/lib/embeddedimage.py +76 -0
  868. wx/lib/eventStack.py +136 -0
  869. wx/lib/eventwatcher.py +440 -0
  870. wx/lib/evtmgr.py +521 -0
  871. wx/lib/expando.py +393 -0
  872. wx/lib/fancytext.py +505 -0
  873. wx/lib/filebrowsebutton.py +459 -0
  874. wx/lib/flashwin.py +262 -0
  875. wx/lib/flashwin_old.py +651 -0
  876. wx/lib/floatcanvas/FCEvents.py +53 -0
  877. wx/lib/floatcanvas/FCObjects.py +2923 -0
  878. wx/lib/floatcanvas/FloatCanvas.py +1027 -0
  879. wx/lib/floatcanvas/GUIMode.py +396 -0
  880. wx/lib/floatcanvas/NavCanvas.py +161 -0
  881. wx/lib/floatcanvas/Resources.py +319 -0
  882. wx/lib/floatcanvas/ScreenShot.py +1788 -0
  883. wx/lib/floatcanvas/Utilities/BBox.py +314 -0
  884. wx/lib/floatcanvas/Utilities/Colors.py +137 -0
  885. wx/lib/floatcanvas/Utilities/GUI.py +91 -0
  886. wx/lib/floatcanvas/Utilities/__init__.py +7 -0
  887. wx/lib/floatcanvas/__init__.py +124 -0
  888. wx/lib/foldmenu.py +89 -0
  889. wx/lib/gestures.py +310 -0
  890. wx/lib/gizmos/__init__.py +18 -0
  891. wx/lib/gizmos/dynamicsash.py +1202 -0
  892. wx/lib/gizmos/ledctrl.py +300 -0
  893. wx/lib/gizmos/treelistctrl.py +87 -0
  894. wx/lib/graphics.py +1939 -0
  895. wx/lib/gridmovers.py +511 -0
  896. wx/lib/iewin.py +249 -0
  897. wx/lib/iewin_old.py +894 -0
  898. wx/lib/imagebrowser.py +856 -0
  899. wx/lib/imageutils.py +163 -0
  900. wx/lib/infoframe.py +490 -0
  901. wx/lib/inspection.py +1255 -0
  902. wx/lib/intctrl.py +1001 -0
  903. wx/lib/itemspicker.py +256 -0
  904. wx/lib/langlistctrl.py +480 -0
  905. wx/lib/layoutf.py +271 -0
  906. wx/lib/masked/__init__.py +27 -0
  907. wx/lib/masked/combobox.py +839 -0
  908. wx/lib/masked/ctrl.py +108 -0
  909. wx/lib/masked/ipaddrctrl.py +242 -0
  910. wx/lib/masked/maskededit.py +7279 -0
  911. wx/lib/masked/numctrl.py +2001 -0
  912. wx/lib/masked/textctrl.py +465 -0
  913. wx/lib/masked/timectrl.py +1466 -0
  914. wx/lib/mixins/__init__.py +17 -0
  915. wx/lib/mixins/grid.py +47 -0
  916. wx/lib/mixins/gridlabelrenderer.py +251 -0
  917. wx/lib/mixins/imagelist.py +77 -0
  918. wx/lib/mixins/inspection.py +184 -0
  919. wx/lib/mixins/listctrl.py +894 -0
  920. wx/lib/mixins/rubberband.py +404 -0
  921. wx/lib/mixins/treemixin.py +678 -0
  922. wx/lib/msgpanel.py +95 -0
  923. wx/lib/multisash.py +747 -0
  924. wx/lib/myole4ax.idl +178 -0
  925. wx/lib/myole4ax.tlb +0 -0
  926. wx/lib/newevent.py +229 -0
  927. wx/lib/nvdlg.py +156 -0
  928. wx/lib/ogl/__init__.py +13 -0
  929. wx/lib/ogl/basic.py +3991 -0
  930. wx/lib/ogl/bmpshape.py +87 -0
  931. wx/lib/ogl/canvas.py +467 -0
  932. wx/lib/ogl/composit.py +1577 -0
  933. wx/lib/ogl/diagram.py +230 -0
  934. wx/lib/ogl/divided.py +483 -0
  935. wx/lib/ogl/drawn.py +900 -0
  936. wx/lib/ogl/lines.py +1811 -0
  937. wx/lib/ogl/oglmisc.py +608 -0
  938. wx/lib/pdfviewer/__init__.py +113 -0
  939. wx/lib/pdfviewer/bitmaps/ArrowLeft.png +0 -0
  940. wx/lib/pdfviewer/bitmaps/ArrowRight.png +0 -0
  941. wx/lib/pdfviewer/bitmaps/DirectionH.png +0 -0
  942. wx/lib/pdfviewer/bitmaps/DirectionV.png +0 -0
  943. wx/lib/pdfviewer/bitmaps/PlayerFirst.png +0 -0
  944. wx/lib/pdfviewer/bitmaps/PlayerLast.png +0 -0
  945. wx/lib/pdfviewer/bitmaps/PlayerNext.png +0 -0
  946. wx/lib/pdfviewer/bitmaps/PlayerPrev.png +0 -0
  947. wx/lib/pdfviewer/bitmaps/Printer.png +0 -0
  948. wx/lib/pdfviewer/bitmaps/ReadMe.txt +28 -0
  949. wx/lib/pdfviewer/bitmaps/Save.png +0 -0
  950. wx/lib/pdfviewer/bitmaps/ZoomIn.png +0 -0
  951. wx/lib/pdfviewer/bitmaps/ZoomOut.png +0 -0
  952. wx/lib/pdfviewer/bitmaps/encode_bitmaps.py +37 -0
  953. wx/lib/pdfviewer/buttonpanel.py +279 -0
  954. wx/lib/pdfviewer/images.py +240 -0
  955. wx/lib/pdfviewer/viewer.py +1077 -0
  956. wx/lib/pdfwin.py +295 -0
  957. wx/lib/pdfwin_old.py +789 -0
  958. wx/lib/platebtn.py +789 -0
  959. wx/lib/plot/CHANGELOG.md +150 -0
  960. wx/lib/plot/README.md +16 -0
  961. wx/lib/plot/__init__.py +46 -0
  962. wx/lib/plot/__main__.py +5 -0
  963. wx/lib/plot/examples/__init__.py +0 -0
  964. wx/lib/plot/examples/demo.py +1009 -0
  965. wx/lib/plot/examples/simple_example.py +54 -0
  966. wx/lib/plot/plotcanvas.py +2981 -0
  967. wx/lib/plot/polyobjects.py +1525 -0
  968. wx/lib/plot/utils.py +327 -0
  969. wx/lib/popupctl.py +250 -0
  970. wx/lib/printout.py +1157 -0
  971. wx/lib/progressindicator.py +151 -0
  972. wx/lib/pubsub/LICENSE_BSD_Simple.txt +23 -0
  973. wx/lib/pubsub/README_WxPython.txt +22 -0
  974. wx/lib/pubsub/RELEASE_NOTES.txt +71 -0
  975. wx/lib/pubsub/__init__.py +25 -0
  976. wx/lib/pubsub/core/__init__.py +92 -0
  977. wx/lib/pubsub/core/arg1/__init__.py +16 -0
  978. wx/lib/pubsub/core/arg1/listenerimpl.py +97 -0
  979. wx/lib/pubsub/core/arg1/publisher.py +40 -0
  980. wx/lib/pubsub/core/arg1/publishermixin.py +34 -0
  981. wx/lib/pubsub/core/arg1/topicargspecimpl.py +66 -0
  982. wx/lib/pubsub/core/arg1/topicmgrimpl.py +19 -0
  983. wx/lib/pubsub/core/callables.py +191 -0
  984. wx/lib/pubsub/core/imp2.py +63 -0
  985. wx/lib/pubsub/core/itopicdefnprovider.py +0 -0
  986. wx/lib/pubsub/core/kwargs/__init__.py +16 -0
  987. wx/lib/pubsub/core/kwargs/datamsg.py +27 -0
  988. wx/lib/pubsub/core/kwargs/listenerimpl.py +93 -0
  989. wx/lib/pubsub/core/kwargs/publisher.py +77 -0
  990. wx/lib/pubsub/core/kwargs/publishermixin.py +65 -0
  991. wx/lib/pubsub/core/kwargs/topicargspecimpl.py +217 -0
  992. wx/lib/pubsub/core/kwargs/topicmgrimpl.py +13 -0
  993. wx/lib/pubsub/core/listener.py +40 -0
  994. wx/lib/pubsub/core/listenerbase.py +185 -0
  995. wx/lib/pubsub/core/notificationmgr.py +185 -0
  996. wx/lib/pubsub/core/publisherbase.py +191 -0
  997. wx/lib/pubsub/core/topicargspec.py +77 -0
  998. wx/lib/pubsub/core/topicdefnprovider.py +632 -0
  999. wx/lib/pubsub/core/topicexc.py +72 -0
  1000. wx/lib/pubsub/core/topicmgr.py +456 -0
  1001. wx/lib/pubsub/core/topicobj.py +472 -0
  1002. wx/lib/pubsub/core/topictreetraverser.py +143 -0
  1003. wx/lib/pubsub/core/topicutils.py +118 -0
  1004. wx/lib/pubsub/core/treeconfig.py +21 -0
  1005. wx/lib/pubsub/core/validatedefnargs.py +29 -0
  1006. wx/lib/pubsub/core/weakmethod.py +102 -0
  1007. wx/lib/pubsub/policies.py +24 -0
  1008. wx/lib/pubsub/pub.py +199 -0
  1009. wx/lib/pubsub/py2and3.py +608 -0
  1010. wx/lib/pubsub/setuparg1.py +47 -0
  1011. wx/lib/pubsub/setupkwargs.py +29 -0
  1012. wx/lib/pubsub/utils/__init__.py +27 -0
  1013. wx/lib/pubsub/utils/exchandling.py +100 -0
  1014. wx/lib/pubsub/utils/misc.py +100 -0
  1015. wx/lib/pubsub/utils/notification.py +331 -0
  1016. wx/lib/pubsub/utils/topictreeprinter.py +195 -0
  1017. wx/lib/pubsub/utils/xmltopicdefnprovider.py +287 -0
  1018. wx/lib/pydocview.py +3300 -0
  1019. wx/lib/rcsizer.py +229 -0
  1020. wx/lib/resizewidget.py +357 -0
  1021. wx/lib/scrolledpanel.py +225 -0
  1022. wx/lib/sheet.py +350 -0
  1023. wx/lib/sized_controls.py +691 -0
  1024. wx/lib/softwareupdate.py +361 -0
  1025. wx/lib/splitter.py +925 -0
  1026. wx/lib/statbmp.py +199 -0
  1027. wx/lib/stattext.py +322 -0
  1028. wx/lib/throbber.py +425 -0
  1029. wx/lib/ticker.py +295 -0
  1030. wx/lib/ticker_xrc.py +48 -0
  1031. wx/lib/utils.py +89 -0
  1032. wx/lib/wordwrap.py +97 -0
  1033. wx/lib/wxcairo/__init__.py +124 -0
  1034. wx/lib/wxcairo/wx_cairocffi.py +200 -0
  1035. wx/lib/wxcairo/wx_pycairo.py +463 -0
  1036. wx/lib/wxpTag.py +274 -0
  1037. wx/locale/af/LC_MESSAGES/wxstd.mo +0 -0
  1038. wx/locale/an/LC_MESSAGES/wxstd.mo +0 -0
  1039. wx/locale/ar/LC_MESSAGES/wxstd.mo +0 -0
  1040. wx/locale/ca/LC_MESSAGES/wxstd.mo +0 -0
  1041. wx/locale/ca@valencia/LC_MESSAGES/wxstd.mo +0 -0
  1042. wx/locale/cs/LC_MESSAGES/wxstd.mo +0 -0
  1043. wx/locale/da/LC_MESSAGES/wxstd.mo +0 -0
  1044. wx/locale/de/LC_MESSAGES/wxstd.mo +0 -0
  1045. wx/locale/el/LC_MESSAGES/wxstd.mo +0 -0
  1046. wx/locale/es/LC_MESSAGES/wxstd.mo +0 -0
  1047. wx/locale/eu/LC_MESSAGES/wxstd.mo +0 -0
  1048. wx/locale/fa_IR/LC_MESSAGES/wxstd.mo +0 -0
  1049. wx/locale/fi/LC_MESSAGES/wxstd.mo +0 -0
  1050. wx/locale/fr/LC_MESSAGES/wxstd.mo +0 -0
  1051. wx/locale/gl_ES/LC_MESSAGES/wxstd.mo +0 -0
  1052. wx/locale/hi/LC_MESSAGES/wxstd.mo +0 -0
  1053. wx/locale/hr/LC_MESSAGES/wxstd.mo +0 -0
  1054. wx/locale/hu/LC_MESSAGES/wxstd.mo +0 -0
  1055. wx/locale/id/LC_MESSAGES/wxstd.mo +0 -0
  1056. wx/locale/it/LC_MESSAGES/wxstd.mo +0 -0
  1057. wx/locale/ja/LC_MESSAGES/wxstd.mo +0 -0
  1058. wx/locale/ka/LC_MESSAGES/wxstd.mo +0 -0
  1059. wx/locale/ko_KR/LC_MESSAGES/wxstd.mo +0 -0
  1060. wx/locale/lt/LC_MESSAGES/wxstd.mo +0 -0
  1061. wx/locale/lv/LC_MESSAGES/wxstd.mo +0 -0
  1062. wx/locale/ms/LC_MESSAGES/wxstd.mo +0 -0
  1063. wx/locale/nb/LC_MESSAGES/wxstd.mo +0 -0
  1064. wx/locale/ne/LC_MESSAGES/wxstd.mo +0 -0
  1065. wx/locale/nl/LC_MESSAGES/wxstd.mo +0 -0
  1066. wx/locale/pl/LC_MESSAGES/wxstd.mo +0 -0
  1067. wx/locale/pt/LC_MESSAGES/wxstd.mo +0 -0
  1068. wx/locale/pt_BR/LC_MESSAGES/wxstd.mo +0 -0
  1069. wx/locale/ro/LC_MESSAGES/wxstd.mo +0 -0
  1070. wx/locale/ru/LC_MESSAGES/wxstd.mo +0 -0
  1071. wx/locale/sk/LC_MESSAGES/wxstd.mo +0 -0
  1072. wx/locale/sl/LC_MESSAGES/wxstd.mo +0 -0
  1073. wx/locale/sq/LC_MESSAGES/wxstd.mo +0 -0
  1074. wx/locale/sv/LC_MESSAGES/wxstd.mo +0 -0
  1075. wx/locale/ta/LC_MESSAGES/wxstd.mo +0 -0
  1076. wx/locale/tr/LC_MESSAGES/wxstd.mo +0 -0
  1077. wx/locale/uk/LC_MESSAGES/wxstd.mo +0 -0
  1078. wx/locale/vi/LC_MESSAGES/wxstd.mo +0 -0
  1079. wx/locale/zh_CN/LC_MESSAGES/wxstd.mo +0 -0
  1080. wx/locale/zh_TW/LC_MESSAGES/wxstd.mo +0 -0
  1081. wx/media.py +27 -0
  1082. wx/media.pyi +223 -0
  1083. wx/msw.py +13 -0
  1084. wx/msw.pyi +65 -0
  1085. wx/propgrid.py +1451 -0
  1086. wx/propgrid.pyi +7914 -0
  1087. wx/py/CHANGES.txt +796 -0
  1088. wx/py/Py.ico +0 -0
  1089. wx/py/PyAlaCarte.py +34 -0
  1090. wx/py/PyAlaMode.py +34 -0
  1091. wx/py/PyAlaModeTest.py +33 -0
  1092. wx/py/PyCrust.ico +0 -0
  1093. wx/py/PyCrust.py +78 -0
  1094. wx/py/PyCrust_16.png +0 -0
  1095. wx/py/PyCrust_32.png +0 -0
  1096. wx/py/PyFilling.py +35 -0
  1097. wx/py/PyShell.py +78 -0
  1098. wx/py/PySlices.ico +0 -0
  1099. wx/py/PySlices.py +98 -0
  1100. wx/py/PySlicesShell.py +94 -0
  1101. wx/py/PySlices_16.png +0 -0
  1102. wx/py/PySlices_32.png +0 -0
  1103. wx/py/PyWrap.py +52 -0
  1104. wx/py/README.txt +77 -0
  1105. wx/py/__init__.py +20 -0
  1106. wx/py/buffer.py +136 -0
  1107. wx/py/crust.py +403 -0
  1108. wx/py/crustslices.py +403 -0
  1109. wx/py/dispatcher.py +259 -0
  1110. wx/py/document.py +37 -0
  1111. wx/py/editor.py +844 -0
  1112. wx/py/editwindow.py +299 -0
  1113. wx/py/filling.py +357 -0
  1114. wx/py/frame.py +978 -0
  1115. wx/py/images.py +212 -0
  1116. wx/py/interpreter.py +170 -0
  1117. wx/py/introspect.py +393 -0
  1118. wx/py/magic.py +98 -0
  1119. wx/py/parse.py +134 -0
  1120. wx/py/path.py +36 -0
  1121. wx/py/pseudo.py +99 -0
  1122. wx/py/shell.py +1588 -0
  1123. wx/py/sliceshell.py +3814 -0
  1124. wx/py/tests/test_interpreter.py +71 -0
  1125. wx/py/tests/test_introspect.py +862 -0
  1126. wx/py/tests/test_pseudo.py +70 -0
  1127. wx/py/tests/test_version.py +36 -0
  1128. wx/py/tests/testall.py +22 -0
  1129. wx/py/version.py +7 -0
  1130. wx/ribbon.py +45 -0
  1131. wx/ribbon.pyi +2494 -0
  1132. wx/richtext.py +142 -0
  1133. wx/richtext.pyi +12113 -0
  1134. wx/siplib.cp313-win_amd64.pyd +0 -0
  1135. wx/stc.py +58 -0
  1136. wx/stc.pyi +8463 -0
  1137. wx/svg/__init__.py +364 -0
  1138. wx/svg/_nanosvg.cp313-win_amd64.pyd +0 -0
  1139. wx/tools/__init__.py +18 -0
  1140. wx/tools/dbg.py +268 -0
  1141. wx/tools/genaxmodule.py +50 -0
  1142. wx/tools/helpviewer.py +92 -0
  1143. wx/tools/img2img.py +85 -0
  1144. wx/tools/img2png.py +54 -0
  1145. wx/tools/img2py.py +309 -0
  1146. wx/tools/img2xpm.py +54 -0
  1147. wx/tools/pywxrc.py +949 -0
  1148. wx/tools/wxget.py +254 -0
  1149. wx/tools/wxget_docs_demo.py +186 -0
  1150. wx/wxbase315u_net_vc140_x64.dll +0 -0
  1151. wx/wxbase315u_vc140_x64.dll +0 -0
  1152. wx/wxbase315u_xml_vc140_x64.dll +0 -0
  1153. wx/wxmsw315u_adv_vc140_x64.dll +0 -0
  1154. wx/wxmsw315u_aui_vc140_x64.dll +0 -0
  1155. wx/wxmsw315u_core_vc140_x64.dll +0 -0
  1156. wx/wxmsw315u_gl_vc140_x64.dll +0 -0
  1157. wx/wxmsw315u_html_vc140_x64.dll +0 -0
  1158. wx/wxmsw315u_media_vc140_x64.dll +0 -0
  1159. wx/wxmsw315u_propgrid_vc140_x64.dll +0 -0
  1160. wx/wxmsw315u_qa_vc140_x64.dll +0 -0
  1161. wx/wxmsw315u_ribbon_vc140_x64.dll +0 -0
  1162. wx/wxmsw315u_richtext_vc140_x64.dll +0 -0
  1163. wx/wxmsw315u_stc_vc140_x64.dll +0 -0
  1164. wx/wxmsw315u_webview_vc140_x64.dll +0 -0
  1165. wx/wxmsw315u_xrc_vc140_x64.dll +0 -0
  1166. wx/xml.py +15 -0
  1167. wx/xml.pyi +575 -0
  1168. wx/xrc.py +65 -0
  1169. wx/xrc.pyi +742 -0
  1170. wxPython_zombie-3.1.5.8.dist-info/LICENSE.txt +950 -0
  1171. wxPython_zombie-3.1.5.8.dist-info/METADATA +107 -0
  1172. wxPython_zombie-3.1.5.8.dist-info/RECORD +1175 -0
  1173. wxPython_zombie-3.1.5.8.dist-info/WHEEL +5 -0
  1174. wxPython_zombie-3.1.5.8.dist-info/entry_points.txt +2 -0
  1175. wxPython_zombie-3.1.5.8.dist-info/top_level.txt +1 -0
wx/demo/agw/AUI.py ADDED
@@ -0,0 +1,3058 @@
1
+ #!/usr/bin/env python
2
+ # (c) 2021 Zombie
3
+
4
+ import wx
5
+ import wx.html
6
+ import wx.grid
7
+
8
+ import os
9
+ import sys
10
+ import time
11
+
12
+ from wx.lib.embeddedimage import PyEmbeddedImage
13
+
14
+ try:
15
+ dirName = os.path.dirname(os.path.abspath(__file__))
16
+ except:
17
+ dirName = os.path.dirname(os.path.abspath(sys.argv[0]))
18
+
19
+ sys.path.append(os.path.split(dirName)[0])
20
+
21
+ try:
22
+ from agw import aui
23
+ from agw.aui import aui_switcherdialog as ASD
24
+ except ImportError: # if it's not there locally, try the wxPython lib.
25
+ import wx.lib.agw.aui as aui
26
+ from wx.lib.agw.aui import aui_switcherdialog as ASD
27
+
28
+ import random
29
+ import images
30
+
31
+ ArtIDs = [ "wx.ART_ADD_BOOKMARK",
32
+ "wx.ART_DEL_BOOKMARK",
33
+ "wx.ART_HELP_SIDE_PANEL",
34
+ "wx.ART_HELP_SETTINGS",
35
+ "wx.ART_HELP_BOOK",
36
+ "wx.ART_HELP_FOLDER",
37
+ "wx.ART_HELP_PAGE",
38
+ "wx.ART_GO_BACK",
39
+ "wx.ART_GO_FORWARD",
40
+ "wx.ART_GO_UP",
41
+ "wx.ART_GO_DOWN",
42
+ "wx.ART_GO_TO_PARENT",
43
+ "wx.ART_GO_HOME",
44
+ "wx.ART_FILE_OPEN",
45
+ "wx.ART_PRINT",
46
+ "wx.ART_HELP",
47
+ "wx.ART_TIP",
48
+ "wx.ART_REPORT_VIEW",
49
+ "wx.ART_LIST_VIEW",
50
+ "wx.ART_NEW_DIR",
51
+ "wx.ART_HARDDISK",
52
+ "wx.ART_FLOPPY",
53
+ "wx.ART_CDROM",
54
+ "wx.ART_REMOVABLE",
55
+ "wx.ART_FOLDER",
56
+ "wx.ART_FOLDER_OPEN",
57
+ "wx.ART_GO_DIR_UP",
58
+ "wx.ART_EXECUTABLE_FILE",
59
+ "wx.ART_NORMAL_FILE",
60
+ "wx.ART_TICK_MARK",
61
+ "wx.ART_CROSS_MARK",
62
+ "wx.ART_ERROR",
63
+ "wx.ART_QUESTION",
64
+ "wx.ART_WARNING",
65
+ "wx.ART_INFORMATION",
66
+ "wx.ART_MISSING_IMAGE",
67
+ ]
68
+
69
+ # Custom pane button bitmaps
70
+ #----------------------------------------------------------------------
71
+ close = PyEmbeddedImage(
72
+ b"iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAYAAABy6+R8AAAABHNCSVQICAgIfAhkiAAAAh9J"
73
+ b"REFUKJFl0s1LFGEAx/HvMzO7M9vmrrSuThJIhslmaSZqFgZLdSqKjr147VB/Qn9Af0GXTiIU"
74
+ b"vVAQdRAKqkuColaiiyiKr7FKL7u6OzM78zxPh6igfvcvv8tHCMMEoHAxr/35AlpK/p0wTZz2"
75
+ b"HLlXbwWABTBzrk83DnSRvjWE4Tj/Rcr3KU1/Zsav6GNvxoU1cSGvmwZ7SZ3Oo5MpIiuGrvl/"
76
+ b"X+IOIgpJndmPNONM2Elt7KyuU9/djySCbBNGo4ssriA3FlHfNjAaXchkiSKf+u5+ykvLGHLP"
77
+ b"XlQiSS0SqLoMosHF6DwJdfWIXC+iwUWls4TaQtkJQtPC8gIPo1pldvQlanGNnqs3iLktyOwB"
78
+ b"TNMk9AMmnzzEmHjHiVOD7AQBVjUI0JUdDqaTzLwfZS6VovPSFUytQUrmXjynfO8uR9MWyrEJ"
79
+ b"/QCrFkrU9leM5QVysoa044jSD9AAmoxjk6GKtbqNaukglAojCHyi8Q8Ec7PsO3sZt/UQ3uYG"
80
+ b"3+cLeF82cdsOk719hyjlIis+Na0wlJRExSJe23EitwW5VWRqZJjHQ9eYGhlGbhWJmlvxOvqp"
81
+ b"lXeRSmM57TnWSx4/ltZZsR5hOAlKz57St1tmbWSYscou0vNIfJwlyGRIHOlACMPkwUCPzsmQ"
82
+ b"aswi8Hza/ICYgFDDgmMTd2ySkaRgxrg+NinEb3v3z+f15qdpQt/DQvwREaGJOQmau7q5+fqX"
83
+ b"vZ+3DPNuDe9/tAAAAABJRU5ErkJggg==")
84
+
85
+ #----------------------------------------------------------------------
86
+ close_inactive = PyEmbeddedImage(
87
+ b"iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAYAAABy6+R8AAAABHNCSVQICAgIfAhkiAAAAh5J"
88
+ b"REFUKJFl0stLVFEAgPHv3Htn7lzNGW1GZzSNtJI0fFZjQkQPqV0U0SJmnZugP6B9/0O4cZNE"
89
+ b"ZFAQUdBrlZBYoJmGOYSPSUvRRp25r3NOi8iN3/7b/YQwTAAuDn7VM3kXqdiTaUBbS4w3Q+0C"
90
+ b"QAjDpD83qfuPNdDZEicWMfZMbqCYzBcZmy0wNtIprIFb4/pUa4bzfXHiVRAxFWVP7w6OLQgk"
91
+ b"NDTFsWOKyopxbSyubpPtShB6mroaQTolWFiQzM9LCsuadEpQWw1uSZHtSpBfKmLscySVFRpM"
92
+ b"j+R+SaZWcLrXoDoBJ7shUydIJRVW1MeJaSwzxHLLJUqu4PnLaZYKity1Hg42RjhQb2CaAs/z"
93
+ b"efjsM+/GDM6e6cErF7Hc8g5bO5rKqmZevJ8iXjXL1csdaC2QoeDpq1nu3S8SiXZgJxWe72NJ"
94
+ b"6bO+rZhbNvDDdqKOZHMHtBYARJ0UrkyysGRyfEuhVIDhej4fpkO+5H2uXKqm5VCawi+fbz82"
95
+ b"+fnb4+jhNHdvp8jUh7ihRMkAQ0rF6oaku73EwfqQlbWQ4dEJbt55xPDoBCtrIc2NIX3dZbbd"
96
+ b"AK0k4lzugS5HT7C+vkG2tYxjmzx++4eiaiJuLHLjQoKSKxmfc0gma3D8iX8istdHtG+3YVHC"
97
+ b"dX28yBEQEdABdvAd244iRQVRb4aPT3JC/Lc3kBvSn6YKlL0AYVi7IrQKcewIvR0NvB4ZFAB/"
98
+ b"Aa4X7YpTOtu/AAAAAElFTkSuQmCC")
99
+
100
+ #----------------------------------------------------------------------
101
+ maximize = PyEmbeddedImage(
102
+ b"iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAYAAABy6+R8AAAABHNCSVQICAgIfAhkiAAAAJZJ"
103
+ b"REFUKJG9kj0OwjAMRp8D6hDUExDmrr0dEkOHXgXuAMfIBl1yCwaMMAyoIJQWqUu/yZa/5x/J"
104
+ b"Im7BVLnJBLDsg2vbPC3G8e51zapp5QeyGLHzBYbWtcfwJFlv8Nsdrqpypuu4HfY5hHPgPVKW"
105
+ b"+STv3/XeOnrEH80HfW9SxVIaNFlKoJpDEgL30xGKIqdUkRA+qcz2Ri8+yyNzplbFQwAAAABJ"
106
+ b"RU5ErkJggg==")
107
+
108
+ #----------------------------------------------------------------------
109
+ maximize_inactive = PyEmbeddedImage(
110
+ b"iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAYAAABy6+R8AAAABHNCSVQICAgIfAhkiAAAAJhJ"
111
+ b"REFUKJFjZGRiZiAVMJGsg4GBgQXGaGz7+v/CxX84FRroMzHUV3Ezomi6cPEfw/Vb/xiYsbj2"
112
+ b"718cNsnKMDJUlnAwqKthuvjmrX8MS1b8xtTEyMTAwMXFyMDLw4ihiYuLkYERySyyAoJ+muB+"
113
+ b"+v2bgeHeA+xBfu/BP4bfiHBAaJKWYmTYsfsPAysrpqbfvyHyMMBIt2QEAFPtI359ud6yAAAA"
114
+ b"AElFTkSuQmCC")
115
+
116
+ #----------------------------------------------------------------------
117
+ minimize = PyEmbeddedImage(
118
+ b"iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAYAAABy6+R8AAAABHNCSVQICAgIfAhkiAAAAMlJ"
119
+ b"REFUKJGdkrsNwkAQRN/eWohPByYkQaIKSqAJhBAF0AdExGRUQwoioAREAth3S2BjWzLIwER7"
120
+ b"oxntzOpEnPIrotcQ1lvjeIbbHXjkpAczkAf0OjAc4GZTQZwiTrHNzhoxX5g4xRU7U9+c654A"
121
+ b"VEzY150qpuQLedY1qvFJCqrgX3ENQp5C7IMp9eAEQsjEIWQXVC3UpckSWK5gfwCRnKv0nIwL"
122
+ b"vrLJQDzomytGEXRb5bOYLhfotyEeASk1xfUEcT+r9s83cs2SOp6D2FytkDyOCgAAAABJRU5E"
123
+ b"rkJggg==")
124
+
125
+ #----------------------------------------------------------------------
126
+ minimize_inactive = PyEmbeddedImage(
127
+ b"iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAYAAABy6+R8AAAABHNCSVQICAgIfAhkiAAAANRJ"
128
+ b"REFUKJGdkj1OgkEQhp/ZJSCF0VBYmUBPixfwAtzRS2DvCShMvAGRUJCQkMjOjwV8CwT1C77V"
129
+ b"zGaevO9MViRlrlWnKd7el7HaKGpgpQDg7ng4rkY3Bw/3PZ4nI6lQzpnp0+BPh5fXDwBS8+DR"
130
+ b"HquonUNEOxWHmaOTWSvk6sDJIRqZO0kEO8nrAUmEiN8gC8iCHyBvYqdU01RIizKbr1msy4/R"
131
+ b"xo/9uvbRKYIIJewSSgIderWv0PZrRzcrw9tAVeulwvd7fC62DO5uAJD/fKPUPnKpbzVEY0DN"
132
+ b"U2N1AAAAAElFTkSuQmCC")
133
+
134
+ #----------------------------------------------------------------------
135
+ restore = PyEmbeddedImage(
136
+ b"iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAYAAABy6+R8AAAABHNCSVQICAgIfAhkiAAAAUlJ"
137
+ b"REFUKJGd0j9LW1EYBvDfvUkM1iaGkohaKJRQv0XJ5FCKg1PnoogUHCwOjnVTx67d2n6Cgq2O"
138
+ b"7oXupdKhUIOQqMRSE733djiXNkoXPcvhvO/z530fThTFBTc9RUjfvM2020zeC5VS3i3kiBg/"
139
+ b"ulQa4oXnUREcd9nZ5fAnvQ5nHaKEYkY14w4eNHm6+M9JfTwQHs5w2WdjHSkRBj2W5uge8Ghi"
140
+ b"iBQl/O6RXDA9gUvWXnJ8xIdPYdQIpXiIVMJpm433tB4H0OcvLMwHxyzoSIeCUEB5QJywvUm/"
141
+ b"T6vFk2dUavxC5Vp6RlDLya+3ODnBK4p3ebfC4D+RK2AM/TP29slSqjVerPJxJ/RG/6LzK00p"
142
+ b"Y2UuqF7gHD2Mo5ELX3H62uZ+k85BWDbJF6/nIZUx1eR7d4hUnWR2mZn61eHztEQp344oN8Lz"
143
+ b"Nn/vD5FAXWAC04u0AAAAAElFTkSuQmCC")
144
+
145
+ #----------------------------------------------------------------------
146
+ restore_inactive = PyEmbeddedImage(
147
+ b"iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAYAAABy6+R8AAAABHNCSVQICAgIfAhkiAAAAYxJ"
148
+ b"REFUKJGdkr2PTGEUh5/z3ntndmYXIyODiI8oVyGRLTUitpToNCRCJdv7B2gkOrV6Q4hWp6JV"
149
+ b"jXILhWKHeMfcmXvfj3MUk7jbcqrTPPk9J+cn4gr+dUqAz9OFzWth0CtJCiEaWUHNiMnIahQ0"
150
+ b"TEYF16+OpARYto6v35SZj/gaZnNj2UIblZlX6lXg8thzf/dYl7RRFfyYK2fHjskI9m6XZIWs"
151
+ b"4Gtj72VkerAk5SEADiBEWKwEVeHEphASvPoQefq65fRJAdaqmHVQG43vP5XdawX3blZcueh4"
152
+ b"/qjPqeMQsxEUytKoSu30YjZmXlkFeP8p0URj+0LBrZ2KrYGjpiBlR1bpoDYYhz6Ts7H/MTJv"
153
+ b"4O4NWIhj/03AZ0hBCNl1UMjCrxr80nj2oI8qbA2FJ28j774oMQnWGqpH/qQ5s2paHr6IbPSg"
154
+ b"KoTWCYfZcMGhvqHQjGAd5Ehsn/FMD35Ti6NXClnWOiFCkRI7lxKD/pGbzk96PL4zJoUhhvyt"
155
+ b"S7L1bmpUpXBusgmA/E/3/gASuMtl4Uj5YAAAAABJRU5ErkJggg==")
156
+
157
+ #----------------------------------------------------------------------
158
+
159
+ fullscreen = PyEmbeddedImage(
160
+ b"iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAActJ"
161
+ b"REFUOI2dk09I02EYx7/v+/7+DDRRYg4EWWYUKAjDSxBhJKuEUUJslwi8BXoaEaIdhpchddgt"
162
+ b"CKIgCIbeYmXaTHboEigZ5GENdCCKfyZKTrf5+72Pp7nf9Lcf4gPP5fl+3i9feJ8HcKrghPD4"
163
+ b"X9c5IdxJvHq4PFKvy3dOjKgltN4f71QU/lGo4kZD250/u5nZtB3H7IY9PRElW6f/ApgPAIiw"
164
+ b"YZpax+rM8x2nNBeqSoLghMBkyIzFYptSSrcdzDnfCofDzd3db9X5+WdHAKAAQEt/9LKaz3zI"
165
+ b"Ag+llG7f7UeQks4YLP787AaAnGdn2PsgupD9NvpVaeuLXmeGMkcwm8rg2tYe4tOLVY+D/i5L"
166
+ b"EtYoQQlvIDqoEKgfoGbGmVEGHt/tQOBWe5WBrut4k05VTAQHA4b4ytTLVyAMSML/smgYBorF"
167
+ b"YlUbxok/TEkmZ/zHfkHc5ACw/GX4E0B+q4GmaVVtNYBEPOPL39v4/iJ/Zg/O8wvWme0iIRLh"
168
+ b"3t9osI6u7GI/lRozTqP2t7DUyVjJlWQlV46VXDl+5FpIX4Jmm8rWYDJkEmNPhSoKqqYUJKcn"
169
+ b"64mxAzu05jHt/UtuN17rJSL6u5IYeV+LOwbQBrHjq9vsKwAAAABJRU5ErkJggg==")
170
+
171
+ #----------------------------------------------------------------------
172
+ reload = PyEmbeddedImage(
173
+ b"iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAApFJ"
174
+ b"REFUOI11k72LXFUUwH/n3vvmvbzZnZnNl7sWI0mIISaIIKYJ2AmbznQWKezSiOm0NaXpAjZu"
175
+ b"kQTMHyBC0JBOCwmyWBrXHaMmuopLdt7Ox3vz3r33WMyyCJscOBwOnPPjfAovEFWEr2kBcIla"
176
+ b"BH1enBxI/Golb7ZGb/kZb6vXkyCI4VeX8G3iFn+Qq1vTFwL0886pcqofNSXvgh41qEGEqBJR"
177
+ b"tl3Gl2ZBbhy6ujs4ACjXuidiET7zDauuhRFnidky0gwxfkz0gq+JJuEbl9kPDn1YPAYwAHqT"
178
+ b"VEfhmq9ZdS4aJBIWThNeuUQ4fpEgbbAGk3dMbMxqqMI1vUkK4AAa8vN+ppdj96ypj59DJv+g"
179
+ b"+TJiFtDuq2iIUO1A1sM8/c7Epr48Nd0voFifAxpzAQ0rdPuEi5/M+6rHaLkDf3yPWzqLOAfT"
180
+ b"f8G20KZeCT5cANaNKoJKX4RExluIr5B8CXp9aCrsbHvuJ2201SGaNiKaaJS+KmJE0KjRIwZm"
181
+ b"BZTP5gvXiHRWiJ3+vFObQdqD7AiIQIxeBHUAorqh1lWiIWP3TyiHkPXgpdfg5Dv4jXvY0S9g"
182
+ b"LGoyRGyFbzb2hxiCfWgdA2M5J5v3sVRodpQg78GRU5B2MX89BT9Bmm1i1MFM7cP9NXZmo83Q"
183
+ b"hNvEokzKAdZaEuNxjx8gj+6RDB9h8iWME/DDMlbh9jFGm/sAuU7UkbsVxuM1KX+fGgokzUlS"
184
+ b"S1o9wbUMRgvYHUxDsbsmtbsl14kHTvnZx0td0vqKW2y/b7vLZ6R9LAfQyfY0DLd+nhWTO9a3"
185
+ b"7h7+dKd43i8I0Hp5kYUrr7vTbyzzZq8tJwB2xvrbj09Yv/uT3/x7zBiYwcEKBEiBfM/aPQUI"
186
+ b"ewk1MPk/4D/OAyg6YvZkywAAAABJRU5ErkJggg==")
187
+
188
+ #----------------------------------------------------------------------
189
+ remove = PyEmbeddedImage(
190
+ b"iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAApVJ"
191
+ b"REFUOI2lkUtIVHEUxr//vf9778x4J8d8DDaODjo+mBzLKFJJJbVWFdmiVaEtehBYi2hVENXK"
192
+ b"XS0iC6JNFkbkInwVQeoiiLAHtlAhW6TjTPnA9DreO/d/WjjOIkiDDnxwFuc7fOd3gP8s+bmD"
193
+ b"118+UPGmiagsNL88UJqb62gLhTrP1tVdmY5G334zjOiGG574XF00/IjmHt6lO+mujvvb/J1L"
194
+ b"3d1k9vRQk9fbsWkCX9ya/DIxUdVQ2+gt9Obt3lG1N6ykp+NGe/vnl5OT15aEiGx6x03g4GBl"
195
+ b"IEGX2ojaLlBXeflKXWbm/n9i8BTILivgV4vkuXC0/x0W3n9C3tYMnsjOXpmyrMEfhmFutIC7"
196
+ b"s3C9Jpw4vjAO3Ha6zS2Ki11cNZXz+fnnXkUiMbuy8l6OrreYpikxxgVRQmKMyaqa9mJo6PUH"
197
+ b"PhTc6Q9gDvM1u1BxuFVxKRK+9/UhOjaOiCzL24uLHzcfOlLvcGoAGDRNgSxz9PcPnIrHf9Xy"
198
+ b"r6FqHm85gXBFCNUeDwMAo7EB77uewdHxIBLI85c3HzsKp9MJxhgYYwCAmZmZwOjoWBp3EbJz"
199
+ b"SoPQPR5YpglbCLhcaQgEg/Do6XsWF1elkZGPUFUVkiRB0zTouo7p6Rh03bOPBwKBUIbbDQAg"
200
+ b"AIwxmKYJb1YWTp9pPckkSYrFfoKIUgKAkpIgDMO6xX0+n+R0OSGESJG1LAv5BX4UBQulRCIB"
201
+ b"y7Jg2zaEsGHbAkQCmqZifn7JwYlk+vM1jDEIIWAYBoQQSbNIiYggxCqEYDZXFDVlWge03v9N"
202
+ b"azMEzjm4qqp83STLUvJGAmMEYM1AxFLpkgggSYCiaDKPRhenenuHddNM0BokgMhODq+DQyo6"
203
+ b"QLBtgiwzNju7svwbnlAlxKIQCyQAAAAASUVORK5CYII=")
204
+
205
+ #----------------------------------------------------------------------
206
+ sort = PyEmbeddedImage(
207
+ b"iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAMdJ"
208
+ b"REFUOI2VklEOgyAMhv+iR1jmdfQWHt1dQXA+dI9K97BpaIFE/4SQAv36UwC5BukAROxaOl7T"
209
+ b"pPYdbmpZVxUrgMRNyLUkcZMqIIQ64IpCWMqAo6qdrbyfVdymAbmWLDAH+LKDq6oC0uql+FDw"
210
+ b"uonnFWLcM8vONRkkLBWATSgBAeBt/gH9fp9WjLvY6t3zIZIiCZjnQFkTS8kA0PcDmBn8YTAz"
211
+ b"hn7IHdSSD0lyLfqfOx3Y5FIPxnFUs3Jw9RUk7kLJerGJd/QF7eJxBTVIT38AAAAASUVORK5C"
212
+ b"YII=")
213
+
214
+ #----------------------------------------------------------------------
215
+ superscript = PyEmbeddedImage(
216
+ b"iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAYFJ"
217
+ b"REFUOI3VkTtPAlEQhUfW4INCxMpigcTEVhMbCxO2NDZgg6UUJpSIzZZS+AO201gYaa1MbEy2"
218
+ b"EAosbCQxxFdUsKLjIffOndl1sTBYiEFjYzzVmWTmy8wZgH+voZ82ru0+RfWpkeOJUV/04lpY"
219
+ b"J+ZMDgDA91NAwD9s3T9Q4vyqZS3Mjm//Ytl3pfZr5Y2D52qvHu4Z0zQLrusCEQEzAxGllFKH"
220
+ b"iAiICLZtGzGzkhPoQvUWE725jxMcx7GYeV4pFSOicj6fr0opC1LKKjOnlrYqCZ8G0bvHtsHk"
221
+ b"BOfWL6MAn0JMp9OGUuqMmaHT6WSVUgnbtg0AgJWdm4I+PRZzX7vwIl9bR5szwT4AAEAymbQc"
222
+ b"x8kIIYCIJovFYnNQJn1fIKKcEAI8z4N2u537LtQ+gJTyWAiRRUTodruZSCRiDAJoPROPx4O6"
223
+ b"ru8hYqFUKlmBQGDS7/cvNpvNVU3TTomoPhAQDodPETEopVShUKgupUw1Go0aM9eZeRkAyp7n"
224
+ b"fQn5W70BAIHMJSEYEtgAAAAASUVORK5CYII=")
225
+ #----------------------------------------------------------------------
226
+
227
+ # Custom pane bitmaps reference
228
+ # bitmap button id active maximize
229
+ CUSTOM_PANE_BITMAPS = [(close, aui.AUI_BUTTON_CLOSE, True, False),
230
+ (close_inactive, aui.AUI_BUTTON_CLOSE, False, False),
231
+ (minimize, aui.AUI_BUTTON_MINIMIZE, True, False),
232
+ (minimize_inactive, aui.AUI_BUTTON_MINIMIZE, False, False),
233
+ (maximize, aui.AUI_BUTTON_MAXIMIZE_RESTORE, True, True),
234
+ (maximize_inactive, aui.AUI_BUTTON_MAXIMIZE_RESTORE, False, True),
235
+ (restore, aui.AUI_BUTTON_MAXIMIZE_RESTORE, True, False),
236
+ (restore_inactive, aui.AUI_BUTTON_MAXIMIZE_RESTORE, False, False)]
237
+
238
+ #----------------------------------------------------------------------
239
+ # Custom buttons in tab area
240
+ #
241
+ CUSTOM_TAB_BUTTONS = {"Left": [(sort, aui.AUI_BUTTON_CUSTOM1),
242
+ (superscript, aui.AUI_BUTTON_CUSTOM2)],
243
+ "Right": [(fullscreen, aui.AUI_BUTTON_CUSTOM3),
244
+ (remove, aui.AUI_BUTTON_CUSTOM4),
245
+ (reload, aui.AUI_BUTTON_CUSTOM5)]
246
+ }
247
+
248
+ #----------------------------------------------------------------------
249
+
250
+ # Define a translation function
251
+ _ = wx.GetTranslation
252
+
253
+
254
+ ID_CreateTree = wx.ID_HIGHEST + 1
255
+ ID_CreateGrid = ID_CreateTree + 1
256
+ ID_CreateText = ID_CreateTree + 2
257
+ ID_CreateHTML = ID_CreateTree + 3
258
+ ID_CreateNotebook = ID_CreateTree + 4
259
+ ID_CreateSizeReport = ID_CreateTree + 5
260
+ ID_GridContent = ID_CreateTree + 6
261
+ ID_TextContent = ID_CreateTree + 7
262
+ ID_TreeContent = ID_CreateTree + 8
263
+ ID_HTMLContent = ID_CreateTree + 9
264
+ ID_NotebookContent = ID_CreateTree + 10
265
+ ID_SizeReportContent = ID_CreateTree + 11
266
+ ID_SwitchPane = ID_CreateTree + 12
267
+ ID_CreatePerspective = ID_CreateTree + 13
268
+ ID_CopyPerspectiveCode = ID_CreateTree + 14
269
+ ID_CreateNBPerspective = ID_CreateTree + 15
270
+ ID_CopyNBPerspectiveCode = ID_CreateTree + 16
271
+ ID_AllowFloating = ID_CreateTree + 17
272
+ ID_AllowActivePane = ID_CreateTree + 18
273
+ ID_TransparentHint = ID_CreateTree + 19
274
+ ID_VenetianBlindsHint = ID_CreateTree + 20
275
+ ID_RectangleHint = ID_CreateTree + 21
276
+ ID_NoHint = ID_CreateTree + 22
277
+ ID_HintFade = ID_CreateTree + 23
278
+ ID_NoVenetianFade = ID_CreateTree + 24
279
+ ID_TransparentDrag = ID_CreateTree + 25
280
+ ID_NoGradient = ID_CreateTree + 26
281
+ ID_VerticalGradient = ID_CreateTree + 27
282
+ ID_HorizontalGradient = ID_CreateTree + 28
283
+ ID_LiveUpdate = ID_CreateTree + 29
284
+ ID_AnimateFrames = ID_CreateTree + 30
285
+ ID_PaneIcons = ID_CreateTree + 31
286
+ ID_TransparentPane = ID_CreateTree + 32
287
+ ID_DefaultDockArt = ID_CreateTree + 33
288
+ ID_ModernDockArt = ID_CreateTree + 34
289
+ ID_SnapToScreen = ID_CreateTree + 35
290
+ ID_SnapPanes = ID_CreateTree + 36
291
+ ID_FlyOut = ID_CreateTree + 37
292
+ ID_CustomPaneButtons = ID_CreateTree + 38
293
+ ID_Settings = ID_CreateTree + 39
294
+ ID_CustomizeToolbar = ID_CreateTree + 40
295
+ ID_DropDownToolbarItem = ID_CreateTree + 41
296
+ ID_MinimizePosSmart = ID_CreateTree + 42
297
+ ID_MinimizePosTop = ID_CreateTree + 43
298
+ ID_MinimizePosLeft = ID_CreateTree + 44
299
+ ID_MinimizePosRight = ID_CreateTree + 45
300
+ ID_MinimizePosBottom = ID_CreateTree + 46
301
+ ID_MinimizeCaptSmart = ID_CreateTree + 47
302
+ ID_MinimizeCaptHorz = ID_CreateTree + 48
303
+ ID_MinimizeCaptHide = ID_CreateTree + 49
304
+ ID_NotebookNoCloseButton = ID_CreateTree + 50
305
+ ID_NotebookCloseButton = ID_CreateTree + 51
306
+ ID_NotebookCloseButtonAll = ID_CreateTree + 52
307
+ ID_NotebookCloseButtonActive = ID_CreateTree + 53
308
+ ID_NotebookCloseOnLeft = ID_CreateTree + 54
309
+ ID_NotebookAllowTabMove = ID_CreateTree + 55
310
+ ID_NotebookAllowTabExternalMove = ID_CreateTree + 56
311
+ ID_NotebookAllowTabSplit = ID_CreateTree + 57
312
+ ID_NotebookTabFloat = ID_CreateTree + 58
313
+ ID_NotebookTabDrawDnd = ID_CreateTree + 59
314
+ ID_NotebookDclickUnsplit = ID_CreateTree + 60
315
+ ID_NotebookWindowList = ID_CreateTree + 61
316
+ ID_NotebookScrollButtons = ID_CreateTree + 62
317
+ ID_NotebookTabFixedWidth = ID_CreateTree + 63
318
+ ID_NotebookArtGloss = ID_CreateTree + 64
319
+ ID_NotebookArtSimple = ID_CreateTree + 65
320
+ ID_NotebookArtVC71 = ID_CreateTree + 66
321
+ ID_NotebookArtFF2 = ID_CreateTree + 67
322
+ ID_NotebookArtVC8 = ID_CreateTree + 68
323
+ ID_NotebookArtChrome = ID_CreateTree + 69
324
+ ID_NotebookAlignTop = ID_CreateTree + 70
325
+ ID_NotebookAlignBottom = ID_CreateTree + 71
326
+ ID_NotebookHideSingle = ID_CreateTree + 72
327
+ ID_NotebookSmartTab = ID_CreateTree + 73
328
+ ID_NotebookUseImagesDropDown = ID_CreateTree + 74
329
+ ID_NotebookCustomButtons = ID_CreateTree + 75
330
+ ID_NotebookMinMaxWidth = ID_CreateTree + 76
331
+
332
+ ID_SampleItem = ID_CreateTree + 77
333
+ ID_StandardGuides = ID_CreateTree + 78
334
+ ID_AeroGuides = ID_CreateTree + 79
335
+ ID_WhidbeyGuides = ID_CreateTree + 80
336
+ ID_NotebookPreview = ID_CreateTree + 81
337
+ ID_PreviewMinimized = ID_CreateTree + 82
338
+
339
+ ID_SmoothDocking = ID_CreateTree + 83
340
+ ID_NativeMiniframes = ID_CreateTree + 84
341
+
342
+ ID_FirstPerspective = ID_CreatePerspective + 1000
343
+ ID_FirstNBPerspective = ID_CreateNBPerspective + 10000
344
+
345
+ ID_PaneBorderSize = ID_SampleItem + 100
346
+ ID_SashSize = ID_PaneBorderSize + 2
347
+ ID_CaptionSize = ID_PaneBorderSize + 3
348
+ ID_BackgroundColour = ID_PaneBorderSize + 4
349
+ ID_SashColour = ID_PaneBorderSize + 5
350
+ ID_InactiveCaptionColour = ID_PaneBorderSize + 6
351
+ ID_InactiveCaptionGradientColour = ID_PaneBorderSize + 7
352
+ ID_InactiveCaptionTextColour = ID_PaneBorderSize + 8
353
+ ID_ActiveCaptionColour = ID_PaneBorderSize + 9
354
+ ID_ActiveCaptionGradientColour = ID_PaneBorderSize + 10
355
+ ID_ActiveCaptionTextColour = ID_PaneBorderSize + 11
356
+ ID_BorderColour = ID_PaneBorderSize + 12
357
+ ID_GripperColour = ID_PaneBorderSize + 13
358
+ ID_SashGrip = ID_PaneBorderSize + 14
359
+ ID_HintColour = ID_PaneBorderSize + 15
360
+
361
+ ID_VetoTree = ID_PaneBorderSize + 16
362
+ ID_VetoText = ID_PaneBorderSize + 17
363
+ ID_NotebookMultiLine = ID_PaneBorderSize + 18
364
+
365
+ # -- SizeReportCtrl --
366
+ # (a utility control that always reports it's client size)
367
+
368
+ class SizeReportCtrl(wx.Control):
369
+
370
+ def __init__(self, parent, id=wx.ID_ANY, pos=wx.DefaultPosition,
371
+ size=wx.DefaultSize, mgr=None):
372
+
373
+ wx.Control.__init__(self, parent, id, pos, size, style=wx.NO_BORDER)
374
+ self._mgr = mgr
375
+
376
+ self.Bind(wx.EVT_PAINT, self.OnPaint)
377
+ self.Bind(wx.EVT_ERASE_BACKGROUND, self.OnEraseBackground)
378
+ self.Bind(wx.EVT_SIZE, self.OnSize)
379
+
380
+
381
+ def OnPaint(self, event):
382
+
383
+ dc = wx.PaintDC(self)
384
+ size = self.GetClientSize()
385
+
386
+ s = "Size: %d x %d"%(size.x, size.y)
387
+
388
+ dc.SetFont(wx.NORMAL_FONT)
389
+ w, height = dc.GetTextExtent(s)
390
+ height += 3
391
+ dc.SetBrush(wx.WHITE_BRUSH)
392
+ dc.SetPen(wx.WHITE_PEN)
393
+ dc.DrawRectangle(0, 0, size.x, size.y)
394
+ dc.SetPen(wx.LIGHT_GREY_PEN)
395
+ dc.DrawLine(0, 0, size.x, size.y)
396
+ dc.DrawLine(0, size.y, size.x, 0)
397
+ dc.DrawText(s, (size.x-w)/2, (size.y-height*5)/2)
398
+
399
+ if self._mgr:
400
+
401
+ pi = self._mgr.GetPane(self)
402
+
403
+ s = "Layer: %d"%pi.dock_layer
404
+ w, h = dc.GetTextExtent(s)
405
+ dc.DrawText(s, (size.x-w)/2, ((size.y-(height*5))/2)+(height*1))
406
+
407
+ s = "Dock: %d Row: %d"%(pi.dock_direction, pi.dock_row)
408
+ w, h = dc.GetTextExtent(s)
409
+ dc.DrawText(s, (size.x-w)/2, ((size.y-(height*5))/2)+(height*2))
410
+
411
+ s = "Position: %d"%pi.dock_pos
412
+ w, h = dc.GetTextExtent(s)
413
+ dc.DrawText(s, (size.x-w)/2, ((size.y-(height*5))/2)+(height*3))
414
+
415
+ s = "Proportion: %d"%pi.dock_proportion
416
+ w, h = dc.GetTextExtent(s)
417
+ dc.DrawText(s, (size.x-w)/2, ((size.y-(height*5))/2)+(height*4))
418
+
419
+
420
+ def OnEraseBackground(self, event):
421
+
422
+ pass
423
+
424
+
425
+ def OnSize(self, event):
426
+
427
+ self.Refresh()
428
+
429
+
430
+ class SettingsPanel(wx.Panel):
431
+
432
+ def __init__(self, parent, frame):
433
+
434
+ wx.Panel.__init__(self, parent)
435
+ self._frame = frame
436
+
437
+ s1 = wx.BoxSizer(wx.HORIZONTAL)
438
+ self._border_size = wx.SpinCtrl(self, ID_PaneBorderSize, "%d"%frame.GetDockArt().GetMetric(aui.AUI_DOCKART_PANE_BORDER_SIZE),
439
+ wx.DefaultPosition, wx.Size(50, 20), wx.SP_ARROW_KEYS, 0, 100,
440
+ frame.GetDockArt().GetMetric(aui.AUI_DOCKART_PANE_BORDER_SIZE))
441
+ s1.Add((1, 1), 1, wx.EXPAND)
442
+ s1.Add(wx.StaticText(self, -1, "Pane Border Size:"))
443
+ s1.Add(self._border_size)
444
+ s1.Add((1, 1), 1, wx.EXPAND)
445
+ s1.SetItemMinSize(1, (180, 20))
446
+
447
+ s2 = wx.BoxSizer(wx.HORIZONTAL)
448
+ self._sash_size = wx.SpinCtrl(self, ID_SashSize, "%d"%frame.GetDockArt().GetMetric(aui.AUI_DOCKART_SASH_SIZE), wx.DefaultPosition,
449
+ wx.Size(50, 20), wx.SP_ARROW_KEYS, 0, 100, frame.GetDockArt().GetMetric(aui.AUI_DOCKART_SASH_SIZE))
450
+ s2.Add((1, 1), 1, wx.EXPAND)
451
+ s2.Add(wx.StaticText(self, -1, "Sash Size:"))
452
+ s2.Add(self._sash_size)
453
+ s2.Add((1, 1), 1, wx.EXPAND)
454
+ s2.SetItemMinSize(1, (180, 20))
455
+
456
+ s3 = wx.BoxSizer(wx.HORIZONTAL)
457
+ self._caption_size = wx.SpinCtrl(self, ID_CaptionSize, "%d"%frame.GetDockArt().GetMetric(aui.AUI_DOCKART_CAPTION_SIZE),
458
+ wx.DefaultPosition, wx.Size(50, 20), wx.SP_ARROW_KEYS, 0, 100, frame.GetDockArt().GetMetric(aui.AUI_DOCKART_CAPTION_SIZE))
459
+ s3.Add((1, 1), 1, wx.EXPAND)
460
+ s3.Add(wx.StaticText(self, -1, "Caption Size:"))
461
+ s3.Add(self._caption_size)
462
+ s3.Add((1, 1), 1, wx.EXPAND)
463
+ s3.SetItemMinSize(1, (180, 20))
464
+
465
+ b = self.CreateColourBitmap(wx.BLACK)
466
+
467
+ s4 = wx.BoxSizer(wx.HORIZONTAL)
468
+ self._background_colour = wx.BitmapButton(self, ID_BackgroundColour, b, wx.DefaultPosition, wx.Size(50, 25))
469
+ s4.Add((1, 1), 1, wx.EXPAND)
470
+ s4.Add(wx.StaticText(self, -1, "Background Colour:"))
471
+ s4.Add(self._background_colour)
472
+ s4.Add((1, 1), 1, wx.EXPAND)
473
+ s4.SetItemMinSize(1, (180, 20))
474
+
475
+ s5 = wx.BoxSizer(wx.HORIZONTAL)
476
+ self._sash_colour = wx.BitmapButton(self, ID_SashColour, b, wx.DefaultPosition, wx.Size(50, 25))
477
+ s5.Add((1, 1), 1, wx.EXPAND)
478
+ s5.Add(wx.StaticText(self, -1, "Sash Colour:"))
479
+ s5.Add(self._sash_colour)
480
+ s5.Add((1, 1), 1, wx.EXPAND)
481
+ s5.SetItemMinSize(1, (180, 20))
482
+
483
+ s6 = wx.BoxSizer(wx.HORIZONTAL)
484
+ self._inactive_caption_colour = wx.BitmapButton(self, ID_InactiveCaptionColour, b, wx.DefaultPosition, wx.Size(50, 25))
485
+ s6.Add((1, 1), 1, wx.EXPAND)
486
+ s6.Add(wx.StaticText(self, -1, "Normal Caption:"))
487
+ s6.Add(self._inactive_caption_colour)
488
+ s6.Add((1, 1), 1, wx.EXPAND)
489
+ s6.SetItemMinSize(1, (180, 20))
490
+
491
+ s7 = wx.BoxSizer(wx.HORIZONTAL)
492
+ self._inactive_caption_gradient_colour = wx.BitmapButton(self, ID_InactiveCaptionGradientColour, b, wx.DefaultPosition, wx.Size(50, 25))
493
+ s7.Add((1, 1), 1, wx.EXPAND)
494
+ s7.Add(wx.StaticText(self, -1, "Normal Caption Gradient:"))
495
+ s7.Add(self._inactive_caption_gradient_colour)
496
+ s7.Add((1, 1), 1, wx.EXPAND)
497
+ s7.SetItemMinSize(1, (180, 20))
498
+
499
+ s8 = wx.BoxSizer(wx.HORIZONTAL)
500
+ self._inactive_caption_text_colour = wx.BitmapButton(self, ID_InactiveCaptionTextColour, b, wx.DefaultPosition, wx.Size(50, 25))
501
+ s8.Add((1, 1), 1, wx.EXPAND)
502
+ s8.Add(wx.StaticText(self, -1, "Normal Caption Text:"))
503
+ s8.Add(self._inactive_caption_text_colour)
504
+ s8.Add((1, 1), 1, wx.EXPAND)
505
+ s8.SetItemMinSize(1, (180, 20))
506
+
507
+ s9 = wx.BoxSizer(wx.HORIZONTAL)
508
+ self._active_caption_colour = wx.BitmapButton(self, ID_ActiveCaptionColour, b, wx.DefaultPosition, wx.Size(50, 25))
509
+ s9.Add((1, 1), 1, wx.EXPAND)
510
+ s9.Add(wx.StaticText(self, -1, "Active Caption:"))
511
+ s9.Add(self._active_caption_colour)
512
+ s9.Add((1, 1), 1, wx.EXPAND)
513
+ s9.SetItemMinSize(1, (180, 20))
514
+
515
+ s10 = wx.BoxSizer(wx.HORIZONTAL)
516
+ self._active_caption_gradient_colour = wx.BitmapButton(self, ID_ActiveCaptionGradientColour, b, wx.DefaultPosition, wx.Size(50, 25))
517
+ s10.Add((1, 1), 1, wx.EXPAND)
518
+ s10.Add(wx.StaticText(self, -1, "Active Caption Gradient:"))
519
+ s10.Add(self._active_caption_gradient_colour)
520
+ s10.Add((1, 1), 1, wx.EXPAND)
521
+ s10.SetItemMinSize(1, (180, 20))
522
+
523
+ s11 = wx.BoxSizer(wx.HORIZONTAL)
524
+ self._active_caption_text_colour = wx.BitmapButton(self, ID_ActiveCaptionTextColour, b, wx.DefaultPosition, wx.Size(50, 25))
525
+ s11.Add((1, 1), 1, wx.EXPAND)
526
+ s11.Add(wx.StaticText(self, -1, "Active Caption Text:"))
527
+ s11.Add(self._active_caption_text_colour)
528
+ s11.Add((1, 1), 1, wx.EXPAND)
529
+ s11.SetItemMinSize(1, (180, 20))
530
+
531
+ s12 = wx.BoxSizer(wx.HORIZONTAL)
532
+ self._border_colour = wx.BitmapButton(self, ID_BorderColour, b, wx.DefaultPosition, wx.Size(50, 25))
533
+ s12.Add((1, 1), 1, wx.EXPAND)
534
+ s12.Add(wx.StaticText(self, -1, "Border Colour:"))
535
+ s12.Add(self._border_colour)
536
+ s12.Add((1, 1), 1, wx.EXPAND)
537
+ s12.SetItemMinSize(1, (180, 20))
538
+
539
+ s13 = wx.BoxSizer(wx.HORIZONTAL)
540
+ self._gripper_colour = wx.BitmapButton(self, ID_GripperColour, b, wx.DefaultPosition, wx.Size(50,25))
541
+ s13.Add((1, 1), 1, wx.EXPAND)
542
+ s13.Add(wx.StaticText(self, -1, "Gripper Colour:"))
543
+ s13.Add(self._gripper_colour)
544
+ s13.Add((1, 1), 1, wx.EXPAND)
545
+ s13.SetItemMinSize(1, (180, 20))
546
+
547
+ s14 = wx.BoxSizer(wx.HORIZONTAL)
548
+ self._sash_grip = wx.CheckBox(self, ID_SashGrip, "", wx.DefaultPosition, wx.Size(50,20))
549
+ s14.Add((1, 1), 1, wx.EXPAND)
550
+ s14.Add(wx.StaticText(self, -1, "Draw Sash Grip:"))
551
+ s14.Add(self._sash_grip)
552
+ s14.Add((1, 1), 1, wx.EXPAND)
553
+ s14.SetItemMinSize(1, (180, 20))
554
+
555
+ s15 = wx.BoxSizer(wx.HORIZONTAL)
556
+ self._hint_colour = wx.BitmapButton(self, ID_HintColour, b, wx.DefaultPosition, wx.Size(50,25))
557
+ s15.Add((1, 1), 1, wx.EXPAND)
558
+ s15.Add(wx.StaticText(self, -1, "Hint Window Colour:"))
559
+ s15.Add(self._hint_colour)
560
+ s15.Add((1, 1), 1, wx.EXPAND)
561
+ s15.SetItemMinSize(1, (180, 20))
562
+
563
+ grid_sizer = wx.GridSizer(rows=0, cols=2, vgap=5, hgap=5)
564
+ grid_sizer.SetHGap(5)
565
+ grid_sizer.Add(s1)
566
+ grid_sizer.Add(s4)
567
+ grid_sizer.Add(s2)
568
+ grid_sizer.Add(s5)
569
+ grid_sizer.Add(s3)
570
+ grid_sizer.Add(s13)
571
+ grid_sizer.Add(s14)
572
+ grid_sizer.Add((1, 1))
573
+ grid_sizer.Add(s12)
574
+ grid_sizer.Add(s6)
575
+ grid_sizer.Add(s9)
576
+ grid_sizer.Add(s7)
577
+ grid_sizer.Add(s10)
578
+ grid_sizer.Add(s8)
579
+ grid_sizer.Add(s11)
580
+ grid_sizer.Add(s15)
581
+
582
+ cont_sizer = wx.BoxSizer(wx.VERTICAL)
583
+ cont_sizer.Add(grid_sizer, 1, wx.EXPAND | wx.ALL, 5)
584
+ self.SetSizer(cont_sizer)
585
+ self.GetSizer().SetSizeHints(self)
586
+
587
+ self._border_size.SetValue(frame.GetDockArt().GetMetric(aui.AUI_DOCKART_PANE_BORDER_SIZE))
588
+ self._sash_size.SetValue(frame.GetDockArt().GetMetric(aui.AUI_DOCKART_SASH_SIZE))
589
+ self._caption_size.SetValue(frame.GetDockArt().GetMetric(aui.AUI_DOCKART_CAPTION_SIZE))
590
+ self._sash_grip.SetValue(frame.GetDockArt().GetMetric(aui.AUI_DOCKART_DRAW_SASH_GRIP))
591
+
592
+ self.UpdateColours()
593
+
594
+ self.Bind(wx.EVT_SPINCTRL, self.OnPaneBorderSize, id=ID_PaneBorderSize)
595
+ self.Bind(wx.EVT_SPINCTRL, self.OnSashSize, id=ID_SashSize)
596
+ self.Bind(wx.EVT_SPINCTRL, self.OnCaptionSize, id=ID_CaptionSize)
597
+ self.Bind(wx.EVT_CHECKBOX, self.OnDrawSashGrip, id=ID_SashGrip)
598
+ self.Bind(wx.EVT_BUTTON, self.OnSetColour, id=ID_BackgroundColour)
599
+ self.Bind(wx.EVT_BUTTON, self.OnSetColour, id=ID_SashColour)
600
+ self.Bind(wx.EVT_BUTTON, self.OnSetColour, id=ID_InactiveCaptionColour)
601
+ self.Bind(wx.EVT_BUTTON, self.OnSetColour, id=ID_InactiveCaptionGradientColour)
602
+ self.Bind(wx.EVT_BUTTON, self.OnSetColour, id=ID_InactiveCaptionTextColour)
603
+ self.Bind(wx.EVT_BUTTON, self.OnSetColour, id=ID_ActiveCaptionColour)
604
+ self.Bind(wx.EVT_BUTTON, self.OnSetColour, id=ID_ActiveCaptionGradientColour)
605
+ self.Bind(wx.EVT_BUTTON, self.OnSetColour, id=ID_ActiveCaptionTextColour)
606
+ self.Bind(wx.EVT_BUTTON, self.OnSetColour, id=ID_BorderColour)
607
+ self.Bind(wx.EVT_BUTTON, self.OnSetColour, id=ID_GripperColour)
608
+ self.Bind(wx.EVT_BUTTON, self.OnSetColour, id=ID_HintColour)
609
+
610
+
611
+ def CreateColourBitmap(self, c):
612
+
613
+ image = wx.Image(25, 14)
614
+ for x in range(25):
615
+ for y in range(14):
616
+ pixcol = c
617
+ if x == 0 or x == 24 or y == 0 or y == 13:
618
+ pixcol = wx.BLACK
619
+
620
+ image.SetRGB(wx.Rect(wx.Size(25, 14)), pixcol.Red(), pixcol.Green(), pixcol.Blue())
621
+
622
+ return image.ConvertToBitmap()
623
+
624
+
625
+ def UpdateColours(self):
626
+
627
+ bk = self._frame.GetDockArt().GetColour(aui.AUI_DOCKART_BACKGROUND_COLOUR)
628
+ self._background_colour.SetBitmapLabel(self.CreateColourBitmap(bk))
629
+
630
+ cap = self._frame.GetDockArt().GetColour(aui.AUI_DOCKART_INACTIVE_CAPTION_COLOUR)
631
+ self._inactive_caption_colour.SetBitmapLabel(self.CreateColourBitmap(cap))
632
+
633
+ capgrad = self._frame.GetDockArt().GetColour(aui.AUI_DOCKART_INACTIVE_CAPTION_GRADIENT_COLOUR)
634
+ self._inactive_caption_gradient_colour.SetBitmapLabel(self.CreateColourBitmap(capgrad))
635
+
636
+ captxt = self._frame.GetDockArt().GetColour(aui.AUI_DOCKART_INACTIVE_CAPTION_TEXT_COLOUR)
637
+ self._inactive_caption_text_colour.SetBitmapLabel(self.CreateColourBitmap(captxt))
638
+
639
+ acap = self._frame.GetDockArt().GetColour(aui.AUI_DOCKART_ACTIVE_CAPTION_COLOUR)
640
+ self._active_caption_colour.SetBitmapLabel(self.CreateColourBitmap(acap))
641
+
642
+ acapgrad = self._frame.GetDockArt().GetColour(aui.AUI_DOCKART_ACTIVE_CAPTION_GRADIENT_COLOUR)
643
+ self._active_caption_gradient_colour.SetBitmapLabel(self.CreateColourBitmap(acapgrad))
644
+
645
+ acaptxt = self._frame.GetDockArt().GetColour(aui.AUI_DOCKART_ACTIVE_CAPTION_TEXT_COLOUR)
646
+ self._active_caption_text_colour.SetBitmapLabel(self.CreateColourBitmap(acaptxt))
647
+
648
+ sash = self._frame.GetDockArt().GetColour(aui.AUI_DOCKART_SASH_COLOUR)
649
+ self._sash_colour.SetBitmapLabel(self.CreateColourBitmap(sash))
650
+
651
+ border = self._frame.GetDockArt().GetColour(aui.AUI_DOCKART_BORDER_COLOUR)
652
+ self._border_colour.SetBitmapLabel(self.CreateColourBitmap(border))
653
+
654
+ gripper = self._frame.GetDockArt().GetColour(aui.AUI_DOCKART_GRIPPER_COLOUR)
655
+ self._gripper_colour.SetBitmapLabel(self.CreateColourBitmap(gripper))
656
+
657
+ hint = self._frame.GetDockArt().GetColour(aui.AUI_DOCKART_HINT_WINDOW_COLOUR)
658
+ self._hint_colour.SetBitmapLabel(self.CreateColourBitmap(hint))
659
+
660
+
661
+ def OnPaneBorderSize(self, event):
662
+
663
+ self._frame.GetDockArt().SetMetric(aui.AUI_DOCKART_PANE_BORDER_SIZE,
664
+ event.GetInt())
665
+ self._frame.DoUpdate()
666
+
667
+
668
+ def OnSashSize(self, event):
669
+
670
+ self._frame.GetDockArt().SetMetric(aui.AUI_DOCKART_SASH_SIZE,
671
+ event.GetInt())
672
+ self._frame.DoUpdate()
673
+
674
+
675
+ def OnCaptionSize(self, event):
676
+
677
+ self._frame.GetDockArt().SetMetric(aui.AUI_DOCKART_CAPTION_SIZE,
678
+ event.GetInt())
679
+ self._frame.DoUpdate()
680
+
681
+
682
+ def OnDrawSashGrip(self, event):
683
+
684
+ self._frame.GetDockArt().SetMetric(aui.AUI_DOCKART_DRAW_SASH_GRIP,
685
+ event.GetInt())
686
+ self._frame.DoUpdate()
687
+
688
+
689
+ def OnSetColour(self, event):
690
+
691
+ dlg = wx.ColourDialog(self._frame)
692
+ dlg.SetTitle("Colour Picker")
693
+
694
+ if dlg.ShowModal() != wx.ID_OK:
695
+ return
696
+
697
+ evId = event.GetId()
698
+ if evId == ID_BackgroundColour:
699
+ var = aui.AUI_DOCKART_BACKGROUND_COLOUR
700
+ elif evId == ID_SashColour:
701
+ var = aui.AUI_DOCKART_SASH_COLOUR
702
+ elif evId == ID_InactiveCaptionColour:
703
+ var = aui.AUI_DOCKART_INACTIVE_CAPTION_COLOUR
704
+ elif evId == ID_InactiveCaptionGradientColour:
705
+ var = aui.AUI_DOCKART_INACTIVE_CAPTION_GRADIENT_COLOUR
706
+ elif evId == ID_InactiveCaptionTextColour:
707
+ var = aui.AUI_DOCKART_INACTIVE_CAPTION_TEXT_COLOUR
708
+ elif evId == ID_ActiveCaptionColour:
709
+ var = aui.AUI_DOCKART_ACTIVE_CAPTION_COLOUR
710
+ elif evId == ID_ActiveCaptionGradientColour:
711
+ var = aui.AUI_DOCKART_ACTIVE_CAPTION_GRADIENT_COLOUR
712
+ elif evId == ID_ActiveCaptionTextColour:
713
+ var = aui.AUI_DOCKART_ACTIVE_CAPTION_TEXT_COLOUR
714
+ elif evId == ID_BorderColour:
715
+ var = aui.AUI_DOCKART_BORDER_COLOUR
716
+ elif evId == ID_GripperColour:
717
+ var = aui.AUI_DOCKART_GRIPPER_COLOUR
718
+ elif evId == ID_HintColour:
719
+ var = aui.AUI_DOCKART_HINT_WINDOW_COLOUR
720
+ else:
721
+ return
722
+
723
+ self._frame.GetDockArt().SetColour(var, dlg.GetColourData().GetColour())
724
+ self._frame.DoUpdate()
725
+ self.UpdateColours()
726
+
727
+
728
+ # ---------------------------------------------------------------------------- #
729
+ # Class ProgressGauge
730
+ # ---------------------------------------------------------------------------- #
731
+
732
+ class ProgressGauge(wx.Window):
733
+ """ This class provides a visual alternative for wx.Gauge."""
734
+
735
+ def __init__(self, parent, id=wx.ID_ANY, pos=wx.DefaultPosition, size=(-1,30)):
736
+ """ Default class constructor. """
737
+
738
+ wx.Window.__init__(self, parent, id, pos, size, style=wx.BORDER_NONE)
739
+
740
+ self._value = 0
741
+ self._steps = 16
742
+ self._pos = 0
743
+ self._current = 0
744
+ self._gaugeproportion = 0.4
745
+ self._startTime = time.time()
746
+
747
+ self._bottomStartColour = wx.GREEN
748
+ rgba = self._bottomStartColour.Red(), self._bottomStartColour.Green(), \
749
+ self._bottomStartColour.Blue(), self._bottomStartColour.Alpha()
750
+ self._bottomEndColour = self.LightColour(self._bottomStartColour, 30)
751
+ self._topStartColour = self.LightColour(self._bottomStartColour, 80)
752
+ self._topEndColour = self.LightColour(self._bottomStartColour, 40)
753
+
754
+ self._background = wx.Brush(wx.WHITE, wx.BRUSHSTYLE_SOLID)
755
+
756
+ self.Bind(wx.EVT_PAINT, self.OnPaint)
757
+ self.Bind(wx.EVT_ERASE_BACKGROUND, self.OnEraseBackground)
758
+
759
+
760
+ def OnEraseBackground(self, event):
761
+ """ Handles the wx.EVT_ERASE_BACKGROUND event for ProgressGauge. """
762
+
763
+ pass
764
+
765
+
766
+ def OnPaint(self, event):
767
+ """ Handles the wx.EVT_PAINT event for ProgressGauge. """
768
+
769
+ dc = wx.BufferedPaintDC(self)
770
+ dc.SetBackground(self._background)
771
+ dc.SetBackground(wx.WHITE_BRUSH)
772
+ dc.Clear()
773
+
774
+ xsize, ysize = self.GetClientSize()
775
+ interval = xsize/float(self._steps)
776
+
777
+ self._pos = interval*self._value
778
+
779
+ status = self._current/(self._steps - int((self._gaugeproportion*xsize/interval)))
780
+
781
+ if status%2 == 0:
782
+ increment = 1
783
+ else:
784
+ increment = -1
785
+
786
+ self._value = self._value + increment
787
+ self._current = self._current + 1
788
+
789
+ self.DrawProgress(dc, xsize, ysize, increment)
790
+
791
+ dc.SetBrush(wx.TRANSPARENT_BRUSH)
792
+ dc.SetPen(wx.Pen(wx.SystemSettings.GetColour(wx.SYS_COLOUR_GRADIENTINACTIVECAPTION)))
793
+ dc.DrawRectangle(self.GetClientRect())
794
+
795
+
796
+ def LightColour(self, colour, percent):
797
+ """
798
+ Return light contrast of colour. The colour returned is from the scale of
799
+ colour -> white. The percent determines how light the colour will be.
800
+ Percent = 100 return white, percent = 0 returns colour.
801
+ """
802
+
803
+ end_colour = wx.WHITE
804
+ rd = end_colour.Red() - colour.Red()
805
+ gd = end_colour.Green() - colour.Green()
806
+ bd = end_colour.Blue() - colour.Blue()
807
+ high = 100
808
+
809
+ # We take the percent way of the colour from colour -> white
810
+ i = percent
811
+ r = int(colour.Red() + ((i*rd*100)/high)/100)
812
+ g = int(colour.Green() + ((i*gd*100)/high)/100)
813
+ b = int(colour.Blue() + ((i*bd*100)/high)/100)
814
+
815
+ return wx.Colour(r, g, b)
816
+
817
+
818
+ def DrawProgress(self, dc, xsize, ysize, increment):
819
+ """ Actually draws the sliding bar. """
820
+
821
+ interval = self._gaugeproportion*xsize
822
+ gc = wx.GraphicsContext.Create(dc)
823
+
824
+ clientRect = self.GetClientRect()
825
+ gradientRect = wx.Rect(*clientRect)
826
+
827
+ x, y, width, height = clientRect
828
+ x, width = int(self._pos), int(interval)
829
+
830
+ gradientRect.SetHeight(gradientRect.GetHeight() // 2)
831
+ topStart, topEnd = self._topStartColour, self._topEndColour
832
+
833
+ rc1 = wx.Rect(x, y, width, height // 2)
834
+ path1 = self.GetPath(gc, rc1, 8)
835
+ br1 = gc.CreateLinearGradientBrush(x, y, x, y + height // 2, topStart,
836
+ topEnd)
837
+ gc.SetBrush(br1)
838
+ gc.FillPath(path1) #draw main
839
+
840
+ path4 = gc.CreatePath()
841
+ path4.AddRectangle(x, y + height // 2 - 8, width, 8)
842
+ path4.CloseSubpath()
843
+ gc.SetBrush(br1)
844
+ gc.FillPath(path4)
845
+
846
+ gradientRect.Offset((0, gradientRect.GetHeight()))
847
+
848
+ bottomStart, bottomEnd = self._bottomStartColour, self._bottomEndColour
849
+
850
+ rc3 = wx.Rect(x, y + height // 2, width, height // 2)
851
+ path3 = self.GetPath(gc, rc3, 8)
852
+ br3 = gc.CreateLinearGradientBrush(x, y + height // 2, x, y + height,
853
+ bottomStart, bottomEnd)
854
+ gc.SetBrush(br3)
855
+ gc.FillPath(path3) #draw main
856
+
857
+ path4 = gc.CreatePath()
858
+ path4.AddRectangle(x, y+height // 2, width, 8)
859
+ path4.CloseSubpath()
860
+ gc.SetBrush(br3)
861
+ gc.FillPath(path4)
862
+
863
+
864
+ def GetPath(self, gc, rc, r):
865
+ """ Returns a rounded GraphicsPath. """
866
+
867
+ x, y, w, h = rc
868
+ path = gc.CreatePath()
869
+ path.AddRoundedRectangle(x, y, w, h, r)
870
+ path.CloseSubpath()
871
+ return path
872
+
873
+
874
+
875
+ def Pulse(self):
876
+ """ Updates the gauge with a new value. """
877
+
878
+ self.Refresh()
879
+
880
+
881
+ class AuiFrame(wx.Frame):
882
+
883
+ def __init__(self, parent, id=wx.ID_ANY, title="", pos= wx.DefaultPosition,
884
+ size=wx.DefaultSize, style=wx.DEFAULT_FRAME_STYLE|wx.SUNKEN_BORDER, log=None):
885
+
886
+ wx.Frame.__init__(self, parent, id, title, pos, size, style)
887
+
888
+ self._mgr = aui.AuiManager()
889
+
890
+ # tell AuiManager to manage this frame
891
+ self._mgr.SetManagedWindow(self)
892
+
893
+ # set frame icon
894
+ self.SetIcon(images.Mondrian.GetIcon())
895
+
896
+ # set up default notebook style
897
+ self._notebook_style = aui.AUI_NB_DEFAULT_STYLE | aui.AUI_NB_TAB_EXTERNAL_MOVE | wx.NO_BORDER
898
+ self._notebook_theme = 0
899
+ # Attributes
900
+ self._textCount = 1
901
+ self._transparency = 255
902
+ self._snapped = False
903
+ self._custom_pane_buttons = False
904
+ self._custom_tab_buttons = False
905
+ self._pane_icons = False
906
+ self._veto_tree = self._veto_text = False
907
+
908
+ self.log = log
909
+
910
+ self.CreateStatusBar()
911
+ self.GetStatusBar().SetStatusText("Ready")
912
+
913
+ self.BuildPanes()
914
+ self.CreateMenuBar()
915
+ self.BindEvents()
916
+
917
+
918
+ def CreateMenuBar(self):
919
+
920
+ # create menu
921
+ mb = wx.MenuBar()
922
+
923
+ file_menu = wx.Menu()
924
+ file_menu.Append(wx.ID_EXIT, "Exit")
925
+
926
+ view_menu = wx.Menu()
927
+ view_menu.Append(ID_CreateText, "Create Text Control")
928
+ view_menu.Append(ID_CreateHTML, "Create HTML Control")
929
+ view_menu.Append(ID_CreateTree, "Create Tree")
930
+ view_menu.Append(ID_CreateGrid, "Create Grid")
931
+ view_menu.Append(ID_CreateNotebook, "Create Notebook")
932
+ view_menu.Append(ID_CreateSizeReport, "Create Size Reporter")
933
+ view_menu.AppendSeparator()
934
+ view_menu.Append(ID_GridContent, "Use a Grid for the Content Pane")
935
+ view_menu.Append(ID_TextContent, "Use a Text Control for the Content Pane")
936
+ view_menu.Append(ID_HTMLContent, "Use an HTML Control for the Content Pane")
937
+ view_menu.Append(ID_TreeContent, "Use a Tree Control for the Content Pane")
938
+ view_menu.Append(ID_NotebookContent, "Use a AuiNotebook control for the Content Pane")
939
+ view_menu.Append(ID_SizeReportContent, "Use a Size Reporter for the Content Pane")
940
+ view_menu.AppendSeparator()
941
+
942
+ ## if wx.Platform == "__WXMAC__":
943
+ ## switcherAccel = "Alt+Tab"
944
+ ## elif wx.Platform == "__WXGTK__":
945
+ ## switcherAccel = "Ctrl+/"
946
+ ## else:
947
+ ## switcherAccel = "Ctrl+Tab"
948
+ ##
949
+ ## view_menu.Append(ID_SwitchPane, _("S&witch Window...") + "\t" + switcherAccel)
950
+
951
+ options_menu = wx.Menu()
952
+ options_menu.AppendRadioItem(ID_TransparentHint, "Transparent Hint")
953
+ options_menu.AppendRadioItem(ID_VenetianBlindsHint, "Venetian Blinds Hint")
954
+ options_menu.AppendRadioItem(ID_RectangleHint, "Rectangle Hint")
955
+ options_menu.AppendRadioItem(ID_NoHint, "No Hint")
956
+ options_menu.AppendSeparator()
957
+ options_menu.AppendCheckItem(ID_HintFade, "Hint Fade-in")
958
+ options_menu.AppendCheckItem(ID_AllowFloating, "Allow Floating")
959
+ options_menu.AppendCheckItem(ID_NoVenetianFade, "Disable Venetian Blinds Hint Fade-in")
960
+ options_menu.AppendCheckItem(ID_TransparentDrag, "Transparent Drag")
961
+ options_menu.AppendCheckItem(ID_AllowActivePane, "Allow Active Pane")
962
+ options_menu.AppendCheckItem(ID_LiveUpdate, "Live Resize Update")
963
+ options_menu.AppendCheckItem(ID_NativeMiniframes, "Use Native wx.MiniFrames")
964
+ options_menu.AppendSeparator()
965
+ options_menu.AppendRadioItem(ID_MinimizePosSmart, "Minimize in Smart mode").Check()
966
+ options_menu.AppendRadioItem(ID_MinimizePosTop, "Minimize on Top")
967
+ options_menu.AppendRadioItem(ID_MinimizePosLeft, "Minimize on the Left")
968
+ options_menu.AppendRadioItem(ID_MinimizePosRight, "Minimize on the Right")
969
+ options_menu.AppendRadioItem(ID_MinimizePosBottom, "Minimize at the Bottom")
970
+ options_menu.AppendSeparator()
971
+ options_menu.AppendRadioItem(ID_MinimizeCaptSmart, "Smart Minimized Caption")
972
+ options_menu.AppendRadioItem(ID_MinimizeCaptHorz, "Horizontal Minimized Caption")
973
+ options_menu.AppendRadioItem(ID_MinimizeCaptHide, "Hidden Minimized Caption").Check()
974
+ options_menu.AppendSeparator()
975
+ options_menu.AppendCheckItem(ID_PaneIcons, "Set Icons On Panes")
976
+ options_menu.AppendCheckItem(ID_AnimateFrames, "Animate Dock/Close/Minimize Of Floating Panes")
977
+ options_menu.AppendCheckItem(ID_SmoothDocking, "Smooth Docking Effects (PyQT Style)")
978
+ options_menu.AppendSeparator()
979
+ options_menu.Append(ID_TransparentPane, "Set Floating Panes Transparency")
980
+ options_menu.AppendSeparator()
981
+ options_menu.AppendRadioItem(ID_DefaultDockArt, "Default DockArt")
982
+ options_menu.AppendRadioItem(ID_ModernDockArt, "Modern Dock Art")
983
+ options_menu.AppendSeparator()
984
+ options_menu.Append(ID_SnapToScreen, "Snap To Screen")
985
+ options_menu.AppendCheckItem(ID_SnapPanes, "Snap Panes To Managed Window")
986
+ options_menu.AppendCheckItem(ID_FlyOut, "Use Fly-Out Floating Panes")
987
+ options_menu.AppendSeparator()
988
+ options_menu.AppendCheckItem(ID_CustomPaneButtons, "Set Custom Pane Button Bitmaps")
989
+ options_menu.AppendSeparator()
990
+ options_menu.AppendRadioItem(ID_NoGradient, "No Caption Gradient")
991
+ options_menu.AppendRadioItem(ID_VerticalGradient, "Vertical Caption Gradient")
992
+ options_menu.AppendRadioItem(ID_HorizontalGradient, "Horizontal Caption Gradient")
993
+ options_menu.AppendSeparator()
994
+ options_menu.AppendCheckItem(ID_PreviewMinimized, "Preview Minimized Panes")
995
+ options_menu.AppendSeparator()
996
+ options_menu.Append(ID_Settings, "Settings Pane")
997
+
998
+ notebook_menu = wx.Menu()
999
+ notebook_menu.AppendRadioItem(ID_NotebookArtGloss, "Glossy Theme (Default)")
1000
+ notebook_menu.AppendRadioItem(ID_NotebookArtSimple, "Simple Theme")
1001
+ notebook_menu.AppendRadioItem(ID_NotebookArtVC71, "VC71 Theme")
1002
+ notebook_menu.AppendRadioItem(ID_NotebookArtFF2, "Firefox 2 Theme")
1003
+ notebook_menu.AppendRadioItem(ID_NotebookArtVC8, "VC8 Theme")
1004
+ notebook_menu.AppendRadioItem(ID_NotebookArtChrome, "Chrome Theme")
1005
+ notebook_menu.AppendSeparator()
1006
+ notebook_menu.AppendRadioItem(ID_NotebookNoCloseButton, "No Close Button")
1007
+ notebook_menu.AppendRadioItem(ID_NotebookCloseButton, "Close Button At Right")
1008
+ notebook_menu.AppendRadioItem(ID_NotebookCloseButtonAll, "Close Button On All Tabs")
1009
+ notebook_menu.AppendRadioItem(ID_NotebookCloseButtonActive, "Close Button On Active Tab")
1010
+ notebook_menu.AppendSeparator()
1011
+ notebook_menu.AppendCheckItem(ID_NotebookCloseOnLeft, "Close Button On The Left Of Tabs")
1012
+ notebook_menu.AppendSeparator()
1013
+ notebook_menu.AppendRadioItem(ID_NotebookAlignTop, "Tab Top Alignment")
1014
+ notebook_menu.AppendRadioItem(ID_NotebookAlignBottom, "Tab Bottom Alignment")
1015
+ notebook_menu.AppendSeparator()
1016
+ notebook_menu.AppendCheckItem(ID_NotebookAllowTabMove, "Allow Tab Move")
1017
+ notebook_menu.AppendCheckItem(ID_NotebookAllowTabExternalMove, "Allow External Tab Move")
1018
+ notebook_menu.AppendCheckItem(ID_NotebookAllowTabSplit, "Allow Notebook Split")
1019
+ notebook_menu.AppendCheckItem(ID_NotebookTabFloat, "Allow Single Tab Floating")
1020
+ notebook_menu.AppendSeparator()
1021
+ notebook_menu.AppendCheckItem(ID_NotebookDclickUnsplit, "Unsplit On Sash Double-Click")
1022
+ notebook_menu.AppendCheckItem(ID_NotebookTabDrawDnd, "Draw Tab Image On Drag 'n' Drop")
1023
+ notebook_menu.AppendSeparator()
1024
+ notebook_menu.AppendCheckItem(ID_NotebookScrollButtons, "Scroll Buttons Visible")
1025
+ notebook_menu.AppendCheckItem(ID_NotebookWindowList, "Window List Button Visible")
1026
+ notebook_menu.AppendCheckItem(ID_NotebookTabFixedWidth, "Fixed-Width Tabs")
1027
+ notebook_menu.AppendSeparator()
1028
+ notebook_menu.AppendCheckItem(ID_NotebookHideSingle, "Hide On Single Tab")
1029
+ notebook_menu.AppendCheckItem(ID_NotebookSmartTab, "Use Smart Tabbing")
1030
+ notebook_menu.AppendCheckItem(ID_NotebookUseImagesDropDown, "Use Tab Images In Dropdown Menu")
1031
+ notebook_menu.AppendCheckItem(ID_NotebookCustomButtons, "Show Custom Buttons In Tab Area")
1032
+ notebook_menu.AppendSeparator()
1033
+ notebook_menu.Append(ID_NotebookMinMaxWidth, "Set Min/Max Tab Widths")
1034
+ notebook_menu.Append(ID_NotebookMultiLine, "Add A Multi-Line Label Tab")
1035
+ notebook_menu.AppendSeparator()
1036
+ notebook_menu.Append(ID_NotebookPreview, "Preview Of All Notebook Pages")
1037
+
1038
+ perspectives_menu = wx.Menu()
1039
+
1040
+ self._perspectives_menu = wx.Menu()
1041
+ self._perspectives_menu.Append(ID_CreatePerspective, "Create Perspective")
1042
+ self._perspectives_menu.Append(ID_CopyPerspectiveCode, "Copy Perspective Data To Clipboard")
1043
+ self._perspectives_menu.AppendSeparator()
1044
+ self._perspectives_menu.Append(ID_FirstPerspective+0, "Default Startup")
1045
+ self._perspectives_menu.Append(ID_FirstPerspective+1, "All Panes")
1046
+
1047
+ self._nb_perspectives_menu = wx.Menu()
1048
+ self._nb_perspectives_menu.Append(ID_CreateNBPerspective, "Create Perspective")
1049
+ self._nb_perspectives_menu.Append(ID_CopyNBPerspectiveCode, "Copy Perspective Data To Clipboard")
1050
+ self._nb_perspectives_menu.AppendSeparator()
1051
+ self._nb_perspectives_menu.Append(ID_FirstNBPerspective+0, "Default Startup")
1052
+
1053
+ guides_menu = wx.Menu()
1054
+ guides_menu.AppendRadioItem(ID_StandardGuides, "Standard Docking Guides")
1055
+ guides_menu.AppendRadioItem(ID_AeroGuides, "Aero-Style Docking Guides")
1056
+ guides_menu.AppendRadioItem(ID_WhidbeyGuides, "Whidbey-Style Docking Guides")
1057
+
1058
+ perspectives_menu.Append(wx.ID_ANY, "Frame Perspectives", self._perspectives_menu)
1059
+ perspectives_menu.Append(wx.ID_ANY, "AuiNotebook Perspectives", self._nb_perspectives_menu)
1060
+ perspectives_menu.AppendSeparator()
1061
+ perspectives_menu.Append(wx.ID_ANY, "Docking Guides", guides_menu)
1062
+
1063
+ action_menu = wx.Menu()
1064
+ action_menu.AppendCheckItem(ID_VetoTree, "Veto Floating Of Tree Pane")
1065
+ action_menu.AppendCheckItem(ID_VetoText, "Veto Docking Of Fixed Pane")
1066
+ action_menu.AppendSeparator()
1067
+
1068
+ attention_menu = wx.Menu()
1069
+
1070
+ self._requestPanes = {}
1071
+ for indx, pane in enumerate(self._mgr.GetAllPanes()):
1072
+ if pane.IsToolbar():
1073
+ continue
1074
+ if not pane.caption or not pane.name:
1075
+ continue
1076
+ ids = wx.ID_HIGHEST + 12345 + indx
1077
+ self._requestPanes[ids] = pane.name
1078
+ attention_menu.Append(ids, pane.caption)
1079
+
1080
+ action_menu.Append(wx.ID_ANY, "Request User Attention For", attention_menu)
1081
+
1082
+ help_menu = wx.Menu()
1083
+ help_menu.Append(wx.ID_ABOUT, "About...")
1084
+
1085
+ mb.Append(file_menu, "&File")
1086
+ mb.Append(view_menu, "&View")
1087
+ mb.Append(perspectives_menu, "&Perspectives")
1088
+ mb.Append(options_menu, "&Options")
1089
+ mb.Append(notebook_menu, "&Notebook")
1090
+ mb.Append(action_menu, "&Actions")
1091
+ mb.Append(help_menu, "&Help")
1092
+
1093
+ self.SetMenuBar(mb)
1094
+
1095
+
1096
+ def BuildPanes(self):
1097
+
1098
+ # min size for the frame itself isn't completely done.
1099
+ # see the end up AuiManager.Update() for the test
1100
+ # code. For now, just hard code a frame minimum size
1101
+ self.SetMinSize(wx.Size(400, 300))
1102
+
1103
+ # prepare a few custom overflow elements for the toolbars' overflow buttons
1104
+
1105
+ prepend_items, append_items = [], []
1106
+ item = aui.AuiToolBarItem()
1107
+
1108
+ item.SetKind(wx.ITEM_SEPARATOR)
1109
+ append_items.append(item)
1110
+
1111
+ item = aui.AuiToolBarItem()
1112
+ item.SetKind(wx.ITEM_NORMAL)
1113
+ item.SetId(ID_CustomizeToolbar)
1114
+ item.SetLabel("Customize...")
1115
+ append_items.append(item)
1116
+
1117
+
1118
+ # create some toolbars
1119
+ tb1 = aui.AuiToolBar(self, -1, wx.DefaultPosition, wx.DefaultSize,
1120
+ agwStyle=aui.AUI_TB_DEFAULT_STYLE | aui.AUI_TB_OVERFLOW)
1121
+ tb1.SetToolBitmapSize(wx.Size(48, 48))
1122
+ tb1.AddSimpleTool(ID_SampleItem+1, "Test", wx.ArtProvider.GetBitmap(wx.ART_ERROR))
1123
+ tb1.AddSeparator()
1124
+ tb1.AddSimpleTool(ID_SampleItem+2, "Test", wx.ArtProvider.GetBitmap(wx.ART_QUESTION))
1125
+ tb1.AddSimpleTool(ID_SampleItem+3, "Test", wx.ArtProvider.GetBitmap(wx.ART_INFORMATION))
1126
+ tb1.AddSimpleTool(ID_SampleItem+4, "Test", wx.ArtProvider.GetBitmap(wx.ART_WARNING))
1127
+ tb1.AddSimpleTool(ID_SampleItem+5, "Test", wx.ArtProvider.GetBitmap(wx.ART_MISSING_IMAGE))
1128
+ tb1.SetCustomOverflowItems(prepend_items, append_items)
1129
+ tb1.Realize()
1130
+
1131
+ tb2 = aui.AuiToolBar(self, -1, wx.DefaultPosition, wx.DefaultSize,
1132
+ agwStyle=aui.AUI_TB_DEFAULT_STYLE | aui.AUI_TB_OVERFLOW)
1133
+ tb2.SetToolBitmapSize(wx.Size(16, 16))
1134
+
1135
+ tb2_bmp1 = wx.ArtProvider.GetBitmap(wx.ART_QUESTION, wx.ART_OTHER, wx.Size(16, 16))
1136
+ tb2.AddSimpleTool(ID_SampleItem+6, "Test", tb2_bmp1)
1137
+ tb2.AddSimpleTool(ID_SampleItem+7, "Test", tb2_bmp1)
1138
+ tb2.AddSimpleTool(ID_SampleItem+8, "Test", tb2_bmp1)
1139
+ tb2.AddSimpleTool(ID_SampleItem+9, "Test", tb2_bmp1)
1140
+ tb2.AddSeparator()
1141
+ tb2.AddSimpleTool(ID_SampleItem+10, "Test", tb2_bmp1)
1142
+ tb2.AddSimpleTool(ID_SampleItem+11, "Test", tb2_bmp1)
1143
+ tb2.AddSeparator()
1144
+ tb2.AddSimpleTool(ID_SampleItem+12, "Test", tb2_bmp1)
1145
+ tb2.AddSimpleTool(ID_SampleItem+13, "Test", tb2_bmp1)
1146
+ tb2.AddSimpleTool(ID_SampleItem+14, "Test", tb2_bmp1)
1147
+ tb2.AddSimpleTool(ID_SampleItem+15, "Test", tb2_bmp1)
1148
+ tb2.SetCustomOverflowItems(prepend_items, append_items)
1149
+ tb2.Realize()
1150
+
1151
+ tb3 = aui.AuiToolBar(self, -1, wx.DefaultPosition, wx.DefaultSize,
1152
+ agwStyle=aui.AUI_TB_DEFAULT_STYLE | aui.AUI_TB_OVERFLOW)
1153
+ tb3.SetToolBitmapSize(wx.Size(16, 16))
1154
+ tb3_bmp1 = wx.ArtProvider.GetBitmap(wx.ART_FOLDER, wx.ART_OTHER, wx.Size(16, 16))
1155
+ tb3.AddSimpleTool(ID_SampleItem+16, "Check 1", tb3_bmp1, "Check 1", aui.ITEM_CHECK)
1156
+ tb3.AddSimpleTool(ID_SampleItem+17, "Check 2", tb3_bmp1, "Check 2", aui.ITEM_CHECK)
1157
+ tb3.AddSimpleTool(ID_SampleItem+18, "Check 3", tb3_bmp1, "Check 3", aui.ITEM_CHECK)
1158
+ tb3.AddSimpleTool(ID_SampleItem+19, "Check 4", tb3_bmp1, "Check 4", aui.ITEM_CHECK)
1159
+ tb3.AddSeparator()
1160
+ tb3.AddSimpleTool(ID_SampleItem+20, "Radio 1", tb3_bmp1, "Radio 1", aui.ITEM_RADIO)
1161
+ tb3.AddSimpleTool(ID_SampleItem+21, "Radio 2", tb3_bmp1, "Radio 2", aui.ITEM_RADIO)
1162
+ tb3.AddSimpleTool(ID_SampleItem+22, "Radio 3", tb3_bmp1, "Radio 3", aui.ITEM_RADIO)
1163
+ tb3.AddSeparator()
1164
+ tb3.AddSimpleTool(ID_SampleItem+23, "Radio 1 (Group 2)", tb3_bmp1, "Radio 1 (Group 2)", aui.ITEM_RADIO)
1165
+ tb3.AddSimpleTool(ID_SampleItem+24, "Radio 2 (Group 2)", tb3_bmp1, "Radio 2 (Group 2)", aui.ITEM_RADIO)
1166
+ tb3.AddSimpleTool(ID_SampleItem+25, "Radio 3 (Group 2)", tb3_bmp1, "Radio 3 (Group 2)", aui.ITEM_RADIO)
1167
+
1168
+ tb3.SetCustomOverflowItems(prepend_items, append_items)
1169
+ tb3.Realize()
1170
+
1171
+ tb4 = aui.AuiToolBar(self, -1, wx.DefaultPosition, wx.DefaultSize,
1172
+ agwStyle=aui.AUI_TB_OVERFLOW | aui.AUI_TB_TEXT | aui.AUI_TB_HORZ_TEXT)
1173
+ tb4.SetToolBitmapSize(wx.Size(16, 16))
1174
+ tb4_bmp1 = wx.ArtProvider.GetBitmap(wx.ART_NORMAL_FILE, wx.ART_OTHER, wx.Size(16, 16))
1175
+ tb4.AddSimpleTool(ID_DropDownToolbarItem, "Item 1", tb4_bmp1)
1176
+ tb4.AddSimpleTool(ID_SampleItem+23, "Item 2", tb4_bmp1)
1177
+ tb4.AddSimpleTool(ID_SampleItem+24, "Item 3", tb4_bmp1)
1178
+ tb4.AddSimpleTool(ID_SampleItem+25, "Item 4", tb4_bmp1)
1179
+ tb4.AddSeparator()
1180
+ tb4.AddSimpleTool(ID_SampleItem+26, "Item 5", tb4_bmp1)
1181
+ tb4.AddSimpleTool(ID_SampleItem+27, "Item 6", tb4_bmp1)
1182
+ tb4.AddSimpleTool(ID_SampleItem+28, "Item 7", tb4_bmp1)
1183
+ tb4.AddSimpleTool(ID_SampleItem+29, "Item 8", tb4_bmp1)
1184
+
1185
+ choice = wx.Choice(tb4, -1, choices=["One choice", "Another choice"])
1186
+ tb4.AddControl(choice)
1187
+
1188
+ tb4.SetToolDropDown(ID_DropDownToolbarItem, True)
1189
+ tb4.Realize()
1190
+
1191
+ tb5 = aui.AuiToolBar(self, -1, wx.DefaultPosition, wx.DefaultSize,
1192
+ agwStyle=aui.AUI_TB_OVERFLOW | aui.AUI_TB_VERTICAL)
1193
+
1194
+ tb5.SetToolBitmapSize(wx.Size(48, 48))
1195
+ tb5.AddSimpleTool(ID_SampleItem+30, "Test", wx.ArtProvider.GetBitmap(wx.ART_ERROR))
1196
+ tb5.AddSeparator()
1197
+ tb5.AddSimpleTool(ID_SampleItem+31, "Test", wx.ArtProvider.GetBitmap(wx.ART_QUESTION))
1198
+ tb5.AddSimpleTool(ID_SampleItem+32, "Test", wx.ArtProvider.GetBitmap(wx.ART_INFORMATION))
1199
+ tb5.AddSimpleTool(ID_SampleItem+33, "Test", wx.ArtProvider.GetBitmap(wx.ART_WARNING))
1200
+ tb5.AddSimpleTool(ID_SampleItem+34, "Test", wx.ArtProvider.GetBitmap(wx.ART_MISSING_IMAGE))
1201
+ tb5.SetCustomOverflowItems(prepend_items, append_items)
1202
+ tb5.Realize()
1203
+
1204
+ tb6 = aui.AuiToolBar(self, -1, wx.DefaultPosition, wx.DefaultSize,
1205
+ agwStyle=aui.AUI_TB_OVERFLOW | aui.AUI_TB_VERT_TEXT)
1206
+ tb6.SetToolBitmapSize(wx.Size(48, 48))
1207
+ tb6.AddSimpleTool(ID_SampleItem+35, "Clockwise 1", wx.ArtProvider.GetBitmap(wx.ART_ERROR, wx.ART_OTHER, wx.Size(16, 16)))
1208
+ tb6.AddSeparator()
1209
+ tb6.AddSimpleTool(ID_SampleItem+36, "Clockwise 2", wx.ArtProvider.GetBitmap(wx.ART_QUESTION, wx.ART_OTHER, wx.Size(16, 16)))
1210
+ tb6.AddSimpleTool(ID_DropDownToolbarItem, "Clockwise 3", wx.ArtProvider.GetBitmap(wx.ART_WARNING, wx.ART_OTHER, wx.Size(16, 16)))
1211
+ tb6.SetCustomOverflowItems(prepend_items, append_items)
1212
+ tb6.SetToolDropDown(ID_DropDownToolbarItem, True)
1213
+ tb6.Realize()
1214
+
1215
+ # add a bunch of panes
1216
+ self._mgr.AddPane(self.CreateSizeReportCtrl(), aui.AuiPaneInfo().
1217
+ Name("test1").Caption("Pane Caption").Top().MinimizeButton(True))
1218
+
1219
+ self._mgr.AddPane(self.CreateSizeReportCtrl(), aui.AuiPaneInfo().
1220
+ Name("test2").Caption("Client Size Reporter").
1221
+ Bottom().Position(1).CloseButton(True).MaximizeButton(True).
1222
+ MinimizeButton(True).CaptionVisible(True, left=True))
1223
+
1224
+ self._mgr.AddPane(self.CreateSizeReportCtrl(), aui.AuiPaneInfo().
1225
+ Name("test3").Caption("Client Size Reporter").
1226
+ Bottom().CloseButton(True).MaximizeButton(True).MinimizeButton(True).
1227
+ CaptionVisible(True, left=True))
1228
+
1229
+ self._mgr.AddPane(self.CreateSizeReportCtrl(), aui.AuiPaneInfo().
1230
+ Name("test4").Caption("Pane Caption").Left())
1231
+
1232
+ self._mgr.AddPane(self.CreateSizeReportCtrl(), aui.AuiPaneInfo().
1233
+ Name("test5").Caption("No Close Button").Right().CloseButton(False))
1234
+
1235
+ self._mgr.AddPane(self.CreateSizeReportCtrl(), aui.AuiPaneInfo().
1236
+ Name("test6").Caption("Client Size Reporter").Right().Row(1).
1237
+ CloseButton(True).MaximizeButton(True).MinimizeButton(True))
1238
+
1239
+ self._mgr.AddPane(self.CreateSizeReportCtrl(), aui.AuiPaneInfo().
1240
+ Name("test7").Caption("Client Size Reporter").Left().Layer(1).
1241
+ CloseButton(True).MaximizeButton(True).MinimizeButton(True))
1242
+
1243
+ self._mgr.AddPane(self.CreateTreeCtrl(), aui.AuiPaneInfo().Name("test8").Caption("Tree Pane").
1244
+ Left().Layer(1).Position(1).CloseButton(True).MaximizeButton(True).
1245
+ MinimizeButton(True))
1246
+
1247
+ self._mgr.AddPane(self.CreateSizeReportCtrl(), aui.AuiPaneInfo().
1248
+ Name("test9").Caption("Min Size 200x100").
1249
+ BestSize(wx.Size(200,100)).MinSize(wx.Size(200,100)).Bottom().Layer(1).
1250
+ CloseButton(True).MaximizeButton(True).MinimizeButton(True))
1251
+
1252
+ self._mgr.AddPane(self.CreateTreeCtrl(), aui.AuiPaneInfo().
1253
+ Name("autonotebook").Caption("Auto NB").
1254
+ Bottom().Layer(1).Position(1).MinimizeButton(True))
1255
+
1256
+ wnd10 = self.CreateTextCtrl("This pane will prompt the user before hiding.")
1257
+ self._mgr.AddPane(wnd10, aui.AuiPaneInfo().
1258
+ Name("test10").Caption("Text Pane with Hide Prompt").
1259
+ Bottom().MinimizeButton(True), target=self._mgr.GetPane("autonotebook"))
1260
+
1261
+ self._mgr.AddPane(self.CreateTreeCtrl(), aui.AuiPaneInfo().
1262
+ Name("thirdauto").Caption("A Third Auto-NB Pane").
1263
+ Bottom().MinimizeButton(True), target=self._mgr.GetPane("autonotebook"))
1264
+
1265
+ self._mgr.AddPane(self.CreateSizeReportCtrl(), aui.AuiPaneInfo().
1266
+ Name("test11").Caption("Fixed Pane").
1267
+ Bottom().Layer(1).Position(2).Fixed().MinimizeButton(True))
1268
+
1269
+ self._mgr.AddPane(SettingsPanel(self,self), aui.AuiPaneInfo().
1270
+ Name("settings").Caption("Dock Manager Settings").
1271
+ Dockable(False).Float().Hide().MinimizeButton(True))
1272
+
1273
+ # create some center panes
1274
+
1275
+ self._mgr.AddPane(self.CreateGrid(), aui.AuiPaneInfo().Name("grid_content").
1276
+ CenterPane().Hide().MinimizeButton(True))
1277
+
1278
+ self._mgr.AddPane(self.CreateTreeCtrl(), aui.AuiPaneInfo().Name("tree_content").
1279
+ CenterPane().Hide().MinimizeButton(True))
1280
+
1281
+ self._mgr.AddPane(self.CreateSizeReportCtrl(), aui.AuiPaneInfo().Name("sizereport_content").
1282
+ CenterPane().Hide().MinimizeButton(True))
1283
+
1284
+ self._mgr.AddPane(self.CreateTextCtrl(), aui.AuiPaneInfo().Name("text_content").
1285
+ CenterPane().Hide().MinimizeButton(True))
1286
+
1287
+ self._mgr.AddPane(self.CreateHTMLCtrl(), aui.AuiPaneInfo().Name("html_content").
1288
+ CenterPane().Hide().MinimizeButton(True))
1289
+
1290
+ self._mgr.AddPane(self.CreateNotebook(), aui.AuiPaneInfo().Name("notebook_content").
1291
+ CenterPane().PaneBorder(False))
1292
+
1293
+ # add the toolbars to the manager
1294
+ self._mgr.AddPane(tb1, aui.AuiPaneInfo().Name("tb1").Caption("Big Toolbar").
1295
+ ToolbarPane().Top())
1296
+
1297
+ self._mgr.AddPane(tb2, aui.AuiPaneInfo().Name("tb2").Caption("Toolbar 2").
1298
+ ToolbarPane().Top().Row(1))
1299
+
1300
+ self._mgr.AddPane(tb3, aui.AuiPaneInfo().Name("tb3").Caption("Toolbar 3").
1301
+ ToolbarPane().Top().Row(1).Position(1))
1302
+
1303
+ self._mgr.AddPane(tb4, aui.AuiPaneInfo().Name("tb4").Caption("Sample Bookmark Toolbar").
1304
+ ToolbarPane().Top().Row(2))
1305
+
1306
+ self._mgr.AddPane(tb5, aui.AuiPaneInfo().Name("tb5").Caption("Sample Vertical Toolbar").
1307
+ ToolbarPane().Left().GripperTop())
1308
+
1309
+ self._mgr.AddPane(tb6, aui.AuiPaneInfo().
1310
+ Name("tb6").Caption("Sample Vertical Clockwise Rotated Toolbar").
1311
+ ToolbarPane().Right().GripperTop().TopDockable(False).BottomDockable(False));
1312
+
1313
+ self._mgr.AddPane(wx.Button(self, -1, "Test Button"),
1314
+ aui.AuiPaneInfo().Name("tb7").ToolbarPane().Top().Row(2).Position(1))
1315
+
1316
+ # Show how to add a control inside a tab
1317
+ notebook = self._mgr.GetPane("notebook_content").window
1318
+ self.gauge = ProgressGauge(notebook, size=(55, 15))
1319
+ notebook.AddControlToPage(4, self.gauge)
1320
+
1321
+ self._main_notebook = notebook
1322
+
1323
+ # make some default perspectives
1324
+ perspective_all = self._mgr.SavePerspective()
1325
+
1326
+ all_panes = self._mgr.GetAllPanes()
1327
+ for pane in all_panes:
1328
+ if not pane.IsToolbar():
1329
+ pane.Hide()
1330
+
1331
+ self._mgr.GetPane("tb1").Hide()
1332
+ self._mgr.GetPane("tb7").Hide()
1333
+
1334
+ self._mgr.GetPane("test8").Show().Left().Layer(0).Row(0).Position(0)
1335
+ self._mgr.GetPane("__notebook_%d"%self._mgr.GetPane("test10").notebook_id).Show().Bottom().Layer(0).Row(0).Position(0)
1336
+ self._mgr.GetPane("autonotebook").Show()
1337
+ self._mgr.GetPane("thirdauto").Show()
1338
+ self._mgr.GetPane("test10").Show()
1339
+ self._mgr.GetPane("notebook_content").Show()
1340
+
1341
+ perspective_default = self._mgr.SavePerspective()
1342
+
1343
+ self._perspectives = []
1344
+ self._perspectives.append(perspective_default)
1345
+ self._perspectives.append(perspective_all)
1346
+
1347
+ self._nb_perspectives = []
1348
+ auibook = self._mgr.GetPane("notebook_content").window
1349
+ nb_perspective_default = auibook.SavePerspective()
1350
+ self._nb_perspectives.append(nb_perspective_default)
1351
+
1352
+ self._mgr.LoadPerspective(perspective_default)
1353
+
1354
+ # Show how to get a custom minimizing behaviour, i.e., to minimize a pane
1355
+ # inside an existing AuiToolBar
1356
+ tree = self._mgr.GetPane("test8")
1357
+ tree.MinimizeMode(aui.AUI_MINIMIZE_POS_TOOLBAR)
1358
+ toolbarPane = self._mgr.GetPane(tb4)
1359
+ tree.MinimizeTarget(toolbarPane)
1360
+
1361
+ # "commit" all changes made to AuiManager
1362
+ self._mgr.Update()
1363
+
1364
+
1365
+ def BindEvents(self):
1366
+
1367
+ self.Bind(wx.EVT_ERASE_BACKGROUND, self.OnEraseBackground)
1368
+ self.Bind(wx.EVT_SIZE, self.OnSize)
1369
+ self.Bind(wx.EVT_MENU, self.OnCreateTree, id=ID_CreateTree)
1370
+ self.Bind(wx.EVT_MENU, self.OnCreateGrid, id=ID_CreateGrid)
1371
+ self.Bind(wx.EVT_MENU, self.OnCreateText, id=ID_CreateText)
1372
+ self.Bind(wx.EVT_MENU, self.OnCreateHTML, id=ID_CreateHTML)
1373
+ self.Bind(wx.EVT_MENU, self.OnCreateSizeReport, id=ID_CreateSizeReport)
1374
+ self.Bind(wx.EVT_MENU, self.OnCreateNotebook, id=ID_CreateNotebook)
1375
+ ## self.Bind(wx.EVT_MENU, self.OnSwitchPane, id=ID_SwitchPane)
1376
+ self.Bind(wx.EVT_MENU, self.OnCreatePerspective, id=ID_CreatePerspective)
1377
+ self.Bind(wx.EVT_MENU, self.OnCopyPerspectiveCode, id=ID_CopyPerspectiveCode)
1378
+ self.Bind(wx.EVT_MENU, self.OnCreateNBPerspective, id=ID_CreateNBPerspective)
1379
+ self.Bind(wx.EVT_MENU, self.OnCopyNBPerspectiveCode, id=ID_CopyNBPerspectiveCode)
1380
+ self.Bind(wx.EVT_MENU, self.OnGuides, id=ID_StandardGuides)
1381
+ self.Bind(wx.EVT_MENU, self.OnGuides, id=ID_AeroGuides)
1382
+ self.Bind(wx.EVT_MENU, self.OnGuides, id=ID_WhidbeyGuides)
1383
+ self.Bind(wx.EVT_MENU, self.OnManagerFlag, id=ID_AllowFloating)
1384
+ self.Bind(wx.EVT_MENU, self.OnManagerFlag, id=ID_TransparentHint)
1385
+ self.Bind(wx.EVT_MENU, self.OnManagerFlag, id=ID_VenetianBlindsHint)
1386
+ self.Bind(wx.EVT_MENU, self.OnManagerFlag, id=ID_RectangleHint)
1387
+ self.Bind(wx.EVT_MENU, self.OnManagerFlag, id=ID_NoHint)
1388
+ self.Bind(wx.EVT_MENU, self.OnManagerFlag, id=ID_HintFade)
1389
+ self.Bind(wx.EVT_MENU, self.OnManagerFlag, id=ID_NoVenetianFade)
1390
+ self.Bind(wx.EVT_MENU, self.OnManagerFlag, id=ID_TransparentDrag)
1391
+ self.Bind(wx.EVT_MENU, self.OnManagerFlag, id=ID_LiveUpdate)
1392
+ self.Bind(wx.EVT_MENU, self.OnManagerFlag, id=ID_SmoothDocking)
1393
+ self.Bind(wx.EVT_MENU, self.OnManagerFlag, id=ID_NativeMiniframes)
1394
+ self.Bind(wx.EVT_MENU, self.OnMinimizePosition, id=ID_MinimizePosSmart)
1395
+ self.Bind(wx.EVT_MENU, self.OnMinimizePosition, id=ID_MinimizePosTop)
1396
+ self.Bind(wx.EVT_MENU, self.OnMinimizePosition, id=ID_MinimizePosLeft)
1397
+ self.Bind(wx.EVT_MENU, self.OnMinimizePosition, id=ID_MinimizePosRight)
1398
+ self.Bind(wx.EVT_MENU, self.OnMinimizePosition, id=ID_MinimizePosBottom)
1399
+ self.Bind(wx.EVT_MENU, self.OnMinimizeCaption, id=ID_MinimizeCaptSmart)
1400
+ self.Bind(wx.EVT_MENU, self.OnMinimizeCaption, id=ID_MinimizeCaptHorz)
1401
+ self.Bind(wx.EVT_MENU, self.OnMinimizeCaption, id=ID_MinimizeCaptHide)
1402
+ self.Bind(wx.EVT_MENU, self.OnManagerFlag, id=ID_AnimateFrames)
1403
+ self.Bind(wx.EVT_MENU, self.OnSetIconsOnPanes, id=ID_PaneIcons)
1404
+ self.Bind(wx.EVT_MENU, self.OnTransparentPane, id=ID_TransparentPane)
1405
+ self.Bind(wx.EVT_MENU, self.OnDockArt, id=ID_DefaultDockArt)
1406
+ self.Bind(wx.EVT_MENU, self.OnDockArt, id=ID_ModernDockArt)
1407
+ self.Bind(wx.EVT_MENU, self.OnSnapToScreen, id=ID_SnapToScreen)
1408
+ self.Bind(wx.EVT_MENU, self.OnSnapPanes, id=ID_SnapPanes)
1409
+ self.Bind(wx.EVT_MENU, self.OnFlyOut, id=ID_FlyOut)
1410
+ self.Bind(wx.EVT_MENU, self.OnCustomPaneButtons, id=ID_CustomPaneButtons)
1411
+ self.Bind(wx.EVT_MENU, self.OnManagerFlag, id=ID_AllowActivePane)
1412
+ self.Bind(wx.EVT_MENU, self.OnNotebookFlag, id=ID_NotebookTabFixedWidth)
1413
+ self.Bind(wx.EVT_MENU, self.OnNotebookFlag, id=ID_NotebookNoCloseButton)
1414
+ self.Bind(wx.EVT_MENU, self.OnNotebookFlag, id=ID_NotebookCloseButton)
1415
+ self.Bind(wx.EVT_MENU, self.OnNotebookFlag, id=ID_NotebookCloseButtonAll)
1416
+ self.Bind(wx.EVT_MENU, self.OnNotebookFlag, id=ID_NotebookCloseButtonActive)
1417
+ self.Bind(wx.EVT_MENU, self.OnNotebookFlag, id=ID_NotebookAllowTabMove)
1418
+ self.Bind(wx.EVT_MENU, self.OnNotebookFlag, id=ID_NotebookAllowTabExternalMove)
1419
+ self.Bind(wx.EVT_MENU, self.OnNotebookFlag, id=ID_NotebookAllowTabSplit)
1420
+ self.Bind(wx.EVT_MENU, self.OnNotebookFlag, id=ID_NotebookTabFloat)
1421
+ self.Bind(wx.EVT_MENU, self.OnNotebookFlag, id=ID_NotebookDclickUnsplit)
1422
+ self.Bind(wx.EVT_MENU, self.OnNotebookFlag, id=ID_NotebookTabDrawDnd)
1423
+ self.Bind(wx.EVT_MENU, self.OnNotebookFlag, id=ID_NotebookScrollButtons)
1424
+ self.Bind(wx.EVT_MENU, self.OnNotebookFlag, id=ID_NotebookWindowList)
1425
+ self.Bind(wx.EVT_MENU, self.OnNotebookFlag, id=ID_NotebookArtGloss)
1426
+ self.Bind(wx.EVT_MENU, self.OnNotebookFlag, id=ID_NotebookArtSimple)
1427
+ self.Bind(wx.EVT_MENU, self.OnNotebookFlag, id=ID_NotebookArtVC71)
1428
+ self.Bind(wx.EVT_MENU, self.OnNotebookFlag, id=ID_NotebookArtFF2)
1429
+ self.Bind(wx.EVT_MENU, self.OnNotebookFlag, id=ID_NotebookArtVC8)
1430
+ self.Bind(wx.EVT_MENU, self.OnNotebookFlag, id=ID_NotebookArtChrome)
1431
+ self.Bind(wx.EVT_MENU, self.OnNotebookFlag, id=ID_NotebookHideSingle)
1432
+ self.Bind(wx.EVT_MENU, self.OnNotebookFlag, id=ID_NotebookSmartTab)
1433
+ self.Bind(wx.EVT_MENU, self.OnNotebookFlag, id=ID_NotebookUseImagesDropDown)
1434
+ self.Bind(wx.EVT_MENU, self.OnNotebookFlag, id=ID_NotebookCloseOnLeft)
1435
+ self.Bind(wx.EVT_MENU, self.OnTabAlignment, id=ID_NotebookAlignTop)
1436
+ self.Bind(wx.EVT_MENU, self.OnTabAlignment, id=ID_NotebookAlignBottom)
1437
+ self.Bind(wx.EVT_MENU, self.OnCustomTabButtons, id=ID_NotebookCustomButtons)
1438
+ self.Bind(wx.EVT_MENU, self.OnMinMaxTabWidth, id=ID_NotebookMinMaxWidth)
1439
+ self.Bind(wx.EVT_MENU, self.OnPreview, id=ID_NotebookPreview)
1440
+ self.Bind(wx.EVT_MENU, self.OnAddMultiLine, id=ID_NotebookMultiLine)
1441
+
1442
+ self.Bind(wx.EVT_MENU, self.OnGradient, id=ID_NoGradient)
1443
+ self.Bind(wx.EVT_MENU, self.OnGradient, id=ID_VerticalGradient)
1444
+ self.Bind(wx.EVT_MENU, self.OnGradient, id=ID_HorizontalGradient)
1445
+ self.Bind(wx.EVT_MENU, self.OnSettings, id=ID_Settings)
1446
+ self.Bind(wx.EVT_MENU, self.OnPreviewMinimized, id=ID_PreviewMinimized)
1447
+ self.Bind(wx.EVT_MENU, self.OnCustomizeToolbar, id=ID_CustomizeToolbar)
1448
+ self.Bind(wx.EVT_MENU, self.OnChangeContentPane, id=ID_GridContent)
1449
+ self.Bind(wx.EVT_MENU, self.OnChangeContentPane, id=ID_TreeContent)
1450
+ self.Bind(wx.EVT_MENU, self.OnChangeContentPane, id=ID_TextContent)
1451
+ self.Bind(wx.EVT_MENU, self.OnChangeContentPane, id=ID_SizeReportContent)
1452
+ self.Bind(wx.EVT_MENU, self.OnChangeContentPane, id=ID_HTMLContent)
1453
+ self.Bind(wx.EVT_MENU, self.OnChangeContentPane, id=ID_NotebookContent)
1454
+ self.Bind(wx.EVT_MENU, self.OnVetoTree, id=ID_VetoTree)
1455
+ self.Bind(wx.EVT_MENU, self.OnVetoText, id=ID_VetoText)
1456
+
1457
+ for ids in self._requestPanes:
1458
+ self.Bind(wx.EVT_MENU, self.OnRequestUserAttention, id=ids)
1459
+
1460
+ self.Bind(wx.EVT_MENU, self.OnExit, id=wx.ID_EXIT)
1461
+ self.Bind(wx.EVT_MENU, self.OnAbout, id=wx.ID_ABOUT)
1462
+
1463
+ self.Bind(wx.EVT_MENU_RANGE, self.OnRestorePerspective, id=ID_FirstPerspective,
1464
+ id2=ID_FirstPerspective+1000)
1465
+ self.Bind(wx.EVT_MENU_RANGE, self.OnRestoreNBPerspective, id=ID_FirstNBPerspective,
1466
+ id2=ID_FirstNBPerspective+1000)
1467
+
1468
+ self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_AllowFloating)
1469
+ self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_TransparentHint)
1470
+ self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_HintFade)
1471
+ self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_TransparentDrag)
1472
+ self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_NoGradient)
1473
+ self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_VerticalGradient)
1474
+ self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_HorizontalGradient)
1475
+ self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_VenetianBlindsHint)
1476
+ self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_RectangleHint)
1477
+ self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_NoHint)
1478
+ self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_NoVenetianFade)
1479
+ self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_LiveUpdate)
1480
+ self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_PaneIcons)
1481
+ self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_AnimateFrames)
1482
+ self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_DefaultDockArt)
1483
+ self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_ModernDockArt)
1484
+ self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_SnapPanes)
1485
+ self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_FlyOut)
1486
+ self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_CustomPaneButtons)
1487
+
1488
+ self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_NotebookTabFixedWidth)
1489
+ self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_NotebookNoCloseButton)
1490
+ self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_NotebookCloseButton)
1491
+ self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_NotebookCloseButtonAll)
1492
+ self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_NotebookCloseButtonActive)
1493
+ self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_NotebookAllowTabMove)
1494
+ self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_NotebookAllowTabExternalMove)
1495
+ self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_NotebookAllowTabSplit)
1496
+ self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_NotebookTabFloat)
1497
+ self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_NotebookDclickUnsplit)
1498
+ self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_NotebookTabDrawDnd)
1499
+ self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_NotebookScrollButtons)
1500
+ self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_NotebookWindowList)
1501
+ self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_NotebookHideSingle)
1502
+ self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_NotebookSmartTab)
1503
+ self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_NotebookUseImagesDropDown)
1504
+ self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_NotebookCustomButtons)
1505
+ self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_VetoTree)
1506
+ self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_VetoText)
1507
+ self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_StandardGuides)
1508
+ self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_AeroGuides)
1509
+ self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_WhidbeyGuides)
1510
+
1511
+ for ids in self._requestPanes:
1512
+ self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ids)
1513
+
1514
+ self.Bind(aui.EVT_AUITOOLBAR_TOOL_DROPDOWN, self.OnDropDownToolbarItem, id=ID_DropDownToolbarItem)
1515
+ self.Bind(aui.EVT_AUI_PANE_CLOSE, self.OnPaneClose)
1516
+ self.Bind(aui.EVT_AUINOTEBOOK_ALLOW_DND, self.OnAllowNotebookDnD)
1517
+ self.Bind(aui.EVT_AUINOTEBOOK_PAGE_CLOSE, self.OnNotebookPageClose)
1518
+
1519
+ self.Bind(aui.EVT_AUI_PANE_FLOATING, self.OnFloatDock)
1520
+ self.Bind(aui.EVT_AUI_PANE_FLOATED, self.OnFloatDock)
1521
+ self.Bind(aui.EVT_AUI_PANE_DOCKING, self.OnFloatDock)
1522
+ self.Bind(aui.EVT_AUI_PANE_DOCKED, self.OnFloatDock)
1523
+
1524
+ self.Bind(wx.EVT_CLOSE, self.OnClose)
1525
+
1526
+ self.Bind(wx.EVT_TIMER, self.TimerHandler)
1527
+ self.timer = wx.Timer(self)
1528
+ self.timer.Start(100)
1529
+
1530
+
1531
+ def __del__(self):
1532
+
1533
+ self.timer.Stop()
1534
+
1535
+
1536
+ def OnClose(self, event):
1537
+
1538
+ self.timer.Stop()
1539
+ self._mgr.UnInit()
1540
+ event.Skip()
1541
+
1542
+
1543
+ def TimerHandler(self, event):
1544
+
1545
+ try:
1546
+ self.gauge.Pulse()
1547
+ except:
1548
+ self.timer.Stop()
1549
+
1550
+
1551
+ def GetDockArt(self):
1552
+
1553
+ return self._mgr.GetArtProvider()
1554
+
1555
+
1556
+ def DoUpdate(self):
1557
+
1558
+ self._mgr.Update()
1559
+ self.Refresh()
1560
+
1561
+
1562
+ def OnEraseBackground(self, event):
1563
+
1564
+ event.Skip()
1565
+
1566
+
1567
+ def OnSize(self, event):
1568
+
1569
+ event.Skip()
1570
+
1571
+
1572
+ def OnSettings(self, event):
1573
+
1574
+ # show the settings pane, and float it
1575
+ floating_pane = self._mgr.GetPane("settings").Float().Show()
1576
+
1577
+ if floating_pane.floating_pos == wx.DefaultPosition:
1578
+ floating_pane.FloatingPosition(self.GetStartPosition())
1579
+
1580
+ self._mgr.Update()
1581
+
1582
+
1583
+ def OnPreviewMinimized(self, event):
1584
+
1585
+ checked = event.IsChecked()
1586
+ agwFlags = self._mgr.GetAGWFlags()
1587
+
1588
+ if event.IsChecked():
1589
+ agwFlags ^= aui.AUI_MGR_PREVIEW_MINIMIZED_PANES
1590
+ else:
1591
+ agwFlags &= ~aui.AUI_MGR_PREVIEW_MINIMIZED_PANES
1592
+
1593
+ self._mgr.SetAGWFlags(agwFlags)
1594
+
1595
+
1596
+ def OnSetIconsOnPanes(self, event):
1597
+
1598
+ panes = self._mgr.GetAllPanes()
1599
+ checked = event.IsChecked()
1600
+ self._pane_icons = checked
1601
+
1602
+ for pane in panes:
1603
+ if checked:
1604
+ randimage = random.randint(0, len(ArtIDs) - 1)
1605
+ bmp = wx.ArtProvider.GetBitmap(eval(ArtIDs[randimage]), wx.ART_OTHER, (16, 16))
1606
+ else:
1607
+ bmp = None
1608
+
1609
+ pane.Icon(bmp)
1610
+
1611
+ self._mgr.Update()
1612
+
1613
+
1614
+ def OnTransparentPane(self, event):
1615
+
1616
+ dlg = wx.TextEntryDialog(self, "Enter a transparency value (0-255):", "Pane transparency")
1617
+
1618
+ dlg.SetValue("%d"%self._transparency)
1619
+ if dlg.ShowModal() != wx.ID_OK:
1620
+ return
1621
+
1622
+ transparency = int(dlg.GetValue())
1623
+ dlg.Destroy()
1624
+ try:
1625
+ transparency = int(transparency)
1626
+ except:
1627
+ dlg = wx.MessageDialog(self, 'Invalid transparency value. Transparency' \
1628
+ ' should be an integer between 0 and 255.',
1629
+ 'Error',
1630
+ wx.OK | wx.ICON_ERROR)
1631
+ dlg.ShowModal()
1632
+ dlg.Destroy()
1633
+ return
1634
+
1635
+ if transparency < 0 or transparency > 255:
1636
+ dlg = wx.MessageDialog(self, 'Invalid transparency value. Transparency' \
1637
+ ' should be an integer between 0 and 255.',
1638
+ 'Error',
1639
+ wx.OK | wx.ICON_ERROR)
1640
+ dlg.ShowModal()
1641
+ dlg.Destroy()
1642
+ return
1643
+
1644
+ self._transparency = transparency
1645
+ panes = self._mgr.GetAllPanes()
1646
+ for pane in panes:
1647
+ pane.Transparent(self._transparency)
1648
+
1649
+ self._mgr.Update()
1650
+
1651
+
1652
+ def OnDockArt(self, event):
1653
+
1654
+ if event.GetId() == ID_DefaultDockArt:
1655
+ self._mgr.SetArtProvider(aui.AuiDefaultDockArt())
1656
+ else:
1657
+ if self._mgr.CanUseModernDockArt():
1658
+ self._mgr.SetArtProvider(aui.ModernDockArt(self))
1659
+
1660
+ self._mgr.Update()
1661
+ self.Refresh()
1662
+
1663
+
1664
+ def OnSnapToScreen(self, event):
1665
+
1666
+ self._mgr.SnapToScreen(True, monitor=0, hAlign=wx.RIGHT, vAlign=wx.TOP)
1667
+
1668
+
1669
+ def OnSnapPanes(self, event):
1670
+
1671
+ allPanes = self._mgr.GetAllPanes()
1672
+
1673
+ if not self._snapped:
1674
+ self._captions = {}
1675
+ for pane in allPanes:
1676
+ self._captions[pane.name] = pane.caption
1677
+
1678
+ toSnap = not self._snapped
1679
+
1680
+ if toSnap:
1681
+ for pane in allPanes:
1682
+ if pane.IsToolbar() or isinstance(pane.window, aui.AuiNotebook):
1683
+ continue
1684
+
1685
+ snap = random.randint(0, 4)
1686
+ if snap == 0:
1687
+ # Snap everywhere
1688
+ pane.Caption(pane.caption + " (Snap Everywhere)")
1689
+ pane.Snappable(True)
1690
+ elif snap == 1:
1691
+ # Snap left
1692
+ pane.Caption(pane.caption + " (Snap Left)")
1693
+ pane.LeftSnappable(True)
1694
+ elif snap == 2:
1695
+ # Snap right
1696
+ pane.Caption(pane.caption + " (Snap Right)")
1697
+ pane.RightSnappable(True)
1698
+ elif snap == 3:
1699
+ # Snap top
1700
+ pane.Caption(pane.caption + " (Snap Top)")
1701
+ pane.TopSnappable(True)
1702
+ elif snap == 4:
1703
+ # Snap bottom
1704
+ pane.Caption(pane.caption + " (Snap Bottom)")
1705
+ pane.BottomSnappable(True)
1706
+
1707
+ else:
1708
+
1709
+ for pane in allPanes:
1710
+ if pane.IsToolbar() or isinstance(pane.window, aui.AuiNotebook):
1711
+ continue
1712
+
1713
+ pane.Caption(self._captions[pane.name])
1714
+ pane.Snappable(False)
1715
+
1716
+ self._snapped = toSnap
1717
+ self._mgr.Update()
1718
+ self.Refresh()
1719
+
1720
+
1721
+ def OnFlyOut(self, event):
1722
+
1723
+ checked = event.IsChecked()
1724
+ pane = self._mgr.GetPane("test8")
1725
+
1726
+ if checked:
1727
+ dlg = wx.MessageDialog(self, 'The tree pane will have fly-out' \
1728
+ ' behaviour when floating.',
1729
+ 'Message',
1730
+ wx.OK | wx.ICON_INFORMATION)
1731
+ dlg.ShowModal()
1732
+ dlg.Destroy()
1733
+ pane.FlyOut(True)
1734
+ else:
1735
+ pane.FlyOut(False)
1736
+
1737
+ self._mgr.Update()
1738
+
1739
+
1740
+ def OnCustomPaneButtons(self, event):
1741
+
1742
+ self._custom_pane_buttons = checked = event.IsChecked()
1743
+ art = self._mgr.GetArtProvider()
1744
+
1745
+ if not checked:
1746
+ art.SetDefaultPaneBitmaps(wx.Platform == "__WXMAC__")
1747
+ else:
1748
+ for bmp, button, active, maximize in CUSTOM_PANE_BITMAPS:
1749
+ art.SetCustomPaneBitmap(bmp.GetBitmap(), button, active, maximize)
1750
+
1751
+ self._mgr.Update()
1752
+ self.Refresh()
1753
+
1754
+
1755
+ def OnCustomizeToolbar(self, event):
1756
+
1757
+ wx.MessageBox("Customize Toolbar clicked", "AUI Test")
1758
+
1759
+
1760
+ def OnGradient(self, event):
1761
+
1762
+ evId = event.GetId()
1763
+ if evId == ID_NoGradient:
1764
+ gradient = aui.AUI_GRADIENT_NONE
1765
+ elif evId == ID_VerticalGradient:
1766
+ gradient = aui.AUI_GRADIENT_VERTICAL
1767
+ elif evId == ID_HorizontalGradient:
1768
+ gradient = aui.AUI_GRADIENT_HORIZONTAL
1769
+
1770
+ self._mgr.GetArtProvider().SetMetric(aui.AUI_DOCKART_GRADIENT_TYPE, gradient)
1771
+ self._mgr.Update()
1772
+
1773
+
1774
+ def OnManagerFlag(self, event):
1775
+
1776
+ flag = 0
1777
+ evId = event.GetId()
1778
+
1779
+ if evId in [ID_TransparentHint, ID_VenetianBlindsHint, ID_RectangleHint, ID_NoHint]:
1780
+
1781
+ agwFlags = self._mgr.GetAGWFlags()
1782
+ agwFlags &= ~aui.AUI_MGR_TRANSPARENT_HINT
1783
+ agwFlags &= ~aui.AUI_MGR_VENETIAN_BLINDS_HINT
1784
+ agwFlags &= ~aui.AUI_MGR_RECTANGLE_HINT
1785
+ self._mgr.SetAGWFlags(agwFlags)
1786
+
1787
+ if evId == ID_AllowFloating:
1788
+ flag = aui.AUI_MGR_ALLOW_FLOATING
1789
+ elif evId == ID_TransparentDrag:
1790
+ flag = aui.AUI_MGR_TRANSPARENT_DRAG
1791
+ elif evId == ID_HintFade:
1792
+ flag = aui.AUI_MGR_HINT_FADE
1793
+ elif evId == ID_NoVenetianFade:
1794
+ flag = aui.AUI_MGR_NO_VENETIAN_BLINDS_FADE
1795
+ elif evId == ID_AllowActivePane:
1796
+ flag = aui.AUI_MGR_ALLOW_ACTIVE_PANE
1797
+ elif evId == ID_TransparentHint:
1798
+ flag = aui.AUI_MGR_TRANSPARENT_HINT
1799
+ elif evId == ID_VenetianBlindsHint:
1800
+ flag = aui.AUI_MGR_VENETIAN_BLINDS_HINT
1801
+ elif evId == ID_RectangleHint:
1802
+ flag = aui.AUI_MGR_RECTANGLE_HINT
1803
+ elif evId == ID_LiveUpdate:
1804
+ flag = aui.AUI_MGR_LIVE_RESIZE
1805
+ elif evId == ID_AnimateFrames:
1806
+ flag = aui.AUI_MGR_ANIMATE_FRAMES
1807
+ elif evId == ID_SmoothDocking:
1808
+ flag = aui.AUI_MGR_SMOOTH_DOCKING
1809
+ elif evId == ID_NativeMiniframes:
1810
+ flag = aui.AUI_MGR_USE_NATIVE_MINIFRAMES
1811
+
1812
+ if flag:
1813
+ self._mgr.SetAGWFlags(self._mgr.GetAGWFlags() ^ flag)
1814
+
1815
+ self._mgr.Update()
1816
+
1817
+
1818
+ def OnMinimizePosition(self, event):
1819
+
1820
+ minize_mode = 0
1821
+ evId = event.GetId()
1822
+
1823
+ if evId == ID_MinimizePosSmart:
1824
+ minize_mode |= aui.AUI_MINIMIZE_POS_SMART
1825
+ elif evId == ID_MinimizePosTop:
1826
+ minize_mode |= aui.AUI_MINIMIZE_POS_TOP
1827
+ elif evId == ID_MinimizePosLeft:
1828
+ minize_mode |= aui.AUI_MINIMIZE_POS_LEFT
1829
+ elif evId == ID_MinimizePosRight:
1830
+ minize_mode |= aui.AUI_MINIMIZE_POS_RIGHT
1831
+ elif evId == ID_MinimizePosBottom:
1832
+ minize_mode |= aui.AUI_MINIMIZE_POS_BOTTOM
1833
+
1834
+ all_panes = self._mgr.GetAllPanes()
1835
+ for pane in all_panes:
1836
+ if pane.name != "test8":
1837
+ pane.MinimizeMode(minize_mode | (pane.GetMinimizeMode() & aui.AUI_MINIMIZE_CAPT_MASK))
1838
+
1839
+
1840
+ def OnMinimizeCaption(self, event):
1841
+
1842
+ minize_mode = 0
1843
+ evId = event.GetId()
1844
+
1845
+ if evId == ID_MinimizeCaptSmart:
1846
+ minize_mode |= aui.AUI_MINIMIZE_CAPT_SMART
1847
+ elif evId == ID_MinimizeCaptHorz:
1848
+ minize_mode |= aui.AUI_MINIMIZE_CAPT_HORZ
1849
+ elif evId == ID_MinimizeCaptHide:
1850
+ minize_mode |= aui.AUI_MINIMIZE_CAPT_HIDE
1851
+
1852
+ all_panes = self._mgr.GetAllPanes()
1853
+ for pane in all_panes:
1854
+ pane.MinimizeMode(minize_mode | (pane.GetMinimizeMode() & aui.AUI_MINIMIZE_POS_MASK))
1855
+
1856
+
1857
+ def OnNotebookFlag(self, event):
1858
+
1859
+ evId = event.GetId()
1860
+ unsplit = None
1861
+
1862
+ if evId in [ID_NotebookNoCloseButton, ID_NotebookCloseButton, ID_NotebookCloseButtonAll, \
1863
+ ID_NotebookCloseButtonActive]:
1864
+
1865
+ self._notebook_style &= ~(aui.AUI_NB_CLOSE_BUTTON |
1866
+ aui.AUI_NB_CLOSE_ON_ACTIVE_TAB |
1867
+ aui.AUI_NB_CLOSE_ON_ALL_TABS)
1868
+
1869
+ if evId == ID_NotebookCloseButton:
1870
+ self._notebook_style ^= aui.AUI_NB_CLOSE_BUTTON
1871
+ elif evId == ID_NotebookCloseButtonAll:
1872
+ self._notebook_style ^= aui.AUI_NB_CLOSE_ON_ALL_TABS
1873
+ elif evId == ID_NotebookCloseButtonActive:
1874
+ self._notebook_style ^= aui.AUI_NB_CLOSE_ON_ACTIVE_TAB
1875
+
1876
+ if evId == ID_NotebookAllowTabMove:
1877
+ self._notebook_style ^= aui.AUI_NB_TAB_MOVE
1878
+
1879
+ if evId == ID_NotebookAllowTabExternalMove:
1880
+ self._notebook_style ^= aui.AUI_NB_TAB_EXTERNAL_MOVE
1881
+
1882
+ elif evId == ID_NotebookAllowTabSplit:
1883
+ self._notebook_style ^= aui.AUI_NB_TAB_SPLIT
1884
+
1885
+ elif evId == ID_NotebookTabFloat:
1886
+ self._notebook_style ^= aui.AUI_NB_TAB_FLOAT
1887
+
1888
+ elif evId == ID_NotebookTabDrawDnd:
1889
+ self._notebook_style ^= aui.AUI_NB_DRAW_DND_TAB
1890
+
1891
+ elif evId == ID_NotebookWindowList:
1892
+ self._notebook_style ^= aui.AUI_NB_WINDOWLIST_BUTTON
1893
+
1894
+ elif evId == ID_NotebookScrollButtons:
1895
+ self._notebook_style ^= aui.AUI_NB_SCROLL_BUTTONS
1896
+
1897
+ elif evId == ID_NotebookTabFixedWidth:
1898
+ self._notebook_style ^= aui.AUI_NB_TAB_FIXED_WIDTH
1899
+
1900
+ elif evId == ID_NotebookHideSingle:
1901
+ self._notebook_style ^= aui.AUI_NB_HIDE_ON_SINGLE_TAB
1902
+
1903
+ elif evId == ID_NotebookSmartTab:
1904
+ self._notebook_style ^= aui.AUI_NB_SMART_TABS
1905
+
1906
+ elif evId == ID_NotebookUseImagesDropDown:
1907
+ self._notebook_style ^= aui.AUI_NB_USE_IMAGES_DROPDOWN
1908
+
1909
+ elif evId == ID_NotebookCloseOnLeft:
1910
+ self._notebook_style ^= aui.AUI_NB_CLOSE_ON_TAB_LEFT
1911
+
1912
+ all_panes = self._mgr.GetAllPanes()
1913
+
1914
+ for pane in all_panes:
1915
+
1916
+ if isinstance(pane.window, aui.AuiNotebook):
1917
+ nb = pane.window
1918
+
1919
+ if evId == ID_NotebookArtGloss:
1920
+
1921
+ nb.SetArtProvider(aui.AuiDefaultTabArt())
1922
+ self._notebook_theme = 0
1923
+
1924
+ elif evId == ID_NotebookArtSimple:
1925
+ nb.SetArtProvider(aui.AuiSimpleTabArt())
1926
+ self._notebook_theme = 1
1927
+
1928
+ elif evId == ID_NotebookArtVC71:
1929
+ nb.SetArtProvider(aui.VC71TabArt())
1930
+ self._notebook_theme = 2
1931
+
1932
+ elif evId == ID_NotebookArtFF2:
1933
+ nb.SetArtProvider(aui.FF2TabArt())
1934
+ self._notebook_theme = 3
1935
+
1936
+ elif evId == ID_NotebookArtVC8:
1937
+ nb.SetArtProvider(aui.VC8TabArt())
1938
+ self._notebook_theme = 4
1939
+
1940
+ elif evId == ID_NotebookArtChrome:
1941
+ nb.SetArtProvider(aui.ChromeTabArt())
1942
+ self._notebook_theme = 5
1943
+
1944
+ if nb.GetAGWWindowStyleFlag() & aui.AUI_NB_BOTTOM == 0:
1945
+ nb.SetAGWWindowStyleFlag(self._notebook_style)
1946
+
1947
+ if evId == ID_NotebookCloseButtonAll:
1948
+ # Demonstrate how to remove a close button from a tab
1949
+ nb.SetCloseButton(2, False)
1950
+ elif evId == ID_NotebookDclickUnsplit:
1951
+ nb.SetSashDClickUnsplit(event.IsChecked())
1952
+
1953
+ nb.Refresh()
1954
+ nb.Update()
1955
+
1956
+
1957
+ def OnUpdateUI(self, event):
1958
+
1959
+ agwFlags = self._mgr.GetAGWFlags()
1960
+ evId = event.GetId()
1961
+
1962
+ if evId == ID_NoGradient:
1963
+ event.Check(self._mgr.GetArtProvider().GetMetric(aui.AUI_DOCKART_GRADIENT_TYPE) == aui.AUI_GRADIENT_NONE)
1964
+
1965
+ elif evId == ID_VerticalGradient:
1966
+ event.Check(self._mgr.GetArtProvider().GetMetric(aui.AUI_DOCKART_GRADIENT_TYPE) == aui.AUI_GRADIENT_VERTICAL)
1967
+
1968
+ elif evId == ID_HorizontalGradient:
1969
+ event.Check(self._mgr.GetArtProvider().GetMetric(aui.AUI_DOCKART_GRADIENT_TYPE) == aui.AUI_GRADIENT_HORIZONTAL)
1970
+
1971
+ elif evId == ID_AllowFloating:
1972
+ event.Check((agwFlags & aui.AUI_MGR_ALLOW_FLOATING) != 0)
1973
+
1974
+ elif evId == ID_TransparentDrag:
1975
+ event.Check((agwFlags & aui.AUI_MGR_TRANSPARENT_DRAG) != 0)
1976
+
1977
+ elif evId == ID_TransparentHint:
1978
+ event.Check((agwFlags & aui.AUI_MGR_TRANSPARENT_HINT) != 0)
1979
+
1980
+ elif evId == ID_LiveUpdate:
1981
+ event.Check(aui.AuiManager_HasLiveResize(self._mgr))
1982
+
1983
+ elif evId == ID_VenetianBlindsHint:
1984
+ event.Check((agwFlags & aui.AUI_MGR_VENETIAN_BLINDS_HINT) != 0)
1985
+
1986
+ elif evId == ID_RectangleHint:
1987
+ event.Check((agwFlags & aui.AUI_MGR_RECTANGLE_HINT) != 0)
1988
+
1989
+ elif evId == ID_NoHint:
1990
+ event.Check(((aui.AUI_MGR_TRANSPARENT_HINT |
1991
+ aui.AUI_MGR_VENETIAN_BLINDS_HINT |
1992
+ aui.AUI_MGR_RECTANGLE_HINT) & agwFlags) == 0)
1993
+
1994
+ elif evId == ID_HintFade:
1995
+ event.Check((agwFlags & aui.AUI_MGR_HINT_FADE) != 0)
1996
+
1997
+ elif evId == ID_NoVenetianFade:
1998
+ event.Check((agwFlags & aui.AUI_MGR_NO_VENETIAN_BLINDS_FADE) != 0)
1999
+
2000
+ elif evId == ID_NativeMiniframes:
2001
+ event.Check(aui.AuiManager_UseNativeMiniframes(self._mgr))
2002
+
2003
+ elif evId == ID_PaneIcons:
2004
+ event.Check(self._pane_icons)
2005
+
2006
+ elif evId == ID_SmoothDocking:
2007
+ event.Check((agwFlags & aui.AUI_MGR_SMOOTH_DOCKING) != 0)
2008
+
2009
+ elif evId == ID_AnimateFrames:
2010
+ event.Check((agwFlags & aui.AUI_MGR_ANIMATE_FRAMES) != 0)
2011
+
2012
+ elif evId == ID_DefaultDockArt:
2013
+ event.Check(isinstance(self._mgr.GetArtProvider(), aui.AuiDefaultDockArt))
2014
+
2015
+ elif evId == ID_ModernDockArt:
2016
+ event.Check(isinstance(self._mgr.GetArtProvider(), aui.ModernDockArt))
2017
+
2018
+ elif evId == ID_SnapPanes:
2019
+ event.Check(self._snapped)
2020
+
2021
+ elif evId == ID_FlyOut:
2022
+ pane = self._mgr.GetPane("test8")
2023
+ event.Check(pane.IsFlyOut())
2024
+
2025
+ elif evId == ID_AeroGuides:
2026
+ event.Check(agwFlags & aui.AUI_MGR_AERO_DOCKING_GUIDES != 0)
2027
+
2028
+ elif evId == ID_WhidbeyGuides:
2029
+ event.Check(agwFlags & aui.AUI_MGR_WHIDBEY_DOCKING_GUIDES != 0)
2030
+
2031
+ elif evId == ID_StandardGuides:
2032
+ event.Check((agwFlags & aui.AUI_MGR_AERO_DOCKING_GUIDES == 0) and (agwFlags & aui.AUI_MGR_WHIDBEY_DOCKING_GUIDES == 0))
2033
+
2034
+ elif evId == ID_CustomPaneButtons:
2035
+ event.Check(self._custom_pane_buttons)
2036
+
2037
+ elif evId == ID_PreviewMinimized:
2038
+ event.Check(agwFlags & aui.AUI_MGR_PREVIEW_MINIMIZED_PANES)
2039
+
2040
+ elif evId == ID_NotebookNoCloseButton:
2041
+ event.Check((self._notebook_style & (aui.AUI_NB_CLOSE_BUTTON|aui.AUI_NB_CLOSE_ON_ALL_TABS|aui.AUI_NB_CLOSE_ON_ACTIVE_TAB)) != 0)
2042
+
2043
+ elif evId == ID_NotebookCloseButton:
2044
+ event.Check((self._notebook_style & aui.AUI_NB_CLOSE_BUTTON) != 0)
2045
+
2046
+ elif evId == ID_NotebookCloseButtonAll:
2047
+ event.Check((self._notebook_style & aui.AUI_NB_CLOSE_ON_ALL_TABS) != 0)
2048
+
2049
+ elif evId == ID_NotebookCloseButtonActive:
2050
+ event.Check((self._notebook_style & aui.AUI_NB_CLOSE_ON_ACTIVE_TAB) != 0)
2051
+
2052
+ elif evId == ID_NotebookAllowTabSplit:
2053
+ event.Check((self._notebook_style & aui.AUI_NB_TAB_SPLIT) != 0)
2054
+
2055
+ elif evId == ID_NotebookTabFloat:
2056
+ event.Check((self._notebook_style & aui.AUI_NB_TAB_FLOAT) != 0)
2057
+
2058
+ elif evId == ID_NotebookDclickUnsplit:
2059
+ event.Check(self._main_notebook.GetSashDClickUnsplit())
2060
+
2061
+ elif evId == ID_NotebookTabDrawDnd:
2062
+ event.Check((self._notebook_style & aui.AUI_NB_DRAW_DND_TAB) != 0)
2063
+
2064
+ elif evId == ID_NotebookAllowTabMove:
2065
+ event.Check((self._notebook_style & aui.AUI_NB_TAB_MOVE) != 0)
2066
+
2067
+ elif evId == ID_NotebookAllowTabExternalMove:
2068
+ event.Check((self._notebook_style & aui.AUI_NB_TAB_EXTERNAL_MOVE) != 0)
2069
+
2070
+ elif evId == ID_NotebookScrollButtons:
2071
+ event.Check((self._notebook_style & aui.AUI_NB_SCROLL_BUTTONS) != 0)
2072
+
2073
+ elif evId == ID_NotebookWindowList:
2074
+ event.Check((self._notebook_style & aui.AUI_NB_WINDOWLIST_BUTTON) != 0)
2075
+
2076
+ elif evId == ID_NotebookTabFixedWidth:
2077
+ event.Check((self._notebook_style & aui.AUI_NB_TAB_FIXED_WIDTH) != 0)
2078
+
2079
+ elif evId == ID_NotebookHideSingle:
2080
+ event.Check((self._notebook_style & aui.AUI_NB_HIDE_ON_SINGLE_TAB) != 0)
2081
+
2082
+ elif evId == ID_NotebookSmartTab:
2083
+ event.Check((self._notebook_style & aui.AUI_NB_SMART_TABS) != 0)
2084
+
2085
+ elif evId == ID_NotebookUseImagesDropDown:
2086
+ event.Check((self._notebook_style & aui.AUI_NB_USE_IMAGES_DROPDOWN) != 0)
2087
+
2088
+ elif evId == ID_NotebookCloseOnLeft:
2089
+ event.Check((self._notebook_style & aui.AUI_NB_CLOSE_ON_TAB_LEFT) != 0)
2090
+
2091
+ elif evId == ID_NotebookCustomButtons:
2092
+ event.Check(self._custom_tab_buttons)
2093
+
2094
+ elif evId == ID_NotebookArtGloss:
2095
+ event.Check(self._notebook_theme == 0)
2096
+
2097
+ elif evId == ID_NotebookArtSimple:
2098
+ event.Check(self._notebook_theme == 1)
2099
+
2100
+ elif evId == ID_NotebookArtVC71:
2101
+ event.Check(self._notebook_theme == 2)
2102
+
2103
+ elif evId == ID_NotebookArtFF2:
2104
+ event.Check(self._notebook_theme == 3)
2105
+
2106
+ elif evId == ID_NotebookArtVC8:
2107
+ event.Check(self._notebook_theme == 4)
2108
+
2109
+ elif evId == ID_NotebookArtChrome:
2110
+ event.Check(self._notebook_theme == 5)
2111
+
2112
+ elif evId == ID_VetoTree:
2113
+ event.Check(self._veto_tree)
2114
+
2115
+ elif evId == ID_VetoText:
2116
+ event.Check(self._veto_text)
2117
+
2118
+ else:
2119
+ for ids in self._requestPanes:
2120
+ if evId == ids:
2121
+ paneName = self._requestPanes[ids]
2122
+ pane = self._mgr.GetPane(paneName)
2123
+ event.Enable(pane.IsShown())
2124
+
2125
+
2126
+ def OnPaneClose(self, event):
2127
+
2128
+ if event.pane.name == "test10":
2129
+
2130
+ msg = "Are you sure you want to "
2131
+ if event.GetEventType() == aui.wxEVT_AUI_PANE_MINIMIZE:
2132
+ msg += "minimize "
2133
+ else:
2134
+ msg += "close/hide "
2135
+
2136
+ res = wx.MessageBox(msg + "this pane?", "AUI", wx.YES_NO, self)
2137
+ if res != wx.YES:
2138
+ event.Veto()
2139
+
2140
+
2141
+ def OnCreatePerspective(self, event):
2142
+
2143
+ dlg = wx.TextEntryDialog(self, "Enter a name for the new perspective:", "AUI Test")
2144
+
2145
+ dlg.SetValue("Perspective %u"%(len(self._perspectives) + 1))
2146
+ if dlg.ShowModal() != wx.ID_OK:
2147
+ return
2148
+
2149
+ if len(self._perspectives) == 0:
2150
+ self._perspectives_menu.AppendSeparator()
2151
+
2152
+ self._perspectives_menu.Append(ID_FirstPerspective + len(self._perspectives), dlg.GetValue())
2153
+ self._perspectives.append(self._mgr.SavePerspective())
2154
+
2155
+
2156
+ def OnCopyPerspectiveCode(self, event):
2157
+
2158
+ s = self._mgr.SavePerspective()
2159
+
2160
+ if wx.TheClipboard.Open():
2161
+
2162
+ wx.TheClipboard.SetData(wx.TextDataObject(s))
2163
+ wx.TheClipboard.Close()
2164
+
2165
+
2166
+ def OnRestorePerspective(self, event):
2167
+
2168
+ self._mgr.LoadPerspective(self._perspectives[event.GetId() - ID_FirstPerspective])
2169
+
2170
+
2171
+ def OnCreateNBPerspective(self, event):
2172
+
2173
+ dlg = wx.TextEntryDialog(self, "Enter a name for the new perspective:", "AUI Test")
2174
+
2175
+ dlg.SetValue("Perspective %u"%(len(self._nb_perspectives) + 1))
2176
+ if dlg.ShowModal() != wx.ID_OK:
2177
+ return
2178
+
2179
+ if len(self._nb_perspectives) == 0:
2180
+ self._nb_perspectives_menu.AppendSeparator()
2181
+
2182
+ auibook = self._mgr.GetPane("notebook_content").window
2183
+ self._nb_perspectives_menu.Append(ID_FirstNBPerspective + len(self._nb_perspectives), dlg.GetValue())
2184
+ self._nb_perspectives.append(auibook.SavePerspective())
2185
+
2186
+
2187
+ def OnCopyNBPerspectiveCode(self, event):
2188
+
2189
+ auibook = self._mgr.GetPane("notebook_content").window
2190
+ s = auibook.SavePerspective()
2191
+
2192
+ if wx.TheClipboard.Open():
2193
+
2194
+ wx.TheClipboard.SetData(wx.TextDataObject(s))
2195
+ wx.TheClipboard.Close()
2196
+
2197
+
2198
+ def OnRestoreNBPerspective(self, event):
2199
+
2200
+ auibook = self._mgr.GetPane("notebook_content").window
2201
+ auibook.LoadPerspective(self._nb_perspectives[event.GetId() - ID_FirstNBPerspective])
2202
+
2203
+
2204
+ def OnGuides(self, event):
2205
+
2206
+ useAero = event.GetId() == ID_AeroGuides
2207
+ useWhidbey = event.GetId() == ID_WhidbeyGuides
2208
+ agwFlags = self._mgr.GetAGWFlags()
2209
+
2210
+ if useAero:
2211
+ agwFlags ^= aui.AUI_MGR_AERO_DOCKING_GUIDES
2212
+ agwFlags &= ~aui.AUI_MGR_WHIDBEY_DOCKING_GUIDES
2213
+ elif useWhidbey:
2214
+ agwFlags ^= aui.AUI_MGR_WHIDBEY_DOCKING_GUIDES
2215
+ agwFlags &= ~aui.AUI_MGR_AERO_DOCKING_GUIDES
2216
+ else:
2217
+ agwFlags &= ~aui.AUI_MGR_AERO_DOCKING_GUIDES
2218
+ agwFlags &= ~aui.AUI_MGR_WHIDBEY_DOCKING_GUIDES
2219
+
2220
+ self._mgr.SetAGWFlags(agwFlags)
2221
+
2222
+
2223
+ def OnNotebookPageClose(self, event):
2224
+
2225
+ ctrl = event.GetEventObject()
2226
+ if isinstance(ctrl.GetPage(event.GetSelection()), wx.html.HtmlWindow):
2227
+
2228
+ res = wx.MessageBox("Are you sure you want to close/hide this notebook page?",
2229
+ "AUI", wx.YES_NO, self)
2230
+ if res != wx.YES:
2231
+ event.Veto()
2232
+
2233
+
2234
+ def OnAllowNotebookDnD(self, event):
2235
+
2236
+ # for the purpose of this test application, explicitly
2237
+ # allow all noteboko drag and drop events
2238
+ event.Allow()
2239
+
2240
+
2241
+ def GetStartPosition(self):
2242
+
2243
+ x = 20
2244
+ pt = self.ClientToScreen(wx.Point(0, 0))
2245
+ return wx.Point(pt.x + x, pt.y + x)
2246
+
2247
+
2248
+ def OnCreateTree(self, event):
2249
+
2250
+ self._mgr.AddPane(self.CreateTreeCtrl(), aui.AuiPaneInfo().
2251
+ Caption("Tree Control").
2252
+ Float().FloatingPosition(self.GetStartPosition()).
2253
+ FloatingSize(wx.Size(150, 300)).MinimizeButton(True))
2254
+ self._mgr.Update()
2255
+
2256
+
2257
+ def OnCreateGrid(self, event):
2258
+
2259
+ self._mgr.AddPane(self.CreateGrid(), aui.AuiPaneInfo().
2260
+ Caption("Grid").
2261
+ Float().FloatingPosition(self.GetStartPosition()).
2262
+ FloatingSize(wx.Size(300, 200)).MinimizeButton(True))
2263
+ self._mgr.Update()
2264
+
2265
+
2266
+ def OnCreateHTML(self, event):
2267
+
2268
+ self._mgr.AddPane(self.CreateHTMLCtrl(), aui.AuiPaneInfo().
2269
+ Caption("HTML Control").
2270
+ Float().FloatingPosition(self.GetStartPosition()).
2271
+ FloatingSize(wx.Size(300, 200)).MinimizeButton(True))
2272
+ self._mgr.Update()
2273
+
2274
+
2275
+ def OnCreateNotebook(self, event):
2276
+
2277
+ self._mgr.AddPane(self.CreateNotebook(), aui.AuiPaneInfo().
2278
+ Caption("Notebook").
2279
+ Float().FloatingPosition(self.GetStartPosition()).
2280
+ CloseButton(True).MaximizeButton(True).MinimizeButton(True))
2281
+ self._mgr.Update()
2282
+
2283
+
2284
+ def OnCreateText(self, event):
2285
+
2286
+ self._mgr.AddPane(self.CreateTextCtrl(), aui.AuiPaneInfo().
2287
+ Caption("Text Control").
2288
+ Float().FloatingPosition(self.GetStartPosition()).
2289
+ MinimizeButton(True))
2290
+ self._mgr.Update()
2291
+
2292
+
2293
+ def OnCreateSizeReport(self, event):
2294
+
2295
+ self._mgr.AddPane(self.CreateSizeReportCtrl(), aui.AuiPaneInfo().
2296
+ Caption("Client Size Reporter").
2297
+ Float().FloatingPosition(self.GetStartPosition()).
2298
+ CloseButton(True).MaximizeButton(True).MinimizeButton(True))
2299
+ self._mgr.Update()
2300
+
2301
+
2302
+ def OnChangeContentPane(self, event):
2303
+
2304
+ self._mgr.GetPane("grid_content").Show(event.GetId() == ID_GridContent)
2305
+ self._mgr.GetPane("text_content").Show(event.GetId() == ID_TextContent)
2306
+ self._mgr.GetPane("tree_content").Show(event.GetId() == ID_TreeContent)
2307
+ self._mgr.GetPane("sizereport_content").Show(event.GetId() == ID_SizeReportContent)
2308
+ self._mgr.GetPane("html_content").Show(event.GetId() == ID_HTMLContent)
2309
+ self._mgr.GetPane("notebook_content").Show(event.GetId() == ID_NotebookContent)
2310
+ self._mgr.Update()
2311
+
2312
+
2313
+ def OnVetoTree(self, event):
2314
+
2315
+ self._veto_tree = event.IsChecked()
2316
+
2317
+
2318
+ def OnVetoText(self, event):
2319
+
2320
+ self._veto_text = event.IsChecked()
2321
+
2322
+
2323
+ def OnRequestUserAttention(self, event):
2324
+
2325
+ ids = event.GetId()
2326
+ if ids not in self._requestPanes:
2327
+ return
2328
+
2329
+ paneName = self._requestPanes[ids]
2330
+ pane = self._mgr.GetPane(paneName)
2331
+ self._mgr.RequestUserAttention(pane.window)
2332
+
2333
+
2334
+ def OnDropDownToolbarItem(self, event):
2335
+
2336
+ if event.IsDropDownClicked():
2337
+
2338
+ tb = event.GetEventObject()
2339
+ tb.SetToolSticky(event.GetId(), True)
2340
+
2341
+ # create the popup menu
2342
+ menuPopup = wx.Menu()
2343
+ bmp = wx.ArtProvider.GetBitmap(wx.ART_QUESTION, wx.ART_OTHER, wx.Size(16, 16))
2344
+
2345
+ m1 = wx.MenuItem(menuPopup, 10001, "Drop Down Item 1")
2346
+ m1.SetBitmap(bmp)
2347
+ menuPopup.Append(m1)
2348
+
2349
+ m2 = wx.MenuItem(menuPopup, 10002, "Drop Down Item 2")
2350
+ m2.SetBitmap(bmp)
2351
+ menuPopup.Append(m2)
2352
+
2353
+ m3 = wx.MenuItem(menuPopup, 10003, "Drop Down Item 3")
2354
+ m3.SetBitmap(bmp)
2355
+ menuPopup.Append(m3)
2356
+
2357
+ m4 = wx.MenuItem(menuPopup, 10004, "Drop Down Item 4")
2358
+ m4.SetBitmap(bmp)
2359
+ menuPopup.Append(m4)
2360
+
2361
+ self.PopupMenu(menuPopup)
2362
+
2363
+ # make sure the button is "un-stuck"
2364
+ tb.SetToolSticky(event.GetId(), False)
2365
+
2366
+
2367
+ def OnTabAlignment(self, event):
2368
+
2369
+ for pane in self._mgr.GetAllPanes():
2370
+
2371
+ if isinstance(pane.window, aui.AuiNotebook):
2372
+
2373
+ nb = pane.window
2374
+ style = nb.GetAGWWindowStyleFlag()
2375
+
2376
+ if event.GetId() == ID_NotebookAlignTop:
2377
+ style &= ~aui.AUI_NB_BOTTOM
2378
+ style ^= aui.AUI_NB_TOP
2379
+ nb.SetAGWWindowStyleFlag(style)
2380
+ elif event.GetId() == ID_NotebookAlignBottom:
2381
+ style &= ~aui.AUI_NB_TOP
2382
+ style ^= aui.AUI_NB_BOTTOM
2383
+ nb.SetAGWWindowStyleFlag(style)
2384
+
2385
+ self._notebook_style = style
2386
+ nb.Update()
2387
+ nb.Refresh()
2388
+
2389
+
2390
+ def OnCustomTabButtons(self, event):
2391
+
2392
+ checked = event.IsChecked()
2393
+ self._custom_tab_buttons = checked
2394
+ auibook = self._mgr.GetPane("notebook_content").window
2395
+
2396
+ left = CUSTOM_TAB_BUTTONS["Left"]
2397
+ for btn, ids in left:
2398
+ if checked:
2399
+ auibook.AddTabAreaButton(ids, wx.LEFT, btn.GetBitmap())
2400
+ else:
2401
+ auibook.RemoveTabAreaButton(ids)
2402
+
2403
+ right = CUSTOM_TAB_BUTTONS["Right"]
2404
+ for btn, ids in right:
2405
+ if checked:
2406
+ auibook.AddTabAreaButton(ids, wx.RIGHT, btn.GetBitmap())
2407
+ else:
2408
+ auibook.RemoveTabAreaButton(ids)
2409
+
2410
+ auibook.Refresh()
2411
+ auibook.Update()
2412
+
2413
+
2414
+ def OnMinMaxTabWidth(self, event):
2415
+
2416
+ auibook = self._mgr.GetPane("notebook_content").window
2417
+ minTabWidth, maxTabWidth = auibook.GetMinMaxTabWidth()
2418
+
2419
+ dlg = wx.TextEntryDialog(self, "Enter the minimum and maximum tab widths, separated by a comma:",
2420
+ "AuiNotebook Tab Widths")
2421
+
2422
+ dlg.SetValue("%d,%d"%(minTabWidth, maxTabWidth))
2423
+ if dlg.ShowModal() != wx.ID_OK:
2424
+ return
2425
+
2426
+ value = dlg.GetValue()
2427
+ dlg.Destroy()
2428
+
2429
+ try:
2430
+ minTabWidth, maxTabWidth = value.split(",")
2431
+ minTabWidth, maxTabWidth = int(minTabWidth), int(maxTabWidth)
2432
+ except:
2433
+ dlg = wx.MessageDialog(self, 'Invalid minimum/maximum tab width. Tab widths should be' \
2434
+ ' 2 integers separated by a comma.',
2435
+ 'Error',
2436
+ wx.OK | wx.ICON_ERROR)
2437
+ dlg.ShowModal()
2438
+ dlg.Destroy()
2439
+ return
2440
+
2441
+ if minTabWidth > maxTabWidth:
2442
+ dlg = wx.MessageDialog(self, 'Invalid minimum/maximum tab width. Minimum tab width' \
2443
+ ' should be less of equal than maximum tab width.',
2444
+ 'Error',
2445
+ wx.OK | wx.ICON_ERROR)
2446
+ dlg.ShowModal()
2447
+ dlg.Destroy()
2448
+ return
2449
+
2450
+ auibook.SetMinMaxTabWidth(minTabWidth, maxTabWidth)
2451
+ auibook.Refresh()
2452
+ auibook.Update()
2453
+
2454
+
2455
+ def OnPreview(self, event):
2456
+
2457
+ auibook = self._mgr.GetPane("notebook_content").window
2458
+ auibook.NotebookPreview()
2459
+
2460
+
2461
+ def OnAddMultiLine(self, event):
2462
+
2463
+ auibook = self._mgr.GetPane("notebook_content").window
2464
+
2465
+ auibook.InsertPage(1, wx.TextCtrl(auibook, -1, "Some more text", wx.DefaultPosition, wx.DefaultSize,
2466
+ wx.TE_MULTILINE|wx.NO_BORDER), "Multi-Line\nTab Labels", True)
2467
+
2468
+ auibook.SetPageTextColour(1, wx.BLUE)
2469
+
2470
+
2471
+ def OnFloatDock(self, event):
2472
+
2473
+ paneLabel = event.pane.caption
2474
+ etype = event.GetEventType()
2475
+
2476
+ strs = "Pane %s "%paneLabel
2477
+ if etype == aui.wxEVT_AUI_PANE_FLOATING:
2478
+ strs += "is about to be floated"
2479
+
2480
+ if event.pane.name == "test8" and self._veto_tree:
2481
+ event.Veto()
2482
+ strs += "... Event vetoed by user selection!"
2483
+ self.log.write(strs + "\n")
2484
+ return
2485
+
2486
+ elif etype == aui.wxEVT_AUI_PANE_FLOATED:
2487
+ strs += "has been floated"
2488
+ elif etype == aui.wxEVT_AUI_PANE_DOCKING:
2489
+ strs += "is about to be docked"
2490
+
2491
+ if event.pane.name == "test11" and self._veto_text:
2492
+ event.Veto()
2493
+ strs += "... Event vetoed by user selection!"
2494
+ self.log.write(strs + "\n")
2495
+ return
2496
+
2497
+ elif etype == aui.wxEVT_AUI_PANE_DOCKED:
2498
+ strs += "has been docked"
2499
+
2500
+ self.log.write(strs + "\n")
2501
+
2502
+
2503
+ def OnExit(self, event):
2504
+
2505
+ self.Close(True)
2506
+
2507
+
2508
+ def OnAbout(self, event):
2509
+
2510
+ msg = "This Is The About Dialog Of The Pure Python Version Of AUI.\n\n" + \
2511
+ "Author: Andrea Gavana @ 23 Dec 2005\n\n" + \
2512
+ "Please Report Any Bug/Requests Of Improvements\n" + \
2513
+ "To Me At The Following Addresses:\n\n" + \
2514
+ "andrea.gavana@maerskoil.com\n" + "andrea.gavana@gmail.com\n\n" + \
2515
+ "Welcome To wxPython " + wx.VERSION_STRING + "!!"
2516
+
2517
+ dlg = wx.MessageDialog(self, msg, "AUI Demo",
2518
+ wx.OK | wx.ICON_INFORMATION)
2519
+
2520
+ if wx.Platform != '__WXMAC__':
2521
+ dlg.SetFont(wx.Font(8, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL,
2522
+ False, '', wx.FONTENCODING_DEFAULT))
2523
+
2524
+ dlg.ShowModal()
2525
+ dlg.Destroy()
2526
+
2527
+
2528
+ def CreateTextCtrl(self, ctrl_text=""):
2529
+
2530
+ if ctrl_text.strip():
2531
+ text = ctrl_text
2532
+ else:
2533
+ text = "This is text box %d"%self._textCount
2534
+ self._textCount += 1
2535
+
2536
+ return wx.TextCtrl(self,-1, text, wx.Point(0, 0), wx.Size(150, 90),
2537
+ wx.NO_BORDER | wx.TE_MULTILINE)
2538
+
2539
+
2540
+ def CreateGrid(self):
2541
+
2542
+ grid = wx.grid.Grid(self, -1, wx.Point(0, 0), wx.Size(150, 250),
2543
+ wx.NO_BORDER | wx.WANTS_CHARS)
2544
+ grid.CreateGrid(50, 20)
2545
+ return grid
2546
+
2547
+
2548
+ def CreateTreeCtrl(self):
2549
+
2550
+ tree = wx.TreeCtrl(self, -1, wx.Point(0, 0), wx.Size(160, 250),
2551
+ wx.TR_DEFAULT_STYLE | wx.NO_BORDER)
2552
+
2553
+ imglist = wx.ImageList(16, 16, True, 2)
2554
+ imglist.Add(wx.ArtProvider.GetBitmap(wx.ART_FOLDER, wx.ART_OTHER, wx.Size(16, 16)))
2555
+ imglist.Add(wx.ArtProvider.GetBitmap(wx.ART_NORMAL_FILE, wx.ART_OTHER, wx.Size(16, 16)))
2556
+ tree.AssignImageList(imglist)
2557
+
2558
+ root = tree.AddRoot("AUI Project", 0)
2559
+ items = []
2560
+
2561
+ items.append(tree.AppendItem(root, "Item 1", 0))
2562
+ items.append(tree.AppendItem(root, "Item 2", 0))
2563
+ items.append(tree.AppendItem(root, "Item 3", 0))
2564
+ items.append(tree.AppendItem(root, "Item 4", 0))
2565
+ items.append(tree.AppendItem(root, "Item 5", 0))
2566
+
2567
+ for item in items:
2568
+ tree.AppendItem(item, "Subitem 1", 1)
2569
+ tree.AppendItem(item, "Subitem 2", 1)
2570
+ tree.AppendItem(item, "Subitem 3", 1)
2571
+ tree.AppendItem(item, "Subitem 4", 1)
2572
+ tree.AppendItem(item, "Subitem 5", 1)
2573
+
2574
+ tree.Expand(root)
2575
+
2576
+ return tree
2577
+
2578
+
2579
+ def CreateSizeReportCtrl(self, width=80, height=80):
2580
+
2581
+ ctrl = SizeReportCtrl(self, -1, wx.DefaultPosition, wx.Size(width, height), self._mgr)
2582
+ return ctrl
2583
+
2584
+
2585
+ def CreateHTMLCtrl(self, parent=None):
2586
+
2587
+ if not parent:
2588
+ parent = self
2589
+
2590
+ ctrl = wx.html.HtmlWindow(parent, -1, wx.DefaultPosition, wx.Size(400, 300))
2591
+ ctrl.SetPage(GetIntroText())
2592
+ return ctrl
2593
+
2594
+
2595
+ def CreateNotebook(self):
2596
+
2597
+ # create the notebook off-window to avoid flicker
2598
+ client_size = self.GetClientSize()
2599
+ ctrl = aui.AuiNotebook(self, -1, wx.Point(client_size.x, client_size.y),
2600
+ wx.Size(430, 200), agwStyle=self._notebook_style)
2601
+
2602
+ arts = [aui.AuiDefaultTabArt, aui.AuiSimpleTabArt, aui.VC71TabArt, aui.FF2TabArt,
2603
+ aui.VC8TabArt, aui.ChromeTabArt]
2604
+
2605
+ art = arts[self._notebook_theme]()
2606
+ ctrl.SetArtProvider(art)
2607
+
2608
+ page_bmp = wx.ArtProvider.GetBitmap(wx.ART_NORMAL_FILE, wx.ART_OTHER, wx.Size(16, 16))
2609
+ ctrl.AddPage(self.CreateHTMLCtrl(ctrl), "Welcome to AUI", False, page_bmp)
2610
+
2611
+ panel = wx.Panel(ctrl, -1)
2612
+ flex = wx.FlexGridSizer(rows=0, cols=2, vgap=2, hgap=2)
2613
+ flex.Add((5, 5))
2614
+ flex.Add((5, 5))
2615
+ flex.Add(wx.StaticText(panel, -1, "wxTextCtrl:"), 0, wx.ALL|wx.ALIGN_CENTRE, 5)
2616
+ flex.Add(wx.TextCtrl(panel, -1, "", wx.DefaultPosition, wx.Size(100, -1)),
2617
+ 1, wx.ALL|wx.ALIGN_CENTRE, 5)
2618
+ flex.Add(wx.StaticText(panel, -1, "wxSpinCtrl:"), 0, wx.ALL|wx.ALIGN_CENTRE, 5)
2619
+ flex.Add(wx.SpinCtrl(panel, -1, "5", wx.DefaultPosition, wx.Size(100, -1),
2620
+ wx.SP_ARROW_KEYS, 5, 50, 5), 0, wx.ALL|wx.ALIGN_CENTRE, 5)
2621
+ flex.Add((5, 5))
2622
+ flex.Add((5, 5))
2623
+ flex.AddGrowableRow(0)
2624
+ flex.AddGrowableRow(3)
2625
+ flex.AddGrowableCol(1)
2626
+ panel.SetSizer(flex)
2627
+ ctrl.AddPage(panel, "Disabled", False, page_bmp)
2628
+
2629
+ ctrl.AddPage(wx.TextCtrl(ctrl, -1, "Some text", wx.DefaultPosition, wx.DefaultSize,
2630
+ wx.TE_MULTILINE|wx.NO_BORDER), "DClick Edit!", False, page_bmp)
2631
+
2632
+ ctrl.AddPage(wx.TextCtrl(ctrl, -1, "Some more text", wx.DefaultPosition, wx.DefaultSize,
2633
+ wx.TE_MULTILINE|wx.NO_BORDER), "Blue Tab")
2634
+
2635
+ ctrl.AddPage(wx.TextCtrl(ctrl, -1, "Some more text", wx.DefaultPosition, wx.DefaultSize,
2636
+ wx.TE_MULTILINE|wx.NO_BORDER), "A Control")
2637
+
2638
+ ctrl.AddPage(wx.TextCtrl(ctrl, -1, "Some more text", wx.DefaultPosition, wx.DefaultSize,
2639
+ wx.TE_MULTILINE|wx.NO_BORDER), "wxTextCtrl 4")
2640
+
2641
+ ctrl.AddPage(wx.TextCtrl(ctrl, -1, "Some more text", wx.DefaultPosition, wx.DefaultSize,
2642
+ wx.TE_MULTILINE|wx.NO_BORDER), "wxTextCtrl 5")
2643
+
2644
+ ctrl.AddPage(wx.TextCtrl(ctrl, -1, "Some more text", wx.DefaultPosition, wx.DefaultSize,
2645
+ wx.TE_MULTILINE|wx.NO_BORDER), "wxTextCtrl 6")
2646
+
2647
+ ctrl.AddPage(wx.TextCtrl(ctrl, -1, "Some more text", wx.DefaultPosition, wx.DefaultSize,
2648
+ wx.TE_MULTILINE|wx.NO_BORDER), "wxTextCtrl 7 (longer title)")
2649
+
2650
+ ctrl.AddPage(wx.TextCtrl(ctrl, -1, "Some more text", wx.DefaultPosition, wx.DefaultSize,
2651
+ wx.TE_MULTILINE|wx.NO_BORDER), "wxTextCtrl 8")
2652
+
2653
+ # Demonstrate how to disable a tab
2654
+ ctrl.EnableTab(1, False)
2655
+
2656
+ ctrl.SetPageTextColour(2, wx.RED)
2657
+ ctrl.SetPageTextColour(3, wx.BLUE)
2658
+ ctrl.SetRenamable(2, True)
2659
+
2660
+ return ctrl
2661
+
2662
+
2663
+ def OnSwitchPane(self, event):
2664
+
2665
+ items = ASD.SwitcherItems()
2666
+ items.SetRowCount(12)
2667
+
2668
+ # Add the main windows and toolbars, in two separate columns
2669
+ # We'll use the item 'id' to store the notebook selection, or -1 if not a page
2670
+
2671
+ for k in range(2):
2672
+ if k == 0:
2673
+ items.AddGroup(_("Main Windows"), "mainwindows")
2674
+ else:
2675
+ items.AddGroup(_("Toolbars"), "toolbars").BreakColumn()
2676
+
2677
+ for pane in self._mgr.GetAllPanes():
2678
+ name = pane.name
2679
+ caption = pane.caption
2680
+ if not caption:
2681
+ continue
2682
+
2683
+ toolBar = isinstance(pane.window, wx.ToolBar) or isinstance(pane.window, aui.AuiToolBar)
2684
+ bitmap = (pane.icon.IsOk() and [pane.icon] or [wx.NullBitmap])[0]
2685
+
2686
+ if (toolBar and k == 1) or (not toolBar and k == 0):
2687
+ items.AddItem(caption, name, -1, bitmap).SetWindow(pane.window)
2688
+
2689
+ # Now add the wxAuiNotebook pages
2690
+ items.AddGroup(_("Notebook Pages"), "pages").BreakColumn()
2691
+
2692
+ for pane in self._mgr.GetAllPanes():
2693
+ nb = pane.window
2694
+ if isinstance(nb, aui.AuiNotebook):
2695
+ for j in range(nb.GetPageCount()):
2696
+
2697
+ name = nb.GetPageText(j)
2698
+ win = nb.GetPage(j)
2699
+
2700
+ items.AddItem(name, name, j, nb.GetPageBitmap(j)).SetWindow(win)
2701
+
2702
+ # Select the focused window
2703
+
2704
+ idx = items.GetIndexForFocus()
2705
+ if idx != wx.NOT_FOUND:
2706
+ items.SetSelection(idx)
2707
+
2708
+ if wx.Platform == "__WXMAC__":
2709
+ items.SetBackgroundColour(wx.WHITE)
2710
+
2711
+ # Show the switcher dialog
2712
+
2713
+ dlg = ASD.SwitcherDialog(items, self, self._mgr)
2714
+
2715
+ # In GTK+ we can't use Ctrl+Tab; we use Ctrl+/ instead and tell the switcher
2716
+ # to treat / in the same was as tab (i.e. cycle through the names)
2717
+
2718
+ if wx.Platform == "__WXGTK__":
2719
+ dlg.SetExtraNavigationKey('/')
2720
+
2721
+ if wx.Platform == "__WXMAC__":
2722
+ dlg.SetBackgroundColour(wx.WHITE)
2723
+ dlg.SetModifierKey(wx.WXK_ALT)
2724
+
2725
+ ans = dlg.ShowModal()
2726
+
2727
+ if ans == wx.ID_OK and dlg.GetSelection() != -1:
2728
+ item = items.GetItem(dlg.GetSelection())
2729
+
2730
+ if item.GetId() == -1:
2731
+ info = self._mgr.GetPane(item.GetName())
2732
+ info.Show()
2733
+ self._mgr.Update()
2734
+ info.window.SetFocus()
2735
+
2736
+ else:
2737
+ nb = item.GetWindow().GetParent()
2738
+ win = item.GetWindow()
2739
+ if isinstance(nb, aui.AuiNotebook):
2740
+ nb.SetSelection(item.GetId())
2741
+ win.SetFocus()
2742
+
2743
+
2744
+ def GetIntroText():
2745
+
2746
+ text = \
2747
+ "<html><body>" \
2748
+ "<h3>Welcome to AUI</h3>" \
2749
+ "<br/><b>Overview</b><br/>" \
2750
+ "<p>AUI is an Advanced User Interface library for the wxPython toolkit " \
2751
+ "that allows developers to create high-quality, cross-platform user " \
2752
+ "interfaces quickly and easily.</p>" \
2753
+ "<p><b>Features</b></p>" \
2754
+ "<p>With AUI, developers can create application frameworks with:</p>" \
2755
+ "<ul>" \
2756
+ "<li>Native, dockable floating frames</li>" \
2757
+ "<li>Perspective saving and loading</li>" \
2758
+ "<li>Native toolbars incorporating real-time, 'spring-loaded' dragging</li>" \
2759
+ "<li>Customizable floating/docking behavior</li>" \
2760
+ "<li>Completely customizable look-and-feel</li>" \
2761
+ "<li>Optional transparent window effects (while dragging or docking)</li>" \
2762
+ "<li>Splittable notebook control</li>" \
2763
+ "</ul>" \
2764
+ "<p><b>What's new in AUI?</b></p>" \
2765
+ "<p>Current wxAUI Version Tracked: wxWidgets 2.9.4 (SVN HEAD)" \
2766
+ "<p>The wxPython AUI version fixes the following bugs or implement the following" \
2767
+ " missing features (the list is not exhaustive): " \
2768
+ "<p><ul>" \
2769
+ "<li>Visual Studio 2005 style docking: <a href='http://www.kirix.com/forums/viewtopic.php?f=16&t=596'>" \
2770
+ "http://www.kirix.com/forums/viewtopic.php?f=16&t=596</a></li>" \
2771
+ "<li>Dock and Pane Resizing: <a href='http://www.kirix.com/forums/viewtopic.php?f=16&t=582'>" \
2772
+ "http://www.kirix.com/forums/viewtopic.php?f=16&t=582</a></li> " \
2773
+ "<li>Patch concerning dock resizing: <a href='http://www.kirix.com/forums/viewtopic.php?f=16&t=610'>" \
2774
+ "http://www.kirix.com/forums/viewtopic.php?f=16&t=610</a></li> " \
2775
+ "<li>Patch to effect wxAuiToolBar orientation switch: <a href='http://www.kirix.com/forums/viewtopic.php?f=16&t=641'>" \
2776
+ "http://www.kirix.com/forums/viewtopic.php?f=16&t=641</a></li> " \
2777
+ "<li>AUI: Core dump when loading a perspective in wxGTK (MSW OK): <a href='http://www.kirix.com/forums/viewtopic.php?f=15&t=627</li>'>" \
2778
+ "http://www.kirix.com/forums/viewtopic.php?f=15&t=627</li></a>" \
2779
+ "<li>wxAuiNotebook reordered AdvanceSelection(): <a href='http://www.kirix.com/forums/viewtopic.php?f=16&t=617'>"\
2780
+ "http://www.kirix.com/forums/viewtopic.php?f=16&t=617</a></li> " \
2781
+ "<li>Vertical Toolbar Docking Issue: <a href='http://www.kirix.com/forums/viewtopic.php?f=16&t=181'>" \
2782
+ "http://www.kirix.com/forums/viewtopic.php?f=16&t=181</a></li> " \
2783
+ "<li>Patch to show the resize hint on mouse-down in aui: <a href='http://trac.wxwidgets.org/ticket/9612'>" \
2784
+ "http://trac.wxwidgets.org/ticket/9612</a></li> " \
2785
+ "<li>The Left/Right and Top/Bottom Docks over draw each other: <a href='http://trac.wxwidgets.org/ticket/3516'>" \
2786
+ "http://trac.wxwidgets.org/ticket/3516</a></li>" \
2787
+ "<li>MinSize() not honoured: <a href='http://trac.wxwidgets.org/ticket/3562'>" \
2788
+ "http://trac.wxwidgets.org/ticket/3562</a></li> " \
2789
+ "<li>Layout problem with wxAUI: <a href='http://trac.wxwidgets.org/ticket/3597'>" \
2790
+ "http://trac.wxwidgets.org/ticket/3597</a></li>" \
2791
+ "<li>Resizing children ignores current window size: <a href='http://trac.wxwidgets.org/ticket/3908'>" \
2792
+ "http://trac.wxwidgets.org/ticket/3908</a></li> " \
2793
+ "<li>Resizing panes under Vista does not repaint background: <a href='http://trac.wxwidgets.org/ticket/4325'>" \
2794
+ "http://trac.wxwidgets.org/ticket/4325</a></li> " \
2795
+ "<li>Resize sash resizes in response to click: <a href='http://trac.wxwidgets.org/ticket/4547'>" \
2796
+ "http://trac.wxwidgets.org/ticket/4547</a></li> " \
2797
+ "<li>'Illegal' resizing of the AuiPane? (wxPython): <a href='http://trac.wxwidgets.org/ticket/4599'>" \
2798
+ "http://trac.wxwidgets.org/ticket/4599</a></li> " \
2799
+ "<li>Floating wxAUIPane Resize Event doesn't update its position: <a href='http://trac.wxwidgets.org/ticket/9773'>" \
2800
+ "http://trac.wxwidgets.org/ticket/9773</a></li>" \
2801
+ "<li>Don't hide floating panels when we maximize some other panel: <a href='http://trac.wxwidgets.org/ticket/4066'>"\
2802
+ "http://trac.wxwidgets.org/ticket/4066</a></li>" \
2803
+ "<li>wxAUINotebook incorrect ALLOW_ACTIVE_PANE handling: <a href='http://trac.wxwidgets.org/ticket/4361'>" \
2804
+ "http://trac.wxwidgets.org/ticket/4361</a></li> " \
2805
+ "<li>Page changing veto doesn't work, (patch supplied): <a href='http://trac.wxwidgets.org/ticket/4518'>" \
2806
+ "http://trac.wxwidgets.org/ticket/4518</a></li> " \
2807
+ "<li>Show and DoShow are mixed around in wxAuiMDIChildFrame: <a href='http://trac.wxwidgets.org/ticket/4567'>"\
2808
+ "http://trac.wxwidgets.org/ticket/4567</a></li> " \
2809
+ "<li>wxAuiManager & wxToolBar - ToolBar Of Size Zero: <a href='http://trac.wxwidgets.org/ticket/9724'>" \
2810
+ "http://trac.wxwidgets.org/ticket/9724</a></li> " \
2811
+ "<li>wxAuiNotebook doesn't behave properly like a container as far as...: <a href='http://trac.wxwidgets.org/ticket/9911'>" \
2812
+ "http://trac.wxwidgets.org/ticket/9911</a></li>" \
2813
+ "<li>Serious layout bugs in wxAUI: <a href='http://trac.wxwidgets.org/ticket/10620'>" \
2814
+ "http://trac.wxwidgets.org/ticket/10620</a></li>" \
2815
+ "<li>wAuiDefaultTabArt::Clone() should just use copy constructor: <a href='http://trac.wxwidgets.org/ticket/11388'>" \
2816
+ "http://trac.wxwidgets.org/ticket/11388</a></li>" \
2817
+ "<li>Drop down button for check tool on wxAuiToolbar: <a href='http://trac.wxwidgets.org/ticket/11139'>" \
2818
+ "http://trac.wxwidgets.org/ticket/11139</a></li>" \
2819
+ "<li>Rename a wxAuiNotebook tab with double-click: <a href='http://trac.wxwidgets.org/ticket/10847'>" \
2820
+ "http://trac.wxwidgets.org/ticket/10847</a></li>" \
2821
+ "</ul>" \
2822
+ "<p>Plus the following features:" \
2823
+ "<p><ul>" \
2824
+ "<li><b>AuiManager:</b></li>" \
2825
+ "<ul>" \
2826
+ "<li>Implementation of a simple minimize pane system: Clicking on this minimize button causes a new " \
2827
+ "<i>AuiToolBar</i> to be created and added to the frame manager, (currently the implementation is such " \
2828
+ "that panes at West will have a toolbar at the right, panes at South will have toolbars at the " \
2829
+ "bottom etc...) and the pane is hidden in the manager. " \
2830
+ "Clicking on the restore button on the newly created toolbar will result in the toolbar being " \
2831
+ "removed and the original pane being restored;</li>" \
2832
+ "<li>Panes can be docked on top of each other to form <i>AuiNotebooks</i>; <i>AuiNotebooks</i> tabs can be torn " \
2833
+ "off to create floating panes;</li>" \
2834
+ "<li>On Windows XP, use the nice sash drawing provided by XP while dragging the sash;</li>" \
2835
+ "<li>Possibility to set an icon on docked panes;</li>" \
2836
+ "<li>Possibility to draw a sash visual grip, for enhanced visualization of sashes;</li>" \
2837
+ "<li>Implementation of a native docking art (<i>ModernDockArt</i>). Windows XP only, <b>requires</b> Mark Hammond's " \
2838
+ "pywin32 package (winxptheme);</li>" \
2839
+ "<li>Possibility to set a transparency for floating panes (a la Paint .NET);</li>" \
2840
+ "<li>Snapping the main frame to the screen in any positin specified by horizontal and vertical " \
2841
+ "alignments;</li>" \
2842
+ "<li>Snapping floating panes on left/right/top/bottom or any combination of directions, a la Winamp;</li>" \
2843
+ "<li>'Fly-out' floating panes, i.e. panes which show themselves only when the mouse hover them;</li>" \
2844
+ "<li>Ability to set custom bitmaps for pane buttons (close, maximize, etc...);</li>" \
2845
+ "<li>Implementation of the style <tt>AUI_MGR_ANIMATE_FRAMES</tt>, which fade-out floating panes when " \
2846
+ "they are closed (all platforms which support frames transparency) and show a moving rectangle " \
2847
+ "when they are docked and minimized (Windows excluding Vista and GTK only);</li>" \
2848
+ "<li>A pane switcher dialog is available to cycle through existing AUI panes; </li>" \
2849
+ "<li>Some flags which allow to choose the orientation and the position of the minimized panes;</li>" \
2850
+ "<li>The functions <i>[Get]MinimizeMode()</i> in <i>AuiPaneInfo</i> which allow to set/get the flags described above;</li>" \
2851
+ "<li>Events like <tt>EVT_AUI_PANE_DOCKING</tt>, <tt>EVT_AUI_PANE_DOCKED</tt>, <tt>EVT_AUI_PANE_FLOATING</tt> "\
2852
+ "and <tt>EVT_AUI_PANE_FLOATED</tt> are "\
2853
+ "available for all panes <b>except</b> toolbar panes;</li>" \
2854
+ "<li>Implementation of the <i>RequestUserAttention</i> method for panes;</li>" \
2855
+ "<li>Ability to show the caption bar of docked panes on the left instead of on the top (with caption " \
2856
+ "text rotated by 90 degrees then). This is similar to what <i>wxDockIt</i> did. To enable this feature on any " \
2857
+ "given pane, simply call <i>CaptionVisible(True, left=True)</i>;</li>" \
2858
+ "<li>New Aero-style docking guides: you can enable them by using the <i>AuiManager</i> style <tt>AUI_MGR_AERO_DOCKING_GUIDES</tt>;</li>" \
2859
+ "<li>New Whidbey-style docking guides: you can enable them by using the <i>AuiManager</i> style <tt>AUI_MGR_WHIDBEY_DOCKING_GUIDES</tt>;</li>" \
2860
+ "<li>A slide-in/slide-out preview of minimized panes can be seen by enabling the <i>AuiManager</i> style" \
2861
+ "<tt>AUI_MGR_PREVIEW_MINIMIZED_PANES</tt> and by hovering with the mouse on the minimized pane toolbar tool;</li>" \
2862
+ "<li>Native of custom-drawn mini frames can be used as floating panes, depending on the <tt>AUI_MGR_USE_NATIVE_MINIFRAMES</tt> style;</li>" \
2863
+ "<li>A 'smooth docking effect' can be obtained by using the <tt>AUI_MGR_SMOOTH_DOCKING</tt> style (similar to PyQT docking style);</li>" \
2864
+ '<li>Implementation of "Movable" panes, i.e. a pane that is set as `Movable()` but not `Floatable()` can be dragged and docked into a new location but will not form a floating window in between.</li>' \
2865
+ "</ul><p>" \
2866
+ "<li><b>AuiNotebook:</b></li>" \
2867
+ "<ul>" \
2868
+ "<li>Implementation of the style <tt>AUI_NB_HIDE_ON_SINGLE_TAB</tt>, a la <i>wx.lib.agw.flatnotebook</i>;</li>" \
2869
+ "<li>Implementation of the style <tt>AUI_NB_SMART_TABS</tt>, a la <i>wx.lib.agw.flatnotebook</i>;</li>" \
2870
+ "<li>Implementation of the style <tt>AUI_NB_USE_IMAGES_DROPDOWN</tt>, which allows to show tab images " \
2871
+ "on the tab dropdown menu instead of bare check menu items (a la <i>wx.lib.agw.flatnotebook</i>);</li>" \
2872
+ "<li>6 different tab arts are available, namely:</li>" \
2873
+ "<ul>" \
2874
+ "<li>Default 'glossy' theme (as in <i>wx.aui.AuiNotebook</i>)</li>" \
2875
+ "<li>Simple theme (as in <i>wx.aui.AuiNotebook</i>)</li>" \
2876
+ "<li>Firefox 2 theme</li>" \
2877
+ "<li>Visual Studio 2003 theme (VC71)</li>" \
2878
+ "<li>Visual Studio 2005 theme (VC81)</li>" \
2879
+ "<li>Google Chrome theme</li>" \
2880
+ "</ul>" \
2881
+ "<li>Enabling/disabling tabs;</li>" \
2882
+ "<li>Setting the colour of the tab's text; </li>" \
2883
+ "<li>Implementation of the style <tt>AUI_NB_CLOSE_ON_TAB_LEFT</tt>, which draws the tab close button on " \
2884
+ "the left instead of on the right (a la Camino browser); </li>" \
2885
+ "<li>Ability to save and load perspectives in <i>wx.aui.AuiNotebook</i> (experimental); </li>" \
2886
+ "<li>Possibility to add custom buttons in the <i>wx.aui.AuiNotebook</i> tab area; </li>" \
2887
+ "<li>Implementation of the style <tt>AUI_NB_TAB_FLOAT</tt>, which allows the floating of single tabs. " \
2888
+ "<b>Known limitation:</b> when the notebook is more or less full screen, tabs cannot be dragged far " \
2889
+ "enough outside of the notebook to become floating pages. </li>" \
2890
+ "<li>Implementation of the style <tt>AUI_NB_DRAW_DND_TAB</tt> (on by default), which draws an image " \
2891
+ "representation of a tab while dragging;</li>" \
2892
+ "<li>Implementation of the <i>AuiNotebook</i> unsplit functionality, which unsplit a splitted AuiNotebook " \
2893
+ "when double-clicking on a sash (Use <i>SetSashDClickUnsplit</i>);</li>" \
2894
+ "<li>Possibility to hide all the tabs by calling <i>HideAllTAbs</i>;</li>" \
2895
+ "<li>wxPython controls can now be added inside page tabs by calling <i>AddControlToPage</i>, and they can be " \
2896
+ "removed by calling <i>RemoveControlFromPage</i>;</li>" \
2897
+ "<li>Possibility to preview all the pages in a <i>AuiNotebook</i> (as thumbnails) by using the <i>NotebookPreview</i> " \
2898
+ "method of <i>AuiNotebook</i></li>;" \
2899
+ "<li>Tab labels can be edited by calling the <i>SetRenamable</i> method on a <i>AuiNotebook</i> page;</li>" \
2900
+ "<li>Support for multi-lines tab labels in <i>AuiNotebook</i>;</li>" \
2901
+ "<li>Support for setting minimum and maximum tab widths for fixed width tabs;</li>"\
2902
+ "<li>Implementation of the style <tt>AUI_NB_ORDER_BY_ACCESS</tt>, which orders the tabs by last access time inside the "\
2903
+ "<i>Tab Navigator</i> dialog</li>;" \
2904
+ "<li>Implementation of the style <tt>AUI_NB_NO_TAB_FOCUS</tt>, allowing the developer not to draw the tab " \
2905
+ "focus rectangle on tne <i>AuiNotebook</i> tabs.</li>"\
2906
+ "</ul><p>" \
2907
+ "<li><b>AuiToolBar:</b></li>" \
2908
+ "<ul>" \
2909
+ "<li><tt>AUI_TB_PLAIN_BACKGROUND</tt> style that allows to easy setup a plain background to the AUI toolbar, " \
2910
+ "without the need to override drawing methods. This style contrasts with the default behaviour " \
2911
+ "of the <i>wx.aui.AuiToolBar</i> that draws a background gradient and this break the window design when " \
2912
+ "putting it within a control that has margin between the borders and the toolbar (example: put " \
2913
+ "<i>wx.aui.AuiToolBar</i> within a <i>wx.StaticBoxSizer</i> that has a plain background);</li>" \
2914
+ "<li><i>AuiToolBar</i> allow item alignment: <a href='http://trac.wxwidgets.org/ticket/10174'> " \
2915
+ "http://trac.wxwidgets.org/ticket/10174</a>;</li>" \
2916
+ "<li><i>AUIToolBar</i> <i>DrawButton()</i> improvement: <a href='http://trac.wxwidgets.org/ticket/10303'>" \
2917
+ "http://trac.wxwidgets.org/ticket/10303</a>;</li>" \
2918
+ "<li><i>AuiToolBar</i> automatically assign new id for tools: <a href='http://trac.wxwidgets.org/ticket/10173'>" \
2919
+ "http://trac.wxwidgets.org/ticket/10173</a>;</li>" \
2920
+ "<li><i>AuiToolBar</i> Allow right-click on any kind of button: <a href='http://trac.wxwidgets.org/ticket/10079'>" \
2921
+ "http://trac.wxwidgets.org/ticket/10079</a>;</li>" \
2922
+ "<li><i>AuiToolBar</i> idle update only when visible: <a href='http://trac.wxwidgets.org/ticket/10075'>" \
2923
+ "http://trac.wxwidgets.org/ticket/10075</a>;</li>" \
2924
+ "<li>Ability of creating <i>AuiToolBar</i> tools with [counter]clockwise rotation. This allows to propose a " \
2925
+ "variant of the minimizing functionality with a rotated button which keeps the caption of the pane as label;</li>" \
2926
+ "<li>Allow setting the alignment of all tools in a toolbar that is expanded.</li>" \
2927
+ "<li>Implementation of the <tt>AUI_MINIMIZE_POS_TOOLBAR</tt> flag, which allows to minimize a pane inside " \
2928
+ "an existing toolbar. Limitation: if the minimized icon in the toolbar ends up in the overflowing " \
2929
+ "items (i.e., a menu is needed to show the icon), this style will not work.</li>" \
2930
+ "</ul>" \
2931
+ "</ul><p>" \
2932
+ "<p>" \
2933
+ "</body></html>"
2934
+
2935
+ return text
2936
+
2937
+
2938
+ #----------------------------------------------------------------------
2939
+
2940
+ class ParentFrame(aui.AuiMDIParentFrame):
2941
+
2942
+ def __init__(self, parent):
2943
+
2944
+ aui.AuiMDIParentFrame.__init__(self, parent, -1, title="AGW AuiMDIParentFrame",
2945
+ size=(640,480), style=wx.DEFAULT_FRAME_STYLE)
2946
+ self.count = 0
2947
+
2948
+ # set frame icon
2949
+ self.SetIcon(images.Mondrian.GetIcon())
2950
+
2951
+ mb = self.MakeMenuBar()
2952
+ self.SetMenuBar(mb)
2953
+ self.CreateStatusBar()
2954
+
2955
+
2956
+ def MakeMenuBar(self):
2957
+
2958
+ mb = wx.MenuBar()
2959
+ menu = wx.Menu()
2960
+ item = menu.Append(-1, "New child window\tCtrl-N")
2961
+ self.Bind(wx.EVT_MENU, self.OnNewChild, item)
2962
+ item = menu.Append(-1, "Close parent")
2963
+ self.Bind(wx.EVT_MENU, self.OnDoClose, item)
2964
+ mb.Append(menu, "&File")
2965
+ return mb
2966
+
2967
+
2968
+ def OnNewChild(self, evt):
2969
+
2970
+ self.count += 1
2971
+ child = ChildFrame(self, self.count)
2972
+ child.Show()
2973
+
2974
+
2975
+ def OnDoClose(self, evt):
2976
+ self.Close()
2977
+
2978
+
2979
+ #----------------------------------------------------------------------
2980
+
2981
+ class ChildFrame(aui.AuiMDIChildFrame):
2982
+
2983
+ def __init__(self, parent, count):
2984
+
2985
+ aui.AuiMDIChildFrame.__init__(self, parent, -1, title="Child: %d" % count)
2986
+ mb = parent.MakeMenuBar()
2987
+ menu = wx.Menu()
2988
+ item = menu.Append(-1, "This is child %d's menu" % count)
2989
+ mb.Append(menu, "&Child")
2990
+ self.SetMenuBar(mb)
2991
+
2992
+ p = wx.Panel(self)
2993
+ wx.StaticText(p, -1, "This is child %d" % count, (10,10))
2994
+ p.SetBackgroundColour('light blue')
2995
+
2996
+ sizer = wx.BoxSizer()
2997
+ sizer.Add(p, 1, wx.EXPAND)
2998
+ self.SetSizer(sizer)
2999
+
3000
+ wx.CallAfter(self.Layout)
3001
+
3002
+
3003
+ #---------------------------------------------------------------------------
3004
+
3005
+ def MainAUI(parent, log):
3006
+
3007
+ frame = AuiFrame(parent, -1, "AUI Test Frame", size=(800, 600), log=log)
3008
+ frame.CenterOnScreen()
3009
+ frame.Show()
3010
+
3011
+
3012
+ #---------------------------------------------------------------------------
3013
+
3014
+ def MDIAUI(parent, log):
3015
+
3016
+ frame = ParentFrame(parent)
3017
+ frame.CenterOnScreen()
3018
+ frame.Show()
3019
+
3020
+ #---------------------------------------------------------------------------
3021
+
3022
+
3023
+ class TestPanel(wx.Panel):
3024
+ def __init__(self, parent, log):
3025
+ self.log = log
3026
+ wx.Panel.__init__(self, parent, -1)
3027
+
3028
+ b1 = wx.Button(self, -1, " AGW AUI Docking Library ", (50,50))
3029
+ self.Bind(wx.EVT_BUTTON, self.OnButton1, b1)
3030
+
3031
+ ## b2 = wx.Button(self, -1, " AGW AuiMDIs ", (50, 80))
3032
+ ## self.Bind(wx.EVT_BUTTON, self.OnButton2, b2)
3033
+
3034
+
3035
+ def OnButton1(self, event):
3036
+ self.win = MainAUI(self, self.log)
3037
+
3038
+
3039
+ def OnButton2(self, event):
3040
+ self.win = MDIAUI(self, self.log)
3041
+
3042
+ #----------------------------------------------------------------------
3043
+
3044
+ def runTest(frame, nb, log):
3045
+
3046
+ win = TestPanel(nb, log)
3047
+ return win
3048
+
3049
+ #----------------------------------------------------------------------
3050
+
3051
+
3052
+ overview = GetIntroText()
3053
+
3054
+
3055
+ if __name__ == '__main__':
3056
+ import sys,os
3057
+ import run
3058
+ run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:])