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.
- wx/__init__.py +22 -0
- wx/__version__.py +9 -0
- wx/_adv.cp313-win_amd64.pyd +0 -0
- wx/_aui.cp313-win_amd64.pyd +0 -0
- wx/_core.cp313-win_amd64.pyd +0 -0
- wx/_dataview.cp313-win_amd64.pyd +0 -0
- wx/_glcanvas.cp313-win_amd64.pyd +0 -0
- wx/_grid.cp313-win_amd64.pyd +0 -0
- wx/_html.cp313-win_amd64.pyd +0 -0
- wx/_html2.cp313-win_amd64.pyd +0 -0
- wx/_media.cp313-win_amd64.pyd +0 -0
- wx/_msw.cp313-win_amd64.pyd +0 -0
- wx/_propgrid.cp313-win_amd64.pyd +0 -0
- wx/_ribbon.cp313-win_amd64.pyd +0 -0
- wx/_richtext.cp313-win_amd64.pyd +0 -0
- wx/_stc.cp313-win_amd64.pyd +0 -0
- wx/_xml.cp313-win_amd64.pyd +0 -0
- wx/_xrc.cp313-win_amd64.pyd +0 -0
- wx/adv.py +124 -0
- wx/adv.pyi +5182 -0
- wx/aui.py +77 -0
- wx/aui.pyi +3655 -0
- wx/core.py +3540 -0
- wx/core.pyi +50592 -0
- wx/dataview.py +173 -0
- wx/dataview.pyi +3491 -0
- wx/demo/AUI_DockingWindowMgr.py +1154 -0
- wx/demo/AUI_MDI.py +117 -0
- wx/demo/AUI_Notebook.py +58 -0
- wx/demo/About.py +75 -0
- wx/demo/AboutBox.py +75 -0
- wx/demo/ActiveXWrapper_Acrobat.py +132 -0
- wx/demo/ActiveXWrapper_IE.py +187 -0
- wx/demo/ActiveX_FlashWindow.py +107 -0
- wx/demo/ActiveX_IEHtmlWindow.py +242 -0
- wx/demo/ActiveX_PDFWindow.py +204 -0
- wx/demo/ActivityIndicator.py +80 -0
- wx/demo/AddPrivateFont.py +116 -0
- wx/demo/AdjustChannels.py +178 -0
- wx/demo/AlphaDrawing.py +77 -0
- wx/demo/AnalogClock.py +144 -0
- wx/demo/AnimationCtrl.py +104 -0
- wx/demo/ArtProvider.py +893 -0
- wx/demo/BannerWindow.py +1 -0
- wx/demo/BitmapButton.py +87 -0
- wx/demo/BitmapComboBox.py +63 -0
- wx/demo/BitmapFromBuffer.py +140 -0
- wx/demo/Button.py +77 -0
- wx/demo/Cairo.py +197 -0
- wx/demo/Cairo_Snippets.py +135 -0
- wx/demo/Calendar.py +660 -0
- wx/demo/CalendarCtrl.py +122 -0
- wx/demo/CheckBox.py +74 -0
- wx/demo/CheckListBox.py +79 -0
- wx/demo/CheckListCtrl.py +99 -0
- wx/demo/Choice.py +55 -0
- wx/demo/Choicebook.py +80 -0
- wx/demo/CollapsibleHeaderCtrl.py +85 -0
- wx/demo/CollapsiblePane.py +126 -0
- wx/demo/ColorPanel.py +19 -0
- wx/demo/ColourDB.py +203 -0
- wx/demo/ColourDialog.py +76 -0
- wx/demo/ColourSelect.py +119 -0
- wx/demo/ComboBox.py +111 -0
- wx/demo/ComboCtrl.py +153 -0
- wx/demo/ComboTreeBox.py +71 -0
- wx/demo/CommandLinkButton.py +50 -0
- wx/demo/ContextHelp.py +112 -0
- wx/demo/Cursor.py +336 -0
- wx/demo/CustomDragAndDrop.py +353 -0
- wx/demo/DVC_CustomRenderer.py +204 -0
- wx/demo/DVC_DataViewModel.py +365 -0
- wx/demo/DVC_IndexListModel.py +257 -0
- wx/demo/DVC_ListCtrl.py +69 -0
- wx/demo/DVC_TreeCtrl.py +76 -0
- wx/demo/DatePickerCtrl.py +68 -0
- wx/demo/DelayedResult.py +239 -0
- wx/demo/Dialog.py +169 -0
- wx/demo/DialogUnits.py +128 -0
- wx/demo/DirDialog.py +58 -0
- wx/demo/DragAndDrop.py +265 -0
- wx/demo/DragImage.py +316 -0
- wx/demo/DragScroller.py +59 -0
- wx/demo/DrawXXXList.py +436 -0
- wx/demo/DynamicSashWindow.py +177 -0
- wx/demo/EditableListBox.py +101 -0
- wx/demo/Editor.py +70 -0
- wx/demo/EventManager.py +291 -0
- wx/demo/ExpandoTextCtrl.py +164 -0
- wx/demo/FancyText.py +83 -0
- wx/demo/FileBrowseButton.py +100 -0
- wx/demo/FileCtrl.py +97 -0
- wx/demo/FileDialog.py +144 -0
- wx/demo/FileHistory.py +140 -0
- wx/demo/FindReplaceDialog.py +123 -0
- wx/demo/FloatCanvas.py +1959 -0
- wx/demo/FontDialog.py +142 -0
- wx/demo/FontEnumerator.py +82 -0
- wx/demo/Frame.py +85 -0
- wx/demo/GLCanvas.py +371 -0
- wx/demo/Gauge.py +66 -0
- wx/demo/GenericButtons.py +185 -0
- wx/demo/GenericCheckBox.py +65 -0
- wx/demo/GenericDirCtrl.py +74 -0
- wx/demo/GetMouseState.py +159 -0
- wx/demo/GraphicsContext.py +236 -0
- wx/demo/GraphicsGradient.py +281 -0
- wx/demo/Grid.py +95 -0
- wx/demo/GridBagSizer.py +170 -0
- wx/demo/GridCustEditor.py +247 -0
- wx/demo/GridCustTable.py +170 -0
- wx/demo/GridDragAndDrop.py +102 -0
- wx/demo/GridDragable.py +206 -0
- wx/demo/GridEnterHandler.py +66 -0
- wx/demo/GridHugeTable.py +89 -0
- wx/demo/GridLabelRenderer.py +114 -0
- wx/demo/GridSimple.py +270 -0
- wx/demo/GridStdEdRend.py +186 -0
- wx/demo/Grid_MegaExample.py +490 -0
- wx/demo/HTML2_WebView.py +183 -0
- wx/demo/HtmlWindow.py +232 -0
- wx/demo/I18N.py +237 -0
- wx/demo/Image.py +338 -0
- wx/demo/ImageAlpha.py +87 -0
- wx/demo/ImageBrowser.py +70 -0
- wx/demo/ImageFromStream.py +49 -0
- wx/demo/Img2PyArtProvider.py +99 -0
- wx/demo/InfoBar.py +127 -0
- wx/demo/IntCtrl.py +343 -0
- wx/demo/ItemsPicker.py +108 -0
- wx/demo/Joystick.py +1083 -0
- wx/demo/KeyEvents.py +428 -0
- wx/demo/LEDNumberCtrl.py +121 -0
- wx/demo/LayoutAnchors.py +258 -0
- wx/demo/LayoutConstraints.py +149 -0
- wx/demo/Layoutf.py +69 -0
- wx/demo/ListBox.py +164 -0
- wx/demo/ListCtrl.py +538 -0
- wx/demo/ListCtrl_edit.py +155 -0
- wx/demo/ListCtrl_virtual.py +145 -0
- wx/demo/Listbook.py +104 -0
- wx/demo/MDIDemo.py +86 -0
- wx/demo/MDISashDemo.py +152 -0
- wx/demo/MDIWindows.py +66 -0
- wx/demo/Main.py +2768 -0
- wx/demo/Mask.py +137 -0
- wx/demo/MaskedEditControls.py +648 -0
- wx/demo/MaskedNumCtrl.py +359 -0
- wx/demo/MediaCtrl.py +190 -0
- wx/demo/Menu.py +322 -0
- wx/demo/MessageDialog.py +54 -0
- wx/demo/MimeTypesManager.py +354 -0
- wx/demo/MiniFrame.py +67 -0
- wx/demo/MouseGestures.py +198 -0
- wx/demo/MultiChoiceDialog.py +59 -0
- wx/demo/MultiSash.py +95 -0
- wx/demo/MultiSplitterWindow.py +168 -0
- wx/demo/MultipleChoiceDialog.py +101 -0
- wx/demo/Notebook.py +134 -0
- wx/demo/NotificationMessage.py +61 -0
- wx/demo/OGL.py +433 -0
- wx/demo/Overlay.py +209 -0
- wx/demo/OwnerDrawnComboBox.py +152 -0
- wx/demo/PDFViewer.py +109 -0
- wx/demo/PageSetupDialog.py +70 -0
- wx/demo/PenAndBrushStyles.py +208 -0
- wx/demo/Pickers.py +120 -0
- wx/demo/PlateButton.py +430 -0
- wx/demo/PopupControl.py +99 -0
- wx/demo/PopupMenu.py +156 -0
- wx/demo/PopupWindow.py +227 -0
- wx/demo/PrintDialog.py +60 -0
- wx/demo/PrintFramework.py +227 -0
- wx/demo/Process.py +168 -0
- wx/demo/ProgressDialog.py +87 -0
- wx/demo/PropertyGrid.py +1045 -0
- wx/demo/PropertySheetDialog.py +231 -0
- wx/demo/PseudoDC.py +350 -0
- wx/demo/PyColourChooser.py +60 -0
- wx/demo/PyCrust.py +21 -0
- wx/demo/PyPlot.py +83 -0
- wx/demo/PyShell.py +22 -0
- wx/demo/PythonEvents.py +109 -0
- wx/demo/README.txt +7 -0
- wx/demo/RadioBox.py +67 -0
- wx/demo/RadioButton.py +127 -0
- wx/demo/RawBitmapAccess.py +208 -0
- wx/demo/RearrangeDialog.py +160 -0
- wx/demo/RendererNative.py +170 -0
- wx/demo/ResizeWidget.py +76 -0
- wx/demo/RichMessageDialog.py +85 -0
- wx/demo/RichTextCtrl.py +732 -0
- wx/demo/RichToolTip.py +145 -0
- wx/demo/SVGImage_Bitmap.py +130 -0
- wx/demo/SVGImage_Render.py +138 -0
- wx/demo/SashWindow.py +151 -0
- wx/demo/ScrolledMessageDialog.py +52 -0
- wx/demo/ScrolledPanel.py +124 -0
- wx/demo/ScrolledWindow.py +260 -0
- wx/demo/SearchCtrl.py +115 -0
- wx/demo/ShapedWindow.py +145 -0
- wx/demo/Simplebook.py +202 -0
- wx/demo/SingleChoiceDialog.py +56 -0
- wx/demo/SizedControls.py +433 -0
- wx/demo/Sizers.py +609 -0
- wx/demo/Slider.py +52 -0
- wx/demo/Sound.py +95 -0
- wx/demo/SpinButton.py +63 -0
- wx/demo/SpinCtrl.py +56 -0
- wx/demo/SpinCtrlDouble.py +42 -0
- wx/demo/SplitTree.py +146 -0
- wx/demo/SplitterWindow.py +62 -0
- wx/demo/StandardPaths.py +113 -0
- wx/demo/StaticBitmap.py +55 -0
- wx/demo/StaticBox.py +62 -0
- wx/demo/StaticText.py +69 -0
- wx/demo/StatusBar.py +144 -0
- wx/demo/StockButtons.py +113 -0
- wx/demo/StyledTextCtrl_1.py +303 -0
- wx/demo/StyledTextCtrl_2.py +410 -0
- wx/demo/SystemSettings.py +333 -0
- wx/demo/TablePrint.py +215 -0
- wx/demo/TestTable.txt +38 -0
- wx/demo/TextCtrl.py +187 -0
- wx/demo/TextEntryDialog.py +57 -0
- wx/demo/Threads.py +258 -0
- wx/demo/Throbber.py +250 -0
- wx/demo/Ticker.py +147 -0
- wx/demo/TimeCtrl.py +240 -0
- wx/demo/TimePickerCtrl.py +60 -0
- wx/demo/Timer.py +275 -0
- wx/demo/ToggleButton.py +54 -0
- wx/demo/ToolBar.py +249 -0
- wx/demo/ToolTip.py +71 -0
- wx/demo/Toolbook.py +111 -0
- wx/demo/TreeCtrl.py +199 -0
- wx/demo/TreeListCtrl.py +121 -0
- wx/demo/TreeMixin.py +269 -0
- wx/demo/Treebook.py +117 -0
- wx/demo/UIActionSimulator.py +151 -0
- wx/demo/URLDragAndDrop.py +130 -0
- wx/demo/Unicode.py +146 -0
- wx/demo/VListBox.py +176 -0
- wx/demo/Validator.py +237 -0
- wx/demo/Wizard.py +248 -0
- wx/demo/WrapSizer.py +115 -0
- wx/demo/XmlResource.py +80 -0
- wx/demo/XmlResourceHandler.py +199 -0
- wx/demo/XmlResourceSubclass.py +119 -0
- wx/demo/__init__.py +9 -0
- wx/demo/agw/AGWInfoBar.py +175 -0
- wx/demo/agw/AUI.py +3058 -0
- wx/demo/agw/AdvancedSplash.py +59 -0
- wx/demo/agw/AquaButton.py +146 -0
- wx/demo/agw/BalloonTip.py +378 -0
- wx/demo/agw/ButtonPanel.py +890 -0
- wx/demo/agw/CubeColourDialog.py +83 -0
- wx/demo/agw/CustomTreeCtrl.py +2167 -0
- wx/demo/agw/Example1 +67 -0
- wx/demo/agw/Example2 +49 -0
- wx/demo/agw/FlatMenu.py +876 -0
- wx/demo/agw/FlatNotebook.py +994 -0
- wx/demo/agw/FloatSpin.py +475 -0
- wx/demo/agw/FoldPanelBar.py +953 -0
- wx/demo/agw/FourWaySplitter.py +300 -0
- wx/demo/agw/GenericMessageDialog.py +207 -0
- wx/demo/agw/GradientButton.py +156 -0
- wx/demo/agw/HyperLinkCtrl.py +144 -0
- wx/demo/agw/HyperTreeList.py +2660 -0
- wx/demo/agw/KnobCtrl.py +186 -0
- wx/demo/agw/LabelBook.py +567 -0
- wx/demo/agw/MacLargeDemo.py +360 -0
- wx/demo/agw/MultiDirDialog.py +117 -0
- wx/demo/agw/PeakMeter.py +194 -0
- wx/demo/agw/PersistentControls.py +589 -0
- wx/demo/agw/PieCtrl.py +206 -0
- wx/demo/agw/PyBusyInfo.py +64 -0
- wx/demo/agw/PyCollapsiblePane.py +308 -0
- wx/demo/agw/PyGauge.py +162 -0
- wx/demo/agw/PyProgress.py +155 -0
- wx/demo/agw/RibbonBar.py +925 -0
- wx/demo/agw/RulerCtrl.py +454 -0
- wx/demo/agw/ScrolledThumbnail.py +128 -0
- wx/demo/agw/ShapedButton.py +603 -0
- wx/demo/agw/ShortcutEditor.py +397 -0
- wx/demo/agw/SpeedMeter.py +668 -0
- wx/demo/agw/SuperToolTip.py +396 -0
- wx/demo/agw/ThumbDemoConfig.py +603 -0
- wx/demo/agw/ThumbnailCtrl.py +149 -0
- wx/demo/agw/ToasterBox.py +410 -0
- wx/demo/agw/UltimateListCtrl.py +80 -0
- wx/demo/agw/UltimateListIconDemo.py +908 -0
- wx/demo/agw/UltimateListListDemo.py +124 -0
- wx/demo/agw/UltimateReportDemo.py +1146 -0
- wx/demo/agw/UltimateVirtualDemo.py +207 -0
- wx/demo/agw/Windows7Explorer_Contents.py +368 -0
- wx/demo/agw/XLSGrid.py +238 -0
- wx/demo/agw/ZoomBar.py +230 -0
- wx/demo/agw/__demo__.py +183 -0
- wx/demo/agw/bitmaps/Explorer96.png +0 -0
- wx/demo/agw/bitmaps/Explorer96Flip40.png +0 -0
- wx/demo/agw/bitmaps/Folder96.png +0 -0
- wx/demo/agw/bitmaps/Folder96Flip40.png +0 -0
- wx/demo/agw/bitmaps/Monitor96.png +0 -0
- wx/demo/agw/bitmaps/Monitor96Flip40.png +0 -0
- wx/demo/agw/bitmaps/Music96.png +0 -0
- wx/demo/agw/bitmaps/Music96Flip40.png +0 -0
- wx/demo/agw/bitmaps/Photo96.png +0 -0
- wx/demo/agw/bitmaps/Photo96Flip40.png +0 -0
- wx/demo/agw/bitmaps/Search96.png +0 -0
- wx/demo/agw/bitmaps/Search96Flip40.png +0 -0
- wx/demo/agw/bitmaps/Wizard96.png +0 -0
- wx/demo/agw/bitmaps/Wizard96Flip40.png +0 -0
- wx/demo/agw/bitmaps/advancedsplash.png +0 -0
- wx/demo/agw/bitmaps/aquabutton.png +0 -0
- wx/demo/agw/bitmaps/aquachecked.ico +0 -0
- wx/demo/agw/bitmaps/aquaflagged.ico +0 -0
- wx/demo/agw/bitmaps/aquanotchecked.ico +0 -0
- wx/demo/agw/bitmaps/aquanotflagged.ico +0 -0
- wx/demo/agw/bitmaps/canada.gif +0 -0
- wx/demo/agw/bitmaps/checked.ico +0 -0
- wx/demo/agw/bitmaps/columns.png +0 -0
- wx/demo/agw/bitmaps/contexthelp-16.png +0 -0
- wx/demo/agw/bitmaps/contexthelp.png +0 -0
- wx/demo/agw/bitmaps/copy.png +0 -0
- wx/demo/agw/bitmaps/cut.png +0 -0
- wx/demo/agw/bitmaps/editcopy.png +0 -0
- wx/demo/agw/bitmaps/editcut.png +0 -0
- wx/demo/agw/bitmaps/editpaste.png +0 -0
- wx/demo/agw/bitmaps/empty_icon.png +0 -0
- wx/demo/agw/bitmaps/exit-16.png +0 -0
- wx/demo/agw/bitmaps/exit.ico +0 -0
- wx/demo/agw/bitmaps/ffwd.png +0 -0
- wx/demo/agw/bitmaps/ffwddisabled.png +0 -0
- wx/demo/agw/bitmaps/field-16.png +0 -0
- wx/demo/agw/bitmaps/filenew.png +0 -0
- wx/demo/agw/bitmaps/fileopen.png +0 -0
- wx/demo/agw/bitmaps/filesave.png +0 -0
- wx/demo/agw/bitmaps/flagged.ico +0 -0
- wx/demo/agw/bitmaps/folder.png +0 -0
- wx/demo/agw/bitmaps/folder_new.png +0 -0
- wx/demo/agw/bitmaps/ghost.png +0 -0
- wx/demo/agw/bitmaps/gradientbutton.png +0 -0
- wx/demo/agw/bitmaps/help-16.png +0 -0
- wx/demo/agw/bitmaps/help.ico +0 -0
- wx/demo/agw/bitmaps/italy.gif +0 -0
- wx/demo/agw/bitmaps/lbadd.png +0 -0
- wx/demo/agw/bitmaps/lbcharge.png +0 -0
- wx/demo/agw/bitmaps/lbdecrypted.png +0 -0
- wx/demo/agw/bitmaps/lbnews.png +0 -0
- wx/demo/agw/bitmaps/lbroll.png +0 -0
- wx/demo/agw/bitmaps/minus1.ico +0 -0
- wx/demo/agw/bitmaps/minus2.ico +0 -0
- wx/demo/agw/bitmaps/minus3.ico +0 -0
- wx/demo/agw/bitmaps/minus4.ico +0 -0
- wx/demo/agw/bitmaps/minus5.ico +0 -0
- wx/demo/agw/bitmaps/month-16.png +0 -0
- wx/demo/agw/bitmaps/new_file.png +0 -0
- wx/demo/agw/bitmaps/new_folder.png +0 -0
- wx/demo/agw/bitmaps/notchecked.ico +0 -0
- wx/demo/agw/bitmaps/notflagged.ico +0 -0
- wx/demo/agw/bitmaps/ok-16.png +0 -0
- wx/demo/agw/bitmaps/open_folder.png +0 -0
- wx/demo/agw/bitmaps/paste.png +0 -0
- wx/demo/agw/bitmaps/pause.png +0 -0
- wx/demo/agw/bitmaps/pausedisabled.png +0 -0
- wx/demo/agw/bitmaps/play.png +0 -0
- wx/demo/agw/bitmaps/playdisabled.png +0 -0
- wx/demo/agw/bitmaps/plus1.ico +0 -0
- wx/demo/agw/bitmaps/plus2.ico +0 -0
- wx/demo/agw/bitmaps/plus3.ico +0 -0
- wx/demo/agw/bitmaps/plus4.ico +0 -0
- wx/demo/agw/bitmaps/plus5.ico +0 -0
- wx/demo/agw/bitmaps/record.png +0 -0
- wx/demo/agw/bitmaps/recorddisabled.png +0 -0
- wx/demo/agw/bitmaps/recording.gif +0 -0
- wx/demo/agw/bitmaps/rewind.png +0 -0
- wx/demo/agw/bitmaps/rewinddisabled.png +0 -0
- wx/demo/agw/bitmaps/round.png +0 -0
- wx/demo/agw/bitmaps/save.png +0 -0
- wx/demo/agw/bitmaps/separator.gif +0 -0
- wx/demo/agw/bitmaps/separatorflip.png +0 -0
- wx/demo/agw/bitmaps/smfuel.ico +0 -0
- wx/demo/agw/bitmaps/smpi.ico +0 -0
- wx/demo/agw/bitmaps/smtemp.ico +0 -0
- wx/demo/agw/bitmaps/stop.png +0 -0
- wx/demo/agw/bitmaps/stopdisabled.png +0 -0
- wx/demo/agw/bitmaps/sttbutton.png +0 -0
- wx/demo/agw/bitmaps/sttfont.png +0 -0
- wx/demo/agw/bitmaps/sttheader.png +0 -0
- wx/demo/agw/bitmaps/stthelp.png +0 -0
- wx/demo/agw/bitmaps/view1.png +0 -0
- wx/demo/agw/bitmaps/view2.png +0 -0
- wx/demo/agw/bitmaps/view_choose.png +0 -0
- wx/demo/agw/bitmaps/view_detailed.png +0 -0
- wx/demo/agw/bitmaps/view_icon.png +0 -0
- wx/demo/agw/bitmaps/view_multicolumn.png +0 -0
- wx/demo/agw/bitmaps/viewmag-16.png +0 -0
- wx/demo/agw/bitmaps/viewmag-m-16.png +0 -0
- wx/demo/agw/bitmaps/viewmag-p-16.png +0 -0
- wx/demo/agw/bitmaps/viewmagfit-16.png +0 -0
- wx/demo/agw/data/Example_1.xls +0 -0
- wx/demo/agw/images.py +6714 -0
- wx/demo/bitmaps/AG00028_.gif +0 -0
- wx/demo/bitmaps/AG00039_.gif +0 -0
- wx/demo/bitmaps/AG00178_.gif +0 -0
- wx/demo/bitmaps/AG00183_.gif +0 -0
- wx/demo/bitmaps/AG00185_.gif +0 -0
- wx/demo/bitmaps/BD13656_.gif +0 -0
- wx/demo/bitmaps/advancedsplash.png +0 -0
- wx/demo/bitmaps/aquabutton.png +0 -0
- wx/demo/bitmaps/aquachecked.ico +0 -0
- wx/demo/bitmaps/aquaflagged.ico +0 -0
- wx/demo/bitmaps/aquanotchecked.ico +0 -0
- wx/demo/bitmaps/aquanotflagged.ico +0 -0
- wx/demo/bitmaps/canada.gif +0 -0
- wx/demo/bitmaps/checked.ico +0 -0
- wx/demo/bitmaps/columns.png +0 -0
- wx/demo/bitmaps/contexthelp-16.png +0 -0
- wx/demo/bitmaps/contexthelp.png +0 -0
- wx/demo/bitmaps/copy.png +0 -0
- wx/demo/bitmaps/cropshot24x20.png +0 -0
- wx/demo/bitmaps/cut.png +0 -0
- wx/demo/bitmaps/editcopy.png +0 -0
- wx/demo/bitmaps/editcut.png +0 -0
- wx/demo/bitmaps/editpaste.png +0 -0
- wx/demo/bitmaps/exit-16.png +0 -0
- wx/demo/bitmaps/exit.ico +0 -0
- wx/demo/bitmaps/ffwd.png +0 -0
- wx/demo/bitmaps/ffwddisabled.png +0 -0
- wx/demo/bitmaps/field-16.png +0 -0
- wx/demo/bitmaps/filenew.png +0 -0
- wx/demo/bitmaps/fileopen.png +0 -0
- wx/demo/bitmaps/filesave.png +0 -0
- wx/demo/bitmaps/flagged.ico +0 -0
- wx/demo/bitmaps/folder_new.png +0 -0
- wx/demo/bitmaps/ghost.png +0 -0
- wx/demo/bitmaps/gradientbutton.png +0 -0
- wx/demo/bitmaps/help-16.png +0 -0
- wx/demo/bitmaps/help.ico +0 -0
- wx/demo/bitmaps/honeycomb300.png +0 -0
- wx/demo/bitmaps/image.bmp +0 -0
- wx/demo/bitmaps/image.gif +0 -0
- wx/demo/bitmaps/image.ico +0 -0
- wx/demo/bitmaps/image.jpg +0 -0
- wx/demo/bitmaps/image.png +0 -0
- wx/demo/bitmaps/image.tif +0 -0
- wx/demo/bitmaps/italy.gif +0 -0
- wx/demo/bitmaps/lbadd.png +0 -0
- wx/demo/bitmaps/lbcharge.png +0 -0
- wx/demo/bitmaps/lbdecrypted.png +0 -0
- wx/demo/bitmaps/lbnews.png +0 -0
- wx/demo/bitmaps/lbroll.png +0 -0
- wx/demo/bitmaps/minus1.ico +0 -0
- wx/demo/bitmaps/minus2.ico +0 -0
- wx/demo/bitmaps/minus3.ico +0 -0
- wx/demo/bitmaps/minus4.ico +0 -0
- wx/demo/bitmaps/minus5.ico +0 -0
- wx/demo/bitmaps/month-16.png +0 -0
- wx/demo/bitmaps/new_file.png +0 -0
- wx/demo/bitmaps/new_folder.png +0 -0
- wx/demo/bitmaps/notchecked.ico +0 -0
- wx/demo/bitmaps/notflagged.ico +0 -0
- wx/demo/bitmaps/ok-16.png +0 -0
- wx/demo/bitmaps/open_folder.png +0 -0
- wx/demo/bitmaps/paste.png +0 -0
- wx/demo/bitmaps/pause.png +0 -0
- wx/demo/bitmaps/pausedisabled.png +0 -0
- wx/demo/bitmaps/phoenix_title.png +0 -0
- wx/demo/bitmaps/phoenix_top.png +0 -0
- wx/demo/bitmaps/play.png +0 -0
- wx/demo/bitmaps/playdisabled.png +0 -0
- wx/demo/bitmaps/plus1.ico +0 -0
- wx/demo/bitmaps/plus2.ico +0 -0
- wx/demo/bitmaps/plus3.ico +0 -0
- wx/demo/bitmaps/plus4.ico +0 -0
- wx/demo/bitmaps/plus5.ico +0 -0
- wx/demo/bitmaps/record.png +0 -0
- wx/demo/bitmaps/recorddisabled.png +0 -0
- wx/demo/bitmaps/rewind.png +0 -0
- wx/demo/bitmaps/rewinddisabled.png +0 -0
- wx/demo/bitmaps/round.png +0 -0
- wx/demo/bitmaps/save.png +0 -0
- wx/demo/bitmaps/smfuel.ico +0 -0
- wx/demo/bitmaps/smpi.ico +0 -0
- wx/demo/bitmaps/smtemp.ico +0 -0
- wx/demo/bitmaps/snakey_render.png +0 -0
- wx/demo/bitmaps/splash.png +0 -0
- wx/demo/bitmaps/stop.png +0 -0
- wx/demo/bitmaps/stopdisabled.png +0 -0
- wx/demo/bitmaps/sttbutton.png +0 -0
- wx/demo/bitmaps/sttfont.png +0 -0
- wx/demo/bitmaps/sttheader.png +0 -0
- wx/demo/bitmaps/stthelp.png +0 -0
- wx/demo/bitmaps/toucan.png +0 -0
- wx/demo/bitmaps/view1.png +0 -0
- wx/demo/bitmaps/view2.png +0 -0
- wx/demo/bitmaps/view_choose.png +0 -0
- wx/demo/bitmaps/view_detailed.png +0 -0
- wx/demo/bitmaps/view_icon.png +0 -0
- wx/demo/bitmaps/view_multicolumn.png +0 -0
- wx/demo/bitmaps/viewmag-16.png +0 -0
- wx/demo/bitmaps/viewmag-m-16.png +0 -0
- wx/demo/bitmaps/viewmag-p-16.png +0 -0
- wx/demo/bitmaps/viewmagfit-16.png +0 -0
- wx/demo/bmp_source/001.png +0 -0
- wx/demo/bmp_source/002.png +0 -0
- wx/demo/bmp_source/003.png +0 -0
- wx/demo/bmp_source/004.png +0 -0
- wx/demo/bmp_source/005.png +0 -0
- wx/demo/bmp_source/006.png +0 -0
- wx/demo/bmp_source/007.png +0 -0
- wx/demo/bmp_source/008.png +0 -0
- wx/demo/bmp_source/009.png +0 -0
- wx/demo/bmp_source/010.png +0 -0
- wx/demo/bmp_source/011.png +0 -0
- wx/demo/bmp_source/012.png +0 -0
- wx/demo/bmp_source/013.png +0 -0
- wx/demo/bmp_source/014.png +0 -0
- wx/demo/bmp_source/015.png +0 -0
- wx/demo/bmp_source/016.png +0 -0
- wx/demo/bmp_source/017.png +0 -0
- wx/demo/bmp_source/018.png +0 -0
- wx/demo/bmp_source/019.png +0 -0
- wx/demo/bmp_source/020.png +0 -0
- wx/demo/bmp_source/021.png +0 -0
- wx/demo/bmp_source/022.png +0 -0
- wx/demo/bmp_source/023.png +0 -0
- wx/demo/bmp_source/024.png +0 -0
- wx/demo/bmp_source/025.png +0 -0
- wx/demo/bmp_source/026.png +0 -0
- wx/demo/bmp_source/027.png +0 -0
- wx/demo/bmp_source/028.png +0 -0
- wx/demo/bmp_source/029.png +0 -0
- wx/demo/bmp_source/030.png +0 -0
- wx/demo/bmp_source/DbDec.bmp +0 -0
- wx/demo/bmp_source/DbInc.bmp +0 -0
- wx/demo/bmp_source/Dec.bmp +0 -0
- wx/demo/bmp_source/FRM_0.png +0 -0
- wx/demo/bmp_source/FRM_1.png +0 -0
- wx/demo/bmp_source/FRM_2.png +0 -0
- wx/demo/bmp_source/FRM_3.png +0 -0
- wx/demo/bmp_source/FRM_4.png +0 -0
- wx/demo/bmp_source/FRM_5.png +0 -0
- wx/demo/bmp_source/FRM_6.png +0 -0
- wx/demo/bmp_source/FRM_7.png +0 -0
- wx/demo/bmp_source/FRM_8.png +0 -0
- wx/demo/bmp_source/GridBG.gif +0 -0
- wx/demo/bmp_source/Inc.bmp +0 -0
- wx/demo/bmp_source/LB01.png +0 -0
- wx/demo/bmp_source/LB02.png +0 -0
- wx/demo/bmp_source/LB03.png +0 -0
- wx/demo/bmp_source/LB04.png +0 -0
- wx/demo/bmp_source/LB05.png +0 -0
- wx/demo/bmp_source/LB06.png +0 -0
- wx/demo/bmp_source/LB07.png +0 -0
- wx/demo/bmp_source/LB08.png +0 -0
- wx/demo/bmp_source/LB09.png +0 -0
- wx/demo/bmp_source/LB10.png +0 -0
- wx/demo/bmp_source/LB11.png +0 -0
- wx/demo/bmp_source/LB12.png +0 -0
- wx/demo/bmp_source/Pt.bmp +0 -0
- wx/demo/bmp_source/Vippi.png +0 -0
- wx/demo/bmp_source/backgrnd.png +0 -0
- wx/demo/bmp_source/book.png +0 -0
- wx/demo/bmp_source/book_blue.png +0 -0
- wx/demo/bmp_source/book_green.png +0 -0
- wx/demo/bmp_source/book_red.png +0 -0
- wx/demo/bmp_source/bp_btn1.png +0 -0
- wx/demo/bmp_source/bp_btn2.png +0 -0
- wx/demo/bmp_source/bp_btn3.png +0 -0
- wx/demo/bmp_source/bp_btn4.png +0 -0
- wx/demo/bmp_source/bulb1.bmp +0 -0
- wx/demo/bmp_source/bulb2.bmp +0 -0
- wx/demo/bmp_source/carrot.png +0 -0
- wx/demo/bmp_source/clipboard.png +0 -0
- wx/demo/bmp_source/code.png +0 -0
- wx/demo/bmp_source/core.png +0 -0
- wx/demo/bmp_source/custom.png +0 -0
- wx/demo/bmp_source/customcontrol.png +0 -0
- wx/demo/bmp_source/deletedocs.png +0 -0
- wx/demo/bmp_source/deleteperspective.png +0 -0
- wx/demo/bmp_source/demo.png +0 -0
- wx/demo/bmp_source/dialog.png +0 -0
- wx/demo/bmp_source/exit.png +0 -0
- wx/demo/bmp_source/expansion.png +0 -0
- wx/demo/bmp_source/find.png +0 -0
- wx/demo/bmp_source/findnext.png +0 -0
- wx/demo/bmp_source/floatcanvas.png +0 -0
- wx/demo/bmp_source/frame.png +0 -0
- wx/demo/bmp_source/images.png +0 -0
- wx/demo/bmp_source/inspect.png +0 -0
- wx/demo/bmp_source/layout.png +0 -0
- wx/demo/bmp_source/logo.png +0 -0
- wx/demo/bmp_source/miscellaneous.png +0 -0
- wx/demo/bmp_source/modifiedexists.png +0 -0
- wx/demo/bmp_source/mondrian.ico +0 -0
- wx/demo/bmp_source/morecontrols.png +0 -0
- wx/demo/bmp_source/moredialog.png +0 -0
- wx/demo/bmp_source/noicon.png +0 -0
- wx/demo/bmp_source/overview.png +0 -0
- wx/demo/bmp_source/pencil.png +0 -0
- wx/demo/bmp_source/pointy.png +0 -0
- wx/demo/bmp_source/process.png +0 -0
- wx/demo/bmp_source/pyshell.png +0 -0
- wx/demo/bmp_source/recent.png +0 -0
- wx/demo/bmp_source/rest.png +0 -0
- wx/demo/bmp_source/robin.jpg +0 -0
- wx/demo/bmp_source/rt_alignleft.xpm +24 -0
- wx/demo/bmp_source/rt_alignright.xpm +24 -0
- wx/demo/bmp_source/rt_bold.xpm +24 -0
- wx/demo/bmp_source/rt_centre.xpm +24 -0
- wx/demo/bmp_source/rt_colour.xpm +59 -0
- wx/demo/bmp_source/rt_copy.xpm +44 -0
- wx/demo/bmp_source/rt_cut.xpm +46 -0
- wx/demo/bmp_source/rt_font.xpm +25 -0
- wx/demo/bmp_source/rt_idea.xpm +47 -0
- wx/demo/bmp_source/rt_indentless.xpm +25 -0
- wx/demo/bmp_source/rt_indentmore.xpm +25 -0
- wx/demo/bmp_source/rt_italic.xpm +25 -0
- wx/demo/bmp_source/rt_open.xpm +57 -0
- wx/demo/bmp_source/rt_paste.xpm +46 -0
- wx/demo/bmp_source/rt_redo.xpm +58 -0
- wx/demo/bmp_source/rt_sample.xpm +44 -0
- wx/demo/bmp_source/rt_save.xpm +42 -0
- wx/demo/bmp_source/rt_smiley.xpm +42 -0
- wx/demo/bmp_source/rt_underline.xpm +25 -0
- wx/demo/bmp_source/rt_undo.xpm +58 -0
- wx/demo/bmp_source/rt_zebra.xpm +409 -0
- wx/demo/bmp_source/saveperspective.png +0 -0
- wx/demo/bmp_source/sm_down.bmp +0 -0
- wx/demo/bmp_source/sm_up.bmp +0 -0
- wx/demo/bmp_source/smiles2.bmp +0 -0
- wx/demo/bmp_source/test2.bmp +0 -0
- wx/demo/bmp_source/testmask.bmp +0 -0
- wx/demo/bmp_source/teststar.png +0 -0
- wx/demo/bmp_source/thekid.png +0 -0
- wx/demo/bmp_source/tog1.bmp +0 -0
- wx/demo/bmp_source/tog2.bmp +0 -0
- wx/demo/bmp_source/wiztest1.bmp +0 -0
- wx/demo/bmp_source/wiztest2.bmp +0 -0
- wx/demo/bmp_source/wxpdemo.ico +0 -0
- wx/demo/cursors/paperairplane_arrow_blue.cur +0 -0
- wx/demo/cursors/paperairplane_arrow_blue_fadeout80.cur +0 -0
- wx/demo/cursors/paperairplane_arrow_colorshift.ani +0 -0
- wx/demo/cursors/paperairplane_arrow_dark.cur +0 -0
- wx/demo/cursors/paperairplane_arrow_grey.cur +0 -0
- wx/demo/cursors/paperairplane_arrow_red.cur +0 -0
- wx/demo/cursors/paperairplane_arrow_white.cur +0 -0
- wx/demo/cursors/paperairplane_arrow_white24.png +0 -0
- wx/demo/data/0-tiger.svg +725 -0
- wx/demo/data/Asteroid_blaster.swf +0 -0
- wx/demo/data/SIL_OPEN_FONT_LICENSE.txt +97 -0
- wx/demo/data/SourceCodePro-Regular.ttf +0 -0
- wx/demo/data/accessories-calculator.svg +636 -0
- wx/demo/data/accessories-text-editor.svg +554 -0
- wx/demo/data/anykey.wav +0 -0
- wx/demo/data/applications-internet.svg +623 -0
- wx/demo/data/desktop-accessibility.svg +245 -0
- wx/demo/data/desktop-keyboard-shortcuts.svg +839 -0
- wx/demo/data/desktop-locale.svg +878 -0
- wx/demo/data/desktop-remote-desktop.svg +1479 -0
- wx/demo/data/desktop-theme.svg +882 -0
- wx/demo/data/desktop-wallpaper.svg +747 -0
- wx/demo/data/echo.py +25 -0
- wx/demo/data/imagemap.htm +20 -0
- wx/demo/data/imagemap.png +0 -0
- wx/demo/data/internet-group-chat.svg +312 -0
- wx/demo/data/internet-mail.svg +440 -0
- wx/demo/data/locale/af/LC_MESSAGES/wxpydemo.mo +0 -0
- wx/demo/data/locale/de/LC_MESSAGES/wxpydemo.mo +0 -0
- wx/demo/data/locale/es/LC_MESSAGES/wxpydemo.mo +0 -0
- wx/demo/data/locale/fr/LC_MESSAGES/wxpydemo.mo +0 -0
- wx/demo/data/locale/it/LC_MESSAGES/wxpydemo.mo +0 -0
- wx/demo/data/locale-src/af.po +23 -0
- wx/demo/data/locale-src/de.po +23 -0
- wx/demo/data/locale-src/es.po +22 -0
- wx/demo/data/locale-src/fr.po +22 -0
- wx/demo/data/locale-src/install +15 -0
- wx/demo/data/locale-src/it.po +23 -0
- wx/demo/data/locale-src/wxpydemo.po +21 -0
- wx/demo/data/office-calendar.svg +316 -0
- wx/demo/data/pic.png +0 -0
- wx/demo/data/pic2.bmp +0 -0
- wx/demo/data/plan.wav +0 -0
- wx/demo/data/proclamation.txt +115 -0
- wx/demo/data/resource.wdr +0 -0
- wx/demo/data/resource_wdr.xrc +146 -0
- wx/demo/data/romedalen.png +0 -0
- wx/demo/data/stc.h.html +3544 -0
- wx/demo/data/system-session.svg +510 -0
- wx/demo/data/system-users.svg +539 -0
- wx/demo/data/tables.htm +116 -0
- wx/demo/data/test-gradient-pen.svg +14 -0
- wx/demo/data/test-opacity.svg +7 -0
- wx/demo/data/test.htm +253 -0
- wx/demo/data/testmovie.mpg +0 -0
- wx/demo/data/testtable.txt +38 -0
- wx/demo/data/tips.txt +73 -0
- wx/demo/data/utilities-system-monitor.svg +435 -0
- wx/demo/data/utilities-terminal.svg +500 -0
- wx/demo/data/widgetTest.htm +70 -0
- wx/demo/data/world.dat +24055 -0
- wx/demo/demo.py +4 -0
- wx/demo/demo.pyw +4 -0
- wx/demo/demodata.py +310 -0
- wx/demo/encode_bitmaps.py +181 -0
- wx/demo/images.py +6812 -0
- wx/demo/infoframe.py +149 -0
- wx/demo/run.py +171 -0
- wx/demo/snippets/__init__.py +13 -0
- wx/demo/snippets/arc.py +21 -0
- wx/demo/snippets/arc_negative.py +21 -0
- wx/demo/snippets/clip.py +13 -0
- wx/demo/snippets/clip_image.py +13 -0
- wx/demo/snippets/curve_rectangle.py +53 -0
- wx/demo/snippets/curve_to.py +17 -0
- wx/demo/snippets/dash.py +18 -0
- wx/demo/snippets/ellipse.py +33 -0
- wx/demo/snippets/fill_and_stroke.py +12 -0
- wx/demo/snippets/fill_and_stroke2.py +18 -0
- wx/demo/snippets/fill_style.py +31 -0
- wx/demo/snippets/glyph_path.py +21 -0
- wx/demo/snippets/gradient.py +16 -0
- wx/demo/snippets/gradient_mask.py +12 -0
- wx/demo/snippets/group.py +16 -0
- wx/demo/snippets/image.py +14 -0
- wx/demo/snippets/imagepattern.py +23 -0
- wx/demo/snippets/path.py +7 -0
- wx/demo/snippets/set_line_cap.py +19 -0
- wx/demo/snippets/set_line_join.py +21 -0
- wx/demo/snippets/show_glyphs.py +15 -0
- wx/demo/snippets/text.py +22 -0
- wx/demo/snippets/text_align_center.py +26 -0
- wx/demo/snippets/text_extents.py +27 -0
- wx/demo/template.py +36 -0
- wx/demo/throbImages.py +1277 -0
- wx/demo/version.py +3 -0
- wx/demo/widgetTest.py +72 -0
- wx/demo/wxpdemo.ico +0 -0
- wx/glcanvas.py +10 -0
- wx/glcanvas.pyi +458 -0
- wx/grid.py +229 -0
- wx/grid.pyi +4959 -0
- wx/html.py +35 -0
- wx/html.pyi +2965 -0
- wx/html2.py +40 -0
- wx/html2.pyi +772 -0
- wx/lib/CDate.py +202 -0
- wx/lib/ClickableHtmlWindow.py +57 -0
- wx/lib/__init__.py +0 -0
- wx/lib/activex.py +178 -0
- wx/lib/activexwrapper.py +153 -0
- wx/lib/agw/__init__.py +128 -0
- wx/lib/agw/advancedsplash.py +564 -0
- wx/lib/agw/aquabutton.py +1127 -0
- wx/lib/agw/artmanager.py +2110 -0
- wx/lib/agw/aui/__init__.py +295 -0
- wx/lib/agw/aui/aui_constants.py +2628 -0
- wx/lib/agw/aui/aui_switcherdialog.py +1227 -0
- wx/lib/agw/aui/aui_utilities.py +672 -0
- wx/lib/agw/aui/auibar.py +4031 -0
- wx/lib/agw/aui/auibook.py +6289 -0
- wx/lib/agw/aui/dockart.py +1198 -0
- wx/lib/agw/aui/framemanager.py +10409 -0
- wx/lib/agw/aui/tabart.py +2771 -0
- wx/lib/agw/aui/tabmdi.py +679 -0
- wx/lib/agw/balloontip.py +1158 -0
- wx/lib/agw/buttonpanel.py +2823 -0
- wx/lib/agw/cubecolourdialog.py +3529 -0
- wx/lib/agw/customtreectrl.py +8963 -0
- wx/lib/agw/data/ShortcutEditor_1.png +0 -0
- wx/lib/agw/data/ShortcutEditor_1_thumb.png +0 -0
- wx/lib/agw/data/ShortcutEditor_2.png +0 -0
- wx/lib/agw/data/ShortcutEditor_2_thumb.png +0 -0
- wx/lib/agw/data/ShortcutEditor_3.png +0 -0
- wx/lib/agw/data/ShortcutEditor_3_thumb.png +0 -0
- wx/lib/agw/data/ShortcutEditor_4.png +0 -0
- wx/lib/agw/data/ShortcutEditor_4_thumb.png +0 -0
- wx/lib/agw/data/default_help_text.html +105 -0
- wx/lib/agw/flatmenu.py +7333 -0
- wx/lib/agw/flatnotebook.py +6672 -0
- wx/lib/agw/floatspin.py +1823 -0
- wx/lib/agw/fmcustomizedlg.py +540 -0
- wx/lib/agw/fmresources.py +407 -0
- wx/lib/agw/foldpanelbar.py +2282 -0
- wx/lib/agw/fourwaysplitter.py +1130 -0
- wx/lib/agw/genericmessagedialog.py +1549 -0
- wx/lib/agw/gradientbutton.py +732 -0
- wx/lib/agw/hyperlink.py +664 -0
- wx/lib/agw/hypertreelist.py +5374 -0
- wx/lib/agw/infobar.py +885 -0
- wx/lib/agw/knobctrl.py +945 -0
- wx/lib/agw/labelbook.py +3029 -0
- wx/lib/agw/multidirdialog.py +615 -0
- wx/lib/agw/peakmeter.py +1029 -0
- wx/lib/agw/persist/__init__.py +188 -0
- wx/lib/agw/persist/persist_constants.py +284 -0
- wx/lib/agw/persist/persist_handlers.py +2614 -0
- wx/lib/agw/persist/persistencemanager.py +864 -0
- wx/lib/agw/piectrl.py +1082 -0
- wx/lib/agw/pybusyinfo.py +399 -0
- wx/lib/agw/pycollapsiblepane.py +940 -0
- wx/lib/agw/pygauge.py +570 -0
- wx/lib/agw/pyprogress.py +917 -0
- wx/lib/agw/ribbon/__init__.py +198 -0
- wx/lib/agw/ribbon/art.py +219 -0
- wx/lib/agw/ribbon/art_aui.py +1284 -0
- wx/lib/agw/ribbon/art_default.py +81 -0
- wx/lib/agw/ribbon/art_internal.py +244 -0
- wx/lib/agw/ribbon/art_msw.py +2736 -0
- wx/lib/agw/ribbon/art_osx.py +52 -0
- wx/lib/agw/ribbon/bar.py +1261 -0
- wx/lib/agw/ribbon/buttonbar.py +1320 -0
- wx/lib/agw/ribbon/control.py +205 -0
- wx/lib/agw/ribbon/gallery.py +974 -0
- wx/lib/agw/ribbon/page.py +946 -0
- wx/lib/agw/ribbon/panel.py +1170 -0
- wx/lib/agw/ribbon/toolbar.py +1442 -0
- wx/lib/agw/rulerctrl.py +1887 -0
- wx/lib/agw/scrolledthumbnail.py +2119 -0
- wx/lib/agw/shapedbutton.py +1809 -0
- wx/lib/agw/shortcuteditor.py +2634 -0
- wx/lib/agw/speedmeter.py +1801 -0
- wx/lib/agw/supertooltip.py +1444 -0
- wx/lib/agw/thumbnailctrl.py +529 -0
- wx/lib/agw/toasterbox.py +1327 -0
- wx/lib/agw/ultimatelistctrl.py +13666 -0
- wx/lib/agw/xlsgrid.py +2113 -0
- wx/lib/agw/zoombar.py +1339 -0
- wx/lib/analogclock/__init__.py +140 -0
- wx/lib/analogclock/analogclock.py +631 -0
- wx/lib/analogclock/helpers.py +991 -0
- wx/lib/analogclock/lib_setup/__init__.py +0 -0
- wx/lib/analogclock/lib_setup/buttontreectrlpanel.py +297 -0
- wx/lib/analogclock/lib_setup/fontselect.py +57 -0
- wx/lib/analogclock/setup.py +490 -0
- wx/lib/analogclock/styles.py +47 -0
- wx/lib/anchors.py +103 -0
- wx/lib/art/__init__.py +4 -0
- wx/lib/art/flagart.py +1583 -0
- wx/lib/art/img2pyartprov.py +56 -0
- wx/lib/busy.py +146 -0
- wx/lib/buttons.py +1141 -0
- wx/lib/calendar.py +1597 -0
- wx/lib/checkbox.py +837 -0
- wx/lib/colourchooser/__init__.py +38 -0
- wx/lib/colourchooser/canvas.py +145 -0
- wx/lib/colourchooser/intl.py +24 -0
- wx/lib/colourchooser/pycolourbox.py +89 -0
- wx/lib/colourchooser/pycolourchooser.py +629 -0
- wx/lib/colourchooser/pycolourslider.py +100 -0
- wx/lib/colourchooser/pypalette.py +211 -0
- wx/lib/colourdb.py +740 -0
- wx/lib/colourselect.py +385 -0
- wx/lib/colourutils.py +118 -0
- wx/lib/combotreebox.py +944 -0
- wx/lib/delayedresult.py +420 -0
- wx/lib/dialogs.py +510 -0
- wx/lib/docview.py +3210 -0
- wx/lib/dragscroller.py +79 -0
- wx/lib/editor/README.txt +77 -0
- wx/lib/editor/__init__.py +24 -0
- wx/lib/editor/editor.py +974 -0
- wx/lib/editor/images.py +15 -0
- wx/lib/editor/selection.py +44 -0
- wx/lib/embeddedimage.py +76 -0
- wx/lib/eventStack.py +136 -0
- wx/lib/eventwatcher.py +440 -0
- wx/lib/evtmgr.py +521 -0
- wx/lib/expando.py +393 -0
- wx/lib/fancytext.py +505 -0
- wx/lib/filebrowsebutton.py +459 -0
- wx/lib/flashwin.py +262 -0
- wx/lib/flashwin_old.py +651 -0
- wx/lib/floatcanvas/FCEvents.py +53 -0
- wx/lib/floatcanvas/FCObjects.py +2923 -0
- wx/lib/floatcanvas/FloatCanvas.py +1027 -0
- wx/lib/floatcanvas/GUIMode.py +396 -0
- wx/lib/floatcanvas/NavCanvas.py +161 -0
- wx/lib/floatcanvas/Resources.py +319 -0
- wx/lib/floatcanvas/ScreenShot.py +1788 -0
- wx/lib/floatcanvas/Utilities/BBox.py +314 -0
- wx/lib/floatcanvas/Utilities/Colors.py +137 -0
- wx/lib/floatcanvas/Utilities/GUI.py +91 -0
- wx/lib/floatcanvas/Utilities/__init__.py +7 -0
- wx/lib/floatcanvas/__init__.py +124 -0
- wx/lib/foldmenu.py +89 -0
- wx/lib/gestures.py +310 -0
- wx/lib/gizmos/__init__.py +18 -0
- wx/lib/gizmos/dynamicsash.py +1202 -0
- wx/lib/gizmos/ledctrl.py +300 -0
- wx/lib/gizmos/treelistctrl.py +87 -0
- wx/lib/graphics.py +1939 -0
- wx/lib/gridmovers.py +511 -0
- wx/lib/iewin.py +249 -0
- wx/lib/iewin_old.py +894 -0
- wx/lib/imagebrowser.py +856 -0
- wx/lib/imageutils.py +163 -0
- wx/lib/infoframe.py +490 -0
- wx/lib/inspection.py +1255 -0
- wx/lib/intctrl.py +1001 -0
- wx/lib/itemspicker.py +256 -0
- wx/lib/langlistctrl.py +480 -0
- wx/lib/layoutf.py +271 -0
- wx/lib/masked/__init__.py +27 -0
- wx/lib/masked/combobox.py +839 -0
- wx/lib/masked/ctrl.py +108 -0
- wx/lib/masked/ipaddrctrl.py +242 -0
- wx/lib/masked/maskededit.py +7279 -0
- wx/lib/masked/numctrl.py +2001 -0
- wx/lib/masked/textctrl.py +465 -0
- wx/lib/masked/timectrl.py +1466 -0
- wx/lib/mixins/__init__.py +17 -0
- wx/lib/mixins/grid.py +47 -0
- wx/lib/mixins/gridlabelrenderer.py +251 -0
- wx/lib/mixins/imagelist.py +77 -0
- wx/lib/mixins/inspection.py +184 -0
- wx/lib/mixins/listctrl.py +894 -0
- wx/lib/mixins/rubberband.py +404 -0
- wx/lib/mixins/treemixin.py +678 -0
- wx/lib/msgpanel.py +95 -0
- wx/lib/multisash.py +747 -0
- wx/lib/myole4ax.idl +178 -0
- wx/lib/myole4ax.tlb +0 -0
- wx/lib/newevent.py +229 -0
- wx/lib/nvdlg.py +156 -0
- wx/lib/ogl/__init__.py +13 -0
- wx/lib/ogl/basic.py +3991 -0
- wx/lib/ogl/bmpshape.py +87 -0
- wx/lib/ogl/canvas.py +467 -0
- wx/lib/ogl/composit.py +1577 -0
- wx/lib/ogl/diagram.py +230 -0
- wx/lib/ogl/divided.py +483 -0
- wx/lib/ogl/drawn.py +900 -0
- wx/lib/ogl/lines.py +1811 -0
- wx/lib/ogl/oglmisc.py +608 -0
- wx/lib/pdfviewer/__init__.py +113 -0
- wx/lib/pdfviewer/bitmaps/ArrowLeft.png +0 -0
- wx/lib/pdfviewer/bitmaps/ArrowRight.png +0 -0
- wx/lib/pdfviewer/bitmaps/DirectionH.png +0 -0
- wx/lib/pdfviewer/bitmaps/DirectionV.png +0 -0
- wx/lib/pdfviewer/bitmaps/PlayerFirst.png +0 -0
- wx/lib/pdfviewer/bitmaps/PlayerLast.png +0 -0
- wx/lib/pdfviewer/bitmaps/PlayerNext.png +0 -0
- wx/lib/pdfviewer/bitmaps/PlayerPrev.png +0 -0
- wx/lib/pdfviewer/bitmaps/Printer.png +0 -0
- wx/lib/pdfviewer/bitmaps/ReadMe.txt +28 -0
- wx/lib/pdfviewer/bitmaps/Save.png +0 -0
- wx/lib/pdfviewer/bitmaps/ZoomIn.png +0 -0
- wx/lib/pdfviewer/bitmaps/ZoomOut.png +0 -0
- wx/lib/pdfviewer/bitmaps/encode_bitmaps.py +37 -0
- wx/lib/pdfviewer/buttonpanel.py +279 -0
- wx/lib/pdfviewer/images.py +240 -0
- wx/lib/pdfviewer/viewer.py +1077 -0
- wx/lib/pdfwin.py +295 -0
- wx/lib/pdfwin_old.py +789 -0
- wx/lib/platebtn.py +789 -0
- wx/lib/plot/CHANGELOG.md +150 -0
- wx/lib/plot/README.md +16 -0
- wx/lib/plot/__init__.py +46 -0
- wx/lib/plot/__main__.py +5 -0
- wx/lib/plot/examples/__init__.py +0 -0
- wx/lib/plot/examples/demo.py +1009 -0
- wx/lib/plot/examples/simple_example.py +54 -0
- wx/lib/plot/plotcanvas.py +2981 -0
- wx/lib/plot/polyobjects.py +1525 -0
- wx/lib/plot/utils.py +327 -0
- wx/lib/popupctl.py +250 -0
- wx/lib/printout.py +1157 -0
- wx/lib/progressindicator.py +151 -0
- wx/lib/pubsub/LICENSE_BSD_Simple.txt +23 -0
- wx/lib/pubsub/README_WxPython.txt +22 -0
- wx/lib/pubsub/RELEASE_NOTES.txt +71 -0
- wx/lib/pubsub/__init__.py +25 -0
- wx/lib/pubsub/core/__init__.py +92 -0
- wx/lib/pubsub/core/arg1/__init__.py +16 -0
- wx/lib/pubsub/core/arg1/listenerimpl.py +97 -0
- wx/lib/pubsub/core/arg1/publisher.py +40 -0
- wx/lib/pubsub/core/arg1/publishermixin.py +34 -0
- wx/lib/pubsub/core/arg1/topicargspecimpl.py +66 -0
- wx/lib/pubsub/core/arg1/topicmgrimpl.py +19 -0
- wx/lib/pubsub/core/callables.py +191 -0
- wx/lib/pubsub/core/imp2.py +63 -0
- wx/lib/pubsub/core/itopicdefnprovider.py +0 -0
- wx/lib/pubsub/core/kwargs/__init__.py +16 -0
- wx/lib/pubsub/core/kwargs/datamsg.py +27 -0
- wx/lib/pubsub/core/kwargs/listenerimpl.py +93 -0
- wx/lib/pubsub/core/kwargs/publisher.py +77 -0
- wx/lib/pubsub/core/kwargs/publishermixin.py +65 -0
- wx/lib/pubsub/core/kwargs/topicargspecimpl.py +217 -0
- wx/lib/pubsub/core/kwargs/topicmgrimpl.py +13 -0
- wx/lib/pubsub/core/listener.py +40 -0
- wx/lib/pubsub/core/listenerbase.py +185 -0
- wx/lib/pubsub/core/notificationmgr.py +185 -0
- wx/lib/pubsub/core/publisherbase.py +191 -0
- wx/lib/pubsub/core/topicargspec.py +77 -0
- wx/lib/pubsub/core/topicdefnprovider.py +632 -0
- wx/lib/pubsub/core/topicexc.py +72 -0
- wx/lib/pubsub/core/topicmgr.py +456 -0
- wx/lib/pubsub/core/topicobj.py +472 -0
- wx/lib/pubsub/core/topictreetraverser.py +143 -0
- wx/lib/pubsub/core/topicutils.py +118 -0
- wx/lib/pubsub/core/treeconfig.py +21 -0
- wx/lib/pubsub/core/validatedefnargs.py +29 -0
- wx/lib/pubsub/core/weakmethod.py +102 -0
- wx/lib/pubsub/policies.py +24 -0
- wx/lib/pubsub/pub.py +199 -0
- wx/lib/pubsub/py2and3.py +608 -0
- wx/lib/pubsub/setuparg1.py +47 -0
- wx/lib/pubsub/setupkwargs.py +29 -0
- wx/lib/pubsub/utils/__init__.py +27 -0
- wx/lib/pubsub/utils/exchandling.py +100 -0
- wx/lib/pubsub/utils/misc.py +100 -0
- wx/lib/pubsub/utils/notification.py +331 -0
- wx/lib/pubsub/utils/topictreeprinter.py +195 -0
- wx/lib/pubsub/utils/xmltopicdefnprovider.py +287 -0
- wx/lib/pydocview.py +3300 -0
- wx/lib/rcsizer.py +229 -0
- wx/lib/resizewidget.py +357 -0
- wx/lib/scrolledpanel.py +225 -0
- wx/lib/sheet.py +350 -0
- wx/lib/sized_controls.py +691 -0
- wx/lib/softwareupdate.py +361 -0
- wx/lib/splitter.py +925 -0
- wx/lib/statbmp.py +199 -0
- wx/lib/stattext.py +322 -0
- wx/lib/throbber.py +425 -0
- wx/lib/ticker.py +295 -0
- wx/lib/ticker_xrc.py +48 -0
- wx/lib/utils.py +89 -0
- wx/lib/wordwrap.py +97 -0
- wx/lib/wxcairo/__init__.py +124 -0
- wx/lib/wxcairo/wx_cairocffi.py +200 -0
- wx/lib/wxcairo/wx_pycairo.py +463 -0
- wx/lib/wxpTag.py +274 -0
- wx/locale/af/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/an/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/ar/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/ca/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/ca@valencia/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/cs/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/da/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/de/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/el/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/es/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/eu/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/fa_IR/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/fi/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/fr/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/gl_ES/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/hi/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/hr/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/hu/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/id/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/it/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/ja/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/ka/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/ko_KR/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/lt/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/lv/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/ms/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/nb/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/ne/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/nl/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/pl/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/pt/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/pt_BR/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/ro/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/ru/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/sk/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/sl/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/sq/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/sv/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/ta/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/tr/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/uk/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/vi/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/zh_CN/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/zh_TW/LC_MESSAGES/wxstd.mo +0 -0
- wx/media.py +27 -0
- wx/media.pyi +223 -0
- wx/msw.py +13 -0
- wx/msw.pyi +65 -0
- wx/propgrid.py +1451 -0
- wx/propgrid.pyi +7914 -0
- wx/py/CHANGES.txt +796 -0
- wx/py/Py.ico +0 -0
- wx/py/PyAlaCarte.py +34 -0
- wx/py/PyAlaMode.py +34 -0
- wx/py/PyAlaModeTest.py +33 -0
- wx/py/PyCrust.ico +0 -0
- wx/py/PyCrust.py +78 -0
- wx/py/PyCrust_16.png +0 -0
- wx/py/PyCrust_32.png +0 -0
- wx/py/PyFilling.py +35 -0
- wx/py/PyShell.py +78 -0
- wx/py/PySlices.ico +0 -0
- wx/py/PySlices.py +98 -0
- wx/py/PySlicesShell.py +94 -0
- wx/py/PySlices_16.png +0 -0
- wx/py/PySlices_32.png +0 -0
- wx/py/PyWrap.py +52 -0
- wx/py/README.txt +77 -0
- wx/py/__init__.py +20 -0
- wx/py/buffer.py +136 -0
- wx/py/crust.py +403 -0
- wx/py/crustslices.py +403 -0
- wx/py/dispatcher.py +259 -0
- wx/py/document.py +37 -0
- wx/py/editor.py +844 -0
- wx/py/editwindow.py +299 -0
- wx/py/filling.py +357 -0
- wx/py/frame.py +978 -0
- wx/py/images.py +212 -0
- wx/py/interpreter.py +170 -0
- wx/py/introspect.py +393 -0
- wx/py/magic.py +98 -0
- wx/py/parse.py +134 -0
- wx/py/path.py +36 -0
- wx/py/pseudo.py +99 -0
- wx/py/shell.py +1588 -0
- wx/py/sliceshell.py +3814 -0
- wx/py/tests/test_interpreter.py +71 -0
- wx/py/tests/test_introspect.py +862 -0
- wx/py/tests/test_pseudo.py +70 -0
- wx/py/tests/test_version.py +36 -0
- wx/py/tests/testall.py +22 -0
- wx/py/version.py +7 -0
- wx/ribbon.py +45 -0
- wx/ribbon.pyi +2494 -0
- wx/richtext.py +142 -0
- wx/richtext.pyi +12113 -0
- wx/siplib.cp313-win_amd64.pyd +0 -0
- wx/stc.py +58 -0
- wx/stc.pyi +8463 -0
- wx/svg/__init__.py +364 -0
- wx/svg/_nanosvg.cp313-win_amd64.pyd +0 -0
- wx/tools/__init__.py +18 -0
- wx/tools/dbg.py +268 -0
- wx/tools/genaxmodule.py +50 -0
- wx/tools/helpviewer.py +92 -0
- wx/tools/img2img.py +85 -0
- wx/tools/img2png.py +54 -0
- wx/tools/img2py.py +309 -0
- wx/tools/img2xpm.py +54 -0
- wx/tools/pywxrc.py +949 -0
- wx/tools/wxget.py +254 -0
- wx/tools/wxget_docs_demo.py +186 -0
- wx/wxbase315u_net_vc140_x64.dll +0 -0
- wx/wxbase315u_vc140_x64.dll +0 -0
- wx/wxbase315u_xml_vc140_x64.dll +0 -0
- wx/wxmsw315u_adv_vc140_x64.dll +0 -0
- wx/wxmsw315u_aui_vc140_x64.dll +0 -0
- wx/wxmsw315u_core_vc140_x64.dll +0 -0
- wx/wxmsw315u_gl_vc140_x64.dll +0 -0
- wx/wxmsw315u_html_vc140_x64.dll +0 -0
- wx/wxmsw315u_media_vc140_x64.dll +0 -0
- wx/wxmsw315u_propgrid_vc140_x64.dll +0 -0
- wx/wxmsw315u_qa_vc140_x64.dll +0 -0
- wx/wxmsw315u_ribbon_vc140_x64.dll +0 -0
- wx/wxmsw315u_richtext_vc140_x64.dll +0 -0
- wx/wxmsw315u_stc_vc140_x64.dll +0 -0
- wx/wxmsw315u_webview_vc140_x64.dll +0 -0
- wx/wxmsw315u_xrc_vc140_x64.dll +0 -0
- wx/xml.py +15 -0
- wx/xml.pyi +575 -0
- wx/xrc.py +65 -0
- wx/xrc.pyi +742 -0
- wxPython_zombie-3.1.5.8.dist-info/LICENSE.txt +950 -0
- wxPython_zombie-3.1.5.8.dist-info/METADATA +107 -0
- wxPython_zombie-3.1.5.8.dist-info/RECORD +1175 -0
- wxPython_zombie-3.1.5.8.dist-info/WHEEL +5 -0
- wxPython_zombie-3.1.5.8.dist-info/entry_points.txt +2 -0
- 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:])
|