From d8f0a915a3d87c77b587a493bf2b467266189054 Mon Sep 17 00:00:00 2001 From: Georgi Tushev Date: Fri, 24 Nov 2017 16:38:26 +0100 Subject: [PATCH] remove GUI toolbox --- .../layout/+uiextras/BoxPanel.m | 139 --- .../layout/+uiextras/CardPanel.m | 93 -- .../layout/+uiextras/Empty.m | 30 - .../layout/+uiextras/Grid.m | 143 --- .../layout/+uiextras/GridFlex.m | 161 --- .../layout/+uiextras/HBox.m | 114 --- .../layout/+uiextras/HBoxFlex.m | 123 --- .../layout/+uiextras/HButtonBox.m | 46 - .../layout/+uiextras/Panel.m | 106 -- .../layout/+uiextras/TabPanel.m | 224 ----- .../layout/+uiextras/VBox.m | 114 --- .../layout/+uiextras/VBoxFlex.m | 123 --- .../layout/+uiextras/VButtonBox.m | 46 - .../layout/+uiextras/get.m | 15 - .../layout/+uiextras/set.m | 15 - .../layout/+uiextras/unset.m | 15 - .../layout/+uix/+mixin/Container.m | 297 ------ .../layout/+uix/+mixin/Flex.m | 71 -- .../layout/+uix/+mixin/Panel.m | 188 ---- .../layout/+uix/Box.m | 45 - .../layout/+uix/BoxPanel.m | 551 ---------- .../layout/+uix/ButtonBox.m | 96 -- .../layout/+uix/CardPanel.m | 64 -- .../layout/+uix/ChildEvent.m | 28 - .../layout/+uix/ChildObserver.m | 220 ---- .../layout/+uix/Container.m | 9 - .../layout/+uix/Divider.m | 344 ------- .../layout/+uix/Empty.m | 102 -- .../layout/+uix/FigureData.m | 26 - .../layout/+uix/FigureObserver.m | 98 -- .../layout/+uix/Grid.m | 321 ------ .../layout/+uix/GridFlex.m | 467 --------- .../layout/+uix/HBox.m | 194 ---- .../layout/+uix/HBoxFlex.m | 349 ------- .../layout/+uix/HButtonBox.m | 100 -- .../layout/+uix/Node.m | 94 -- .../layout/+uix/Panel.m | 63 -- .../layout/+uix/PointerManager.m | 153 --- .../+uix/Resources/tab_NoEdge_NotSelected.png | Bin 228 -> 0 bytes .../+uix/Resources/tab_NoEdge_Selected.png | Bin 216 -> 0 bytes .../+uix/Resources/tab_NotSelected_NoEdge.png | Bin 228 -> 0 bytes .../Resources/tab_NotSelected_NotSelected.png | Bin 243 -> 0 bytes .../Resources/tab_NotSelected_Selected.png | Bin 243 -> 0 bytes .../+uix/Resources/tab_Selected_NoEdge.png | Bin 230 -> 0 bytes .../Resources/tab_Selected_NotSelected.png | Bin 238 -> 0 bytes .../layout/+uix/ScrollingPanel.m | 645 ------------ .../layout/+uix/SelectionData.m | 31 - .../layout/+uix/TabPanel.m | 951 ------------------ .../layout/+uix/Text.m | 546 ---------- .../layout/+uix/VBox.m | 194 ---- .../layout/+uix/VBoxFlex.m | 349 ------- .../layout/+uix/VButtonBox.m | 98 -- .../layout/+uix/calcPixelSizes.m | 47 - .../layout/+uix/loadIcon.m | 102 -- .../layout/+uix/setPosition.m | 29 - .../layout/+uix/tracking.m | 229 ----- .../layout/Contents.m | 29 - .../layout/layoutRoot.m | 18 - .../layoutdoc/AxesExample.html | 1 - .../layoutdoc/AxesLegendsColorbars.html | 1 - .../layoutdoc/BoxPanelFancyStuff.html | 1 - .../layoutdoc/Compiling.html | 1 - .../layoutdoc/ExampleApp.html | 1 - .../layoutdoc/Examples.html | 88 -- .../layoutdoc/Examples/axesexample.m | 41 - .../layoutdoc/Examples/callbackexample.m | 47 - .../layoutdoc/Examples/colorbarexample.m | 29 - .../layoutdoc/Examples/demoBrowser.m | 209 ---- .../Examples/displayEndOfDemoMessage.m | 4 - .../layoutdoc/Examples/dockexample.m | 74 -- .../layoutdoc/Examples/gridflexpositioning.m | 25 - .../layoutdoc/Examples/guideApp.fig | Bin 2408 -> 0 bytes .../layoutdoc/Examples/guideApp.m | 106 -- .../layoutdoc/Examples/hierarchyexample.m | 33 - .../layoutdoc/Examples/minimizeexample.m | 54 - .../layoutdoc/Examples/paneltabexample.m | 59 -- .../layoutdoc/Examples/visibleexample.m | 30 - .../layoutdoc/Function_reference.html | 190 ---- .../layoutdoc/Function_reference1_1.html | 83 -- .../layoutdoc/Function_reference1_2.html | 77 -- .../layoutdoc/Function_reference1_3.html | 87 -- .../layoutdoc/Function_reference1_4.html | 75 -- .../layoutdoc/Function_reference1_5.html | 76 -- .../layoutdoc/Function_reference2_1.html | 88 -- .../layoutdoc/Function_reference2_2.html | 87 -- .../layoutdoc/Function_reference2_3.html | 79 -- .../layoutdoc/Function_reference2_4.html | 78 -- .../layoutdoc/Function_reference2_5.html | 80 -- .../layoutdoc/Function_reference2_6.html | 81 -- .../layoutdoc/Function_reference3_1.html | 82 -- .../layoutdoc/Function_reference3_2.html | 84 -- .../layoutdoc/Function_reference4_1.html | 69 -- .../layoutdoc/Function_reference4_2.html | 63 -- .../layoutdoc/Function_reference4_3.html | 57 -- .../layoutdoc/GUI Layout.html | 5 - .../layoutdoc/Getting_Started.html | 85 -- .../layoutdoc/Getting_Started1.html | 54 - .../layoutdoc/Getting_Started2.html | 150 --- .../layoutdoc/Getting_Started3.html | 179 ---- .../layoutdoc/Getting_Started4.html | 51 - .../layoutdoc/Getting_Started5.html | 55 - .../layoutdoc/Getting_Started6.html | 49 - .../layoutdoc/HierarchyExample.html | 1 - .../layoutdoc/Images/Border.png | Bin 3736 -> 0 bytes .../layoutdoc/Images/BoxInBox.png | Bin 4359 -> 0 bytes .../layoutdoc/Images/BoxPanel.png | Bin 1708 -> 0 bytes .../layoutdoc/Images/BoxPanel2.png | Bin 3235 -> 0 bytes .../layoutdoc/Images/BoxPanelDockExample1.png | Bin 2577 -> 0 bytes .../layoutdoc/Images/BoxPanelDockExample2.png | Bin 2738 -> 0 bytes .../layoutdoc/Images/BoxPanelDockExample3.png | Bin 2365 -> 0 bytes .../layoutdoc/Images/BoxPanelDockExample4.png | Bin 2002 -> 0 bytes .../layoutdoc/Images/BoxPanelHelpExample.png | Bin 1761 -> 0 bytes .../Images/BoxPanelMinimizeExample1.png | Bin 4312 -> 0 bytes .../Images/BoxPanelMinimizeExample2.png | Bin 4489 -> 0 bytes .../Images/BoxPanelMinimizeExample3.png | Bin 3342 -> 0 bytes .../layoutdoc/Images/CardPanel.png | Bin 791 -> 0 bytes .../layoutdoc/Images/CombineBoxes.png | Bin 1687 -> 0 bytes .../layoutdoc/Images/DefaultsFigure.png | Bin 3889 -> 0 bytes .../layoutdoc/Images/DefaultsSystem1.png | Bin 3876 -> 0 bytes .../layoutdoc/Images/DefaultsSystem2.png | Bin 4082 -> 0 bytes .../layoutdoc/Images/Empty.png | Bin 3569 -> 0 bytes .../layoutdoc/Images/EnableExample1.png | Bin 2936 -> 0 bytes .../layoutdoc/Images/EnableExample2.png | Bin 4991 -> 0 bytes .../layoutdoc/Images/EnableExample3.png | Bin 5009 -> 0 bytes .../layoutdoc/Images/Grid.png | Bin 3561 -> 0 bytes .../layoutdoc/Images/GridFlex.png | Bin 4129 -> 0 bytes .../layoutdoc/Images/HBox.png | Bin 828 -> 0 bytes .../layoutdoc/Images/HBoxFlex.png | Bin 927 -> 0 bytes .../layoutdoc/Images/HButtonBox.png | Bin 1609 -> 0 bytes .../layoutdoc/Images/Panel.png | Bin 1471 -> 0 bytes .../layoutdoc/Images/Panel2.png | Bin 2395 -> 0 bytes .../layoutdoc/Images/ScrollingPanel.png | Bin 118060 -> 0 bytes .../layoutdoc/Images/TabPanel.png | Bin 2098 -> 0 bytes .../layoutdoc/Images/VBox.png | Bin 843 -> 0 bytes .../layoutdoc/Images/VBoxFlex.png | Bin 931 -> 0 bytes .../layoutdoc/Images/VButtonBox.png | Bin 1843 -> 0 bytes .../layoutdoc/Images/VisibleExample1.png | Bin 1250 -> 0 bytes .../layoutdoc/Images/VisibleExample2.png | Bin 2534 -> 0 bytes .../layoutdoc/Images/VisibleExample3.png | Bin 671 -> 0 bytes .../layoutdoc/Images/axes_inner.png | Bin 795 -> 0 bytes .../Images/axes_layout_example_2.png | Bin 4116 -> 0 bytes .../Images/axes_layout_example_3.png | Bin 21365 -> 0 bytes .../layoutdoc/Images/axes_outer.png | Bin 2873 -> 0 bytes .../layoutdoc/Images/basics_example2.png | Bin 859 -> 0 bytes .../layoutdoc/Images/basics_example3.png | Bin 1057 -> 0 bytes .../layoutdoc/Images/basics_example4.png | Bin 1138 -> 0 bytes .../layoutdoc/Images/basics_example5.png | Bin 1165 -> 0 bytes .../layoutdoc/Images/basics_example6.png | Bin 1134 -> 0 bytes .../layoutdoc/Images/basics_example_tab.png | Bin 2207 -> 0 bytes .../layoutdoc/Images/basics_example_vbox.png | Bin 1205 -> 0 bytes .../layoutdoc/Images/bigicon_BorderLayout.png | Bin 389 -> 0 bytes .../layoutdoc/Images/bigicon_BoxPanel.png | Bin 474 -> 0 bytes .../layoutdoc/Images/bigicon_CardPanel.png | Bin 421 -> 0 bytes .../layoutdoc/Images/bigicon_Grid.png | Bin 425 -> 0 bytes .../layoutdoc/Images/bigicon_GridFlex.png | Bin 657 -> 0 bytes .../layoutdoc/Images/bigicon_HBox.png | Bin 305 -> 0 bytes .../layoutdoc/Images/bigicon_HBoxFlex.png | Bin 472 -> 0 bytes .../layoutdoc/Images/bigicon_HButtonBox.png | Bin 359 -> 0 bytes .../layoutdoc/Images/bigicon_Panel.png | Bin 428 -> 0 bytes .../Images/bigicon_ScrollingPanel.png | Bin 594 -> 0 bytes .../layoutdoc/Images/bigicon_TabPanel.png | Bin 420 -> 0 bytes .../layoutdoc/Images/bigicon_VBox.png | Bin 343 -> 0 bytes .../layoutdoc/Images/bigicon_VBoxFlex.png | Bin 490 -> 0 bytes .../layoutdoc/Images/bigicon_VButtonBox.png | Bin 327 -> 0 bytes .../layoutdoc/Images/bookicon.gif | Bin 171 -> 0 bytes .../layoutdoc/Images/colorbar_example_2.png | Bin 8433 -> 0 bytes .../layoutdoc/Images/colorbar_example_3.png | Bin 32759 -> 0 bytes .../layoutdoc/Images/demoBrowser1.png | Bin 266658 -> 0 bytes .../layoutdoc/Images/demoBrowser2.png | Bin 266658 -> 0 bytes .../layoutdoc/Images/demoBrowser3.png | Bin 266658 -> 0 bytes .../layoutdoc/Images/demoBrowser4.png | Bin 266658 -> 0 bytes .../layoutdoc/Images/demoicon.gif | Bin 214 -> 0 bytes .../layoutdoc/Images/deploy.png | Bin 14918 -> 0 bytes .../layoutdoc/Images/greenarrowicon.gif | Bin 145 -> 0 bytes .../layoutdoc/Images/guide1.png | Bin 20373 -> 0 bytes .../layoutdoc/Images/guide2.png | Bin 7797 -> 0 bytes .../layoutdoc/Images/header.png | Bin 13278 -> 0 bytes .../layoutdoc/Images/headerBG.png | Bin 168 -> 0 bytes .../layoutdoc/Images/help_ex.png | Bin 3330 -> 0 bytes .../layoutdoc/Images/help_fx.png | Bin 47601 -> 0 bytes .../layoutdoc/Images/help_gs.png | Bin 576 -> 0 bytes .../layoutdoc/Images/help_rn.png | Bin 846 -> 0 bytes .../layoutdoc/Images/help_ug.png | Bin 765 -> 0 bytes .../layoutdoc/Images/leftarrow.png | Bin 343 -> 0 bytes .../layoutdoc/Images/pageicon.gif | Bin 867 -> 0 bytes .../layoutdoc/Images/pagesicon.gif | Bin 171 -> 0 bytes .../layoutdoc/Images/reficon.gif | Bin 171 -> 0 bytes .../layoutdoc/Images/rightarrow.png | Bin 332 -> 0 bytes .../layoutdoc/Images/titleimage.png | Bin 11586 -> 0 bytes .../layoutdoc/Images/uparrow.png | Bin 291 -> 0 bytes .../layoutdoc/Images/why_fixed1.png | Bin 2785 -> 0 bytes .../layoutdoc/Images/why_fixed2.png | Bin 3021 -> 0 bytes .../layoutdoc/Images/why_layout0_1.png | Bin 2641 -> 0 bytes .../layoutdoc/Images/why_layout0_2.png | Bin 2409 -> 0 bytes .../layoutdoc/Images/why_layout1.png | Bin 2409 -> 0 bytes .../layoutdoc/Images/why_layout2.png | Bin 2926 -> 0 bytes .../layoutdoc/Images/why_layout_anno1.png | Bin 3687 -> 0 bytes .../layoutdoc/Images/why_layout_anno2.png | Bin 3629 -> 0 bytes .../layoutdoc/Images/why_normalized1.png | Bin 2786 -> 0 bytes .../layoutdoc/Images/why_normalized2.png | Bin 3708 -> 0 bytes .../layoutdoc/LayoutsGUIDE.html | 1 - .../layoutdoc/PanelDock.html | 1 - .../layoutdoc/PanelHelp.html | 1 - .../layoutdoc/PanelMinimize.html | 1 - .../layoutdoc/User_guide.html | 95 -- .../layoutdoc/User_guide1.html | 76 -- .../layoutdoc/User_guide1_1.html | 88 -- .../layoutdoc/User_guide1_2.html | 65 -- .../layoutdoc/User_guide1_3.html | 94 -- .../layoutdoc/User_guide1_4.html | 92 -- .../layoutdoc/User_guide1_5.html | 105 -- .../layoutdoc/User_guide2.html | 68 -- .../layoutdoc/User_guide2_1.html | 62 -- .../layoutdoc/User_guide2_2.html | 92 -- .../layoutdoc/User_guide2_3.html | 85 -- .../layoutdoc/User_guide3.html | 57 -- .../layoutdoc/User_guide3_1.html | 84 -- .../layoutdoc/User_guide4.html | 71 -- .../layoutdoc/User_guide4_1.html | 62 -- .../layoutdoc/User_guide4_2.html | 140 --- .../layoutdoc/User_guide4_3.html | 154 --- .../layoutdoc/User_guide5.html | 84 -- .../layoutdoc/User_guide6.html | 56 -- .../layoutdoc/User_guide7.html | 90 -- .../layoutdoc/User_guide7_1.html | 105 -- .../layoutdoc/User_guide7_2.html | 105 -- .../layoutdoc/User_guide7_3.html | 70 -- .../layoutdoc/User_guide7_4.html | 70 -- .../layoutdoc/User_guide7_5.html | 61 -- .../layoutdoc/User_guide7_6.html | 60 -- .../layoutdoc/VisibleExample.html | 1 - .../layoutdoc/about.html | 1 - .../layoutdoc/atoz.html | 181 ---- .../layoutdoc/compatibility.html | 1 - .../layoutdoc/demoBrowserCreateInterface.html | 1 - .../layoutdoc/demoBrowserOnListSelection.html | 1 - .../layoutdoc/demoBrowserRun.html | 1 - .../layoutdoc/demoBrowserScalability.html | 1 - .../layoutdoc/demoBrowserStructure.html | 1 - .../layoutdoc/demoBrowserUpdateInterface.html | 1 - .../layoutdoc/doc.css | 95 -- .../layoutdoc/frames.html | 12 - .../layoutdoc/helpindex.xml | 118 --- .../layoutdoc/helpsearch-v3/_0.cfe | Bin 268 -> 0 bytes .../layoutdoc/helpsearch-v3/_0.cfs | Bin 125132 -> 0 bytes .../layoutdoc/helpsearch-v3/_0.si | Bin 255 -> 0 bytes .../layoutdoc/helpsearch-v3/segments.gen | Bin 20 -> 0 bytes .../layoutdoc/helpsearch-v3/segments_1 | Bin 81 -> 0 bytes .../layoutdoc/helptoc.html | 37 - .../layoutdoc/helptoc.xml | 12 - .../layoutdoc/index.html | 59 -- .../layoutdoc/info.xml | 11 - .../layoutdoc/layoutDocRoot.m | 12 - .../layoutdoc/layoutRoot.html | 1 - .../layoutdoc/releasenotes.html | 1 - .../layoutdoc/termsOfUse.m | 8 - .../layoutdoc/uix.BoxPanel.html | 1 - .../layoutdoc/uix.CardPanel.html | 1 - .../layoutdoc/uix.Empty.html | 1 - .../layoutdoc/uix.Grid.html | 1 - .../layoutdoc/uix.GridFlex.html | 1 - .../layoutdoc/uix.HBox.html | 1 - .../layoutdoc/uix.HBoxFlex.html | 1 - .../layoutdoc/uix.HButtonBox.html | 1 - .../layoutdoc/uix.Panel.html | 1 - .../layoutdoc/uix.ScrollingPanel.html | 1 - .../layoutdoc/uix.TabPanel.html | 1 - .../layoutdoc/uix.VBox.html | 1 - .../layoutdoc/uix.VBoxFlex.html | 1 - .../layoutdoc/uix.VButtonBox.html | 1 - .../layoutdoc/uix.tracking.html | 1 - widgets/GUI Layout Toolbox 2.3.1/license.txt | 27 - 272 files changed, 14317 deletions(-) delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/BoxPanel.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/CardPanel.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/Empty.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/Grid.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/GridFlex.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/HBox.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/HBoxFlex.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/HButtonBox.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/Panel.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/TabPanel.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/VBox.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/VBoxFlex.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/VButtonBox.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/get.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/set.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/unset.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uix/+mixin/Container.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uix/+mixin/Flex.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uix/+mixin/Panel.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Box.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uix/BoxPanel.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uix/ButtonBox.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uix/CardPanel.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uix/ChildEvent.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uix/ChildObserver.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Container.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Divider.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Empty.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uix/FigureData.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uix/FigureObserver.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Grid.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uix/GridFlex.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uix/HBox.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uix/HBoxFlex.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uix/HButtonBox.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Node.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Panel.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uix/PointerManager.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Resources/tab_NoEdge_NotSelected.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Resources/tab_NoEdge_Selected.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Resources/tab_NotSelected_NoEdge.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Resources/tab_NotSelected_NotSelected.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Resources/tab_NotSelected_Selected.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Resources/tab_Selected_NoEdge.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Resources/tab_Selected_NotSelected.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uix/ScrollingPanel.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uix/SelectionData.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uix/TabPanel.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Text.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uix/VBox.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uix/VBoxFlex.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uix/VButtonBox.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uix/calcPixelSizes.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uix/loadIcon.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uix/setPosition.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/+uix/tracking.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/Contents.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layout/layoutRoot.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/AxesExample.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/AxesLegendsColorbars.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/BoxPanelFancyStuff.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Compiling.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/ExampleApp.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/axesexample.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/callbackexample.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/colorbarexample.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/demoBrowser.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/displayEndOfDemoMessage.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/dockexample.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/gridflexpositioning.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/guideApp.fig delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/guideApp.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/hierarchyexample.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/minimizeexample.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/paneltabexample.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/visibleexample.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference1_1.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference1_2.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference1_3.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference1_4.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference1_5.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference2_1.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference2_2.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference2_3.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference2_4.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference2_5.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference2_6.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference3_1.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference3_2.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference4_1.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference4_2.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference4_3.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/GUI Layout.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Getting_Started.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Getting_Started1.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Getting_Started2.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Getting_Started3.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Getting_Started4.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Getting_Started5.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Getting_Started6.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/HierarchyExample.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/Border.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/BoxInBox.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/BoxPanel.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/BoxPanel2.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/BoxPanelDockExample1.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/BoxPanelDockExample2.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/BoxPanelDockExample3.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/BoxPanelDockExample4.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/BoxPanelHelpExample.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/BoxPanelMinimizeExample1.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/BoxPanelMinimizeExample2.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/BoxPanelMinimizeExample3.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/CardPanel.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/CombineBoxes.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/DefaultsFigure.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/DefaultsSystem1.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/DefaultsSystem2.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/Empty.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/EnableExample1.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/EnableExample2.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/EnableExample3.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/Grid.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/GridFlex.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/HBox.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/HBoxFlex.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/HButtonBox.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/Panel.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/Panel2.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/ScrollingPanel.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/TabPanel.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/VBox.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/VBoxFlex.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/VButtonBox.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/VisibleExample1.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/VisibleExample2.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/VisibleExample3.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/axes_inner.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/axes_layout_example_2.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/axes_layout_example_3.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/axes_outer.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/basics_example2.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/basics_example3.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/basics_example4.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/basics_example5.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/basics_example6.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/basics_example_tab.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/basics_example_vbox.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/bigicon_BorderLayout.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/bigicon_BoxPanel.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/bigicon_CardPanel.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/bigicon_Grid.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/bigicon_GridFlex.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/bigicon_HBox.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/bigicon_HBoxFlex.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/bigicon_HButtonBox.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/bigicon_Panel.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/bigicon_ScrollingPanel.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/bigicon_TabPanel.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/bigicon_VBox.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/bigicon_VBoxFlex.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/bigicon_VButtonBox.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/bookicon.gif delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/colorbar_example_2.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/colorbar_example_3.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/demoBrowser1.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/demoBrowser2.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/demoBrowser3.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/demoBrowser4.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/demoicon.gif delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/deploy.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/greenarrowicon.gif delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/guide1.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/guide2.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/header.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/headerBG.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/help_ex.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/help_fx.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/help_gs.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/help_rn.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/help_ug.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/leftarrow.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/pageicon.gif delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/pagesicon.gif delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/reficon.gif delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/rightarrow.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/titleimage.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/uparrow.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/why_fixed1.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/why_fixed2.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/why_layout0_1.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/why_layout0_2.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/why_layout1.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/why_layout2.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/why_layout_anno1.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/why_layout_anno2.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/why_normalized1.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/why_normalized2.png delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/LayoutsGUIDE.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/PanelDock.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/PanelHelp.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/PanelMinimize.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide1.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide1_1.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide1_2.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide1_3.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide1_4.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide1_5.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide2.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide2_1.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide2_2.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide2_3.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide3.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide3_1.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide4.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide4_1.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide4_2.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide4_3.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide5.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide6.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide7.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide7_1.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide7_2.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide7_3.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide7_4.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide7_5.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide7_6.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/VisibleExample.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/about.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/atoz.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/compatibility.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/demoBrowserCreateInterface.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/demoBrowserOnListSelection.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/demoBrowserRun.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/demoBrowserScalability.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/demoBrowserStructure.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/demoBrowserUpdateInterface.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/doc.css delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/frames.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/helpindex.xml delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/helpsearch-v3/_0.cfe delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/helpsearch-v3/_0.cfs delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/helpsearch-v3/_0.si delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/helpsearch-v3/segments.gen delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/helpsearch-v3/segments_1 delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/helptoc.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/helptoc.xml delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/index.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/info.xml delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/layoutDocRoot.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/layoutRoot.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/releasenotes.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/termsOfUse.m delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.BoxPanel.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.CardPanel.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.Empty.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.Grid.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.GridFlex.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.HBox.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.HBoxFlex.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.HButtonBox.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.Panel.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.ScrollingPanel.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.TabPanel.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.VBox.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.VBoxFlex.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.VButtonBox.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.tracking.html delete mode 100644 widgets/GUI Layout Toolbox 2.3.1/license.txt diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/BoxPanel.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/BoxPanel.m deleted file mode 100644 index 2a330e2..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/BoxPanel.m +++ /dev/null @@ -1,139 +0,0 @@ -classdef BoxPanel < uix.BoxPanel - %uiextras.BoxPanel Show one element inside a box panel - % - % obj = uiextras.BoxPanel() creates a box-styled panel object with - % automatic management of the contained widget or layout. The - % properties available are largely the same as the builtin UIPANEL - % object. Where more than one child is added, the currently visible - % child is determined using the SelectedChild property. - % - % obj = uiextras.BoxPanel(param,value,...) also sets one or more - % property values. - % - % See the documentation for more detail and the list of properties. - % - % Examples: - % >> f = figure(); - % >> p = uiextras.BoxPanel( 'Parent', f, 'Title', 'A BoxPanel', 'Padding', 5 ); - % >> uicontrol( 'Style', 'frame', 'Parent', p, 'Background', 'r' ) - % - % >> f = figure(); - % >> p = uiextras.BoxPanel( 'Parent', f, 'Title', 'A BoxPanel', 'Padding', 5 ); - % >> b = uiextras.HBox( 'Parent', p, 'Spacing', 5 ); - % >> uicontrol( 'Style', 'listbox', 'Parent', b, 'String', {'Item 1','Item 2'} ); - % >> uicontrol( 'Style', 'frame', 'Parent', b, 'Background', 'b' ); - % >> set( b, 'Sizes', [100 -1] ); - % >> p.FontSize = 12; - % >> p.FontWeight = 'bold'; - % >> p.HelpFcn = @(x,y) disp('Help me!'); - % - % See also: uiextras.Panel - % uiextras.TabPanel - % uiextras.HBoxFlex - - % Copyright 2009-2014 The MathWorks, Inc. - % $Revision: 979 $ $Date: 2014-09-28 14:26:12 -0400 (Sun, 28 Sep 2014) $ - - properties( Hidden, Access = public, Dependent ) - Enable % deprecated - IsDocked - IsMinimized - SelectedChild % deprecated - end - - methods - - function obj = BoxPanel( varargin ) - - % Call uix constructor - obj@uix.BoxPanel( varargin{:} ) - - % Auto-parent - if ~ismember( 'Parent', varargin(1:2:end) ) - obj.Parent = gcf(); - end - - end % constructor - - end % structors - - methods - - function value = get.Enable( ~ ) - - % Warn - % warning( 'uiextras:Deprecated', ... - % 'Property ''Enable'' will be removed in a future release.' ) - - % Return - value = 'on'; - - end % get.Enable - - function set.Enable( ~, value ) - - % Check - assert( ischar( value ) && any( strcmp( value, {'on','off'} ) ), ... - 'uiextras:InvalidPropertyValue', ... - 'Property ''Enable'' must be ''on'' or ''off''.' ) - - % Warn - % warning( 'uiextras:Deprecated', ... - % 'Property ''Enable'' will be removed in a future release.' ) - - end % set.Enable - - function value = get.IsDocked( obj ) - - % Get - value = obj.Docked; - - end % get.IsDocked - - function set.IsDocked( obj, value ) - - % Get - obj.Docked = value; - - end % set.IsDocked - - function value = get.IsMinimized( obj ) - - % Get - value = obj.Minimized; - - end % get.IsMinimized - - function set.IsMinimized( obj, value ) - - % Get - obj.Minimized = value; - - end % set.IsMinimized - - function value = get.SelectedChild( obj ) - - % Warn - % warning( 'uiextras:Deprecated', ... - % 'Property ''SelectedChild'' will be removed in a future release.' ) - - % Get - if isempty( obj.Contents_ ) - value = []; - else - value = 1; - end - - end % get.SelectedChild - - function set.SelectedChild( ~, ~ ) - - % Warn - % warning( 'uiextras:Deprecated', ... - % 'Property ''SelectedChild'' will be removed in a future release.' ) - - end % set.SelectedChild - - end % accessors - -end % classdef \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/CardPanel.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/CardPanel.m deleted file mode 100644 index d0024e0..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/CardPanel.m +++ /dev/null @@ -1,93 +0,0 @@ -classdef CardPanel < uix.CardPanel - %uiextras.CardPanel Show one element (card) from a list - % - % obj = uiextras.CardPanel() creates a new card panel which allows - % selection between the different child objects contained, making the - % selected child fill the space available and all other children - % invisible. This is commonly used for creating wizards or quick - % switching between different views of a single data-set. - % - % obj = uiextras.CardPanel(param,value,...) also sets one or more - % property values. - % - % See the documentation for more detail and the list of properties. - % - % Examples: - % >> f = figure(); - % >> p = uiextras.CardPanel( 'Parent', f, 'Padding', 5 ); - % >> uicontrol( 'Style', 'frame', 'Parent', p, 'Background', 'r' ); - % >> uicontrol( 'Style', 'frame', 'Parent', p, 'Background', 'b' ); - % >> uicontrol( 'Style', 'frame', 'Parent', p, 'Background', 'g' ); - % >> p.SelectedChild = 2; - % - % See also: uiextras.Panel - % uiextras.BoxPanel - % uiextras.TabPanel - - % Copyright 2009-2014 The MathWorks, Inc. - % $Revision: 979 $ $Date: 2014-09-28 14:26:12 -0400 (Sun, 28 Sep 2014) $ - - properties( Hidden, Access = public, Dependent ) - Enable % deprecated - SelectedChild - end - - methods - - function obj = CardPanel( varargin ) - - % Call uix constructor - obj@uix.CardPanel( varargin{:} ) - - % Auto-parent - if ~ismember( 'Parent', varargin(1:2:end) ) - obj.Parent = gcf(); - end - - end % constructor - - end % structors - - methods - - function value = get.Enable( ~ ) - - % Warn - % warning( 'uiextras:Deprecated', ... - % 'Property ''Enable'' will be removed in a future release.' ) - - % Return - value = 'on'; - - end % get.Enable - - function set.Enable( ~, value ) - - % Check - assert( ischar( value ) && any( strcmp( value, {'on','off'} ) ), ... - 'uiextras:InvalidPropertyValue', ... - 'Property ''Enable'' must be ''on'' or ''off''.' ) - - % Warn - % warning( 'uiextras:Deprecated', ... - % 'Property ''Enable'' will be removed in a future release.' ) - - end % set.Enable - - function value = get.SelectedChild( obj ) - - % Get - value = obj.Selection; - - end % get.SelectedChild - - function set.SelectedChild( obj, value ) - - % Set - obj.Selection = value; - - end % set.SelectedChild - - end % accessors - -end % classdef \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/Empty.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/Empty.m deleted file mode 100644 index e7851d8..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/Empty.m +++ /dev/null @@ -1,30 +0,0 @@ -function obj = Empty( varargin ) -%uiextras.Empty Create an empty space -% -% obj = uiextras.Empty() creates an empty space that can be used to add -% gaps between elements in layouts. -% -% obj = uiextras.Empty(param,value,...) also sets one or more property -% values. -% -% See the documentation for more detail and the list of properties. -% -% Examples: -% >> f = figure(); -% >> box = uiextras.HBox( 'Parent', f ); -% >> uicontrol( 'Parent', box, 'Background', 'r' ) -% >> uiextras.Empty( 'Parent', box ) -% >> uicontrol( 'Parent', box, 'Background', 'b' ) - -% Copyright 2009-2014 The MathWorks, Inc. -% $Revision: 1115 $ $Date: 2015-05-28 15:16:22 +0100 (Thu, 28 May 2015) $ - -% Call uix construction function -obj = uix.Empty( varargin{:} ); - -% Auto-parent -if ~ismember( 'Parent', varargin(1:2:end) ) - obj.Parent = gcf(); -end - -end % uiextras.Empty \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/Grid.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/Grid.m deleted file mode 100644 index 15bb841..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/Grid.m +++ /dev/null @@ -1,143 +0,0 @@ -classdef Grid < uix.Grid - %uiextras.Grid Container with contents arranged in a grid - % - % obj = uiextras.Grid() creates a new new grid layout with all - % properties set to defaults. The number of rows and columns to use - % is determined from the number of elements in the RowSizes and - % ColumnSizes properties respectively. Child elements are arranged - % down column one first, then column two etc. If there are - % insufficient columns then a new one is added. The output is a new - % layout object that can be used as the parent for other - % user-interface components. The output is a new layout object that - % can be used as the parent for other user-interface components. - % - % obj = uiextras.Grid(param,value,...) also sets one or more - % parameter values. - % - % See the documentation for more detail and the list of properties. - % - % Examples: - % >> f = figure(); - % >> g = uiextras.Grid( 'Parent', f, 'Spacing', 5 ); - % >> uicontrol( 'Style', 'frame', 'Parent', g, 'Background', 'r' ) - % >> uicontrol( 'Style', 'frame', 'Parent', g, 'Background', 'b' ) - % >> uicontrol( 'Style', 'frame', 'Parent', g, 'Background', 'g' ) - % >> uiextras.Empty( 'Parent', g ) - % >> uicontrol( 'Style', 'frame', 'Parent', g, 'Background', 'c' ) - % >> uicontrol( 'Style', 'frame', 'Parent', g, 'Background', 'y' ) - % >> set( g, 'ColumnSizes', [-1 100 -2], 'RowSizes', [-1 100] ); - % - % See also: uiextras.GridFlex - - % Copyright 2009-2014 The MathWorks, Inc. - % $Revision: 1077 $ $Date: 2015-03-19 16:44:14 +0000 (Thu, 19 Mar 2015) $ - - properties( Hidden, Access = public, Dependent ) - Enable % deprecated - RowSizes % heights of contents, in pixels and/or weights - MinimumRowSizes % minimum heights of contents, in pixels - ColumnSizes % widths of contents, in pixels and/or weights - MinimumColumnSizes % minimum widths of contents, in pixels - end - - methods - - function obj = Grid( varargin ) - - % Call uix constructor - obj@uix.Grid( varargin{:} ) - - % Auto-parent - if ~ismember( 'Parent', varargin(1:2:end) ) - obj.Parent = gcf(); - end - - end % constructor - - end % structors - - methods - - function value = get.Enable( ~ ) - - % Warn - % warning( 'uiextras:Deprecated', ... - % 'Property ''Enable'' will be removed in a future release.' ) - - % Return - value = 'on'; - - end % get.Enable - - function set.Enable( ~, value ) - - % Check - assert( ischar( value ) && any( strcmp( value, {'on','off'} ) ), ... - 'uiextras:InvalidPropertyValue', ... - 'Property ''Enable'' must be ''on'' or ''off''.' ) - - % Warn - % warning( 'uiextras:Deprecated', ... - % 'Property ''Enable'' will be removed in a future release.' ) - - end % set.Enable - - function value = get.RowSizes( obj ) - - % Get - value = obj.Heights; - - end % get.RowSizes - - function set.RowSizes( obj, value ) - - % Set - obj.Heights = value; - - end % set.RowSizes - - function value = get.MinimumRowSizes( obj ) - - % Get - value = obj.MinimumHeights; - - end % get.MinimumRowSizes - - function set.MinimumRowSizes( obj, value ) - - % Set - obj.MinimumHeights = value; - - end % set.MinimumRowSizes - - function value = get.ColumnSizes( obj ) - - % Get - value = obj.Widths; - - end % get.ColumnSizes - - function set.ColumnSizes( obj, value ) - - % Get - obj.Widths = value; - - end % set.ColumnSizes - - function value = get.MinimumColumnSizes( obj ) - - % Get - value = obj.MinimumWidths; - - end % get.MinimumColumnSizes - - function set.MinimumColumnSizes( obj, value ) - - % Get - obj.MinimumWidths = value; - - end % set.MinimumColumnSizes - - end % accessors - -end % classdef \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/GridFlex.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/GridFlex.m deleted file mode 100644 index 62617cd..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/GridFlex.m +++ /dev/null @@ -1,161 +0,0 @@ -classdef GridFlex < uix.GridFlex - %uiextras.GridFlex Container with contents arranged in a resizable grid - % - % obj = uiextras.GridFlex() creates a new new grid layout with - % draggable dividers between elements. The number of rows and columns - % to use is determined from the number of elements in the RowSizes - % and ColumnSizes properties respectively. Child elements are - % arranged down column one first, then column two etc. If there are - % insufficient columns then a new one is added. The output is a new - % layout object that can be used as the parent for other - % user-interface components. The output is a new layout object that - % can be used as the parent for other user-interface components. - % - % obj = uiextras.GridFlex(param,value,...) also sets one or more - % parameter values. - % - % See the documentation for more detail and the list of properties. - % - % Examples: - % >> f = figure(); - % >> g = uiextras.GridFlex( 'Parent', f, 'Spacing', 5 ); - % >> uicontrol( 'Parent', g, 'Background', 'r' ) - % >> uicontrol( 'Parent', g, 'Background', 'b' ) - % >> uicontrol( 'Parent', g, 'Background', 'g' ) - % >> uiextras.Empty( 'Parent', g ) - % >> uicontrol( 'Parent', g, 'Background', 'c' ) - % >> uicontrol( 'Parent', g, 'Background', 'y' ) - % >> set( g, 'ColumnSizes', [-1 100 -2], 'RowSizes', [-1 -2] ); - % - % See also: uiextras.Grid - % uiextras.HBoxFlex - % uiextras.VBoxFlex - % uiextras.Empty - - % Copyright 2009-2014 The MathWorks, Inc. - % $Revision: 1062 $ $Date: 2014-10-30 13:30:17 +0000 (Thu, 30 Oct 2014) $ - - properties( Hidden, Access = public, Dependent ) - Enable % deprecated - RowSizes % heights of contents, in pixels and/or weights - MinimumRowSizes % minimum heights of contents, in pixels - ColumnSizes % widths of contents, in pixels and/or weights - MinimumColumnSizes % minimum widths of contents, in pixels - ShowMarkings - end - - methods - - function obj = GridFlex( varargin ) - - % Call uix constructor - obj@uix.GridFlex( varargin{:} ) - - % Auto-parent - if ~ismember( 'Parent', varargin(1:2:end) ) - obj.Parent = gcf(); - end - - end % constructor - - end % structors - - methods - - function value = get.Enable( ~ ) - - % Warn - % warning( 'uiextras:Deprecated', ... - % 'Property ''Enable'' will be removed in a future release.' ) - - % Return - value = 'on'; - - end % get.Enable - - function set.Enable( ~, value ) - - % Check - assert( ischar( value ) && any( strcmp( value, {'on','off'} ) ), ... - 'uiextras:InvalidPropertyValue', ... - 'Property ''Enable'' must be ''on'' or ''off''.' ) - - % Warn - % warning( 'uiextras:Deprecated', ... - % 'Property ''Enable'' will be removed in a future release.' ) - - end % set.Enable - - function value = get.RowSizes( obj ) - - % Get - value = obj.Heights; - - end % get.RowSizes - - function set.RowSizes( obj, value ) - - % Set - obj.Heights = value; - - end % set.RowSizes - - function value = get.MinimumRowSizes( obj ) - - % Get - value = obj.MinimumHeights; - - end % get.MinimumRowSizes - - function set.MinimumRowSizes( obj, value ) - - % Set - obj.MinimumHeights = value; - - end % set.MinimumRowSizes - - function value = get.ColumnSizes( obj ) - - % Get - value = obj.Widths; - - end % get.ColumnSizes - - function set.ColumnSizes( obj, value ) - - % Get - obj.Widths = value; - - end % set.ColumnSizes - - function value = get.MinimumColumnSizes( obj ) - - % Get - value = obj.MinimumWidths; - - end % get.MinimumColumnSizes - - function set.MinimumColumnSizes( obj, value ) - - % Get - obj.MinimumWidths = value; - - end % set.MinimumColumnSizes - - function value = get.ShowMarkings( obj ) - - % Get - value = obj.DividerMarkings; - - end % get.ShowMarkings - - function set.ShowMarkings( obj, value ) - - % Set - obj.DividerMarkings = value; - - end % set.ShowMarkings - - end % accessors - -end % classdef \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/HBox.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/HBox.m deleted file mode 100644 index 26a0d78..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/HBox.m +++ /dev/null @@ -1,114 +0,0 @@ -classdef HBox < uix.HBox - %uiextras.HBox Arrange elements in a single horizontal row - % - % obj = uiextras.HBox() creates a new horizontal box layout with - % all parameters set to defaults. The output is a new layout object - % that can be used as the parent for other user-interface components. - % - % obj = uiextras.HBox(param,value,...) also sets one or more - % parameter values. - % - % See the documentation for more detail and the list of properties. - % - % Examples: - % >> f = figure(); - % >> b = uiextras.HBox( 'Parent', f ); - % >> uicontrol( 'Parent', b, 'Background', 'r' ) - % >> uicontrol( 'Parent', b, 'Background', 'b' ) - % >> uicontrol( 'Parent', b, 'Background', 'g' ) - % >> set( b, 'Sizes', [-1 100 -2], 'Spacing', 5 ); - % - % >> f = figure(); - % >> b1 = uiextras.VBox( 'Parent', f ); - % >> b2 = uiextras.HBox( 'Parent', b1, 'Padding', 5, 'Spacing', 5 ); - % >> uicontrol( 'Style', 'frame', 'Parent', b1, 'Background', 'r' ) - % >> uicontrol( 'Parent', b2, 'String', 'Button1' ) - % >> uicontrol( 'Parent', b2, 'String', 'Button2' ) - % >> set( b1, 'Sizes', [30 -1] ); - % - % See also: uiextras.VBox - % uiextras.HBoxFlex - % uiextras.Grid - - % Copyright 2009-2014 The MathWorks, Inc. - % $Revision: 1077 $ $Date: 2015-03-19 16:44:14 +0000 (Thu, 19 Mar 2015) $ - - properties( Hidden, Access = public, Dependent ) - Enable % deprecated - Sizes - MinimumSizes - end - - methods - - function obj = HBox( varargin ) - - % Call uix constructor - obj@uix.HBox( varargin{:} ) - - % Auto-parent - if ~ismember( 'Parent', varargin(1:2:end) ) - obj.Parent = gcf(); - end - - end % constructor - - end % structors - - methods - - function value = get.Enable( ~ ) - - % Warn - % warning( 'uiextras:Deprecated', ... - % 'Property ''Enable'' will be removed in a future release.' ) - - % Return - value = 'on'; - - end % get.Enable - - function set.Enable( ~, value ) - - % Check - assert( ischar( value ) && any( strcmp( value, {'on','off'} ) ), ... - 'uiextras:InvalidPropertyValue', ... - 'Property ''Enable'' must be ''on'' or ''off''.' ) - - % Warn - % warning( 'uiextras:Deprecated', ... - % 'Property ''Enable'' will be removed in a future release.' ) - - end % set.Enable - - function value = get.Sizes( obj ) - - % Get - value = transpose( obj.Widths ); - - end % get.Sizes - - function set.Sizes( obj, value ) - - % Set - obj.Widths = value; - - end % set.Sizes - - function value = get.MinimumSizes( obj ) - - % Get - value = transpose( obj.MinimumWidths ); - - end % get.MinimumSizes - - function set.MinimumSizes( obj, value ) - - % Get - obj.MinimumWidths = value; - - end % set.MinimumSizes - - end % accessors - -end % classdef \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/HBoxFlex.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/HBoxFlex.m deleted file mode 100644 index 2038c85..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/HBoxFlex.m +++ /dev/null @@ -1,123 +0,0 @@ -classdef HBoxFlex < uix.HBoxFlex - %uiextras.HBoxFlex A dynamically resizable horizontal layout - % - % obj = uiextras.HBoxFlex() creates a new dynamically resizable - % horizontal box layout with all parameters set to defaults. The - % output is a new layout object that can be used as the parent for - % other user-interface components. - % - % obj = uiextras.HBoxFlex(param,value,...) also sets one or more - % parameter values. - % - % See the documentation for more detail and the list of properties. - % - % Examples: - % >> f = figure( 'Name', 'uiextras.HBoxFlex example' ); - % >> b = uiextras.HBoxFlex( 'Parent', f ); - % >> uicontrol( 'Parent', b, 'Background', 'r' ) - % >> uicontrol( 'Parent', b, 'Background', 'b' ) - % >> uicontrol( 'Parent', b, 'Background', 'g' ) - % >> uicontrol( 'Parent', b, 'Background', 'y' ) - % >> set( b, 'Sizes', [-1 100 -2 -1], 'Spacing', 5 ); - % - % See also: uiextras.VBoxFlex - % uiextras.HBox - % uiextras.Grid - - % Copyright 2009-2014 The MathWorks, Inc. - % $Revision: 979 $ $Date: 2014-09-28 14:26:12 -0400 (Sun, 28 Sep 2014) $ - - properties( Hidden, Access = public, Dependent ) - Enable % deprecated - Sizes - MinimumSizes - ShowMarkings - end - - methods - - function obj = HBoxFlex( varargin ) - - % Call uix constructor - obj@uix.HBoxFlex( varargin{:} ) - - % Auto-parent - if ~ismember( 'Parent', varargin(1:2:end) ) - obj.Parent = gcf(); - end - - end % constructor - - end % structors - - methods - - function value = get.Enable( ~ ) - - % Warn - % warning( 'uiextras:Deprecated', ... - % 'Property ''Enable'' will be removed in a future release.' ) - - % Return - value = 'on'; - - end % get.Enable - - function set.Enable( ~, value ) - - % Check - assert( ischar( value ) && any( strcmp( value, {'on','off'} ) ), ... - 'uiextras:InvalidPropertyValue', ... - 'Property ''Enable'' must be ''on'' or ''off''.' ) - - % Warn - % warning( 'uiextras:Deprecated', ... - % 'Property ''Enable'' will be removed in a future release.' ) - - end % set.Enable - - function value = get.Sizes( obj ) - - % Get - value = transpose( obj.Widths ); - - end % get.Sizes - - function set.Sizes( obj, value ) - - % Set - obj.Widths = value; - - end % set.Sizes - - function value = get.MinimumSizes( obj ) - - % Get - value = transpose( obj.MinimumWidths ); - - end % get.MinimumSizes - - function set.MinimumSizes( obj, value ) - - % Get - obj.MinimumWidths = value; - - end % set.MinimumSizes - - function value = get.ShowMarkings( obj ) - - % Get - value = obj.DividerMarkings; - - end % get.ShowMarkings - - function set.ShowMarkings( obj, value ) - - % Set - obj.DividerMarkings = value; - - end % set.ShowMarkings - - end % accessors - -end % classdef \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/HButtonBox.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/HButtonBox.m deleted file mode 100644 index 87ab447..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/HButtonBox.m +++ /dev/null @@ -1,46 +0,0 @@ -classdef HButtonBox < uix.HButtonBox - %uiextras.HButtonBox Arrange buttons horizontally in a single row - % - % obj = uiextras.HButtonBox() is a type of HBox specialised for - % arranging a row of buttons, check-boxes or similar graphical - % elements. All buttons are given equal size and by default are - % centered in the drawing area. The justification can be changed as - % required. - % - % obj = uiextras.HButtonBox(param,value,...) also sets one or more - % parameter values. - % - % See the documentation for more detail and the list of properties. - % - % Examples: - % >> f = figure(); - % >> b = uiextras.HButtonBox( 'Parent', f ); - % >> uicontrol( 'Parent', b, 'String', 'One' ); - % >> uicontrol( 'Parent', b, 'String', 'Two' ); - % >> uicontrol( 'Parent', b, 'String', 'Three' ); - % >> set( b, 'ButtonSize', [130 35], 'Spacing', 5 ); - % - % See also: uiextras.VButtonBox - % uiextras.HBox - - % Copyright 2009-2014 The MathWorks, Inc. - % $Revision: 1077 $ $Date: 2015-03-19 16:44:14 +0000 (Thu, 19 Mar 2015) $ - - methods - - function obj = HButtonBox( varargin ) - %uiextras.HButtonBox Create a new horizontal button box - - % Call uix constructor - obj@uix.HButtonBox( varargin{:} ) - - % Auto-parent - if ~ismember( 'Parent', varargin(1:2:end) ) - obj.Parent = gcf(); - end - - end % constructor - - end % structors - -end % classdef \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/Panel.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/Panel.m deleted file mode 100644 index 80069b8..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/Panel.m +++ /dev/null @@ -1,106 +0,0 @@ -classdef Panel < uix.Panel - %uiextras.Panel Show one element inside a panel - % - % obj = uiextras.Panel() creates a standard UIPANEL object but with - % automatic management of the contained widget or layout. The - % properties available are largely the same as the builtin UIPANEL - % object. Where more than one child is added, the currently visible - % child is determined using the SelectedChild property. - % - % obj = uiextras.Panel(param,value,...) also sets one or more - % property values. - % - % See the documentation for more detail and the list of properties. - % - % Examples: - % >> f = figure(); - % >> p = uiextras.Panel( 'Parent', f, 'Title', 'A Panel', 'Padding', 5 ); - % >> uicontrol( 'Parent', p, 'Background', 'r' ) - % - % >> f = figure(); - % >> p = uiextras.Panel( 'Parent', f, 'Title', 'A Panel', 'Padding', 5 ); - % >> b = uiextras.HBox( 'Parent', p, 'Spacing', 5 ); - % >> uicontrol( 'Style', 'listbox', 'Parent', b, 'String', {'Item 1','Item 2'} ); - % >> uicontrol( 'Parent', b, 'Background', 'b' ); - % >> set( b, 'Sizes', [100 -1] ); - % - % See also: uipanel - % uiextras.BoxPanel - % uiextras.HBox - - % Copyright 2009-2014 The MathWorks, Inc. - % $Revision: 979 $ $Date: 2014-09-28 14:26:12 -0400 (Sun, 28 Sep 2014) $ - - properties( Hidden, Access = public, Dependent ) - Enable % deprecated - SelectedChild - end - - methods - - function obj = Panel( varargin ) - - % Call uix constructor - obj@uix.Panel( varargin{:} ) - - % Auto-parent - if ~ismember( 'Parent', varargin(1:2:end) ) - obj.Parent = gcf(); - end - - end % constructor - - end % structors - - methods - - function value = get.Enable( ~ ) - - % Warn - % warning( 'uiextras:Deprecated', ... - % 'Property ''Enable'' will be removed in a future release.' ) - - % Return - value = 'on'; - - end % get.Enable - - function set.Enable( ~, value ) - - % Check - assert( ischar( value ) && any( strcmp( value, {'on','off'} ) ), ... - 'uiextras:InvalidPropertyValue', ... - 'Property ''Enable'' must be ''on'' or ''off''.' ) - - % Warn - % warning( 'uiextras:Deprecated', ... - % 'Property ''Enable'' will be removed in a future release.' ) - - end % set.Enable - - function value = get.SelectedChild( obj ) - - % Warn - % warning( 'uiextras:Deprecated', ... - % 'Property ''SelectedChild'' will be removed in a future release.' ) - - % Get - if isempty( obj.Contents_ ) - value = []; - else - value = 1; - end - - end % get.SelectedChild - - function set.SelectedChild( ~, ~ ) - - % Warn - % warning( 'uiextras:Deprecated', ... - % 'Property ''SelectedChild'' will be removed in a future release.' ) - - end % set.SelectedChild - - end % accessors - -end % classdef \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/TabPanel.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/TabPanel.m deleted file mode 100644 index 0c30414..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/TabPanel.m +++ /dev/null @@ -1,224 +0,0 @@ -classdef TabPanel < uix.TabPanel - %TabPanel Show one element inside a tabbed panel - % - % obj = uiextras.TabPanel() creates a panel with tabs along one edge - % to allow selection between the different child objects contained. - % - % obj = uiextras.TabPanel(param,value,...) also sets one or more - % property values. - % - % See the documentation for more detail and the list of properties. - % - % Examples: - % >> f = figure(); - % >> p = uiextras.TabPanel( 'Parent', f, 'Padding', 5 ); - % >> uicontrol( 'Style', 'frame', 'Parent', p, 'Background', 'r' ); - % >> uicontrol( 'Style', 'frame', 'Parent', p, 'Background', 'b' ); - % >> uicontrol( 'Style', 'frame', 'Parent', p, 'Background', 'g' ); - % >> p.TabNames = {'Red', 'Blue', 'Green'}; - % >> p.SelectedChild = 2; - % - % See also: uiextras.Panel - % uiextras.BoxPanel - - % Copyright 2009-2014 The MathWorks, Inc. - % $Revision: 979 $ $Date: 2014-09-28 14:26:12 -0400 (Sun, 28 Sep 2014) $ - - properties( Hidden, Access = public, Dependent ) - Callback - end - - properties( Access = private ) - Callback_ = '' % backing for Callback - end - - properties( Hidden, Access = public, Dependent ) - Enable % deprecated - SelectedChild - TabEnable - TabNames - TabPosition - TabSize - end - - properties( Access = private ) - SelectionChangedListener % listener - end - - methods - - function obj = TabPanel( varargin ) - - % Call uix constructor - obj@uix.TabPanel( varargin{:} ) - - % Auto-parent - if ~ismember( 'Parent', varargin(1:2:end) ) - obj.Parent = gcf(); - end - - % Create listeners - selectionChangedListener = event.listener( obj, ... - 'SelectionChanged', @obj.onSelectionChanged ); - - % Store properties - obj.SelectionChangedListener = selectionChangedListener; - - end % constructor - - end % structors - - methods - - function value = get.Enable( ~ ) - - % Warn - % warning( 'uiextras:Deprecated', ... - % 'Property ''Enable'' will be removed in a future release.' ) - - % Return - value = 'on'; - - end % get.Enable - - function set.Enable( ~, value ) - - % Check - assert( ischar( value ) && any( strcmp( value, {'on','off'} ) ), ... - 'uiextras:InvalidPropertyValue', ... - 'Property ''Enable'' must be ''on'' or ''off''.' ) - - % Warn - % warning( 'uiextras:Deprecated', ... - % 'Property ''Enable'' will be removed in a future release.' ) - - end % set.Enable - - function value = get.Callback( obj ) - - % Get - value = obj.Callback_; - - end % get.Callback - - function set.Callback( obj, value ) - - % Check - if ischar( value ) % string - % OK - elseif isa( value, 'function_handle' ) && ... - isequal( size( value ), [1 1] ) % function handle - % OK - elseif iscell( value ) && ndims( value ) == 2 && ... - size( value, 1 ) == 1 && size( value, 2 ) > 0 && ... - isa( value{1}, 'function_handle' ) && ... - isequal( size( value{1} ), [1 1] ) %#ok % cell callback - % OK - else - error( 'uiextras:InvalidPropertyValue', ... - 'Property ''Callback'' must be a valid callback.' ) - end - - % Set - obj.Callback_ = value; - - end % set.Callback - - function value = get.SelectedChild( obj ) - - % Get - value = obj.Selection; - - end % get.SelectedChild - - function set.SelectedChild( obj, value ) - - % Set - obj.Selection = value; - - end % set.SelectedChild - - function value = get.TabEnable( obj ) - - % Get - value = transpose( obj.TabEnables ); - - end % get.TabEnable - - function set.TabEnable( obj, value ) - - % Set - obj.TabEnables = value; - - end % set.TabEnable - - function value = get.TabNames( obj ) - - % Get - value = transpose( obj.TabTitles ); - - end % get.TabNames - - function set.TabNames( obj, value ) - - % Set - obj.TabTitles = value; - - end % set.TabNames - - function value = get.TabPosition( obj ) - - % Get - value = obj.TabLocation; - - end % get.TabPosition - - function set.TabPosition( obj, value ) - - % Set - obj.TabLocation = value; - - end % set.TabPosition - - function value = get.TabSize( obj ) - - % Get - value = obj.TabWidth; - - end % get.TabSize - - function set.TabSize( obj, value ) - - % Set - obj.TabWidth = value; - - end % set.TabSize - - end % accessors - - methods( Access = private ) - - function onSelectionChanged( obj, source, eventData ) - - % Create legacy event data structure - oldEventData = struct( 'Source', eventData.Source, ... - 'PreviousChild', eventData.OldValue, ... - 'SelectedChild', eventData.NewValue ); - - % Call callback - callback = obj.Callback_; - if ischar( callback ) && isequal( callback, '' ) - % do nothing - elseif ischar( callback ) - feval( callback, source, oldEventData ) - elseif isa( callback, 'function_handle' ) - callback( source, oldEventData ) - elseif iscell( callback ) - feval( callback{1}, source, oldEventData, callback{2:end} ) - end - - end % onSelectionChanged - - end % event handlers - -end % classdef \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/VBox.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/VBox.m deleted file mode 100644 index 4e90ab7..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/VBox.m +++ /dev/null @@ -1,114 +0,0 @@ -classdef VBox < uix.VBox - %uiextras.VBox Arrange elements vertically in a single column - % - % obj = uiextras.VBox() creates a new vertical box layout with all - % parameters set to defaults. The output is a new layout object that - % can be used as the parent for other user-interface components. - % - % obj = uiextras.VBox(param,value,...) also sets one or more - % parameter values. - % - % See the documentation for more detail and the list of properties. - % - % Examples: - % >> f = figure(); - % >> b = uiextras.VBox( 'Parent', f ); - % >> uicontrol( 'Parent', b, 'Background', 'r' ) - % >> uicontrol( 'Parent', b, 'Background', 'b' ) - % >> uicontrol( 'Parent', b, 'Background', 'g' ) - % >> set( b, 'Sizes', [-1 100 -2], 'Spacing', 5 ); - % - % >> f = figure(); - % >> b1 = uiextras.VBox( 'Parent', f ); - % >> b2 = uiextras.HBox( 'Parent', b1, 'Padding', 5, 'Spacing', 5 ); - % >> uicontrol( 'Style', 'frame', 'Parent', b1, 'Background', 'r' ) - % >> uicontrol( 'Parent', b2, 'String', 'Button1' ) - % >> uicontrol( 'Parent', b2, 'String', 'Button2' ) - % >> set( b1, 'Sizes', [30 -1] ); - % - % See also: uiextras.HBox - % uiextras.VBoxFlex - % uiextras.Grid - - % Copyright 2009-2014 The MathWorks, Inc. - % $Revision: 1077 $ $Date: 2015-03-19 16:44:14 +0000 (Thu, 19 Mar 2015) $ - - properties( Hidden, Access = public, Dependent ) - Enable % deprecated - Sizes - MinimumSizes - end - - methods - - function obj = VBox( varargin ) - - % Call uix constructor - obj@uix.VBox( varargin{:} ) - - % Auto-parent - if ~ismember( 'Parent', varargin(1:2:end) ) - obj.Parent = gcf(); - end - - end % constructor - - end % structors - - methods - - function value = get.Enable( ~ ) - - % Warn - % warning( 'uiextras:Deprecated', ... - % 'Property ''Enable'' will be removed in a future release.' ) - - % Return - value = 'on'; - - end % get.Enable - - function set.Enable( ~, value ) - - % Check - assert( ischar( value ) && any( strcmp( value, {'on','off'} ) ), ... - 'uiextras:InvalidPropertyValue', ... - 'Property ''Enable'' must be ''on'' or ''off''.' ) - - % Warn - % warning( 'uiextras:Deprecated', ... - % 'Property ''Enable'' will be removed in a future release.' ) - - end % set.Enable - - function value = get.Sizes( obj ) - - % Get - value = transpose( obj.Heights ); - - end % get.Sizes - - function set.Sizes( obj, value ) - - % Set - obj.Heights = value; - - end % set.Sizes - - function value = get.MinimumSizes( obj ) - - % Get - value = transpose( obj.MinimumHeights ); - - end % get.MinimumSizes - - function set.MinimumSizes( obj, value ) - - % Get - obj.MinimumHeights = value; - - end % set.MinimumSizes - - end % accessors - -end % classdef \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/VBoxFlex.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/VBoxFlex.m deleted file mode 100644 index 01a3f46..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/VBoxFlex.m +++ /dev/null @@ -1,123 +0,0 @@ -classdef VBoxFlex < uix.VBoxFlex - %uiextras.VBoxFlex A dynamically resizable vertical layout - % - % obj = uiextras.VBoxFlex() creates a new dynamically resizable - % vertical box layout with all parameters set to defaults. The output - % is a new layout object that can be used as the parent for other - % user-interface components. - % - % obj = uiextras.VBoxFlex(param,value,...) also sets one or more - % parameter values. - % - % See the documentation for more detail and the list of properties. - % - % Examples: - % >> f = figure( 'Name', 'uiextras.VBoxFlex example' ); - % >> b = uiextras.VBoxFlex( 'Parent', f ); - % >> uicontrol( 'Parent', b, 'Background', 'r' ) - % >> uicontrol( 'Parent', b, 'Background', 'b' ) - % >> uicontrol( 'Parent', b, 'Background', 'g' ) - % >> uicontrol( 'Parent', b, 'Background', 'y' ) - % >> set( b, 'Sizes', [-1 100 -2 -1], 'Spacing', 5 ); - % - % See also: uiextras.HBoxFlex - % uiextras.VBox - % uiextras.Grid - - % Copyright 2009-2014 The MathWorks, Inc. - % $Revision: 979 $ $Date: 2014-09-28 14:26:12 -0400 (Sun, 28 Sep 2014) $ - - properties( Hidden, Access = public, Dependent ) - Enable % deprecated - Sizes - MinimumSizes - ShowMarkings - end - - methods - - function obj = VBoxFlex( varargin ) - - % Call uix constructor - obj@uix.VBoxFlex( varargin{:} ) - - % Auto-parent - if ~ismember( 'Parent', varargin(1:2:end) ) - obj.Parent = gcf(); - end - - end % constructor - - end % structors - - methods - - function value = get.Enable( ~ ) - - % Warn - % warning( 'uiextras:Deprecated', ... - % 'Property ''Enable'' will be removed in a future release.' ) - - % Return - value = 'on'; - - end % get.Enable - - function set.Enable( ~, value ) - - % Check - assert( ischar( value ) && any( strcmp( value, {'on','off'} ) ), ... - 'uiextras:InvalidPropertyValue', ... - 'Property ''Enable'' must be ''on'' or ''off''.' ) - - % Warn - % warning( 'uiextras:Deprecated', ... - % 'Property ''Enable'' will be removed in a future release.' ) - - end % set.Enable - - function value = get.Sizes( obj ) - - % Get - value = transpose( obj.Heights ); - - end % get.Sizes - - function set.Sizes( obj, value ) - - % Set - obj.Heights = value; - - end % set.Sizes - - function value = get.MinimumSizes( obj ) - - % Get - value = transpose( obj.MinimumHeights ); - - end % get.MinimumSizes - - function set.MinimumSizes( obj, value ) - - % Get - obj.MinimumHeights = value; - - end % set.MinimumSizes - - function value = get.ShowMarkings( obj ) - - % Get - value = obj.DividerMarkings; - - end % get.ShowMarkings - - function set.ShowMarkings( obj, value ) - - % Set - obj.DividerMarkings = value; - - end % set.ShowMarkings - - end % accessors - -end % classdef \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/VButtonBox.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/VButtonBox.m deleted file mode 100644 index 40618cd..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/VButtonBox.m +++ /dev/null @@ -1,46 +0,0 @@ -classdef VButtonBox < uix.VButtonBox - %uiextras.VButtonBox Arrange buttons vertically in a single column - % - % obj = uiextras.VButtonBox() is a type of VBox specialised for - % arranging a column of buttons, check-boxes or similar graphical - % elements. All buttons are given equal size and by default are - % centered in the drawing area. The justification can be changed as - % required. - % - % obj = uiextras.VButtonBox(param,value,...) also sets one or more - % parameter values. - % - % See the documentation for more detail and the list of properties. - % - % Examples: - % >> f = figure(); - % >> b = uiextras.VButtonBox( 'Parent', f ); - % >> uicontrol( 'Parent', b, 'String', 'One' ); - % >> uicontrol( 'Parent', b, 'String', 'Two' ); - % >> uicontrol( 'Parent', b, 'String', 'Three' ); - % >> set( b, 'ButtonSize', [130 35], 'Spacing', 5 ); - % - % See also: uiextras.HButtonBox - % uiextras.VBox - - % Copyright 2009-2014 The MathWorks, Inc. - % $Revision: 1077 $ $Date: 2015-03-19 16:44:14 +0000 (Thu, 19 Mar 2015) $ - - methods - - function obj = VButtonBox( varargin ) - %uiextras.VButtonBox Create a new horizontal button box - - % Call uix constructor - obj@uix.VButtonBox( varargin{:} ) - - % Auto-parent - if ~ismember( 'Parent', varargin(1:2:end) ) - obj.Parent = gcf(); - end - - end % constructor - - end % structor - -end % classdef \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/get.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/get.m deleted file mode 100644 index 03f9f98..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/get.m +++ /dev/null @@ -1,15 +0,0 @@ -function varargout = get( ~, ~ ) %#ok -%uiextras.get Retrieve a default property value from a parent object -% -% This functionality has been removed. - -% Copyright 2009-2014 The MathWorks, Inc. -% $Revision: 979 $ $Date: 2014-09-28 14:26:12 -0400 (Sun, 28 Sep 2014) $ - -% Check inputs -narginchk( 2, 2 ) - -% Error -error( 'uiextras:Deprecated', 'uiextras.get has been removed.' ) - -end % uiextras.get \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/set.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/set.m deleted file mode 100644 index 353a779..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/set.m +++ /dev/null @@ -1,15 +0,0 @@ -function set( ~, ~, ~ ) -%uiextras.set Store a default property value in a parent object -% -% This functionality has been removed. - -% Copyright 2009-2014 The MathWorks, Inc. -% $Revision: 979 $ $Date: 2014-09-28 14:26:12 -0400 (Sun, 28 Sep 2014) $ - -% Check inputs -narginchk( 3, 3 ) - -% Warn -warning( 'uiextras:Deprecated', 'uiextras.set has been removed.' ) - -end % uiextras.set \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/unset.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/unset.m deleted file mode 100644 index a8c31d8..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uiextras/unset.m +++ /dev/null @@ -1,15 +0,0 @@ -function unset( ~, ~, ~ ) -%uiextras.unset Clear a default property value from a parent object -% -% This functionality has been removed. - -% Copyright 2009-2014 The MathWorks, Inc. -% $Revision: 979 $ $Date: 2014-09-28 14:26:12 -0400 (Sun, 28 Sep 2014) $ - -% Check inputs -narginchk( 2, 2 ) - -% Warn -warning( 'uiextras:Deprecated', 'uiextras.unset has been removed.' ) - -end % uiextras.unset \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/+mixin/Container.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/+mixin/Container.m deleted file mode 100644 index b721984..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/+mixin/Container.m +++ /dev/null @@ -1,297 +0,0 @@ -classdef Container < handle - %uix.mixin.Container Container mixin - % - % uix.mixin.Container is a mixin class used by containers to provide - % various properties and template methods. - - % Copyright 2009-2016 The MathWorks, Inc. - % $Revision: 1358 $ $Date: 2016-09-14 11:34:17 +0100 (Wed, 14 Sep 2016) $ - - properties( Dependent, Access = public ) - Contents % contents in layout order - end - - properties( Access = public, Dependent, AbortSet ) - Padding % space around contents, in pixels - end - - properties( Access = protected ) - Contents_ = gobjects( [0 1] ) % backing for Contents - Padding_ = 0 % backing for Padding - end - - properties( Dependent, Access = protected ) - Dirty % needs redraw - end - - properties( Access = private ) - Dirty_ = false % backing for Dirty - FigureObserver % observer - FigureListener % listener - ChildObserver % observer - ChildAddedListener % listener - ChildRemovedListener % listener - SizeChangedListener % listener - ActivePositionPropertyListeners = cell( [0 1] ) % listeners - end - - methods - - function obj = Container() - %uix.mixin.Container Initialize - % - % c@uix.mixin.Container() initializes the container c. - - % Create observers and listeners - figureObserver = uix.FigureObserver( obj ); - figureListener = event.listener( figureObserver, ... - 'FigureChanged', @obj.onFigureChanged ); - childObserver = uix.ChildObserver( obj ); - childAddedListener = event.listener( ... - childObserver, 'ChildAdded', @obj.onChildAdded ); - childRemovedListener = event.listener( ... - childObserver, 'ChildRemoved', @obj.onChildRemoved ); - sizeChangedListener = event.listener( ... - obj, 'SizeChanged', @obj.onSizeChanged ); - - % Store observers and listeners - obj.FigureObserver = figureObserver; - obj.FigureListener = figureListener; - obj.ChildObserver = childObserver; - obj.ChildAddedListener = childAddedListener; - obj.ChildRemovedListener = childRemovedListener; - obj.SizeChangedListener = sizeChangedListener; - - % Track usage - obj.track() - - end % constructor - - end % structors - - methods - - function value = get.Contents( obj ) - - value = obj.Contents_; - - end % get.Contents - - function set.Contents( obj, value ) - - % For those who can't tell a column from a row... - if isrow( value ) - value = transpose( value ); - end - - % Check - [tf, indices] = ismember( value, obj.Contents_ ); - assert( isequal( size( obj.Contents_ ), size( value ) ) && ... - numel( value ) == numel( unique( value ) ) && all( tf ), ... - 'uix:InvalidOperation', ... - 'Property ''Contents'' may only be set to a permutation of itself.' ) - - % Call reorder - obj.reorder( indices ) - - end % set.Contents - - function value = get.Padding( obj ) - - value = obj.Padding_; - - end % get.Padding - - function set.Padding( obj, value ) - - % Check - assert( isa( value, 'double' ) && isscalar( value ) && ... - isreal( value ) && ~isinf( value ) && ... - ~isnan( value ) && value >= 0, ... - 'uix:InvalidPropertyValue', ... - 'Property ''Padding'' must be a non-negative scalar.' ) - - % Set - obj.Padding_ = value; - - % Mark as dirty - obj.Dirty = true; - - end % set.Padding - - function value = get.Dirty( obj ) - - value = obj.Dirty_; - - end % get.Dirty - - function set.Dirty( obj, value ) - - if value - if obj.isDrawable() % drawable - obj.redraw() % redraw now - else % not drawable - obj.Dirty_ = true; % flag for future redraw - end - end - - end % set.Dirty - - end % accessors - - methods( Access = private, Sealed ) - - function onFigureChanged( obj, ~, eventData ) - %onFigureChanged Event handler - - % Call template method - obj.reparent( eventData.OldFigure, eventData.NewFigure ) - - % Redraw if possible and if dirty - if obj.Dirty_ && obj.isDrawable() - obj.redraw() - obj.Dirty_ = false; - end - - end % onFigureChanged - - function onChildAdded( obj, ~, eventData ) - %onChildAdded Event handler - - % Call template method - obj.addChild( eventData.Child ) - - end % onChildAdded - - function onChildRemoved( obj, ~, eventData ) - %onChildRemoved Event handler - - % Do nothing if container is being deleted - if strcmp( obj.BeingDeleted, 'on' ), return, end - - % Call template method - obj.removeChild( eventData.Child ) - - end % onChildRemoved - - function onSizeChanged( obj, ~, ~ ) - %onSizeChanged Event handler - - % Mark as dirty - obj.Dirty = true; - - end % onSizeChanged - - function onActivePositionPropertyChanged( obj, ~, ~ ) - %onActivePositionPropertyChanged Event handler - - % Mark as dirty - obj.Dirty = true; - - end % onActivePositionPropertyChanged - - end % event handlers - - methods( Abstract, Access = protected ) - - redraw( obj ) - - end % abstract template methods - - methods( Access = protected ) - - function addChild( obj, child ) - %addChild Add child - % - % c.addChild(d) adds the child d to the container c. - - % Add to contents - obj.Contents_(end+1,:) = child; - - % Add listeners - if isa( child, 'matlab.graphics.axis.Axes' ) - obj.ActivePositionPropertyListeners{end+1,:} = ... - event.proplistener( child, ... - findprop( child, 'ActivePositionProperty' ), ... - 'PostSet', @obj.onActivePositionPropertyChanged ); - else - obj.ActivePositionPropertyListeners{end+1,:} = []; - end - - % Mark as dirty - obj.Dirty = true; - - end % addChild - - function removeChild( obj, child ) - %removeChild Remove child - % - % c.removeChild(d) removes the child d from the container c. - - % Remove from contents - contents = obj.Contents_; - tf = contents == child; - obj.Contents_(tf,:) = []; - - % Remove listeners - obj.ActivePositionPropertyListeners(tf,:) = []; - - % Mark as dirty - obj.Dirty = true; - - end % removeChild - - function reparent( obj, oldFigure, newFigure ) %#ok - %reparent Reparent container - % - % c.reparent(a,b) reparents the container c from the figure a - % to the figure b. - - end % reparent - - function reorder( obj, indices ) - %reorder Reorder contents - % - % c.reorder(i) reorders the container contents using indices - % i, c.Contents = c.Contents(i). - - % Reorder contents - obj.Contents_ = obj.Contents_(indices,:); - - % Reorder listeners - obj.ActivePositionPropertyListeners = ... - obj.ActivePositionPropertyListeners(indices,:); - - % Mark as dirty - obj.Dirty = true; - - end % reorder - - function tf = isDrawable( obj ) - %isDrawable Test for drawability - % - % c.isDrawable() is true if the container c is drawable, and - % false otherwise. To be drawable, a container must be - % rooted. - - tf = ~isempty( obj.FigureObserver.Figure ); - - end % isDrawable - - function track( obj ) - %track Track usage - - persistent TRACKED % single shot - if isempty( TRACKED ) - v = ver( 'layout' ); - try %#ok - uix.tracking( 'UA-82270656-2', v(1).Version, class( obj ) ) - end - TRACKED = true; - end - - end % track - - end % template methods - -end % classdef \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/+mixin/Flex.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/+mixin/Flex.m deleted file mode 100644 index 6085aa5..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/+mixin/Flex.m +++ /dev/null @@ -1,71 +0,0 @@ -classdef Flex < handle - %uix.mixin.Flex Flex mixin - % - % uix.mixin.Flex is a mixin class used by flex containers to provide - % various properties and helper methods. - - % Copyright 2016 The MathWorks, Inc. - % $Revision: 1435 $ $Date: 2016-11-17 17:50:34 +0000 (Thu, 17 Nov 2016) $ - - properties( GetAccess = protected, SetAccess = private ) - Pointer = 'unset' % mouse pointer - end - - properties( Access = private ) - Figure = gobjects( 0 ); % mouse pointer figure - Token = -1 % mouse pointer token - end - - methods - - function delete( obj ) - %delete Destructor - - % Clean up - if ~strcmp( obj.Pointer, 'unset' ) - obj.unsetPointer() - end - - end % destructor - - end % structors - - methods( Access = protected ) - - function setPointer( obj, figure, pointer ) - %setPointer Set pointer - % - % c.setPointer(f,p) sets the pointer for the figure f to p. - - % If set, unset - if obj.Token ~= -1 - obj.unsetPointer() - end - - % Set - obj.Token = uix.PointerManager.setPointer( figure, pointer ); - obj.Figure = figure; - obj.Pointer = pointer; - - end % setPointer - - function unsetPointer( obj ) - %unsetPointer Unset pointer - % - % c.unsetPointer() undoes the previous pointer set. - - % Check - assert( obj.Token ~= -1, 'uix:InvalidOperation', ... - 'Pointer is already unset.' ) - - % Unset - uix.PointerManager.unsetPointer( obj.Figure, obj.Token ); - obj.Figure = gobjects( 0 ); - obj.Pointer = 'unset'; - obj.Token = -1; - - end % unsetPointer - - end % helper methods - -end % classdef \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/+mixin/Panel.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/+mixin/Panel.m deleted file mode 100644 index f9031a9..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/+mixin/Panel.m +++ /dev/null @@ -1,188 +0,0 @@ -classdef Panel < uix.mixin.Container - %uix.mixin.Panel Panel mixin - % - % uix.mixin.Panel is a mixin class used by panels to provide various - % properties and template methods. - - % Copyright 2009-2015 The MathWorks, Inc. - % $Revision: 1435 $ $Date: 2016-11-17 17:50:34 +0000 (Thu, 17 Nov 2016) $ - - properties( Access = public, Dependent, AbortSet ) - Selection % selected contents - end - - properties( Access = protected ) - Selection_ = 0 % backing for Selection - end - - properties( Access = protected ) - G1218142 = false % bug flag - end - - events( NotifyAccess = protected ) - SelectionChanged % selection changed - end - - methods - - function value = get.Selection( obj ) - - value = obj.Selection_; - - end % get.Selection - - function set.Selection( obj, value ) - - % Check - assert( isa( value, 'double' ), 'uix:InvalidPropertyValue', ... - 'Property ''Selection'' must be of type double.' ) - assert( isequal( size( value ), [1 1] ), ... - 'uix:InvalidPropertyValue', ... - 'Property ''Selection'' must be scalar.' ) - assert( isreal( value ) && rem( value, 1 ) == 0, ... - 'uix:InvalidPropertyValue', ... - 'Property ''Selection'' must be an integer.' ) - n = numel( obj.Contents_ ); - if n == 0 - assert( value == 0, 'uix:InvalidPropertyValue', ... - 'Property ''Selection'' must be 0 for a container with no children.' ) - else - assert( value >= 1 && value <= n, 'uix:InvalidPropertyValue', ... - 'Property ''Selection'' must be between 1 and the number of children.' ) - end - - % Set - oldSelection = obj.Selection_; - newSelection = value; - obj.Selection_ = newSelection; - - % Show selected child - obj.showSelection() - - % Mark as dirty - obj.Dirty = true; - - % Raise event - notify( obj, 'SelectionChanged', ... - uix.SelectionData( oldSelection, newSelection ) ) - - end % set.Selection - - end % accessors - - methods( Access = protected ) - - function addChild( obj, child ) - - % Check for bug - if verLessThan( 'MATLAB', '8.5' ) && strcmp( child.Visible, 'off' ) - obj.G1218142 = true; - end - - % Select new content - oldSelection = obj.Selection_; - newSelection = numel( obj.Contents_ ) + 1; - obj.Selection_ = newSelection; - - % Call superclass method - addChild@uix.mixin.Container( obj, child ) - - % Show selected child - obj.showSelection() - - % Notify selection change - obj.notify( 'SelectionChanged', ... - uix.SelectionData( oldSelection, newSelection ) ) - - end % addChild - - function removeChild( obj, child ) - - % Adjust selection if required - contents = obj.Contents_; - index = find( contents == child ); - oldSelection = obj.Selection_; - if index < oldSelection - newSelection = oldSelection - 1; - elseif index == oldSelection - newSelection = min( oldSelection, numel( contents ) - 1 ); - else % index > oldSelection - newSelection = oldSelection; - end - obj.Selection_ = newSelection; - - % Call superclass method - removeChild@uix.mixin.Container( obj, child ) - - % Show selected child - obj.showSelection() - - % Notify selection change - if oldSelection ~= newSelection - obj.notify( 'SelectionChanged', ... - uix.SelectionData( oldSelection, newSelection ) ) - end - - end % removeChild - - function reorder( obj, indices ) - %reorder Reorder contents - % - % c.reorder(i) reorders the container contents using indices - % i, c.Contents = c.Contents(i). - - % Reorder - selection = obj.Selection_; - if selection ~= 0 - obj.Selection_ = find( indices == selection ); - end - - % Call superclass method - reorder@uix.mixin.Container( obj, indices ) - - end % reorder - - function showSelection( obj ) - %showSelection Show selected child, hide the others - % - % c.showSelection() shows the selected child of the container - % c, and hides the others. - - % Set positions and visibility - selection = obj.Selection_; - children = obj.Contents_; - for ii = 1:numel( children ) - child = children(ii); - if ii == selection - if obj.G1218142 - warning( 'uix:G1218142', ... - 'Selected child of %s is not visible due to bug G1218142. The child will become visible at the next redraw.', ... - class( obj ) ) - obj.G1218142 = false; - else - child.Visible = 'on'; - end - if isa( child, 'matlab.graphics.axis.Axes' ) - child.ContentsVisible = 'on'; - end - else - child.Visible = 'off'; - if isa( child, 'matlab.graphics.axis.Axes' ) - child.ContentsVisible = 'off'; - end - % As a remedy for g1100294, move off-screen too - margin = 1000; - if isa( child, 'matlab.graphics.axis.Axes' ) ... - && strcmp(child.ActivePositionProperty, 'outerposition' ) - child.OuterPosition(1) = -child.OuterPosition(3)-margin; - else - child.Position(1) = -child.Position(3)-margin; - end - end - end - - end % showSelection - - end % template methods - -end % classdef \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Box.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Box.m deleted file mode 100644 index 9eff645..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Box.m +++ /dev/null @@ -1,45 +0,0 @@ -classdef Box < uix.Container & uix.mixin.Container - %uix.Box Box and grid base class - % - % uix.Box is a base class for containers with spacing between - % contents. - - % Copyright 2009-2015 The MathWorks, Inc. - % $Revision: 1165 $ $Date: 2015-12-06 03:09:17 -0500 (Sun, 06 Dec 2015) $ - - properties( Access = public, Dependent, AbortSet ) - Spacing = 0 % space between contents, in pixels - end - - properties( Access = protected ) - Spacing_ = 0 % backing for Spacing - end - - methods - - function value = get.Spacing( obj ) - - value = obj.Spacing_; - - end % get.Spacing - - function set.Spacing( obj, value ) - - % Check - assert( isa( value, 'double' ) && isscalar( value ) && ... - isreal( value ) && ~isinf( value ) && ... - ~isnan( value ) && value >= 0, ... - 'uix:InvalidPropertyValue', ... - 'Property ''Spacing'' must be a non-negative scalar.' ) - - % Set - obj.Spacing_ = value; - - % Mark as dirty - obj.Dirty = true; - - end % set.Spacing - - end % accessors - -end % classdef \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/BoxPanel.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/BoxPanel.m deleted file mode 100644 index 4430403..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/BoxPanel.m +++ /dev/null @@ -1,551 +0,0 @@ -classdef BoxPanel < uix.Panel & uix.mixin.Panel - %uix.BoxPanel Box panel - % - % p = uix.BoxPanel(p1,v1,p2,v2,...) constructs a box panel and sets - % parameter p1 to value v1, etc. - % - % A box panel is a decorated container with a title box, border, and - % buttons to dock and undock, minimize, get help, and close. A box - % panel shows one of its contents and hides the others. - % - % See also: uix.Panel, uipanel, uix.CardPanel - - % Copyright 2009-2016 The MathWorks, Inc. - % $Revision: 1436 $ $Date: 2016-11-17 17:53:29 +0000 (Thu, 17 Nov 2016) $ - - properties( Dependent ) - TitleColor % title background color [RGB] - Minimized % minimized [true|false] - MinimizeFcn % minimize callback - Docked % docked [true|false] - DockFcn % dock callback - HelpFcn % help callback - CloseRequestFcn % close request callback - end - - properties( Dependent, SetAccess = private ) - TitleHeight % title panel height [pixels] - end - - properties( Access = private ) - TitleBox % title bar box - TitleText % title text label - EmptyTitle = '' % title when empty, [] otherwise - TitleAccess = 'public' % 'private' when getting or setting Title, 'public' otherwise - TitleHeight_ = -1 % cache of title text height (-1 denotes stale cache) - MinimizeButton % title button - DockButton % title button - HelpButton % title button - CloseButton % title button - Docked_ = true % backing for Docked - Minimized_ = false % backing for Minimized - end - - properties( Constant, Access = private ) - NullTitle = char.empty( [2 0] ) % an obscure empty string, the actual panel Title - BlankTitle = ' ' % a non-empty blank string, the empty uicontrol String - end - - methods - - function obj = BoxPanel( varargin ) - %uix.BoxPanel Box panel constructor - % - % p = uix.BoxPanel() constructs a box panel. - % - % p = uix.BoxPanel(p1,v1,p2,v2,...) sets parameter p1 to value - % v1, etc. - - % Define default colors - foregroundColor = [1 1 1]; - backgroundColor = [0.05 0.25 0.5]; - - % Set default colors - obj.ForegroundColor = foregroundColor; - - % Create panels and decorations - titleBox = uix.HBox( 'Internal', true, 'Parent', obj, ... - 'Units', 'pixels', 'BackgroundColor', backgroundColor ); - titleText = uix.Text( 'Parent', titleBox, ... - 'ForegroundColor', foregroundColor, ... - 'BackgroundColor', backgroundColor, ... - 'String', obj.BlankTitle, 'HorizontalAlignment', 'left' ); - - % Create buttons - minimizeButton = uix.Text( ... - 'ForegroundColor', foregroundColor, ... - 'BackgroundColor', backgroundColor, ... - 'FontWeight', 'bold', 'Enable', 'on' ); - dockButton = uix.Text( ... - 'ForegroundColor', foregroundColor, ... - 'BackgroundColor', backgroundColor, ... - 'FontWeight', 'bold', 'Enable', 'on' ); - helpButton = uix.Text( ... - 'ForegroundColor', foregroundColor, ... - 'BackgroundColor', backgroundColor, ... - 'FontWeight', 'bold', 'String', '?', ... - 'TooltipString', 'Get help on this panel', 'Enable', 'on' ); - closeButton = uix.Text( ... - 'ForegroundColor', foregroundColor, ... - 'BackgroundColor', backgroundColor, ... - 'FontWeight', 'bold', 'String', char( 215 ), ... - 'TooltipString', 'Close this panel', 'Enable', 'on' ); - - % Store properties - obj.Title = obj.NullTitle; - obj.TitleBox = titleBox; - obj.TitleText = titleText; - obj.MinimizeButton = minimizeButton; - obj.DockButton = dockButton; - obj.HelpButton = helpButton; - obj.CloseButton = closeButton; - - % Create listeners - addlistener( obj, 'BorderWidth', 'PostSet', ... - @obj.onBorderWidthChanged ); - addlistener( obj, 'BorderType', 'PostSet', ... - @obj.onBorderTypeChanged ); - addlistener( obj, 'FontAngle', 'PostSet', ... - @obj.onFontAngleChanged ); - addlistener( obj, 'FontName', 'PostSet', ... - @obj.onFontNameChanged ); - addlistener( obj, 'FontSize', 'PostSet', ... - @obj.onFontSizeChanged ); - addlistener( obj, 'FontUnits', 'PostSet', ... - @obj.onFontUnitsChanged ); - addlistener( obj, 'FontWeight', 'PostSet', ... - @obj.onFontWeightChanged ); - addlistener( obj, 'ForegroundColor', 'PostSet', ... - @obj.onForegroundColorChanged ); - addlistener( obj, 'Title', 'PreGet', ... - @obj.onTitleReturning ); - addlistener( obj, 'Title', 'PostGet', ... - @obj.onTitleReturned ); - addlistener( obj, 'Title', 'PostSet', ... - @obj.onTitleChanged ); - - % Draw buttons - obj.redrawButtons() - - % Set properties - if nargin > 0 - try - assert( rem( nargin, 2 ) == 0, 'uix:InvalidArgument', ... - 'Parameters and values must be provided in pairs.' ) - set( obj, varargin{:} ) - catch e - delete( obj ) - e.throwAsCaller() - end - end - - end % constructor - - end % structors - - methods - - function value = get.TitleColor( obj ) - - value = obj.TitleBox.BackgroundColor; - - end % get.TitleColor - - function set.TitleColor( obj, value ) - - % Set - obj.TitleBox.BackgroundColor = value; - obj.TitleText.BackgroundColor = value; - obj.MinimizeButton.BackgroundColor = value; - obj.DockButton.BackgroundColor = value; - obj.HelpButton.BackgroundColor = value; - obj.CloseButton.BackgroundColor = value; - - end % set.TitleColor - - function value = get.CloseRequestFcn( obj ) - - value = obj.CloseButton.Callback; - - end % get.CloseRequestFcn - - function set.CloseRequestFcn( obj, value ) - - % Set - obj.CloseButton.Callback = value; - - % Mark as dirty - obj.redrawButtons() - - end % set.CloseRequestFcn - - function value = get.DockFcn( obj ) - - value = obj.DockButton.Callback; - - end % get.DockFcn - - function set.DockFcn( obj, value ) - - % Set - obj.DockButton.Callback = value; - - % Mark as dirty - obj.redrawButtons() - - end % set.DockFcn - - function value = get.HelpFcn( obj ) - - value = obj.HelpButton.Callback; - - end % get.HelpFcn - - function set.HelpFcn( obj, value ) - - % Set - obj.HelpButton.Callback = value; - - % Mark as dirty - obj.redrawButtons() - - end % set.HelpFcn - - function value = get.MinimizeFcn( obj ) - - value = obj.MinimizeButton.Callback; - - end % get.MinimizeFcn - - function set.MinimizeFcn( obj, value ) - - % Set - obj.MinimizeButton.Callback = value; - obj.TitleText.Callback = value; - if isempty( value ) - obj.TitleText.Enable = 'inactive'; - else - obj.TitleText.Enable = 'on'; - end - - % Mark as dirty - obj.redrawButtons() - - end % set.MinimizeFcn - - function value = get.Docked( obj ) - - value = obj.Docked_; - - end % get.Docked - - function set.Docked( obj, value ) - - % Check - assert( islogical( value ) && isequal( size( value ), [1 1] ), ... - 'uix:InvalidPropertyValue', ... - 'Property ''Docked'' must be true or false.' ) - - % Set - obj.Docked_ = value; - - % Mark as dirty - obj.redrawButtons() - - end % set.Docked - - function value = get.Minimized( obj ) - - value = obj.Minimized_; - - end % get.Minimized - - function set.Minimized( obj, value ) - - % Check - assert( islogical( value ) && isequal( size( value ), [1 1] ), ... - 'uix:InvalidPropertyValue', ... - 'Property ''Minimized'' must be true or false.' ) - - % Set - obj.Minimized_ = value; - - % Show selected child - obj.showSelection() - - % Mark as dirty - obj.Dirty = true; - - end % set.Minimized - - function value = get.TitleHeight( obj ) - - value = obj.TitleBox.Position(4); - - end % get.TitleHeight - - end % accessors - - methods( Access = private ) - - function onBorderWidthChanged( obj, ~, ~ ) - - % Mark as dirty - obj.Dirty = true; - - end % onBorderWidthChanged - - function onBorderTypeChanged( obj, ~, ~ ) - - % Mark as dirty - obj.Dirty = true; - - end % onBorderTypeChanged - - function onFontAngleChanged( obj, ~, ~ ) - - obj.TitleText.FontAngle = obj.FontAngle; - - end % onFontAngleChanged - - function onFontNameChanged( obj, ~, ~ ) - - % Set - obj.TitleText.FontName = obj.FontName; - - % Mark as dirty - obj.TitleHeight_ = -1; - obj.Dirty = true; - - end % onFontNameChanged - - function onFontSizeChanged( obj, ~, ~ ) - - % Set - fontSize = obj.FontSize; - obj.TitleText.FontSize = fontSize; - obj.HelpButton.FontSize = fontSize; - obj.CloseButton.FontSize = fontSize; - obj.DockButton.FontSize = fontSize; - obj.MinimizeButton.FontSize = fontSize; - - % Mark as dirty - obj.TitleHeight_ = -1; - obj.Dirty = true; - - end % onFontSizeChanged - - function onFontUnitsChanged( obj, ~, ~ ) - - fontUnits = obj.FontUnits; - obj.TitleText.FontUnits = fontUnits; - obj.HelpButton.FontUnits = fontUnits; - obj.CloseButton.FontUnits = fontUnits; - obj.DockButton.FontUnits = fontUnits; - obj.MinimizeButton.FontUnits = fontUnits; - - end % onFontUnitsChanged - - function onFontWeightChanged( obj, ~, ~ ) - - obj.TitleText.FontWeight = obj.FontWeight; - - end % onFontWeightChanged - - function onForegroundColorChanged( obj, ~, ~ ) - - foregroundColor = obj.ForegroundColor; - obj.TitleText.ForegroundColor = foregroundColor; - obj.MinimizeButton.ForegroundColor = foregroundColor; - obj.DockButton.ForegroundColor = foregroundColor; - obj.HelpButton.ForegroundColor = foregroundColor; - obj.CloseButton.ForegroundColor = foregroundColor; - - end % onForegroundColorChanged - - function onTitleReturning( obj, ~, ~ ) - - if strcmp( obj.TitleAccess, 'public' ) - - obj.TitleAccess = 'private'; % start - if ischar( obj.EmptyTitle ) - obj.Title = obj.EmptyTitle; - else - obj.Title = obj.TitleText.String; - end - - end - - end % onTitleReturning - - function onTitleReturned( obj, ~, ~ ) - - obj.Title = obj.NullTitle; % unset Title - obj.TitleAccess = 'public'; % finish - - end % onTitleReturned - - function onTitleChanged( obj, ~, ~ ) - - if strcmp( obj.TitleAccess, 'public' ) - - % Set - obj.TitleAccess = 'private'; % start - title = obj.Title; - if isempty( title ) - obj.EmptyTitle = title; % store - obj.TitleText.String = obj.BlankTitle; % set String to blank - else - obj.EmptyTitle = []; % not empty - obj.TitleText.String = title; % set String to title - end - obj.Title = obj.NullTitle; % unset Title - obj.TitleAccess = 'public'; % finish - - % Mark as dirty - obj.TitleHeight_ = -1; - obj.Dirty = true; - - end - - end % onTitleChanged - - end % property event handlers - - methods( Access = protected ) - - function redraw( obj ) - %redraw Redraw - % - % p.redraw() redraws the panel. - % - % See also: redrawButtons - - % Compute positions - bounds = hgconvertunits( ancestor( obj, 'figure' ), ... - [0 0 1 1], 'normalized', 'pixels', obj ); - tX = 1; - tW = max( bounds(3), 1 ); - tH = obj.TitleHeight_; % title height - if tH == -1 % cache stale, refresh - tH = ceil( obj.TitleText.Extent(4) ); - obj.TitleHeight_ = tH; % store - end - tY = 1 + bounds(4) - tH; - p = obj.Padding_; - cX = 1 + p; - cW = max( bounds(3) - 2 * p, 1 ); - cH = max( bounds(4) - tH - 2 * p, 1 ); - cY = tY - p - cH; - contentsPosition = [cX cY cW cH]; - - % Redraw contents - selection = obj.Selection_; - if selection ~= 0 - uix.setPosition( obj.Contents_(selection), contentsPosition, 'pixels' ) - end - obj.TitleBox.Position = [tX tY tW tH]; - obj.redrawButtons() - - end % redraw - - function showSelection( obj ) - %showSelection Show selected child, hide the others - % - % c.showSelection() shows the selected child of the container - % c, and hides the others. - - % Call superclass method - showSelection@uix.mixin.Panel( obj ) - - % If minimized, hide selected contents too - selection = obj.Selection_; - if selection ~= 0 && obj.Minimized_ - child = obj.Contents_(selection); - child.Visible = 'off'; - if isa( child, 'matlab.graphics.axis.Axes' ) - child.ContentsVisible = 'off'; - end - % As a remedy for g1100294, move off-screen too - margin = 1000; - if isa( child, 'matlab.graphics.axis.Axes' ) ... - && strcmp(child.ActivePositionProperty, 'outerposition' ) - child.OuterPosition(1) = -child.OuterPosition(3)-margin; - else - child.Position(1) = -child.Position(3)-margin; - end - end - - end % showSelection - - end % template methods - - methods( Access = private ) - - function redrawButtons( obj ) - %redrawButtons Redraw buttons - % - % p.redrawButtons() redraws the titlebar buttons. - % - % Buttons use unicode arrow symbols: - % https://en.wikipedia.org/wiki/Arrow_%28symbol%29#Arrows_in_Unicode - - % Retrieve button box and buttons - box = obj.TitleBox; - titleText = obj.TitleText; - minimizeButton = obj.MinimizeButton; - dockButton = obj.DockButton; - helpButton = obj.HelpButton; - closeButton = obj.CloseButton; - - % Detach all buttons - titleText.Parent = []; - minimizeButton.Parent = []; - dockButton.Parent = []; - helpButton.Parent = []; - closeButton.Parent = []; - - % Attach active buttons - titleText.Parent = box; - minimize = ~isempty( obj.MinimizeFcn ); - if minimize - minimizeButton.Parent = box; - box.Widths(end) = minimizeButton.Extent(3); - end - dock = ~isempty( obj.DockFcn ); - if dock - dockButton.Parent = box; - box.Widths(end) = dockButton.Extent(3); - end - help = ~isempty( obj.HelpFcn ); - if help - helpButton.Parent = box; - box.Widths(end) = helpButton.Extent(3); - end - close = ~isempty( obj.CloseRequestFcn ); - if close - closeButton.Parent = box; - box.Widths(end) = closeButton.Extent(3); - end - - % Update icons - if obj.Minimized_ - minimizeButton.String = char( 9662 ); - minimizeButton.TooltipString = 'Expand this panel'; - else - minimizeButton.String = char( 9652 ); - minimizeButton.TooltipString = 'Collapse this panel'; - end - if obj.Docked_ - dockButton.String = char( 8599 ); - dockButton.TooltipString = 'Undock this panel'; - else - dockButton.String = char( 8600 ); - dockButton.TooltipString = 'Dock this panel'; - end - - end % redrawButtons - - end % helper methods - -end % classdef \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/ButtonBox.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/ButtonBox.m deleted file mode 100644 index dd0e4f5..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/ButtonBox.m +++ /dev/null @@ -1,96 +0,0 @@ -classdef ButtonBox < uix.Box - %uix.ButtonBox Button box base class - % - % uix.ButtonBox is a base class for containers that lay out buttons. - - % Copyright 2009-2015 The MathWorks, Inc. - % $Revision: 1165 $ $Date: 2015-12-06 03:09:17 -0500 (Sun, 06 Dec 2015) $ - - properties( Access = public, Dependent, AbortSet ) - ButtonSize % button size, in pixels - HorizontalAlignment % horizontal alignment [left|center|right] - VerticalAlignment % vertical alignment [top|middle|bottom] - end - - properties( Access = protected ) - ButtonSize_ = [60 20] % backing for ButtonSize - HorizontalAlignment_ = 'center' % backing for HorizontalAlignment - VerticalAlignment_ = 'middle' % backing for VerticalAlignment - end - - methods - - function value = get.ButtonSize( obj ) - - value = obj.ButtonSize_; - - end % get.ButtonSize - - function set.ButtonSize( obj, value ) - - % Check - assert( isa( value, 'double' ), 'uix:InvalidPropertyValue', ... - 'Property ''ButtonSize'' must be of type double.' ) - assert( isequal( size( value ), [1 2] ), ... - 'uix:InvalidPropertyValue', ... - 'Size of property ''ButtonSize'' must by 1-by-2.' ) - assert( all( isreal( value ) ) && ~any( isinf( value ) ) && ... - ~any( isnan( value ) ) && ~any( value <= 0 ), ... - 'uix:InvalidPropertyValue', ... - 'Elements of property ''ButtonSize'' must be real, finite and positive.' ) - - % Set - obj.ButtonSize_ = value; - - % Mark as dirty - obj.Dirty = true; - - end % set.ButtonSize - - function value = get.HorizontalAlignment( obj ) - - value = obj.HorizontalAlignment_; - - end % get.HorizontalAlignment - - function set.HorizontalAlignment( obj, value ) - - % Check - assert( ischar( value ), 'uix:InvalidPropertyValue', ... - 'Property ''HorizontalAlignment'' must be a string.' ) - assert( any( strcmp( value, {'left';'center';'right'} ) ), ... - 'Property ''HorizontalAlignment'' must be ''left'', ''center'' or ''right''.' ) - - % Set - obj.HorizontalAlignment_ = value; - - % Mark as dirty - obj.Dirty = true; - - end % set.HorizontalAlignment - - function value = get.VerticalAlignment( obj ) - - value = obj.VerticalAlignment_; - - end % get.VerticalAlignment - - function set.VerticalAlignment( obj, value ) - - % Check - assert( ischar( value ), 'uix:InvalidPropertyValue', ... - 'Property ''VerticalAlignment'' must be a string.' ) - assert( any( strcmp( value, {'top';'middle';'bottom'} ) ), ... - 'Property ''VerticalAlignment'' must be ''top'', ''middle'' or ''bottom''.' ) - - % Set - obj.VerticalAlignment_ = value; - - % Mark as dirty - obj.Dirty = true; - - end % set.VerticalAlignment - - end % accessors - -end % classdef \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/CardPanel.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/CardPanel.m deleted file mode 100644 index c97e757..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/CardPanel.m +++ /dev/null @@ -1,64 +0,0 @@ -classdef CardPanel < uix.Container & uix.mixin.Panel - %uix.CardPanel Card panel - % - % b = uix.CardPanel(p1,v1,p2,v2,...) constructs a card panel and sets - % parameter p1 to value v1, etc. - % - % A card panel is a standard container (uicontainer) that shows one - % its contents and hides the others. - % - % See also: uix.Panel, uix.BoxPanel, uix.TabPanel, uicontainer - - % Copyright 2009-2016 The MathWorks, Inc. - % $Revision: 1436 $ $Date: 2016-11-17 17:53:29 +0000 (Thu, 17 Nov 2016) $ - - methods - - function obj = CardPanel( varargin ) - %uix.CardPanel Card panel constructor - % - % p = uix.CardPanel() constructs a card panel. - % - % p = uix.CardPanel(p1,v1,p2,v2,...) sets parameter p1 to - % value v1, etc. - - % Set properties - if nargin > 0 - try - assert( rem( nargin, 2 ) == 0, 'uix:InvalidArgument', ... - 'Parameters and values must be provided in pairs.' ) - set( obj, varargin{:} ) - catch e - delete( obj ) - e.throwAsCaller() - end - end - - end % constructor - - end % structors - - methods( Access = protected ) - - function redraw( obj ) - %redraw Redraw - - % Compute positions - bounds = hgconvertunits( ancestor( obj, 'figure' ), ... - [0 0 1 1], 'normalized', 'pixels', obj ); - padding = obj.Padding_; - xSizes = uix.calcPixelSizes( bounds(3), -1, 1, padding, 0 ); - ySizes = uix.calcPixelSizes( bounds(4), -1, 1, padding, 0 ); - position = [padding+1 padding+1 xSizes ySizes]; - - % Redraw contents - selection = obj.Selection_; - if selection ~= 0 - uix.setPosition( obj.Contents_(selection), position, 'pixels' ) - end - - end % redraw - - end % template methods - -end % classdef \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/ChildEvent.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/ChildEvent.m deleted file mode 100644 index b9f5eb5..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/ChildEvent.m +++ /dev/null @@ -1,28 +0,0 @@ -classdef( Hidden, Sealed ) ChildEvent < event.EventData - %uix.ChildEvent Event data for child event - % - % e = uix.ChildEvent(c) creates event data including the child c. - - % Copyright 2009-2015 The MathWorks, Inc. - % $Revision: 1165 $ $Date: 2015-12-06 03:09:17 -0500 (Sun, 06 Dec 2015) $ - - properties( SetAccess = private ) - Child % child - end - - methods - - function obj = ChildEvent( child ) - %uix.ChildEvent Event data for child event - % - % e = uix.ChildEvent(c) creates event data including the child - % c. - - % Set properties - obj.Child = child; - - end % constructor - - end % structors - -end % classdef \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/ChildObserver.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/ChildObserver.m deleted file mode 100644 index 5dbd876..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/ChildObserver.m +++ /dev/null @@ -1,220 +0,0 @@ -classdef ( Hidden, Sealed ) ChildObserver < handle - %uix.ChildObserver Child observer - % - % co = uix.ChildObserver(o) creates a child observer for the graphics - % object o. A child observer raises events when objects are added to - % and removed from the property Children of o. - % - % See also: uix.Node - - % Copyright 2009-2016 The MathWorks, Inc. - % $Revision: 1436 $ $Date: 2016-11-17 17:53:29 +0000 (Thu, 17 Nov 2016) $ - - properties( Access = private ) - Root % root node - end - - events( NotifyAccess = private ) - ChildAdded % child added - ChildRemoved % child removed - end - - methods - - function obj = ChildObserver( oRoot ) - %uix.ChildObserver Child observer - % - % co = uix.ChildObserver(o) creates a child observer for the - % graphics object o. A child observer raises events when - % objects are added to and removed from the property Children - % of o. - - % Check - assert( iscontent( oRoot ) && ... - isequal( size( oRoot ), [1 1] ), 'uix.InvalidArgument', ... - 'Object must be a graphics object.' ) - - % Create root node - nRoot = uix.Node( oRoot ); - childAddedListener = event.listener( oRoot, ... - 'ObjectChildAdded', ... - @(~,e)obj.addChild(nRoot,e.Child) ); - childAddedListener.Recursive = true; - nRoot.addprop( 'ChildAddedListener' ); - nRoot.ChildAddedListener = childAddedListener; - childRemovedListener = event.listener( oRoot, ... - 'ObjectChildRemoved', ... - @(~,e)obj.removeChild(nRoot,e.Child) ); - childRemovedListener.Recursive = true; - nRoot.addprop( 'ChildRemovedListener' ); - nRoot.ChildRemovedListener = childRemovedListener; - - % Add children - oChildren = hgGetTrueChildren( oRoot ); - for ii = 1:numel( oChildren ) - obj.addChild( nRoot, oChildren(ii) ) - end - - % Store properties - obj.Root = nRoot; - - end % constructor - - end % structors - - methods( Access = private ) - - function addChild( obj, nParent, oChild ) - %addChild Add child object to parent node - % - % co.addChild(np,oc) adds the child object oc to the parent - % node np, either as part of construction of the child - % observer co, or in response to an ObjectChildAdded event on - % an object of interest to co. This may lead to ChildAdded - % events being raised on co. - - % Create child node - nChild = uix.Node( oChild ); - nParent.addChild( nChild ) - if iscontent( oChild ) - % Add Internal PreSet property listener - internalPreSetListener = event.proplistener( oChild, ... - findprop( oChild, 'Internal' ), 'PreSet', ... - @(~,~)obj.preSetInternal(nChild) ); - nChild.addprop( 'InternalPreSetListener' ); - nChild.InternalPreSetListener = internalPreSetListener; - % Add Internal PostSet property listener - internalPostSetListener = event.proplistener( oChild, ... - findprop( oChild, 'Internal' ), 'PostSet', ... - @(~,~)obj.postSetInternal(nChild) ); - nChild.addprop( 'InternalPostSetListener' ); - nChild.InternalPostSetListener = internalPostSetListener; - else - % Add ObjectChildAdded listener - childAddedListener = event.listener( oChild, ... - 'ObjectChildAdded', ... - @(~,e)obj.addChild(nChild,e.Child) ); - nChild.addprop( 'ChildAddedListener' ); - nChild.ChildAddedListener = childAddedListener; - % Add ObjectChildRemoved listener - childRemovedListener = event.listener( oChild, ... - 'ObjectChildRemoved', ... - @(~,e)obj.removeChild(nChild,e.Child) ); - nChild.addprop( 'ChildRemovedListener' ); - nChild.ChildRemovedListener = childRemovedListener; - end - - % Raise ChildAdded event - if iscontent( oChild ) && oChild.Internal == false - notify( obj, 'ChildAdded', uix.ChildEvent( oChild ) ) - end - - % Add grandchildren - if ~iscontent( oChild ) - oGrandchildren = hgGetTrueChildren( oChild ); - for ii = 1:numel( oGrandchildren ) - obj.addChild( nChild, oGrandchildren(ii) ) - end - end - - end % addChild - - function removeChild( obj, nParent, oChild ) - %removeChild Remove child object from parent node - % - % co.removeChild(np,oc) removes the child object oc from the - % parent node np, in response to an ObjectChildRemoved event - % on an object of interest to co. This may lead to - % ChildRemoved events being raised on co. - - % Get child node - nChildren = nParent.Children; - tf = oChild == [nChildren.Object]; - nChild = nChildren(tf); - - % Raise ChildRemoved event(s) - notifyChildRemoved( nChild ) - - % Delete child node - delete( nChild ) - - function notifyChildRemoved( nc ) - - % Process child nodes - ngc = nc.Children; - for ii = 1:numel( ngc ) - notifyChildRemoved( ngc(ii) ) - end - - % Process this node - oc = nc.Object; - if iscontent( oc ) && oc.Internal == false - notify( obj, 'ChildRemoved', uix.ChildEvent( oc ) ) - end - - end % notifyChildRemoved - - end % removeChild - - function preSetInternal( ~, nChild ) - %preSetInternal Perform property PreSet tasks - % - % co.preSetInternal(n) caches the previous value of the - % property Internal of the object referenced by the node n, to - % enable PostSet tasks to identify whether the value changed. - % This is necessary since Internal AbortSet is false. - - oldInternal = nChild.Object.Internal; - nChild.addprop( 'OldInternal' ); - nChild.OldInternal = oldInternal; - - end % preSetInternal - - function postSetInternal( obj, nChild ) - %postSetInternal Perform property PostSet tasks - % - % co.postSetInternal(n) raises a ChildAdded or ChildRemoved - % event on the child observer co in response to a change of - % the value of the property Internal of the object referenced - % by the node n. - - % Retrieve old and new values - oChild = nChild.Object; - newInternal = oChild.Internal; - oldInternal = nChild.OldInternal; - - % Clean up node - delete( findprop( nChild, 'OldInternal' ) ) - - % Raise event - switch newInternal - case oldInternal % no change - % no event - case true % false to true - notify( obj, 'ChildRemoved', uix.ChildEvent( oChild ) ) - case false % true to false - notify( obj, 'ChildAdded', uix.ChildEvent( oChild ) ) - end - - end % postSetInternal - - end % event handlers - -end % classdef - -function tf = iscontent( o ) -%iscontent True for graphics that can be Contents (and can be Children) -% -% uix.ChildObserver needs to determine which objects can be Contents, -% which is equivalent to can be Children if HandleVisibility is 'on' and -% Internal is false. Prior to R2016a, this condition could be checked -% using isgraphics. From R2016a, isgraphics returns true for a wider -% range of objects, including some that can never by Contents, e.g., -% JavaCanvas. Therefore this function checks whether an object is of type -% matlab.graphics.internal.GraphicsBaseFunctions, which is what isgraphics -% did prior to R2016a. - -tf = isa( o, 'matlab.graphics.internal.GraphicsBaseFunctions' ) &&... - isprop( o, 'Position' ); - -end % iscontent \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Container.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Container.m deleted file mode 100644 index c78e6e2..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Container.m +++ /dev/null @@ -1,9 +0,0 @@ -classdef Container < matlab.ui.container.internal.UIContainer - %uix.Container Container base class - % - % uix.Container is base class for containers that extend uicontainer. - - % Copyright 2009-2015 The MathWorks, Inc. - % $Revision: 1137 $ $Date: 2015-05-29 21:48:21 +0100 (Fri, 29 May 2015) $ - -end % classdef \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Divider.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Divider.m deleted file mode 100644 index f193678..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Divider.m +++ /dev/null @@ -1,344 +0,0 @@ -classdef Divider < matlab.mixin.SetGet - %uix.Divider Draggable divider - % - % d = uix.Divider() creates a divider. - % - % d = uix.Divider(p1,v1,p2,v2,...) creates a divider and sets - % specified property p1 to value v1, etc. - - % Copyright 2009-2016 The MathWorks, Inc. - % $Revision: 1436 $ $Date: 2016-11-17 17:53:29 +0000 (Thu, 17 Nov 2016) $ - - properties( Dependent ) - Parent % parent - Units % units [inches|centimeters|characters|normalized|points|pixels] - Position % position - Visible % visible [on|off] - BackgroundColor % background color [RGB] - HighlightColor % border highlight color [RGB] - ShadowColor % border shadow color [RGB] - Orientation % orientation [vertical|horizontal] - Markings % markings [pixels] - end - - properties( Access = private ) - Control % uicontrol - BackgroundColor_ = get( 0, 'DefaultUicontrolBackgroundColor' ) % backing for BackgroundColor - HighlightColor_ = [1 1 1] % backing for HighlightColor - ShadowColor_ = [0.7 0.7 0.7] % backing for ShadowColor - Orientation_ = 'vertical' % backing for Orientation - Markings_ = zeros( [0 1] ) % backing for Markings - SizeChangedListener % listener - end - - methods - - function obj = Divider( varargin ) - %uix.Divider Draggable divider - % - % d = uix.Divider() creates a divider. - % - % d = uix.Divider(p1,v1,p2,v2,...) creates a dividerand sets - % specified property p1 to value v1, etc. - - % Create control - control = matlab.ui.control.UIControl( ... - 'Style', 'checkbox', 'Internal', true, ... - 'Enable', 'inactive', 'DeleteFcn', @obj.onDeleted,... - 'Tag', 'uix.Divider' ); - - % Store control - obj.Control = control; - - % Set properties - if nargin > 0 - try - assert( rem( nargin, 2 ) == 0, 'uix:InvalidArgument', ... - 'Parameters and values must be provided in pairs.' ) - set( obj, varargin{:} ) - catch e - delete( obj ) - e.throwAsCaller() - end - end - - % Force update - obj.update() - - % Create listener - sizeChangedListener = event.listener( control, 'SizeChanged', ... - @obj.onSizeChanged ); - - % Store listener - obj.SizeChangedListener = sizeChangedListener; - - end % constructor - - function delete( obj ) - %delete Destructor - - control = obj.Control; - if isgraphics( control ) && strcmp( control.BeingDeleted, 'off' ) - delete( control ) - end - - end % destructor - - end % structors - - methods - - function value = get.Parent( obj ) - - value = obj.Control.Parent; - - end % get.Parent - - function set.Parent( obj, value ) - - obj.Control.Parent = value; - - end % set.Parent - - function value = get.Units( obj ) - - value = obj.Control.Units; - - end % get.Units - - function set.Units( obj, value ) - - obj.Control.Units = value; - - end % set.Units - - function value = get.Position( obj ) - - value = obj.Control.Position; - - end % get.Position - - function set.Position( obj, value ) - - obj.Control.Position = value; - - end % set.Position - - function value = get.Visible( obj ) - - value = obj.Control.Visible; - - end % get.Visible - - function set.Visible( obj, value ) - - obj.Control.Visible = value; - - end % set.Visible - - function value = get.BackgroundColor( obj ) - - value = obj.BackgroundColor_; - - end % get.BackgroundColor - - function set.BackgroundColor( obj, value ) - - % Check - assert( isa( value, 'double' ) && ... - isequal( size( value ), [1 3] ) && ... - all( value >= 0 ) && all( value <= 1 ), ... - 'uix:InvalidArgument', ... - 'Property ''BackgroundColor'' must be a valid colorspec.' ) - - % Set - obj.BackgroundColor_ = value; - - % Update - obj.update() - - end % set.BackgroundColor - - function value = get.HighlightColor( obj ) - - value = obj.HighlightColor_; - - end % get.HighlightColor - - function set.HighlightColor( obj, value ) - - % Check - assert( isnumeric( value ) && isequal( size( value ), [1 3] ) && ... - all( isreal( value ) ) && all( value >= 0 ) && all( value <= 1 ), ... - 'uix:InvalidPropertyValue', ... - 'Property ''HighlightColor'' must be an RGB triple.' ) - - % Set - obj.HighlightColor_ = value; - - % Update - obj.update() - - end % set.HighlightColor - - function value = get.ShadowColor( obj ) - - value = obj.ShadowColor_; - - end % get.ShadowColor - - function set.ShadowColor( obj, value ) - - % Check - assert( isnumeric( value ) && isequal( size( value ), [1 3] ) && ... - all( isreal( value ) ) && all( value >= 0 ) && all( value <= 1 ), ... - 'uix:InvalidPropertyValue', ... - 'Property ''ShadowColor'' must be an RGB triple.' ) - - % Set - obj.ShadowColor_ = value; - - % Update - obj.update() - - end % set.ShadowColor - - function value = get.Orientation( obj ) - - value = obj.Orientation_; - - end % get.Orientation - - function set.Orientation( obj, value ) - - % Check - assert( ischar( value ) && ismember( value, ... - {'horizontal','vertical'} ) ) - - % Set - obj.Orientation_ = value; - - % Update - obj.update() - - end % set.Orientation - - function value = get.Markings( obj ) - - value = obj.Markings_; - - end % get.Markings - - function set.Markings( obj, value ) - - % Check - assert( isa( value, 'double' ) && ndims( value ) == 2 && ... - size( value, 2 ) == 1 && all( isreal( value ) ) && ... - all( ~isinf( value ) ) && all( ~isnan( value ) ) && ... - all( value > 0 ), 'uix:InvalidPropertyValue', ... - 'Property ''Markings'' must be a vector of positive values.' ) %#ok - - % Set - obj.Markings_ = value; - - % Update - obj.update() - - end % set.Markings - - end % accessors - - methods - - function tf = isMouseOver( obj, eventData ) - %isMouseOver Test for mouse over - % - % tf = d.isMouseOver(wmd) tests whether the WindowMouseData - % wmd is consistent with the mouse pointer being over the - % divider d. - - tf = reshape( [obj.Control] == eventData.HitObject, size( obj ) ); - - end % isMouseOver - - end % methods - - methods( Access = private ) - - function onDeleted( obj, ~, ~ ) - %onDeleted Event handler - - % Call destructor - obj.delete() - - end % onDeleted - - function onSizeChanged( obj, ~, ~ ) - %onSizeChanged Event handler - - % Update - obj.update() - - end % onSizeChanged - - end % event handlers - - methods( Access = private ) - - function update( obj ) - %update Update divider - % - % d.update() updates the divider markings. - - % Get properties - control = obj.Control; - position = control.Position; - backgroundColor = obj.BackgroundColor; - highlightColor = obj.HighlightColor; - shadowColor = obj.ShadowColor; - orientation = obj.Orientation; - markings = obj.Markings; - - % Assemble mask - mask = zeros( floor( position([4 3]) ) - [1 1] ); % initialize - switch orientation - case 'vertical' - markings(markings < 4) = []; - markings(markings > position(4)-6) = []; - for ii = 1:numel( markings ) - marking = markings(ii); - mask(floor( marking ) + [-3 0 3],1:end-1) = 1; - mask(floor( marking ) + [-2 1 4],1:end-1) = 2; - end - case 'horizontal' - markings(markings < 4) = []; - markings(markings > position(3)-6) = []; - for ii = 1:numel( markings ) - marking = markings(ii); - mask(2:end,floor( marking ) + [-3 0 3]) = 1; - mask(2:end,floor( marking ) + [-2 1 4]) = 2; - end - end - - % Assemble color data - cData1 = repmat( backgroundColor(1), size( mask ) ); - cData1(mask==1) = highlightColor(1); - cData1(mask==2) = shadowColor(1); - cData2 = repmat( backgroundColor(2), size( mask ) ); - cData2(mask==1) = highlightColor(2); - cData2(mask==2) = shadowColor(2); - cData3 = repmat( backgroundColor(3), size( mask ) ); - cData3(mask==1) = highlightColor(3); - cData3(mask==2) = shadowColor(3); - cData = cat( 3, cData1, cData2, cData3 ); - - % Set properties - control.ForegroundColor = backgroundColor; - control.BackgroundColor = backgroundColor; - control.CData = cData; - - end % update - - end % methods - -end % classdef \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Empty.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Empty.m deleted file mode 100644 index e83a916..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Empty.m +++ /dev/null @@ -1,102 +0,0 @@ -function obj = Empty( varargin ) -%uix.Empty Create an empty space -% -% obj = uix.Empty() creates an empty space that can be used to add gaps -% between elements in layouts. -% -% obj = uix.Empty(param,value,...) also sets one or more property -% values. -% -% See the documentation for more detail and the list of properties. -% -% Examples: -% >> f = figure(); -% >> box = uix.HBox( 'Parent', f ); -% >> uicontrol( 'Parent', box, 'Background', 'r' ) -% >> uix.Empty( 'Parent', box ) -% >> uicontrol( 'Parent', box, 'Background', 'b' ) - -% Copyright 2009-2016 The MathWorks, Inc. -% $Revision: 1436 $ $Date: 2016-11-17 17:53:29 +0000 (Thu, 17 Nov 2016) $ - -% Create uicontainer -obj = matlab.ui.container.internal.UIContainer( 'Tag', 'empty', varargin{:} ); - -% Create property for Parent listener -p = addprop( obj, 'ParentListener' ); -p.Hidden = true; - -% Create Parent listener -obj.ParentListener = event.proplistener( obj, ... - findprop( obj, 'Parent' ), 'PostSet', @(~,~)onParentChanged(obj) ); - -% Create property for Parent color listener -p = addprop( obj, 'ParentColorListener' ); -p.Hidden = true; - -% Initialize color and listener -updateColor( obj ) -updateListener( obj ) - -end % uix.Empty - -function onParentChanged( obj ) -%onParentColorChanged Event handler - -% Update color and listener -updateColor( obj ) -updateListener( obj ) - -end % onParentChanged - -function onParentColorChanged( obj ) -%onParentColorChanged Event handler - -% Update color -updateColor( obj ) - -end % onParentColorChanged - -function name = getColorProperty( obj ) -%getColorProperty Get color property - -names = {'Color','BackgroundColor'}; % possible names -for ii = 1:numel( names ) % loop over possible names - name = names{ii}; - if isprop( obj, name ) - return - end -end -error( 'Cannot find color property for %s.', class( obj ) ) - -end % getColorProperty - -function updateColor( obj ) -%updateColor Set uicontainer BackgroundColor to match Parent - -parent = obj.Parent; -if isempty( parent ), return, end -property = getColorProperty( parent ); -color = parent.( property ); -try - obj.BackgroundColor = color; -catch e - warning( e.identifier, e.message ) % rethrow as warning -end - -end % updateColor - -function updateListener( obj ) -%updateListener Create listener to parent color property - -parent = obj.Parent; -if isempty( parent ) - obj.ParentColorListener = []; -else - property = getColorProperty( parent ); - obj.ParentColorListener = event.proplistener( parent, ... - findprop( parent, property ), 'PostSet', ... - @(~,~)onParentColorChanged(obj) ); -end - -end % updateListener \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/FigureData.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/FigureData.m deleted file mode 100644 index 1ce4fa6..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/FigureData.m +++ /dev/null @@ -1,26 +0,0 @@ -classdef ( Hidden, Sealed ) FigureData < event.EventData - %uix.FigureData Event data for FigureChanged on uix.FigureObserver - - % Copyright 2014-2015 The MathWorks, Inc. - % $Revision: 1435 $ $Date: 2016-11-17 17:50:34 +0000 (Thu, 17 Nov 2016) $ - - properties( SetAccess = private ) - OldFigure % old figure - NewFigure % new figure - end - - methods( Access = ?uix.FigureObserver ) - - function obj = FigureData( oldFigure, newFigure ) - %uix.FigureData Create event data - % - % d = uix.FigureData(oldFigure,newFigure) - - obj.OldFigure = oldFigure; - obj.NewFigure = newFigure; - - end % constructor - - end % methods - -end % classdef \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/FigureObserver.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/FigureObserver.m deleted file mode 100644 index 7106357..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/FigureObserver.m +++ /dev/null @@ -1,98 +0,0 @@ -classdef ( Hidden, Sealed ) FigureObserver < handle - %uix.FigureObserver Figure observer - % - % A figure observer raises an event FigureChanged when the figure - % ancestor of a subject changes. - - % Copyright 2014-2015 The MathWorks, Inc. - % $Revision: 1435 $ $Date: 2016-11-17 17:50:34 +0000 (Thu, 17 Nov 2016) $ - - properties( SetAccess = private ) - Subject % subject - Figure % figure ancestor - end - - properties( Access = private ) - PreSetListeners % listeners to Parent PreGet - PostSetListeners % listeners to Parent PreGet - OldFigure = gobjects( 0 ) % previous figure ancestor - end - - events( NotifyAccess = private ) - FigureChanged - end - - methods - - function obj = FigureObserver( subject ) - %uix.FigureObserver Create figure observer - % - % o = uix.FigureObserver(s) creates a figure observer for the - % subject s. - - % Check - validateattributes( subject, {'matlab.graphics.Graphics'}, ... - {'scalar'}, '', 'subject' ) - - % Store subject - obj.Subject = subject; - - % Set up object - obj.update() - - end % constructor - - end % structors - - methods( Access = private ) - - function update( obj ) - %update Update listeners and Figure property - - % Create fresh listeners - obj.PreSetListeners = event.proplistener.empty( [1 0] ); % clear - obj.PostSetListeners = event.proplistener.empty( [1 0] ); % clear - o = obj.Subject; - while ~isempty( o ) && ~isa( o, 'matlab.ui.Figure' ) - obj.PreSetListeners(end+1) = event.proplistener( o, ... - findprop( o, 'Parent' ), 'PreSet', @obj.onParentPreSet ); - obj.PostSetListeners(end+1) = event.proplistener( o, ... - findprop( o, 'Parent' ), 'PostSet', @obj.onParentPostSet ); - o = o.Parent; - end - - % Store figure - obj.Figure = o; - - end % update - - function onParentPreSet( obj, ~, ~ ) - %onParentPreSet Event handler - - % Store old figure - obj.OldFigure = obj.Figure; - - end % onParentPreSet - - function onParentPostSet( obj, ~, ~ ) - %onParentPostSet Event handler - - % Update object - obj.update() - - % Raise event - oldFigure = obj.OldFigure; - newFigure = obj.Figure; - if ~isequal( oldFigure, newFigure ) - notify( obj, 'FigureChanged', ... - uix.FigureData( oldFigure, newFigure ) ) - end - - % Clear old figure - obj.OldFigure = gobjects( 0 ); - - end % onParentPostSet - - end % private methods - -end % classdef \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Grid.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Grid.m deleted file mode 100644 index 029476a..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Grid.m +++ /dev/null @@ -1,321 +0,0 @@ -classdef Grid < uix.Box - %uix.Grid Grid - % - % b = uix.Grid(p1,v1,p2,v2,...) constructs a grid and sets parameter - % p1 to value v1, etc. - % - % A grid lays out contents from top to bottom and left to right. - % - % See also: uix.HBox, uix.VBox, uix.GridFlex - - % Copyright 2009-2016 The MathWorks, Inc. - % $Revision: 1436 $ $Date: 2016-11-17 17:53:29 +0000 (Thu, 17 Nov 2016) $ - - properties( Access = public, Dependent, AbortSet ) - Widths % widths of contents, in pixels and/or weights - MinimumWidths % minimum widths of contents, in pixels - Heights % heights of contents, in pixels and/or weights - MinimumHeights % minimum heights of contents, in pixels - end - - properties( Access = protected ) - Widths_ = zeros( [0 1] ) % backing for Widths - MinimumWidths_ = zeros( [0 1] ) % backing for MinimumWidths - Heights_ = zeros( [0 1] ) % backing for Heights - MinimumHeights_ = zeros( [0 1] ) % backing for MinimumHeights - end - - methods - - function obj = Grid( varargin ) - %uix.Grid Grid constructor - % - % b = uix.Grid() constructs a grid. - % - % b = uix.Grid(p1,v1,p2,v2,...) sets parameter p1 to value v1, - % etc. - - % Set properties - if nargin > 0 - try - assert( rem( nargin, 2 ) == 0, 'uix:InvalidArgument', ... - 'Parameters and values must be provided in pairs.' ) - set( obj, varargin{:} ) - catch e - delete( obj ) - e.throwAsCaller() - end - end - - end % constructor - - end % structors - - methods - - function value = get.Widths( obj ) - - value = obj.Widths_; - - end % get.Widths - - function set.Widths( obj, value ) - - % For those who can't tell a column from a row... - if isrow( value ) - value = transpose( value ); - end - - % Check - assert( isa( value, 'double' ), 'uix:InvalidPropertyValue', ... - 'Property ''Widths'' must be of type double.' ) - assert( all( isreal( value ) ) && ~any( isinf( value ) ) && ... - ~any( isnan( value ) ), 'uix:InvalidPropertyValue', ... - 'Elements of property ''Widths'' must be real and finite.' ) - n = numel( obj.Contents_ ); - b = numel( obj.Widths_ ); - q = numel( obj.Heights_ ); - c = numel( value ); - r = ceil( n / c ); - if c < min( [1 n] ) - error( 'uix:InvalidPropertyValue' , ... - 'Property ''Widths'' must be non-empty for non-empty contents.' ) - elseif ceil( n / r ) < c - error( 'uix:InvalidPropertyValue' , ... - 'Size of property ''Widths'' must not lead to empty columns.' ) - elseif c > n - error( 'uix:InvalidPropertyValue' , ... - 'Size of property ''Widths'' must be no larger than size of contents.' ) - end - - % Set - obj.Widths_ = value; - if c < b % number of columns decreasing - obj.MinimumWidths_(c+1:end,:) = []; - if r > q % number of rows increasing - obj.Heights_(end+1:r,:) = -1; - obj.MinimumHeights_(end+1:r,:) = 1; - end - elseif c > b % number of columns increasing - obj.MinimumWidths_(end+1:c,:) = -1; - if r < q % number of rows decreasing - obj.Heights_(r+1:end,:) = []; - obj.MinimumHeights_(r+1:end,:) = []; - end - end - - % Mark as dirty - obj.Dirty = true; - - end % set.Widths - - function value = get.MinimumWidths( obj ) - - value = obj.MinimumWidths_; - - end % get.MinimumWidths - - function set.MinimumWidths( obj, value ) - - % For those who can't tell a column from a row... - if isrow( value ) - value = transpose( value ); - end - - % Check - assert( isa( value, 'double' ), 'uix:InvalidPropertyValue', ... - 'Property ''MinimumWidths'' must be of type double.' ) - assert( all( isreal( value ) ) && ~any( isinf( value ) ) && ... - all( value >= 0 ), 'uix:InvalidPropertyValue', ... - 'Elements of property ''MinimumWidths'' must be non-negative.' ) - assert( isequal( size( value ), size( obj.Widths_ ) ), ... - 'uix:InvalidPropertyValue', ... - 'Size of property ''MinimumWidths'' must match size of contents.' ) - - % Set - obj.MinimumWidths_ = value; - - % Mark as dirty - obj.Dirty = true; - - end % set.MinimumWidths - - function value = get.Heights( obj ) - - value = obj.Heights_; - - end % get.Heights - - function set.Heights( obj, value ) - - % For those who can't tell a column from a row... - if isrow( value ) - value = transpose( value ); - end - - % Check - assert( isa( value, 'double' ), 'uix:InvalidPropertyValue', ... - 'Property ''Heights'' must be of type double.' ) - assert( all( isreal( value ) ) && ~any( isinf( value ) ) && ... - ~any( isnan( value ) ), 'uix:InvalidPropertyValue', ... - 'Elements of property ''Heights'' must be real and finite.' ) - n = numel( obj.Contents_ ); - b = numel( obj.Widths_ ); - q = numel( obj.Heights_ ); - r = numel( value ); - c = ceil( n / r ); - if r < min( [1 n] ) - error( 'uix:InvalidPropertyValue' , ... - 'Property ''Heights'' must be non-empty for non-empty contents.' ) - elseif r > n - error( 'uix:InvalidPropertyValue' , ... - 'Size of property ''Heights'' must be no larger than size of contents.' ) - end - - % Set - obj.Heights_ = value; - if r < q % number of rows decreasing - obj.MinimumHeights_(r+1:end,:) = []; - if c > b % number of columns increasing - obj.Widths_(end+1:c,:) = -1; - obj.MinimumWidths_(end+1:c,:) = 1; - end - elseif r > q % number of rows increasing - obj.MinimumHeights_(end+1:r,:) = 1; - if c < b % number of columns decreasing - obj.Widths_(c+1:end,:) = []; - obj.MinimumWidths_(c+1:end,:) = []; - end - end - - % Mark as dirty - obj.Dirty = true; - - end % set.Heights - - function value = get.MinimumHeights( obj ) - - value = obj.MinimumHeights_; - - end % get.MinimumHeights - - function set.MinimumHeights( obj, value ) - - % For those who can't tell a column from a row... - if isrow( value ) - value = transpose( value ); - end - - % Check - assert( isa( value, 'double' ), 'uix:InvalidPropertyValue', ... - 'Property ''MinimumHeights'' must be of type double.' ) - assert( all( isreal( value ) ) && ~any( isinf( value ) ) && ... - all( value >= 0 ), 'uix:InvalidPropertyValue', ... - 'Elements of property ''MinimumHeights'' must be non-negative.' ) - assert( isequal( size( value ), size( obj.Heights_ ) ), ... - 'uix:InvalidPropertyValue', ... - 'Size of property ''MinimumHeights'' must match size of contents.' ) - - % Set - obj.MinimumHeights_ = value; - - % Mark as dirty - obj.Dirty = true; - - end % set.MinimumHeights - - end % accessors - - methods( Access = protected ) - - function redraw( obj ) - %redraw Redraw - % - % c.redraw() redraws the container c. - - % Compute positions - bounds = hgconvertunits( ancestor( obj, 'figure' ), ... - [0 0 1 1], 'normalized', 'pixels', obj ); - widths = obj.Widths_; - minimumWidths = obj.MinimumWidths_; - heights = obj.Heights_; - minimumHeights = obj.MinimumHeights_; - padding = obj.Padding_; - spacing = obj.Spacing_; - c = numel( widths ); - r = numel( heights ); - n = numel( obj.Contents_ ); - xSizes = uix.calcPixelSizes( bounds(3), widths, ... - minimumWidths, padding, spacing ); - xPositions = [cumsum( [0; xSizes(1:end-1,:)] ) + padding + ... - spacing * transpose( 0:c-1 ) + 1, xSizes]; - ySizes = uix.calcPixelSizes( bounds(4), heights, ... - minimumHeights, padding, spacing ); - yPositions = [bounds(4) - cumsum( ySizes ) - padding - ... - spacing * transpose( 0:r-1 ) + 1, ySizes]; - [iy, ix] = ind2sub( [r c], transpose( 1:n ) ); - positions = [xPositions(ix,1), yPositions(iy,1), ... - xPositions(ix,2), yPositions(iy,2)]; - - % Set positions - children = obj.Contents_; - for ii = 1:numel( children ) - uix.setPosition( children(ii), positions(ii,:), 'pixels' ) - end - - end % redraw - - function addChild( obj, child ) - %addChild Add child - % - % c.addChild(d) adds the child d to the container c. - - % Add column and even a row if necessary - n = numel( obj.Contents_ ); - c = numel( obj.Widths_ ); - r = numel( obj.Heights_ ); - if n == 0 - obj.Widths_(end+1,:) = -1; - obj.MinimumWidths_(end+1,:) = 1; - obj.Heights_(end+1,:) = -1; - obj.MinimumHeights_(end+1,:) = 1; - elseif ceil( (n+1)/r ) > c - obj.Widths_(end+1,:) = -1; - obj.MinimumWidths_(end+1,:) = 1; - end - - % Call superclass method - addChild@uix.Box( obj, child ) - - end % addChild - - function removeChild( obj, child ) - %removeChild Remove child - % - % c.removeChild(d) removes the child d from the container c. - - % Remove column and even row if necessary - n = numel( obj.Contents_ ); - c = numel( obj.Widths_ ); - r = numel( obj.Heights_ ); - if n == 1 - obj.Widths_(end,:) = []; - obj.MinimumWidths_(end,:) = []; - obj.Heights_(end,:) = []; - obj.MinimumHeights_(end,:) = []; - elseif c == 1 - obj.Heights_(end,:) = []; - obj.MinimumHeights_(end,:) = []; - elseif ceil( (n-1)/r ) < c - obj.Widths_(end,:) = []; - obj.MinimumWidths_(end,:) = []; - end - - % Call superclass method - removeChild@uix.Box( obj, child ) - - end % removeChild - - end % template methods - -end % classdef \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/GridFlex.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/GridFlex.m deleted file mode 100644 index fac87de..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/GridFlex.m +++ /dev/null @@ -1,467 +0,0 @@ -classdef GridFlex < uix.Grid & uix.mixin.Flex - %uix.GridFlex Flexible grid - % - % b = uix.GridFlex(p1,v1,p2,v2,...) constructs a flexible grid and - % sets parameter p1 to value v1, etc. - % - % A grid lays out contents from top to bottom and left to right. - % Users can resize contents by dragging the dividers. - % - % See also: uix.HBoxFlex, uix.VBoxFlex, uix.Grid - - % Copyright 2009-2016 The MathWorks, Inc. - % $Revision: 1436 $ $Date: 2016-11-17 17:53:29 +0000 (Thu, 17 Nov 2016) $ - - properties( Access = public, Dependent, AbortSet ) - DividerMarkings % divider markings [on|off] - end - - properties( Access = private ) - RowDividers = uix.Divider.empty( [0 1] ) - ColumnDividers = uix.Divider.empty( [0 1] ) - FrontDivider % front divider - DividerMarkings_ = 'on' % backing for DividerMarkings - MousePressListener = event.listener.empty( [0 0] ) % mouse press listener - MouseReleaseListener = event.listener.empty( [0 0] ) % mouse release listener - MouseMotionListener = event.listener.empty( [0 0] ) % mouse motion listener - ActiveDivider = 0 % active divider index - ActiveDividerPosition = [NaN NaN NaN NaN] % active divider position - MousePressLocation = [NaN NaN] % mouse press location - BackgroundColorListener % background color listener - end - - methods - - function obj = GridFlex( varargin ) - %uix.GridFlex Flexible grid constructor - % - % b = uix.GridFlex() constructs a flexible grid. - % - % b = uix.GridFlex(p1,v1,p2,v2,...) sets parameter p1 to value - % v1, etc. - - % Create front divider - frontDivider = uix.Divider( 'Parent', obj, ... - 'Orientation', 'vertical', ... - 'BackgroundColor', obj.BackgroundColor * 0.75, ... - 'Visible', 'off' ); - - % Create listeners - backgroundColorListener = event.proplistener( obj, ... - findprop( obj, 'BackgroundColor' ), 'PostSet', ... - @obj.onBackgroundColorChange ); - - % Store properties - obj.FrontDivider = frontDivider; - obj.BackgroundColorListener = backgroundColorListener; - - % Set properties - if nargin > 0 - try - assert( rem( nargin, 2 ) == 0, 'uix:InvalidArgument', ... - 'Parameters and values must be provided in pairs.' ) - set( obj, varargin{:} ) - catch e - delete( obj ) - e.throwAsCaller() - end - end - - end % constructor - - end % structors - - methods - - function value = get.DividerMarkings( obj ) - - value = obj.DividerMarkings_; - - end % get.DividerMarkings - - function set.DividerMarkings( obj, value ) - - % Check - assert( ischar( value ) && any( strcmp( value, {'on','off'} ) ), ... - 'uix:InvalidArgument', ... - 'Property ''DividerMarkings'' must be ''on'' or ''off'.' ) - - % Set - obj.DividerMarkings_ = value; - - % Mark as dirty - obj.Dirty = true; - - end % set.DividerMarkings - - end % accessors - - methods( Access = protected ) - - function onMousePress( obj, source, eventData ) - %onMousePress Handler for WindowMousePress events - - % Check whether mouse is over a divider - locr = find( obj.RowDividers.isMouseOver( eventData ) ); - locc = find( obj.ColumnDividers.isMouseOver( eventData ) ); - if ~isempty( locr ) - loc = locr; - divider = obj.RowDividers(locr); - elseif ~isempty( locc ) - loc = -locc; - divider = obj.ColumnDividers(locc); - else - return - end - - % Capture state at button down - obj.ActiveDivider = loc; - obj.ActiveDividerPosition = divider.Position; - root = groot(); - obj.MousePressLocation = root.PointerLocation; - - % Make sure the pointer is appropriate - obj.updateMousePointer( source, eventData ); - - % Activate divider - frontDivider = obj.FrontDivider; - frontDivider.Position = divider.Position; - frontDivider.Orientation = divider.Orientation; - divider.Visible = 'off'; - frontDivider.Parent = []; - frontDivider.Parent = obj; - frontDivider.Visible = 'on'; - - end % onMousePress - - function onMouseRelease( obj, ~, ~ ) - %onMousePress Handler for WindowMouseRelease events - - % Compute new positions - loc = obj.ActiveDivider; - if loc > 0 - root = groot(); - delta = root.PointerLocation(2) - obj.MousePressLocation(2); - ih = loc; - jh = loc + 1; - ic = loc; - jc = loc + 1; - divider = obj.RowDividers(loc); - contents = obj.Contents_; - oldPixelHeights = [contents(ic).Position(4); contents(jc).Position(4)]; - minimumHeights = obj.MinimumHeights_(ih:jh,:); - if delta < 0 % limit to minimum distance from lower neighbor - delta = max( delta, minimumHeights(2) - oldPixelHeights(2) ); - else % limit to minimum distance from upper neighbor - delta = min( delta, oldPixelHeights(1) - minimumHeights(1) ); - end - oldHeights = obj.Heights_(loc:loc+1); - newPixelHeights = oldPixelHeights - delta * [1;-1]; - if oldHeights(1) < 0 && oldHeights(2) < 0 % weight, weight - newHeights = oldHeights .* newPixelHeights ./ oldPixelHeights; - elseif oldHeights(1) < 0 && oldHeights(2) >= 0 % weight, pixels - newHeights = [oldHeights(1) * newPixelHeights(1) / ... - oldPixelHeights(1); newPixelHeights(2)]; - elseif oldHeights(1) >= 0 && oldHeights(2) < 0 % pixels, weight - newHeights = [newPixelHeights(1); oldHeights(2) * ... - newPixelHeights(2) / oldPixelHeights(2)]; - else % sizes(1) >= 0 && sizes(2) >= 0 % pixels, pixels - newHeights = newPixelHeights; - end - obj.Heights_(loc:loc+1) = newHeights; - elseif loc < 0 - root = groot(); - delta = root.PointerLocation(1) - obj.MousePressLocation(1); - iw = -loc; - jw = -loc + 1; - r = numel( obj.Heights_ ); - ic = r * (-loc-1) + 1; - jc = r * -loc + 1; - divider = obj.ColumnDividers(iw); - contents = obj.Contents_; - oldPixelWidths = [contents(ic).Position(3); contents(jc).Position(3)]; - minimumWidths = obj.MinimumWidths_(iw:jw,:); - if delta < 0 % limit to minimum distance from left neighbor - delta = max( delta, minimumWidths(1) - oldPixelWidths(1) ); - else % limit to minimum distance from right neighbor - delta = min( delta, oldPixelWidths(2) - minimumWidths(2) ); - end - oldWidths = obj.Widths_(iw:jw); - newPixelWidths = oldPixelWidths + delta * [1;-1]; - if oldWidths(1) < 0 && oldWidths(2) < 0 % weight, weight - newWidths = oldWidths .* newPixelWidths ./ oldPixelWidths; - elseif oldWidths(1) < 0 && oldWidths(2) >= 0 % weight, pixels - newWidths = [oldWidths(1) * newPixelWidths(1) / ... - oldPixelWidths(1); newPixelWidths(2)]; - elseif oldWidths(1) >= 0 && oldWidths(2) < 0 % pixels, weight - newWidths = [newPixelWidths(1); oldWidths(2) * ... - newPixelWidths(2) / oldPixelWidths(2)]; - else % sizes(1) >= 0 && sizes(2) >= 0 % pixels, pixels - newWidths = newPixelWidths; - end - obj.Widths_(iw:jw) = newWidths; - else - return - end - - % Deactivate divider - obj.FrontDivider.Visible = 'off'; - divider.Visible = 'on'; - - % Reset state at button down - obj.ActiveDivider = 0; - obj.ActiveDividerPosition = [NaN NaN NaN NaN]; - obj.MousePressLocation = [NaN NaN]; - - % Mark as dirty - obj.Dirty = true; - - end % onMouseRelease - - function onMouseMotion( obj, source, eventData ) - %onMouseMotion Handler for WindowMouseMotion events - - loc = obj.ActiveDivider; - if loc == 0 % hovering, update pointer - obj.updateMousePointer( source, eventData ); - elseif loc > 0 % dragging row divider - root = groot(); - delta = root.PointerLocation(2) - obj.MousePressLocation(2); - ih = loc; - jh = loc + 1; - ic = loc; - jc = loc + 1; - contents = obj.Contents_; - oldPixelHeights = [contents(ic).Position(4); contents(jc).Position(4)]; - minimumHeights = obj.MinimumHeights_(ih:jh,:); - if delta < 0 % limit to minimum distance from lower neighbor - delta = max( delta, minimumHeights(2) - oldPixelHeights(2) ); - else % limit to minimum distance from upper neighbor - delta = min( delta, oldPixelHeights(1) - minimumHeights(1) ); - end - obj.FrontDivider.Position = ... - obj.ActiveDividerPosition + [0 delta 0 0]; - else % loc < 0, dragging column divider - root = groot(); - delta = root.PointerLocation(1) - obj.MousePressLocation(1); - iw = -loc; - jw = -loc + 1; - r = numel( obj.Heights_ ); - ic = r * (-loc-1) + 1; - jc = r * -loc + 1; - contents = obj.Contents_; - oldPixelWidths = [contents(ic).Position(3); contents(jc).Position(3)]; - minimumWidths = obj.MinimumWidths_(iw:jw,:); - if delta < 0 % limit to minimum distance from left neighbor - delta = max( delta, minimumWidths(1) - oldPixelWidths(1) ); - else % limit to minimum distance from right neighbor - delta = min( delta, oldPixelWidths(2) - minimumWidths(2) ); - end - obj.FrontDivider.Position = ... - obj.ActiveDividerPosition + [delta 0 0 0]; - end - - end % onMouseMotion - - function onBackgroundColorChange( obj, ~, ~ ) - %onBackgroundColorChange Handler for BackgroundColor changes - - backgroundColor = obj.BackgroundColor; - highlightColor = min( [backgroundColor / 0.75; 1 1 1] ); - shadowColor = max( [backgroundColor * 0.75; 0 0 0] ); - rowDividers = obj.RowDividers; - for ii = 1:numel( rowDividers ) - rowDivider = rowDividers(ii); - rowDivider.BackgroundColor = backgroundColor; - rowDivider.HighlightColor = highlightColor; - rowDivider.ShadowColor = shadowColor; - end - columnDividers = obj.ColumnDividers; - for jj = 1:numel( columnDividers ) - columnDivider = columnDividers(jj); - columnDivider.BackgroundColor = backgroundColor; - columnDivider.HighlightColor = highlightColor; - columnDivider.ShadowColor = shadowColor; - end - frontDivider = obj.FrontDivider; - frontDivider.BackgroundColor = shadowColor; - - end % onBackgroundColorChange - - end % event handlers - - methods( Access = protected ) - - function redraw( obj ) - %redraw Redraw contents - % - % c.redraw() redraws the container c. - - % Call superclass method - redraw@uix.Grid( obj ) - - % Create or destroy column dividers - b = numel( obj.ColumnDividers ); % current number of dividers - c = max( [numel( obj.Widths_ )-1 0] ); % required number of dividers - if b < c % create - for ii = b+1:c - columnDivider = uix.Divider( 'Parent', obj, ... - 'Orientation', 'vertical', ... - 'BackgroundColor', obj.BackgroundColor ); - obj.ColumnDividers(ii,:) = columnDivider; - end - elseif b > c % destroy - % Destroy dividers - delete( obj.ColumnDividers(c+1:b,:) ) - obj.ColumnDividers(c+1:b,:) = []; - % Update pointer - if c == 0 && strcmp( obj.Pointer, 'left' ) - obj.unsetPointer() - end - end - - % Create or destroy row dividers - q = numel( obj.RowDividers ); % current number of dividers - r = max( [numel( obj.Heights_ )-1 0] ); % required number of dividers - if q < r % create - for ii = q+1:r - columnDivider = uix.Divider( 'Parent', obj, ... - 'Orientation', 'horizontal', ... - 'BackgroundColor', obj.BackgroundColor ); - obj.RowDividers(ii,:) = columnDivider; - end - % Bring front divider to the front - frontDivider = obj.FrontDivider; - frontDivider.Parent = []; - frontDivider.Parent = obj; - elseif q > r % destroy - % Destroy dividers - delete( obj.RowDividers(r+1:q,:) ) - obj.RowDividers(r+1:q,:) = []; - % Update pointer - if r == 0 && strcmp( obj.Pointer, 'top' ) - obj.unsetPointer() - end - end - - % Compute container bounds - bounds = hgconvertunits( ancestor( obj, 'figure' ), ... - [0 0 1 1], 'normalized', 'pixels', obj ); - - % Retrieve size properties - widths = obj.Widths_; - minimumWidths = obj.MinimumWidths_; - heights = obj.Heights_; - minimumHeights = obj.MinimumHeights_; - padding = obj.Padding_; - spacing = obj.Spacing_; - - % Compute row divider positions - xRowPositions = [padding + 1, max( bounds(3) - 2 * padding, 1 )]; - xRowPositions = repmat( xRowPositions, [r 1] ); - yRowSizes = uix.calcPixelSizes( bounds(4), heights, ... - minimumHeights, padding, spacing ); - yRowPositions = [bounds(4) - cumsum( yRowSizes(1:r,:) ) - padding - ... - spacing * transpose( 1:r ) + 1, repmat( spacing, [r 1] )]; - rowPositions = [xRowPositions(:,1), yRowPositions(:,1), ... - xRowPositions(:,2), yRowPositions(:,2)]; - - % Compute column divider positions - xColumnSizes = uix.calcPixelSizes( bounds(3), widths, ... - minimumWidths, padding, spacing ); - xColumnPositions = [cumsum( xColumnSizes(1:c,:) ) + padding + ... - spacing * transpose( 0:c-1 ) + 1, repmat( spacing, [c 1] )]; - yColumnPositions = [padding + 1, max( bounds(4) - 2 * padding, 1 )]; - yColumnPositions = repmat( yColumnPositions, [c 1] ); - columnPositions = [xColumnPositions(:,1), yColumnPositions(:,1), ... - xColumnPositions(:,2), yColumnPositions(:,2)]; - - % Position row dividers - for ii = 1:r - rowDivider = obj.RowDividers(ii); - rowDivider.Position = rowPositions(ii,:); - switch obj.DividerMarkings_ - case 'on' - rowDivider.Markings = cumsum( xColumnSizes ) + ... - spacing * transpose( 0:c ) - xColumnSizes / 2; - case 'off' - rowDivider.Markings = zeros( [0 1] ); - end - end - - % Position column dividers - for ii = 1:c - columnDivider = obj.ColumnDividers(ii); - columnDivider.Position = columnPositions(ii,:); - switch obj.DividerMarkings_ - case 'on' - columnDivider.Markings = cumsum( yRowSizes ) + ... - spacing * transpose( 0:r ) - yRowSizes / 2; - case 'off' - columnDivider.Markings = zeros( [0 1] ); - end - end - - end % redraw - - function reparent( obj, oldFigure, newFigure ) - %reparent Reparent container - % - % c.reparent(a,b) reparents the container c from the figure a - % to the figure b. - - % Update listeners - if isempty( newFigure ) - mousePressListener = event.listener.empty( [0 0] ); - mouseReleaseListener = event.listener.empty( [0 0] ); - mouseMotionListener = event.listener.empty( [0 0] ); - else - mousePressListener = event.listener( newFigure, ... - 'WindowMousePress', @obj.onMousePress ); - mouseReleaseListener = event.listener( newFigure, ... - 'WindowMouseRelease', @obj.onMouseRelease ); - mouseMotionListener = event.listener( newFigure, ... - 'WindowMouseMotion', @obj.onMouseMotion ); - end - obj.MousePressListener = mousePressListener; - obj.MouseReleaseListener = mouseReleaseListener; - obj.MouseMotionListener = mouseMotionListener; - - % Call superclass method - reparent@uix.Grid( obj, oldFigure, newFigure ) - - % Update pointer - if ~isempty( oldFigure ) && ~strcmp( obj.Pointer, 'unset' ) - obj.unsetPointer() - end - - end % reparent - - end % template methods - - methods( Access = protected ) - - function updateMousePointer ( obj, source, eventData ) - - oldPointer = obj.Pointer; - if any( obj.RowDividers.isMouseOver( eventData ) ) - newPointer = 'top'; - elseif any( obj.ColumnDividers.isMouseOver( eventData ) ) - newPointer = 'left'; - else - newPointer = 'unset'; - end - switch newPointer - case oldPointer % no change - % do nothing - case 'unset' % change, unset - obj.unsetPointer() - otherwise % change, set - obj.setPointer( source, newPointer ) - end - - end % updateMousePointer - - end % helpers methods - -end % classdef \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/HBox.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/HBox.m deleted file mode 100644 index 32ba6f1..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/HBox.m +++ /dev/null @@ -1,194 +0,0 @@ -classdef HBox < uix.Box - %uix.HBox Horizontal box - % - % b = uix.HBox(p1,v1,p2,v2,...) constructs a horizontal box and sets - % parameter p1 to value v1, etc. - % - % A horizontal box lays out contents from left to right. - % - % See also: uix.VBox, uix.Grid, uix.HButtonBox, uix.HBoxFlex - - % Copyright 2009-2016 The MathWorks, Inc. - % $Revision: 1436 $ $Date: 2016-11-17 17:53:29 +0000 (Thu, 17 Nov 2016) $ - - properties( Access = public, Dependent, AbortSet ) - Widths % widths of contents, in pixels and/or weights - MinimumWidths % minimum widths of contents, in pixels - end - - properties( Access = protected ) - Widths_ = zeros( [0 1] ) % backing for Widths - MinimumWidths_ = zeros( [0 1] ) % backing for MinimumWidths - end - - methods - - function obj = HBox( varargin ) - %uix.HBox Horizontal box constructor - % - % b = uix.HBox() constructs a horizontal box. - % - % b = uix.HBox(p1,v1,p2,v2,...) sets parameter p1 to value v1, - % etc. - - % Set properties - if nargin > 0 - try - assert( rem( nargin, 2 ) == 0, 'uix:InvalidArgument', ... - 'Parameters and values must be provided in pairs.' ) - set( obj, varargin{:} ) - catch e - delete( obj ) - e.throwAsCaller() - end - end - - end % constructor - - end % structors - - methods - - function value = get.Widths( obj ) - - value = obj.Widths_; - - end % get.Widths - - function set.Widths( obj, value ) - - % For those who can't tell a column from a row... - if isrow( value ) - value = transpose( value ); - end - - % Check - assert( isa( value, 'double' ), 'uix:InvalidPropertyValue', ... - 'Property ''Widths'' must be of type double.' ) - assert( all( isreal( value ) ) && ~any( isinf( value ) ) && ... - ~any( isnan( value ) ), 'uix:InvalidPropertyValue', ... - 'Elements of property ''Widths'' must be real and finite.' ) - assert( isequal( size( value ), size( obj.Contents_ ) ), ... - 'uix:InvalidPropertyValue', ... - 'Size of property ''Widths'' must match size of contents.' ) - - % Set - obj.Widths_ = value; - - % Mark as dirty - obj.Dirty = true; - - end % set.Widths - - function value = get.MinimumWidths( obj ) - - value = obj.MinimumWidths_; - - end % get.MinimumWidths - - function set.MinimumWidths( obj, value ) - - % For those who can't tell a column from a row... - if isrow( value ) - value = transpose( value ); - end - - % Check - assert( isa( value, 'double' ), 'uix:InvalidPropertyValue', ... - 'Property ''MinimumWidths'' must be of type double.' ) - assert( all( isreal( value ) ) && ~any( isinf( value ) ) && ... - all( value >= 0 ), 'uix:InvalidPropertyValue', ... - 'Elements of property ''MinimumWidths'' must be non-negative.' ) - assert( isequal( size( value ), size( obj.Widths_ ) ), ... - 'uix:InvalidPropertyValue', ... - 'Size of property ''MinimumWidths'' must match size of contents.' ) - - % Set - obj.MinimumWidths_ = value; - - % Mark as dirty - obj.Dirty = true; - - end % set.MinimumWidths - - end % accessors - - methods( Access = protected ) - - function redraw( obj ) - %redraw Redraw - % - % c.redraw() redraws the container c. - - % Compute positions - bounds = hgconvertunits( ancestor( obj, 'figure' ), ... - [0 0 1 1], 'normalized', 'pixels', obj ); - widths = obj.Widths_; - minimumWidths = obj.MinimumWidths_; - padding = obj.Padding_; - spacing = obj.Spacing_; - c = numel( widths ); - xSizes = uix.calcPixelSizes( bounds(3), widths, ... - minimumWidths, padding, spacing ); - xPositions = [cumsum( [0; xSizes(1:c-1,:)] ) + padding + ... - spacing * transpose( 0:c-1 ) + 1, xSizes]; - yPositions = [padding + 1, max( bounds(4) - 2 * padding, 1 )]; - yPositions = repmat( yPositions, [c 1] ); - positions = [xPositions(:,1), yPositions(:,1), ... - xPositions(:,2), yPositions(:,2)]; - - % Set positions - children = obj.Contents_; - for ii = 1:numel( children ) - uix.setPosition( children(ii), positions(ii,:), 'pixels' ) - end - - end % redraw - - function addChild( obj, child ) - %addChild Add child - % - % c.addChild(d) adds the child d to the container c. - - % Add to sizes - obj.Widths_(end+1,:) = -1; - obj.MinimumWidths_(end+1,:) = 1; - - % Call superclass method - addChild@uix.Box( obj, child ) - - end % addChild - - function removeChild( obj, child ) - %removeChild Remove child - % - % c.removeChild(d) removes the child d from the container c. - - % Remove from sizes - tf = obj.Contents_ == child; - obj.Widths_(tf,:) = []; - obj.MinimumWidths_(tf,:) = []; - - % Call superclass method - removeChild@uix.Box( obj, child ) - - end % removeChild - - function reorder( obj, indices ) - %reorder Reorder contents - % - % c.reorder(i) reorders the container contents using indices - % i, c.Contents = c.Contents(i). - - % Reorder - obj.Widths_ = obj.Widths_(indices,:); - obj.MinimumWidths_ = obj.MinimumWidths_(indices,:); - - % Call superclass method - reorder@uix.Box( obj, indices ) - - end % reorder - - end % template methods - -end % classdef \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/HBoxFlex.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/HBoxFlex.m deleted file mode 100644 index 29955b3..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/HBoxFlex.m +++ /dev/null @@ -1,349 +0,0 @@ -classdef HBoxFlex < uix.HBox & uix.mixin.Flex - %uix.HBoxFlex Flexible horizontal box - % - % b = uix.HBoxFlex(p1,v1,p2,v2,...) constructs a flexible horizontal - % box and sets parameter p1 to value v1, etc. - % - % A horizontal box lays out contents from left to right. Users can - % resize contents by dragging the dividers. - % - % See also: uix.VBoxFlex, uix.GridFlex, uix.HBox, uix.HButtonBox - - % Copyright 2009-2016 The MathWorks, Inc. - % $Revision: 1436 $ $Date: 2016-11-17 17:53:29 +0000 (Thu, 17 Nov 2016) $ - - properties( Access = public, Dependent, AbortSet ) - DividerMarkings % divider markings [on|off] - end - - properties( Access = private ) - ColumnDividers = uix.Divider.empty( [0 1] ) % column dividers - FrontDivider % front divider - DividerMarkings_ = 'on' % backing for DividerMarkings - MousePressListener = event.listener.empty( [0 0] ) % mouse press listener - MouseReleaseListener = event.listener.empty( [0 0] ) % mouse release listener - MouseMotionListener = event.listener.empty( [0 0] ) % mouse motion listener - ActiveDivider = 0 % active divider index - ActiveDividerPosition = [NaN NaN NaN NaN] % active divider position - MousePressLocation = [NaN NaN] % mouse press location - BackgroundColorListener % background color listener - end - - methods - - function obj = HBoxFlex( varargin ) - %uix.HBoxFlex Flexible horizontal box constructor - % - % b = uix.HBoxFlex() constructs a flexible horizontal box. - % - % b = uix.HBoxFlex(p1,v1,p2,v2,...) sets parameter p1 to value - % v1, etc. - - % Create front divider - frontDivider = uix.Divider( 'Parent', obj, ... - 'Orientation', 'vertical', ... - 'BackgroundColor', obj.BackgroundColor * 0.75, ... - 'Visible', 'off' ); - - % Create listeners - backgroundColorListener = event.proplistener( obj, ... - findprop( obj, 'BackgroundColor' ), 'PostSet', ... - @obj.onBackgroundColorChange ); - - % Store properties - obj.FrontDivider = frontDivider; - obj.BackgroundColorListener = backgroundColorListener; - - % Set properties - if nargin > 0 - try - assert( rem( nargin, 2 ) == 0, 'uix:InvalidArgument', ... - 'Parameters and values must be provided in pairs.' ) - set( obj, varargin{:} ) - catch e - delete( obj ) - e.throwAsCaller() - end - end - - end % constructor - - end % structors - - methods - - function value = get.DividerMarkings( obj ) - - value = obj.DividerMarkings_; - - end % get.DividerMarkings - - function set.DividerMarkings( obj, value ) - - % Check - assert( ischar( value ) && any( strcmp( value, {'on','off'} ) ), ... - 'uix:InvalidArgument', ... - 'Property ''DividerMarkings'' must be ''on'' or ''off'.' ) - - % Set - obj.DividerMarkings_ = value; - - % Mark as dirty - obj.Dirty = true; - - end % set.DividerMarkings - - end % accessors - - methods( Access = protected ) - - function onMousePress( obj, source, eventData ) - %onMousePress Handler for WindowMousePress events - - % Check whether mouse is over a divider - loc = find( obj.ColumnDividers.isMouseOver( eventData ) ); - if isempty( loc ), return, end - - % Capture state at button down - divider = obj.ColumnDividers(loc); - obj.ActiveDivider = loc; - obj.ActiveDividerPosition = divider.Position; - root = groot(); - obj.MousePressLocation = root.PointerLocation; - - % Make sure the pointer is appropriate - obj.updateMousePointer( source, eventData ); - - % Activate divider - frontDivider = obj.FrontDivider; - frontDivider.Position = divider.Position; - divider.Visible = 'off'; - frontDivider.Parent = []; - frontDivider.Parent = obj; - frontDivider.Visible = 'on'; - - end % onMousePress - - function onMouseRelease( obj, ~, ~ ) - %onMousePress Handler for WindowMouseRelease events - - % Compute new positions - loc = obj.ActiveDivider; - if loc > 0 - root = groot(); - delta = root.PointerLocation(1) - obj.MousePressLocation(1); - iw = loc; - jw = loc + 1; - ic = loc; - jc = loc + 1; - divider = obj.ColumnDividers(loc); - contents = obj.Contents_; - oldPixelWidths = [contents(ic).Position(3); contents(jc).Position(3)]; - minimumWidths = obj.MinimumWidths_(iw:jw,:); - if delta < 0 % limit to minimum distance from left neighbor - delta = max( delta, minimumWidths(1) - oldPixelWidths(1) ); - else % limit to minimum distance from right neighbor - delta = min( delta, oldPixelWidths(2) - minimumWidths(2) ); - end - oldWidths = obj.Widths_(iw:jw); - newPixelWidths = oldPixelWidths + delta * [1;-1]; - if oldWidths(1) < 0 && oldWidths(2) < 0 % weight, weight - newWidths = oldWidths .* newPixelWidths ./ oldPixelWidths; - elseif oldWidths(1) < 0 && oldWidths(2) >= 0 % weight, pixels - newWidths = [oldWidths(1) * newPixelWidths(1) / ... - oldPixelWidths(1); newPixelWidths(2)]; - elseif oldWidths(1) >= 0 && oldWidths(2) < 0 % pixels, weight - newWidths = [newPixelWidths(1); oldWidths(2) * ... - newPixelWidths(2) / oldPixelWidths(2)]; - else % sizes(1) >= 0 && sizes(2) >= 0 % pixels, pixels - newWidths = newPixelWidths; - end - obj.Widths_(iw:jw) = newWidths; - else - return - end - - % Deactivate divider - obj.FrontDivider.Visible = 'off'; - divider.Visible = 'on'; - - % Reset state at button down - obj.ActiveDivider = 0; - obj.ActiveDividerPosition = [NaN NaN NaN NaN]; - obj.MousePressLocation = [NaN NaN]; - - % Mark as dirty - obj.Dirty = true; - - end % onMouseRelease - - function onMouseMotion( obj, source, eventData ) - %onMouseMotion Handler for WindowMouseMotion events - - loc = obj.ActiveDivider; - if loc == 0 % hovering, update pointer - obj.updateMousePointer( source, eventData ); - else % dragging column divider - root = groot(); - delta = root.PointerLocation(1) - obj.MousePressLocation(1); - iw = loc; - jw = loc + 1; - ic = loc; - jc = loc + 1; - contents = obj.Contents_; - oldPixelWidths = [contents(ic).Position(3); contents(jc).Position(3)]; - minimumWidths = obj.MinimumWidths_(iw:jw,:); - if delta < 0 % limit to minimum distance from left neighbor - delta = max( delta, minimumWidths(1) - oldPixelWidths(1) ); - else % limit to minimum distance from right neighbor - delta = min( delta, oldPixelWidths(2) - minimumWidths(2) ); - end - obj.FrontDivider.Position = ... - obj.ActiveDividerPosition + [delta 0 0 0]; - end - - end % onMouseMotion - - function onBackgroundColorChange( obj, ~, ~ ) - %onBackgroundColorChange Handler for BackgroundColor changes - - backgroundColor = obj.BackgroundColor; - highlightColor = min( [backgroundColor / 0.75; 1 1 1] ); - shadowColor = max( [backgroundColor * 0.75; 0 0 0] ); - columnDividers = obj.ColumnDividers; - for jj = 1:numel( columnDividers ) - columnDivider = columnDividers(jj); - columnDivider.BackgroundColor = backgroundColor; - columnDivider.HighlightColor = highlightColor; - columnDivider.ShadowColor = shadowColor; - end - frontDivider = obj.FrontDivider; - frontDivider.BackgroundColor = shadowColor; - - end % onBackgroundColorChange - - end % event handlers - - methods( Access = protected ) - - function redraw( obj ) - %redraw Redraw contents - % - % c.redraw() redraws the container c. - - % Call superclass method - redraw@uix.HBox( obj ) - - % Create or destroy column dividers - b = numel( obj.ColumnDividers ); % current number of dividers - c = max( [numel( obj.Widths_ )-1 0] ); % required number of dividers - if b < c % create - for ii = b+1:c - divider = uix.Divider( 'Parent', obj, ... - 'Orientation', 'vertical', ... - 'BackgroundColor', obj.BackgroundColor ); - obj.ColumnDividers(ii,:) = divider; - end - elseif b > c % destroy - % Destroy dividers - delete( obj.ColumnDividers(c+1:b,:) ) - obj.ColumnDividers(c+1:b,:) = []; - % Update pointer - if c == 0 && strcmp( obj.Pointer, 'left' ) - obj.unsetPointer() - end - end - - % Compute container bounds - bounds = hgconvertunits( ancestor( obj, 'figure' ), ... - [0 0 1 1], 'normalized', 'pixels', obj ); - - % Retrieve size properties - widths = obj.Widths_; - minimumWidths = obj.MinimumWidths_; - padding = obj.Padding_; - spacing = obj.Spacing_; - - % Compute column divider positions - xColumnSizes = uix.calcPixelSizes( bounds(3), widths, ... - minimumWidths, padding, spacing ); - xColumnPositions = [cumsum( xColumnSizes(1:c,:) ) + padding + ... - spacing * transpose( 0:c-1 ) + 1, repmat( spacing, [c 1] )]; - yColumnPositions = [padding + 1, max( bounds(4) - 2 * padding, 1 )]; - yColumnPositions = repmat( yColumnPositions, [c 1] ); - columnPositions = [xColumnPositions(:,1), yColumnPositions(:,1), ... - xColumnPositions(:,2), yColumnPositions(:,2)]; - - % Position column dividers - for ii = 1:c - columnDivider = obj.ColumnDividers(ii); - columnDivider.Position = columnPositions(ii,:); - switch obj.DividerMarkings_ - case 'on' - columnDivider.Markings = columnPositions(ii,4)/2; - case 'off' - columnDivider.Markings = zeros( [0 1] ); - end - end - - end % redraw - - function reparent( obj, oldFigure, newFigure ) - %reparent Reparent container - % - % c.reparent(a,b) reparents the container c from the figure a - % to the figure b. - - % Update listeners - if isempty( newFigure ) - mousePressListener = event.listener.empty( [0 0] ); - mouseReleaseListener = event.listener.empty( [0 0] ); - mouseMotionListener = event.listener.empty( [0 0] ); - else - mousePressListener = event.listener( newFigure, ... - 'WindowMousePress', @obj.onMousePress ); - mouseReleaseListener = event.listener( newFigure, ... - 'WindowMouseRelease', @obj.onMouseRelease ); - mouseMotionListener = event.listener( newFigure, ... - 'WindowMouseMotion', @obj.onMouseMotion ); - end - obj.MousePressListener = mousePressListener; - obj.MouseReleaseListener = mouseReleaseListener; - obj.MouseMotionListener = mouseMotionListener; - - % Call superclass method - reparent@uix.HBox( obj, oldFigure, newFigure ) - - % Update pointer - if ~isempty( oldFigure ) && ~strcmp( obj.Pointer, 'unset' ) - obj.unsetPointer() - end - - end % reparent - - end % template methods - - methods( Access = protected ) - - function updateMousePointer ( obj, source, eventData ) - - oldPointer = obj.Pointer; - if any( obj.ColumnDividers.isMouseOver( eventData ) ) - newPointer = 'left'; - else - newPointer = 'unset'; - end - switch newPointer - case oldPointer % no change - % do nothing - case 'unset' % change, unset - obj.unsetPointer() - otherwise % change, set - obj.setPointer( source, newPointer ) - end - - end % updateMousePointer - - end % helpers methods - -end % classdef \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/HButtonBox.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/HButtonBox.m deleted file mode 100644 index d1441c2..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/HButtonBox.m +++ /dev/null @@ -1,100 +0,0 @@ -classdef HButtonBox < uix.ButtonBox - %uix.HButtonBox Horizontal button box - % - % b = uix.HButtonBox(p1,v1,p2,v2,...) constructs a horizontal button - % box and sets parameter p1 to value v1, etc. - % - % A horizontal button box lays out equally sized buttons from left to - % right. - % - % See also: uix.VButtonBox - - % Copyright 2009-2016 The MathWorks, Inc. - % $Revision: 1436 $ $Date: 2016-11-17 17:53:29 +0000 (Thu, 17 Nov 2016) $ - - methods - - function obj = HButtonBox( varargin ) - %uix.HButtonBox Horizontal button box constructor - % - % b = uix.HButtonBox() constructs a horizontal button box. - % - % b = uix.HButtonBox(p1,v1,p2,v2,...) sets parameter p1 to - % value v1, etc. - - % Set properties - if nargin > 0 - try - assert( rem( nargin, 2 ) == 0, 'uix:InvalidArgument', ... - 'Parameters and values must be provided in pairs.' ) - set( obj, varargin{:} ) - catch e - delete( obj ) - e.throwAsCaller() - end - end - - end % constructor - - end % structors - - methods( Access = protected ) - - function redraw( obj ) - - % Compute positions - bounds = hgconvertunits( ancestor( obj, 'figure' ), ... - [0 0 1 1], 'normalized', 'pixels', obj ); - buttonSize = obj.ButtonSize_; - padding = obj.Padding_; - spacing = obj.Spacing_; - c = numel( obj.Contents_ ); - if 2 * padding + (c-1) * spacing + c * buttonSize(1) > bounds(3) - xSizes = uix.calcPixelSizes( bounds(3), -ones( [c 1] ), ... - ones( [c 1] ), padding, spacing ); % shrink to fit - else - xSizes = repmat( buttonSize(1), [c 1] ); - end - switch obj.HorizontalAlignment - case 'left' - xPositions = [cumsum( [0; xSizes(1:c-1,:)] ) + ... - padding + spacing * transpose( 0:c-1 ) + 1, xSizes]; - case 'center' - xPositions = [cumsum( [0; xSizes(1:c-1,:)] ) + ... - spacing * transpose( 0:c-1 ) + bounds(3) / 2 - ... - sum( xSizes ) / 2 - spacing * (c-1) / 2 + 1, ... - xSizes]; - case 'right' - xPositions = [cumsum( [0; xSizes(1:c-1,:)] ) + ... - spacing * transpose( 0:c-1 ) + bounds(3) - ... - sum( xSizes ) - spacing * (c-1) - padding + 1, ... - xSizes]; - end - if 2 * padding + buttonSize(2) > bounds(4) - ySizes = repmat( uix.calcPixelSizes( bounds(4), -1, 1, ... - padding, spacing ), [c 1] ); % shrink to fit - else - ySizes = repmat( buttonSize(2), [c 1] ); - end - switch obj.VerticalAlignment - case 'top' - yPositions = [bounds(4) - ySizes - padding + 1, ySizes]; - case 'middle' - yPositions = [(bounds(4) - ySizes) / 2 + 1, ySizes]; - case 'bottom' - yPositions = [repmat( padding, [c 1] ) + 1, ySizes]; - end - positions = [xPositions(:,1), yPositions(:,1), ... - xPositions(:,2), yPositions(:,2)]; - - % Set positions - children = obj.Contents_; - for ii = 1:numel( children ) - uix.setPosition( children(ii), positions(ii,:), 'pixels' ) - end - - end % redraw - - end % template methods - -end % classdef \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Node.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Node.m deleted file mode 100644 index c4a140e..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Node.m +++ /dev/null @@ -1,94 +0,0 @@ -classdef ( Hidden ) Node < dynamicprops - %uix.Node Node - % - % n = uix.Node(o) creates a node for the handle o. - % - % Node is a helper class for managing trees of objects and associated - % listeners. - - % Copyright 2009-2015 The MathWorks, Inc. - % $Revision: 1165 $ $Date: 2015-12-06 03:09:17 -0500 (Sun, 06 Dec 2015) $ - - properties( SetAccess = private ) - Object % object - Children = uix.Node.empty( [0 1] ) % children - end - - properties( Access = private ) - ChildListeners = event.listener.empty( [0 1] ) % internal listeners - end - - methods - - function obj = Node( object ) - %uix.Node Node - % - % n = uix.Node(o) creates a node for the handle o. - - % Check - assert( isa( object, 'handle' ) && ... - isequal( size( object ), [1 1] ) && isvalid( object ), ... - 'uix:InvalidArgument', 'Object must be a handle.' ) - - % Set properties - obj.Object = object; - - end % constructor - - end % structors - - methods - - function addChild( obj, child ) - %addChild Add child - % - % n.addChild(c) adds the child node c to the parent node n. - - % Check - assert( isa( child, 'uix.Node' ) && ... - isequal( size( child ), [1 1] ), ... - 'uix:InvalidArgument', 'Invalid node.' ) - - % Add - childListener = event.listener( child, ... - 'ObjectBeingDestroyed', @obj.onChildDeleted ); - obj.Children(end+1,:) = child; - obj.ChildListeners(end+1,:) = childListener; - - end % addChild - - function removeChild( obj, child ) - %removeChild Remove child - % - % n.removeChild(c) removes the child node c from the parent - % node n. - - % Check - assert( isa( child, 'uix.Node' ) && ... - isequal( size( child ), [1 1] ), ... - 'uix:InvalidArgument', 'Invalid node.' ) - assert( ismember( child, obj.Children ), ... - 'uix:ItemNotFound', 'Node not found.' ) - - % Remove - tf = child == obj.Children; - obj.Children(tf,:) = []; - obj.ChildListeners(tf,:) = []; - - end % removeChild - - end % public methods - - methods( Access = private ) - - function onChildDeleted( obj, source, ~ ) - %onChildDeleted Event handler for deletion of child nodes - - % Remove - obj.removeChild( source ) - - end % onChildDeleted - - end % event handlers - -end % classdef \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Panel.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Panel.m deleted file mode 100644 index bb677c2..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Panel.m +++ /dev/null @@ -1,63 +0,0 @@ -classdef Panel < matlab.ui.container.Panel & uix.mixin.Panel - %uix.Panel Standard panel - % - % b = uix.Panel(p1,v1,p2,v2,...) constructs a standard panel and sets - % parameter p1 to value v1, etc. - % - % A card panel is a standard panel (uipanel) that shows one its - % contents and hides the others. - % - % See also: uix.CardPanel, uix.BoxPanel, uipanel - - % Copyright 2009-2016 The MathWorks, Inc. - % $Revision: 1436 $ $Date: 2016-11-17 17:53:29 +0000 (Thu, 17 Nov 2016) $ - - methods - - function obj = Panel( varargin ) - %uix.Panel Standard panel constructor - % - % p = uix.Panel() constructs a standard panel. - % - % p = uix.Panel(p1,v1,p2,v2,...) sets parameter p1 to value - % v1, etc. - - % Set properties - if nargin > 0 - try - assert( rem( nargin, 2 ) == 0, 'uix:InvalidArgument', ... - 'Parameters and values must be provided in pairs.' ) - set( obj, varargin{:} ) - catch e - delete( obj ) - e.throwAsCaller() - end - end - - end % constructor - - end % structors - - methods( Access = protected ) - - function redraw( obj ) - - % Compute positions - bounds = hgconvertunits( ancestor( obj, 'figure' ), ... - [0 0 1 1], 'normalized', 'pixels', obj ); - padding = obj.Padding_; - xSizes = uix.calcPixelSizes( bounds(3), -1, 1, padding, 0 ); - ySizes = uix.calcPixelSizes( bounds(4), -1, 1, padding, 0 ); - position = [padding+1 padding+1 xSizes ySizes]; - - % Redraw contents - selection = obj.Selection_; - if selection ~= 0 - uix.setPosition( obj.Contents_(selection), position, 'pixels' ) - end - - end % redraw - - end % template methods - -end % classdef \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/PointerManager.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/PointerManager.m deleted file mode 100644 index 2afd129..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/PointerManager.m +++ /dev/null @@ -1,153 +0,0 @@ -classdef ( Hidden, Sealed ) PointerManager < handle - %uix.PointerManager Pointer manager - - % Copyright 2016 The MathWorks, Inc. - % $Revision: 1435 $ $Date: 2016-11-17 17:50:34 +0000 (Thu, 17 Nov 2016) $ - - properties( SetAccess = private ) - Figure % figure - end - - properties( Access = private ) - Tokens % tokens - Pointers % pointers - NextToken % next token - PointerListener % listener - end - - methods( Access = private ) - - function obj = PointerManager( figure ) - %uix.PointerManager Create pointer manager - % - % m = uix.PointerManager(f) creates a pointer manager for the - % figure f. - - obj.Figure = figure; - obj.Tokens = 0; - obj.Pointers = {figure.Pointer}; - obj.NextToken = 1; - obj.PointerListener = event.proplistener( figure, ... - findprop( figure, 'Pointer' ), 'PostSet', ... - @obj.onPointerChanged ); - - end % constructor - - end % structors - - methods( Access = private ) - - function doSetPointer( obj, token, pointer ) - %doSetPointer Set pointer - % - % m.doSetPointer(t,p) sets the pointer to p with the token t. - - % Remove old entry - tf = obj.Tokens == token; - obj.Tokens(tf) = []; - obj.Pointers(tf) = []; - - % Add new entry - obj.Tokens(end+1) = token; - obj.Pointers{end+1} = pointer; - - % Set pointer - obj.PointerListener.Enabled = false; - obj.Figure.Pointer = pointer; - obj.PointerListener.Enabled = true; - - end % doSetPointer - - function doUnsetPointer( obj, token ) - %doUnsetPointer Unset pointer - % - % m.doUnsetPointer(s) unsets the pointer with the token t. - - % Remove old entry - tf = obj.Tokens == token; - obj.Tokens(tf) = []; - obj.Pointers(tf) = []; - - % Update pointer - obj.PointerListener.Enabled = false; - obj.Figure.Pointer = obj.Pointers{end}; - obj.PointerListener.Enabled = true; - - end % doUnsetPointer - - end % private methods - - methods - - function onPointerChanged( obj, ~, ~ ) - %onPointerChanged Event handler - - % Log as unknown setter - obj.doSetPointer( 0, obj.Figure.Pointer ) - - end % onPointerChanged - - end % event handlers - - methods( Static ) - - function token = setPointer( figure, pointer ) - %setPointer Set pointer - % - % t = uix.PointerManager.setPointer(f,p) sets the pointer of - % the figure f to p. The returned token t can be used - % subsequently to unset the pointer. - - % Get pointer manager - obj = uix.PointerManager.getInstance( figure ); - - % Retrieve token - token = obj.NextToken; - - % Set - obj.doSetPointer( token, pointer ) - - % Increment token - obj.NextToken = token + 1; - - end % setPointer - - function unsetPointer( figure, token ) - %unsetPointer Unset pointer - % - % uix.PointerManager.unsetPointer(f,t) unsets the pointer of - % the figure f using the token t. - - % Check ID - validateattributes( token, {'numeric'}, {'scalar','integer','>',0} ) - - % Get pointer manager - obj = uix.PointerManager.getInstance( figure ); - - % Unset - obj.doUnsetPointer( token ) - - end % unsetPointer - - function obj = getInstance( figure ) - %getInstance Get pointer manager - % - % m = uix.PointerManager.getInstance(f) gets the pointer - % manager for the figure f. - - % Get pointer manager - name = 'UIxPointerManager'; - if isprop( figure, name ) % existing, retrieve - obj = figure.( name ); - else % new, create and store - obj = uix.PointerManager( figure ); - p = addprop( figure, name ); - p.Hidden = true; - figure.( name ) = obj; - end - - end % getInstance - - end % static methods - -end % classdef \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Resources/tab_NoEdge_NotSelected.png b/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Resources/tab_NoEdge_NotSelected.png deleted file mode 100644 index 30d4bb42c1e6bd88c2374e3049ba880eff442ccd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 228 zcmeAS@N?(olHy`uVBq!ia0vp^96&6>!3HEZNY`WoDaPU;cPEB*=VV?2Ic!PZ?k+$Y z2!1;6t_M<_1s;*b3=G`DAk4@xYmNj^kiEpy*OmPyH?iR4_P?407kYEsa%BRefKE(rQ41=eu KpUXO@geCyABRy{b diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Resources/tab_NoEdge_Selected.png b/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Resources/tab_NoEdge_Selected.png deleted file mode 100644 index c0c8b56de20b219af4ad4443bfa7adfe20403832..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 216 zcmeAS@N?(olHy`uVBq!ia0vp^96&6>!3HEZNY`WoDYhhUcNd2LAh=-f^2tCE&H|6f zVg?3oVGw3ym^DWND9B#o>FdgVl}CV+LF@dI{NF$!*%H@?66gHf+|;}h2Ir#G#FEq$ zh4Rdj426)4R0VfW-+=cis(C<#Hl8kyAr-fhQxbmspU=pja8Q-;^0B7iNfReFfzopr0GLZZ AP5=M^ diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Resources/tab_NotSelected_NoEdge.png b/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Resources/tab_NotSelected_NoEdge.png deleted file mode 100644 index 30bf1da294c5fa6abfcbc3235d7bacff88aca979..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 228 zcmeAS@N?(olHy`uVBq!ia0vp^96&6>!3HEZNY`WoDaPU;cPEB*=VV?2Ic!PZ?k)`f zL2$v|<&%LToCO|{#S9GG!XV7ZFl&wkP>{XE)7O>#CO4OmsYd2H?F68ZY>8_`iF1B# zZfaf$gL6@8Vo7R>LV0FMhC)b2s)D!3HEZNY`WoDaPU;cPEB*=VV?2Ic!PZ?k+$Y z2!1;6t_M<_1s;*b3=G`DAk4@xYmNj^kiEpy*OmPyHDBA}3LiEBiObAE1a zYF-J0b5UwyNotBhd1gt5LP$ocg1e`0!21-{JfK1^PZ!4!jq`6OS@Ja)@UW!+`ERf9 z%Agvk;^K0$>|0!`u8PkKbEfAr`aXz-6j{2s3oWQ{=-s>Mrq2)7c&@PT74e44XH1y7 c+1B5JA$_N$tgW7C2GCRnPgg&ebxsLQ0Jo1tQUCw| diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Resources/tab_NotSelected_Selected.png b/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Resources/tab_NotSelected_Selected.png deleted file mode 100644 index e96782b33d8f63e2eb6a958e2af3503710680251..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^96&6>!3HEZNY`WoDaPU;cPEB*=VV?2Ic!PZ?k+$Y z2!1;6t_M<_1s;*b3=G`DAk4@xYmNj^kiEpy*OmPyH!3HEZNY`WoDaPU;cPEB*=VV?2Ic!PZ?k)`f zL2$v|<&%LToCO|{#S9GG!XV7ZFl&wkP>{XE)7O>#CO4OmnWw!}4}#5q4V zH#M(>!MP|ku_QG`p**uBLm?z1Rl(iUH{gAWY93Ibt*47)h{pNkl!PDu=QHvr{5pT& z#DN0`I-(hwf#3*-+a0bCQH;qCj9M#%-9!U|8MpmVxXV=%ykSbP0l+XkKUG_uo diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Resources/tab_Selected_NotSelected.png b/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Resources/tab_Selected_NotSelected.png deleted file mode 100644 index 4758ca3f2eda20a5b75e88db0d7ca2e8fb9bcf44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmeAS@N?(olHy`uVBq!ia0vp^96&6>!3HEZNY`WoDaPU;cPEB*=VV?2Ic!PZ?k+$Y z2!1;6t_M<_1s;*b3=G`DAk4@xYmNj^kiEpy*OmPyHwc6hbmm72G|21Ky{o<^dJDdb&77jA5g~{dc$^?$HTFp;l+BSG|B)d-Mj<3*M^Y8JW&RtHH+8?!F YYyA~g-p#qV31}dLr>mdKI;Vst03dcpCIA2c diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/ScrollingPanel.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/ScrollingPanel.m deleted file mode 100644 index 091bcbe..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/ScrollingPanel.m +++ /dev/null @@ -1,645 +0,0 @@ -classdef ScrollingPanel < uix.Container & uix.mixin.Panel - %uix.ScrollingPanel Scrolling panel - % - % p = uix.ScrollingPanel(p1,v1,p2,v2,...) constructs a scrolling panel - % and sets parameter p1 to value v1, etc. - % - % A scrolling panel is a standard container (uicontainer) that shows - % one its contents and hides the others. - % - % See also: uix.Panel, uix.BoxPanel, uix.TabPanel, uicontainer - - % Copyright 2009-2016 The MathWorks, Inc. - % $Revision: 1455 $ $Date: 2017-01-26 20:34:18 +0000 (Thu, 26 Jan 2017) $ - - properties( Dependent ) - Heights % heights of contents, in pixels and/or weights - MinimumHeights % minimum heights of contents, in pixels - VerticalOffsets % vertical offsets of contents, in pixels - VerticalSteps % vertical slider steps, in pixels - Widths % widths of contents, in pixels and/or weights - MinimumWidths % minimum widths of contents, in pixels - HorizontalOffsets % horizontal offsets of contents, in pixels - HorizontalSteps % horizontal slider steps, in pixels - MouseWheelEnabled % mouse wheel scrolling enabled [on|off] - end - - properties( Access = protected ) - Heights_ = zeros( [0 1] ) % backing for Heights - MinimumHeights_ = zeros( [0 1] ) % backing for MinimumHeights - Widths_ = zeros( [0 1] ) % backing for Widths - MinimumWidths_ = zeros( [0 1] ) % backing for MinimumWidths - HorizontalSliders = matlab.ui.control.UIControl.empty( [0 1] ) % sliders - VerticalSliders = matlab.ui.control.UIControl.empty( [0 1] ) % sliders - BlankingPlates = matlab.ui.control.UIControl.empty( [0 1] ) % blanking plates - HorizontalSteps_ = zeros( [0 1] ) % steps - VerticalSteps_ = zeros( [0 1] ) % steps - end - - properties( Access = private ) - MouseWheelListener = [] % mouse listener - MouseWheelEnabled_ = 'on' % - SliderListener = [] % slider listener - end - - properties( Constant, Access = protected ) - SliderSize = 20 % slider size, in pixels - SliderStep = 10 % slider step, in pixels - end - - methods - - function obj = ScrollingPanel( varargin ) - %uix.ScrollingPanel Scrolling panel constructor - % - % p = uix.ScrollingPanel() constructs a scrolling panel. - % - % p = uix.ScrollingPanel(p1,v1,p2,v2,...) sets parameter p1 to - % value v1, etc. - - % Set properties - if nargin > 0 - try - assert( rem( nargin, 2 ) == 0, 'uix:InvalidArgument', ... - 'Parameters and values must be provided in pairs.' ) - set( obj, varargin{:} ) - catch e - delete( obj ) - e.throwAsCaller() - end - end - - end % constructor - - end % structors - - methods - - function value = get.Heights( obj ) - - value = obj.Heights_; - - end % get.Heights - - function set.Heights( obj, value ) - - % For those who can't tell a column from a row... - if isrow( value ) - value = transpose( value ); - end - - % Check - assert( isa( value, 'double' ), 'uix:InvalidPropertyValue', ... - 'Property ''Heights'' must be of type double.' ) - assert( all( isreal( value ) ) && ~any( isinf( value ) ) && ... - ~any( isnan( value ) ), 'uix:InvalidPropertyValue', ... - 'Elements of property ''Heights'' must be real and finite.' ) - assert( isequal( size( value ), size( obj.Contents_ ) ), ... - 'uix:InvalidPropertyValue', ... - 'Size of property ''Heights'' must match size of contents.' ) - - % Set - obj.Heights_ = value; - - % Mark as dirty - obj.Dirty = true; - - end % set.Heights - - function value = get.MinimumHeights( obj ) - - value = obj.MinimumHeights_; - - end % get.MinimumHeights - - function set.MinimumHeights( obj, value ) - - % For those who can't tell a column from a row... - if isrow( value ) - value = transpose( value ); - end - - % Check - assert( isa( value, 'double' ), 'uix:InvalidPropertyValue', ... - 'Property ''MinimumHeights'' must be of type double.' ) - assert( all( isreal( value ) ) && ~any( isinf( value ) ) && ... - all( value >= 0 ), 'uix:InvalidPropertyValue', ... - 'Elements of property ''MinimumHeights'' must be non-negative.' ) - assert( isequal( size( value ), size( obj.Heights_ ) ), ... - 'uix:InvalidPropertyValue', ... - 'Size of property ''MinimumHeights'' must match size of contents.' ) - - % Set - obj.MinimumHeights_ = value; - - % Mark as dirty - obj.Dirty = true; - - end % set.MinimumHeights - - function value = get.VerticalOffsets( obj ) - - sliders = obj.VerticalSliders; - if isempty( sliders ) - value = zeros( size( sliders ) ); - else - value = -vertcat( sliders.Value ) - 1; - value(value<0) = 0; - end - - end % get.VerticalOffsets - - function set.VerticalOffsets( obj, value ) - - % Check - assert( isa( value, 'double' ), 'uix:InvalidPropertyValue', ... - 'Property ''VerticalOffsets'' must be of type double.' ) - assert( all( isreal( value ) ) && ~any( isinf( value ) ) && ... - ~any( isnan( value ) ), 'uix:InvalidPropertyValue', ... - 'Elements of property ''VerticalOffsets'' must be real and finite.' ) - assert( isequal( size( value ), size( obj.Contents_ ) ), ... - 'uix:InvalidPropertyValue', ... - 'Size of property ''VerticalOffsets'' must match size of contents.' ) - - % Set - sliders = obj.VerticalSliders; - heights = obj.Heights_; - for ii = 1:numel( sliders ) - if heights(ii) > 0 - sliders(ii).Value = -value(ii) - 1; - end - end - - % Mark as dirty - obj.Dirty = true; - - end % set.VerticalOffsets - - function value = get.VerticalSteps( obj ) - - value = obj.VerticalSteps_; - - end % get.VerticalSteps - - function set.VerticalSteps( obj, value ) - - % For those who can't tell a column from a row... - if isrow( value ) - value = transpose( value ); - end - - % Check - assert( isa( value, 'double' ), 'uix:InvalidPropertyValue', ... - 'Property ''VerticalSteps'' must be of type double.' ) - assert( all( isreal( value ) ) && ~any( isinf( value ) ) && ... - ~any( isnan( value ) ) && all( value > 0 ), ... - 'uix:InvalidPropertyValue', ... - 'Elements of property ''VerticalSteps'' must be real, finite and positive.' ) - assert( isequal( size( value ), size( obj.Contents_ ) ), ... - 'uix:InvalidPropertyValue', ... - 'Size of property ''VerticalSteps'' must match size of contents.' ) - - % Set - obj.VerticalSteps_ = value; - - % Mark as dirty - obj.Dirty = true; - - end % set.VerticalSteps - - function value = get.Widths( obj ) - - value = obj.Widths_; - - end % get.Widths - - function set.Widths( obj, value ) - - % For those who can't tell a column from a row... - if isrow( value ) - value = transpose( value ); - end - - % Check - assert( isa( value, 'double' ), 'uix:InvalidPropertyValue', ... - 'Property ''Widths'' must be of type double.' ) - assert( all( isreal( value ) ) && ~any( isinf( value ) ) && ... - ~any( isnan( value ) ), 'uix:InvalidPropertyValue', ... - 'Elements of property ''Widths'' must be real and finite.' ) - assert( isequal( size( value ), size( obj.Contents_ ) ), ... - 'uix:InvalidPropertyValue', ... - 'Size of property ''Widths'' must match size of contents.' ) - - % Set - obj.Widths_ = value; - - % Mark as dirty - obj.Dirty = true; - - end % set.Widths - - function value = get.MinimumWidths( obj ) - - value = obj.MinimumWidths_; - - end % get.MinimumWidths - - function set.MinimumWidths( obj, value ) - - % For those who can't tell a column from a row... - if isrow( value ) - value = transpose( value ); - end - - % Check - assert( isa( value, 'double' ), 'uix:InvalidPropertyValue', ... - 'Property ''MinimumWidths'' must be of type double.' ) - assert( all( isreal( value ) ) && ~any( isinf( value ) ) && ... - all( value >= 0 ), 'uix:InvalidPropertyValue', ... - 'Elements of property ''MinimumWidths'' must be non-negative.' ) - assert( isequal( size( value ), size( obj.Widths_ ) ), ... - 'uix:InvalidPropertyValue', ... - 'Size of property ''MinimumWidths'' must match size of contents.' ) - - % Set - obj.MinimumWidths_ = value; - - % Mark as dirty - obj.Dirty = true; - - end % set.MinimumWidths - - function value = get.HorizontalOffsets( obj ) - - sliders = obj.HorizontalSliders; - if isempty( sliders ) - value = zeros( size( sliders ) ); - else - value = vertcat( sliders.Value ); - value(value<0) = 0; - end - - end % get.HorizontalOffsets - - function set.HorizontalOffsets( obj, value ) - - % Check - assert( isa( value, 'double' ), 'uix:InvalidPropertyValue', ... - 'Property ''HorizontalOffsets'' must be of type double.' ) - assert( all( isreal( value ) ) && ~any( isinf( value ) ) && ... - ~any( isnan( value ) ), 'uix:InvalidPropertyValue', ... - 'Elements of property ''HorizontalOffsets'' must be real and finite.' ) - assert( isequal( size( value ), size( obj.Contents_ ) ), ... - 'uix:InvalidPropertyValue', ... - 'Size of property ''HorizontalOffsets'' must match size of contents.' ) - - % Set - sliders = obj.HorizontalSliders; - widths = obj.Widths_; - for ii = 1:numel( sliders ) - if widths(ii) > 0 - sliders(ii).Value = value(ii); - end - end - - % Mark as dirty - obj.Dirty = true; - - end % set.HorizontalOffsets - - function value = get.HorizontalSteps( obj ) - - value = obj.HorizontalSteps_; - - end % get.HorizontalSteps - - function set.HorizontalSteps( obj, value ) - - % For those who can't tell a column from a row... - if isrow( value ) - value = transpose( value ); - end - - % Check - assert( isa( value, 'double' ), 'uix:InvalidPropertyValue', ... - 'Property ''HorizontalSteps'' must be of type double.' ) - assert( all( isreal( value ) ) && ~any( isinf( value ) ) && ... - ~any( isnan( value ) ) && all( value > 0 ), ... - 'uix:InvalidPropertyValue', ... - 'Elements of property ''HorizontalSteps'' must be real, finite and positive.' ) - assert( isequal( size( value ), size( obj.Contents_ ) ), ... - 'uix:InvalidPropertyValue', ... - 'Size of property ''HorizontalSteps'' must match size of contents.' ) - - % Set - obj.HorizontalSteps_ = value; - - % Mark as dirty - obj.Dirty = true; - - end % set.HorizontalSteps - - function value = get.MouseWheelEnabled( obj ) - - value = obj.MouseWheelEnabled_; - - end % get.MouseWheelEnabled - - function set.MouseWheelEnabled( obj, value ) - - assert( ischar( value ) && any( strcmp( value, {'on','off'} ) ), ... - 'uix:InvalidArgument', ... - 'Property ''MouseWheelEnabled'' must ''on'' or ''off''.' ) - listener = obj.MouseWheelListener; - if ~isempty( listener ) - listener.Enabled = strcmp( value, 'on' ); - end - obj.MouseWheelEnabled_ = value; - - end % set.MouseWheelEnabled - - end % accessors - - methods( Access = protected ) - - function redraw( obj ) - %redraw Redraw - - % Return if no contents - selection = obj.Selection_; - if selection == 0, return, end - - % Retrieve width and height of selected contents - contentsWidth = obj.Widths_(selection); - minimumWidth = obj.MinimumWidths_(selection); - contentsHeight = obj.Heights_(selection); - minimumHeight = obj.MinimumHeights_(selection); - - % Retrieve selected contents and corresponding decorations - child = obj.Contents_(selection); - vSlider = obj.VerticalSliders(selection); - hSlider = obj.HorizontalSliders(selection); - plate = obj.BlankingPlates(selection); - - % Compute dimensions - bounds = hgconvertunits( ancestor( obj, 'figure' ), ... - [0 0 1 1], 'normalized', 'pixels', obj ); - width = bounds(3); - height = bounds(4); - sliderSize = obj.SliderSize; % slider size - vSliderWidth = sliderSize * ... - (contentsHeight > height | ... - minimumHeight > height); % first pass - hSliderHeight = sliderSize * ... - (contentsWidth > width - vSliderWidth | ... - minimumWidth > width - vSliderWidth); - vSliderWidth = sliderSize * ... - (contentsHeight > height - hSliderHeight | ... - minimumHeight > height - hSliderHeight); % second pass - vSliderWidth = min( vSliderWidth, width ); % limit - hSliderHeight = min( hSliderHeight, height ); % limit - vSliderHeight = height - hSliderHeight; - hSliderWidth = width - vSliderWidth; - widths = uix.calcPixelSizes( width, ... - [contentsWidth;vSliderWidth], ... - [minimumWidth;vSliderWidth], 0, 0 ); - contentsWidth = widths(1); % to be offset - heights = uix.calcPixelSizes( height, ... - [contentsHeight;hSliderHeight], ... - [minimumHeight;hSliderHeight], 0, 0 ); - contentsHeight = heights(1); % to be offset - - % Compute positions - contentsPosition = [1 1+hSliderHeight+vSliderHeight-contentsHeight contentsWidth contentsHeight]; - vSliderPosition = [1+hSliderWidth 1+hSliderHeight vSliderWidth vSliderHeight]; - hSliderPosition = [1 1 hSliderWidth hSliderHeight]; - platePosition = [1+hSliderWidth 1 vSliderWidth hSliderHeight]; - - % Compute and set vertical slider properties - if vSliderWidth == 0 || vSliderHeight == 0 || vSliderHeight <= vSliderWidth - % Slider is invisible or incorrectly oriented - set( vSlider, 'Style', 'text', 'Enable', 'inactive', ... - 'Position', vSliderPosition, ... - 'Min', 0, 'Max', 1, 'Value', 1 ) - else - % Compute properties - vSliderMin = 0; - vSliderMax = contentsHeight - vSliderHeight; - vSliderValue = -vSlider.Value; % negative sign convention - vSliderValue = max( vSliderValue, vSliderMin ); % limit - vSliderValue = min( vSliderValue, vSliderMax ); % limit - vStep = obj.VerticalSteps_(selection); - vSliderStep(1) = min( vStep / vSliderMax, 1 ); - vSliderStep(2) = max( vSliderHeight / vSliderMax, vSliderStep(1) ); - contentsPosition(2) = contentsPosition(2) + vSliderValue; - % Set properties - set( vSlider, 'Style', 'slider', 'Enable', 'on', ... - 'Position', vSliderPosition, ... - 'Min', -vSliderMax, 'Max', -vSliderMin, ... - 'Value', -vSliderValue, 'SliderStep', vSliderStep ) - end - - % Compute and set horizontal slider properties - if hSliderHeight == 0 || hSliderWidth == 0 || hSliderWidth <= hSliderHeight - % Slider is invisible or incorrectly oriented - set( hSlider, 'Style', 'text', 'Enable', 'inactive', ... - 'Position', hSliderPosition, ... - 'Min', -1, 'Max', 0, 'Value', -1 ) - else - % Compute properties - hSliderMin = 0; - hSliderMax = contentsWidth - hSliderWidth; - hSliderValue = hSlider.Value; % positive sign convention - hSliderValue = max( hSliderValue, hSliderMin ); % limit - hSliderValue = min( hSliderValue, hSliderMax ); % limit - hStep = obj.HorizontalSteps_(selection); - hSliderStep(1) = min( hStep / hSliderMax, 1 ); - hSliderStep(2) = max( hSliderWidth / hSliderMax, hSliderStep(1) ); - contentsPosition(1) = contentsPosition(1) - hSliderValue; - % Set properties - set( hSlider, 'Style', 'slider', 'Enable', 'on', ... - 'Position', hSliderPosition, ... - 'Min', hSliderMin, 'Max', hSliderMax, ... - 'Value', hSliderValue, 'SliderStep', hSliderStep ) - end - - % Set contents and blanking plate positions - uix.setPosition( child, contentsPosition, 'pixels' ) - set( plate, 'Position', platePosition ) - - end % redraw - - function addChild( obj, child ) - %addChild Add child - % - % c.addChild(d) adds the child d to the container c. - - % Add to sizes - obj.Widths_(end+1,:) = -1; - obj.MinimumWidths_(end+1,:) = -1; - obj.Heights_(end+1,:) = -1; - obj.MinimumHeights_(end+1,:) = -1; - obj.VerticalSliders(end+1,:) = uicontrol( ... - 'Internal', true, 'Parent', obj, 'Units', 'pixels', ... - 'Style', 'slider' ); - obj.HorizontalSliders(end+1,:) = uicontrol( ... - 'Internal', true, 'Parent', obj, 'Units', 'pixels', ... - 'Style', 'slider' ); - obj.BlankingPlates(end+1,:) = uicontrol( ... - 'Internal', true, 'Parent', obj, 'Units', 'pixels', ... - 'Style', 'text', 'Enable', 'inactive' ); - obj.VerticalSteps_(end+1,:) = obj.SliderStep; - obj.HorizontalSteps_(end+1,:) = obj.SliderStep; - obj.updateSliderListener() - - % Call superclass method - addChild@uix.mixin.Panel( obj, child ) - - end % addChild - - function removeChild( obj, child ) - %removeChild Remove child - % - % c.removeChild(d) removes the child d from the container c. - - % Remove from sizes - tf = obj.Contents_ == child; - obj.Widths_(tf,:) = []; - obj.MinimumWidths_(tf,:) = []; - obj.Heights_(tf,:) = []; - obj.MinimumHeights_(tf,:) = []; - obj.VerticalSliders(tf,:) = []; - obj.HorizontalSliders(tf,:) = []; - obj.BlankingPlates(tf,:) = []; - obj.VerticalSteps_(tf,:) = []; - obj.HorizontalSteps_(tf,:) = []; - obj.updateSliderListener() - - % Call superclass method - removeChild@uix.mixin.Panel( obj, child ) - - end % removeChild - - function reparent( obj, ~, newFigure ) - %reparent Reparent container - % - % c.reparent(a,b) reparents the container c from the figure a - % to the figure b. - - if isempty( newFigure ) - obj.MouseWheelListener = []; - else - listener = event.listener( newFigure, ... - 'WindowScrollWheel', @obj.onMouseScrolled ); - listener.Enabled = strcmp( obj.MouseWheelEnabled_, 'on' ); - obj.MouseWheelListener = listener; - end - - end % reparent - - function reorder( obj, indices ) - %reorder Reorder contents - % - % c.reorder(i) reorders the container contents using indices - % i, c.Contents = c.Contents(i). - - % Reorder - obj.Widths_ = obj.Widths_(indices,:); - obj.MinimumWidths_ = obj.MinimumWidths_(indices,:); - obj.Heights_ = obj.Heights_(indices,:); - obj.MinimumHeights_ = obj.MinimumWidths_(indices,:); - obj.VerticalSliders = obj.VerticalSliders(indices,:); - obj.HorizontalSliders = obj.HorizontalSliders(indices,:); - obj.BlankingPlates = obj.BlankingPlates(indices,:); - obj.VerticalSteps_ = obj.VerticalSteps_(indices,:); - obj.HorizontalSteps_ = obj.HorizontalSteps_(indices,:); - - % Call superclass method - reorder@uix.mixin.Panel( obj, indices ) - - end % reorder - - function showSelection( obj ) - %showSelection Show selected child, hide the others - % - % c.showSelection() shows the selected child of the container - % c, and hides the others. - - % Call superclass method - showSelection@uix.mixin.Panel( obj ) - - % Show and hide sliders based on selection - selection = obj.Selection_; - for ii = 1:numel( obj.Contents_ ) - if ii == selection - obj.VerticalSliders(ii).Visible = 'on'; - obj.HorizontalSliders(ii).Visible = 'on'; - obj.BlankingPlates(ii).Visible = 'on'; - else - obj.VerticalSliders(ii).Visible = 'off'; - obj.HorizontalSliders(ii).Visible = 'off'; - obj.BlankingPlates(ii).Visible = 'off'; - end - end - - end % showSelection - - end % template methods - - methods( Access = private ) - - function onSliderValueChanged( obj, ~, ~ ) - %onSliderValueChanged Event handler - - % Mark as dirty - obj.Dirty = true; - - end % onSliderValueChanged - - function onMouseScrolled( obj, ~, eventData ) - %onMouseScrolled Event handler - - sel = obj.Selection_; - if sel == 0 - return - else - % Get pointer position and panel bounds - pp = getpixelposition( obj, true ); - f = ancestor( obj, 'figure' ); - cp = f.CurrentPoint; - % Check that pointer is over panel - if cp(1) < pp(1) || cp(1) > pp(1) + pp(3) || ... - cp(2) < pp(2) || cp(2) > pp(2) + pp(4), return, end - % Compute delta - delta = eventData.VerticalScrollCount * ... - eventData.VerticalScrollAmount * obj.VerticalSteps(sel); - % Scroll - if obj.Heights_(sel) > 0 % scroll vertically - obj.VerticalOffsets(sel) = obj.VerticalOffsets(sel) + delta; - elseif obj.Widths_(sel) > 0 % scroll horizontally - obj.HorizontalOffsets(sel) = obj.HorizontalOffsets(sel) + delta; - end - end - - end % onMouseScrolled - - end % event handlers - - methods( Access = private ) - - function updateSliderListener( obj ) - %updateSliderListener Update listener to slider events - - if isempty( obj.VerticalSliders ) - obj.SliderListener = []; - else - obj.SliderListener = event.listener( ... - [obj.VerticalSliders; obj.HorizontalSliders], ... - 'ContinuousValueChange', @obj.onSliderValueChanged ); - end - - end % updateSliderListener - - end % helpers - -end % classdef \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/SelectionData.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/SelectionData.m deleted file mode 100644 index b52dd69..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/SelectionData.m +++ /dev/null @@ -1,31 +0,0 @@ -classdef( Hidden, Sealed ) SelectionData < event.EventData - %uix.SelectionData Event data for selection event - % - % e = uix.SelectionData(o,n) creates event data including the old - % value o and the new value n. - - % Copyright 2009-2015 The MathWorks, Inc. - % $Revision: 1165 $ $Date: 2015-12-06 03:09:17 -0500 (Sun, 06 Dec 2015) $ - - properties( SetAccess = private ) - OldValue % old value - NewValue % newValue - end - - methods - - function obj = SelectionData( oldValue, newValue ) - %uix.SelectionData Event data for selection event - % - % e = uix.SelectionData(o,n) creates event data including the - % old value o and the new value n. - - % Set properties - obj.OldValue = oldValue; - obj.NewValue = newValue; - - end % constructor - - end % structors - -end % classdef \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/TabPanel.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/TabPanel.m deleted file mode 100644 index 95f60fd..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/TabPanel.m +++ /dev/null @@ -1,951 +0,0 @@ -classdef TabPanel < uix.Container & uix.mixin.Panel - %uix.TabPanel Tab panel - % - % p = uix.TabPanel(p1,v1,p2,v2,...) constructs a tab panel and sets - % parameter p1 to value v1, etc. - % - % A tab panel shows one of its contents and hides the others according - % to which tab is selected. - % - % From R2014b, MATLAB provides uitabgroup and uitab as standard - % components. Consider using uitabgroup and uitab for new code if - % these meet your requirements. - % - % See also: uitabgroup, uitab, uix.CardPanel - - % Copyright 2009-2016 The MathWorks, Inc. - % $Revision: 1436 $ $Date: 2016-11-17 17:53:29 +0000 (Thu, 17 Nov 2016) $ - - properties( Access = public, Dependent, AbortSet ) - FontAngle % font angle - FontName % font name - FontSize % font size - FontWeight % font weight - FontUnits % font weight - ForegroundColor % tab text color [RGB] - HighlightColor % border highlight color [RGB] - ShadowColor % border shadow color [RGB] - end - - properties - SelectionChangedFcn = '' % selection change callback - end - - properties( Access = public, Dependent, AbortSet ) - TabEnables % tab enable states - TabLocation % tab location [top|bottom] - TabTitles % tab titles - TabContextMenus % tab context menus - TabWidth % tab width - end - - properties( Access = private ) - FontAngle_ = get( 0, 'DefaultUicontrolFontAngle' ) % backing for FontAngle - FontName_ = get( 0, 'DefaultUicontrolFontName' ) % backing for FontName - FontSize_ = get( 0, 'DefaultUicontrolFontSize' ) % backing for FontSize - FontWeight_ = get( 0, 'DefaultUicontrolFontWeight' ) % backing for FontWeight - FontUnits_ = get( 0, 'DefaultUicontrolFontUnits' ) % backing for FontUnits - ForegroundColor_ = get( 0, 'DefaultUicontrolForegroundColor' ) % backing for ForegroundColor - HighlightColor_ = [1 1 1] % backing for HighlightColor - ShadowColor_ = [0.7 0.7 0.7] % backing for ShadowColor - ParentBackgroundColor = get( 0, 'DefaultUicontrolForegroundColor' ) % default parent background color - Tabs = gobjects( [0 1] ) % tabs - TabListeners = event.listener.empty( [0 1] ) % tab listeners - TabLocation_ = 'top' % backing for TabPosition - TabHeight = -1 % cache of tab height (-1 denotes stale cache) - TabWidth_ = 50 % backing for TabWidth - Dividers % tab dividers - BackgroundColorListener % listener - SelectionChangedListener % listener - ParentListener % listener - ParentBackgroundColorListener % listener - end - - properties( Access = private, Constant ) - FontNames = listfonts() % all available font names - DividerMask = uix.TabPanel.getDividerMask() % divider image data - DividerWidth = 8 % divider width - TabMinimumHeight = 9 % tab minimum height - Tint = 0.85 % tint factor for unselected tabs - end - - methods - - function obj = TabPanel( varargin ) - %uix.TabPanel Tab panel constructor - % - % p = uix.TabPanel() constructs a tab panel. - % - % p = uix.TabPanel(p1,v1,p2,v2,...) sets parameter p1 to value - % v1, etc. - - % Create dividers - dividers = matlab.ui.control.UIControl( 'Internal', true, ... - 'Parent', obj, 'Units', 'pixels', 'Style', 'checkbox',... - 'Tag', 'TabPanelDividers' ); - - % Create listeners - backgroundColorListener = event.proplistener( obj, ... - findprop( obj, 'BackgroundColor' ), 'PostSet', ... - @obj.onBackgroundColorChange ); - selectionChangedListener = event.listener( obj, ... - 'SelectionChanged', @obj.onSelectionChanged ); - parentListener = event.proplistener( obj, ... - findprop( obj, 'Parent' ), 'PostSet', ... - @obj.onParentChanged ); - - % Store properties - obj.Dividers = dividers; - obj.BackgroundColorListener = backgroundColorListener; - obj.SelectionChangedListener = selectionChangedListener; - obj.ParentListener = parentListener; - - % Set properties - if nargin > 0 - try - assert( rem( nargin, 2 ) == 0, 'uix:InvalidArgument', ... - 'Parameters and values must be provided in pairs.' ) - set( obj, varargin{:} ) - catch e - delete( obj ) - e.throwAsCaller() - end - end - - end % constructor - - end % structors - - methods - - function value = get.FontAngle( obj ) - - value = obj.FontAngle_; - - end % get.FontAngle - - function set.FontAngle( obj, value ) - - % Check - assert( ischar( value ) && any( strcmp( value, {'normal','italic','oblique'} ) ), ... - 'uix:InvalidPropertyValue', ... - 'Property ''FontAngle'' must be ''normal'', ''italic'' or ''oblique''.' ) - - % Set - obj.FontAngle_ = value; - - % Update existing tabs - tabs = obj.Tabs; - n = numel( tabs ); - for ii = 1:n - tab = tabs(ii); - tab.FontAngle = value; - end - - % Mark as dirty - obj.TabHeight = -1; - obj.Dirty = true; - - end % set.FontAngle - - function value = get.FontName( obj ) - - value = obj.FontName_; - - end % get.FontName - - function set.FontName( obj, value ) - - % Check - assert( ischar( value ) && any( strcmp( value, obj.FontNames ) ), ... - 'uix:InvalidPropertyValue', ... - 'Property ''FontName'' must be a valid font name.' ) - - % Set - obj.FontName_ = value; - - % Update existing tabs - tabs = obj.Tabs; - n = numel( tabs ); - for ii = 1:n - tab = tabs(ii); - tab.FontName = value; - end - - % Mark as dirty - obj.TabHeight = -1; - obj.Dirty = true; - - end % set.FontName - - function value = get.FontSize( obj ) - - value = obj.FontSize_; - - end % get.FontSize - - function set.FontSize( obj, value ) - - % Check - assert( isa( value, 'double' ) && isscalar( value ) && ... - isreal( value ) && ~isinf( value ) && ... - ~isnan( value ) && value > 0, ... - 'uix:InvalidPropertyValue', ... - 'Property ''FontSize'' must be a positive scalar.' ) - - % Set - obj.FontSize_ = value; - - % Update existing tabs - tabs = obj.Tabs; - n = numel( tabs ); - for ii = 1:n - tab = tabs(ii); - tab.FontSize = value; - end - - % Mark as dirty - obj.TabHeight = -1; - obj.Dirty = true; - - end % set.FontSize - - function value = get.FontWeight( obj ) - - value = obj.FontWeight_; - - end % get.FontWeight - - function set.FontWeight( obj, value ) - - % Check - assert( ischar( value ) && any( strcmp( value, {'normal','bold'} ) ), ... - 'uix:InvalidPropertyValue', ... - 'Property ''FontWeight'' must be ''normal'' or ''bold''.' ) - - % Set - obj.FontWeight_ = value; - - % Update existing tabs - tabs = obj.Tabs; - n = numel( tabs ); - for ii = 1:n - tab = tabs(ii); - tab.FontWeight = value; - end - - % Mark as dirty - obj.TabHeight = -1; - obj.Dirty = true; - - end % set.FontWeight - - function value = get.FontUnits( obj ) - - value = obj.FontUnits_; - - end % get.FontUnits - - function set.FontUnits( obj, value ) - - % Check - assert( ischar( value ) && ... - any( strcmp( value, {'inches','centimeters','points','pixels'} ) ), ... - 'uix:InvalidPropertyValue', ... - 'Property ''FontUnits'' must be ''inches'', ''centimeters'', ''points'' or ''pixels''.' ) - - % Compute size in new units - oldUnits = obj.FontUnits_; - oldSize = obj.FontSize_; - newUnits = value; - newSize = oldSize * convert( oldUnits ) / convert( newUnits ); - - % Set size and units - obj.FontSize_ = newSize; - obj.FontUnits_ = newUnits; - - % Update existing tabs - tabs = obj.Tabs; - n = numel( tabs ); - for ii = 1:n - tab = tabs(ii); - tab.FontUnits = newUnits; - end - - % Mark as dirty - obj.TabHeight = -1; - obj.Dirty = true; - - function factor = convert( units ) - %convert Compute conversion factor to points - % - % f = convert(u) computes the conversion factor from units - % u to points. For example, convert('inches') since 1 - % inch equals 72 points. - - persistent SCREEN_PIXELS_PER_INCH - if isequal( SCREEN_PIXELS_PER_INCH, [] ) % uninitialized - SCREEN_PIXELS_PER_INCH = get( 0, 'ScreenPixelsPerInch' ); - end - - switch units - case 'inches' - factor = 72; - case 'centimeters' - factor = 72 / 2.54; - case 'points' - factor = 1; - case 'pixels' - factor = 72 / SCREEN_PIXELS_PER_INCH; - end - - end % convert - - end % set.FontUnits - - function value = get.ForegroundColor( obj ) - - value = obj.ForegroundColor_; - - end % get.ForegroundColor - - function set.ForegroundColor( obj, value ) - - % Check - assert( isnumeric( value ) && isequal( size( value ), [1 3] ) && ... - all( isreal( value ) ) && all( value >= 0 ) && all( value <= 1 ), ... - 'uix:InvalidPropertyValue', ... - 'Property ''ForegroundColor'' must be an RGB triple.' ) - - % Set - obj.ForegroundColor_ = value; - - % Update existing tabs - tabs = obj.Tabs; - n = numel( tabs ); - for ii = 1:n - tab = tabs(ii); - tab.ForegroundColor = value; - end - - end % set.ForegroundColor - - function value = get.HighlightColor( obj ) - - value = obj.HighlightColor_; - - end % get.HighlightColor - - function set.HighlightColor( obj, value ) - - % Check - assert( isnumeric( value ) && isequal( size( value ), [1 3] ) && ... - all( isreal( value ) ) && all( value >= 0 ) && all( value <= 1 ), ... - 'uix:InvalidPropertyValue', ... - 'Property ''HighlightColor'' must be an RGB triple.' ) - - % Set - obj.HighlightColor_ = value; - - % Mark as dirty - obj.Dirty = true; - - end % set.HighlightColor - - function set.SelectionChangedFcn( obj, value ) - - % Check - if ischar( value ) % string - % OK - elseif isa( value, 'function_handle' ) && ... - isequal( size( value ), [1 1] ) % function handle - % OK - elseif iscell( value ) && ndims( value ) == 2 && ... - size( value, 1 ) == 1 && size( value, 2 ) > 0 && ... - isa( value{1}, 'function_handle' ) && ... - isequal( size( value{1} ), [1 1] ) %#ok % cell callback - % OK - else - error( 'uix:InvalidPropertyValue', ... - 'Property ''SelectionChangedFcn'' must be a valid callback.' ) - end - - % Set - obj.SelectionChangedFcn = value; - - end % set.SelectionChangedFcn - - function value = get.ShadowColor( obj ) - - value = obj.ShadowColor_; - - end % get.ShadowColor - - function set.ShadowColor( obj, value ) - - % Check - assert( isnumeric( value ) && isequal( size( value ), [1 3] ) && ... - all( isreal( value ) ) && all( value >= 0 ) && all( value <= 1 ), ... - 'uix:InvalidPropertyValue', ... - 'Property ''ShadowColor'' must be an RGB triple.' ) - - % Set - obj.ShadowColor_ = value; - - % Mark as dirty - obj.Dirty = true; - - end % set.ShadowColor - - function value = get.TabEnables( obj ) - - value = get( obj.Tabs, {'Enable'} ); - value(strcmp( value, 'inactive' )) = {'on'}; - - end % get.TabEnables - - function set.TabEnables( obj, value ) - - % For those who can't tell a column from a row... - if isrow( value ) - value = transpose( value ); - end - - % Retrieve tabs - tabs = obj.Tabs; - tabListeners = obj.TabListeners; - - % Check - assert( iscellstr( value ) && ... - isequal( size( value ), size( tabs ) ) && ... - all( strcmp( value, 'on' ) | strcmp( value, 'off' ) ), ... - 'uix:InvalidPropertyValue', ... - 'Property ''TabEnables'' should be a cell array of strings ''on'' or ''off'', one per tab.' ) - - % Set - tf = strcmp( value, 'on' ); - value(tf) = {'inactive'}; - for ii = 1:numel( tabs ) - tabs(ii).Enable = value{ii}; - tabListeners(ii).Enabled = tf(ii); - end - - % Show selected child - obj.showSelection() - - % Mark as dirty - obj.Dirty = true; - - end % set.TabEnables - - function value = get.TabLocation( obj ) - - value = obj.TabLocation_; - - end % get.TabLocation - - function set.TabLocation( obj, value ) - - % Check - assert( ischar( value ) && ... - any( strcmp( value, {'top','bottom'} ) ), ... - 'uix:InvalidPropertyValue', ... - 'Property ''TabLocation'' should be ''top'' or ''bottom''.' ) - - % Set - obj.TabLocation_ = value; - - % Mark as dirty - obj.Dirty = true; - - end % set.TabLocation - - function value = get.TabTitles( obj ) - - value = get( obj.Tabs, {'String'} ); - - end % get.TabTitles - - function set.TabTitles( obj, value ) - - % For those who can't tell a column from a row... - if isrow( value ) - value = transpose( value ); - end - - % Retrieve tabs - tabs = obj.Tabs; - - % Check - assert( iscellstr( value ) && ... - isequal( size( value ), size( tabs ) ), ... - 'uix:InvalidPropertyValue', ... - 'Property ''TabTitles'' should be a cell array of strings, one per tab.' ) - - % Set - n = numel( tabs ); - for ii = 1:n - tabs(ii).String = value{ii}; - end - - % Mark as dirty - obj.TabHeight = -1; - obj.Dirty = true; - - end % set.TabTitles - - function value = get.TabContextMenus( obj ) - - tabs = obj.Tabs; - n = numel( tabs ); - value = cell( [n 1] ); - for ii = 1:n - value{ii} = tabs(ii).UIContextMenu; - end - - end % get.TabContextMenus - - function set.TabContextMenus( obj, value ) - - tabs = obj.Tabs; - n = numel( tabs ); - for ii = 1:n - tabs(ii).UIContextMenu = value{ii}; - end - - end % set.TabContextMenus - - function value = get.TabWidth( obj ) - - value = obj.TabWidth_; - - end % get.TabWidth - - function set.TabWidth( obj, value ) - - % Check - assert( isa( value, 'double' ) && isscalar( value ) && ... - isreal( value ) && ~isinf( value ) && ... - ~isnan( value ) && value ~= 0, ... - 'uix:InvalidPropertyValue', ... - 'Property ''TabWidth'' must be a non-zero scalar.' ) - - % Set - obj.TabWidth_ = value; - - % Mark as dirty - obj.Dirty = true; - - end % set.TabWidth - - end % accessors - - methods( Access = protected ) - - function redraw( obj ) - - % Compute positions - bounds = hgconvertunits( ancestor( obj, 'figure' ), ... - [0 0 1 1], 'normalized', 'pixels', obj ); - w = ceil( bounds(1) + bounds(3) ) - floor( bounds(1) ); % width - h = ceil( bounds(2) + bounds(4) ) - floor( bounds(2) ); % height - p = obj.Padding_; % padding - tabs = obj.Tabs; - n = numel( tabs ); % number of tabs - tH = obj.TabHeight; % tab height - if tH == -1 % cache stale, refresh - if n > 0 - cTabExtents = get( tabs, {'Extent'} ); - tabExtents = vertcat( cTabExtents{:} ); - tH = max( tabExtents(:,4) ); - end - tH = max( tH, obj.TabMinimumHeight ); % apply minimum - tH = ceil( tH ); % round up - obj.TabHeight = tH; % store - end - cH = max( [h - 2 * p - tH, 1] ); % contents height - switch obj.TabLocation_ - case 'top' - cY = 1 + p; % contents y - tY = cY + cH + p; % tab y - case 'bottom' - tY = 1; % tab y - cY = tY + tH + p; % contents y - end - cX = 1 + p; % contents x - cW = max( [w - 2 * p, 1] ); % contents width - tW = obj.TabWidth_; % tab width - dW = obj.DividerWidth; % tab divider width - if tW < 0 && n > 0 % relative - tW = max( ( w - (n+1) * dW ) / n, 1 ); - end - tW = ceil( tW ); % round up - for ii = 1:n - tabs(ii).Position = [1 + (ii-1) * tW + ii * dW, tY, tW, tH]; - end - obj.Dividers.Position = [0 tY w+1 tH]; - contentsPosition = [cX cY cW cH]; - - % Redraw tabs - obj.redrawTabs() - - % Redraw contents - selection = obj.Selection_; - if selection ~= 0 && strcmp( obj.TabEnables{selection}, 'on' ) - uix.setPosition( obj.Contents_(selection), contentsPosition, 'pixels' ) - end - - end % redraw - - function addChild( obj, child ) - %addChild Add child - % - % c.addChild(d) adds the child d to the container c. - - % Create new tab - n = numel( obj.Tabs ); - tab = matlab.ui.control.UIControl( 'Internal', true, ... - 'Parent', obj, 'Style', 'text', 'Enable', 'inactive', ... - 'Units', 'pixels', 'FontUnits', obj.FontUnits_, ... - 'FontSize', obj.FontSize_, 'FontName', obj.FontName_, ... - 'FontAngle', obj.FontAngle_, 'FontWeight', obj.FontWeight_, ... - 'ForegroundColor', obj.ForegroundColor_, ... - 'String', sprintf( 'Page %d', n + 1 ) ); - tabListener = event.listener( tab, 'ButtonDown', @obj.onTabClicked ); - obj.Tabs(n+1,:) = tab; - obj.TabListeners(n+1,:) = tabListener; - - % Mark as dirty - obj.TabHeight = -1; - - % Check for bug - if verLessThan( 'MATLAB', '8.5' ) && strcmp( child.Visible, 'off' ) - obj.G1218142 = true; - end - - % Select new content - oldSelection = obj.Selection_; - if numel( obj.Contents_ ) == 0 - newSelection = 1; - obj.Selection_ = newSelection; - else - newSelection = oldSelection; - end - - % Call superclass method - addChild@uix.mixin.Container( obj, child ) - - % Show selected child - obj.showSelection() - - % Notify selection change - if oldSelection ~= newSelection - obj.notify( 'SelectionChanged', ... - uix.SelectionData( oldSelection, newSelection ) ) - end - - end % addChild - - function removeChild( obj, child ) - %removeChild Remove child - % - % c.removeChild(d) removes the child d from the container c. - - % Find index of removed child - contents = obj.Contents_; - index = find( contents == child ); - - % Remove tab - delete( obj.Tabs(index) ) - obj.Tabs(index,:) = []; - obj.TabListeners(index,:) = []; - - % Call superclass method - removeChild@uix.mixin.Panel( obj, child ) - - end % removeChild - - function reorder( obj, indices ) - %reorder Reorder contents - % - % c.reorder(i) reorders the container contents using indices - % i, c.Contents = c.Contents(i). - - % Reorder - obj.Tabs = obj.Tabs(indices,:); - obj.TabListeners = obj.TabListeners(indices,:); - - % Call superclass method - reorder@uix.mixin.Panel( obj, indices ) - - end % reorder - - function reparent( obj, oldFigure, newFigure ) - %reparent Reparent container - % - % c.reparent(a,b) reparents the container c from the figure a - % to the figure b. - - if ~isequal( oldFigure, newFigure ) - contextMenus = obj.TabContextMenus; - for ii = 1:numel( contextMenus ) - contextMenu = contextMenus{ii}; - if ~isempty( contextMenu ) - contextMenu.Parent = newFigure; - end - end - end - - % Call superclass method - reparent@uix.mixin.Panel( obj, oldFigure, newFigure ) - - end % reparent - - function showSelection( obj ) - %showSelection Show selected child, hide the others - % - % c.showSelection() shows the selected child of the container - % c, and hides the others. - - % Call superclass method - showSelection@uix.mixin.Panel( obj ) - - % If not enabled, hide selected contents too - selection = obj.Selection_; - if selection ~= 0 && strcmp( obj.TabEnables{selection}, 'off' ) - child = obj.Contents_(selection); - child.Visible = 'off'; - if isa( child, 'matlab.graphics.axis.Axes' ) - child.ContentsVisible = 'off'; - end - % As a remedy for g1100294, move off-screen too - margin = 1000; - if isa( child, 'matlab.graphics.axis.Axes' ) ... - && strcmp(child.ActivePositionProperty, 'outerposition' ) - child.OuterPosition(1) = -child.OuterPosition(3)-margin; - else - child.Position(1) = -child.Position(3)-margin; - end - end - - end % showSelection - - end % template methods - - methods( Access = private ) - - function redrawTabs( obj ) - %redrawTabs Redraw tabs - % - % p.redrawTabs() redraws the tabs. - - % Get relevant properties - selection = obj.Selection_; - tabs = obj.Tabs; - t = numel( tabs ); - dividers = obj.Dividers; - - % Handle no tabs as a special case - if t == 0 - dividers.Visible = 'off'; % hide - return - end - - % Repaint tabs - backgroundColor = obj.BackgroundColor; - for ii = 1:t - tab = tabs(ii); - if ii == selection - tab.BackgroundColor = backgroundColor; - else - tab.BackgroundColor = obj.Tint * backgroundColor; - end - end - - % Repaint dividers - d = t + 1; - dividerNames = repmat( 'F', [d 2] ); % initialize - dividerNames(1,1) = 'E'; % end - dividerNames(end,2) = 'E'; % end - if selection ~= 0 - dividerNames(selection,2) = 'T'; % selected - dividerNames(selection+1,1) = 'T'; % selected - end - tH = obj.TabHeight; - assert( tH >= obj.TabMinimumHeight, 'uix:InvalidState', ... - 'Cannot redraw tabs with invalid TabHeight.' ) - tW = obj.Tabs(1).Position(3); - dW = obj.DividerWidth; - allCData = zeros( [tH 0 3] ); % initialize - map = [obj.ShadowColor; obj.BackgroundColor; ... - obj.Tint * obj.BackgroundColor; obj.HighlightColor;... - obj.ParentBackgroundColor]; - for ii = 1:d - % Select mask - iMask = obj.DividerMask.( dividerNames(ii,:) ); - % Resize - iData = repmat( iMask(5,:), [tH 1] ); - iData(1:4,:) = iMask(1:4,:); - iData(end-3:end,:) = iMask(end-3:end,:); - % Convert to RGB - cData = ind2rgb( iData+1, map ); - % Orient - switch obj.TabLocation_ - case 'bottom' - cData = flipud( cData ); - end - % Insert - allCData(1:tH,(ii-1)*(dW+tW)+(1:dW),:) = cData; % center - if ii > 1 % extend left under transparent uicontrol edge - allCData(1:tH,(ii-1)*(dW+tW),:) = cData(:,1,:); - end - if ii < d % extend right under transparent uicontrol edge - allCData(1:tH,(ii-1)*(dW+tW)+dW+1,:) = cData(:,end,:); - end - end - dividers.CData = allCData; % paint - dividers.BackgroundColor = obj.ParentBackgroundColor; - dividers.Visible = 'on'; % show - - end % redrawTabs - - end % helper methods - - methods( Access = private ) - - function onTabClicked( obj, source, ~ ) - - % Update selection - oldSelection = obj.Selection_; - newSelection = find( source == obj.Tabs ); - if oldSelection == newSelection, return, end % abort set - obj.Selection_ = newSelection; - - % Show selected child - obj.showSelection() - - % Mark as dirty - obj.Dirty = true; - - % Notify selection change - obj.notify( 'SelectionChanged', ... - uix.SelectionData( oldSelection, newSelection ) ) - - end % onTabClicked - - function onBackgroundColorChange( obj, ~, ~ ) - - % Mark as dirty - obj.Dirty = true; - - end % onBackgroundColorChange - - function onSelectionChanged( obj, source, eventData ) - - % Call callback - callback = obj.SelectionChangedFcn; - if ischar( callback ) && isequal( callback, '' ) - % do nothing - elseif ischar( callback ) - feval( callback, source, eventData ) - elseif isa( callback, 'function_handle' ) - callback( source, eventData ) - elseif iscell( callback ) - feval( callback{1}, source, eventData, callback{2:end} ) - end - - end % onSelectionChanged - - function onParentChanged( obj, ~, ~ ) - - % Update ParentBackgroundColor and ParentBackgroundColor - if isprop( obj.Parent, 'BackgroundColor' ) - prop = 'BackgroundColor'; - elseif isprop( obj.Parent, 'Color' ) - prop = 'Color'; - else - prop = []; - end - - if ~isempty( prop ) - obj.ParentBackgroundColorListener = event.proplistener( obj.Parent, ... - findprop( obj.Parent, prop ), 'PostSet', ... - @( src, evt ) obj.updateParentBackgroundColor( prop ) ); - else - obj.ParentBackgroundColorListener = []; - end - - obj.updateParentBackgroundColor( prop ); - - end % onParentChanged - - function updateParentBackgroundColor( obj, prop ) - - if isempty( prop ) - obj.ParentBackgroundColor = obj.BackgroundColor; - else - obj.ParentBackgroundColor = obj.Parent.(prop); - end - - % Mark as dirty - obj.Dirty = true; - - end - - end % event handlers - - methods( Access = private, Static ) - - function mask = getDividerMask() - %getDividerMask Get divider image data - % - % m = uix.TabPanel.getDividerMask() returns the image masks - % for tab panel dividers. Mask entries are 0 (shadow), 1 - % (background), 2 (tint) and 3 (highlight). - - mask.EF = indexColor( uix.loadIcon( 'tab_NoEdge_NotSelected.png' ) ); - mask.ET = indexColor( uix.loadIcon( 'tab_NoEdge_Selected.png' ) ); - mask.FE = indexColor( uix.loadIcon( 'tab_NotSelected_NoEdge.png' ) ); - mask.FF = indexColor( uix.loadIcon( 'tab_NotSelected_NotSelected.png' ) ); - mask.FT = indexColor( uix.loadIcon( 'tab_NotSelected_Selected.png' ) ); - mask.TE = indexColor( uix.loadIcon( 'tab_Selected_NoEdge.png' ) ); - mask.TF = indexColor( uix.loadIcon( 'tab_Selected_NotSelected.png' ) ); - - function mask = indexColor( rgbMap ) - %indexColor Returns a map of index given an RGB map - % - % mask = indexColor( rgbMap ) returns a mask of color - % index based on the supplied rgbMap. - % black : 0 - % red : 1 - % yellow : 2 - % white : 3 - % blue : 4 - mask = nan( size( rgbMap, 1 ),size( rgbMap, 2 ) ); - % Black - colorIndex = isColor( rgbMap, [0 0 0] ); - mask(colorIndex) = 0; - % Red - colorIndex = isColor( rgbMap, [1 0 0] ); - mask(colorIndex) = 1; - % Yellow - colorIndex = isColor( rgbMap, [1 1 0] ); - mask(colorIndex) = 2; - % White - colorIndex = isColor( rgbMap, [1 1 1] ); - mask(colorIndex) = 3; - % Blue - colorIndex = isColor( rgbMap, [0 0 1] ); - mask(colorIndex) = 4; - % Nested - function boolMap = isColor( map, color ) - %isColor Return a map of boolean where map is equal to color - boolMap = all( bsxfun( @eq, map, permute( color, [1 3 2] ) ), 3 ); - end - end - - end % getDividerMask - - end % static helper methods - -end % classdef \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Text.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Text.m deleted file mode 100644 index 855d5c1..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/Text.m +++ /dev/null @@ -1,546 +0,0 @@ -classdef Text < matlab.mixin.SetGet - %uix.Text Text control - % - % t = uix.Text(p1,v1,p2,v2,...) constructs a text control and sets - % parameter p1 to value v1, etc. - % - % A text control adds functionality to a uicontrol of Style text: - % * Set VerticalAlignment to 'top', 'middle' or 'bottom' - % * Fire a Callback when the user clicks on the text - % - % See also: uicontrol - - % Copyright 2009-2015 The MathWorks, Inc. - % $Revision: 1435 $ $Date: 2016-11-17 17:50:34 +0000 (Thu, 17 Nov 2016) $ - - properties( Dependent ) - BackgroundColor - end - - properties( Dependent, SetAccess = private ) - BeingDeleted - end - - properties( Dependent ) - Callback - DeleteFcn - Enable - end - - properties( Dependent, SetAccess = private ) - Extent - end - - properties( Dependent ) - FontAngle - FontName - FontSize - FontUnits - FontWeight - ForegroundColor - HandleVisibility - HorizontalAlignment - Parent - Position - String - Tag - TooltipString - end - - properties( Dependent, SetAccess = private ) - Type - end - - properties( Dependent ) - UIContextMenu - Units - UserData - VerticalAlignment - Visible - end - - properties( Access = private ) - Container % container - Checkbox % checkbox, used for label - Screen % text, used for covering checkbox - VerticalAlignment_ = 'top' % backing for VerticalAlignment - Dirty = false % flag - FigureObserver % observer - FigureListener % listener - end - - properties( Constant, Access = private ) - Margin = checkBoxLabelOffset() % checkbox size - end - - methods - - function obj = Text( varargin ) - %uix.Text Text control - % - % t = uix.Text(p1,v1,p2,v2,...) constructs a text control and - % sets parameter p1 to value v1, etc. - - % Create graphics - container = uicontainer( 'Parent', [], ... - 'Units', get( 0, 'DefaultUicontrolUnits' ), ... - 'Position', get( 0, 'DefaultUicontrolPosition' ), ... - 'SizeChangedFcn', @obj.onResized ); - checkbox = uicontrol( 'Parent', container, ... - 'HandleVisibility', 'off', ... - 'Style', 'checkbox', 'Units', 'pixels', ... - 'HorizontalAlignment', 'center', ... - 'Enable', 'inactive' ); - screen = uicontrol( 'Parent', container, ... - 'HandleVisibility', 'off', ... - 'Style', 'text', 'Units', 'pixels' ); - - % Create observers and listeners - figureObserver = uix.FigureObserver( container ); - figureListener = event.listener( figureObserver, ... - 'FigureChanged', @obj.onFigureChanged ); - - % Store properties - obj.Container = container; - obj.Checkbox = checkbox; - obj.Screen = screen; - obj.FigureObserver = figureObserver; - obj.FigureListener = figureListener; - - % Set properties - if nargin > 0 - try - assert( rem( nargin, 2 ) == 0, 'uix:InvalidArgument', ... - 'Parameters and values must be provided in pairs.' ) - set( obj, varargin{:} ) - catch e - delete( obj ) - e.throwAsCaller() - end - end - - end % constructor - - function delete( obj ) - %delete Destructor - - delete( obj.Container ) - - end % destructor - - end % structors - - methods - - function value = get.BackgroundColor( obj ) - - value = obj.Checkbox.BackgroundColor; - - end % get.BackgroundColor - - function set.BackgroundColor( obj, value ) - - obj.Container.BackgroundColor = value; - obj.Checkbox.BackgroundColor = value; - obj.Screen.BackgroundColor = value; - - end % set.BackgroundColor - - function value = get.BeingDeleted( obj ) - - value = obj.Checkbox.BeingDeleted; - - end % get.BeingDeleted - - function value = get.Callback( obj ) - - value = obj.Checkbox.Callback; - - end % get.Callback - - function set.Callback( obj, value ) - - obj.Checkbox.Callback = value; - - end % set.Callback - - function value = get.DeleteFcn( obj ) - - value = obj.Checkbox.DeleteFcn; - - end % get.DeleteFcn - - function set.DeleteFcn( obj, value ) - - obj.Checkbox.DeleteFcn = value; - - end % set.DeleteFcn - - function value = get.Enable( obj ) - - value = obj.Checkbox.Enable; - - end % get.Enable - - function set.Enable( obj, value ) - - obj.Checkbox.Enable = value; - - end % set.Enable - - function value = get.Extent( obj ) - - value = obj.Checkbox.Extent; - - end % get.Extent - - function value = get.FontAngle( obj ) - - value = obj.Checkbox.FontAngle; - - end % get.FontAngle - - function set.FontAngle( obj, value ) - - % Set - obj.Checkbox.FontAngle = value; - - % Mark as dirty - obj.setDirty() - - end % set.FontAngle - - function value = get.FontName( obj ) - - value = obj.Checkbox.FontName; - - end % get.FontName - - function set.FontName( obj, value ) - - % Set - obj.Checkbox.FontName = value; - - % Mark as dirty - obj.setDirty() - - end % set.FontName - - function value = get.FontSize( obj ) - - value = obj.Checkbox.FontSize; - - end % get.FontSize - - function set.FontSize( obj, value ) - - % Set - obj.Checkbox.FontSize = value; - - % Mark as dirty - obj.setDirty() - - end % set.FontSize - - function value = get.FontUnits( obj ) - - value = obj.Checkbox.FontUnits; - - end % get.FontUnits - - function set.FontUnits( obj, value ) - - obj.Checkbox.FontUnits = value; - - end % set.FontUnits - - function value = get.FontWeight( obj ) - - value = obj.Checkbox.FontWeight; - - end % get.FontWeight - - function set.FontWeight( obj, value ) - - % Set - obj.Checkbox.FontWeight = value; - - % Mark as dirty - obj.setDirty() - - end % set.FontWeight - - function value = get.ForegroundColor( obj ) - - value = obj.Checkbox.ForegroundColor; - - end % get.ForegroundColor - - function set.ForegroundColor( obj, value ) - - obj.Checkbox.ForegroundColor = value; - - end % set.ForegroundColor - - function value = get.HandleVisibility( obj ) - - value = obj.Container.HandleVisibility; - - end % get.HandleVisibility - - function set.HandleVisibility( obj, value ) - - obj.Container.HandleVisibility = value; - - end % set.HandleVisibility - - function value = get.HorizontalAlignment( obj ) - - value = obj.Checkbox.HorizontalAlignment; - - end % get.HorizontalAlignment - - function set.HorizontalAlignment( obj, value ) - - % Set - obj.Checkbox.HorizontalAlignment = value; - - % Mark as dirty - obj.setDirty() - - end % set.HorizontalAlignment - - function value = get.Parent( obj ) - - value = obj.Container.Parent; - - end % get.Parent - - function set.Parent( obj, value ) - - obj.Container.Parent = value; - - end % set.Parent - - function value = get.Position( obj ) - - value = obj.Container.Position; - - end % get.Position - - function set.Position( obj, value ) - - obj.Container.Position = value; - - end % set.Position - - function value = get.String( obj ) - - value = obj.Checkbox.String; - - end % get.String - - function set.String( obj, value ) - - % Set - obj.Checkbox.String = value; - - % Mark as dirty - obj.setDirty() - - end % set.String - - function value = get.Tag( obj ) - - value = obj.Checkbox.Tag; - - end % get.Tag - - function set.Tag( obj, value ) - - obj.Checkbox.Tag = value; - - end % set.Tag - - function value = get.TooltipString( obj ) - - value = obj.Checkbox.TooltipString; - - end % get.TooltipString - - function set.TooltipString( obj, value ) - - obj.Checkbox.TooltipString = value; - - end % set.TooltipString - - function value = get.Type( obj ) - - value = obj.Checkbox.Type; - - end % get.Type - - function value = get.UIContextMenu( obj ) - - value = obj.Checkbox.UIContextMenu; - - end % get.UIContextMenu - - function set.UIContextMenu( obj, value ) - - obj.Checkbox.UIContextMenu = value; - - end % set.UIContextMenu - - function value = get.Units( obj ) - - value = obj.Container.Units; - - end % get.Units - - function set.Units( obj, value ) - - obj.Container.Units = value; - - end % set.Units - - function value = get.UserData( obj ) - - value = obj.Checkbox.UserData; - - end % get.UserData - - function set.UserData( obj, value ) - - obj.Checkbox.UserData = value; - - end % set.UserData - - function value = get.VerticalAlignment( obj ) - - value = obj.VerticalAlignment_; - - end % get.VerticalAlignment - - function set.VerticalAlignment( obj, value ) - - % Check - assert( ischar( value ) && ... - any( strcmp( value, {'top','middle','bottom'} ) ), ... - 'uix:InvalidPropertyValue', ... - 'Property ''VerticalAlignment'' must be ''top'', ''middle'' or ''bottom''.' ) - - % Set - obj.VerticalAlignment_ = value; - - % Mark as dirty - obj.setDirty() - - end % set.VerticalAlignment - - function value = get.Visible( obj ) - - value = obj.Container.Visible; - - end % get.Visible - - function set.Visible( obj, value ) - - obj.Container.Visible = value; - - end % set.Visible - - end % accessors - - methods( Access = private ) - - function onResized( obj, ~, ~ ) - %onResized Event handler - - % Rooted, so redraw - obj.redraw() - - end % onResized - - function onFigureChanged( obj, ~, eventData ) - - % If rooted, redraw - if isempty( eventData.OldFigure ) && ... - ~isempty( eventData.NewFigure ) && obj.Dirty - obj.redraw() - end - - end % onFigureChanged - - end % event handlers - - methods( Access = private ) - - function setDirty( obj ) - %setDirty Mark as dirty - % - % t.setDirty() marks the text control t as dirty. If the text - % control is rooted then it is redrawn immediately. If not - % then the redraw is queued for when it is next rooted. - - if isempty( obj.FigureObserver.Figure ) - obj.Dirty = true; % set flag - else - obj.Dirty = false; % unset flag - obj.redraw() % redraw - end - - end % setDirty - - function redraw( obj ) - %redraw Redraw - % - % t.redraw() redraws the text control t. Note that this - % requires the text control to be rooted. Methods should - % request redraws using setDirty, rather than calling redraw - % directly. - - c = obj.Container; - b = obj.Checkbox; - s = obj.Screen; - bo = hgconvertunits( ancestor( obj, 'figure' ), ... - [0 0 1 1], 'normalized', 'pixels', c ); % bounds - m = obj.Margin; - e = b.Extent; - switch b.HorizontalAlignment - case 'left' - x = 1 - m; - case 'center' - x = 1 + bo(3)/2 - e(3)/2 - m; - case 'right' - x = 1 + bo(3) - e(3) - m; - end - w = e(3) + m; - switch obj.VerticalAlignment_ - case 'top' - y = 1 + bo(4) - e(4); - case 'middle' - y = 1 + bo(4)/2 - e(4)/2; - case 'bottom' - y = 1; - end - h = e(4); - b.Position = [x y w h]; - s.Position = [x y m h]; - - end % redraw - - end % helpers - -end % classdef - -function o = checkBoxLabelOffset() -%checkBoxLabelOffset Horizontal offset to checkbox label - -if verLessThan( 'MATLAB', '8.6' ) % R2015b - o = 18; -else - o = 16; -end - -end % margin \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/VBox.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/VBox.m deleted file mode 100644 index 386f909..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/VBox.m +++ /dev/null @@ -1,194 +0,0 @@ -classdef VBox < uix.Box - %uix.VBox Vertical box - % - % b = uix.VBox(p1,v1,p2,v2,...) constructs a vertical box and sets - % parameter p1 to value v1, etc. - % - % A vertical box lays out contents from top to bottom. - % - % See also: uix.HBox, uix.Grid, uix.VButtonBox, uix.VBoxFlex - - % Copyright 2009-2016 The MathWorks, Inc. - % $Revision: 1436 $ $Date: 2016-11-17 17:53:29 +0000 (Thu, 17 Nov 2016) $ - - properties( Access = public, Dependent, AbortSet ) - Heights % heights of contents, in pixels and/or weights - MinimumHeights % minimum heights of contents, in pixels - end - - properties( Access = protected ) - Heights_ = zeros( [0 1] ) % backing for Heights - MinimumHeights_ = zeros( [0 1] ) % backing for MinimumHeights - end - - methods - - function obj = VBox( varargin ) - %uix.VBox Vertical box constructor - % - % b = uix.VBox() constructs a horizontal box. - % - % b = uix.VBox(p1,v1,p2,v2,...) sets parameter p1 to value v1, - % etc. - - % Set properties - if nargin > 0 - try - assert( rem( nargin, 2 ) == 0, 'uix:InvalidArgument', ... - 'Parameters and values must be provided in pairs.' ) - set( obj, varargin{:} ) - catch e - delete( obj ) - e.throwAsCaller() - end - end - - end % constructor - - end % structors - - methods - - function value = get.Heights( obj ) - - value = obj.Heights_; - - end % get.Heights - - function set.Heights( obj, value ) - - % For those who can't tell a column from a row... - if isrow( value ) - value = transpose( value ); - end - - % Check - assert( isa( value, 'double' ), 'uix:InvalidPropertyValue', ... - 'Property ''Heights'' must be of type double.' ) - assert( all( isreal( value ) ) && ~any( isinf( value ) ) && ... - ~any( isnan( value ) ), 'uix:InvalidPropertyValue', ... - 'Elements of property ''Heights'' must be real and finite.' ) - assert( isequal( size( value ), size( obj.Contents_ ) ), ... - 'uix:InvalidPropertyValue', ... - 'Size of property ''Heights'' must match size of contents.' ) - - % Set - obj.Heights_ = value; - - % Mark as dirty - obj.Dirty = true; - - end % set.Heights - - function value = get.MinimumHeights( obj ) - - value = obj.MinimumHeights_; - - end % get.MinimumHeights - - function set.MinimumHeights( obj, value ) - - % For those who can't tell a column from a row... - if isrow( value ) - value = transpose( value ); - end - - % Check - assert( isa( value, 'double' ), 'uix:InvalidPropertyValue', ... - 'Property ''MinimumHeights'' must be of type double.' ) - assert( all( isreal( value ) ) && ~any( isinf( value ) ) && ... - all( value >= 0 ), 'uix:InvalidPropertyValue', ... - 'Elements of property ''MinimumHeights'' must be non-negative.' ) - assert( isequal( size( value ), size( obj.Heights_ ) ), ... - 'uix:InvalidPropertyValue', ... - 'Size of property ''MinimumHeights'' must match size of contents.' ) - - % Set - obj.MinimumHeights_ = value; - - % Mark as dirty - obj.Dirty = true; - - end % set.MinimumHeights - - end % accessors - - methods( Access = protected ) - - function redraw( obj ) - %redraw Redraw - % - % c.redraw() redraws the container c. - - % Compute positions - bounds = hgconvertunits( ancestor( obj, 'figure' ), ... - [0 0 1 1], 'normalized', 'pixels', obj ); - heights = obj.Heights_; - minimumHeights = obj.MinimumHeights_; - padding = obj.Padding_; - spacing = obj.Spacing_; - r = numel( heights ); - xPositions = [padding + 1, max( bounds(3) - 2 * padding, 1 )]; - xPositions = repmat( xPositions, [r 1] ); - ySizes = uix.calcPixelSizes( bounds(4), heights, ... - minimumHeights, padding, spacing ); - yPositions = [bounds(4) - cumsum( ySizes ) - padding - ... - spacing * transpose( 0:r-1 ) + 1, ySizes]; - positions = [xPositions(:,1), yPositions(:,1), ... - xPositions(:,2), yPositions(:,2)]; - - % Set positions - children = obj.Contents_; - for ii = 1:numel( children ) - uix.setPosition( children(ii), positions(ii,:), 'pixels' ) - end - - end % redraw - - function addChild( obj, child ) - %addChild Add child - % - % c.addChild(d) adds the child d to the container c. - - % Add to sizes - obj.Heights_(end+1,:) = -1; - obj.MinimumHeights_(end+1,:) = 1; - - % Call superclass method - addChild@uix.Box( obj, child ) - - end % addChild - - function removeChild( obj, child ) - %removeChild Remove child - % - % c.removeChild(d) removes the child d from the container c. - - % Remove from sizes - tf = obj.Contents_ == child; - obj.Heights_(tf,:) = []; - obj.MinimumHeights_(tf,:) = []; - - % Call superclass method - removeChild@uix.Box( obj, child ) - - end % removeChild - - function reorder( obj, indices ) - %reorder Reorder contents - % - % c.reorder(i) reorders the container contents using indices - % i, c.Contents = c.Contents(i). - - % Reorder - obj.Heights_ = obj.Heights_(indices,:); - obj.MinimumHeights_ = obj.MinimumHeights_(indices,:); - - % Call superclass method - reorder@uix.Box( obj, indices ) - - end % reorder - - end % template methods - -end % classdef \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/VBoxFlex.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/VBoxFlex.m deleted file mode 100644 index 71163ce..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/VBoxFlex.m +++ /dev/null @@ -1,349 +0,0 @@ -classdef VBoxFlex < uix.VBox & uix.mixin.Flex - %uix.VBoxFlex Flexible vertical box - % - % b = uix.VBoxFlex(p1,v1,p2,v2,...) constructs a flexible vertical box - % and sets parameter p1 to value v1, etc. - % - % A vertical box lays out contents from top to bottom. Users can - % resize contents by dragging the dividers. - % - % See also: uix.HBoxFlex, uix.GridFlex, uix.VBox, uix.VButtonBox - - % Copyright 2009-2016 The MathWorks, Inc. - % $Revision: 1436 $ $Date: 2016-11-17 17:53:29 +0000 (Thu, 17 Nov 2016) $ - - properties( Access = public, Dependent, AbortSet ) - DividerMarkings % divider markings [on|off] - end - - properties( Access = private ) - RowDividers = uix.Divider.empty( [0 1] ) % row dividers - FrontDivider % front divider - DividerMarkings_ = 'on' % backing for DividerMarkings - MousePressListener = event.listener.empty( [0 0] ) % mouse press listener - MouseReleaseListener = event.listener.empty( [0 0] ) % mouse release listener - MouseMotionListener = event.listener.empty( [0 0] ) % mouse motion listener - ActiveDivider = 0 % active divider index - ActiveDividerPosition = [NaN NaN NaN NaN] % active divider position - MousePressLocation = [NaN NaN] % mouse press location - BackgroundColorListener % background color listener - end - - methods - - function obj = VBoxFlex( varargin ) - %uix.VBoxFlex Flexible vertical box constructor - % - % b = uix.VBoxFlex() constructs a flexible vertical box. - % - % b = uix.VBoxFlex(p1,v1,p2,v2,...) sets parameter p1 to value - % v1, etc. - - % Create front divider - frontDivider = uix.Divider( 'Parent', obj, ... - 'Orientation', 'horizontal', ... - 'BackgroundColor', obj.BackgroundColor * 0.75, ... - 'Visible', 'off' ); - - % Create listeners - backgroundColorListener = event.proplistener( obj, ... - findprop( obj, 'BackgroundColor' ), 'PostSet', ... - @obj.onBackgroundColorChange ); - - % Store properties - obj.FrontDivider = frontDivider; - obj.BackgroundColorListener = backgroundColorListener; - - % Set properties - if nargin > 0 - try - assert( rem( nargin, 2 ) == 0, 'uix:InvalidArgument', ... - 'Parameters and values must be provided in pairs.' ) - set( obj, varargin{:} ) - catch e - delete( obj ) - e.throwAsCaller() - end - end - - end % constructor - - end % structors - - methods - - function value = get.DividerMarkings( obj ) - - value = obj.DividerMarkings_; - - end % get.DividerMarkings - - function set.DividerMarkings( obj, value ) - - % Check - assert( ischar( value ) && any( strcmp( value, {'on','off'} ) ), ... - 'uix:InvalidArgument', ... - 'Property ''DividerMarkings'' must be ''on'' or ''off'.' ) - - % Set - obj.DividerMarkings_ = value; - - % Mark as dirty - obj.Dirty = true; - - end % set.DividerMarkings - - end % accessors - - methods( Access = protected ) - - function onMousePress( obj, source, eventData ) - %onMousePress Handler for WindowMousePress events - - % Check whether mouse is over a divider - loc = find( obj.RowDividers.isMouseOver( eventData ) ); - if isempty( loc ), return, end - - % Capture state at button down - divider = obj.RowDividers(loc); - obj.ActiveDivider = loc; - obj.ActiveDividerPosition = divider.Position; - root = groot(); - obj.MousePressLocation = root.PointerLocation; - - % Make sure the pointer is appropriate - obj.updateMousePointer( source, eventData ); - - % Activate divider - frontDivider = obj.FrontDivider; - frontDivider.Position = divider.Position; - divider.Visible = 'off'; - frontDivider.Parent = []; - frontDivider.Parent = obj; - frontDivider.Visible = 'on'; - - end % onMousePress - - function onMouseRelease( obj, ~, ~ ) - %onMousePress Handler for WindowMouseRelease events - - % Compute new positions - loc = obj.ActiveDivider; - if loc > 0 - root = groot(); - delta = root.PointerLocation(2) - obj.MousePressLocation(2); - ih = loc; - jh = loc + 1; - ic = loc; - jc = loc + 1; - divider = obj.RowDividers(loc); - contents = obj.Contents_; - oldPixelHeights = [contents(ic).Position(4); contents(jc).Position(4)]; - minimumHeights = obj.MinimumHeights_(ih:jh,:); - if delta < 0 % limit to minimum distance from lower neighbor - delta = max( delta, minimumHeights(2) - oldPixelHeights(2) ); - else % limit to minimum distance from upper neighbor - delta = min( delta, oldPixelHeights(1) - minimumHeights(1) ); - end - oldHeights = obj.Heights_(loc:loc+1); - newPixelHeights = oldPixelHeights - delta * [1;-1]; - if oldHeights(1) < 0 && oldHeights(2) < 0 % weight, weight - newHeights = oldHeights .* newPixelHeights ./ oldPixelHeights; - elseif oldHeights(1) < 0 && oldHeights(2) >= 0 % weight, pixels - newHeights = [oldHeights(1) * newPixelHeights(1) / ... - oldPixelHeights(1); newPixelHeights(2)]; - elseif oldHeights(1) >= 0 && oldHeights(2) < 0 % pixels, weight - newHeights = [newPixelHeights(1); oldHeights(2) * ... - newPixelHeights(2) / oldPixelHeights(2)]; - else % sizes(1) >= 0 && sizes(2) >= 0 % pixels, pixels - newHeights = newPixelHeights; - end - obj.Heights_(loc:loc+1) = newHeights; - else - return - end - - % Deactivate divider - obj.FrontDivider.Visible = 'off'; - divider.Visible = 'on'; - - % Reset state at button down - obj.ActiveDivider = 0; - obj.ActiveDividerPosition = [NaN NaN NaN NaN]; - obj.MousePressLocation = [NaN NaN]; - - % Mark as dirty - obj.Dirty = true; - - end % onMouseRelease - - function onMouseMotion( obj, source, eventData ) - %onMouseMotion Handler for WindowMouseMotion events - - loc = obj.ActiveDivider; - if loc == 0 % hovering, update pointer - obj.updateMousePointer( source, eventData ); - else % dragging row divider - root = groot(); - delta = root.PointerLocation(2) - obj.MousePressLocation(2); - ih = loc; - jh = loc + 1; - ic = loc; - jc = loc + 1; - contents = obj.Contents_; - oldPixelHeights = [contents(ic).Position(4); contents(jc).Position(4)]; - minimumHeights = obj.MinimumHeights_(ih:jh,:); - if delta < 0 % limit to minimum distance from lower neighbor - delta = max( delta, minimumHeights(2) - oldPixelHeights(2) ); - else % limit to minimum distance from upper neighbor - delta = min( delta, oldPixelHeights(1) - minimumHeights(1) ); - end - obj.FrontDivider.Position = ... - obj.ActiveDividerPosition + [0 delta 0 0]; - end - - end % onMouseMotion - - function onBackgroundColorChange( obj, ~, ~ ) - %onBackgroundColorChange Handler for BackgroundColor changes - - backgroundColor = obj.BackgroundColor; - highlightColor = min( [backgroundColor / 0.75; 1 1 1] ); - shadowColor = max( [backgroundColor * 0.75; 0 0 0] ); - rowDividers = obj.RowDividers; - for ii = 1:numel( rowDividers ) - rowDivider = rowDividers(ii); - rowDivider.BackgroundColor = backgroundColor; - rowDivider.HighlightColor = highlightColor; - rowDivider.ShadowColor = shadowColor; - end - frontDivider = obj.FrontDivider; - frontDivider.BackgroundColor = shadowColor; - - end % onBackgroundColorChange - - end % event handlers - - methods( Access = protected ) - - function redraw( obj ) - %redraw Redraw contents - % - % c.redraw() redraws the container c. - - % Call superclass method - redraw@uix.VBox( obj ) - - % Create or destroy row dividers - q = numel( obj.RowDividers ); % current number of dividers - r = max( [numel( obj.Heights_ )-1 0] ); % required number of dividers - if q < r % create - for ii = q+1:r - divider = uix.Divider( 'Parent', obj, ... - 'Orientation', 'horizontal', ... - 'BackgroundColor', obj.BackgroundColor ); - obj.RowDividers(ii,:) = divider; - end - elseif q > r % destroy - % Destroy dividers - delete( obj.RowDividers(r+1:q,:) ) - obj.RowDividers(r+1:q,:) = []; - % Update pointer - if r == 0 && strcmp( obj.Pointer, 'top' ) - obj.unsetPointer() - end - end - - % Compute container bounds - bounds = hgconvertunits( ancestor( obj, 'figure' ), ... - [0 0 1 1], 'normalized', 'pixels', obj ); - - % Retrieve size properties - heights = obj.Heights_; - minimumHeights = obj.MinimumHeights_; - padding = obj.Padding_; - spacing = obj.Spacing_; - - % Compute row divider positions - xRowPositions = [padding + 1, max( bounds(3) - 2 * padding, 1 )]; - xRowPositions = repmat( xRowPositions, [r 1] ); - yRowSizes = uix.calcPixelSizes( bounds(4), heights, ... - minimumHeights, padding, spacing ); - yRowPositions = [bounds(4) - cumsum( yRowSizes(1:r,:) ) - padding - ... - spacing * transpose( 1:r ) + 1, repmat( spacing, [r 1] )]; - rowPositions = [xRowPositions(:,1), yRowPositions(:,1), ... - xRowPositions(:,2), yRowPositions(:,2)]; - - % Position row dividers - for ii = 1:r - rowDivider = obj.RowDividers(ii); - rowDivider.Position = rowPositions(ii,:); - switch obj.DividerMarkings_ - case 'on' - rowDivider.Markings = rowPositions(ii,3)/2; - case 'off' - rowDivider.Markings = zeros( [0 1] ); - end - end - - end % redraw - - function reparent( obj, oldFigure, newFigure ) - %reparent Reparent container - % - % c.reparent(a,b) reparents the container c from the figure a - % to the figure b. - - % Update listeners - if isempty( newFigure ) - mousePressListener = event.listener.empty( [0 0] ); - mouseReleaseListener = event.listener.empty( [0 0] ); - mouseMotionListener = event.listener.empty( [0 0] ); - else - mousePressListener = event.listener( newFigure, ... - 'WindowMousePress', @obj.onMousePress ); - mouseReleaseListener = event.listener( newFigure, ... - 'WindowMouseRelease', @obj.onMouseRelease ); - mouseMotionListener = event.listener( newFigure, ... - 'WindowMouseMotion', @obj.onMouseMotion ); - end - obj.MousePressListener = mousePressListener; - obj.MouseReleaseListener = mouseReleaseListener; - obj.MouseMotionListener = mouseMotionListener; - - % Call superclass method - reparent@uix.VBox( obj, oldFigure, newFigure ) - - % Update pointer - if ~isempty( oldFigure ) && ~strcmp( obj.Pointer, 'unset' ) - obj.unsetPointer() - end - - end % reparent - - end % template methods - - methods( Access = protected ) - - function updateMousePointer ( obj, source, eventData ) - - oldPointer = obj.Pointer; - if any( obj.RowDividers.isMouseOver( eventData ) ) - newPointer = 'top'; - else - newPointer = 'unset'; - end - switch newPointer - case oldPointer % no change - % do nothing - case 'unset' % change, unset - obj.unsetPointer() - otherwise % change, set - obj.setPointer( source, newPointer ) - end - - end % updateMousePointer - - end % helpers methods - -end % classdef \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/VButtonBox.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/VButtonBox.m deleted file mode 100644 index 22419fa..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/VButtonBox.m +++ /dev/null @@ -1,98 +0,0 @@ -classdef VButtonBox < uix.ButtonBox - %uix.VButtonBox Vertical button box - % - % b = uix.VButtonBox(p1,v1,p2,v2,...) constructs a vertical button box - % and sets parameter p1 to value v1, etc. - % - % A vertical button box lays out equally sized buttons from top to - % bottom. - % - % See also: uix.HButtonBox - - % Copyright 2009-2016 The MathWorks, Inc. - % $Revision: 1436 $ $Date: 2016-11-17 17:53:29 +0000 (Thu, 17 Nov 2016) $ - - methods - - function obj = VButtonBox( varargin ) - %uix.VButtonBox Vertical button box constructor - % - % b = uix.VButtonBox() constructs a vertical button box. - % - % b = uix.VButtonBox(p1,v1,p2,v2,...) sets parameter p1 to - % value v1, etc. - - % Set properties - if nargin > 0 - try - assert( rem( nargin, 2 ) == 0, 'uix:InvalidArgument', ... - 'Parameters and values must be provided in pairs.' ) - set( obj, varargin{:} ) - catch e - delete( obj ) - e.throwAsCaller() - end - end - - end % constructor - - end % structors - - methods( Access = protected ) - - function redraw( obj ) - - % Compute positions - bounds = hgconvertunits( ancestor( obj, 'figure' ), ... - [0 0 1 1], 'normalized', 'pixels', obj ); - buttonSize = obj.ButtonSize_; - padding = obj.Padding_; - spacing = obj.Spacing_; - r = numel( obj.Contents_ ); - if 2 * padding + buttonSize(1) > bounds(3) - xSizes = repmat( uix.calcPixelSizes( bounds(3), -1, 1, ... - padding, spacing ), [r 1] ); % shrink to fit - else - xSizes = repmat( buttonSize(1), [r 1] ); - end - switch obj.HorizontalAlignment - case 'left' - xPositions = [repmat( padding, [r 1] ) + 1, xSizes]; - case 'center' - xPositions = [(bounds(3) - xSizes) / 2 + 1, xSizes]; - case 'right' - xPositions = [bounds(3) - xSizes - padding + 1, xSizes]; - end - if 2 * padding + (r-1) * spacing + r * buttonSize(2) > bounds(4) - ySizes = uix.calcPixelSizes( bounds(4), -ones( [r 1] ), ... - ones( [r 1] ), padding, spacing ); % shrink to fit - else - ySizes = repmat( buttonSize(2), [r 1] ); - end - switch obj.VerticalAlignment - case 'top' - yPositions = [bounds(4) - padding - cumsum( ySizes ) - ... - spacing * transpose( 0:r-1 ) + 1, ySizes]; - case 'middle' - yPositions = [bounds(4) / 2 + sum( ySizes ) / 2 + ... - spacing * (r-1) / 2 - cumsum( ySizes ) - ... - spacing * transpose( 0:r-1 ) + 1, ySizes]; - case 'bottom' - yPositions = [sum( ySizes ) + spacing * (r-1) - ... - cumsum( ySizes ) - spacing * transpose( 0:r-1 ) + ... - padding + 1, ySizes]; - end - positions = [xPositions(:,1), yPositions(:,1), ... - xPositions(:,2), yPositions(:,2)]; - - % Set positions - children = obj.Contents_; - for ii = 1:numel( children ) - uix.setPosition( children(ii), positions(ii,:), 'pixels' ) - end - - end % redraw - - end % template methods - -end % classdef \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/calcPixelSizes.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/calcPixelSizes.m deleted file mode 100644 index bda8744..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/calcPixelSizes.m +++ /dev/null @@ -1,47 +0,0 @@ -function pSizes = calcPixelSizes( pTotal, mSizes, pMinima, pPadding, pSpacing ) -%calcPixelSizes Calculate child sizes in pixels -% -% pSizes = uix.calcPixelSizes(total,mSizes,minSizes,padding,spacing) -% computes child sizes (in pixels) given total available size (in pixels), -% child sizes (in pixels and/or relative), minimum child sizes (in -% pixels), padding (in pixels) and spacing (in pixels). -% -% Notes: -% * All children are at least as large as the minimum specified size -% * Relative sizes are respected for children larger than then minimum -% specified size -% * Children may extend beyond the total available size if the minimum -% sizes, padding and spacing are too large - -% Copyright 2009-2015 The MathWorks, Inc. -% $Revision: 1182 $ $Date: 2015-12-07 14:27:30 -0500 (Mon, 07 Dec 2015) $ - -% Initialize -pSizes = NaN( size( mSizes ) ); % output -n = numel( mSizes ); % need this later - -% Apply absolute sizes -a = mSizes >= 0; % absolute -pSizes(a) = max( mSizes(a), pMinima(a) ); - -while true - - u = isnan( pSizes ); % unsolved - pUnsolvedTotal = pTotal - max( (n-1), 0 ) * pSpacing ... - - 2 * sign( n ) * pPadding - sum( pSizes(~u) ); - pUnsolvedSizes = mSizes(u) / sum( mSizes(u) ) * pUnsolvedTotal; - pUnsolvedMinima = pMinima(u); - s = pUnsolvedSizes < pUnsolvedMinima; % small - if any( s ) - pUnsolvedSizes(s) = pUnsolvedMinima(s); - pUnsolvedSizes(~s) = NaN; - pSizes(u) = pUnsolvedSizes; - % repeat - else - pSizes(u) = pUnsolvedSizes; - break % done - end - -end - -end % calcPixelSizes \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/loadIcon.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/loadIcon.m deleted file mode 100644 index 0499a92..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/loadIcon.m +++ /dev/null @@ -1,102 +0,0 @@ -function cdata = loadIcon( filename, bgcol ) -%loadIcon Load an icon and set the transparent color -% -% cdata = uix.loadIcon(filename) loads the icon from the specified -% filename. For PNG files with transparency, the transparent pixels are -% set to NaN. For other files, pixels that are pure green are set to -% transparent (i.e., "green screen"). The resulting cdata is an RGB -% double array. -% -% cdata = uix.loadIcon(filename,bgcol) tries to merge the color data with -% the specified background colour bgcol. Fully transparent pixels are -% still set to NaN, but partially transparent pixels are merged with the -% background. -% -% See also: imread - -% Copyright 2009-2016 The MathWorks, Inc. -% $Revision: 1436 $ $Date: 2016-11-17 17:53:29 +0000 (Thu, 17 Nov 2016) $ - -% Check inputs -narginchk( 1, 2 ) -if nargin < 2 - bgcol = get( 0, 'DefaultUIControlBackgroundColor' ); -end - -% First try normally -thisDir = fileparts( mfilename( 'fullpath' ) ); -iconDir = fullfile( thisDir, 'Resources' ); -if exist( filename, 'file' ) - [cdata, map, alpha] = imread( filename ); -elseif exist( fullfile( iconDir, filename ), 'file' ) - [cdata, map, alpha] = imread( fullfile( iconDir, filename ) ); -else - error( 'uix:FileNotFound', 'Cannot open file ''%s''.', filename ) -end - -% Convert indexed images to RGB -if ~isempty( map ) - cdata = ind2rgb( cdata, map ); -end - -% Convert to double before applying transparency -cdata = convertToDouble( cdata ); - -% Handle transparency -[rows, cols, ~] = size( cdata ); -if ~isempty( alpha ) - - % Transparency specified - alpha = convertToDouble( alpha ); - f = find( alpha==0 ); - if ~isempty( f ) - cdata(f) = NaN; - cdata(f + rows*cols) = NaN; - cdata(f + 2*rows*cols) = NaN; - end - % Now blend partial alphas - f = find( alpha(:)>0 & alpha(:)<1 ); - if ~isempty(f) - cdata(f) = cdata(f).*alpha(f) + bgcol(1)*(1-alpha(f)); - cdata(f + rows*cols) = cdata(f + rows*cols).*alpha(f) + bgcol(2)*(1-alpha(f)); - cdata(f + 2*rows*cols) = cdata(f + 2*rows*cols).*alpha(f) + bgcol(3)*(1-alpha(f)); - end - -else - - % Do a "green screen", treating anything pure-green as transparent - f = find( cdata(:,:,1)==0 & cdata(:,:,2)==1 & cdata(:,:,3)==0 ); - cdata(f) = NaN; - cdata(f + rows*cols) = NaN; - cdata(f + 2*rows*cols) = NaN; - -end - -end % uix.loadIcon - -% ------------------------------------------------------------------------- - -function cdata = convertToDouble( cdata ) -%convertToDouble Convert image data to double in the range [0,1] -% -% cdata = convertToDouble(cData) - -switch lower( class( cdata ) ) - case 'double' - % do nothing - case 'single' - cdata = double( cdata ); - case 'uint8' - cdata = double( cdata ) / 255; - case 'uint16' - cdata = double( cdata ) / 65535; - case 'int8' - cdata = ( double( cdata ) + 128 ) / 255; - case 'int16' - cdata = ( double( cdata ) + 32768 ) / 65535; - otherwise - error( 'uix:InvalidArgument', ... - 'Image data of type ''%s'' is not supported.', class( cdata ) ) -end - -end % convertToDouble \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/setPosition.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/setPosition.m deleted file mode 100644 index 6b76995..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/setPosition.m +++ /dev/null @@ -1,29 +0,0 @@ -function setPosition( o, p, u ) -%setPosition Set position of graphics object -% -% setPosition(o,p,u) sets the position of a graphics object o to value p -% with units u. -% -% In contrast to setting the Position property directly, this function -% honors the ActivePositionProperty of axes. - -% Copyright 2009-2016 The MathWorks, Inc. -% $Revision: 1435 $ $Date: 2016-11-17 17:50:34 +0000 (Thu, 17 Nov 2016) $ - -o.Units = u; -if isa( o, 'matlab.graphics.axis.Axes' ) - switch o.ActivePositionProperty - case 'position' - o.Position = p; - case 'outerposition' - o.OuterPosition = p; - otherwise - error( 'uix:InvalidState', ... - 'Unknown value ''%s'' for property ''ActivePositionProperty'' of %s.', ... - o.ActivePositionProperty, class( o ) ) - end -else - o.Position = p; -end - -end % setPosition \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/tracking.m b/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/tracking.m deleted file mode 100644 index c8403a8..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/+uix/tracking.m +++ /dev/null @@ -1,229 +0,0 @@ -function varargout = tracking( varargin ) -%tracking Track anonymized usage data -% -% tracking(p,v,id) tracks usage to the property p for the product version -% v and identifier id. No personally identifiable information is tracked. -% -% r = tracking(...) returns the server response r, for debugging purposes. -% -% tracking('on') turns tracking on. tracking('off') turns tracking off. -% tracking('query') returns the tracking state. - -% tracking('spoof') sets the tracking settings -- domain, language, -% client, MATLAB version, operating system version -- to spoof values. -% tracking('reset') sets the tracking settings to normal values. -% -% [t,s] = tracking('query') returns the tracking state t and settings s. - -% Copyright 2016 The MathWorks, Inc. -% $Revision: 1435 $ $Date: 2016-11-17 17:50:34 +0000 (Thu, 17 Nov 2016) $ - -persistent STATE USERNAME DOMAIN LANGUAGE CLIENT MATLAB OS -if isempty( STATE ) - STATE = getpref( 'Tracking', 'State', 'on' ); - if strcmp( STATE, 'snooze' ) % deprecated - setpref( 'Tracking', 'State', 'on' ) - STATE = 'on'; - end - if ispref( 'Tracking', 'Date' ) % deprecated - rmpref( 'Tracking', 'Date' ) - end - USERNAME = getenv( 'USERNAME' ); - reset() -end % initialize - -switch nargin - case 1 - switch varargin{1} - case {'on','off'} - STATE = varargin{1}; - setpref( 'Tracking', 'State', varargin{1} ) % persist - case 'spoof' - spoof() - case 'reset' - reset() - case 'query' - varargout{1} = STATE; - varargout{2} = query(); - otherwise - error( 'tracking:InvalidArgument', ... - 'Valid options are ''on'', ''off'' and ''query''.' ) - end - case 3 - switch nargout - case 0 - if strcmp( STATE, 'off' ), return, end - uri = 'https://www.google-analytics.com/collect'; - track( uri, varargin{:} ); - case 1 - uri = 'https://www.google-analytics.com/debug/collect'; - varargout{1} = track( uri, varargin{:} ); - otherwise - nargoutchk( 0, 1 ) - end - otherwise - narginchk( 3, 3 ) -end % switch - - function reset() - %reset Set normal settings - - DOMAIN = lower( getenv( 'USERDOMAIN' ) ); - LANGUAGE = char( java.util.Locale.getDefault() ); - CLIENT = getpref( 'Tracking', 'Client', uuid() ); - MATLAB = matlab(); - OS = os(); - - end % reset - - function spoof() - %spoof Set spoof settings - - DOMAIN = randomDomain(); - LANGUAGE = randomLanguage(); - CLIENT = randomClient(); - MATLAB = randomMatlab(); - OS = randomOs(); - - end % spoof - - function s = query() - %query Return settings - - s.Username = USERNAME; - s.Domain = DOMAIN; - s.Language = LANGUAGE; - s.Client = CLIENT; - s.Matlab = MATLAB; - s.Os = OS; - - end % query - - function varargout = track( uri, p, v, s ) - %track Do tracking - - a = sprintf( '%s/%s (%s)', MATLAB, v, OS ); - if isdeployed() - ds = 'deployed'; - elseif strcmp( DOMAIN, 'mathworks' ) - ds = DOMAIN; - else - ds = 'unknown'; - end - pv = {'v', '1', 'tid', p, 'ua', escape( a ), 'ul', LANGUAGE, ... - 'cid', CLIENT, 'ht', 'pageview', ... - 'dp', sprintf( '/%s', s ), 'ds', ds}; - [varargout{1:nargout}] = urlread( uri, 'Post', pv ); - - end % track - -end % tracking - -function s = randomDomain() -%randomDomain Random domain string - -switch randi( 4 ) - case 1 - s = 'mathworks'; - otherwise - s = hash( uuid() ); -end - -end % randomDomain - -function s = randomLanguage() -%randomLanguage Random language string - -lo = java.util.Locale.getAvailableLocales(); -s = char( lo(randi( numel( lo ) )) ); - -end % randomLanguage - -function s = randomClient() -%randomClient Random client identifier - -s = uuid(); - -end % randomClient - -function s = matlab() -%matlab MATLAB version string - -v = ver( 'MATLAB' ); -s = v.Release; -s(s=='('|s==')') = []; - -end % matlab - -function s = randomMatlab() -%randomMatlab Random MATLAB version string - -releases = {'R2014b' 'R2015a' 'R2015b' 'R2016a' 'R2016b'}; -s = releases{randi( numel( releases ) )}; - -end % randomMatlab - -function s = os() -%os Operating system string - -if ispc() - s = sprintf( 'Windows NT %s', ... - char( java.lang.System.getProperty( 'os.version' ) ) ); -elseif isunix() - s = 'Linux x86_64'; -elseif ismac() - s = sprintf( 'Macintosh; Intel OS X %s', ... - strrep( char( java.lang.System.getProperty( 'os.version' ) ), ' ', '_' ) ); -else - s = 'unknown'; -end - -end % os - -function s = randomOs() -%randomOs Random operating system string - -switch randi( 3 ) - case 1 - versions = [5.1 5.2 6 6.1 6.2 6.3 10]; - s = sprintf( 'Windows NT %.1f', ... - versions(randi( numel( versions ) )) ); - case 2 - s = 'Linux x86_64'; - case 3 - s = sprintf( 'Macintosh; Intel OS X 10_%d', ... - randi( [10 12] ) ); -end - -end % randomOs - -function s = escape( s ) -%escape Escape string - -s = char( java.net.URLEncoder.encode( s, 'UTF-8' ) ); - -end % escape - -function h = hash( s ) -%hash Hash string -% -% See also: rptgen.hash - -persistent MD5 -if isempty( MD5 ) - MD5 = java.security.MessageDigest.getInstance( 'MD5' ); -end - -MD5.update( uint8( s(:) ) ); -h = typecast( MD5.digest, 'uint8' ); -h = dec2hex( h )'; -h = lower( h(:) )'; - -end % hash - -function s = uuid() -%uuid Unique identifier - -s = char( java.util.UUID.randomUUID() ); - -end % uuid \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/Contents.m b/widgets/GUI Layout Toolbox 2.3.1/layout/Contents.m deleted file mode 100644 index d686e37..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/Contents.m +++ /dev/null @@ -1,29 +0,0 @@ -% GUI Layout Toolbox -% Version 2.3.1 (R2016b) 24-November-2016 -% -% Panels -% uix.Panel - arrange a single element inside a standard panel -% uix.CardPanel - show one element from a list -% uix.BoxPanel - arrange a single element inside a panel with a boxed title -% uix.TabPanel - arrange elements in a panel with tabs for selecting which is visible -% uix.ScrollingPanel - arrange a single element inside a scrollable panel -% -% Boxes -% uix.HBox - arrange elements horizontally in a single row -% uix.VBox - arrange elements vertically in a single column -% uix.HBoxFlex - arrange elements horizontally with draggable dividers -% uix.VBoxFlex - arrange elements vertically with draggable dividers -% uix.HButtonBox - arrange buttons horizontally in a single row -% uix.VButtonBox - arrange buttons vertically in a single column -% -% Grids -% uix.Grid - arrange elements in a two-dimensional grid -% uix.GridFlex - arrange elements in a two-dimensional grid with draggable dividers -% -% Other -% uix.Empty - create an empty space -% uix.tracking - track anonymized usage data -% uix.Text - create an alignable, clickable text control - -% Copyright 2009-2016 The MathWorks, Inc. -% $Revision: 1434 $ $Date: 2016-11-17 17:44:45 +0000 (Thu, 17 Nov 2016) $ diff --git a/widgets/GUI Layout Toolbox 2.3.1/layout/layoutRoot.m b/widgets/GUI Layout Toolbox 2.3.1/layout/layoutRoot.m deleted file mode 100644 index 791f99e..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layout/layoutRoot.m +++ /dev/null @@ -1,18 +0,0 @@ -function folder = layoutRoot() -%layoutRoot Folder containing the GUI Layout Toolbox -% -% folder = layoutRoot() returns the full path to the folder containing -% the GUI Layout Toolbox. -% -% Examples: -% >> folder = layoutRoot() -% folder = 'C:\tools\layouts2\layout' -% -% See also: layoutVersion - -% Copyright 2009-2014 The MathWorks, Inc. -% $Revision: 980 $ $Date: 2014-09-28 14:27:26 -0400 (Sun, 28 Sep 2014) $ - -folder = fileparts( mfilename( 'fullpath' ) ); - -end % layoutRoot \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/AxesExample.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/AxesExample.html deleted file mode 100644 index 22c0653..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/AxesExample.html +++ /dev/null @@ -1 +0,0 @@ - > diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/AxesLegendsColorbars.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/AxesLegendsColorbars.html deleted file mode 100644 index 5ad8c1f..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/AxesLegendsColorbars.html +++ /dev/null @@ -1 +0,0 @@ - > diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/BoxPanelFancyStuff.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/BoxPanelFancyStuff.html deleted file mode 100644 index e7551e3..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/BoxPanelFancyStuff.html +++ /dev/null @@ -1 +0,0 @@ - > diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Compiling.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Compiling.html deleted file mode 100644 index 14b7298..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Compiling.html +++ /dev/null @@ -1 +0,0 @@ - > diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/ExampleApp.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/ExampleApp.html deleted file mode 100644 index 6a276b5..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/ExampleApp.html +++ /dev/null @@ -1 +0,0 @@ - > diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples.html deleted file mode 100644 index e060671..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - - Examples - - - - - - - - - - - -
GUI Layout Toolbox 2.3.1previous pagenext page
- -

Examples Go back up one level

- -

The following examples are provided as part of this documentation. Click - the name of any example to go to the corresponding page.

- -

Basics

-
-
Layout hierarchy
-
Using layouts inside layouts to produce more complex designs
-
- -

Using axes

-
-
Positioning axes
-
Using the different axes position properties.
- -
Axes legends and colorbars
-
How to work with axes that may also have legends and/or colorbars.
-
- -

Using panels

-
-
Context help
-
Adding context-sensitive help using panels.
- -
Minimize and maximize
-
Creating a user interface with panels that can be minimized and - maximized.
- -
Dock and undock
-
Creating a user interface with panels that can be undocked into - separate windows.
-
- -

Visible

-
-
Show and hide
-
Showing and hiding a layout and its contents.
-
- -

Applications

-
-
Building a complete application
-
Using layouts together to produce a complete application.
-
- - -
- - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/axesexample.m b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/axesexample.m deleted file mode 100644 index 5801555..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/axesexample.m +++ /dev/null @@ -1,41 +0,0 @@ -%% Axes inside layouts -% This example demonstrates how axes are affected by being placed into -% layouts. The layouts take into account the "ActivePositionProperty" in -% order to determine whether to set the "Position" or "OuterPosition" -% (default) property of the axes. -% -% Copyright 2009-2013 The MathWorks, Inc. - -%% Open the window -% Open a new figure window and remove the toolbar and menus -window = figure( 'Name', 'Axes inside layouts', ... - 'MenuBar', 'none', ... - 'Toolbar', 'none', ... - 'NumberTitle', 'off' ); - -%% Create the layout -% The layout involves two axes side by side. This is done using a -% flexible horizontal box. The left-hand axes is left with the -% ActivePositionProperty set to "outerposition", but the right-hand axes is -% switched to use "Position" -hbox = uix.HBoxFlex('Parent', window, 'Spacing', 3); -axes1 = axes( 'Parent', hbox, ... - 'ActivePositionProperty', 'outerposition' ); -axes2 = axes( 'Parent', hbox, ... - 'ActivePositionProperty', 'Position' ); -set( hbox, 'Widths', [-2 -1] ); - -%% Fill the axes -% Using "OuterPosition" (left-hand axes) is the normal mode and looks good -% for virtually any plot type. Using "Position" is only really useful for -% 2D plots with the axes turned off, such as images -x = membrane( 1, 15 ); -surf( axes1, x ); -lighting( axes1, 'gouraud' ); -shading( axes1, 'interp' ); -l = light( 'Parent', axes1 ); -camlight( l, 'head' ); -axis( axes1, 'tight' ); - -imagesc( x, 'Parent', axes2 ); -set( axes2, 'xticklabel', [], 'yticklabel', [] ); \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/callbackexample.m b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/callbackexample.m deleted file mode 100644 index 036d3b6..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/callbackexample.m +++ /dev/null @@ -1,47 +0,0 @@ -function callbackexample() - -% Copyright 2009-2013 The MathWorks, Inc. - -% Create application data -colorNames = { - 'Red' - 'Orange' - 'Yellow' - 'Green' - 'Blue' - 'Indigo' - 'Violet' - }; -colorValues = [ - 1.0 0.2 0.2 - 1.0 0.6 0.2 - 1.0 1.0 0.4 - 0.6 1.0 0.6 - 0.2 0.4 1.0 - 0.4 0.1 0.6 - 0.7 0.5 1.0 - ]; - -% Layout the interface -f = figure(); -p = uix.Panel( 'Parent', f, 'Title', 'A Panel', 'TitlePosition', 'CenterTop'); -b = uix.HBoxFlex( 'Parent', p, 'Spacing', 5, 'Padding', 5 ); -hList = uicontrol( 'Style', 'listbox', 'Parent', b, ... - 'String', colorNames, ... - 'Back', 'w' ); -hButton = uicontrol( 'Parent', b, ... - 'Background', colorValues(1,:), ... - 'String', colorNames{1} ); -set( b, 'Widths', [-1 -3] ); - -% Add user interactions -set( hList, 'Callback', @onChangeColor ); - - - function onChangeColor( source, ~ ) - idx = get( source, 'Value' ); - set( hButton, 'Background', colorValues(idx,:), 'String', colorNames{idx} ) - end % onChangeColor - - -end % main \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/colorbarexample.m b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/colorbarexample.m deleted file mode 100644 index 05233f8..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/colorbarexample.m +++ /dev/null @@ -1,29 +0,0 @@ -%% Axes with colorbars inside layouts -% This example demonstrates how to correctly layout axes that have -% associated legends or colorbars by grouping them together using a -% uicontainer. -% -% Copyright 2014 The MathWorks, Inc. - -%% Open the window -% Open a new figure window and remove the toolbar and menus -window = figure( 'Name', 'Axes legend and colorbars', ... - 'MenuBar', 'none', ... - 'Toolbar', 'none', ... - 'NumberTitle', 'off' ); - -%% Create the layout -% The layout involves two axes side by side. Each axes is placed into a -% uicontainer so that the legend and colorbar are "grouped" with the axes. -hbox = uix.VBoxFlex('Parent', window, 'Spacing', 3); -axes1 = axes( 'Parent', uicontainer('Parent', hbox) ); -axes2 = axes( 'Parent', uicontainer('Parent', hbox) ); - -%% Add decorations -% Give the first axes a colorbar and the second axes a legend. -surf( axes1, membrane( 1, 15 ) ); -colorbar( axes1 ); - -theta = 0:360; -plot( axes2, theta, sind(theta), theta, cosd(theta) ); -legend( axes2, 'sin', 'cos', 'Location', 'NorthWestOutside' ); \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/demoBrowser.m b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/demoBrowser.m deleted file mode 100644 index ccf4d89..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/demoBrowser.m +++ /dev/null @@ -1,209 +0,0 @@ -function demoBrowser() -%demoBrowser: an example of using layouts to build a user interface -% -% demoBrowser() opens a simple GUI that allows several of MATLAB's -% built-in demos to be viewed. It aims to demonstrate how multiple -% layouts can be used to create a good-looking user interface that -% retains the correct proportions when resized. It also shows how to -% hook-up callbacks to interpret user interaction. -% -% See also: Layouts - -% Copyright 2010-2013 The MathWorks, Inc. - -% Data is shared between all child functions by declaring the variables -% here (they become global to the function). We keep things tidy by putting -% all GUI stuff in one structure and all data stuff in another. As the app -% grows, we might consider making these objects rather than structures. -data = createData(); -gui = createInterface( data.DemoNames ); - -% Now update the GUI with the current data -updateInterface(); -redrawDemo(); - -% Explicitly call the demo display so that it gets included if we deploy -displayEndOfDemoMessage('') - -%-------------------------------------------------------------------------% - function data = createData() - % Create the shared data-structure for this application - demoList = { - 'Complex surface' 'cplxdemo' - 'Cruller' 'cruller' - 'Earth' 'earthmap' - 'Four linked tori' 'tori4' - 'Klein bottle' 'xpklein' - 'Klein bottle (1)' 'klein1' - 'Knot' 'knot' - 'Logo' 'logo' - 'Spherical Surface Harmonic' 'spharm2' - 'Werner Boy''s Surface' 'wernerboy' - }; - selectedDemo = 8; - data = struct( ... - 'DemoNames', {demoList(:,1)'}, ... - 'DemoFunctions', {demoList(:,2)'}, ... - 'SelectedDemo', selectedDemo ); - end % createData - -%-------------------------------------------------------------------------% - function gui = createInterface( demoList ) - % Create the user interface for the application and return a - % structure of handles for global use. - gui = struct(); - % Open a window and add some menus - gui.Window = figure( ... - 'Name', 'Gallery browser', ... - 'NumberTitle', 'off', ... - 'MenuBar', 'none', ... - 'Toolbar', 'none', ... - 'HandleVisibility', 'off' ); - - % + File menu - gui.FileMenu = uimenu( gui.Window, 'Label', 'File' ); - uimenu( gui.FileMenu, 'Label', 'Exit', 'Callback', @onExit ); - - % + View menu - gui.ViewMenu = uimenu( gui.Window, 'Label', 'View' ); - for ii=1:numel( demoList ) - uimenu( gui.ViewMenu, 'Label', demoList{ii}, 'Callback', @onMenuSelection ); - end - - % + Help menu - helpMenu = uimenu( gui.Window, 'Label', 'Help' ); - uimenu( helpMenu, 'Label', 'Documentation', 'Callback', @onHelp ); - - - % Arrange the main interface - mainLayout = uix.HBoxFlex( 'Parent', gui.Window, 'Spacing', 3 ); - - % + Create the panels - controlPanel = uix.BoxPanel( ... - 'Parent', mainLayout, ... - 'Title', 'Select a demo:' ); - gui.ViewPanel = uix.BoxPanel( ... - 'Parent', mainLayout, ... - 'Title', 'Viewing: ???', ... - 'HelpFcn', @onDemoHelp ); - gui.ViewContainer = uicontainer( ... - 'Parent', gui.ViewPanel ); - - % + Adjust the main layout - set( mainLayout, 'Widths', [-1,-2] ); - - - % + Create the controls - controlLayout = uix.VBox( 'Parent', controlPanel, ... - 'Padding', 3, 'Spacing', 3 ); - gui.ListBox = uicontrol( 'Style', 'list', ... - 'BackgroundColor', 'w', ... - 'Parent', controlLayout, ... - 'String', demoList(:), ... - 'Value', 1, ... - 'Callback', @onListSelection); - gui.HelpButton = uicontrol( 'Style', 'PushButton', ... - 'Parent', controlLayout, ... - 'String', 'Help for ', ... - 'Callback', @onDemoHelp ); - set( controlLayout, 'Heights', [-1 28] ); % Make the list fill the space - - % + Create the view - p = gui.ViewContainer; - gui.ViewAxes = axes( 'Parent', p ); - - - end % createInterface - -%-------------------------------------------------------------------------% - function updateInterface() - % Update various parts of the interface in response to the demo - % being changed. - - % Update the list and menu to show the current demo - set( gui.ListBox, 'Value', data.SelectedDemo ); - % Update the help button label - demoName = data.DemoNames{ data.SelectedDemo }; - set( gui.HelpButton, 'String', ['Help for ',demoName] ); - % Update the view panel title - set( gui.ViewPanel, 'Title', sprintf( 'Viewing: %s', demoName ) ); - % Untick all menus - menus = get( gui.ViewMenu, 'Children' ); - set( menus, 'Checked', 'off' ); - % Use the name to work out which menu item should be ticked - whichMenu = strcmpi( demoName, get( menus, 'Label' ) ); - set( menus(whichMenu), 'Checked', 'on' ); - end % updateInterface - -%-------------------------------------------------------------------------% - function redrawDemo() - % Draw a demo into the axes provided - - % We first clear the existing axes ready to build a new one - if ishandle( gui.ViewAxes ) - delete( gui.ViewAxes ); - end - - % Some demos create their own figure. Others don't. - fcnName = data.DemoFunctions{data.SelectedDemo}; - switch upper( fcnName ) - case 'LOGO' - % These demos open their own windows - evalin( 'base', fcnName ); - gui.ViewAxes = gca(); - fig = gcf(); - set( fig, 'Visible', 'off' ); - - otherwise - % These demos need a window opening - fig = figure( 'Visible', 'off' ); - evalin( 'base', fcnName ); - gui.ViewAxes = gca(); - end - % Now copy the axes from the demo into our window and restore its - % state. - cmap = colormap( gui.ViewAxes ); - set( gui.ViewAxes, 'Parent', gui.ViewContainer ); - colormap( gui.ViewAxes, cmap ); - rotate3d( gui.ViewAxes, 'on' ); - % Get rid of the demo figure - close( fig ); - end % redrawDemo - -%-------------------------------------------------------------------------% - function onListSelection( src, ~ ) - % User selected a demo from the list - update "data" and refresh - data.SelectedDemo = get( src, 'Value' ); - updateInterface(); - redrawDemo(); - end % onListSelection - -%-------------------------------------------------------------------------% - function onMenuSelection( src, ~ ) - % User selected a demo from the menu - work out which one - demoName = get( src, 'Label' ); - data.SelectedDemo = find( strcmpi( demoName, data.DemoNames ), 1, 'first' ); - updateInterface(); - redrawDemo(); - end % onMenuSelection - - -%-------------------------------------------------------------------------% - function onHelp( ~, ~ ) - % User has asked for the documentation - doc layout - end % onHelp - -%-------------------------------------------------------------------------% - function onDemoHelp( ~, ~ ) - % User wnats documentation for the current demo - showdemo( data.DemoFunctions{data.SelectedDemo} ); - end % onDemoHelp - -%-------------------------------------------------------------------------% - function onExit( ~, ~ ) - % User wants to quit out of the application - delete( gui.Window ); - end % onExit - -end % EOF \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/displayEndOfDemoMessage.m b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/displayEndOfDemoMessage.m deleted file mode 100644 index 772873f..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/displayEndOfDemoMessage.m +++ /dev/null @@ -1,4 +0,0 @@ -function displayEndOfDemoMessage(filename) -% Dummy function - do nothing. -% -% Copyright 2009-2013 The MathWorks, Inc. diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/dockexample.m b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/dockexample.m deleted file mode 100644 index 08e0b1c..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/dockexample.m +++ /dev/null @@ -1,74 +0,0 @@ -function dockexample() -%DOCKEXAMPLE: An example of using the panelbox dock/undock functionality - -% Copyright 2009-2013 The MathWorks Ltd. - -% Create the window and main layout -fig = figure( 'Name', 'Dockable GUI example', ...' - 'NumberTitle', 'off', ... - 'Toolbar', 'none', ... - 'MenuBar', 'none', ... - 'CloseRequestFcn', @nCloseAll ); -box = uix.HBox( 'Parent', fig ); - -% Add three panels to the box -panel{1} = uix.BoxPanel( 'Title', 'Panel 1', 'Parent', box ); -panel{2} = uix.BoxPanel( 'Title', 'Panel 2', 'Parent', box ); -panel{3} = uix.BoxPanel( 'Title', 'Panel 3', 'Parent', box ); - -% Add some contents -uicontrol( 'Style', 'PushButton', 'String', 'Button 1', 'Parent', panel{1} ); -uicontrol( 'Style', 'PushButton', 'String', 'Button 2', 'Parent', panel{2} ); -box1 = uix.VBox( 'Parent', panel{3} ); -box2 = uix.HBox( 'Parent', box1 ); -uicontrol( 'Style', 'PushButton', 'String', 'Button 3', 'Parent', box1 ); -uicontrol( 'Style', 'PushButton', 'String', 'Button 4', 'Parent', box2 ); -uicontrol( 'Style', 'PushButton', 'String', 'Button 5', 'Parent', box2 ); - -% Set the dock/undock callback -set( panel{1}, 'DockFcn', {@nDock, 1} ); -set( panel{2}, 'DockFcn', {@nDock, 2} ); -set( panel{3}, 'DockFcn', {@nDock, 3} ); - -%-------------------------------------------------------------------------% - function nDock( eventSource, eventData, whichpanel ) %#ok - % Set the flag - panel{whichpanel}.Docked = ~panel{whichpanel}.Docked; - if panel{whichpanel}.Docked - % Put it back into the layout - newfig = get( panel{whichpanel}, 'Parent' ); - set( panel{whichpanel}, 'Parent', box ); - delete( newfig ); - else - % Take it out of the layout - pos = getpixelposition( panel{whichpanel} ); - newfig = figure( ... - 'Name', get( panel{whichpanel}, 'Title' ), ... - 'NumberTitle', 'off', ... - 'MenuBar', 'none', ... - 'Toolbar', 'none', ... - 'CloseRequestFcn', {@nDock, whichpanel} ); - figpos = get( newfig, 'Position' ); - set( newfig, 'Position', [figpos(1,1:2), pos(1,3:4)] ); - set( panel{whichpanel}, 'Parent', newfig, ... - 'Units', 'Normalized', ... - 'Position', [0 0 1 1] ); - end - end % nDock - -%-------------------------------------------------------------------------% - function nCloseAll( ~, ~ ) - % User wished to close the application, so we need to tidy up - - % Delete all windows, including undocked ones. We can do this by - % getting the window for each panel in turn and deleting it. - for ii=1:numel( panel ) - if isvalid( panel{ii} ) && ~strcmpi( panel{ii}.BeingDeleted, 'on' ) - figh = ancestor( panel{ii}, 'figure' ); - delete( figh ); - end - end - - end % nCloseAll - -end % Main function diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/gridflexpositioning.m b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/gridflexpositioning.m deleted file mode 100644 index 6a534e5..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/gridflexpositioning.m +++ /dev/null @@ -1,25 +0,0 @@ -% Copyright 2009-2013 The MathWorks Ltd. - -f = figure(); - -% Box Panel -p = uix.BoxPanel( 'Parent', f, 'Title', 'A BoxPanel', 'Padding', 5 ); - -% HBox -b = uix.HBox( 'Parent', p, 'Spacing', 5, 'Padding', 5 ); - -% uicontrol -uicontrol( 'Style', 'listbox', 'Parent', b, 'String', {'Item 1','Item 2'} ); - -% Grid Flex -g = uix.GridFlex( 'Parent', b, 'Spacing', 5 ); -uicontrol( 'Parent', g, 'Background', 'r' ); -uicontrol( 'Parent', g, 'Background', 'b' ); -uicontrol( 'Parent', g, 'Background', 'g' ); -uix.Empty( 'Parent', g ); -uicontrol( 'Parent', g, 'Background', 'c' ); -uicontrol( 'Parent', g, 'Background', 'y' ); -set( g, 'Widths', [-1 100 -2], 'Heights', [-1 -2] ); - -% set HBox elements sizes -set( b, 'Widths', [100 -1] ); diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/guideApp.fig b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/guideApp.fig deleted file mode 100644 index 1f1ceca0c948959dc39bb4149397d4f439914efa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2408 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 azdVgVQqKhCBbTSh;ZI3<3IYH;{V3=ZiLHSE diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/guideApp.m b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/guideApp.m deleted file mode 100644 index bcdda08..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/guideApp.m +++ /dev/null @@ -1,106 +0,0 @@ -function varargout = guideApp(varargin) -% GUIDEAPP MATLAB code for guideApp.fig -% GUIDEAPP, by itself, creates a new GUIDEAPP or raises the existing -% singleton*. -% -% H = GUIDEAPP returns the handle to a new GUIDEAPP or the handle to -% the existing singleton*. -% -% GUIDEAPP('CALLBACK',hObject,eventData,handles,...) calls the local -% function named CALLBACK in GUIDEAPP.M with the given input arguments. -% -% GUIDEAPP('Property','Value',...) creates a new GUIDEAPP or raises the -% existing singleton*. Starting from the left, property value pairs are -% applied to the GUI before guideApp_OpeningFcn gets called. An -% unrecognized property name or invalid value makes property application -% stop. All inputs are passed to guideApp_OpeningFcn via varargin. -% -% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one -% instance to run (singleton)". -% -% See also: GUIDE, GUIDATA, GUIHANDLES - -% Copyright 2009-2013 The MathWorks Ltd. - -% Edit the above text to modify the response to help guideApp - -% Last Modified by GUIDE v2.5 21-Jul-2010 07:36:25 - -% Begin initialization code - DO NOT EDIT -gui_Singleton = 1; -gui_State = struct('gui_Name', mfilename, ... - 'gui_Singleton', gui_Singleton, ... - 'gui_OpeningFcn', @guideApp_OpeningFcn, ... - 'gui_OutputFcn', @guideApp_OutputFcn, ... - 'gui_LayoutFcn', [] , ... - 'gui_Callback', []); -if nargin && ischar(varargin{1}) - gui_State.gui_Callback = str2func(varargin{1}); -end - -if nargout - [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); -else - gui_mainfcn(gui_State, varargin{:}); -end -% End initialization code - DO NOT EDIT - - -% --- Executes just before guideApp is made visible. -function guideApp_OpeningFcn(hObject, eventdata, handles, varargin) -% This function has no output args, see OutputFcn. -% hObject handle to figure -% eventdata reserved - to be defined in a future version of MATLAB -% handles structure with handles and user data (see GUIDATA) -% varargin command line arguments to guideApp (see VARARGIN) - -% Choose default command line output for guideApp -handles.output = hObject; - -% Update handles structure -guidata(hObject, handles); - -% Put a layout in the panel -g = uix.GridFlex( 'Parent', handles.uipanel1, ... - 'Units', 'Normalized', 'Position', [0 0 1 1], ... - 'Spacing', 5 ); -uix.BoxPanel( 'Parent', g, 'Title', 'Panel 1' ); -uix.BoxPanel( 'Parent', g, 'Title', 'Panel 2' ); -uix.BoxPanel( 'Parent', g, 'Title', 'Panel 3' ); -uix.BoxPanel( 'Parent', g, 'Title', 'Panel 4' ); -g.Heights = [-1 -1]; - -% UIWAIT makes guideApp wait for user response (see UIRESUME) -% uiwait(handles.figure1); - - -% --- Outputs from this function are returned to the command line. -function varargout = guideApp_OutputFcn(hObject, eventdata, handles) -% varargout cell array for returning output args (see VARARGOUT); -% hObject handle to figure -% eventdata reserved - to be defined in a future version of MATLAB -% handles structure with handles and user data (see GUIDATA) - -% Get default command line output from handles structure -varargout{1} = handles.output; - - -% --- Executes on button press in pushbutton1. -function pushbutton1_Callback(hObject, eventdata, handles) -% hObject handle to pushbutton1 (see GCBO) -% eventdata reserved - to be defined in a future version of MATLAB -% handles structure with handles and user data (see GUIDATA) - - -% --- Executes on button press in pushbutton2. -function pushbutton2_Callback(hObject, eventdata, handles) -% hObject handle to pushbutton2 (see GCBO) -% eventdata reserved - to be defined in a future version of MATLAB -% handles structure with handles and user data (see GUIDATA) - - -% --- Executes on button press in pushbutton3. -function pushbutton3_Callback(hObject, eventdata, handles) -% hObject handle to pushbutton3 (see GCBO) -% eventdata reserved - to be defined in a future version of MATLAB -% handles structure with handles and user data (see GUIDATA) diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/hierarchyexample.m b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/hierarchyexample.m deleted file mode 100644 index 8446eb5..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/hierarchyexample.m +++ /dev/null @@ -1,33 +0,0 @@ -%% A Hierarchy of Layouts Example -% This example shows how to use layouts within other layouts to achieve -% more complex user interface designs with the right mix of variable and -% fixed sized components. -% -% Copyright 2009-2014 The MathWorks Ltd. - -%% Open the window -% Open a new figure window and remove the toolbar and menus -window = figure( 'Name', 'A Layout Hierarchy Example', ... - 'MenuBar', 'none', ... - 'Toolbar', 'none', ... - 'NumberTitle', 'off', ... - 'Position', 200*ones(1,4) ); - -%% Create the first layout (vertical box) -% Inside this vertical box we place the axes -vbox = uix.VBox( 'Parent', window ); -axes( 'Parent', vbox ); - -%% Create the second layout (horizontal box) -% Inside this horizontal box we place two buttons -hbox = uix.HButtonBox( 'Parent', vbox, 'Padding', 5 ); -uicontrol( 'Parent', hbox, ... - 'String', 'Button 1' ); -uicontrol( 'Parent', hbox, ... - 'String', 'Button 2' ); - -%% Set the sizes -% We want the axes to grow with the window so set the first size to be -1 -% (which means variable size with wieght 1) and the buttons to stay fixed -% height so set the second size to 35 (fixed height of 35 pixels) -set( vbox, 'Heights', [-1 35] ) diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/minimizeexample.m b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/minimizeexample.m deleted file mode 100644 index 45b7590..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/minimizeexample.m +++ /dev/null @@ -1,54 +0,0 @@ -function minimizeexample() -%MINIMIZEEXAMPLE: An example of using the panelbox minimize/maximize - -% Copyright 2010-2013 The MathWorks Ltd. - -width = 200; -pheightmin = 20; -pheightmax = 100; - -% Create the window and main layout -fig = figure( 'Name', 'Collapsable GUI', ...' - 'NumberTitle', 'off', ... - 'Toolbar', 'none', ... - 'MenuBar', 'none' ); -box = uix.VBox( 'Parent', fig ); - -panel{1} = uix.BoxPanel( 'Title', 'Panel 1', 'Parent', box ); -panel{2} = uix.BoxPanel( 'Title', 'Panel 2', 'Parent', box ); -panel{3} = uix.BoxPanel( 'Title', 'Panel 3', 'Parent', box ); -set( box, 'Heights', pheightmax*ones(1,3) ); - -% Add some contents -uicontrol( 'Style', 'PushButton', 'String', 'Button 1', 'Parent', panel{1} ); -uicontrol( 'Style', 'PushButton', 'String', 'Button 2', 'Parent', panel{2} ); -uicontrol( 'Style', 'PushButton', 'String', 'Button 3', 'Parent', panel{3} ); - -% Resize the window -pos = get( fig, 'Position' ); -set( fig, 'Position', [pos(1,1:2),width,sum(box.Heights)] ); - -% Hook up the minimize callback -set( panel{1}, 'MinimizeFcn', {@nMinimize, 1} ); -set( panel{2}, 'MinimizeFcn', {@nMinimize, 2} ); -set( panel{3}, 'MinimizeFcn', {@nMinimize, 3} ); - -%-------------------------------------------------------------------------% - function nMinimize( eventSource, eventData, whichpanel ) %#ok - % A panel has been maximized/minimized - s = get( box, 'Heights' ); - pos = get( fig, 'Position' ); - panel{whichpanel}.Minimized = ~panel{whichpanel}.Minimized; - if panel{whichpanel}.Minimized - s(whichpanel) = pheightmin; - else - s(whichpanel) = pheightmax; - end - set( box, 'Heights', s ); - - % Resize the figure, keeping the top stationary - delta_height = pos(1,4) - sum( box.Heights ); - set( fig, 'Position', pos(1,:) + [0 delta_height 0 -delta_height] ); - end % nMinimize - -end % EOF diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/paneltabexample.m b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/paneltabexample.m deleted file mode 100644 index 54e377a..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/paneltabexample.m +++ /dev/null @@ -1,59 +0,0 @@ -%% A TabPanel Example -% This example shows how to use tabs within a layout. It also shows how to -% use the TabPanel Callback property to update other GUI elements when the -% visible tab is changed. -% -% Copyright 2009-2013 The MathWorks, Inc. - -%% Open the window -% Open a new figure window and remove the toolbar and menus -window = figure( 'Name', 'A TabPanel example', ... - 'MenuBar', 'none', ... - 'Toolbar', 'none', ... - 'NumberTitle', 'off' ); - -%% Create the layout -% The layout involves two panels side by side. This is done using a -% flexible horizontal box. The left-hand side is filled with a standard -% panel and the right-hand side with some tabs. -hbox = uix.HBoxFlex('Parent', window, 'Spacing', 3); -panel = uix.Panel( ... - 'Parent', hbox, ... - 'Padding', 5, ... - 'Title', 'Left' ); -tabpanel = uix.TabPanel( 'Parent', ... - hbox, ... - 'Padding', 0); - -%% Add a list on the left -% Note that we link the callbacks from the list to the tab selection and -% the tab callback to the list such that they are kept in sync. -panellist = uicontrol( 'Style', 'list', ... - 'Parent', panel, ... - 'String', {'1', '2', '3'}, ... - 'BackgroundColor', 'w', ... - 'Callback', @(a,b) set( tabpanel, 'Selection', get( a, 'Value' ) ) ); -set( tabpanel, 'SelectionChangedFcn', @(a,b) set( panellist, 'Value', b.NewValue ) ); - -%% Create some contents -% Each tab is filled with a list box showing some numbers -htab1 = uix.Panel( 'Parent', tabpanel, 'Padding', 5, 'Title', '1'); -uicontrol( 'Style', 'listbox', 'Parent', htab1, ... - 'String', {'1', '1', '1'}, ... - 'BackgroundColor', 'w' ); - -htab2 = uix.Panel( 'Parent', tabpanel, 'Padding', 5, 'Title', '2'); -uicontrol( 'Style', 'listbox', 'Parent', htab2, ... - 'String', {'2', '2', '2'}, ... - 'BackgroundColor', 'w' ); - -htab3 = uix.Panel( 'Parent', tabpanel, 'Padding', 5, 'Title', '3'); -uicontrol( 'Style', 'listbox', 'Parent', htab3, ... - 'String', {'3', '3', '3'}, ... - 'BackgroundColor', 'w' ); - -%% Update the tab titles -tabpanel.TabTitles = {'1', '2', '3'}; - -%% Show the first tab -tabpanel.Selection = 1; \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/visibleexample.m b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/visibleexample.m deleted file mode 100644 index 8a6f628..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Examples/visibleexample.m +++ /dev/null @@ -1,30 +0,0 @@ -%% Showing/hiding a panel -% -% This example opens a simple user-interface with a panel full of -% buttons. We can then show/hide the entire panel in one go. Note -% that the previous state of the buttons is preserved. -% -% Copyright 2009-2013 The MathWorks, Inc. - -%% Open a window and add a panel -fig = figure( 'Name', 'Visible example', ... - 'Position', [100 100 150 250], ... - 'MenuBar', 'none', ... - 'ToolBar', 'none', ... - 'NumberTitle', 'off' ); -panel = uix.BoxPanel( 'Parent', fig, 'Title', 'Panel' ); - -%% Put some buttons inside the panel -box = uix.VButtonBox( 'Parent', panel ); -uicontrol( 'Parent', box, 'String', 'Button 1' ); -uicontrol( 'Parent', box, 'String', 'Button 2' ); -uicontrol( 'Parent', box, 'String', 'Button 3', 'Visible', 'off' ); -uicontrol( 'Parent', box, 'String', 'Button 4' ); -uicontrol( 'Parent', box, 'String', 'Button 5', 'Visible', 'off' ); -uicontrol( 'Parent', box, 'String', 'Button 6' ); - -%% Try disabling the panel -set( panel, 'Visible', 'off' ); - -%% Try enabling the panel -set( panel, 'Visible', 'on' ); \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference.html deleted file mode 100644 index 0dcbbd7..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference.html +++ /dev/null @@ -1,190 +0,0 @@ - - - - - - - - Function reference - - - - - - - - - - - -
GUI Layout Toolbox 2.3.1previous pagenext page
- -

Function reference Go back up one level

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

1: Panels

- - - - - - - - - - - - - - - - - - -
1.1 uix.PanelArrange a single element inside a standard panel
1.2 uix.CardPanelShow one element (card) from a list
1.3 uix.BoxPanelArrange a single element in a panel with boxed title
1.4 uix.TabPanelArrange elements in a panel with tabs for selecting which is visible
1.5 uix.ScrollingPanelArrange a single element inside a scrollable panel

2: Boxes

- - - - - - - - - - - - - - - - - - - - -
2.1 uix.HBoxArrange elements horizontally in a single row
2.2 uix.VBoxArrange elements vertically in a single column
2.3 uix.HBoxFlexArrange elements horizontally with draggable dividers
2.4 uix.VBoxFlexArrange elements vertically with draggable dividers
2.5 uix.HButtonBoxArrange buttons horizontally in a single row
2.6 uix.VButtonBoxArrange buttons vertically in a single column

3: Grids

- - - - - - - -
3.1 uix.GridArrange elements in a two dimensional grid
3.2 uix.GridFlexArrange elements in a two dimensional grid with draggable dividers

4: Other functions

- - - - - - - -
4.1 uix.EmptyCreate an empty space
4.2 uix.trackingTrack usage
4.3 layoutRootReturn the folder containing the GUI layout toolbox
-
- - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference1_1.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference1_1.html deleted file mode 100644 index 5276a8a..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference1_1.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - uix.Panel - - - - - - - - - -
Function_referenceprevious pagenext page
- - -
- -

1.1: uix.Panel Go back up one level

- - - -
-

Arrange a single element inside a standard panel

-
-
obj = uix.Panel( )
-
creates a standard uipanel object but with automatic management - of the contained widget or layout. The properties available are largely - the same as the builtin uipanel object. Where more than one child is - added, the currently visible child is determined using the Selection property.
- -
obj = uix.Panel( prop, value, ... )
-
also sets one or more property values.
- -
- - -

uix.Panel properties

-
PropertyValueDescription
BackgroundColor colorspecColor to use for exposed areas of the layout background. This can be an RGB triple (e.g. [0 0 1]) or a colour name (e.g. 'b').
BeingDeleted on | offDeletion status.
BorderType none | etchedin | etchedout | beveledin | beveledout | lineType of border around the uipanel area.
BorderWidth positive integerWidth of the panel border.
Contents empty GraphicsPlaceholder array | array of graphics objectsChildren within this layout, regardless of HandleVisibility. Note that this can only be set to permutations of itself.
DeleteFcn function_handleFunction to call when the layout is being deleted.
FontAngle normal | italic | obliqueTitle font angle.
FontName stringTitle font name (e.g. Arial, Helvetica etc).
FontSize positive integerTitle font size.
FontUnits inches | centimeters | normalized | points | pixelsTitle font units for measuring size.
FontWeight light | normal | demi | boldTitle font weight.
ForegroundColor colorspecTitle font color and/or color of 2-D border line.
HighlightColor colorspec3-D frame highlight color.
Padding positive integerNumber of pixels of extra space around the outside of the layout.
Parent empty GraphicsPlaceholder array | figure | containerParent of the layout.
Position [x y w h]Position (x,y) and size (w,h) within figure or container.
Selection positive integer or emptyWhich child is visible.
ShadowColor colorspec3-D frame shadow color.
Tag stringTag to associate with layout.
Title stringTitle string.
TitlePosition lefttop | centertop | righttop | leftbottom | centerbottom | rightbottomLocation of title string in relation to the panel.
Type stringType of graphics object.
Units inches | centimeters | normalized | points | pixels | charactersPosition units.
Visible on | offVisibility.
- -

For example:

-
f = figure();
-p = uix.Panel( 'Parent', f, 'Title', 'A Panel', 'Padding', 5 );
-uicontrol( 'Parent', p, 'Background', 'r' )
-

-

-

- -
f = figure();
-p = uix.Panel( 'Parent', f, 'Title', 'A Panel', 'TitlePosition', 'CenterTop');
-b = uix.HBox( 'Parent', p, 'Spacing', 5, 'Padding', 5  );
-uicontrol( 'Style', 'listbox', 'Parent', b, 'String', {'Item 1','Item 2'} );
-uicontrol( 'Parent', b, 'Background', 'b' );
-set( b, 'Widths', [100 -1] );
-

-

-

- - -
See also: - - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference1_2.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference1_2.html deleted file mode 100644 index 1472165..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference1_2.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - uix.CardPanel - - - - - - - - - -
Function_referenceprevious pagenext page
- - -
- -

1.2: uix.CardPanel Go back up one level

- - - -
-

Show one element (card) from a list

-
-
obj = uix.CardPanel( )
-
creates a new card panel which allows - selection between the different child objects contained, making the - selected child fill the space available and all other children - invisible. This is commonly used for creating wizards or quick - switching between different views of a single data-set.
- -
obj = uix.CardPanel( prop, value, ... )
-
also sets one or more property values.
- -
- - -

uix.CardPanel properties

-
PropertyValueDescription
BackgroundColor colorspecColor to use for exposed areas of the layout background. This can be an RGB triple (e.g. [0 0 1]) or a colour name (e.g. 'b').
BeingDeleted on | offDeletion status.
Contents empty GraphicsPlaceholder array | array of graphics objectsChildren within this layout, regardless of HandleVisibility. Note that this can only be set to permutations of itself.
DeleteFcn function_handleFunction to call when the layout is being deleted.
Padding positive integerNumber of pixels of extra space around the outside of the layout.
Parent empty GraphicsPlaceholder array | figure | containerParent of the layout.
Position [x y w h]Position (x,y) and size (w,h) within figure or container.
Selection positive integer or emptyWhich child is visible.
Tag stringTag to associate with layout.
Type stringType of graphics object.
Units inches | centimeters | normalized | points | pixels | charactersPosition units.
Visible on | offVisibility.
- -

For example:

-
f = figure();
-p = uix.CardPanel( 'Parent', f, 'Padding', 5 );
-uicontrol( 'Parent', p, 'Background', 'r' );
-uicontrol( 'Parent', p, 'Background', 'b' );
-uicontrol( 'Parent', p, 'Background', 'g' );
-p.Selection = 2;
-

-

-

- - -
See also: - - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference1_3.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference1_3.html deleted file mode 100644 index be81c96..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference1_3.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - uix.BoxPanel - - - - - - - - - -
Function_referenceprevious pagenext page
- - -
- -

1.3: uix.BoxPanel Go back up one level

- - - -
-

Arrange a single element in a panel with boxed title

-
-
obj = uix.BoxPanel( )
-
creates a box-styled panel object with - automatic management of the contained widget or layout. The - properties available are largely the same as the builtin UIPANEL - object. Where more than one child is added, the currently visible - child is determined using the Selection property.
- -
obj = uix.BoxPanel( prop, value, ... )
-
also sets one or more property values.
- -
- - -

uix.BoxPanel properties

-
PropertyValueDescription
BackgroundColor colorspecColor to use for exposed areas of the layout background. This can be an RGB triple (e.g. [0 0 1]) or a colour name (e.g. 'b').
BeingDeleted on | offDeletion status.
BorderType none | etchedin | etchedout | beveledin | beveledout | lineType of border around the title and content areas.
Contents empty GraphicsPlaceholder array | array of graphics objectsChildren within this layout, regardless of HandleVisibility. Note that this can only be set to permutations of itself.
CloseRequestFcn function_handleFunction to call when the panel close icon is clicked. Note that if empty, no close button is shown.
DeleteFcn function_handleFunction to call when the layout is being deleted.
DockFcn function handleFunction to call when panel is docked or undocked. Note that if empty, no dock button is shown. See advanced maneuvers with panels for details.
FontAngle normal | italic | obliqueTitle font angle.
FontName stringTitle font name (e.g. Arial, Helvetica etc).
FontSize positive integerTitle font size.
FontUnits inches | centimeters | normalized | points | pixelsTitle font units for measuring size.
FontWeight light | normal | demi | boldTitle font weight.
ForegroundColor colorspecTitle font color and/or color of 2-D border line.
HelpFcn function handleFunction to call when the help icon is clicked. Note that if empty, no help button is shown. See advanced maneuvers with panels for details.
HighlightColor colorspec3-D frame highlight color.
IsDocked logicalIs this panel in a docked state. See advanced maneuvers with panels for details.
Minimized logicalIs this panel in a minimized state. See advanced maneuvers with panels for details.
MinimizeFcn function handleFunction to call when panel is minimized or maximized. Note that if empty, no minimize button is shown. See advanced maneuvers with panels for details.
Padding positive integerNumber of pixels of extra space around the outside of the layout.
Parent empty GraphicsPlaceholder array | figure | containerParent of the layout.
Position [x y w h]Position (x,y) and size (w,h) within figure or container.
Selection positive integer or emptyWhich child is visible.
ShadowColor colorspec3-D frame shadow color.
Tag stringTag to associate with layout.
Title stringTitle string.
TitleColor colorspeccolor for the title bar background.
Type stringType of graphics object.
Units inches | centimeters | normalized | points | pixels | charactersPosition units.
Visible on | offVisibility. See the visible example for more details.
- -

For example:

-
f = figure();
-p = uix.BoxPanel( 'Parent', f, 'Title', 'A BoxPanel', 'Padding', 5 );
-uicontrol( 'Parent', p, 'Background', 'r' )
-

-

-

- -
f = figure();
-p = uix.BoxPanel( 'Parent', f, 'Title', 'A BoxPanel', 'Padding', 5 );
-b = uix.HBox( 'Parent', p, 'Spacing', 5, 'Padding', 5  );
-uicontrol( 'Style', 'listbox', 'Parent', b, 'String', {'Item 1','Item 2'} );
-uicontrol( 'Parent', b, 'Background', 'b' );
-set( b, 'Widths', [100 -1] );
-p.FontSize = 12;
-p.FontWeight = 'bold';
-p.HelpFcn = @(x,y) disp('Help me!');
-

-

-

- - -
See also: - - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference1_4.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference1_4.html deleted file mode 100644 index 910b8f4..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference1_4.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - uix.TabPanel - - - - - - - - - -
Function_referenceprevious pagenext page
- - -
- -

1.4: uix.TabPanel Go back up one level

- - - -
-

Arrange elements in a panel with tabs for selecting which is visible

-
-
obj = uix.TabPanel( )
-
creates a panel with tabs along one edge - to allow selection between the different child objects contained.
- -
obj = uix.TabPanel( prop, value, ... )
-
also sets one or more property values.
- -
- - -

uix.TabPanel properties

-
PropertyValueDescription
BackgroundColor colorspecColor to use for exposed areas of the layout background. This can be an RGB triple (e.g. [0 0 1]) or a colour name (e.g. 'b').
BeingDeleted on | offDeletion status.
Contents empty GraphicsPlaceholder array | array of graphics objectsChildren within this layout, regardless of HandleVisibility. Note that this can only be set to permutations of itself.
DeleteFcn function_handleFunction to call when the layout is being deleted.
FontAngle normal | italic | obliqueTitle font angle.
FontName stringTitle font name (e.g. Arial, Helvetica etc).
FontSize positive integerTitle font size.
FontUnits inches | centimeters | normalized | points | pixelsTitle font units for measuring size.
FontWeight light | normal | demi | boldTitle font weight.
ForegroundColor colorspecTitle font color and/or color of 2-D border line.
HighlightColor colorspec3-D frame highlight color.
ShadowColor colorspec3-D frame shadow color.
Padding positive integerNumber of pixels of extra space around the outside of the layout.
Parent empty GraphicsPlaceholder array | figure | containerParent of the layout.
Position [x y w h]Position (x,y) and size (w,h) within figure or container.
Selection positive integer or emptyWhich child is visible.
SelectionChangedFcn function_handleFunction to call when the selected tab is changed. The event-data supplied has fields OldValue and NewValue giving the previously selected and newly selected tab indices.
TabContextMenus cell array of context menusThe context menu (or []) for each tab.
TabEnables cell array of on | offA list of the enabled state of each tab (default is all 'on').
TabTitles cell array of stringsA list of the names of the tabs with one entry per tab.
TabWidth positive integerWidth of each tab in pixels (default 50).
Tag stringTag to associate with layout.
Type stringType of graphics object.
Units inches | centimeters | normalized | points | pixels | charactersPosition units.
Visible on | offVisibility.
- -

For example:

-
f = figure();
-p = uix.TabPanel( 'Parent', f, 'Padding', 5 );
-uicontrol( 'Parent', p, 'Background', 'r' );
-uicontrol( 'Parent', p, 'Background', 'b' );
-uicontrol( 'Parent', p, 'Background', 'g' );
-p.TabTitles = {'Red', 'Blue', 'Green'};
-p.Selection = 2;
-

-

-

- - -
See also: - - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference1_5.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference1_5.html deleted file mode 100644 index 5739395..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference1_5.html +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - uix.ScrollingPanel - - - - - - - - - -
Function_referenceprevious pagenext page
- - -
- -

1.5: uix.ScrollingPanel Go back up one level

- - - -
-

Arrange a single element inside a panel and provide scrollbars if the panel is smaller than the element

-
-
obj = uix.ScrollingPanel( )
-
creates a new scrolling panel.
- -
obj = uix.ScrollingPanel( prop, value, ... )
-
also sets one or more property values.
- -
- - -

uix.ScrollingPanel properties

-
PropertyValueDescription
BackgroundColor colorspecColor to use for exposed areas of the layout background. This can be an RGB triple (e.g. [0 0 1]) or a colour name (e.g. 'b').
BeingDeleted on | offDeletion status.
Contents empty GraphicsPlaceholder array | array of graphics objectsChildren within this layout, regardless of HandleVisibility. Note that this can only be set to permutations of itself.
DeleteFcn function_handleFunction to call when the layout is being deleted.
Heights double vectorHeight of each of the children. Positive entries indicate fixed sizes in pixels, negative values indicate relative weights for resizing. The size of this vector must always match the size of Contents.
HorizontalOffsets double vectorHorizontal offset of each of the children. Each value is limited to between 0 and the difference between the width of child and the width of the panel. The size of this vector must always match the size of Contents.
HorizontalSteps positive double vectorHorizontal slider step for each of the children. The size of this vector must always match the size of Contents.
MinimumHeights double vectorMinimum height in pixels of each of the children. The size of this vector must match the size of Contents.
MinimumWidths double vectorMinimum width in pixels of each of the children. The size of this vector must match the size of Contents.
MouseWheelEnabled on | offMouse wheel scrolling status (default 'on').
Padding positive integerThis property is not honored by this class.
Parent empty GraphicsPlaceholder array | figure | containerParent of the layout.
Position [x y w h]Position (x,y) and size (w,h) within figure or container.
Selection positive integer or emptyWhich child is visible.
Tag stringTag to associate with layout.
Type stringType of graphics object.
Units inches | centimeters | normalized | points | pixels | charactersPosition units.
VerticalOffsets double vectorVertical offset of each of the children. Each value is limited to between 0 and the difference between the height of child and the height of the panel. The size of this vector must always match the size of Contents.
VerticalSteps positive double vectorVertical slider step for each of the children. The size of this vector must always match the size of Contents.
Visible on | offVisibility.
Widths double vectorWidth of each of the children. Positive entries indicate fixed sizes in pixels, negative values indicate relative weights for resizing. The size of this vector must always match the size of Contents.
- -

For example:

-
f = figure( 'Name', 'uix.ScrollingPanel Help Example' );
-f.Position(3:4) = 400;
-p = uix.ScrollingPanel( 'Parent', f );
-a = axes( 'Parent', p );
-[x, y, z] = peaks();
-surf( a, x, y, z )
-a.ActivePositionProperty = 'position';
-set( p, 'Widths', 600, 'Heights', 600, 'HorizontalOffsets', 100, 'VerticalOffsets', 100 )
-

-

-

- - -
See also: - - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference2_1.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference2_1.html deleted file mode 100644 index a3a79e8..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference2_1.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - uix.HBox - - - - - - - - - -
Function_referenceprevious pagenext page
- - -
- -

2.1: uix.HBox Go back up one level

- - - - - - -
-

Arrange elements horizontally in a single row

-
-
obj = uix.HBox( )
-
creates a new horizontal box layout with all properties set to defaults. - The output is a new layout object that can be used as the parent for other user-interface components.
- -
obj = uix.HBox( prop, value, ... )
-
also sets one or more property values.
- -
- - -

uix.HBox properties

-
PropertyValueDescription
BackgroundColor colorspecColor to use for exposed areas of the layout background. This can be an RGB triple (e.g. [0 0 1]) or a colour name (e.g. 'b').
BeingDeleted on | offDeletion status.
Contents empty GraphicsPlaceholder array | array of graphics objectsChildren within this layout, regardless of HandleVisibility. Note that this can only be set to permutations of itself.
DeleteFcn function_handleFunction to call when the layout is being deleted.
MinimumWidths double vectorMinimum width in pixels of each of the children. The size of this vector must match the size of Contents.
Padding positive integerNumber of pixels of extra space around the outside of the layout.
Parent empty GraphicsPlaceholder array | figure | containerParent of the layout.
Position [x y w h]Position (x,y) and size (w,h) within figure or container.
Spacing positive integerNumber of pixels of extra space to leave between elements in the layout.
Tag stringTag to associate with layout.
Type stringType of graphics object.
Units inches | centimeters | normalized | points | pixels | charactersPosition units.
Visible on | offVisibility.
Widths double vectorWidth of each of the children. Positive entries indicate fixed sizes in pixels, negative values indicate relative weights for resizing. The size of this vector must always match the size of Contents.
- -

For example:

-
f = figure();
-b = uix.HBox( 'Parent', f );
-uicontrol( 'Parent', b, 'Background', 'r' )
-uicontrol( 'Parent', b, 'Background', 'b' )
-uicontrol( 'Parent', b, 'Background', 'g' )
-set( b, 'Widths', [-1 100 -2], 'Spacing', 5 );
-

-

-

- -
f = figure();
-b1 = uix.VBox( 'Parent', f );
-uicontrol( 'Parent', b1, 'Background', 'r' )
-b2 = uix.HBox( 'Parent', b1, 'Padding', 5, 'Spacing', 5 );
-uicontrol( 'Parent', b2, 'String', 'Button1' )
-uicontrol( 'Parent', b2, 'String', 'Button2' )
-set( b1, 'Widths', [30 -1] );
-

-

-

- - -
See also:
  • uix.VBox - for creating a vertical arrangement
  • uix.HBoxFlex - for creating a horizontal arrangement with draggable dividers
- - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference2_2.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference2_2.html deleted file mode 100644 index 95fba30..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference2_2.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - uix.VBox - - - - - - - - - -
Function_referenceprevious pagenext page
- - -
- -

2.2: uix.VBox Go back up one level

- - - - - -
-

Arrange elements vertically in a single column

-
-
obj = uix.VBox( )
-
creates a new vertical box layout with all properties set to defaults. - The output is a new layout object that can be used as the parent for other user-interface components.
- -
obj = uix.VBox( prop, value, ... )
-
also sets one or more property values.
- -
- - -

uix.VBox properties

-
PropertyValueDescription
BackgroundColor colorspecColor to use for exposed areas of the layout background. This can be an RGB triple (e.g. [0 0 1]) or a colour name (e.g. 'b').
BeingDeleted on | offDeletion status.
Contents empty GraphicsPlaceholder array | array of graphics objectsChildren within this layout, regardless of HandleVisibility. Note that this can only be set to permutations of itself.
DeleteFcn function_handleFunction to call when the layout is being deleted.
Heights double vectorHeight of each of the children. Positive entries indicate fixed sizes in pixels, negative values indicate relative weights for resizing. The size of this vector must always match the size of Contents.
MinimumHeights double vectorMinimum height in pixels of each of the children. The size of this vector must match the size of Contents.
Padding positive integerNumber of pixels of extra space around the outside of the layout.
Parent empty GraphicsPlaceholder array | figure | containerParent of the layout.
Position [x y w h]Position (x,y) and size (w,h) within figure or container.
Spacing positive integerNumber of pixels of extra space to leave between elements in the layout.
Tag stringTag to associate with layout.
Type stringType of graphics object.
Units inches | centimeters | normalized | points | pixels | charactersPosition units.
Visible on | offVisibility.
- -

For example:

-
f = figure();
-b = uix.VBox( 'Parent', f );
-uicontrol( 'Parent', b, 'Background', 'r' )
-uicontrol( 'Parent', b, 'Background', 'b' )
-uicontrol( 'Parent', b, 'Background', 'g' )
-set( b, 'Heights', [-1 100 -2], 'Spacing', 5 );
-

-

-

- -
f = figure();
-b1 = uix.VBox( 'Parent', f );
-uicontrol( 'Parent', b1, 'Background', 'r' )
-b2 = uix.HBox( 'Parent', b1, 'Padding', 5, 'Spacing', 5 );
-uicontrol( 'Parent', b2, 'String', 'Button1' )
-uicontrol( 'Parent', b2, 'String', 'Button2' )
-set( b1, 'Heights', [30 -1] );
-

-

-

- - -
See also:
  • uix.HBox - for creating a horizontal arrangement
  • uix.VBoxFlex - for creating a vertical arrangement with draggable dividers
- - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference2_3.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference2_3.html deleted file mode 100644 index 9b70851..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference2_3.html +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - - uix.HBoxFlex - - - - - - - - - -
Function_referenceprevious pagenext page
- - -
- -

2.3: uix.HBoxFlex Go back up one level

- - - - - - - -
-

Arrange elements horizontally with draggable dividers

-
-
obj = uix.HBoxFlex( )
-
creates a new horizontal box layout with draggable dividers and with all properties set to defaults. - The output is a new layout object that can be used as the parent for other user-interface components.
- -
obj = uix.HBoxFlex( prop, value, ... )
-
also sets one or more property values.
- -
- - -

uix.HBoxFlex properties

-
PropertyValueDescription
BackgroundColor colorspecColor to use for exposed areas of the layout background. This can be an RGB triple (e.g. [0 0 1]) or a colour name (e.g. 'b').
BeingDeleted on | offDeletion status.
Contents empty GraphicsPlaceholder array | array of graphics objectsChildren within this layout, regardless of HandleVisibility. Note that this can only be set to permutations of itself.
DeleteFcn function_handleFunction to call when the layout is being deleted.
DividerMarkings on | offShow markings on the draggable dividers (default 'on').
MinimumWidths double vectorMinimum width in pixels of each of the children. The size of this vector must match the size of Contents.
Padding positive integerNumber of pixels of extra space around the outside of the layout.
Parent empty GraphicsPlaceholder array | figure | containerParent of the layout.
Position [x y w h]Position (x,y) and size (w,h) within figure or container.
Spacing positive integerNumber of pixels of extra space to leave between elements in the layout.
Tag stringTag to associate with layout.
Type stringType of graphics object.
Units inches | centimeters | normalized | points | pixels | charactersPosition units.
Visible on | offVisibility.
Widths double vectorWidth of each of the children. Positive entries indicate fixed sizes in pixels, negative values indicate relative weights for resizing. The size of this vector must always match the size of Contents.
- -

For example:

-
f = figure( 'Name', 'uix.HBoxFlex example' );
-b = uix.HBoxFlex( 'Parent', f );
-uicontrol( 'Parent', b, 'Background', 'r' )
-uicontrol( 'Parent', b, 'Background', 'b' )
-uicontrol( 'Parent', b, 'Background', 'g' )
-uicontrol( 'Parent', b, 'Background', 'y' )
-set( b, 'Widths', [-1 100 -2 -1], 'Spacing', 5 );
-

-

-

- - -
See also:
  • uix.HBox - for creating a horizontal arrangement
  • uix.VBoxFlex - for creating a vertical arrangement with draggable dividers
- - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference2_4.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference2_4.html deleted file mode 100644 index d405aac..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference2_4.html +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - uix.VBoxFlex - - - - - - - - - -
Function_referenceprevious pagenext page
- - -
- -

2.4: uix.VBoxFlex Go back up one level

- - - - - - - -
-

Arrange elements vertically with draggable dividers

-
-
obj = uix.VBoxFlex( )
-
creates a new vertical box layout with draggable dividers and with all properties set to defaults. - The output is a new layout object that can be used as the parent for other user-interface components.
- -
obj = uix.VBoxFlex( prop, value, ... )
-
also sets one or more property values from the list below.
-
- -

uix.VBoxFlex properties

-
PropertyValueDescription
BackgroundColor colorspecColor to use for exposed areas of the layout background. This can be an RGB triple (e.g. [0 0 1]) or a colour name (e.g. 'b').
BeingDeleted on | offDeletion status.
Contents empty GraphicsPlaceholder array | array of graphics objectsChildren within this layout, regardless of HandleVisibility. Note that this can only be set to permutations of itself.
DeleteFcn function_handleFunction to call when the layout is being deleted.
DividerMarkings on | offShow markings on the draggable dividers (default 'on').
Heights double vectorHeight of each of the children. Positive entries indicate fixed sizes in pixels, negative values indicate relative weights for resizing. The size of this vector must always match the size of Contents.
MinimumHeights double vectorMinimum height in pixels of each of the children. The size of this vector must match the size of Contents.
Padding positive integerNumber of pixels of extra space around the outside of the layout.
Parent empty GraphicsPlaceholder array | figure | containerParent of the layout.
Position [x y w h]Position (x,y) and size (w,h) within figure or container.
Spacing positive integerNumber of pixels of extra space to leave between elements in the layout.
Tag stringTag to associate with layout.
Type stringType of graphics object.
Units inches | centimeters | normalized | points | pixels | charactersPosition units.
Visible on | offVisibility.
- - -

For example:

-
f = figure( 'Name', 'uix.VBoxFlex example' );
-b = uix.VBoxFlex( 'Parent', f );
-uicontrol( 'Parent', b, 'Background', 'r' )
-uicontrol( 'Parent', b, 'Background', 'b' )
-uicontrol( 'Parent', b, 'Background', 'g' )
-uicontrol( 'Parent', b, 'Background', 'y' )
-set( b, 'Heights', [-1 100 -2 -1], 'Spacing', 5 );
-

-

-

- - -
See also:
  • uix.VBox - for creating a vertical arrangement
  • uix.HBoxFlex - for creating a horizontal arrangement with draggable dividers
- - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference2_5.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference2_5.html deleted file mode 100644 index 51602ac..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference2_5.html +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - uix.HButtonBox - - - - - - - - - -
Function_referenceprevious pagenext page
- - -
- -

2.5: uix.HButtonBox Go back up one level

- - - - - - -
-

Arrange buttons horizontally in a single row

-
-
obj = uix.HButtonBox( )
-
is a type of HBox specialised for - arranging a row of buttons, check-boxes or similar graphical - elements. All buttons are given equal size and by default are - centered in the drawing area. The justification can be changed as - required.
- -
obj = uix.HButtonBox( prop, value, ... )
-
also sets one or more property values.
- -
- - -

uix.HButtonBox properties

-
PropertyValueDescription
BackgroundColor colorspecColor to use for exposed areas of the layout background. This can be an RGB triple (e.g. [0 0 1]) or a colour name (e.g. 'b').
BeingDeleted on | offDeletion status.
ButtonSize [w h]The size for the buttons (all are given equal size).
Contents empty GraphicsPlaceholder array | array of graphics objectsChildren within this layout, regardless of HandleVisibility. Note that this can only be set to permutations of itself.
DeleteFcn function_handleFunction to call when the layout is being deleted.
HorizontalAlignment left | center | rightThe horizontal position of the buttons.
Padding positive integerNumber of pixels of extra space around the outside of the layout.
Parent empty GraphicsPlaceholder array | figure | containerParent of the layout.
Position [x y w h]Position (x,y) and size (w,h) within figure or container.
Spacing positive integerNumber of pixels of extra space to leave between elements in the layout.
Tag stringTag to associate with layout.
Type stringType of graphics object.
Units inches | centimeters | normalized | points | pixels | charactersPosition units.
VerticalAlignment top | middle | bottomThe vertical position of the buttons.
Visible on | offVisibility.
- -

For example:

-
f = figure();
-b = uix.HButtonBox( 'Parent', f );
-uicontrol( 'Parent', b, 'String', 'One' );
-uicontrol( 'Parent', b, 'String', 'Two' );
-uicontrol( 'Parent', b, 'String', 'Three' );
-set( b, 'ButtonSize', [130 35], 'Spacing', 5 );
-

-

-

- - -
See also:
  • uix.VButtonBox - for creating a vertical arrangement of buttons
  • uix.HBox - for creating a general horizontal arrangement
- - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference2_6.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference2_6.html deleted file mode 100644 index 544ec25..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference2_6.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - uix.VButtonBox - - - - - - - - - -
Function_referenceprevious pagenext page
- - -
- -

2.6: uix.VButtonBox Go back up one level

- - - - - - -
-

Arrange buttons vertically in a single column

-
-
obj = uix.VButtonBox( )
-
is a type of VBox specialised for - arranging a column of buttons, check-boxes or similar graphical - elements. All buttons are given equal size and by default are - centered in the drawing area. The justification can be changed as - required.
- -
obj = uix.VButtonBox( prop, value, ... )
-
also sets one or more property values.
- -
- - -

uix.VButtonBox properties

-
PropertyValueDescription
BackgroundColor colorspecColor to use for exposed areas of the layout background. This can be an RGB triple (e.g. [0 0 1]) or a colour name (e.g. 'b').
BeingDeleted on | offDeletion status.
ButtonSize [w h]The size for the buttons (all are given equal size).
Contents empty GraphicsPlaceholder array | array of graphics objectsChildren within this layout, regardless of HandleVisibility. Note that this can only be set to permutations of itself.
DeleteFcn function_handleFunction to call when the layout is being deleted.
HorizontalAlignment left | center | rightThe horizontal position of the buttons.
Padding positive integerNumber of pixels of extra space around the outside of the layout.
Parent empty GraphicsPlaceholder array | figure | containerParent of the layout.
Position [x y w h]Position (x,y) and size (w,h) within figure or container.
Spacing positive integerNumber of pixels of extra space to leave between elements in the layout.
Tag stringTag to associate with layout.
Type stringType of graphics object.
Units inches | centimeters | normalized | points | pixels | charactersPosition units.
VerticalAlignment top | middle | bottomThe vertical position of the buttons.
Visible on | offVisibility.
- -

For example:

-
f = figure();
-b = uix.VButtonBox( 'Parent', f );
-uicontrol( 'Parent', b, 'String', 'One' );
-uicontrol( 'Parent', b, 'String', 'Two' );
-uicontrol( 'Parent', b, 'String', 'Three' );
-set( b, 'ButtonSize', [130 35], 'Spacing', 5 );
-

-

-

- - -
See also:
  • uix.HButtonBox - for creating a horizontal arrangement of buttons
  • uix.VBox - for creating a general vertical arrangement
- - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference3_1.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference3_1.html deleted file mode 100644 index 4e91d7c..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference3_1.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - uix.Grid - - - - - - - - - -
Function_referenceprevious pagenext page
- - -
- -

3.1: uix.Grid Go back up one level

- - - -
-

Arrange elements in a two dimensional grid

-
-
obj = uix.Grid( )
-
creates a new new grid layout with all properties set to defaults. The number of rows and - columns to use is determined from the number of elements in the - Heights and Widths properties respectively. Child elements are - arranged down column one first, then column two etc. If there are insufficient - columns then a new one is added. - The output is a new layout object that can be used as the parent for other user-interface components.
- -
obj = uix.Grid( prop, value, ... )
-
also sets one or more property values.
- -
- - -

uix.Grid properties

-
PropertyValueDescription
BackgroundColor colorspecColor to use for exposed areas of the layout background. This can be an RGB triple (e.g. [0 0 1]) or a colour name (e.g. 'b').
BeingDeleted on | offDeletion status.
Contents empty GraphicsPlaceholder array | array of graphics objectsChildren within this layout, regardless of HandleVisibility. Note that this can only be set to permutations of itself.
DeleteFcn function_handleFunction to call when the layout is being deleted.
Heights double vectorHeight of each of the rows. Positive entries indicate fixed sizes in pixels, negative values indicate relative weights for resizing.
Padding positive integerNumber of pixels of extra space around the outside of the layout.
Parent empty GraphicsPlaceholder array | figure | containerParent of the layout.
Position [x y w h]Position (x,y) and size (w,h) within figure or container.
Spacing positive integerNumber of pixels of extra space to leave between elements in the layout.
Tag stringTag to associate with layout.
Type stringType of graphics object.
Units inches | centimeters | normalized | points | pixels | charactersPosition units.
Visible on | offVisibility.
Widths double vectorWidth of each of the columns. Positive entries indicate fixed sizes in pixels, negative values indicate relative weights for resizing.
- -

For example:

-
f = figure();
-g = uix.Grid( 'Parent', f, 'Spacing', 5 );
-uicontrol( 'Parent', g, 'Background', 'r' )
-uicontrol( 'Parent', g, 'Background', 'b' )
-uicontrol( 'Parent', g, 'Background', 'g' )
-uix.Empty( 'Parent', g )
-uicontrol( 'Parent', g, 'Background', 'c' )
-uicontrol( 'Parent', g, 'Background', 'y' )
-set( g, 'Widths', [-1 100 -2], 'Heights', [-1 100] );
-

-

-

- - -
See also:
  • uix.GridFlex - for creating a grid arrangement with draggable dividers
- - - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference3_2.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference3_2.html deleted file mode 100644 index 10574b1..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference3_2.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - uix.GridFlex - - - - - - - - - -
Function_referenceprevious pagenext page
- - -
- -

3.2: uix.GridFlex Go back up one level

- - - - -
-

Arrange elements in a two dimensional grid with draggable dividers

-
-
obj = uix.GridFlex( )
-
creates a new new grid layout with draggable dividers between elements. The number of rows and - columns to use is determined from the number of elements in the - Heights and Widths properties respectively. Child elements are - arranged down column one first, then column two etc. If there are insufficient - columns then a new one is added. - The output is a new layout object that can be used as the parent for other user-interface components.
- -
obj = uix.GridFlex( prop, value, ... )
-
also sets one or more property values.
- -
- - -

uix.GridFlex properties

-
PropertyValueDescription
BackgroundColor colorspecColor to use for exposed areas of the layout background. This can be an RGB triple (e.g. [0 0 1]) or a colour name (e.g. 'b').
BeingDeleted on | offDeletion status.
Contents empty GraphicsPlaceholder array | array of graphics objectsChildren within this layout, regardless of HandleVisibility. Note that this can only be set to permutations of itself.
DeleteFcn function_handleFunction to call when the layout is being deleted.
DividerMarkings on | offShow markings on the draggable dividers (default 'on').
Heights double vectorHeight of each of the rows. Positive entries indicate fixed sizes in pixels, negative values indicate relative weights for resizing.
Padding positive integerNumber of pixels of extra space around the outside of the layout.
Parent empty GraphicsPlaceholder array | figure | containerParent of the layout.
Position [x y w h]Position (x,y) and size (w,h) within figure or container.
Spacing positive integerNumber of pixels of extra space to leave between elements in the layout.
Tag stringTag to associate with layout.
Type stringType of graphics object.
Units inches | centimeters | normalized | points | pixels | charactersPosition units.
Visible on | offVisibility.
Widths double vectorWidth of each of the columns. Positive entries indicate fixed sizes in pixels, negative values indicate relative weights for resizing.
- -

For example:

-
f = figure();
-g = uix.GridFlex( 'Parent', f, 'Spacing', 5 );
-uicontrol( 'Parent', g, 'Background', 'r' )
-uicontrol( 'Parent', g, 'Background', 'b' )
-uicontrol( 'Parent', g, 'Background', 'g' )
-uix.Empty( 'Parent', g )
-uicontrol( 'Parent', g, 'Background', 'c' )
-uicontrol( 'Parent', g, 'Background', 'y' )
-set( g, 'Widths', [-1 100 -2], 'Heights', [-1 -2] );
-

-

-

- - -
See also:
  • uix.Grid - for creating a grid arrangement
- - - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference4_1.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference4_1.html deleted file mode 100644 index 69f06ee..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference4_1.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - uix.Empty - - - - - - - - - -
Function_referenceprevious pagenext page
- - -
- -

4.1: uix.Empty Go back up one level

- - -

Create an empty space

-
-
obj = uix.Empty( )
-
creates an empty space object that can be - used in layouts to add gaps between other elements.
- -
obj = uix.Empty( param, value, ... )
-
also sets one or more property values.
- -
- -

uix.Empty properties

-

The empty space is achieved using a container that monitors - its parent's color and changes its own to match.

-
PropertyValueDescription
BeingDeleted on | offDeletion status.
HandleVisibility on | offVisibility of the object.
Parent empty GraphicsPlaceholder array | figure | containerParent of the object.
Position [x y w h]Position (x,y) and size (w,h) within figure or container.
Tag stringTag to associate with object.
Type stringType of graphics object.
Units inches | centimeters | normalized | points | pixels | charactersPosition units.
Visible on | offVisibility.
- -

For example:

-
f = figure();
-box = uix.HBox( 'Parent', f, 'Spacing', 5 );
-uicontrol( 'Parent', box, 'Background', 'r' )
-uix.Empty( 'Parent', box )
-uicontrol( 'Parent', box, 'Background', 'g' )
-

- -
See also:
  • uix.HBox - for arranging widgets horizontally
- - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference4_2.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference4_2.html deleted file mode 100644 index 17a5ce7..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference4_2.html +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - uix.tracking - - - - - - - - - -
Function_referenceprevious pagenext page
- - -
- -

4.2: uix.tracking Go back up one level

- - -

tracks anonymized usage data

-
-
uix.tracking( p, v, id )
-
tracks usage to the property p for the version v and identifier id using Google Analytics.
-
uix.tracking( state )
-
turns tracking on or off.
-
state = uix.tracking( 'query' )
-
queries whether tracking is on or off.
- -
- -

For example:

-
uix.tracking('UA-45678-9','1.2.3','featurename')
- -
uix.tracking('on')
- -
state = uix.tracking('query')
-

state = 'on'

- - - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference4_3.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference4_3.html deleted file mode 100644 index 6507148..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Function_reference4_3.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - layoutRoot - - - - - - - - - -
Function_referenceprevious pagenext page
- - -
- -

4.3: layoutRoot Go back up one level

- - - - -

returns the folder containing the GUI layout toolbox

-
-
folder = layoutRoot( )
-
returns the full path to the folder containing the GUI Layout Toolbox.
- -
- -

For example:

-
folder = layoutRoot()
-

folder = 'C:\tools\glt2'

- - - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - -> diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/GUI Layout.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/GUI Layout.html deleted file mode 100644 index 4afaab9..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/GUI Layout.html +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Getting_Started.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Getting_Started.html deleted file mode 100644 index f9e5952..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Getting_Started.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - - Getting Started - - - - - - - - - - - -
GUI Layout Toolbox 2.3.1previous pagenext page
- -

Getting Started Go back up one level

-

- This chapter gives an overview of this package, including its purpose, -how to install it and any known issues at the time of release. -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Contents

-
- - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Getting_Started1.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Getting_Started1.html deleted file mode 100644 index a409dec..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Getting_Started1.html +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - What is GUI Layout Toolbox? - - - - - - - - - -
Getting_Startedprevious pagenext page
- - -

1: What is GUI Layout Toolbox? Go back up one level

- - -

GUI Layout Toolbox provides a package of MATLAB objects that allow for complex - arrangement of graphical user interface elements within a figure window. The - main capabilities provided are:

-
    -
  • Automatic element arrangement horizontally, vertically or in grids
  • -
  • Ability to specify fixed sizes or resizing weights for each element
  • -
  • Ability to "nest" layouts to produce virtually any element arrangement
  • -
  • Divider bars for user-resizing of elements
  • -
-

These element arrangement capabilities are designed to match those found as - standard in other user-interface toolkits such as Java Swing, GTK, QT etc.

- - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Getting_Started2.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Getting_Started2.html deleted file mode 100644 index 35df2fe..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Getting_Started2.html +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - Compatibility considerations - - - - - - - - - -
Getting_Startedprevious pagenext page
- - -

2: Compatibility considerations Go back up one level

- - - - - - - -

Section contents:

- - -
    -
- - -
    -
-

- -

 2.1: Minimum MATLAB version Go back up one level

- -

This is version 2 of GUI Layout Toolbox, designed to work with the new - MATLAB graphics system that was introduced in R2014b.

-

Version 1 works with MATLAB releases prior to R2014b that use the old - graphics system.

-

- -

 2.2: Compatibility with version 1 Go back up one level

- -

If you are upgrading from version 1, there are a number of compatibility - considerations:

- -

Package name

-

Version 1 classes were contained in the package "uiextras". Version 2 classes are -contained in the package "uix". In version 2, a package "uiextras" is included -to provide support for legacy code. Classes in "uiextras" extend -corresponding classes in "uix", and contain only compatibility-related -code.

- -

Contents property

-

The contents of version 1 objects were accessible via the property Children. -The contents of version 2 objects are accessible via the property Contents. -Version 2 objects also provide a property Children, but this controls the -vertical stacking order rather than the layout order. Legacy code that accesses -Children will run without error, but will not achieve the desired change in -layout order, and should be modified to access Contents instead.

- -

An upcoming release of version 1 will include support for code that references -contents via Contents. That way, code modified to work in version 2 will also -work in version 1.

- -

The background to this change is as follows. Version 1 objects were wrappers -for built-in graphics objects, and presented contents in layout order via -the property Children. Version 2 objects extend built-in graphics objects, -and as such, inherit properties, methods and events. One such property is -Children which is used to control the top-to-bottom stacking order. -MATLAB stacking rules, e.g. controls are always on top of axes, mean that -some reasonable layout orders may be invalid stacking orders, so a new -property for layout order is required.

- -

Auto-parenting

-

The new MATLAB graphics system introduces unparented objects, i.e. those with property Parent -empty. The new system also introduces a separation between formal class constructors, e.g. -matlab.ui.container.Panel, and informal construction functions, e.g. uipanel. -Construction functions are auto-parenting, i.e. if Parent is not specified then it is set to -gcf, whereas class constructors return objects with Parent empty unless -explicitly specified. Version 2 presents a formal interface of class constructors which follow this new -convention.

- -

Classes in "uiextras" are auto-parenting so the behavior of legacy code is -unchanged. However, best practice is to specify parent explicitly during -construction.

- -

Defaults mechanism

-

Version 1 provided a defaults mechanism (uiextras.get, uiextras.set -and uiextras.unset) that mimicked get and set in the MATLAB -graphics system itself. This feature has been removed from version 2. Users should use an -alternative programming pattern, e.g. factory function, to create objects with standard settings.

- -

Enable and disable

-

Version 1 provided a mechanism to enable and disable container contents using the property -Enable. This feature has been removed from version 2. Users should enable and disable -controls directly rather than via containers.

-

For more commentary, see this article.

- -

Other property name changes

-

A number of property names have changed to achieve greater consistency -across the package. For example, RowSizes and ColumnSizes in -uiextras.Grid are now Heights and Widths in uix.Grid. The package -"uiextras" provides support for legacy property names.

-
    -
  • RowSizes in "uiextras" is Heights in "uix"
  • -
  • ColumnSizes in "uiextras" is Widths in "uix"
  • -
  • ShowMarkings in "uiextras" is DividerMarkings in "uix"
  • -
- -

Property shape changes

-

Version 2 contents companion properties are now of the same size as Contents, -i.e. column vectors. In version 1, these properties were row vectors. The -package "uiextras" provides support for legacy property values.

- -

Tab selection behavior

-

In version 1, after adding a tab to a tab panel, the new tab is selected.

-

In version 2, the original selection is preserved, except if the tab panel was - empty, in which case the new tab is selected. This is consistent with the - behavior of uitabgroup.

- - - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Getting_Started3.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Getting_Started3.html deleted file mode 100644 index ef65040..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Getting_Started3.html +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - - Release notes - - - - - - - - - -
Getting_Startedprevious pagenext page
- - -

3: Release notes Go back up one level

- -

- The GUI Layout Toolbox version numbers take the form major.minor.iter. The - current version you have installed can be checked by typing ver - at the MATLAB command prompt. -

- - - - - - - - - - - - - - - - - - -

Section contents:

- - -
    -
- - -
    -
-

- -

 3.1: Version 2.3.1 Go back up one level

- -
    -
  • Released 1 February 2017
  • -
  • Specify minimum width and height of contents in uix.ScrollingPanel
  • -
  • Update contents position while dragging uix.ScrollingPanel scrollbox
  • -
  • Scroll uix.ScrollingPanel using mouse wheel
  • -
  • Updated toolbox logo
  • -
  • Updated documentation
  • -
-

- -

 3.2: Version 2.3 Go back up one level

- -
    -
  • Released 24 November 2016
  • -
  • Added scrolling panel
  • -
  • Expand and collapse box panel by clicking on title
  • -
  • Fixed G1493103 "Error on construction behavior is inconstistent with builtin objects"
  • -
  • Updated documentation
  • -
-

- -

 3.3: Version 2.2.2 Go back up one level

- -
    -
  • Released 22 August 2016
  • -
  • Fixed G1175938 "Cannot use data cursor mode with GUI Layout Toolbox containers"
  • -
  • Fixed G1367337 "Update flex container pointer on mouse press event"
  • -
  • Fixed G1380756 "Space behind TabPanel tabs should match parent color"
  • -
  • Updated documentation
  • -
  • Added anonymous tracking of version, operating system and usage to help - us prioritize the improvements we should work on
  • -
-

- -

 3.4: Version 2.2.1 Go back up one level

- -
    -
  • Released 26 February 2016
  • -
  • Fixed G1346921 "Mouse pointer gets confused when moving between adjacent flex containers"
  • -
  • Fixed G1357340 "BoxPanel property ForegroundColor is initialized incorrectly"
  • -
-

- -

 3.5: Version 2.2 Go back up one level

- -
    -
  • Released 18 December 2015
  • -
  • Improved box panel title bar appearance
  • -
  • Changed selection behavior of uix.TabGroup to match that of uitabgroup when the selected tab is removed
  • -
  • Fixed G1253937 "uix.TabPanel/redrawTabs fails" (R2015b)
  • -
  • Fixed G1292238 "uix.BoxPanel/redrawBorders fails" (R2015b)
  • -
  • Fixed G1330841 "mouse-over-divider detection does not work for docked figures" (all)
  • -
  • Fixed G1332109 "uix.Empty background color does not match that of its Parent" (all)
  • -
  • Fixed G1334867 "cannot add axes to container" (R2016a prerelease)
  • -
  • Removed internal helper classes uix.AncestryObserver, uix.LocationObserver, uix.VisibilityObserver
  • -
  • Updated documentation
  • -
-

- -

 3.6: Version 2.1.2 Go back up one level

- -
    -
  • Released 29 May 2015
  • -
  • Fixed G1250248 "uix.Empty becomes visible in a panel"
  • -
  • Fixed G1250249 "missing property Selection of uix.BoxPanel"
  • -
  • Fixed G1250808 "uix.TabPanel context menus are orphaned when reparenting to a different figure"
  • -
  • Updated documentation
  • -
-

- -

 3.7: Version 2.1.1 Go back up one level

- -
    -
  • Released 15 May 2015
  • -
  • Added context menus on uix.TabPanel tab labels (G1245669)
  • -
  • Fixed G1164656 "cannot set relative tab widths"
  • -
  • Fixed G1019441 "property RowSizes of uiextras.GridFlex sets heights not widths"
  • -
  • Fixed G1165274 "missing properties RowSizes, MinimumRowSizes, ColumnSizes, - MinimumColumnSizes of uiextras.Grid, uiextras.GridFlex"
  • -
  • Fixed G1218142 "contents are lost when reordering via property Children"
  • -
  • Protected against G1136196 "segv when setting child visibility from 'off' to 'on' in response to being reparented"
  • -
  • Updated documentation
  • -
-

- -

 3.8: Version 2.1 Go back up one level

- -
    -
  • Released 2 October 2014
  • -
  • Initial version for MATLAB R2014b
  • -
  • Versions 2.0.x were for prerelease testing
  • -
- - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Getting_Started4.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Getting_Started4.html deleted file mode 100644 index bdbd888..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Getting_Started4.html +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - Installation - - - - - - - - - -
Getting_Startedprevious pagenext page
- - -

4: Installation Go back up one level

- - -

- GUI Layout Toolbox is provided as a MATLAB toolbox file (.mltbx). -

-

- For instructions on installing and uninstalling, see the section on - managing toolboxes - in the MATLAB documentation. -

- - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Getting_Started5.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Getting_Started5.html deleted file mode 100644 index f10756e..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Getting_Started5.html +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - Support - - - - - - - - - -
Getting_Startedprevious pagenext page
- - -

5: Support Go back up one level

- - -

- This toolbox is not a MathWorks supported product. However, if you - have problems, suggestions or other comments, please contact the - authors: -

- -

If you like this toolbox, help others to find it by leaving a rating - and comment on the MATLAB Central File Exchange. -

- - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Getting_Started6.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Getting_Started6.html deleted file mode 100644 index e3930c3..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Getting_Started6.html +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - Acknowledgements - - - - - - - - - -
Getting_Startedprevious pagenext page
- - -

6: Acknowledgements Go back up one level

- -

The authors wish to acknowledge the earlier contributions of the following MathWorks - consultants to this area:

-
    -
  • Brad Phelan
  • -
  • Malcolm Wood
  • -
  • Richard Lang
  • -
  • Paul Kerr-Delworth
  • -
- - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - -> diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/HierarchyExample.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/HierarchyExample.html deleted file mode 100644 index c4c9f48..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/HierarchyExample.html +++ /dev/null @@ -1 +0,0 @@ - > diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/Border.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/Border.png deleted file mode 100644 index 0e58e8ac7be3084747a2ae9df77727c5233db64f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3736 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 diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/BoxInBox.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/BoxInBox.png deleted file mode 100644 index 799d725ca5caa612729e8352fe8e0d24340ec78f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4359 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 diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/BoxPanel.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/BoxPanel.png deleted file mode 100644 index e261f753c583281d3b08b01a98060f7e09b1b63d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1708 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 kaQZF>UOC9g; z+>%=xA+llaG|b&5WBcly@A;nd{hsfi@cH3+o*$m`oaemX=RB|TJiBFMCVWiln1FzQ zu!Xsa?S7s69Y_ALpKXo=F721YVHVb=hbIq63mgFg8H2F`0>`{9O#ZkVkF7J53xcpZBC$_Xlq}>&Ccs9Wp`~hH; z5=z2LPm7OX+htDbf1CKM`&C0OlFzK_gm7?96RDSUdh*w5U2q zCj-7E)yX>Pn3|c^p}HJonKsWxY3wPKM+5n|FizJ1aSe5_>(wEpjVjdqtYw_BSzM?x zgn>h33yEUqx$D)@byD58?q_|L{DK_>nNXg||Kj|hW?P$t>$&}@l$wmI@9RT985WyaKm%u?=&&WEfs#wyNjHvEupa$Vy{UMkkl*-WCOC^amw53MvH z3rb$=RSpWxa%ZztU01^3^=L8e9aW@(GIvOpd59JETMih6^ywpSFlV;IDm0HT;Pw@P zaA#8Mi*k_f|IpOd_*%Yw&2s}19;GST_0|8+Xis38Y&mS10P!Z@EOoVEq_PENBgv;kBRUMe=Ju95 zX*mFfEM$Mj;c#n)y*zGjeS2}!=lXU`XXW%TVQ6_eh~Jli&+L6emGhY|jmleU;t!)i z*svSiBaM10Rr|O3sFPPDN zvfa%hYt!iCZ;p3emwXw2dC;E*Yvg{YTEv)x2pke(7Mqus_t-gnHp4db0)fA?^|LSU zth(~0FYZJ#nauvnRo8>)FuKZi)y*$9O84ivuP)JUesX{mvs13~_l7bu7%&DjKt`J!f_)}3qIWGtbp5j`uVm7g10S3r&+V>v-E*n)C$z;1;JcLF#-3p z6dzFJlq=xMrhy80$vYitu8gC%R+fm)WwgGeF+nL^H3yBz2_

T5EqB(?*4 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 diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/BoxPanelHelpExample.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/BoxPanelHelpExample.png deleted file mode 100644 index 2ed2506fb224c948d969756846f1ce9faa915f9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1761 zcmeAS@N?(olHy`uVBq!ia0vp^&p?=i2}t^J>?NMQuIvvPr5QMk@9Ztu&cMJn z)zif>q+-t7+xxSn(`Al-d>_2WEO@S;9_#hyUZ%f>Vx5x}6}rq4#hLh6?l?%XM(q+Q z?XU?+IelSAql>qSfkxH>fj}RgcczP0e^gLvD&VN_-m~K$^SWjo*KLoxV{~5IUHxsU zam}^ydG-0*<>?)FA0O}M{q^W$#ojpiZ(3}6a{c`?BdzAjee+^l9k%-K`}8|^?`{>m zaq8~fyBoiSKcD1%IQCS-nm-?0%f;Oj-J}~0?@NF4YM87T*#SY7?wcG1tY??b=~A$e zXW6J=VgII;$Ll}ys`)JwJnv7;xjJ9+%p|{fgPA&0)`$L`>GU(oV5ZEsBES2cY(SB@ zXIHT))?7M#lFf0=_II?}oj;>fV_j{#f%}}4d%ycPn>i&8#@@eY zmMG@yul;&x%?$Y~r~IN%EMb@9Syh+x?&zE4-_NCUi=B;j+p%T7=kJ;2wW}m!=I}Q~ z7|dMr>#h6mXV34~NV9Bw@MuruWu+RqU(yBfzn8C`a`R62&7JDv^WsnP7o;xNO#%7# z+M`d;&fdIs#OGAb)(PgtZ*|}7xixY9V%4k1Z*7W8U2n5{*6f+L>i!;ov}xw)D$)Hm zyQ?zQw*Iwxy>@nSzBT{E3+EetZ=1iZ{?Dzbox3ByM48!bExNw%%Nd^}b7wW%32*$P z-(5UZb!N@AN}*F#qQ!c*Kif?2y|nqRV&wXyw1=m)Ew4vJ^v^W4`abvF#OS%o?&qCd zz8ELW-o8Q3*!a2K?*Feo?d_U5bumbxU-$mk?*CpH=FVcr{u?$(Olk$98GqAnzP-O+`kfWqlJDj}+`u_&=P4(ilcQ)f z1ZW-tXCi+0SM9aCQ#z+HaK=Tqgfo9rF2DRzaJ`TXk`n*3GRdoYT|ZkB46L&lJYD@< J);T3K0RVraGpzss diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/BoxPanelMinimizeExample1.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/BoxPanelMinimizeExample1.png deleted file mode 100644 index 739539d944e2efb518c50146cd0ee190b6d2d96a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4312 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 m|4{6e{h{1K;75DY*I1qhxu1KVm>BDEu^(jz z0D$X?KI{ggZUF$$S=IxLH@4T#^Nb4YeZ}Z9cmf0gSQRb}%?JPhuf`RaHsW5=(x|o} zVqg#aWo3(C0as>M-#+CzuW6ih#R`HtKO6~@P>FoiA;8Cf@~PsvwlLp5S;-G!Pa;_a z! zW2It_(i-U1rTsDkO{r!}A8-{6fr(vTA*2-!+3uBBxn|aOYrnZbCla2(CNT@ULITE| zN1j+0>K}Y?SqvYB^9h_HZlctPYI|14G7ItS$S$MV5z{WLt=)}neVVjif>%taxEZ1R zSY~-L+L64BxLK$cTD>&w3KpO0j@UrSkg#?_T@_d4@s1+h9f8+{ z=bSqIy07IHBne}Z-5ygoF;K%w0>nusDXamXTVysI;sZp+a0v-_le^mDsmrS@Kyv-S z%<9-Rl@`v#>*wYq&F#_COJJc2xL0lQwVlP2v6pnHn_B$9UAx*re_zx%H3`Dhv+c0k z7Vn{DQ6_peSwm2h7(ye}D2*~Rhr58f9|39n?==LjA{J)yXr?BHH(BpLXwl+-J-dTTyn$!Ih^k%_D)^up$ z6OR9$-@5EmYE8!ZtrYbA`NfJc$>lWhILL6KtNC#4$#B9l$9Z}hlXLDk44F_6S zU#sQx_dZFTs>fm3yqz`4B0v6T840{1q7Yt(MV&ug`o)T-bG<(G@C#O!NSLgtMEal2 z{u}L0+ZVy%IvC81UPNLft+cdMO@lMMac8F*g$hD#PBy8l@5u@n-?n-F^Q*81G2XvI zBy^Uq!TMJ=g+W*!rjVG&Q1q8hLs_?4lfFJhRlT~QXSp<7ZZWN!TSAN}o9%E`BNmJ{ zBy?uM!3UaBaXu$p*Q+PtwYy@U9v%HTJinK&oQaj8M;wvQ#L7&*EReM?l>y~Y zRP6KRz)a#XzTmzf9_aDnn3W|Xz6xHB`cs>&)yA=PuxO@w&63wAxI%=9h9E8K2k!-~ z;eZHErMZ7o)b!sJ5dGK>&shoBKQ~)|39eM_Rri3Qr5bfj08^e% zl-jr6YJ>I2HhKX{MQh%h10d_RH$z_)#i~vsXg$!aU5j*~+|EV?o09F9BwR8k#pLNE z;+@Z%ub$vgN}IM{Pj327Cq9z$wKO9%$3dN!6S*>bl-fq0Rc}nmev1_CC5`0S(4^mN zx%cM|)!f0Wkb2oAOSdI#Vm}ui1$`2MWu|j)Zd^yq#B5IaDqrM{vd6&U3}J znY{vGK=u8Un^`!&iW*ysn`_pOM{DR)H378B%1XW`uxXMhIjA=j=U;rIGo+5SKQ!OT z7m|%&hPg{+CfEPcp!~b!4eluFuC1;41ah;-8x(HS=~OyYKrYtW$H#|AQ$2lGszI*q z+>6gXL(Iohy9ekOPP_Pqemu@+th>PId$iapC`n&pbIw%aubjh(T>@qVhGCk2}<=4W| zjsY|1d84%#*NUY~leH+mU&|gmU!BvTOAAtU^QI`)cI;m6Yb>!!SWC^|pKvp#c6^zf zep9y>{F%#R_sh0kDsk_OmwQZB?hxwTLl9tBSnM&>OZT9% zpL%~!`9TcYk%=?`aY1(7_KQ{qJ|C==iQW(Xplvt!hm)%EkeZjcn`V7Wa=nDZU1g<) zUcJgyDt2IRUyARciE}%bvig*_rhlMzQOWu2%AN61;>XkZv?$W+DW$XL zlQn4MMiK8uPo02b^Ja;lOm)9IZj{!u* zTEJmUd3nh#7I%v8Nc_k0Xo8w(o|WnpAl1{ocH-q1iHYV8tMt#aE<&K24Z~_TcbBRN zr%pkETR3B56_d8H=Kfo_IO82CSjN>bEi|~x&G6;nBrfqZDbpb{(F(sFfjuS5nza58 z8@v6BaUZan(h@&W3bVzoFTRRg58`GAuZX@w%TNYLq=j#?0(^TIL#uU*iAcef#m$c< zDjwL&V*f7rKlk)s*TjlGe#qZUFwklVj<-#;JL%OXy|;rks9(5>=0!h;6!jvn4JXJK z%p>Z2!OltyKC%j6p2}Dy8?V33tC;TxS=4SXMAJ!6M;^}r@TLp!f{PD{wQmuXxjx$2 z;+)LA_}GgkklIrlfKe<#$6eP))O_nQRFKenPGO$`emZ)k>f$2? zCdX)d=7W?Y*yXfVbpQXMbK?h&h%?YM?@Hzn*9>Nc8_Jc*={ecyQNxH4H|F*8VonG) zS-VPR31<-BmdMoPS2$Gf^s zaA(2CyalQl(+$+A9 zx8Su@RO#D2qP*Ii#Z8d{{JUF0n};r#dhN3Schi+2_(WwlNj^5f+1dH}pjJI`I43c5 z7VG#4S|00JS{5tiY{9a_48Q|W@o|)yGB?_9`xfJgfghKaM@3ggs|JX~SbYh`w(3d~ z2FERQ8YnXDiJ5>a*}WmpC2C*-1EwWRzbwoWSvyl_c|K#94^oRKT zMEkqp_)FAH-7V8>LcvHj$paUMk5)K<#T1$QM-pG{?lhxml7QETwPVUVtqq0 zw<7-0oK8Tuy#(brF_g3#Dhaf71QxBkxHGo63qW2piDBj7ep`A&?~vCjoa>(3sB@o% ziAl?mFD|TrS}0kk2!^BhYE^nq&K;)Cxt)qAzCPlv@UU9@ZW^18d94Kpi?o|M5EsIX z10+W7ipl>WheU?9PAo0|o`2vO0X+C8JatRbLpwVhD;#$zZEXNznGCs13&$6ebBn4Y zL;X-Z8Sg3TW;Rje!fNl05jTFn9^Q7YrOqVaxzz0|d7!(oa`wBf)!X8E zQ?=g>JCsG>&a9g<0&8jxpV4$+$3O}!O`Ilhy9bY&d|tH=|A#=l%PmUT^(#3sgf znTVZD^x7mcfzkk^c?R_uLj738xav2U}^Il8;9oGmrD{+_ik$W|d9= zG2FPi*iN6xT2~Pc^i&pJVEtFeE>tjqwh!VxIle7VR|V+&6UaBa)U@c(q&0($dtz)na>Jb(M)DKZp&3QCerVv8BWjAJhDplXlMU!v? zo*eQhrGd)JFvgh71f|aV^_T;W|LopnF=e%%W^&8~y|<(WOnE<5RWw(At=-}-vR}w1 zMwBS}Q3rPoxGzE#oqc~0d~7>nAHUFuz!4JalDF9%on_XEv&wIt-xw-5RL_WvfYKrN z(v1bXwEH$EY@^5q6=r0E*isp$y#pcHH93Y?S3Ilyz3oaz2rWQWGvJd7k9>#)Tz&vit^*OAdeV>ViWL|=BIqb-|TLG?IHiqS2vJU$jts8D5 diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/BoxPanelMinimizeExample3.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/BoxPanelMinimizeExample3.png deleted file mode 100644 index d0c77cd72749023a7b9e90472de700f8d926c96b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3342 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 CJaKXW diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/CardPanel.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/CardPanel.png deleted file mode 100644 index 9d6708d4a1bc2cc9420b9f9a0f57e73a1f735319..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 791 zcmeAS@N?(olHy`uVBq!ia0vp^&p?=i2}t^J>?NMQuIvvPr5QMkR_}69WME)A z?djqeQZeW4wT-!l0wmlny1Tq*J=7F;B)dW||1g7`VlGREgWwwNxtI6u|J4<}=kmVy z%vSsQbB{~ocw#2O=LGQ%guUT89D9#^xG-NC9c2z8eIKgX725G{rr<; zlVkMm|F>cLw{0DN-@i>qJf=yU6jF{%Qt|Fd>4cdwDmWS-I1|J3-7dcc&<;OXk;vd$@?2>=;FHlP3i diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/CombineBoxes.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/CombineBoxes.png deleted file mode 100644 index 8156ba39126a251ad56b28de781cc52f4d38994c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1687 zcmeAS@N?(olHy`uVBq!ia0vp^&p?=i2}t^J>?NMQuIvvPr5QNPZ(rE5j)8&A z+tbA{q+-t7yY?QpGi8o{JpaDnb;5$zQ@P*v^UaO1n#Q(7Y+bfOa^Q5S7YX@)&c3?j z-L8G7Fkx%*g4V}RoL2sI?DJdN9sICwNyLd;%9~FYANDUcyt-RU&ENjs@7BY~|7NJi z-#_Lq=;Oq} zi1HAaIcduCoo43A?^%B6oV;`?=#4Fd`h+jP|K6x(@N3wtb7lez`Sk9wx3!f`m4EKM zH!eOpnp=@aPjjl5;P=PtW;{R9y7;8mtFKkUH_um2e*SafbmQ}vE%WBNt7vEDzdvMQ z{(1jloAUzcgCoi;f7!SCJ8;}~ejn>MN&EPnHPJDq5p!NBPI_|f<@SoGr9mqrfC12H z`(np)NvH6t|N8QkNsClxFExFcx6v>C-r4*6r-jJXR&DNm^|keRJ+Ho9Fvso4sOY!z z9_Xc~W@oRCxU-`$If>uuT4mc^dGme0mu@cBom*-3|F2h2oYm^w`A%C>W?!mW9=PUy zeSlT<#@n?fe|AOe$yxIzqb?&b#`=?J{GHW13jVXbeVX$zHaM#H;}x~YR|g`VN6!8G z+3#P{JL$cD_6E+~`(ux^@y!|OH)mIc?m7G3E@17-ztg*FBco1VnzlqImsf0((~Wy8 z;?7^X=JvJfW9ErVx86;@Eq(QPWEA(?RL__E;g|ooPEl7~S(0$5-+Eu=z4sxw11pJnqY%H#Mbx#=^ZZHHI!CZxa?Y zPxSP%&nWwrRG#>S?dTG=&st)>D|Z*T1}$Br&3^w^xVC4Zr{TFGp|# zn5(zycJBw_w;N`h{Aav-Qy5>os8ji;-^Up))TXyq9?CebSPvE7F@&p3J`f>$h+3Hh9OL*KQCoz1?sA(Wg^Y zGTQ?@C*2h&Tl%ndNs{f3@WRsv@Ak*|A9#Iz|Gvu4X}P(&JhoedR+jKRv;1?=w1i1= z^+6kVz5Z`n)pst-{d~A!j!J4~h2bW-p8?0$p5MFi+~@9DD)q?>#wy$cjNJd+erj`G zeSd#(PvyL|7gJt;t(sChNB!i5|5wxIrR%-?{(IwhhB*w#S^uZBLs-=5Y}c-1z?z1^ M)78&qol`;+09;4xg8%>k diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/DefaultsFigure.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/DefaultsFigure.png deleted file mode 100644 index e0446a1301352a7266bc0e2c208e94ecf3e6b2bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3889 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 D`vG#c diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/DefaultsSystem1.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/DefaultsSystem1.png deleted file mode 100644 index 2c228e4edfaae8e6acfae98a4f0834bc9ed1a5f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3876 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 KfK_Wd|M73H*?^A# diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/EnableExample1.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/EnableExample1.png deleted file mode 100644 index 0f46c6f2cdf7da76450d38ccc7cbe27cadddcc76..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2936 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 diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/EnableExample3.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/EnableExample3.png deleted file mode 100644 index b3f62e72e60b744d50e9b3f0cd689f92aa4385f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5009 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 diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/Grid.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/Grid.png deleted file mode 100644 index 47ab7812e003cd332142cff1269f7e79edc763fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3561 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 MriDTI_4`r(0^CW%n*aa+ diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/HBox.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/HBox.png deleted file mode 100644 index 943f48117057083dd3cccdbef1b4143fc9f0450d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 828 zcmeAS@N?(olHy`uVBq!ia0vp^&p?=i2}t^J>?NMQuIvvPr5QNP)?9C~U|?YS z;OXKRQZeW4rHxZ(2Z*>{OxJ&!r`5&VGXLvO>71xzI7!uQ(-Dtp5+{X}Ba>9T zdqxFE1BCR%a3(kHT2!%2xc>?NMQuIvvPr5QNP)?9C~U|?Vl z_H=O!shIQj=D}R4KoN(F>pPe<7`zG{%R(!X}}}b4s%m_Z_yBc5|Ec z|4WT{eA1n3-+uk7`g{46`AA4ziI8=)!X);Q}u;dhw_EE9AJ)P@O1TaS?83{1OT|jhco~H diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/HButtonBox.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/HButtonBox.png deleted file mode 100644 index 6f87b71ad802b84a8f72eae696f5db5363534981..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1609 zcmeAS@N?(olHy`uVBq!ia0vp^&p?=i2}t^J>?NMQuIvvPr5QNP)?9C~U|?YV z>*?YcQZeW4osHSj=@JbezjtltYy88iWM!3d>X9Xr@a`?%?2T^0)tNrVOI}Wy{aB~d zXi0*`3AM!wBDoCJ`VOiFf0(2>S;VBG^y8eTuNRz{s@pBJWAmRK=krhgRC)9MY4sB8 znJPCwek}Bmi9cJ#cxk#}W!*ai{Jfs;#TS0Xp*5GM z{1TK`&P$2h+x6bQSo3XP{mj(zw5^l6eE4QudZ#M6`A^E_e}C6Lm#=!C|7^S6pNjWs z*DAt(_0QO;bic2oLtOB*;KqCVMXDngon-9Zv-RHp>TRo~w0<5_;5GYnwPU$;_uev_ zyC=hydCii(tnyuH|L>D*-OQlc7Qy#B6_@6ngrmv$aslc>)A#_h;US(&#l zuP|y$?R=6lo7;8y^|+O(y*kk=Q|HF*-WlNHGI2ZGZ13o^_q+B?{r2A7#cOx;*`G@H z?`5rn8^iQE0;=Gw?fm&qBvdD39Gr>^g9!o=;D{<%%G@BCc0dDmZE z%bVW?)rH+$luzGtcX2U)^j+H8{9lIqbB*{~K|$AhukOCq`?jxp`ToB5h9TRp%H}=! zclh;1%Uksown{+z?}nKxb?y23>UZd~K7ai5D|fWJ>95!2ufB%u|DUr}`tR2@`=tJUji@NO z@cw>hN1jXlQaQn1w=2pE4)2rcy&yX`a%F8@^{hK*UwzyDCFS{X`>17Gqz&!gt~@+@ zNk>GFd8)p%cy5uo_O1Jq@_D-U&Q;1^deF^lcjkt`Cu@`P(@zyo&yK!-ug`q@|6fl_ z|1G(bdgjR5M+qBtmaMjrkb7^x=iV!sUbz^#9KEGmW`BFnZ{HkmIeB;F)qm6Gyz$cQ zJ{S1eQRHXYXGfRk86|He?k|7Z@#4!Z?)7yVpWgoYY5w!d8vUKYANR(r)VJAXxuzTD{*PgB76+hy+zU|GA9~IZKC+utZK7z{^Jca8|_SuSy_gWcOJqOke44$rj JF6*2UngGZ=`cnV^ diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/Panel.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/Panel.png deleted file mode 100644 index a50979d622cb22078d6bf1843fcad40a0720e564..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1471 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 do#2p)$VG9d`f# diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/ScrollingPanel.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/ScrollingPanel.png deleted file mode 100644 index 5ea6ecfa0007e9b71305dbe937d04bc29eed7580..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 118060 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

RHt$! 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 Gmi0GCi}M@+ diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/VBox.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/VBox.png deleted file mode 100644 index eb3ec85f88fcd1d08a57b186078186aefdddbc00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 843 zcmeAS@N?(olHy`uVBq!ia0vp^&p?=i2}t^J>?NMQuIvvPr5QNP)?9C~U|?YS z@9E+gQZeW4-HmHs1&FvFe5`+}fyp;C@5tQ%2H6kHi^Lf(UY(R?lx`hyaH7new_mGx zUGBX9e)^1!T>n+?2b(|Jq(A%gZ^ykn@8bu=`;ycCt&L;cKT*eUlB(OLBOcQvP6{bU zCaHM$q;yh4@R`y3aN)k>uR=dgZF~Rw74L`Uw?Avv-D9vXI1RVwrp<1jj`Zo8KR>_u z^tLS4ip{S2|NA0@JT=@w3%}9G%$T%iHs>El*s|=~{Py?0D&{{4)pqk&n;+o6gNUDP z*I#d~Vy<~zw?97Z*~f}CaZK~)KDT@y&uLt|``)y^#`Ara$8^2>s1t`Y@+VPgZTd{h f^PguRr=S0Odrem+eoP4j<_-o=S3j3^P6>?NMQuIvvPr5QNP)?9C~U|?Vl z_jGX#shIQj&c>5WkrHhe^ToI~Fz5!Xp5>;tNtAm7vw6YfR{0QtHuiI!$KLSDJ?T3X zJMa8+ha+FBY|oteTX(;jbI4?WPiIYM^3CcVxU3_rYyS*%Sn_~2)?=?RlKJED9jo;aR97;^PqvGCieZ9Q3 zT>tjlZ_l&WIe`qGanx~|K)6!yr~TR!&p*Embj9B5|6|XQVkhyg8v-iZXWrbF8~a_3 zX?~>M^wamGA8?<3{P9LLbIn5o=W+Rus{q}tRKP})$>TcFiy#D&D zf${g>weM9w+}oD>`Pb2ev~$ZrvAVbPTH!QR_dyY&#WQB+-o6(3J&s8p&3gwUr_DHg z#%BKcz3B&**PQ-$<7361yLt6?AB4dvP={|*OU(M~htJ%3|9$WD1J$>;oqa9dJkxUS zx!rw@{%aoVc=wT$T)_$A^L^cWkHzwp?mY7CiQd!sQ=G9cV_l-=Ax~hgWAJqKb6Mw< G&;$U4ag&$; diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/VButtonBox.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/VButtonBox.png deleted file mode 100644 index f8c57aafe26d60fc6d50765f9fecf4360e31c644..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1843 zcmd6oSy0ng6vk63XaVaoGDRT<6@rX_f>2P<41vg^prtMUK?ng!f|h-cqKOiM2nZ4g z5J}h(S~O8oiXn+9ME1z427w@pY?H7ggCK-J<8<2bLE5)YXMXpdhcoxwxo6Jz-8&aN zoVRQ4(*%J)+g)9pJXLY>~NmXHMjH^3h>*yDHpl#ni6eZb$KpIo7P7Xid zXtQE|uwIaUi)@|}2Hvuwl@yC^eb>ZNheo;NX(#F-%nmoaBxavupJ?BG#8J&$-5Y1` zk_%6I5^`Yy%|*Azd}DPvRz{ncG4P?7RXfQuIhkvC_spZtxMZ8jHj{d0d{oq>n;AvD z!=Ph($t2zXJ^4j_!@o~Nv3&=8o=Us`0L91Cm(0zxdeAQ(iX;_05+|5IfX$kvQ^e>O zQpGZ=cUaBxHp}$+z0E_N3z@fDG>ooxKHI zFIdXJLbeiT*mDn1)`R^fO|gUhvg*nD0_>#kppbTUHLb4zIp#aaHmsfP)FjjWu9}2A ze^228i(Cpj^=oZ3Z(_v;d9rKQ`2zu=CXolGIXcE5K+Ydaa`@O-NnHv^It__d0 zluq5SIL>O7GTC(Yj@V#*#jDWcT1o@IG&fn`Aa2*HgPVfBi-rkzdNfV-esVdBN=0BD zYHJhf881DDsHe%iRQ0KW!sW*s#OP2KDY7niY;~q_DJ(FUl}2n>Y*f;_clgHlv44|< zCF6I_&8M^L$l<3i{>p3W>WWj^)YW%T9c%i0+7e#dn#1b4!zo1t))|0YSr&?!W~5TB z$5wkQjZ5Cj--?%8uy-M2bQ-Okcl+$SD7GKdSSDsNqLD1F_qw#`5_l^0kfdj@MmjPw zFAz9B3$QDY7v{kT6ODmMk#zwl^|cL>(FZ;Ylv9Mqtmss_e0L@riA1_5Xth?Quh;4N z>vz`dbo`6#9%Bum(hVHVhc*u}_h42^aBONqbm#kP8h5dmS1)AvuLixOGVoYX=QK`isPum@j> zIc2pPe5(fqIMj%snx*Uh^_?B6j?HnoL0IvliNh&E(?#NW{(j2XHEx`6npr*K9}!9( z5Wo+(kn3KxlJ5gm7d=@OfU~Q-TX>L#uJFe;mFfs}mDbky4!CxkU**a|6{pr7vj4q^ zp0}LXEPDg-s`u&WtVISX*K&-`B@-KT=xOugZY39R_Y6s_Sfiim9_3e_zps!NHB@_9 z5%{}c?g5poL^KnRr{5AsequnBE* zl_+m~lZj_e51OhVMdmBiEk5lpwCucgzJhXc67QbQMwztB9c5Bzuu$2EvHkdxO*!`f z_V`6{Pb5kp2#U~hiL)#le+GwD8Euqvs_jU`2DDowZ;z;qMN-YTN@SKF)Q3>o%6wZ< zocZ20qcUJ&{LeE&VeIRIiRBW=;_bsE{K(0Il8xrhyNZk8^6R6TPUXaX7jYKC_7_6^1cr#D4%wx}=(-$97y6Y9aL!stbH zXSOdxB*83kP~a(zOsz8_0U&%R@fDfEtmc9j-CpbKuie1mT5UptTAq&j5vNcBo6HQw zB~bs55yx(BX3P0f{3>MvpdCc)b<)knpT3{hhk2l;h5?d O1i2zSoEUKb#6JKj%AfE6 diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/VisibleExample1.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/VisibleExample1.png deleted file mode 100644 index 1948bca7ea9b42c301565e9418ea328a1993821e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1250 zcmeAS@N?(olHy`uVBq!ia0vp^(}4IF2NRGy6RJ4{NU@iA`ns||WRzy$Fg3k*wTXd& zWtyjpV@SoEw>LI=-$`d^|M-6Wj%%9BCdaPw;Ip1`PVlXOOrG_mvs0Q_ymYpd>|R>7 zVn?ZlS;8D1j_Hd70=!;2S{4TME?Kgdq`@(mo!1!pvL?aH41 zZRJ2)i_h!eckCw}8^hUq{=Qng$KuD2*{7a%Zvh(pC--aQyD6`(O23XzlYs#?GBVdv(i!g%*RStDnm{r-UW|1}#=H diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/VisibleExample2.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/VisibleExample2.png deleted file mode 100644 index 7b75ae1fd9083d21fb844a664c5c3f8d20488f00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2534 zcmd6p={wtN8pnS@QG1URt?l4&>|0vZV9by-;aF2eEkP-*J)#m)rHd*3qbh2Nos-jZ<`0;8GxOqJUfkF9T-W#cKA-1KaE-R&av9s{a5vD2|YsCVNDX6S}RNSU2Zlz0L`^k^|Sa64vD1}L2d1GE)W z;|;n1wY~*lnBZ<4-R*w-EZK9hYK6VKO0No0+`nGh3w~1@#U5zzq}KPE-)f3m{j#-W zVfoC_C&W0io~Iwwa>P(ai?Qp7MAzygwFnk*+J^*@}@R z$lWMBF;E)*e2m|FbZAkU=*ic!)BZFu|5klNfYz<`iSl*KTblRFctruwv_yDNwaz82 z{=|{UnZeT43(DftN~<&(pzMlE;1`kS_-4T4{Lr%c3K|HVZqS$g=vf25NQN z=I!dIVm*7s4Ublb`VY_UnnA~(@lWMCAx`UxDt?otzU}&$(WvEKk{rToe<6!O4l9i_ z%+R}KY+1z8Uj>DO zMfCIpYHN>!Y430>36E%GQyV_$Y=6Zs2y~d@M=|aEg;N=WDhV4%C9}GkRo2vzT!;w_ zurB@yoM6sNNmtOIApW}U|8aZWqgF%H&CRVSv~B4Nn{7_u1P@mNvri>xv$I!*ZMVHh zWO8cL@vsLO7J&J|Mt5m0EwST=P4PD@Kufw7fycZ3bPrdgp@F2kc zWSbEZ#!HfQ%U#a3ejL`+QdsR)q2oukp*dgRLx7pLYu2jW(RiL;8;eor+2YdYY_Qlb z-%n29Dk}kD^l}rSQC7C7S4!YzY}y*lA$zpm-?&JE2AaTlnSC7k*F0$Z9bNPy5K3t} z28>9l4Su^E;IBNn64(bNE#VhoyX6%RuRri#YzqzGIA=@O=? z(*Z{Xer|AtfR}bmX2zcU!pvIP}5ijLdYO!wHk zSyVG0n-Amn3@!zg$F~AB9Ri{8Y|Er%SZZ8%XmEkkZf6T&OF0hZsF{f>19!TPEfdDW z*9QY_w5IjWJdzcwTlSe^>4jEDQi?QCNc$A%psN`|RasYPZ*T8uD32D#5ziVdF3qim z&aOkGr4t4wNCoXkr877+i6)g|uAh@!5aTHW%)T?GvnBB=Lhnc>zU3;Ctiy4Y!zJV@ z^S&?wd>?{SBkylzd~%onjM-ZWhc+(6EWolyWn_rzFm-HzU1lP|-L@^e@E%EceSCyJ zwM~NAhwoPp#?THl3ge%uz_~*n6*|VTrB2uUd56?R0#;J$5-K2bsZ{VlBt@x*TtmMd zyxUD&o8f(Z@yI}Jq#EXf3qgsbPc;xKZpzg)LP{XnJ4ysatQV+G17ew(*4*YAZA?0Z zKFs~jar0S88A^=3b{B$`1@vKqj{{dyE_1Y9G5q(LeHA(3%)Wu%98BRUVK{_KYMC39 zni!%r%mdsJpuj7Sag^Dal-D~g{3po&lb8MEbr1PNj_vKFe_E)sZ5*ypB)Uu_1yg?j z4Nkz!gz4mx~B{5v*bNh*enRznC>epJVQ@0TYreyKngtq|7NLoG^ z&<*q~aFnrNoC?x38j+y-O|ezW6&!FA;0_yxr5DUid!-*5(@g;Xe`v1L*3uq9_^(qMrc2F1S=sDb&& z1Q|u&7K@a;+Umd{U3F@~eo|W?Uq0(o_32d`2j4cBk^GFyK!YWu@1|VlgV*X#3=*v! z?lX_WHDA;IFCaK;h`SISz#}Q0z&-B|`#s{??@z^NKV}%I^fW_8q@0c6A~O!zHw+p1 zSm>U@W?mp9X+6v(7um3dK1yq?)~u+U=;ciHHB^Qt%d{2h=QTqlSyB7nt|I!(=&Y{Y z{bNV>Eg@3(({XC&5*f}|02foQm%jO%OxTf=MVx~J#im*FGPF~{=;k_d} zD~X0uPkts(M6^U)@zuRbE_B@Pu+@s#46AfuoWe&c9dw+ARa&_Z7lxWM0RA5I`)5o2OX5SO8wB6NuIHW z@;)Ito#E~cNsfrq<%^}Tc6i}hAD^18kV-3c4(_XDhC-%+|N4ghAKE&Ronn;6c+>;h jF!&j&?Am7~o^>z0gSLg-*qtKo;s#j3?O;_F-gkZnP4mtE diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/VisibleExample3.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/VisibleExample3.png deleted file mode 100644 index 23af1ba4534842c11fabe167a4e416ac0e98b427..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 671 zcmeAS@N?(olHy`uVBq!ia0vp^(}4IF2NRGy6RJ4{NU@iA`ns||WRzy$Fg3k*wTXd& zDcIA+F{EP7+l!8z3Mn?~+s2-e=si$>97U8}83KXEu*A fMgxIRO4u#X&N9c~HO~iNievC}^>bP0l+XkKt(-!$ diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/axes_inner.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/axes_inner.png deleted file mode 100644 index e6dcf35733f2d3eb09f846b3279f625fca549eba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 795 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 MZLIY|)Bd-A0DZBFEC2ui diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/axes_layout_example_3.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/axes_layout_example_3.png deleted file mode 100644 index 22e90cc3d0b930decd53785d70870001e73fd6fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21365 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 IyjAG`0aPXfApigX diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/axes_outer.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/axes_outer.png deleted file mode 100644 index 096b7fc1fa336dfef0aaeb52eb73deb962bab1d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2873 zcmb7Gc{H2p8fVPVQqp!tDVk1et9_ReEu+@d(hap#D57fLVhO@%xoR7f5L=ZnYLD7$ z>4GYvw!{*#CsHC@OCq+(+vx26xzz{QG<28}`@YgwGl~@C2Ef8}iI^igKJ#kiwdead7a`Obvdz7n(<#LEd^E z4D8xeN=<0S{6pelxPF~rH$7B9wf?g4{jisMi4~`xoC)B=mB&mU)`dLTsPzL3t+V`RYdY;H^P5{& z=|G_fm~Pb04odLHcruMM`WVosFP#2VS%S~mO4JG7Uk=cARSjSY`h z9(4^3b@d5-eJMi&gH~^y7fOe&Hz6s4=g5Y}z4vU84Svoe&jg3IwdOvi#l{QJQd3gO zE5IO^p32v+g=TbRUp)803iKu)9C(A_YXW?HP1Dmh)n=w9_jSSo?$>aM(c2lYpWc!X z^mh8EOx)O5$b#_!Pa3epG-um$>}yDT~DO2;J!O00xJ{92^eH?+Til zrdk#PF$g$*xGP9IWKt9)78Rv?*jnnLd$h6=IFO?T<^DEFfR`5t)~v1DeAnPG9%%;Yr27fvlbSP1^M|E&$T0%(QQ26vRRf<~j@^6T!)tGVO+r$hCi+yulu z>w<}nNY9`kufV|K&f{P6@<1BNqMAByC&E)jr<;6dUQ;b`Ln{vTZ@d zh`~^o`YgRPD^_c2%F8<fg&di&(`8(&;V`9Xr1;>+w4-*wL_1jb z@?~txUM`vJyS59jXux;BvhQ-x?%SO;*;*-1-MQ{`z-+6+Pc1CGhm_w$byQXA_*3#- zOwJV)Wq1u4p|i8EQjF02qM9<8$B$pd#?lLvogdN_25fCRp>LQdfUX$5E@6H#$*W|O z`Ae7Ogb7#bLvj8Hfj>n1?*sZ5JMxE?0v>yKU?(dTuRpCXdW#<$JI$7)xmdLsP2gu# z6joBQmzQtrWwFbvicY&`<#LAc1#KEJ$KKIVL{MXuEkwh`3N;;QI-OpFknM6{b8d`4 zh}<5A0>rKW)ue98?5x#yD#~c}NMC-ZmQ=|QW(yw}(N=GR8GA0nh+;fQte!ykw`Y~V|Xgi+q)`Pv&z!^@PUCr$vUT3Nene8oz_Wm z`EVk?=}mC3JE3ZS5bM?nF+Z#l<@wg9G{ft72YCB-Jxgq>TPQOZR90n=%1KZELgI|c zrAkcKlWxc?JJ3}S@T5DhN=sWCcGB;>!eBgB@j|MqSTZiMq^+%j{V*P!_mdM}z4j~- z0BvW{73@{RJ6x$F()jAZ6{KueP$eVUxQ@hiJ^nx4^eFLmv;&^dBuR@Qy_Ea!qxOAKtQ z@zRO~@*4CE85r~iw6biPDe)+PgH<=G&iS%HWsqQI)KS;xTZdTXK%r_4c ziA=nG3wtTsGO54OHpM1pc$r zT}VSiLsn+w?^;b4kbmBX^z=k$<>bt4eK7mCbp|36?eThqju3h^llj3gF{|1!zk^+0 zS{eX9o*((8+^S>uhHZWGYF)M`p_;Xys=8_3^rK?+%)H;h#{1yH!wi+DZ5<%q6T-Ao twOJPXkCu9L97wzH9zo;(oGSMKryzR!Ap{*z@)X>79THopC-vFxQgTVj* diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/basics_example2.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/basics_example2.png deleted file mode 100644 index 92367bacfeaec8787b078a31938cffa235c3e4ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 859 zcmeAS@N?(olHy`uVBq!ia0vp^TYxx(?f#$f;^Cd$#mqsnF;*-_UZpFY*mvJs6YR-uEoxH2 zV<9SXP>yBJk)^@QU6fM3$`@2x@2Q%%@_c}{=bk!ymdaxLFT6jW?Jf2aauWE^e)jBH zP0!|o33rSSrkwm7b19^zsP=Esn#l)Mstn(8CKL&>>pW_3mD$k2ELM0xi7(;^W4A>D z)da6y*`fa7i<5<>?QGvkmcnaEowE-n6%an;;8{q@1a zQD0jZ9=y->P{muif6mk5fP+&P>%J|WU074NvZQd=_1`i7I*u<*{k{C&RJOu=4%?TD zBJv+a7CyefC1@3W^Vj-qTZ~U#H;WRDu~gZ6t^Y^G_5Ul}qJw@a%S{*aEG+G0_Eem+ z@#w9wrGVA8(m(IS+A8xp8+n3UB72g)D+`GEuZ}d<9C+zR9r%k%JcS+%j z2dS>x^S3Se64c#&dGFST%vqj6e{|S#S8g{`Um14!&fBj^%cmXDefxWVqT0#|$yHf0 zY_#gFVdQ I&MBb@0JPFSZ|@prOQ*{m|M)+6Pw5x#6&w0_=I*NKb8u;_dZ}c$?UVT#oKFj`vS%?LS|iSNuC^b74iM zUBuhXbE-Go+ILhV$8?YU?7hFI_eVsY$?r2+x%^~mMM<`=eU9$kHPO~5c>ig?|D72W zUpUQGGtKnRlgRDYd?ugHdwalt-del6sY!LkU(TF!e``?p{obTg?<)Qje-q(Xzx=Y- z_7u;d)jR(jj(d3Wj(LmxwoAuu&$}6UWaWBC!_|SS|I}LSSXGy-|3Bxt*6#iN{z`IA zPpbQVf77y&^R3%db^gqzdga#iFxjnV*H~qp zXHT1^_O<)4`PIPcFF(w5;?KXizIXLr@m%ZuzEb;B?UOz{I{tW4xAj|7%>>g^dD}$l zZgBl|75Tg=sk}Ws?PT@pkh0^)fAStWc!pn-rz-97<62|w>AC;kRTYMnJ)C(*aQdC+ zfo-Cjq#D2fU6S~?@QL-86NNQa=O)e7+xO(J#k=&}{Yhbmf7i{5IrlzasjDXP<39Up zp6E39&FbxI3uMpcZL_eLWm7-n_G|8d16e;3wb$CN?Ay0Lf4$iMk1~#TEc)zXQ|I5~ z*1di{e{$Q>lTVL6oPBd)UAfe|JSidW2hnzzI2+|)Chn(tVA5A(inmM8f- z;7rzSoa&8Ab|o7=)K-Q9cs zWdFOk#|Ixx^W7U4U(&KtH}jdOpk%MxCY47P- z!~XQ!=EZZaY_2}@=8nUY$1R%6EU!49nN$30S&bR(( z?bGCUaWp?*lQ~6H+&pWz&>iZ{e@1NbU=hyQE z`$T5$&yNi?v-dZ&4E;ANIr!es`78Q;s<`0&D*F$D`Chvo`s-}E`f#@T z+Yj4Mgc)z$x?cX~4-@l~cSR@stlYmd*r?I4y3sOz-kIvgo%5Ww6)QiTuDtWk&0DTH z-(8nXuG+2~^wQjQ$)$WXX8Dg5ubr3Pe`CM@llo1;pS5pG-mcJGs~!DY+19mY%kE&K zou2R3HJoYO$@iv;_y6XYX=eg&Y~R`)rfnZ|E?1RPQR!RIsi#*D`js);r+!NO>FA!a zVY8l+qrz+R@7;S3{0KLipL+7lX33)|-{!o&HH(L>IKo|g+Ry2WW2<*Y&pw^2YH-Xx zuYTuT=_l{@2^>u+TPJ;Ua?08dQ@KvOd2hY6Ft}%GJm2$O*Zbp?cLwf^JAD7Gk??Z1 z+lS5ljjBbLHJn*@z2nedum8(^E5AS0U&L=-obvtdhYLH`Nz0u}J-hMm&$u7ICjOrm z5*@xxZKAE^yI}KCEXy_GJ!tkEE5kh$p|xk^aeh|4cji z?%>+eV>iT&@9qEp`pug+4;~~uoOyY(N0#P?3C8#DRTMp&!@9EU+|1O#lQSmSZ=CIz zHplYHjl<8(9`|*fv{}Dpa=+R4^Ol=Gru@lerBM#R$X!u_6D|70Ws|c~^cq%P-~X!K d@j?9?d%qukeWBO1qJf17gQu&X%Q~loCIFCQDV_iT diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/basics_example5.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/basics_example5.png deleted file mode 100644 index ad06ede863c4b4253d53aae9c89a6dd6b7c1b51c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1165 zcmeAS@N?(olHy`uVBq!ia0vp^TYxxmL5uB^2dlDUsvTV#i;Isoc?okjnNM)?+*ukU zxzuCBLkGcdu9~xrts6HjP@d}f_*6ln`I^M&|BTbq)=6aUz4zkdPm#>>S{wUq5^t}c zv99`dSR%(z^g(6ZP3IL8y3VvcuQV0(oaAy!n58jyigi!diW50E60f{z*N@+)U8u3L zi)XQt*Zkh8MZ1@4C0lSL(F@J`W9pdfHgjsW*V^-UZqGQ8=OtZikhbK?;-7tcAOAF- zKP{r$aN>#Q(Yt=QEfqJ~S^Q(y)7J}Qf4ws{es{*k`~KY%rvH9hxb4e3TmD8?G`PEy z|MxrNcp%Z%$^TqlFDyY(+IaVjJC!UyJK3@BM?fU4QDzD7>OA9uw z*ty%4ajOmgZtK#g8e5;Q_*@-#V%}o4*b`-Cm%WxPKPl_8U7u;MzEbmqA_XRa;i;m*0M|@sURA^!56A$%`siYr7k6l`#JF z)u2{4qK%1bE~Rv76`<@pZ(*)jESB67p;$f`}+9pS?6lgEmh&Wboa^0<=4)U`F2_R_o>Nd zRf*dR|9F2}F4AuhVRbnEB-udsUiLQY(0&JO*f*PXvFee$m9l*D9}lP~Y{ zUkd$t=JdfE5`u+Oq@*8fh)N50r${R$-F_KZcK%Dj^VQ#b?wsP6|7T%sZEa!UF)2my zzssS%%9~qLswbWa{x6-HzIcPa>h@x*o?CCXKD}4+%IoUeh~>R8*5#{aE|0xpqjdDj zrZ-x7FOwd|d*wYBso(A-aM+PV`*O U^C#m4!19H`)78&qol`;+0FcKOng9R* diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/basics_example6.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/basics_example6.png deleted file mode 100644 index 4bbe18bcf383194507db90d6fd3caa972e73045a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1134 zcmeAS@N?(olHy`uVBq!ia0vp^TYxxki zy_%5Z>?kP9`YvdLK_Fj<(M+9rJiNOUn#2AxN8aOGU%PY8*Bx8==kopeyWru}lJfVT zJ@)Ue?q%<+_PF)-+a~WBi#LU??KqKRHknGq!VsoS-dvzpt!X+N)I{ia9 z53hXYrLg_G86H^0A&TiCv|L5_^FRdo*N|Qi_DJcC@`M@0iu{6!RX8y!nzxy`t+V{I| zo9Vr=_V0;f>a4G0^0?2d-<>;)v*#xFnaHWDZgHQvDzd3|bK9ba9_#D2mCD_&6_iZ5 zC);777Au(Pv+L!7@R~he7aG3wn-~9U9=p>1^>f$AmM$&NjIK{v-qBxHp0zAt?&(}b zgYd7r3y;@dzPeJ2OMP4Ez1L?~F1(Pdy4KU>P3x7{t55pXF~>Xpdimp^gUZcF@reo( zzP|o_G%n$f_D=rwX<{>YG?%iT-#IbYbJCynsim2rwzjvnitk?QdMAu2`Oo8LC*Q^d zeR%LxV>#<{w~4aLv^%vzp1!x-?3}FwvW}=C&nyPnNZJM-=DO?=;<4_r$+D?fs=~Dw_^J zUdtaI{O`vp{ppt+^DnKH|3B&O>(`H-m2F+XGxcIq?n(P}`#pQ-t+_sq017d^@6a-{$A-ape`zB|}kdhCw) z`zL>Y@Avcf=jY?w^mp22r!ujVIwI4eub%BK4i$}>kaa&SZ)%9~vS+{d$UQl>)A_7z z&cT$7Q<)Ff9i9H|;4`yx59_sQm-JDy)zz+!BZYh37_} YwB>FGumEB3boFyt=akR{0K(=R&;S4c diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/basics_example_tab.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/basics_example_tab.png deleted file mode 100644 index c5bd41cacf3a17f0f9d29178da4130400e92e222..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2207 zcmcIm=|9wq7yjDDI<}%LA@n0ehPCtP+?HXO_+ z9XGR_bVBTYM)wTaXPCqQ4pp^Mfm8tCFgG%|W#OMjPlw-;v6g79_g;wDDcft*5o|QSd;W?_{q7R^TmIUgS_dQZ65CZ4Bx-s1 zi3W9~v%mj1-(kWl)U77ya9?}&fQvVjvR__4#Oz3(=O0<$ptdRsk~z{C1qB7yUK~jo zxT=W=Jc+U+7LL~h?DF31%+rubnD?nZCnqNt=K#>!pOr=y|5Y@GWym@oX=719lcc21 zY*(f2Q^L;`m#&vV>426B5V~zFKU5cdTsJoq(H0GZ=YUv@DloA$IZM6PbzJ6DtKo7% zqqT1^KAr(bgcM>!q<{zT=Pr6qlMA5S?Ay77#pr{=UrXV!fkai>f?=By3PjR2t8WFI z!gYwdj$?jKT=kx`y`}?M-vI>R?$>F5Zt`Nj?;E~Rtxp#0a8_VI;YWsI;{hRCM(5`F zS7C_FxI8+Y9-Tc1Y#Mg4A>NI4Msh~I>>L!v=(p6QeK9btm~IJpvQHHld3u)8h9zfj znxHDiBW6(v$ONk&BQKCm+GOUh=IDJ9hPvjQvfcTqU`iw?-$6;xCqfx`dko}Dv$4`&g$E-8_)P;-jS@z`@ z0r~k52>|a{r(3sB9UWMFmItDq)kpTRjD#yq;_NT3N}m;4ydlikKJT!#h}1$_`%G?T z((*)DoiE`n`R1tAV^+rQ7E$MX-C|fVH_9JQS+lS2`G4}zi3^Bt!6`s$0F#`bz=8Q{ z>bv_cp7QVHw_~iAPw!qxTCG9?Z9A1^d(xQjvLfFLejld{D{k|Iu_T+x0c*LXFA7g{ zVxd_>V)>J~AUw~>MQt+CG$0uD10l}IPBzXdP9epBkQf>eXkJ&u*~&j0vvHxSp6NR8 z@|~Vt#Te$x7^s+Bd9=zoCLc*3HAsUgDJ*;D)v^x1MS%>cVj<4f5K52W1mTMWfx8ZW zl~h}mXUd~a1o>f0eY7$nJ|7Xx)P?Tu-S!Ur{bEqW`9#Icp35?JjF2GDEpIo@)>Hpp zA8k&5T#k|&_%66ed4AY=V9n0mNqt1qlu1{_>v--yUB*^9rbmBq-RgU#LSH65Z-z|0 zL88$iXA(j9MpH?23JD9gDAW=6O&S<5Us;^rTG(Vc6@*{U1qHn&BqLQ_4eWy~O#*IN z92xw-%wPWF2*SBh=uB;~pKN7+5fK(7eW~T60J?E5LdAyf0jX_O0gGH9oUg#RS}sSZ zU~}+9n475PeLGTYiBZoX!p^9NX;0)-ZJHb(M!c{7oevK^Jx!Kr#TUm?C2I)lb|<=T znQ1nE|3*-31_2f4%p`_|fEMe11ym!g+a(b=t)PT$*{W)_4Jx_j|hO zyIOe$*L{z1x1iO@+Ujq+8NIq|RbJ=O{U>;abXqe@+>16PfP_Jq?@6EmnKQ5Wjqlx?08EvHiym_J+j@F=H3fb+oJ*RrBc9C^ z!G96b<4S%Vr#CP4IS%Bw=)(J7tx4M^Up;2GB6laE$U%}28rc6>b0wXK(>*nqS>`k! zra&^A%idFhnxOQFpr^ZOf!h@>T6?aVr}<;WK5VkHkUuV6h<=!X|5=^T*=?OvdFPV) zadTz1*-_SI&~d8k>MwbL{5JldeVKg0Hf&qOnhIhzRGl58`$#{qg%RAmt^h0xp2=gw zv?*sYVHmRmpF|P%%1}bnO|!>Z^?T%j>0PtOmC`I1r_hS2y7qI1b~otmyuJ_3B#z4R z4xkN$>=!~DE>D_d|{xq55u1Q2_H^q(q8eS-U`|vMq~wbmSuwyfdsH_ zSs1QN>W%#n8m6Ffie+&i`uH#^SHHW3v9eP8V`MnX=D=Q-VF=K#87nB$P5K*whIKoNeJ$T!dr)Lwjt9dSGF|30BpWF Ap#T5? diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/basics_example_vbox.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/basics_example_vbox.png deleted file mode 100644 index d4a42944e77641db468ab77b6a7c6f37cb0c2a90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1205 zcmeAS@N?(olHy`uVBq!ia0vp^TYxx%PokL`0_t8S}0zqf`*u>(cJkiYMpKkH#a@X3}Z*LVF z{2pH93-FxHpp|JX&)|{sHRbi5NoJSDuiN>^KKMTM^3=y_QP;P9b1xMB`}pqMNu1># zpBH@C(llFLx?!)=&OLM9`sfQtPOd-8E~{`ml2yPpVy|VqiPGcuFMa;CObVRGlfirZ z?dG^c2cI~fOMUqL`NT_=QHATw_wl|u@a@Mr$Gh>NBI2`Ua`^At&5e5f-zU{#TmE{> zxb;87^{!sqx>j-H-N|b|e-z$d_h7yAXGiVaY5sMZ>r5pl&Mdq*NAd9->0Y;4_ud$5 z?D@DcWQWCv@9xKV=5+T+TA8zSF*DT7S^sqUnehI7yUxw1T+SqK_ouY1Y?*<~m-{~p zR@kh)a5w=i26@;!rxjeTRi2gf?c29!d-=C4;EDcbA`HaR(ceng_eCi}qZ+7Cf=>vN z29|8tF0>}qK6K4h_lIW$m!-aMbAMY=AG1bQ?rwd#_>4m{m3>az>DAwPH9xHG!0!FC z3oCz~_j!0-O{pT)wHB8$peP!~G4U_)u>HI!ff8N&s%i^5= z*Pk8IYu8SFmvm=SeWdI6`A=lT^BW3x?we?Pl6~!#$iDj3awVU)?z^~YyXl(8>Nnn5 zGdMUup6Qx6(aPs^ox#sC3weD}Ak?Z+;kQWlbYoNvAK<+Ml6Ti^Vx zTyByrob`goy}|?f$5p@mE}ytNY49yVG@9 wiM}^BsSASQ5}04%?u2G!-D;tYss4-f{dzKvh!}7m1(rh$p00i_>zopr0Lc1FJ^%m! diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/bigicon_BorderLayout.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/bigicon_BorderLayout.png deleted file mode 100644 index 665011d3e6a8e8796910eb935034e6e97bf35c9b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 389 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r51|<6gKdl8)oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#Dz_ZBvUYf3xFb+Vw!}4}#5q4VH#M(>!MP|ku_QG`p**uBLm?z1Rl(iUH{gAW zY93JGZ%-G;kcwMx?;PYjWFXS;F#M&=xl5cf*ElDI#yqKyXU6Zx2DwJ zuYOxF?@hQ_mv-yWIzy0i92(Ld+OvOYN>xu-D|*kNy#K7NTx_h_1Yj^Qc)I$ztaD0e F0sx}nhY$b& diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/bigicon_BoxPanel.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/bigicon_BoxPanel.png deleted file mode 100644 index dc9bb2a044f52e42d150c4bf66157d9d8a781b9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 474 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r51SA=YQ-1*|&H|6fVg?3oVGw3ym^DWND9B#o z>FdgVkBwPCT=)s!>rSAMVrEE0iF1B#Zfaf$kjuc}T$GwvlA5AWo>`Ki5R#Fq;O^-g zkh@_zP>RvV)5S5Q;?~Zfo#MXNf6OZP%-Z()Gn4e< z7{$}dYI|~a-}_kP;+DLBN8avx2M@Wq%_}${)-2Ah9@G=Q+2di=qRRiG>m-Cf``MlP znxmG#>cM5-+B+s^MV(aG~jLKd*#l9)>G)MTxjL@KycJKIY Vns?8VchUs~x~Hq3%Q~loCIHM;x2gaD diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/bigicon_CardPanel.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/bigicon_CardPanel.png deleted file mode 100644 index 1d0166a95732858f189fc54561df1e1871e8947e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 421 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r51SA=YQ-1*|&H|6fVg?3oVGw3ym^DWND9B#o z>FdgVol#OyQv2sIy8_`iF1B#Zfaf$gL6@8Vo7R>LV0FMhC)b2s)DK`h&3wW+I eJ>(VljQQZz;Nv}?dmVt`$>8bg=d#Wzp$Pyx2B2U7 diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/bigicon_Grid.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/bigicon_Grid.png deleted file mode 100644 index afec6e5bdb53323b8869c4a27233a1a88a9ae9f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r51|<6gKdl8)oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#Dz~hFvEd`}cu}B`Y>8_`iF1B#Zfaf$gL6@8Vo7R>LV0FMhC)b2s)DF!Z|@u|Y&H;Jy`btWyRMZhC`W5TRH5>0=VOmm%vEL@zW6&?U+9yx zeudbE6dvKfF<`S=#qSFnd>y`>zhu zmmb#aOe`8eZ4iPZfPsm{B3-XO_~q5?C?n&ym-4+eT{-!+6V0dI>U+2>=(*vP4f_p| ztwC4_W34}JRkTTR`*vRDn&ahaG8@%Y|LE;^xP6=L$Tzb>K9-7S-5tkez8z2In;ZUU h>ou#l-G|+tNS}V6<-D)k+yNM-44$rjF6*2UngA@!mSO+^ diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/bigicon_GridFlex.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/bigicon_GridFlex.png deleted file mode 100644 index 69e854f9556c275621a6ccbd4ff028a40cdb67fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 657 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r51|<6gKdl8)jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPggaZZ;k@UU}{Qa-fiGiEBiObAE1a zYF-J0b5UwyNotBhd1gt5LP$ocg1e`0!21-{JfL+iJY5_^DsH`<8=ZGpLBO@WD|bou zN485x&7=*YGsT?jwL;i`avm{wc4xf?AD^YvjtVxx$9umwO?om%SUPUOW2xgG`4@DY zFyJ|9ell~t~SFBmu^F^|DSB~4S9=nMX)A(2t?lZhE^4?YU zv-L|{#W9JQw=Wp%{Wd{ea0g3<_pupyN*A9UnC+G*GjXrWBHz~S=0fZF1jX%?ndCo- zy#MQcMfYu2w|((f#XZ(c%ts`q75mL8-u(HoU`6@Pl_v9?oh$er%?WxSnH;j~`$J0u zhdIn!%5v8`W;V}AQOa&8dXU)?akh24*wZM5TT$^c=a(}+`(n$>ch4m-^W0tUmv>v& zsdalTeOKzXuv>j%kYL2-6(al(?<577yDn9o&g&5D^W@E1WA4$hu!qLxT fwzIcSy`Z1I^T(03{LAEliG#t@)z4*}Q$iB}1xy1Y diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/bigicon_HBox.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/bigicon_HBox.png deleted file mode 100644 index 916a49790163d081e29fb7c90cd40778f253d63f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 305 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r51SA=YQ-1*|&H|6fVg?3oVGw3ym^DWND9B#o z>FdgVm0MQ8fb~V+k7S^bY>8_`iF1B#Zfaf$gL6@8Vo7R>LV0FMhC)b2s)DQL70(Y)*K0-AbW|YuPggaZZ;kjvE>yil0YHZ64!_l=ltB< z)VvY~=c3falGGH1^30M9g^-L?1$R&1fcGh?c|hy*JzX3_DsH{Kb1?UigMh=un;Ew~ zvI?0!H!fscHZ|bHGXY7-(<(*FVtF zkvYpNZ^N&9zdoJ){xLAEIsdJyTw=aI-;w>S0tyZd3}BLp1IT7%;SgBBz{J84z`)4F zqR{{(MGn+6{*XGq``WwE^=;Rqy4T*`Ha)xDV&;Kt2m7m0+NPa*weA&hT^Ekb6smUJ z6Rp0HY0>Hri~S!c`WYVEF=JQu|G$y-%MK~VBr&BQF%3&|OUs)lzdEM#w9KLCj_99K z#mtYyE|h08ga=e#WB8@ZgJdz#WsF={+;=Yaj`H5Rs*0tn-o53qu$SJKH1+#6`sfO&)F@VSNn)ju${7*%H@?66gHf+|;}h2Ir#G#FEq$h4Rdj z426)4R0VfW-+=cis(C<#7d%}YLn>~)y}gn5u!4ZY#o{9}Gg~>0a?~usPAW}5HCOex zUkuCM_((m6Dj^Q8X{%OUSb0q1;x&F*edEV%4|g*#v2X}10FeOAj!lb@StYv+WC9Gd#jy3qj~H;YfneTwb#oh+fVx)@;Lg?H<-darFOo)aCx8q zseiUEU3Dt?@aJ%A?;CO)KtmV_*mB@!R&vi-^Mqe(%v&#LZ~1qiYX#7644$rjF6*2U FngAV!aXJ71 diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/bigicon_Panel.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/bigicon_Panel.png deleted file mode 100644 index ccfcff5961aeba8eddc3312fa6f58eb82ffed13a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 428 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r51SA=YQ-1*|&H|6fVg?3oVGw3ym^DWND9B#o z>FdgVm0MPjO@!-#@@1fqY>8_`iF1B#Zfaf$gL6@8Vo7R>LV0FMhC)b2s)DKno(s%5WO&S}M}*e+mW+45A?wEsT)geH-X ziNeL4xf}~us_prnXA#O|w)x!?kyW#%-^@KeW9F)3$;&*;?sF$3xX0}~CvkTpQ`ptW ze_v%K(|@FYT7Ju7QpLgD{tc_c*1LT8`0W_a_gee6;p)ZvtlrAsUf;o^VZOWI2(I6wyD!@h`{)jRI24>#J;ARnH?TK&HJdS61Q=)@g?`=;@PZ_Ee{I%yc! Y&Qnye=d@%GFjyHpUHx3vIVCg!01la=n*aa+ diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/bigicon_ScrollingPanel.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/bigicon_ScrollingPanel.png deleted file mode 100644 index 7f1ff089d5c01cbab0f7d98de442b8da96dec35e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 594 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r51|<6gKdl8)Ea{HEjtmSN`?>!lvI6;>1s;*b z3=G_YAk0{w5<>&kwWTUNk;^+n&0WT232iEBiObAE1aYF-J0b5UwyNotBh zd1gt5LP$ocg1e`0!21-{JfK2Jkiy{nw370~qEv>0#LT=By}Z;C1rt33JwqdBmh3kS z42+XKT^vIy;@)1knA_|i!W!tcd|AkYs7o9tBdRWPN4`1wUAtmkiHfwCO4`kByzh?w zW!ZB#uj=6XhSQr~v?Lzre;X{!W3h7E{=5U6J!%Pm=P}Mt5M94v*ZF#8xdhvo;}(bW znfW%z|4>V_TurGl?^#1f4yEw zN4i=Er7vUJRFzTxUMu3i+p+(G$0Y0Qc~5-fj}u(|UM5z1&AZS46CJL}*Qw{+ZwQqx zcx#}rn%(+b%*7Ycky{gNq|Ns$BmzGFW4TiKz2Q&9_0Z*OZ;LZl WczrWjaE%ujhYX&selF{r5}E)(y5ofa diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/bigicon_TabPanel.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/bigicon_TabPanel.png deleted file mode 100644 index 412b0de3f9f24f8ffcaffbdd4deac723743bb4bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 420 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r51SA=YQ-1*|&H|6fVg?3oVGw3ym^DWND9B#o z>FdgVm0MO&QA^OJM;0g~TjCl~;+&tGo0?a`;9QiNSdyBeP@Y+mp%9Xhs^ISF8}L3w zH4kX4l&6bhNX4zUcg}M*8%VT2)R^gDbKTTtrq6|D;~nlX9{h6;RGebaOAz14?&$S@ z5o`C!-`1>(H8wN!KMF10wa(RJ;^`9-o6CwWn>cmooZfa-?s%a@+y91M!)v#;PQGlC zdwZKk*V(6Yi!0~7=j=1jem*7j=J&tPK81!_J}+bazsNQzNic$e`QI!RPd=8uWtm** zmtXDj(^KBRGV1kl{k2agP7m}t%Wb*C*Lz>}SG%uo)i(${GK$@Mao%F#=LQJ}8W@?` zcqGVS>`~KyCuev6`e(^Ef6u-Qn7-v&l%{AHKl`WG%$aMy?#q8)%v|utY4+aZJ5K|H Olfl!~&t;ucLK6T~g`PzK diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/bigicon_VBox.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/bigicon_VBox.png deleted file mode 100644 index 14b5e5b16f346a83c266f8728be2e62b0b00f26d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 343 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r51|<6gKdl8)oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#Dz~hFf#vasEl+?#vL&t&CC>S|xv6<249-QVi6yBi3gww4844j8sS56%z5(x3 zRP%re&w9EzhE&{odwaJalcGr5#d_J-8^p9WL})jJ<*+cPUw2pO?mPKY>5;KR$@@#y z?=P;4%C=m`-W#61ms!nIv-N~R+$8pdNin~so?)Lm{c@SzgBjck4h;;9Tp*HF07x=% z07*s`4uJ&>Oe`D$42(=H8bAe1SEBWm_nlw7T8bs6ec4ma|IgW?iX~3ZI_z>y=1(KC r0eFnr4^+RMVXfsGmYlT*XTM-8?^O&wKHI$$=rIOQS3j3^P6QL70(Y)*K0-AbW|YuPggaZZ;lO7T;Sb0ze_z64!_l=ltB< z)VvY~=c3falGGH1^30M9g^-L?1$R&1fcGh?c|hwNJzX3_DsH{KeK5D#LB#c<{fS(Q ztrr@CbM7!~5fXP26XbL{*j1=v@BVzur|IajP@@yY?nZ*fFkN z^=qGck#byUEpu4tUf=gAbr-X%e^$LKxFhb+z`)2P0wTE-fF!E`kYwTjl8h`I0t*MU++DJ#J-aQhFP)ZtFa6BZ{O7x# zFzNNLv)lFcX=8SN8q0&446ChIzTWise^q)$+1bRu;(pQbZ%o_QYFam|@l1TWreoHj z>)#r@Pb~42`N|uUpIlePeR-Q

qnip`d;l*LuO=kB{~>Mt7{NxY+Qr!0ZytvACT4 tVZV6w*@rI~F0Z#d!qoSe<9(kU!?B2zcgKGIS`G|#22WQ%mvv4FO#r(Pw)6l1 diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/bigicon_VButtonBox.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/bigicon_VButtonBox.png deleted file mode 100644 index 53bbaaf9cdff170d2b08a910bbdf57646aecdc30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 327 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r51SA=YQ-6V}Aa^H*b?0PW0y&%o9+AZi4BWyX z%*Zfnjs#GUy~NYkmHj3UH;=Gfbwr zzutakHUbg$$0d}vd4_I1pDtXGW|y>?ff)_lx68e>ckg%k{1a!a8lB@9Vzopr06`pK-T(jq diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/bookicon.gif b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/bookicon.gif deleted file mode 100644 index 7f86c41be3ebd4eadee751775b386ce58c6a3e67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 171 zcmZ?wbhEHb6krfw*vtR||NsA=KYMOUa>}ve$Nv96^Zfa>|1%lRq%lmhV3=vlP^HOm z@7}$ZmKLBgpkl?JEQ|~cd<;4uoggz9SRyW*d?~hI#=52pXD^ra+->i4HG`;lF@Er*HdBhYK2dEG#N{o_lO~Sq@&j)F4*Q-pD8|TH!m@b%vpu Vz&^<(KYIIC>n^B>6=Gzt1^}~$M5+J) diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/colorbar_example_2.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/colorbar_example_2.png deleted file mode 100644 index cf35f19bab1f487a83ecb56c2b06dd76ad00e82a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8433 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 diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/colorbar_example_3.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/colorbar_example_3.png deleted file mode 100644 index e80b6160b228ed8409667f4e6ddf5c94ac7ee7c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32759 zcmbq*1y>wh8)O4Pf+je@f(LgG5(or`;O_43Zb5?wm*DO)xVyW%yF>8p_uI3-VEYU( zhZ#;!*L`k1Qq_dY$^1Y;{DcSq0E)QScXlTCKNt^ zz$8*jf&u`a0rBtO6kXF!(p@wa=AZgAd0BivK)*wWW+~0)LjPWvgW5r(URFq0kJY1u zRZ^x-P)538di+|aUNi@_^-o=cR=GqFOH&DnG|S&K!S@5Y@dC+U>-~Lyr{}{~p;Cv_ zI-_=5xl7s#ek@w%KKD2`e6v?Gv?_RLzq>H;f}sPCC?r}{@CPGuscuzeWeZcKe{WaU zRaXZhHWJb>63qYii#s)KP=8F2q<^}{z5^t3eu|UJAb0BtU@^WM{^ORHZ?BO@O-%f9 zwR>1LrKr*E&8G9sG|Ze_T&kj?rg9^Wd~pBz!PEO&rxh=+o|RRZ%zOtELGWfZ+_M`c zdxFPpQa8G6bQ|9}wO_ z=S-?G z7Bloaw4Y$X^z7W+ks~{DH}fYuf8B)R2mdL%j9dCzPVl@^6YgFxQ9o)!Zc~;E`{B*f z25tY!#e5!7?e4uo)`LA3`6XIKBtGTIukyuHu=GBjjZ>2+y}Z7@&$P!bt>4=Wj%MgNK965@h-a>o$Z3bN2CVFTJa^mEIE>rY7y}A5~;jSqHX0-@kM#X=rpak!v7#PVrX~SMUGHS4HcNz{Y;A54p`i&rKqYxzx69>(u=W#r3Y! zyKpI7l!M&RO*BcLFN`IceAT*YO<{_ZQ%70(+cbH%Ey9-DN98|>@0BYv=%uTOMA%c3 zV*n7n3|jo#e=9o3dTd*8FrC}2uH#o-Sw6dM?G-C90`L=ehX9^zup%g8h~K zi93xl#@)gy@F7!md?jso|61o;jQi(&eT1CJ z!dY_*i{nVq72OWEuk{h(yE+|+b8!Lst&i^XQT-lH`mF_lx^B$O8;9R<^K5Z zw_XkoXaI~n^1(KPvhkPR4^B=_$ldIm4W4ricbWk;B%8FuFjUd{3VWv`;Hx}@mBHb? zJ+us}wc6`~v4TIF3Ni)5^6DV%xLaphd3AM!8pxB-E%daj$H&K8+h~|LI4DG4YhBLU z=zq`6C=&8LO4`}QM2+Laz&|#uTGejMKHlc2qWQ955wC>b=318C6HHkehq%Xt=xAtE zO#4lSq^8z5U0cbx{?lx1ad~@f<8|@Y(bC%8$C-FO=nATNyubI_MrqIV4x^`^jljRx zds>+texqmab;mT?us!go%0RKm(f)kK7z}K%AZu{0EAQ-RmQ_@sy-$7*kj9MWORuxx zlnxCc)~RC=JTn6mY))G}AHmRyg_pq|q0H5`1pn03w9o+emDU2nB&?y-RH7I}$m=Y+ ze0D}8v1^r*Z`WdmML|m&BWCFE>S=$z<~5$dH(R8T$k7z}WQNh%1ajTWH=ER}3)S)8 zk+<6X>X^babIPA0xxQVfcHh3U46}jw6oACB%OSlMwaxW=n@u|T9a8@#v%#89yLV7c zjfHrq@m9~_sdGcwo6%ak&wiD`ue%fOr6c-=4$NbAV#Sd@_X<=rx?m<;vA+{XYU}E} z-|*G-zD3KfZCUeYTU256+oj~cJqeATU;&0kTKx7q8)vJR(0)edN15R``bLQi;IdLFZ<8O(j_@KIc<84-xBk`^;(wp>u>oKY!%O&t99SjBE0Jg4yN2!Qcw_y zB_N=Z`ca`Xel*#w@VW9GK%DuSkbuRb1(Uf>l!K}6V79)nP(~Va+u|mvQ6(M5A|J0^ zQ89g7f*fqm(9k(3Zfa$J~=q}>gb3j z%w4aTG?RGeO54l~hlZ9G_)L9x?+5cM>qSlNkeyxW>}=KEq2|_|4_IkQ9^Fs1Yizk| zteSIFtuYSTe!G(;&AKPy3MEm7K5$~Ry6V=sI_h+kZdcv2fHou=Qy2SxD5j?4Yu(GmIo%}(6 zwG0fYMz^Aw!dYbtHY0X+_IG-(=(y#gO;#$KeRj_ub^3k~Tahg(Rqog`HhPAODzvzq z-(~u&foJfGyj5L7i6!sV$Bz*+WziHR8{18(3OluyB%Z9Kgn7}+d;QVi3E72$T7vYFS-?(Xg)3%9BEerQrTe_DP- zJK3IYCoC3KQ&oqJB^Qs4mw3>xLP^2PZfS|vgJ5H0pNxDMCpoDI41(S0r3=<2#6}t} zkqOsFFod|a;7}`ihU&qF2kkJj@NESbOac7qkca65p!Zw>(;ec&f4J+9 zMTh-|%5QvMGS4%;ylt`eC!G~4SUE(IQc&#P98NPZFcipU!T~BODmXYe;CCIJbrUZO zx(ZUT==cic$>ZVUbHj@Wn{|2_?DC$=ZeP(2?=RxX)V9qseVBDkNgurXpS6t zZfw;4JCc=4wCc>2q@<8}I(uP>*^;;%QiOOCGG&_~8w?B!$*e;I0|QA(xZt@$LJ*Ye zwfTu!8AzlRenb&9dGR(F^pDxJzi2m){+g9x?7n)|W&2d8UZz~4M3Z1%*HmAR4SXm4 zX<)F;x$ZgL=wOno%rM3U?Cek5HKPC*+s@u+^x+$!1c0qwZ(^_ml+A5a zF!x~Do1tu&Y$b1^1y_()TeYL+D5PX$Ozj+Jiz(dP8sLyG+MVgIe-U%kzSMAZ@{}eL z=S(61U__X{xUg}P{ukRbY?(i$q(*iIqf{3$OA#!Iytg)#*q zo$dP4(?eOQ6}_SOHeqUN_HSWbsC_9L64KH})XNeBepE=hKHZIGXZv4VcmWed3iB}V z`b(#MU?Sr-BRVFDK}UG!$*)6`P|u}Mq$rc|m79Vh?_sQFAK7Fa4-Rz$JaICA4TnG` z>SM?ANl@Q6m_Z7iBrr8ho6I#ier}6sNaik}5yH8nnNGnFg;@#DwS`!qVM z?womw7O$uLUq7N~Rpdd=UM$lXPiEb3SdOgnzrFHRZiWWRl*1`WHm)C{v~$U5Xo^LQ zy>tcE7Lg(aEUWDg1xJz;*gXyF9Ncfi<55J9M_xAq z5P_<1q_-ie=Xzf!R7vW1ycggA(TJjd_HDLZ9(x{Wb1v63D32YM<3695;CMY!c#vl1 z*wF#p*PoZMiyRY3%2tJf^bjt4QZljxiQRIo=A|7!HTBewIhryA7DZ}N+KC^!nb=UM zfSaS;>&YKvCSz&yo`jY40a&Ft$T^dyh&M!p$9(=zkyzPTzC<@oiy_Qdz{RfTCU`Lq zE|GwoZQ`T3)oG{~D$LWxHBuxQB_>Qq2mdpp09JbILUiTwU~f!~xq^somXfAtLO2$nC*O z#NJ-0hKtWwK_U-aymLQu_5-Jyz}4Tthp)aLn2v6gkq!08;!g!j>53-*ffFkZ6*^E~5xt9px6ww&KOEi*hCuvqD}zp( z>d&93Kq8}#y`!Ub!|WH;U$<#jJymODu1Qt)F?K)zMU52Q?fdm(6~THa{DJ}N^AxctY0<_8XvWIUXVuXD=17}%@?jMq`hPGY;D3r@L1;a z(nwgZoEe<(PK@w8N}nCwPpi#PtNMouf=Yl6rJ?YoEv|Y6hfhm|? zZY;^te?nBV&B6i#e=SKPsW=g4_n6Wd=5iV4mc3DN!r#{ezJxI{3Zz#yZ%YQ1iMv;) zy$`({BxF`D#I!mblS)N%BBylr30Lt)qV?++y}L>}iP5k`=*OYGTgq>%>jFd*+U9E6 zVXeef65L$aqy__ zRNV%|mW`$f@=FKWUo4`)XZlg5GFI`KV}(Ns$50(=`hDig_?^Eg49&cj*ycPwqv1DM zQkhY!7BJ4IXLy@{V0tFJj+T8=p?;geb^*9Q;B8y{$ddkp(SB4s3;a^4CS16t{{ z2qED0{2FO$d}@%$lQ<{cW?0uI@F*n!;(H&dX|Lct-d{<6k}**f34}tScyk{elv2yv>Q!oAij|G`Xy02c1){AWLj*bs^`dJ7n)QtLJ7yv}V zjimeZj}4 zf2M_GO;u3>um84s!_~{MQLyy&+@Qf$i9K4ZXx3cOGi&+~5TwIS{a!2$^SUQb5v>m6 zTQ_qg)29U-@U{HNYbsW}*0I^8**(`hXyg66bH`5%aHaoDfXrE#RW3)Xamp6V{~K>w z>=aGHzZad5TimHQ%aVk;bb5obPlZBU?(Iy+fp=k;U_*{x_GFu} z^Ih3P3Hmo*XESg@@0|8UrP%2yHVp2IWjcj1Ag8MOZ_VTUFUoY5#h-$|L<7nXZgb<8 zjJmMLgWvqLot)~#a{=G+eX^ifi99QM`3b24sd7ZXd^Q1)D=I(2-&&rm5zcEG(l$4H zHzG>&oeCo6`g&dSCy0x7wrQSULJR$7>2uKS)W&Z~O2?~AC)$B^H#6HG00I%^FfEJd zDP6>p8g4aByR57Sph~c^sHR`f1-a(5YXHEA;}EoFwa~)mspVk60kGe>K>5bm+1x6N zO^_t_=-)6kbai#PUGH&obH9J*zqGW})g=UWq0hA1h>YS#=wo_vua zjcg`AAs9m~@|~Lc3Kc~FpdnHK=M>}#`N~U@Q&TX#i!l#m#dRH?j|e#$XQ;P>>x}16 zBIv;Cn$-O{h#lymz-Ek62!?f1!*ii>O@aX+V*dg#vkSG{wtqQ`Ex%9#5n8t1I`SV` z6voh5Yg@s~D1=P}bbVL)M7rKsOG?`{Pe?a$ijGa-UGQTI)3E8*i4u3|6A8peSh0Ar z*tcRVFCRQ>dxV=?e=)*4Rjl3LCwOd7Wr?(FhyT}}Rz=PXkxS)U0j}Tugj(~3zMSjN z#5?2870_LJ)~QPZ4i7!-6(8Pi78I~j%mDsZENhqM5>h)uqi*q1HbsDpc9^ve2v5EEzeI5AeOP$nUb~s>D-~imZ z4RrY`*?A*RoV~`+kl_=jBC72*cP(ppVA_9Iphqh~oK7*NX<$GM2PaWHj`DBsA6RHV znSzqCvRU&wvHFQjDC|E^dIET88+tG9`c)9ZHc8V@x7cSzuz{_7O7dM*4Xp9;(7v_< z8^I-u>0OlTYVFeoTOkp39_g6ni|_GB8=C`q^0~;yMQKXqRLJU<&?y-w*do+z59jM% zo`!pY4Zh2>WXM9_(s6?_^O#P!=4iw4y6 zof&Fc1gAe#exChCgUeBReFrHmM=YR;;DF|E(89(!AeDaEgBkx8>JZQZp^yPv508vi zK3P(Z`1mEXW0hK}4B*jvi=zCyW>V1<VC@OX;?)h`XhN)75Kk7pZhN2sns#oO+~| z?V5%j@fYSd$JK=ME_bL7AM|q?b{?wG2aj$|phH}rpL4;$O7pD3qSuA}mXLg}X3mIP zj7}8Q!)mzcFYVlGqtU7yAT~b5B}Shw9ZxLTLYP^Y)~+ijzco7AT=ATeq*GeN`^VK| zr}B4Dio1eIUS_6_wzl^5FZZm?t?P$Vo%Da%7l^@u6^>Jcx5o(y33W+y5UG3BFRL#R~d`;KxcOA^Z@eAylqYRRdH9WKp+6sRSxb86eLU+yp zU3#p!!a9J-JqaK1B;2d$r&l+6@&ezu``%om5(=UOQbXZxzJ~q~m2%zue1<5#&Peq~^m8H=K__ z1B^l6bIK=8&4W=L;C<~#__wL<*4lV!`4qOvna}^)3hwF_zI%H$`R+rLD^FdlpinX! z6chy3Pi0RTH7!{!>i$8+uo`3m)^o_@#;eiq5zW5RVAZ9|u z;MLWK_uLR08S_hO#JoNbY2%EcR>HWugR}-VWegrK=D5H4fx)~aFm}}k&u%_+qD)V9 za!P^Gr~GO+NAGH=y}}GH+o19OkTt*qq=4ntx%r>w{C3}l?&^g9{JLFjIvbUp*BYEZ zXhXgJ#>whjc>J0xRHX>*ZlU;?O=dpaXDyy;5G&;7aL7<|H%?xa@G zzA@cA)=?Hy)a2Tz=za}duTg;-=ta6+J=*gu;r+i{m&MBL*&lDDMvDSdU!l$pmcZs} z+8pOT02$|T_@|CeR1@aUDg>l#RIakC>(b0^or^0Z?4gLyG484;CQl}A3i9$`j?Hdc z&R3*Kw#RbX3>nnW)AE?!|IK35yU-DHvuN=7kGw!>V72~s=jzR^)b=f1cU?)Xs&eZa za32@s>JqegGG1h%)`iy3sol(==s0OH#3gvhw#y^!=6*t*+_UuyVo@=C8ph@%?C-PQ z<{Z+{MFjjQYsF=mRG`6nPEbPxL{geUk>vd;?<9ulzBQ1F}61>>e8 z%A&th#BcCXfbZ>-NoB|q;h~eP03b2@&-bTXabLd-3|u#Ss|dqt#G*KNDjEPV+QT^U z#nm>z1Nn;d&$gbouQ1>~NjTx#VJfw;+Y-4^r;*kg_%6#Q>RH90L|G*^JOy;rR>lcK zuTV+fAZsvPEc0=vZkNj<@YdM9Tx>$6?;!p%I+mKB!!|!UW*$4bwHd@hwLv{5Xy%0> zM8utYZx$EueIqZLK(Zx0qey&w2D8LMrSyfBPay!N#>A!RJ5992yTSL3cj&|B(pW$Q z!eL@sbhu*a{RNS!cX_|tGzdX_DkCke0m^(ypCqX&TEs1|q1Nk;2DW-(m3Cisi($RVmLPHg`ybLXTxk0b>qR9o)$Ab zDp?aHy44SbjhxSN<+cL@im6h6B(xgzPcxTYOb8`g9Oy2`f+1=0BO^lQ=_Qj?hDt6M zj;qa2Lm`|lhDO-L3to-i6VSH1{apIChD}!HBa=Y2RM##+Zb{+ zW#u~>{Brf+Wf}oA%a*n_>$lf*e2!8GINI#C&dSfH;c@p$99Z zIp%m0%=j;LkCDD82^Xc@AWitR2XAxM>P@>NCp9Sy-crRKSKCY6 zy@sI?p#t_nFo0A>A-L!z^BKa};-pw&xqrN&v{+bE-@SbATIbzn=@0rxPR{l+lq=sk z;X5`wr{#FITkW`wizfR6zvx4+3&oe_bHjJqe6dEwlI&PSflQtC%uzC&b2*a zZFve5fx^H>shCidRmEf?&DEg_nqCfH%V_nfPo6Ped|u}$6Mx{nW&j+2a;b@zt!dxf z4K7^I$!YY>TpT#P|G4hez(akg>anI|fv9Y6-}U@3J)SQ4 zJ52opPD2@%2FGPuzdPDH5kBEQnT|3e$Gl?qW6WX+3Qc$aaydMk0z~7}4fsH4--lnc z?`oWx8qHQdvf3f$j1y4sc(4}um{eB)k$3_g@Dgl&^g8$ro+xbPsq9d=Qa)F?{M_#! zqlyHQBcjqprF4Q9#Sf>cfX}owT(mW=wNan-^%ak_^ zV8>*q*|iBFFI&P1%lskc8i_w%WyQ8Gy_=;>a-re8gWCc7?fE+6Y5ZY3%HXTEhtI0I zbfsy^Qmxr7=enhK<>#wq8y6y;+V;Z2jl)zg)l#YiiOdo(8ne7R+HKKNE8qPtiQ06g zvED6|jhr7#JVwtR6;S=AQhfA=!H`r3)9`23I@$d05VhLovlDG3ajicuDJIiK8IQ~j zeq^)9wK8G%t3v zX04vVpG*5@zKb&f3p_(N5y-Z*vNAXv_JKi9RhL#Z;RE8%+{~(6`r-f*_m9AvCkhTM z_8=)``K~g)=IM5IkBoiYW2}koQE?kp$+GYACGF_ZGHObu#cyK}B)}`!MS#cy3V3|y zI6giA58%k+00-C`+?JC`h)#9#WhL?|yCyrsFgttb_zt0wty^_ISh#Cw77+DB_;SgG z=XZ5Y2N#<##6DjO(rrp--_f$)`pcQ_o}9n|%F1(VYcJrK%MYs zyo8a2goL7Ed}bzbuwG0|3;`$c?^M~@-_*6rMi_r|&jgTg21j0mM_+_38l=kBiGOPh z-xU3bR@bYqehm3&nzPwllopM3GsH4k%f{feNgF?#Ct@1)tAH#>ubpBobb)ge4AI;JU0}s=Muujk@@_;+ipk{dqyeWjJ;N5|lo0Ye}4rRn{;xS9uPkw<>C(q5<*EBkYY;gRKeH zDw8YL>tlATGmIZIW;6iMY9o8SCop0Amz`IYDER1L_sNCdR;z1|s#FV~+vO~gv9cRf zSy;qbfTYw^+Jpw;w=18B+l+m`PZD`7l$3Cx@u{iH(N!4W1v5fp@EFTm-$nKhBCr|k_$?{=L!r@I#F)wU;&)~%kn#7T9O=1`FaBvqm|0CivkH<7taUb92 z$^$QxMzXhXoF!h=Ylqqenb#|VF7jF(r;{r_H$D0wHl;I@Hx?q$m@I;oawIQ}B2NpF zA+P{KTN(W-Ed0p$^xQz<*7W!Pc>&O!M)TRJU1pseINAj0a^L3I3xF&|ts46^y(mBy zD3nuy@r_hmFmb)t(N~!K8zEIEMzV<2xR3H)QFkS8kRygHA}vq zhtmBn)?OM&2jF6|F!7SW08J?OBa&jrA6X)(KJIJ(gc5YyqsMofrrLiWtA>`_xXJP< zlCfmdJi%3tt9t!~Ucg*dMC-Q)gvrpUtM>(1MhIk#C@HuFh)RNyvO_XPde;E=?6 zrCx8~`{`g*!uR)-Urkqo^p;TAV&Q-Z-A}($(HLUcwZ%6f54I~U$Fd?Yg4+qM!rC-E zh9K?&SSTMx?XIDGiwPBMV@Ax6WQ4VgNf>9Z(h~-PEM-+3k95HQ{%#HnWI*wi}-1Qy)ts51-nwe0i%>ECIEn$njsy+f1d+s zBWZ&oX~Qv4V8N)4HXel8p)weExp9O8Dtt4*caJo3Dr~IHzQ;N$Zf8ZZ%I#`LFDHB8 zt$yUh2||LC(hHsv-*o4{a}?jRY5>mDFz~kiz6{5WxiO^Ka$Yh*<_#9~2gWd__2aV# ziyJ0SLK!i@x$(tJQQ+0pQ~>-vASf*S0G zXpdf3pqbCJo#px3DIlk;9Lz6k#i?d{?EjsHf&#V?&?Mi6JY2ZLa%hJZ(1atq6+y&; z!ws8mT!9V9!-P5(kR=Rs9AhB>kt$my&biROjXs4WjCFg7d2dQ3+J2rD9ghkcT-N-` z3NCY*OZo$n-SmdR>6^96y(fx4fusefp|GNEjY}vSGLPOB)0Au*u>pKSzI30ohPPD_ z8*r9p`_NO@NZgBpc4#7BqJb9#ZfsF=Blm26s8x34%)`wg7P0(-%vb5%fu%6Xt(o! zEcAHm)pJ|8@FE{Ci)?1#xX|4XmFW+~RwYuFbD!ke*8NdUFkEp)x@fH3^EHsm(pJc* zGG+vlZcmJ7;z>u%S9?2CqU2`|9rNE?X@>|zMrECmV7-@((pS)wUx4nmNnhYD5UjMKSw zQm*{`U#W+6JQvPUfd%dkBoQm%bFBI;f*e6qYo*zmY@>O=+v7x+l#yOAIuIxylh?y@ z{T-V}nqSkKErh|e8L5R}*X`CqQD&vOgjZVwA|YL&N7 z#jjP-a0U@9eiT=S%oR($A^=CSA~`+WN{hK_2kLDqpOqHbY}`Tqacm@EMA4E_9R^=l zND!&}^{0!kJBURS6v&lMlk`E(2R`oyX%B;hH1qjN|F)oBwXLT5Rgul!7OddGXp)kK z{2oe~h)yKlKRw5sXx8vGaq``_DM5>=!f_OAYqmoNkTux$E}qkY55!ON11Qt)^dJ*`U6`M5p!e?mkM6bplSlo>IW1&8 zV9O3FZ3%QBOy=8tN}z$^_4)cxPwykR4a#O+H3BFAY*&B$!S*z8bUxesjV+G@5cmJVv5o+ z^iW;P{j1)ost?UlbRv)GBrkAr7A)>1>=}d}qY~1tA$U%_|6(%wOCv@d%2$qt1^U&+ zc(YQ(VB!TKkMtg>Xf44IwN5(PI5eiNyF2(t9$t$51DkkwJcgM(5TQ?aJr?H(l% z7UiIB8I`*ye9XiCkM3+&P@|&+?G<&?iE`6@9s>G_9$W z0IBiEWkz>P#;VncNg{)qa_v5XlDw#ygezauG5fAm(WmorIqh-FTf;f9ag!uR|LX<; zEjwSYTOu^g;H9dFQbsTu$-(kLo+57jTeXspdAPWQZA?VvACjCNyX$Y|h+6*0IPwfL z>%TzAhM|1Vu}snV9l6Vt@UG-jf24>}NXO(CNlr#5s{7DjL5Ic--;_Ho36l@!IpH$V`W^yu}*&t$ZIpkYhPO__X521 z^5L#ouU^n|pnMstb{Cel!ll3e{Hx)6-^&gUL9d#ARwD>ax1XeOY?E6PsVkty=79AD zKFd3DgsOnEI|vTeAIkIw{Kw$c2~P7Gd-88YLL!Neaf5rp&mbhM0Y73Xj>2p>mpwU} zPu}W3oXcc;|L$z2mDA-io64O_rLANP6m@xup=jP((H5kQAQXHO~Y zu}2^>?O=^y&>9+Xp_*FFu%)cE&|-k7Jp zbNV`Bm?by%^eInL8;q`bAMXPlgIR^z7W<)?XG#ztx9To9Bhjz9q!R z8?M!>w7>!L&Q$gk`sw*AH`;D=Nv=+vkDv-esN!Qra$h(+G^o~42Qojzq?)0OTh2DG z!+O@6`LRBzhNfr-Tf2fJ6czKQ)6k=?_nQ*=e!e_7l#xReQj>-=|} zE6x$8)rLsfKFoo!^p|;$ZY@6HxW>3WwE;ea2OcsEd^% zS8CPMR+e9Vh9Rq5SfT1m|LD_X3}yf5z8$Hwg63dC$T7Ro!+W!L9iyxL=ajEOGZF>V z5K-K1fubCSbmcx9Af&Q`2$LpYOHI$;)sn7$}jTH2*3|q`5 z%n8Gj9{0p7d_?y!td0hDDRQ|9x!(cb#l=^B?!c31hAw~*OPt765CcrUS_s-pVh#xF zdeKhPSHDz&2`VZ)8HyOb9mmjMY9&^RPc6;<7brkgysHh1*JI$OuGFnXz+u-C7(W`w zm)*=M65<;z0#$ZuxK-pSOZ90>SL}167++!sr4?urkg(~vTrYGre8PwZt}P*-4(5tx zd(`t1oc;ct)QF7l1c6R7eiNCJ$h5DX|1MhGt`Te9YhJ$rxc_m}6tbHc?)ubLnMmIj zenfd+bfRdH15`(;&xb4az`7j%eN2W}JzV3VFU(D!ZVVLj^*klPzl99M$nVP^X$ot9 zY9iQ1qIP2FYha^EWl@OdNt`Q&5WPl}!?Bl-i;JSfqH0b4^ctfURp~y)8aUpIN}1Xx zXKnga{!0K|Zt5>B0M`C}4Tg?&2Wz-mpg^VhV$_`u%^GSoP9Fp5$mTjEC1I*))-t86 zYQ=h~5uU(JeQgcADi3Z79vQGg{boSWhYAbG>;6_#)kJ(kJ^q(6T-^xhlH7k;Y8pR7 z5n0SkUYu+X%a<)ioxPf>A8J4(({2!K7KOzl|j=1ieb9;yyDosZerYJu7 zt-t^`DN~OnoJVJvD{Ad=cBfLwNDmebA6NMfPo%oQu$E*(@_Sv-TPv(e3i73%oN#jb z?jk!Pr27?DvgMXY72#l-DkNF5%36Ddu{k1rEsG)ZZ$g83JHW#WGg8Wgp-fGTkcb;C8%aQO>zGt zWz+&^;tPR7N-0=17JD$IJB*vSr801?VgU=XxFw5EB_MGajCM`sUI%&n<{HgBt9O4- z8KbFIIVrS;m7FdrttPDuj-5BEbFcIFg_a3Cm>(HcNU__vznGk!@lrAHTE2DahY&C3 zm}~~;H~P};5G|Fas#)Btmp!MPzfl(a7;jRL2Jvdoyo;(aU6zwqPI1(p{<3AWIQ(Kr zqLBUVNqpV655@xkV1xTC)PRmle2F}AXkbmtZ&C8#1bIXT(HZ@5ps zw{Mw&LC-!QNc{Nm`l71`b*C^{su2{nvigYmpgf!PKIMH$kcbpDaB{k>Y0FUwPyAj9 zbj;2=fyS`G!9h1SH)5JnX&M8>Gdatk;t{A0OnOo)^NgQDyL)1d>IlTe$wGgLhuGM0 z_%Q{t<6Ff4P5cGN0?{LXhhw7axcU{5!nP!U&nKtvJ)UA)+drAL@X+3mJ*I>3IfgEp zlH4&$52h$DxBj7tY>C`OgSwtHm7~H0bw8Bv|0o6* z_;4kUoDADAqRhKA_KIJq3}Ii6oz0i+Ykfbcr-Bn^ zJ05p|*LN3mjI@k@bxBh2%PC06V%(Sq1HmDO+a(krmmqRL5Vvmjvw7nAYA=RTo&ob~ zeF)pR?CCnOSxRo@!w2Hx+`!rf)<5y_3~I&==G-Jzj4vz%073nmZjHH-+tdSZcw6j9 zs?l5xK7cDJaa_K~50iuP2c8DI6! zJjp*XAJ?bgT@K^oAl|}Iz9$S7yp;v6OHxa7G0%56l)S5zP86H?V28QLja#lYtJA!6 z@q>k57ZV6L%fx+Rc5DXV8i`aj~kH;qn3<&@fVRa2e8@g~W1z0NfHlz-}+92Uw(yxuifmbULNM_6X ze)NOkzk9&f=^DB!V31;S6>}+1hs|)ue(psyB6(~lms87NALN>e`ztwJsyumgWPx6A zlXb@zhw>Y^mi&&(5t2Tn%3e2pG^PPI&ernNlT?i%j_-gFnYF(5X$ZgHv#*>2S}3T& zO2d`OM()E0%Bv^L=4uHV+=@>^>LQjM2&{KQG`Q>MR&p8H+{3161jZk^UtufKK%z2% zfZ{~&;qp%$?d#BTIk&*ZH#*1nVS5wK;Y&f_NLH%o<(Ejxm+m0{?+VN`VE%zegXg8@ zcjW>v@;|x&4FkAl+186)U~Z3A5#kSbbwTGa{ob8_3&`QL$@$!VGP#DboCs;U2m-Qr zD}UVgQ|liZ2Q(qiVgSCE?$}E5{!Z85L#aUaA#?t(Y_2ex9YOZ<-u8u}Y!;8W=p_4j zme!VG_7#E;fT|o6fH5pcmorWT3dASAQR%_%j~^b-=Qry1{H2q>o1Eu6ue362;Hg(f z9N>s)aY2g}oSl+`(ZbjZ11xe*xbk8F1M{AsvZE!{7&h$C^+hW2gR~0fW<4sL5zV** zvQ|+xtx})AO!@-`t_E1(s3=lFXwW{Un%e$p~Zu7TW8FB@;H27B1EvJveQr!lkCCCt(k7m{H1*eY5Cu0CEmgqWBM5n$rQ^D^bl zc~0f7Ox?evR4QUgef0r+m$^PM5|TW^LIVor**5tfGhUO*BF3cpED1rl0nzlO02!u? z6-h29inJ!&3QCMQmaZz=ydfi+u!-g#JFnFhmp{ymN{N`#D#Z~;nhxt~@sDr?=O#0& zlDNTO&(TyYRx;by-#?zt+n^=D{1&cU;uRc}qy8qCLXz?N!}aRmB`D|i)=A*4g^K#{ zOX6_cV46AsJtO1GZlV{J?5putUej zvSc$st%r?bAX%P0J-u^+iyvZEFFP^@)pS?>iF3ttCss$)Kp)<+LABkW^DmO4)2QBBNBs79l)3S&WIOf`S%aHTy-5CPLnZm zB&1G!n}2x)Z*_XzL(a{#%9XG1@tYDdGHZ1f^F7R9z43m{vF#0l4^(TmIQPg--{72lx0(n@KCf%l|TRaNCb)DUq^Vx_qFRXSTT zPhu@uuhB`o|M{z76K1Wihvn!(dGF@jbc5P!&*kV>!oLNxo5q|Qf$Kf=jjOZ5clQK5vD z<*kt#ZF_;GpC2RPfRVl!P_hKQfU5~4mTb=S-6u7KkjN2N>I|?(OBel($WE~4&$u=e zUvz+JATbf8T7^uP?j9G1=B?_4u)Ul8ES1OX&21IewJOl)bTj&yr!dRip|zeskD0sJl*0))Ss^@ z)$gx#fj3eh8bU}(Nx{-c-@w2?|JB5Ja*wqmY0r;|VkWf&YpyqSP&x;hc!RmqcMU$1Q0nejsUskKN!=A ze^IjRN+oTkB{yJ1!L|CNGDeB>9O7~r%pmykfbVsO%m1I93D@D#WkfW%xDSeY@+=QD z(Mcr_LHH2C9$*cz*UAv+ApBUojK7v^QO^RJ9=7kqAb%J z!geFSA0!f4Ba@`XH|(B`$G z5eSWCNOI}_hDE)yn%b5e>~u*fI-cb$s$0*Ze}kN_X|zK09#EZM10OS+R^X#2=@3Mt z&&C);bJ`?|1l0dQzsGh9Gax7x-qU<%JfwKjm^1U2IJu_(;xz|!As()G}_vs0dv$~hsOvw zfSd<3oG1*vFV9;J1Y3fN#9|Wa6xMFg2pb$c_x5r0_We8H?AR}|KgX?}HUek6NW+W} z*~r`5o0yVvXxBdU`&H6;Wl0Hm6RH8y{TyvrWTbQvO|d|IlA||aNh=b2km|fk^0C17 zd1j8!o9|Dpcal^Y$6Vd%!b9pwU)}8O?ODwCvHbonA3Z%C1Sx(L5rLKb<9T=1{4D^k zby2jzPM}ox1xYFx38hC`oEsHbJ8xUg`GE%B$!Evxr4g;e<@H!AUnHgW#0*5o3vkV-KasCuWSE$PP3ya^{e0UE;x z_6aZL6QF-S$a2uZ$!Ye`QAtUO0+jz@VbMc-*4AFv$B1ULC+>SfyKzdwD$_FUqFk7v zlTw6A=QX#k-~gr-Zo@en=~ZH4>i^T&SB7QP1?@g`OQ)oC2?)~N0@B?f-7S*RDG1Wt z(nw26cS|=&mvqBfyzf`%T;Gqgujhwu_Fge-X4cF-vu5xA8Xc{u#WV8m_BaN`;QI$7r+tv;?U}avonP z4s1)U?ZJece#<%8(Rs5E{~bmJcYs{)aHXWZwBjeSMf6P7ZJq-1S;%_!eWS5u&Bcyr zx%(v~smeG`8wwbOG4t5++XW)Y;eyRm#ugS!WaBPD$n{^>IN#)ngKlooREBXr!@~rN z@qv<2^io0g7qMotLv(=viLI>%*+CvhXJSBks~l_ ztKlZeyAh`T>q&5kG9P8qn|Pzc-UdmKoCuBk<#{vR_=5Ph{2>WY$f`$P|5!MJOYEYJ zi@G~(WEm*GO1EN%q30APU<;$YyE@$@@diz-O<)2>3|{dePdDIFv;WKAo5V{9GRR)C z^uqY9$rpnkwpyLZLoon4L#Uf?yjrWPox#~naE=gUqA9DWpdcf=@GfCDCqI$o{9Qse zIF>&@CW8p;`85ABMV%RH_pgD5w8)=1d)+erwv_%_cIHeLtuK8665pn#=5Nk~NZE2& zZY}F+d+b)qE$Z>DM?x{Z0RWrXFI)ebnHcXB2XHUA_(?|x2Es?TxuU}q!!CDAxPU>c zQm~Ft_RGe!C*q`M!4mkW7u%ReI@v%~FJ(BK9x4v0n}wo?)jf%K5}>YFKjGrp!AA6P`SX?-@R`e1E$iQlR7^C`rqR>W*nF_)W-V4$ z^Ry_Mt4vP&A_!5;#98_)#o_ylSXD;9NvQ9W9f(ED=M*Qsvp~~;e4l3vn!w}Haio0p z>hbUs=gu%a9bIKrRaJexuUDsQTT}}d4Tth7Rv-4=Z~ePE+0pNdC74lB`49|n*jX?= zSSCNVplp6E=*YY)v~|GL^YNy+_m`{3*vSU|@ruHvOGJ=rCXbEubU`w7xd^#_XIF1a87oMdIX+{s|OnlxPV>;bGeZZZFNequ5 zwnk@m{UAfhS^B9ezdmN|nG^%4_#7y>sZM86;2dG*hmqs$rCWWQN%NIfN^mm#uugE6 zy;J)Bj7Oo}xgmz(C6*u(U6HP$qQk}B6v(9i{aZC%e*55n-|!cNjEv0u`P!DM_se;y zHG;I1@wYJ)6YMvt-1_)zAZr(x>O`&SGTQxPLyEvb>KhW$wQO(^uXkjq2#5wLGyaZ@ z7eyy7-7P6oGVv!9m>^FzPyAm0Gw{kSd`-0ZRkEu--Z55-R6Bm9RCrv$h~C%|Q!8d@ zBb1+VW-7?+36yViP93AL8+Al0aA_)uel4)Pmq;ipD!H|}DUgqmb*>JiaA>TYRI08HQyXt5`!(tQR;xs_;K#Dn+nGW5f^2S?ponnM0BEO(LBDoL=h{{8 zOaW4`Bf&`WnE?Cf-BbxaJMpN8;`Lvz%;Rm3R){TEg`2fx+k+dPo0JY&-Lk9&FHuwh zu!f6@b_e1aL3)!_?RJE0l;`>w^4 z>pQGMqlqTUxjp6K5sf*wbq%?{g;L z*Pm9%LSL5&k;!-OkA!FP`7Je@H_kOcgD5);vwsMZ5g}N~*4saci;jU^FEDZ4F9W9C-Mn|ASccv#h8|ObQA_x6Nm1d|Zhp?&r^+QABSC zh7Y++QBJG#rmS?dwc%Y+RUI5y=bk=U&y-X(m~%)~)oR3l!Hjm%pnIp+@ADyVBT!2F z=@znabo}O+`EIrE@*aKuvh|Hky8+a%kqvp<8=lKTqN_g}5X0@QmD}CSJ|}d@!Quno z7xO0m+b|Bga5W8Uc~e&dK5O5Z4?RmOyN~7zm#rOji!qWy$Jf_fdY%a}9}l2&smh_| z_k$*~=z4|?hzO<{1=wh4%u;2#SE9W$nY*30M|gNav=}bAKA(V?m>3(o+IE4nipP3M zT{&!eOI?~y)0<86E$y9d&l5RMyl}~s6-P=!0$!Q={`&JZA!IPNohah6YiWtjt>D}9 z_5u-7&@Mzx4DLxgRS z+2RACyKmv0daZA|EsI8-Z~7tY1y7SfYxXmeu=#|V|2j(p%T%VvI z(z-B>$ecWK-Y+0|MkgsMS|iTT9EDX!HjMKLiRM2tJpyoFuZOU1*nOz&bBzrBm1PKZ zj!nOz=DZ=DubiVowN_kK_Lh3>m5z3W`6C%&+a>{7Gj$O;YLfX2#e_jPXj2wBeGGRFR3fu zhw3P#|FF++D#G*%e`Tvqz6-%i1*{SsbmZ{8#>$F~)M1;!sB+|dj@z4z2v34~2&9s% zT3Dwln(0K-6}O~(nscS{ZjwICTG-wiw`AzRwk);*KIW& z;{4pj!NCI5<0&ZtL2j{k4H)~sf?*?U4tHI`LsbS9yAnaH~C z(+(akJ{$&6zFi?3<6PP)Q*3Pe7^J)CYDAX&0RoBC5$@$8lg`a__u_|v%oejZQfGAj z-kwJcIcKFRJV64L4fVCf+w04I^DJ1*rgguiN~U7l zu%VUcid6UZ_ZOrl?=%{uE25ccb={WmQqJC?tJ7(U=k+}ysJ*R+z+=CTb>1!4YW4E) z@tN3VF*sscW^ufzM~U1kVxrokM2k4Szv3M(VhZ_jqKAKJnQH&*qIyCN0PYLgQ`Npd z^ri@D$hFsre!+^nKYHpZm}XPG3VO%gO{(v;f8;KCmGD?ye;e5)LQs8sz**`cwDyqa(Y4R;x_pnRrGG2n74}!e{(;Uf;)|uCN4a7HBaw=VUof%L%G^ zuSVW;?DAAD`?{K%9jwm4?`^| z`GX1<#0sXPW^dwDfHrbte_ZzFm@-;37r?)|)Lle*4HY}rMC~&Ufw;q-XLu^Sv3!e) z5)=6NRUnoAB-(7$tRO$1*`Re1dXu4Qn(}F;>_QHQKESX84l-evO(x`bKr;bN z8NA=}%fjs2p&HK*&5b3u6&Inz2(YjOS01Ryat$_Uui;9{-nY2!7pN4TrlqIzG?%>) zDc(vDVTf;RYHDg|0E7cuPOfKtbP9oqkeP@^JIx!Eq?^u_WKVo(h$mq| zc`_PrxJ=5p#97y>FdJ}6)6&qFmITx*d^S7LS2p)D8jE>$-(pu<*+Jb>>Ap!mSUUeb zRid%4QAG7Pjx_`6KgO%N!>>-f6xPA@5+TFx$+35jFTiqzep`+! ziUkoMKpRh21!LnJ(H{{yMX$2=aIAK$Te1yV*Iu|ZRYy${rR9BM!HY6M)WvBX>UTSe|CEC^3GD+hcY5JZZ9dFsdd*<|(J6 zL3a@rdn-Qo&`=*jrOs6XA>TQe=;{)eP-3C|L8!am|Dg(0a&T^#e);MaDG?OwVTez1 zKufs1%xt?}KTAp3vz#>3ZlJP-ecjf1tKfY!3hH>7jigOJc?Y1eacB%PL&p8lUUG8t z_U8(cJRaL{mGrcMG(lE!(1hJ)a~7^?c7Q?JVLA_`zh@CruNEA z&B4LJcrQFV71zaDK$*M#kG4J7F*~ToPm_#VZmncKUW+@uHnJ|^<>dU*W}Z9}1Ix(A zw=w%e46=G~U?UUXQeM7weIf>`t8tk05JL!l6VU4f%Xtq7)l0qctpA`1xqHvxu|n}d zM9Mq6;M!a3`b;_VyS(3*N$Vz`MOhcC&;?)b=}%pxZ@sP^1|$Z^!Nl>Feg=Zr(@}DK zZ95UH_0eL``1lo!UwZnxfUdngt5y8D(~}dOmQNP}=z`qNTXOfUY%k_GBBP>O)IH(v zm6PtCmLJ|1*ObRNp45~5%&PvVqTrofSI)}K&3&R^lF0JZ zY-3~N;o-sF6CpKdh(5~OVy-r>XccSBvwClPBRbZSVMCn>oZU<2b1x^PrV1!yJ+HV3 z4!xk#)#VU!kJMT}7c&@sbD}FcXfn=F6dj#uC!Z7@y)u;S3>H>JL&N!CHrsSC;pXnH z7sM$tg;ruI!a`S9SDSskV>2^-59ezwCk4k{?=i=Vii;=W_o5cXLG>Hqr&|3db%GKE z?AMe@POr1c5#10a$fP@5@2|6adK!VdE+rxHK7(ItC#x%PghQbbr(YrWvGBI0;}?rF z0wxJ45LI3-U#6a#;eh0c*sTzOn)b#XzEjAzVUz-gR>8;n^pCH;&&_*?g|!Nc-tAv} zgS6E@T4I3--aCRw8diJSMc>}Z%l8Bhir;>0C@wB;Y-|K4qk+z_H3#zCcR(c9V7Lls z9Fl-qf=;#8=#ag$-hE7~kU>mF7LAnXc>8S#O8C`RU^l!$6|1{cEQXJuM@puR85DyQjI=dwtOiV51(@wHSR?oRATAnCu=^zyB*8z8* z>fdLbGwK#(e*L^-0<@N0dkzM>wWhZ1RZmof$H&EiGR-<#Mr#wZtzHokr`kpkHukwa zN4S6Zse2z1qJW5=DVz{~+F1`5{R>`oTO z1r82aorw`Tnx{RQP_V8M;k-#68W|}sEiG+szE8DpP3C4(e)aY1N`YvI8Fmt-W_Py) z_@#2%YS2x`xX;i3<~3k~aP#qLsD5+CUWH)D&HyeAkBAVwW8z|Dls%A@7?D~egu*Uw zSJu;Ov0o8{%r<*eM@N(W5C#=s&IAR0dcTl-x?19btOnuhOU$jOil9snr`l?1y_}p_ z9`~&-42hTa8I~su-aRzEdr&%Jvk1nJwOxKgc@!CdG$X94p#k%&)%$KFL%{R$K#Pp5 z?eAZt$)yG**A2;d?Im4xbzr?5 zude>85@@v6OsK7QU*#BC$jWrkYf#M7VVFp8K;m8>K?DX2R+68RR>t1mUbXqCx|-Uq zxK&Ri&($J!Mn>yyoiCm<;~=X=`{_BczPkFSzpMHXU`#48pd2-r%r3b{H-5T^JxZBY zzj(MBU40`rxfAE0q?}r4)s^mej{Q1HQbkS8^a3fdy>{6jF03H*+o}ayXCw2i4_uJ( zFbq0Bzv%$Sgj=2}p17oZi`!vuPEPfxz!g@a(F-iSNn<^|;gNJQW}P~l(?9)6N=gYu z!x7#GpQmVb#q;c%rp4$2Q?-#gS*>RZ>}UUKE5Y!-anV7rbUl7dN%SG9cPY|7YGPaGDJ;xVhQ0urFVr9cC3c- zG1~c47_caPxCP8^Ent00Hk3i4$N4}&TiTas0?OoFgva0QvaHCMaVu&-bDH><);~{{HUb^mKE%@m@q!?|V0n zh{wEP3Ts5p-W7<1?a;MkOMwe44fpl6D$O9-`ssx>-!}C@=wFe9&fk}2s=csNT}>wa zCCJS}0ZV}Kswz5|Jv}}M3JQW1^toOO>FnqT{2~t<;}tiPcvYnyBa;<$_hd9+` zR+eSBWV}5R4KW0({0FBholgivChPJDMGqWO9khB|Nmt(6yiT9b4z?ib8KtwavANzW zfk8v7&CWIg&2PAlqQULsu{8g+%1rbg!r-o*6CaXqIG_16H8mxk_g!y)39mS1HaPSv zJMzMUue`jxZiB<_ccmYoPG7UjZd*}N#R)zV^0XfTKMhPFXKH8|l164NDH~a+ahbag z(^%Km_;|ZSUVZyDVUW6gol@ExrIhhW%H8ns)z?tSz zq5Ho9-)BA*2s>k^3c9(%k5K>a1#hbq$Wbyakl7P&UjTI38^EK~)ZGvaJUqJr z!l0?CnVAY-pS6yBFWN|T3*r_ZJvBY=C7`sHRE#)$dMpQfHB zh8C2~^I5^r)$R7CFFWg-n*AEmJ|6uiWtC3wb zlecrNc8WilCI+4K^eXu7=C}D=r8_-6>fPd>&2O5h`A>~0YN)viym}Se>~%Jr7~uaW zS8^#eJw2Q8Tl3ASJ|NURGn-`K?fK|;9fry1s!=ZfV$sH?B2&9y}jwEp0|C9fc ziva~i;kAC+cV)fWzfgp*N~shMWwgi#jSX5@DbSs){w27Y$%eZYHZ~u3^Z!uGlAqEec5}f{lRS*dH|@M19qgr~JhiopkJ3X(wHusF8PdV%P)Xz1#M!%qtp${bQ8)JX z5;7iND=|V45gSTcTk(3O34bI|HNg?*njf*c-=KB$R~aVMJSeuYUEIM zb+^(xo-9fDxwuR}kh4^#GO{zQKFJ>5G#Fz>+rDzFdPn&K6W_>ZZG zzX*>7q8Q>FS%wsduZR>Y0}BD!&v&sI)RMBOZ@7{=_%+C+_B8q6va-Z3CXJ1kv)@B(Zh1nrOL1HLiH+rQ~+!a=sH=X;xRHZBHHUuUPI|;Sf*27)zHv) zI{G#h>|4N&S=$A5+sGQ5JWKT-213YM`NrO^w7t0#HMP~_Qd#NNy`KA0C@ojG&|lJN zty*7Ado$abJKoyTUvv`gEtNZ#O|i9c_-n-B7~ZeZZcAwRQmpxHZEI?%3 zx-PQ>%5TM^&-ghO`C4JFmgc=gbwN&1ZjKf<_PV3jA6aPtmtR9&92EOjs<(Ic%*Dw+)z+AD&+Ya0T6v8 z>%Mx8c;oCKQ^to-hQsd+wh3Mf>z-k%7a?@oOASKQhpl-@)aaMrv}icH_#5{bUplk% z%E&kM(7@&$|G2LZW*2V9BD`Gw3|i7P!E&kEjIRuyq1{U4qCITI!CueS7Mf~+hw~i3 zades~o-8A+nmx$rdgl|)%~SCMEnTfd9f_oae3f;+XEAcRS$Ad@c10~&cWDwj%P_%tlEY71$H#_uT$wZV$-PmVgF`xnz1x1YFb*9=ccIU zk8TI%(Ul>>8G793On`_Gs5=DEB@R+{?G|O9ZXf*FH9*{=asID z=k90WY@%yxPClE(IJ01(S1gM>mC@{6Vd2pSV#P%@1^%a!ui2Mvrp94uT#wTo`0-C! z8tb<^y7fOEqjJ(hIWj^y>kOP-HuJK`dz=+7q*peGIn{PFhr00KfR{7~Y!&}8rTgH% zzM@Q@Ph$r{^5F%wWO+4-1PittU&CqMPaH)6s?g$oH&mFb>&`tJOjW854Ei3=-=x@V z1y@I}$u#KZ>WV}H*Bi5GWMbEY@m97_-HZta0s5`1gNqfl3%OV~4Qxqv_Szsz+x=ci zMX3DE%?-154I(5ZH8mn40)(F1?oS6nehCW6mLf%pTD`}G;&gCY39d+?)tvV8j##}iw#3Vau9BZRX^>r>8AsLDW;^P=<4deAmzWF zx2_1&1BX9&Y#55#(J#5I4ia(<6$-ngg)*Q63^*7$n?ju`0;b0F4Bq*8hBeydM_;fY zk$qhKJebH5O~AJPqnFef0OMzO!{~X5iHQ*rD3HDnRgI0jpN;7b1m zsql5k&)CTm?r<^pJHlEjP2*Op?w45&i^5E6G)@>j5aNl@#9`J}y_IGgTq#dU0I}j><9D@IIR(GhDN=M`}u&N;A~ROit@Kl%zAvKB#!f32sCm6 z+S;9snYI3rRLD2Hy08>cxlkzy6$JH_;oO!yVI2e0_?{BMEW#@o`Y)`%lWa={k0RRDVc>Vo zymrCC6E$p~NW{%}K6q$iLPyBdJ*^Ym~vJUo1Oc(~$o#|+6UDEIVw;&))rLf3k}x!W90Sh0)XD+4X!k=WuH||EN3-Lljw2P=cM5R9-NH%|z15 zYH!BCSHPqP^>n1~D`k3mdfUUL&W1^KsoyyzLppNO1P(J!xR%p-YbqiS{Nk6Uu1*(~XtWxUs%|)O0KuY^0g6RAU)8_SqSJ&VAp+6sSWNTJnovKsK90UX!Go0Q)E}|<-b6^|j!%tGPEO(?2R-sVQyh(F zfGD8VZOLOCXFk_Nl;7#w+ndc{9PJ(pKW+*7Mb5RC`vzE81i`!2`!i1@l|4VS;3pZO z-&O7C62#KKn8g&p0NvEp5m3#B1MvfDKyn_w1#21z59vUA$-Rg;9;4R7kGXSX#mdsu z!+{h-bd$ma<5+4*8_pJJ5i3n>8aXi2+I#0=vyQ-bq9KMfyHa;{FD?-nwbnZlCK)lr zE0?{Tt2fCQ$ZKn-fL&Wr(WdL;{xn)VH5?z`cF7Kp5Yo_qy7A{{{rd{UMyiOBL($j| zYi`*ubmS|3NxC7yQL!BNO_!yDyiZvfpX*LCGZvlctC$}qy{!ZN{dM(iYP$w)kB4E{ zx!fK#^t-rFaZEo9H+FHe3{Q{;FF%;t4h`LN(@B@BbJ5cDC}ckRwfV+8zBM&X%=~0^ zvG^0E!Mi5xzuz((PuKW1Fj-!12M|GsgY#JuhvmS{nYTIBw?qRZWMuV{)Y^Hw7i0o4 zS61YGZWJL<4v2R6SfRB`V6MXL>+yA*7kyu^cJz7w0p|7%0J_Cxr)oDBdvZP*EqK~j z1Gv>XOD8Be*v!;4`C6B9x#aU0;mZ3bN<5f)6eQyxb>^m~C-o)4{@s)U0;S@o`zx%S ztSv32k8nZ{zgbB%z3c;FDL-@%bS1-CSU;Lg(NwnUWVuVJ~LpDEKTQg5vbN2ye=eN=RaHNyUVXBBo zTwGpc24NkTXjar}H``l)EC6(MaNu=e0Rulj|Fa-JrE}V<>n@5p-7F~x)bdhqhAHJr z8vJx}+?^0Y9}kSrEq%|<)$-~ib!pK;bIOQzm~jF>XOr{}9cV(sDP{d- zDi_o~+av+L`7VZn55qIX7b?Im5%bW^H~y^ALB!h|_-w--P~`66Xtr7o58ATOXN|ow zPa7K>>kJun@X^u5(nbf0m0I!^O{om>i`fjbHlC@Q>E_b8&h>?+i5+}8QU!UIp%ywY zuFMh_E*z0lbIK}m&JH>Z6_Vel>&>Pl?&ELi z9LLl1+&be|YTLeFcH;%8b$KJBD$bpCS9{{A{b19n6-)Z(c* z91GF|1PJFuQSQjoBD2}oF{Lp$5hN*v)KPQqAF=>Rc318PJo4zJx3j9 z;>GypzL%%vS@=RemJJa(VW(edI)(c?@V6I>s`)2I8`(>z?{!`3uMoiVHX74^IiliR z_7wN+L&2g=%cxuHms`t02f-M^fd>}z$dnv6%~%mrq~V~3b6`IEQ`-T{eQj)bjBMRL zi?hE<##aoy@tY5_gbEL=Yqqo|!dpsc?4qeM-J;j%W0+0Om} zny=v&Ro?+I!*JKlDu1nMe7k#DYJ){DkN5Tka)RdCC}=z70qp};(U_70d?R6GfIqeR zwKMy9h?B2aWylaOgVv5&1Mr7)0z2nWX+&$=C`M%N(f;$^!W?RW@L3Gge$tAc9lQ$g zX~^&#z{^ASS=Hw+)Y;mgmQaCNLM?cmG;D~>-S%0?fioZsj3zRi292zmQ0}vnZ@~9$ zE{-j;)vYZ0=Rch1GKl;RUj^nv`qNKE1+FjP&#OE|V40}jH1Jw>@E=IQLPOH?-A^(U zKHI@h0yc95l1;5qfsdHEdelf6H}m=<=-x}>{|3DcrBq{K{gn(KbSPECTd z+T1Rc9%HEg6Tg@f#;<{w`{8w#x#HeU!!vh0YuOv;z4(t_&Vkgs#T)(9i)OoNzgcj%Yds$0^ zOkE2Lx{#9{z&BL3wtHVGkH=d;D6ITD-LdogZ*37X@nS&10yUcub#yr!jo77vGMx36 zWrp4cIo&Q8xNq}HQ;PF#v2k&-va&p=@5peND0X*^sACPDkif=#XbKl;Ub$Knw3R*b zl-A+OAu{VoUJnP*p8uh(`M#>*p8W1;7rp5Z==cKj^BKNb-+X(&HznJc_^&>O?lFPq zsK3DdMT@pWLnPApfkOj|x3Y0{nooI(N*NKzW>DL4 zHc*Lk`)zTOe9}gFmme*!g)sPh7oa%^G1HESczfh5cNLGxdOu{ zd5;U{ijx*_sq(&AmMw9gFo4V!g`ZU0h(*wUXW#r05gEbaLdRhWWVguJD@>xscPloq zCT-b`S2Pa;pBupIAj~_Lw~eJX+)dxo@`eU|!h=4|4XxLN$M{R4Pq*5Efli_8Ul#Px zz9sSkV08_!Iw*Hyi-&kV-@`(?hqGYdP}T@+m=DCP1zVOz&biPp0l>9JFz|quS372` zkk{s+h+_v&0$RONJhTsuDg5A7Vz!D4`ZfT4(=}Xj zt+tOe`-6U73_k`ZVMO1bn!Ok;%(^i&|B=RF1T=J@J6+}q2KIXUlp6(G#Kf){#`rsI zNze-u)bP6mM#5Wz@Fz_gNBGmY%AuT%Aof-!2WV zu43RP8sSBbIPJWE$~`O8#-vr4_kLHqJT&|JCR0VHMMkJt2D|!72FRjM{~%u#$f*ep z?Td{id;A+RH<%zWx9$I*2BteX3ow#A*SqK8mR^&y=#EtvGvAH z7e$3UZ{#R!w!rK}{QogK1Cb|UcWA!emJi_Y;=#norzgb+;4!6eA-rSx@_jhx)(|a1 z>VGjrgS^Y>S=z90a7xv=tZSDf?Qn^RQsU#gO-d8|Pvt?9s|_`Zr{ir5C?ZHiG%z`= zRQVAA!vao!1R4_o(us?^d5d3ZGaB_WUZ?H@|HFB1H2<5!hpQE$9rb^87=Moyy>zTv z6OY7>Fe=6YJ$o)mBaq-LEh22mYg31&pve;Ob+?HLeYN!hn!J ze2-6(xM)X>FoA|S4i62D3=Ks^&twJB4+vd695|;kA1xta-WwfFm8jRMJ29p>^S{`z z+)x4a1n0C`1w(1s9?mgo5tNte+mD99-IV{UdOa;7;d^wSuhDXJL>IXDz4z@Ktz;CD z_vS!%zU-4tH%+Nvs6hX#-WSH7OpT~EH{S!Wd@*>gI`?M54Kqfj8@fJ8!o_OZ&2%{I z6pvEq4D5cP?kllM$$ho~^$-9uhoEP!-PZx-3)^`$Cug;g4SYp_7{SlKwgI;5&8!F` z!EY`MI?YhSoyg;76}6GUG|-}8 zM*3f31oLi7ZMUky^pf(H5^X42pny^Q7!6#a3SUAjPQi-my2ASC_H=4BevG2;snTVbUFvnfIo*Hx2xchsM4*&#D6C6+F>O z_FKS7!Mp1Cce*t=aUHZws66OPl zlHgST`7tNKFCh`Sq>OX0`vC>!1MmTYLSbf-U;+C7i2OG`91cL4!!O;t-JvqR_1jGL zj)4tZoERXDjXhKto;cfFvqP1t0n-(f_Q-4WQ@-6 zD=X81x-3WVz&T|xu_;<{JlM3wcBb{o;tcfB+=vTmUNq zlkkHrBBa3nU6vWdk7=?^DlI`0l1{xHuPejo+}zEi0yff>?rnSFS?8$3Fg`5wodr39vX~pH17FkTwne|6CdfM{F@VZ`W6778@W5j8kvL@-u+JWKK1fD1ayfs17@E`Gzk(C#0zP>@5^6Ie>)+SexxyGq z{(}ERIghYjfgmw!=YK~+4>Ejx(#P1yVU%@ryw^J1K~SW#Q)NdJ)#33zneP~Ntc8Ps z8O@;MV!t>7KVo5CTPpG|8z}+Wc(JM}2;LYH^h`|+e>CI}mu>L+8EABnmX;O;+w-o5 zPV+oA(f!Y1y}|C$(e1X7kfpUX371{Y80JH;UehDM-a<}JqGJ=`bMx0^`$k5t&nL@> z-uM16K{z}80=~X8H#evB(pG-t$p<)hu5NBe%juJIMId}|FZ_8NgL&=Nb!u-)VbSwA z>DMpA)?5i4nEXl`1@-Bkp`mDyRspOyW8?etUG(ca1SAstU-mES`uX5J?`7%! zNjvzQ&WHZulvTLCU@Gfx}qY-xvCJ-kE?4&ow~b`30YHa z_KVjkAtCr4{a5bL)0K1*Mf`_*dw4ih2oNr==y!1iX+j2cE{gSIZ*BIM*`BH94}8W? zw@u<@5OVU>^4nW&t6VfxRB${AA#8eCf1s*Vy(FJgyW{e34y3^%AcVvudPzn2OVIz{ zE+RfFskeH$ocH~S+MBtGUJs(kgkTne@}@-Y-=Ejy1J^mx-~X)nXbowNtluG^3TsJvHB~Xcu_mgFRP$?auuF} zZ3D)YFQ_>R8}^+uy>#eQ4A zJ6Py%>;GopB{B`p&yDLi0EQ7T=!j>;*C@N4q>N_LuA)Nv9z8udx&KuPujQo2^UIei z7zDvW&iQDe5o9F7=VU%*tt@q}#Q1o?RsWJeU%#_L|KZ}-_i1%kkYE6{!Sc7IPDhc7$@eHXkS97h$=>IiD;cF@gS0X}(KJx$ND!>m#Od7`Jmc^G z2Y|#XD!BfsFj1_EHU7Rx2i*(`SL1keu^AunDoYUuxe03r#w$N&HU diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/demoBrowser1.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/demoBrowser1.png deleted file mode 100644 index 6186138a0f374bed645a6fcdb23761fc60c31e1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 266658 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 V{c`)u$7%p$&Yw{J{CQW-`hS=e#>M~u diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/demoBrowser2.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/demoBrowser2.png deleted file mode 100644 index 88b579ad207395fa2318fa6bd75a9310fce9bb2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 266658 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 PfdO~j8?mzQKVJEN;9*(l diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/demoBrowser3.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/demoBrowser3.png deleted file mode 100644 index 096d9ef535098b1c070dfadda3a1c3db65d33d9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 266658 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 w_>22~X@PgMaesi|YJmirq67}o3-F(pUKia5*{N xtO-?WJ(Rf1$C7KR)AZ0H0j(>SR=H$6kJ)6-DZGJ)<+b45x|97Z4cdwf)&TUlSJMCh diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/deploy.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/deploy.png deleted file mode 100644 index eae1f8728f0ac2d184735c54c9530d09c0afa1cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14918 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 asF-qM%9&FPSyvLKg-%de{WeO8!5RPxbudZ* diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/guide1.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/guide1.png deleted file mode 100644 index ce9b11e15cc6fd3665007283d69e40e19b73f7e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20373 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 bB@}IX{-ECQu>?N=0}vg9UrT;@^z1(Xi4xmW diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/header.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/header.png deleted file mode 100644 index 9e38e4e742c2021215e896ad530c2350e767cbba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13278 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 diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/help_ex.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/help_ex.png deleted file mode 100644 index 50c5df29deb74f0d47cca97b313046085bc06ff5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3330 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 z 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 YOY}Mz+#Ghd>kd%d^rRST)Z(?@0f&PewEzGB diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/help_gs.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/help_gs.png deleted file mode 100644 index 2ab38963c5d7f51c2e73880d50d883e2566546d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 576 zcmV-G0>Axrliy2IaTvy*^J99BJDs!P(zG>Q3~Z*+MV42)i0Y4s zZo)3Q4!jTq#fu1`z;0rHLf73iQ?!dnOsNYs(FLU&^MtzTcDD25yYJgwjJ1j3g)cl8 zFE7uBhX-DPh;Wt>&*TOm*DeoUUVo@wY)N`mXU)obk3WuYZ~j*TCVMkotx>H3R2L&{;dx&_Hr&@T=n z5{TV3uC{&deWHwsf=@jWK%7vN3NW#QEKlQr=g=)hG1xhz^u)r?BO}uLj{EYhT91sn zVQLvJ%BVUV%;NwP;U^uPdKl7xnE0Ogl>*S-5J1G?4=RuYKG+opuI<6K8EiU&jRKC+ z$6$H5O%reqXh98zUq`7_26Gv>z>(iS#P;kSa-WK`l^=YxDS(K>26YbN2`zwrmlf=r@-hX zq6h7zr?7YXr$pI5gLE5OQPZooU2Sf6yW8D%x4VA3kSINR;BfizJNI+W_jk?#c4*Yr z!{Y~+x^$hL&gHW)Ew70*LyIM-^6HzG1HS&!^NhR>)(fOpBPAzjL)2nR&hNVvlE*~^4jp$km)m2V3 zG&ho)QW;M?PdrohNx^9@wfs{ zlO0~K6Zu#Gt1HU8O+Z3c&mBDCr^*@DqCZe&7vO2GCO2_X0LffZ0gZ&~M1CQG;O8mO z6rLM^tJiut-o%_0+#V8`BF-TY_y}=n85XM*49!7s?1tTDg=4Q7pwkG=d;t$k7=T`H z)LRA5RjYV44 z5sM^|S2Z&DHiSNXLqW&OZM!gf1Fl>e{bXi_Ou$iZM+0Bm=t4HFps3}brs60hV`%aB zVr=wlA*X5GcPA10Z<)$=>jdm9gOiyw`s&)y!}F+z21_P|(uRzs)H-h7e}nOzZtzqrSGcnC+f)P|ubTBc3s6!BeA5i8pQNn}Zp-UekyF?c| zb@osMT}q=v1GB@#>8AT|*_`h-=Qj7f+`Er=@7q)&3F+!{{KM~gc;NX1$1URDL+|*w zq)A%#ipl4jMWW*Ne4Zg8*u+Ey67;v8zMdAfS_P3< z0_VCDdi_^0*)&&ET}^m>ZXfu&YwGr#^yHZoL+yYMbrM#Xf%ZO4W8+A4JkTh9C|cZbE>`$u>=j9&5B@f z2b9Ny{`-B9l$Icq;}8l(kj-XGi{Kmmdg(&5uWhOQ=l>2EzjAR0^{43T(JGpnY%; zLZJYeG+U@bVa;xbKq!Qal)+?K!<)HHf`^kAv?M=AZc<*jTojznpGYR+P}kPLWHLjg zs)Iie*smliE=FZ#B^HfK(9JrK@VosyA1l}CeFFYQjs&S{fP#%-&9a1Gp(~wX;4UPm zX}SQ5p;RidY+A*%F$l-9Aq9fH#Dns*IUn&7J5Gyg*}N)VNs&lO>d>S)0|^sDD4IZp zTn>3T2^ZzY%*qz@-xoNJV>@7Kg@%Uhp)gsGk@d~57f^?>-J6L*&E<;w;(7})@j-h^HE5Iw{PQz{}W)z{>R|3 vI{9eDb>z@R5X5JWC|ZHz%hqxK;9va)Rvjl;5L2m_00000NkvXXu0mjfI|5pv diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/leftarrow.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/leftarrow.png deleted file mode 100644 index b8ffd4241ee0e47c50357548f170fc56259cedef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 343 zcmeAS@N?(olHy`uVBq!ia0vp^{2QL70(Y)*K0-AbW|YuPggaR$d-GBhICQN=1P!-(!~9H*f1({MW4;@fJ#b7X5RrEE=Qlsuj4r*>Ie5cUVC|-C^sv zsD(oR4)I3sI$J+yafSK6oy{lCaN1-%yrsNHi^=dsQ+Q1G!(Cb{tL`M3B^Gb|QqaA8 glkN7_GhcZB{yb7EbY%S=pvxINUHx3vIVCg!02|qYUH||9 diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/pageicon.gif b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/pageicon.gif deleted file mode 100644 index 3d35fdb0efbc4456fbdb76464a003a44795da841..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 867 zcmZ?wbhEHbduY;6_0)?PdAfD!KDX#Wy0-pP6{cV RVzelJ)pGK4k^=*SH2^uE5qbas diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/pagesicon.gif b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/pagesicon.gif deleted file mode 100644 index 9278b1f10f8b403201c3af9df21cb8e2e74dadb2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 171 zcmZ?wbhEHb6krfw*vtR||Ns9_PE1Za^PhuCM zz{#Kk5(SyTz!G6F(KCD3jFyeR71+uIV{QsIY2J4HO_CCPI3 znr2JbcA1=H56>1;|K*mCG~<2LHQk>Cs0tsxI#raB=k5`4<#+4!+ji8vGZB9GQL70(Y)*K0-AbW|YuPggaR$d-GDI0;EH-JL2C9V-A&iT2y zsd*&~&PAz-C8;S2<(VZJ3LzP(3hti10q;{(^MDE$d%8G=Xq=yVX(R6;2LYFh8TGSW#3H@cPjWXWqJ5I-{gQbJKK2QuG(eG`mg!6<%%=X8y;Rd Uw4poK5a?V6Pgg&ebxsLQ03um@A^-pY diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/titleimage.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/titleimage.png deleted file mode 100644 index b9cd50bf33d59bfc9d95eb5af5b1dee48f5a9114..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11586 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 D=_na9 diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/uparrow.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/uparrow.png deleted file mode 100644 index 4590b67b747f25babc09adf9d0dcd8940650a0e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 291 zcmeAS@N?(olHy`uVBq!ia0vp^+(695!3HFgJ}hYlQjEnx?oJHr&dIz4a@dl*-CY>| zgW!U_%O?XxI14-?i-FpNL70(Y)*K0-AbW|YuPggaR$e|-gZsa}Wz~lDty;9o3 z1)iQWrx^xh9Wj`xz?~u^6_&s(75rq045#J1l)sby=5%wUK5UWh3zNyQeB5L{FMjgX zt9<->ipoqY9Sn}mX`65KE>h#^iNCJ*x>9wyeeb<|F7ft)^W>me7gk+P^7`rfR%_jY c3I9JcHgEOVzzopr02(xADF6Tf diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/why_fixed1.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/why_fixed1.png deleted file mode 100644 index f0f7bed5c7d35135e7c012b45e91afb3d5a082a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2785 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 diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/why_fixed2.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/why_fixed2.png deleted file mode 100644 index 1b05edd36f8cdb6169d4092f5df5e6f3bd7e28b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3021 zcmd5;S5y-Q7e-|XGHg+x$WR0fTeb`>!y=$e4Us7d1X%&X4kQ&Spe&K40RfSqAwU|! zQ1%dl2niV38$m`wSRss%Q2L+#=l@Ti`q+ni@56V_efYjRz9+WU<^p^_@o{i)2w2=O zvp=f)e+KXIqs)`m=lf>~wYYViXZDx`2k&JK{OLRn4*o|LX2!Q8^H(P!H$}iwts7uM z&$b@M-pS;C70>$`3vKi-uT?BgSPHIqkdx&ufAH~@%aJ;n-DK+?ninnah_SG`lT>T| z_1>*h79`Q(`_)-D-k=e@r8;dFXq)C)BQkPIYL!XUiR2nem0}Q86HjF~7p~vu_68Tc zWNGxO#_Pv4yNk%gpQaq+V4RQOHK7UrHgTT!gQ;*xqRhOYakpgLGXu_l0bmBD1q3Y8 zD~0=SfNAFGQU`Q0!q??|(eMMOAq_(+7Bdd}-iw}}_f%2hEH7H5y15_j9qa)DcbHB? z+#oa3Xj5Zjk9x|`(3%3sd%QLxBqT&pQL)76uN6|Vu*yZJ5 z6a1%7pNx!}*SU^A!m-)SvCOMc%+;1=hSOAmk%3fA84`)~>EbhcxS9MChx@f7_^_c} z{S^7sZ)!o5p`QZ-+28xtN>C^vLBZR=9334gB~>@(Oxcn2#nPA612PLIGoL>{>fG-y zBm6?!Z$j6?$*G=zmsL@51!N=lLjwcdU`)By6I{i*Q8YB##b4(c#}Yj?RhcZRrtFHW$XZ$Qkrvy%3((fk zuy<~tjMW69zRt|Fet^DptW>TF|Jqu86TTWK)-_Zy9zi>3UGAkv8&XQaYGWguoc$kbj&;jqaNF0lpW)TXEc+w>eqQ7<3EICT3`TF`E@nCgv9{y0Tp{};z zl|e)S`6W6FsjKGI`80QIjHm{hNdYMjmNp^U!K8yR~#I%Y!PHr?08G$#?}D#Y`?WB%_>LP!Lp_nj?G$GU9FGYX#av5 z{SzY2Zn1t~Il&Kb0gFVTeBw=P-Gk3LJ8tl(J9G+XH96BjSoAM#ao;36@^m4g5il}Y z)YH4(e;#?dO0$d z#U90H#^I$%=AUz0gp)m1g6T_bU0n~%(_$nkkCr?GXl)II@U^Qmq2Bu}QwiNl*P4}V z9?07#{F$`m;c+|QcQ^d^Z81UnLlCRD}v(ypFT;arzUlfsmZ|WNhLBJFsR)o|3kqYa74P_D?*szZt%O33IE`0p*T~y(bGR3s*(LS-w)k_ zW@*M75qhYjh$Hx$KK$Lqaq8$b)@+w1hDZ~zlw1e$ylsfi#>fmVGPMr0&KaU&cjKcq z{V(heCS}^L+qK#JlHb{Pw(c!GB;MXYc}&201X^y%r=Of>Bf_?e-Es}HFkWeiMc|>* zU|xRgyK+eT5~|&%qs;+nuNVpBx4wkBiC?z0U^Hbu8x?V>TD&*#`nglO zpXqVUcz@u9;E%y-QIFXTa`6~`Xhmt3b_ z0UqJOl0r?^!rkr3;$;8&oq;*vN-C_-KbQxr*C8r#ZQ~bGTXB-PoS{To_UIfVE5>Ds z1ufVQKX5LL1LZO$cChAtXSqn1D1xWzEwc$>jkx#QQ)E27V+K>%|M3_k%=nvoyR!p|u=qU$$1pwkDn=V9UgrQ$mzMK3RuOAFlf^Q{V%QgI}ax1n1Qesy}* z=W<_6;v0e%EQ_zu){^V3X*!>(cyuKD#4tsO<*8*|$R_P=Eh@0K(suQMv(9!Nxi)sl z9vt#Yd3`wI>p)5*E_*h}^U|5Cr!Pz5$`UJq5DEjo2 zoFypIQa&GfKSSWRB!hF9NKY~X%+br~((qr0%jS8(ga|*)wT?gX=NuN-t<5S;?#2B9 DfyLc5 diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/why_layout0_1.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/why_layout0_1.png deleted file mode 100644 index 1b388593970d02afb2a238176a93375570763a84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2641 zcmb_ecTm$=9uEjgF%VG_q!^XrN|9!$VnnF|5-BkTfj}fEbty3c1e6wm03t_Qkhq{A zQUlU1AOZ#!SwI&dN{nndpB?H_k@b2qcIb8qJNd-LYK-~8VDd_U!-qAu8i zr4*$=AQ0Hz&dLSofBF7Mhyw4UW~Ti>wh!RLb-=J|{5eOtDZf|AjMlN2N z^tN-2SLow~9xMC}Vz^(&>6MkbXw8r62W6-Rmij2E^b?NN(jC`)o<~e`@3oT# zpiqv$0wi`UNn8yAy?X|8M$|_{@;?WsBpoWF^w6Srd@#5iv>G|DlT%hkhZJltx}F#9eq7F z_Yek$2nIMbsW9e0XAW!s+p@nh5YQQxb*#XXKee{D&dtrKXO)zcd;^YF?o{OB;&RjA z(E8|F{akpIt80#(nj#!NJUomf{{F_Ba)U%7-MEovRhpWbN~KcA$FWnHQa62N2Yl(j zTy5ZQtsPTWKe#ugw6ydbMMhms%_OrCTce|+x16K`9 zz2lP3&MXeo?q_jKRwvpb0F+HlO;uG@t*x!uEur2Y_tA;q0#2GA9Wz#a`4gXHIuy|K zjkvVEO~zm_ZfDpY;;EVc%1ZeVb)u&`gjwbISd(2z<8{yQ@>Q(1Yu_wB^Q1h8Au%J_WU&qvnZ z(bh~dbIw14>3TUjI=WSjZftB^ym*mHZ*FehwMXUv6k7i9p`F^jhK7cxPfs>sJ%OX3 zP}8jbBM*FdimeIEKnUi4)A&!$pj+SrIK9ViPl(*HnRCh0dzpceLzew$>FxRGYJ z&-}PJq>|YqE}OTo8mFDkJeqr6NlA&cI?=CS9{qV~AYT`#vCt49b}9zru-X?c!`-I)q8pO>=N{KXH^k@+>P@PTV5dznmxk-k=@ksQ|?@ch%Lpg}=@9+1eZ!^O?QE^3zqVLxbHh4TfQ;2D5YHH4x)6~)m z=F=7M91bV{glAf2=2$=zP(Smik8`t>9>uc59G;@;a-Zm>dbqTx^dHjvE1LV)H}Of2 zSX@4zk5J6u@&T~n$T-vm@%Alq?Y1jkUS74RAD&cIvDxf=Mk2b(BKGTNiY)xQCUY6- zte{^B5rCN7-2OJaC{{xErsrL0Z{A)S8yhPwR%ZJQbj4}oR&~Ab)Q+f6grK16($ek? zRbM1jZ?WPmE1k8lu%M`3He**@Rl%+O%rx`WUufu`mX;PC9xgD@Ur(^m&g49Fsl@ZJv9TR1h~(yGqrO=LXzTyS z-m}G_fCMvaIJ2rlfb=RxYP>s713Ep%5%CtvIGo5gMj%qHN_jk`SJLbj%Xqd zcUV>RT-j@h_V*Ux$X! zXmnm~t|?_{Z#wIiX*aeVuBE1SmG^r8{{4MfaAf$L-Q~-LS-ZvJ8YoR<l-nbTjDJLd-DBB%lKoNFVW}2 z#@BD(;xcT`odkdiM zyFzC)LO5{!1l@&T?+`+W@cQDfDwpcw>S|GvVvEIM1s0;F*>;h$FC>Roxgi*>5JKY@ zq#!KO9L;lES|AvK7UD1=A%tD^VaD1dqec;vR;97>o>;QttJxb*^b?X=!S5KMZ*r^73kfMaeJb*WZi@9vy_Hxvrx;la()@2D#;PvMxb zxiclaZh5UcQ?whg0ga7~fGaKx7RAQK4%3jAG;;x7ZT1zs?+e>eOo4Sv&2CkA(y)Lv zIBKM4WcX2mP)lddlGfgT@p*Y`F1bEoTX>ySQ9kma#3E*)^}12fj!-xH)p|GF3et&O z`Rec*3WZ)ZC`4EJQ3r>Ho<(nH>go=60uiNq%3o(|(8m(T)U^h#4Ss%p?B?L2f`Z47 zA4`lut&wyy{7-jG6c9I Og6yp?Sk<1zCHw={_`A9Q diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/why_layout0_2.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/why_layout0_2.png deleted file mode 100644 index 80a686d10aefe92f486b9ebcab98c01d1ff06cb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2409 zcmbVO3oskl8rH|QT2;@AEsCJR(t0aJ(Rg&dsx1kj@otTJG_^^J$d+BCY1j7FMFbf% z)p|roGaE`%zMWb0dYBSVX zZ0;llekG6qr$*DuEzX z3(R3e;hoNd`!XSv5SKfyz73|5fXI3%1j3q|yBZ#@o1lZpI@AblZEfx9>RMV_YL4wO zw-}9})9EcCl-Yh#C3JSY0H-ol_;JQB_r&!hnjw zIX?dyud}MEO6xT8xBdF5o62to2F^nu1!GI4g@vcmM5}DtmHUBOnwtFic_R>L;LM@D zySIcZ{oDsp-+iD4LLhr?Im6-b=;&yxqmJofQQ6sS&o)J(P?<3X8n|pagHZ)~QQ#Fyq0_DZNWtUr$8u-8 z?`rs!I^6s?=MPe4V0X5&ntC!L@9B3KgFt5aPZ}E=U}R>?7rn36hz3$%g;}7 zC}q{bXA$Qc3eZq8nY=R5>J@Sn-}Pyk8yAw8kgz<}nT=DBq8ze2tbw8NuJgy5{Je6wgn-wDH!v^&4vme$;BYK|)I1;n27_s6XbAc2wNFc9mRDY{7C`fMD@1}H zubR2%!T%Rozv6x=y@52Unwnav6XxjQY?t9*Bcl|h-X54AuJrKm=qH`QZheX$_nwxS z&mwC(FTSmX6`TlV+?ajcnkt-V$10SVkT7~4Z#IguTjCc3z)|=2Ts6=l_<+X~r2J*l zO1s??CZ5Kw%O)i>ZB6&yXNTHysf`Xl<}bt03?r>?`3Em*JL7vmUl!Hw`7^@fZ_1bg zE0Q}oe3@Xd#*24m?sb=2zt?o`TM@EGMqCW_V3r#qDA>LY;`uoqy|@1EvY_I?4!)iJ zUZeu~*|khcBNNJ1Uns2fU2ofkGgenf&Bp47oY1RbNl9k-#UjN(dqZ@?V^i&-i+&+T z@LdcB!`;I}PEL--{6^(+B>6^$A(0~}vs-@_@UP$vn#?!=tFf9SHCDV)Ful&Jx@slm z!7s-g7ld22>ceUA@$n}Lyml~Xr1xlqok%h--6c_huwS!C{oOxNHO1S>3)$T&5OSC+ z^l&=Xe*NqpxatdLQ@Etnt>MT0pYUps*Bhi^t@VMosDSZ`DS~1ou5V= zJBgm2=riQ{&?zWYIfZVYrY6CEj>b~ z=qqpZHpdRyDrl()GQ(YVt_|5fNjH^rJTSd)^Ol#Ga#{y5;$)e+xQ&X6dbF)A7#sFY z4DFTlU|$w;({3`ll<%!fqa>3GmbF7>I>2rpeA`V$C5&9z$()>r^1{?O-sAv>+V}g4y+C+Dsx8$Gy$@hy+Xg!TS!8v=kpJ zpl*9&nl0;ffa&z`)gIFN)a#@*4+-90N8mMcex|NOS^UUG!a@V|+P9hYA@!`6#|)gP zHgC(Dh$KNW1VkbwEBRj`Qz-gFg-kHQ&=-FDvaj0-iG1{?!BtStP#ddzc zMw$XEd4ON&b9J6~s%zn=tcQh|A$qYDO=>&gHdNb5Tq17U254>=BzD@b&#ZrsqHlBA zic-`#IK}}z-7f;XBWZ0ePCj!r8xOKYkE3hX;Z^eO*J9QS@Pv`$grd>4vDwoWv4}Mz zFE6kB@$3HngJQ8bW`%h-HaMbXd^N(eeY^q`S@hmN?^_?DlKF|8oVMcT{I(e0LTP&| zg|phBj}?DNN=tiMS@~Q*xGMx^m8`^AV)0n+uN^V{kfFW_gqsn-{Di)#A@@y|Ei*bG z_Qk80F+TYGCZ=nHt@N7@Ts~MU@p{4^y&mHQRm<<6r7cisG0zFL5p2Jor>~{m{bwcc lm*VEX7Zv~4RnK;I&D~F(0R{b7E3KVm&bj%5DXw7|{{ZHTd8hyY diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/why_layout1.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/why_layout1.png deleted file mode 100644 index 80a686d10aefe92f486b9ebcab98c01d1ff06cb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2409 zcmbVO3oskl8rH|QT2;@AEsCJR(t0aJ(Rg&dsx1kj@otTJG_^^J$d+BCY1j7FMFbf% z)p|roGaE`%zMWb0dYBSVX zZ0;llekG6qr$*DuEzX z3(R3e;hoNd`!XSv5SKfyz73|5fXI3%1j3q|yBZ#@o1lZpI@AblZEfx9>RMV_YL4wO zw-}9})9EcCl-Yh#C3JSY0H-ol_;JQB_r&!hnjw zIX?dyud}MEO6xT8xBdF5o62to2F^nu1!GI4g@vcmM5}DtmHUBOnwtFic_R>L;LM@D zySIcZ{oDsp-+iD4LLhr?Im6-b=;&yxqmJofQQ6sS&o)J(P?<3X8n|pagHZ)~QQ#Fyq0_DZNWtUr$8u-8 z?`rs!I^6s?=MPe4V0X5&ntC!L@9B3KgFt5aPZ}E=U}R>?7rn36hz3$%g;}7 zC}q{bXA$Qc3eZq8nY=R5>J@Sn-}Pyk8yAw8kgz<}nT=DBq8ze2tbw8NuJgy5{Je6wgn-wDH!v^&4vme$;BYK|)I1;n27_s6XbAc2wNFc9mRDY{7C`fMD@1}H zubR2%!T%Rozv6x=y@52Unwnav6XxjQY?t9*Bcl|h-X54AuJrKm=qH`QZheX$_nwxS z&mwC(FTSmX6`TlV+?ajcnkt-V$10SVkT7~4Z#IguTjCc3z)|=2Ts6=l_<+X~r2J*l zO1s??CZ5Kw%O)i>ZB6&yXNTHysf`Xl<}bt03?r>?`3Em*JL7vmUl!Hw`7^@fZ_1bg zE0Q}oe3@Xd#*24m?sb=2zt?o`TM@EGMqCW_V3r#qDA>LY;`uoqy|@1EvY_I?4!)iJ zUZeu~*|khcBNNJ1Uns2fU2ofkGgenf&Bp47oY1RbNl9k-#UjN(dqZ@?V^i&-i+&+T z@LdcB!`;I}PEL--{6^(+B>6^$A(0~}vs-@_@UP$vn#?!=tFf9SHCDV)Ful&Jx@slm z!7s-g7ld22>ceUA@$n}Lyml~Xr1xlqok%h--6c_huwS!C{oOxNHO1S>3)$T&5OSC+ z^l&=Xe*NqpxatdLQ@Etnt>MT0pYUps*Bhi^t@VMosDSZ`DS~1ou5V= zJBgm2=riQ{&?zWYIfZVYrY6CEj>b~ z=qqpZHpdRyDrl()GQ(YVt_|5fNjH^rJTSd)^Ol#Ga#{y5;$)e+xQ&X6dbF)A7#sFY z4DFTlU|$w;({3`ll<%!fqa>3GmbF7>I>2rpeA`V$C5&9z$()>r^1{?O-sAv>+V}g4y+C+Dsx8$Gy$@hy+Xg!TS!8v=kpJ zpl*9&nl0;ffa&z`)gIFN)a#@*4+-90N8mMcex|NOS^UUG!a@V|+P9hYA@!`6#|)gP zHgC(Dh$KNW1VkbwEBRj`Qz-gFg-kHQ&=-FDvaj0-iG1{?!BtStP#ddzc zMw$XEd4ON&b9J6~s%zn=tcQh|A$qYDO=>&gHdNb5Tq17U254>=BzD@b&#ZrsqHlBA zic-`#IK}}z-7f;XBWZ0ePCj!r8xOKYkE3hX;Z^eO*J9QS@Pv`$grd>4vDwoWv4}Mz zFE6kB@$3HngJQ8bW`%h-HaMbXd^N(eeY^q`S@hmN?^_?DlKF|8oVMcT{I(e0LTP&| zg|phBj}?DNN=tiMS@~Q*xGMx^m8`^AV)0n+uN^V{kfFW_gqsn-{Di)#A@@y|Ei*bG z_Qk80F+TYGCZ=nHt@N7@Ts~MU@p{4^y&mHQRm<<6r7cisG0zFL5p2Jor>~{m{bwcc lm*VEX7Zv~4RnK;I&D~F(0R{b7E3KVm&bj%5DXw7|{{ZHTd8hyY diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/why_layout2.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/why_layout2.png deleted file mode 100644 index b6e7fa1f6dd9aa9f3f3754349f5aec13c59ae370..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2926 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 B-^Bm` diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/why_normalized1.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/why_normalized1.png deleted file mode 100644 index 638ccb97379a2874e871c78809fc09607fa2b3f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2786 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 diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/why_normalized2.png b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/Images/why_normalized2.png deleted file mode 100644 index 54e91d000c6d38418cea69ccf02daabc4327b7f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3708 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 P5@2d%X;`Cw>(M^|H^34Y diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/LayoutsGUIDE.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/LayoutsGUIDE.html deleted file mode 100644 index 0237f5e..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/LayoutsGUIDE.html +++ /dev/null @@ -1 +0,0 @@ - > diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/PanelDock.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/PanelDock.html deleted file mode 100644 index d760e22..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/PanelDock.html +++ /dev/null @@ -1 +0,0 @@ - > diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/PanelHelp.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/PanelHelp.html deleted file mode 100644 index b7d130a..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/PanelHelp.html +++ /dev/null @@ -1 +0,0 @@ - > diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/PanelMinimize.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/PanelMinimize.html deleted file mode 100644 index f3cabb3..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/PanelMinimize.html +++ /dev/null @@ -1 +0,0 @@ - > diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide.html deleted file mode 100644 index 81098f6..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - - User guide - - - - - - - - - - - -
GUI Layout Toolbox 2.3.1previous pagenext page
- -

User guide Go back up one level

-

- This chapter describes the purpose and overall design of the layout - tools that the toolbox provides. It also provides some examples of - creating some user interfaces using layouts. -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Contents

-
- - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide1.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide1.html deleted file mode 100644 index bf24b35..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide1.html +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - Understanding layouts - - - - - - - - - -
User_guideprevious pagenext page
- - -

1: Understanding layouts Go back up one level

- -

The purpose of a "layout" is to manage the positioning of one - or more user-interface components. This means that instead of - worrying about the exact position of each user interface component - you instead worry about the relative positioning of them; are they - arranged in a vertical list, horizontal list, a grid pattern, etc.

-

The best way to understand what layouts are and why they are a good user-interface - design tool is to see some examples. The sections below go through the - basics of building an interface using layouts and how to build complex - interfaces using them.

- - - - - - - - - - - -

Section contents:

-
    -
- -
    -
- - - - - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide1_1.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide1_1.html deleted file mode 100644 index e073dde..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide1_1.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - Layout basics - - - - - - - - - -
User_guideprevious pagenext page
- - -
- -

1.1: Layout basics Go back up one level

- -

To see how layouts work, let's use the most basic layout, - a horizontal list (or box). We first create a window:

- -
f = figure();
-
- -

Now let's create the horizontal layout and add it to the figure. Note - that in common with other MATLAB graphics objects, one object is added to - another by setting the Parent property - this will automatically - adjust the list of Children in the parent object. The job of a - horizontal box layout is to arrange its contents in a horizontal line, - setting the position of each element to best fill the space:

- -
layout = uix.HBox( 'Parent', f );
-
-

Nothing's changed! That's because the layout is for arranging - other user-interface components - it doesn't draw anything itself. Let's - add some buttons. Note how after creating each button the existing contents - of the box make room for the new addition; we don't need to set the position of - any user-interface component!

- -
uicontrol( 'String', 'Button 1', 'Parent', layout );
-uicontrol( 'String', 'Button 2', 'Parent', layout );
-uicontrol( 'String', 'Button 3', 'Parent', layout );
-

..

-
-

Other layouts work in exactly the same way, although visually - the end-result is quite different:

- -
f = figure();
-layout = uix.VBox( 'Parent', f );
-uicontrol( 'String', 'Button 1', 'Parent', layout );
-uicontrol( 'String', 'Button 2', 'Parent', layout );
-uicontrol( 'String', 'Button 3', 'Parent', layout );
-

-
- -
f = figure();
-layout = uix.TabPanel( 'Parent', f );
-uicontrol( 'String', 'Button 1', 'Parent', layout );
-uicontrol( 'String', 'Button 2', 'Parent', layout );
-uicontrol( 'String', 'Button 3', 'Parent', layout );
-

-
- - - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide1_2.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide1_2.html deleted file mode 100644 index c4ebeab..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide1_2.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - Types of layout - - - - - - - - - -
User_guideprevious pagenext page
- - -
- -

1.2: Types of layout Go back up one level

- -

The layouts in this toolbox come in three forms:

-
    -
  1. Panels: show a single child element with some decoration. Other children - of the layout are hidden from view. The visible child can be switched. Available - panels include - Panel, - CardPanel, - BoxPanel, - TabPanel and - ScrollingPanel.
  2. - -
  3. Boxes: arrange children linearly in a single row or column. Available boxes include - HBox, - VBox, - HBoxFlex and - VBoxFlex.
  4. - -
  5. Grids: (also known as tables) arrange children in a two-dimensional grid. Available grids include - Grid and - GridFlex.
  6. - -
- - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide1_3.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide1_3.html deleted file mode 100644 index 42fc9b9..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide1_3.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - Sizes and units - - - - - - - - - -
User_guideprevious pagenext page
- - -
- -

1.3: Sizes and units Go back up one level

- -

In the previous section we noted that when using layouts - you never need to set the position or size of a user-interface - component yourself - the layouts take care of it. So how do - you control the sizes of the components?

-

Each layout that arranges multiple items within its drawing area - has a sizing property: for horizontal boxes this is Widths - and for vertical boxes Heights; for grids we have both Widths - and Heights. These all obey the same convention:

-
    -
  1. Positive numbers indicate sizes in pixels (similar to "pixel" units)
  2. -
  3. Negative numbers indicate a weighting for variable sizing (similar to "normalized" units)
  4. -
-

By default all sizes are set to -1 (variable size with unit weighting).

-

Let's take a simple example:

- -
f = figure();
-layout = uix.HBox( 'Parent', f );
-uicontrol( 'String', 'Button 1', 'Parent', layout );
-uicontrol( 'String', 'Button 2', 'Parent', layout );
-uicontrol( 'String', 'Button 3', 'Parent', layout );
-

-
-

We can set the middle element to be twice as wide as the others - (but still variable width) by setting its weight to -2 with the others at -1:

- -
layout.Widths = [-1 -2 -1]
-

-
-

Alternatively we might want the first element to have a - fixed width of 100 pixels with the others filling any remaining - space equally:

- -
layout.Widths = [100 -1 -1]
-

-
- -

This ability to mix fixed and variable sized elements is - crucial in interface design. It really comes into its own when building - a hierarchy of layouts, described next.

- - - -

  -  1.3.1: - Minimum sizes Go back up one level

-

Many of the multi-element layouts also provide a MinimumWidths - or MinimumHeights - property to prevent an element becoming too small. This is measured in - pixels and defaults to one pixel. Take care to ensure that the available - space is at least the sum of the minimum sizes, plus any padding and - spacing.

- - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide1_4.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide1_4.html deleted file mode 100644 index 0d9620c..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide1_4.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - Layout hierarchies - - - - - - - - - -
User_guideprevious pagenext page
- - -
- -

1.4: Layout hierarchies Go back up one level

- -

Consider the following simple interface:

-
-

Instead of thinking of this in terms of three elements that need - positioning, we can break it up into two simple linear ("box") arrangements: - a vertical box with the axes at the top and a control area at the bottom and - a horizontal box containing two buttons:

-
.
-

By placing the second layout (horizontal box) inside the first (vertical box) - we arrive at the complete layout. Since the sizes of the elements in each list - can be set to be fixed or flexible we can achieve a user-interface that is not just - arranged correctly when created, but also behaves well when resized.

-
-

Note that the buttons have stayed fixed height as the window grows and the - axes grow to fill the remaining space.

- - -

  -  1.4.1: - Code: Go back up one level

-

The example above can be created programmically pretty - much as described in text - (the completed example code is here: - [ view - | edit - | run ] - )

-

1. Open a window

-
f = figure( 'Position', 200*ones(1,4) );
-

2. Create the first layout (vertical box)
Inside this vertical box - we place the axes

-
vbox = uix.VBox( 'Parent', f );
-axes( 'Parent', vbox );
-

-
-

3. Create the second layout (horizontal box)
Inside this horizontal box - we place two buttons

-
hbox = uix.HButtonBox( 'Parent', vbox, 'Padding', 5 );
-uicontrol( 'Parent', hbox, ...
-    'String', 'Button 1' );
-uicontrol( 'Parent', hbox, ...
-    'String', 'Button 2' );
-

-
-

4. Set the sizes
We want the axes to grow with the window so - set the first size to be -1 (which means variable size with wieght 1) and the buttons to stay fixed height so set the -second size to 35 (fixed height of 35 pixels)

-
set( vbox, 'Heights', [-1 35] )
-

-
- - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide1_5.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide1_5.html deleted file mode 100644 index db44733..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide1_5.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - Why use layouts? - - - - - - - - - -
User_guideprevious pagenext page
- - -
- -

1.5: Why use layouts? Go back up one level

- -

MATLAB ships with a GUI design tool called GUIDE. This - doesn't use layouts, but forces users to manually position each element. This approach - is a much faster way to build simple user-interfaces, so why would you want to -use layouts?

-

The over-riding reason for using layouts or layout managers is - to gain control of the resizing behaviour of the interface without - having to write a complex "ResizeFcn". If you simply position user-interface elements - directly (either using GUIDE or programmatically), you - have two choices about what happens when the window resizes: -

-

For example:

- 1. The user-interface components scale with the window (normalised units)
We didn't really want the buttons to grow but everything resizes in proportion.
-
f = figure( 'Position', 200*ones(1,4) );
-axes( 'Parent', f, ...
-    'Units', 'Normalized', ...
-    'OuterPosition', [0.02 0.2 0.96 0.8] );
-uicontrol( 'Parent', f, ...
-    'Units', 'Normalized', ...
-    'Position', [0.02 0.02 0.46 0.16], ...
-    'String', 'Button 1' );
-uicontrol( 'Parent', f, ...
-    'Units', 'Normalized', ...
-    'Position', [0.52 0.02 0.46 0.16], ...
-    'String', 'Button 2' );
-

.

- - 2. The user-interface components stay fixed and the window resize creates empty space (pixel units)
Although the buttons don't now grow, neither does the axes, which looks very odd.
-
f = figure( 'Position', 200*ones(1,4) );
-axes( 'Parent', f, ...
-    'Units', 'Pixels', ...
-    'OuterPosition', [10 35 190 175] );
-uicontrol( 'Parent', f, ...
-    'Units', 'Pixels', ...
-    'Position', [5 5 90 25], ...
-    'String', 'Button 1' );
-uicontrol( 'Parent', f, ...
-    'Units', 'Pixels', ...
-    'Position', [105 5 90 25], ...
-    'String', 'Button 2' );
-

.

- -

Neither of these alternatives is particularly useful for a serious - user-interface. Typically there are user-interface components that should - be fixed size: icons, buttons, selectors etc; and others that should resize - with the window: graphs, images, prose text etc. To achieve this one needs - to be able to specify which interface components should be fixed size and - which variable. Over the last two decades, layouts have been shown to be - the method of choice for achieving this.

-

For example:

- Using layouts, some user-interface components scale with the window, others stay fixed -
f = figure( 'Position', 200*ones(1,4) );
-vbox = uix.VBox( 'Parent', f );
-axes( 'Parent', vbox );
-hbox = uix.HButtonBox( 'Parent', vbox, 'Padding', 5 );
-uicontrol( 'Parent', hbox, ...
-    'String', 'Button 1' );
-uicontrol( 'Parent', hbox, ...
-    'String', 'Button 2' );
-set( vbox, 'Heights', [-1 35] )
-

.

- - - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide2.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide2.html deleted file mode 100644 index 82cab7c..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide2.html +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - Positioning axes - - - - - - - - - -
User_guideprevious pagenext page
- - -

2: Positioning axes Go back up one level

- - -

- Unlike other MATLAB user interface components, axes - have two position properties: Position and - OuterPosition. This means one has some extra - options as to how the layout will arrange the axes. -

- - - - - - - -

Section contents:

-
    -
- -
    -
- - - - - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide2_1.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide2_1.html deleted file mode 100644 index 8fecb51..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide2_1.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - Position vs OuterPosition - - - - - - - - - -
User_guideprevious pagenext page
- - -
- -

2.1: Position vs OuterPosition Go back up one level

- -

Typically one - would position some axes using their OuterPosition so that the - axis labels, title and other annotations are all contained within the - specified area. Sometimes, particularly if drawing images, one might want - to instead make the axes canvas (the white bit!) fill the specified area. - This is done by setting the Position property instead. -

- -

For example:

-
figure
-axes( 'Units', 'Normalized', 'OuterPosition', [0 0 1 1] )
-                    
-

- -
figure
-axes( 'Units', 'Normalized', 'Position', [0 0 1 1] )
-                    
-

- - - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide2_2.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide2_2.html deleted file mode 100644 index ea7fdb7..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide2_2.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - Axes inside layouts - - - - - - - - - -
User_guideprevious pagenext page
- - -
- -

2.2: Axes inside layouts Go back up one level

- -

(The code for this example can be found here: - [ view - | edit - | run ] - )

-

- When using layouts to position axes, the position property - is set by the layout, not the user. Whether the Position - or OuterPosition property is used is determined by the - ActivePositionProperty property of the axes. - Note that the default setting is "outerposition". -

-

- The following example illustrates the two usages. -

- -

Open a window

-

Open a new figure window and remove the toolbar and menus.

-
window = figure( 'Name', 'Axes inside layouts', ...
-            'MenuBar', 'none', ...
-            'Toolbar', 'none', ...
-            'NumberTitle', 'off' );
-
-

Create the layout

-

The layout involves two axes side by side. This is done using a flexible horizontal box. The left-hand axes is left with the ActivePositionProperty set to "outerposition", but the right-hand axes is switched to use Position.

-
hbox = uix.HBoxFlex('Parent', window, 'Spacing', 3);
-axes1 = axes( 'Parent', hbox, ...
-    'ActivePositionProperty', 'outerposition' );
-axes2 = axes( 'Parent', hbox, ...
-    'ActivePositionProperty', 'Position' );
-set( hbox, 'Widths', [-2 -1] );
-

-
- -

Fill the axes

-

Using OuterPosition (left-hand axes) is the normal mode and looks good for virtually any plot type. Using Position is only really useful for 2D plots with the axes turned off, such as images.

-
x = membrane( 1, 15 );
-surf( axes1, x );
-lighting( axes1, 'gouraud' );
-shading( axes1, 'interp' );
-l = light( 'Parent', axes1 );
-camlight( l, 'head' );
-axis( axes1, 'tight' );
-
-imagesc( x, 'Parent', axes2 );
-set( axes2, 'xticklabel', [], 'yticklabel', [] );
-

-
-

- - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide2_3.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide2_3.html deleted file mode 100644 index 5543bd9..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide2_3.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - Colorbars and legends - - - - - - - - - -
User_guideprevious pagenext page
- - -
- -

2.3: Colorbars and legends Go back up one level

- -

(The code for this example can be found here: - [ view - | edit - | run ] - )

-

- When using layouts to position axes that can also have a - colorbar or legend it is very important to group the axes - with its colorbar and legend by putting them inside a uicontainer. -

-

- The following example illustrates this. -

- -

Open a window

-

Open a new figure window and remove the toolbar and menus.

-
window = figure( 'Name', 'Axes legend and colorbars', ...
-            'MenuBar', 'none', ...
-            'Toolbar', 'none', ...
-            'NumberTitle', 'off' );
-
- -

Create the layout

-

The layout involves two axes side by side. Each axes is placed into a uicontainer so that the legend and colorbar are "grouped" with the axes.

-
hbox = uix.HBoxFlex('Parent', window, 'Spacing', 3);
-axes1 = axes( 'Parent', uicontainer('Parent', hbox) );
-axes2 = axes( 'Parent', uicontainer('Parent', hbox) );
-

-
- -

Add decorations

-

Give the first axes a colorbar and the second axes a legend.

-
surf( axes1, membrane( 1, 15 ) );
-colorbar( axes1 );
-
-theta = 0:360; -plot( axes2, theta, sind(theta), theta, cosd(theta) ); -legend( axes2, 'sin', 'cos', 'Location', 'NorthWestOutside' );
-

-
- - - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide3.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide3.html deleted file mode 100644 index b88926c..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide3.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - Controlling visibility - - - - - - - - - -
User_guideprevious pagenext page
- - -

3: Controlling visibility Go back up one level

- -

The examples in this section show the effect of setting the - Visible property on a layout object.

- - - -

Section contents:

-
    -
- -
    -
- - - - - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide3_1.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide3_1.html deleted file mode 100644 index 4536042..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide3_1.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - Visible example - - - - - - - - - -
User_guideprevious pagenext page
- - -
- -

3.1: Visible example Go back up one level

- -

(The code for this example can be found here: - [ view - | edit - | run ] - )

-

- This example shows how the Visible property can be - used to hide whole sections of an interface. -

- - Open a window and add a panel -
fig = figure( 'Name', 'Visible example', ...
-    'Position', [100 100 150 250], ...
-    'MenuBar', 'none', ...
-    'ToolBar', 'none', ...
-    'NumberTitle', 'off' );
-panel = uix.BoxPanel( 'Parent', fig, 'Title', 'Panel' );
-

-
- - Put some buttons inside the panel -
box = uix.VButtonBox( 'Parent', panel );
-uicontrol( 'Parent', box, 'String', 'Button 1' );
-uicontrol( 'Parent', box, 'String', 'Button 2' );
-uicontrol( 'Parent', box, 'String', 'Button 3', 'Visible', 'off' );
-uicontrol( 'Parent', box, 'String', 'Button 4' );
-uicontrol( 'Parent', box, 'String', 'Button 5', 'Visible', 'off' );
-uicontrol( 'Parent', box, 'String', 'Button 6' );
-

-
- - Try hiding the panel -
set( panel, 'Visible', 'off' );
-

-
- - Try showing the panel. Note that the original Visible state of each button is remembered. -
set( panel, 'Visible', 'on' );
-

-
- - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide4.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide4.html deleted file mode 100644 index a801d9c..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide4.html +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - Advanced maneuvers with panels - - - - - - - - - -
User_guideprevious pagenext page
- - -

4: Advanced maneuvers with panels Go back up one level

- -

- The uix.BoxPanel provides some extra buttons - and callbacks that can be used to design advanced user-interface - layouts. In particular, the sections below illustrate how to create - interfaces with context help, and panels that can be minimized or undocked. -

- - - - - - - - - - - -

Section contents:

-
    -
- -
    -
- - - - - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide4_1.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide4_1.html deleted file mode 100644 index 0eb56a7..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide4_1.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - Context help - - - - - - - - - -
User_guideprevious pagenext page
- - -
- -

4.1: Context help Go back up one level

- -

- When a uix.BoxPanel has its HelpFcn - filled in, a help button (?) is shown in the upper-right of the - title-bar. When the user clicks this button the specified function - is called. -

-

For example:

- Here we hookup the HelpFcn to simply bring up - the MATLAB documentation for each command. Clicking any of the "?" buttons - will cause the MATLAB help browser to open. -
f = figure( 'Name', 'uix.BoxPanel Help Example' );
-b = uix.HBox( 'Parent', f );
-uix.BoxPanel( 'Parent', b, 'Title', 'sin', 'HelpFcn', @(a,b) doc('sin') );
-uix.BoxPanel( 'Parent', b, 'Title', 'cos', 'HelpFcn', @(a,b) doc('cos') );
-uix.BoxPanel( 'Parent', b, 'Title', 'tan', 'HelpFcn', @(a,b) doc('tan') );
-
-

- - - - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide4_2.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide4_2.html deleted file mode 100644 index 809963f..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide4_2.html +++ /dev/null @@ -1,140 +0,0 @@ - - - - - - - Minimize and maximize - - - - - - - - - -
User_guideprevious pagenext page
- - -
- -

4.2: Minimize and maximize Go back up one level

- -

- When a uix.BoxPanel has its MinimizeFcn - filled in, a minimize/maximize button (â–´/â–¾) is shown in the upper-right of the - title-bar. When the user clicks this button the specified function - is called. Since the behaviour of the parent container is - different in different use-cases, it is up to the user to write - some code to actually resize the panel. Note that minimizing - a panel to its title-bar only really makes sense inside a - uix.VBox or uix.VBoxFlex. -

-

The following simple example shows how to add minimize/maximize - functionality to a box full of panels. Save the code into - a file called "minimizeexample.m" to run it.

- -

(The code for this example can be found here: - [ view - | edit - | run ] - )

- - -

Create the layout with three panels

-

Open a new figure window and add three panels.

-
function minimizeexample()
-width = 200;
-pheightmin = 20;
-pheightmax = 100;
-
-% Create the window and main layout
-fig = figure( 'Name', 'Collapsable GUI example', ...
-              'NumberTitle', 'off', ...
-              'Toolbar', 'none', ...
-              'MenuBar', 'none' );
-box = uix.VBox( 'Parent', fig );
-
-panel{1} = uix.BoxPanel( 'Title', 'Panel 1', 'Parent', box );
-panel{2} = uix.BoxPanel( 'Title', 'Panel 2', 'Parent', box );
-panel{3} = uix.BoxPanel( 'Title', 'Panel 3', 'Parent', box );
-set( box, 'Heights', pheightmax*ones(1,3) );
-
-% Add some contents.
-uicontrol( 'Style', 'PushButton', 'String', 'Button 1', 'Parent', panel{1} );
-uicontrol( 'Style', 'PushButton', 'String', 'Button 2', 'Parent', panel{2} );
-uicontrol( 'Style', 'PushButton', 'String', 'Button 3', 'Parent', panel{3} );
-
-% Resize the window
-pos = get( fig, 'Position' );
-set( fig, 'Position', [pos(1,1:2),width,sum(box.Heights)] );
-

-
- -

Add the minimize/maximize callback

-

We set each panel to call the same minimize/maximize function. - This function is nested inside the main function so that it has access - to the main function's variables. A better way to do this is to make the -main function into a class, but this nested-function approach is fine -for simple applications.

-

Note that as soon as we set the "MinimizeFcn" property the minimize/maximize - icon appears in the top-right of each panel. We use a cell-array to pass an - extra argument, the panel number, to the minimize function. This extra argument appears after the usual - eventSource and eventData arguments.

-
% Hook up the minimize callback.
-set( panel{1}, 'MinimizeFcn', {@nMinimize, 1} );
-set( panel{2}, 'MinimizeFcn', {@nMinimize, 2} );
-set( panel{3}, 'MinimizeFcn', {@nMinimize, 3} );
-
-%-------------------------------------------------------------------------%
- function nMinimize( eventSource, eventData, whichpanel ) - % A panel has been maximized/minimized - s = get( box, 'Heights' ); - pos = get( fig, 'Position' ); - panel{whichpanel}.Minimized = ~panel{whichpanel}.Minimized; - if panel{whichpanel}.Minimized - s(whichpanel) = pheightmin; - else - s(whichpanel) = pheightmax; - end  - set( box, 'Heights', s ); - - % Resize the figure, keeping the top stationary - delta_height = pos(1,4) - sum( box.Heights ); - set( fig, 'Position', pos(1,:) + [0 delta_height 0 -delta_height] ); - end % Minimize  - -end % Main function
-

-
- - -

Click the minimize buttons

-

Minimizing the middle panel causes it to shrink to just its - title-bar and the window shrinks accordingly. The - "Minimize" icon is replaced by a "Maximise" icon.

-

-

Re-maximizing the panel would - cause it to re-appear in full and the window to grow again.

- - - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide4_3.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide4_3.html deleted file mode 100644 index b32cb4b..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide4_3.html +++ /dev/null @@ -1,154 +0,0 @@ - - - - - - - Dock and undock - - - - - - - - - -
User_guideprevious pagenext page
- - -
- -

4.3: Dock and undock Go back up one level

- - -

- When a uix.BoxPanel has its DockFcn - filled in, a dock/undock button (↘/↗) is shown in the upper-right of the - title-bar. When the user clicks this button the specified function - is called. Since re-docking the panel into its previous parent - depends on the type of parent, it is up to the user to write - some code to actually extract or insert the panel. -

-

The following simple example shows how to add dock/undock - functionality to a box full of panels. Save the code into - a file called "dockexample.m" to run it.

- -

(The code for this example can be found here: - [ view - | edit - | run ] - )

- -

Create the layout with three panels

-

Open a new figure window and add three panels.

-
function dockexample()
-% Create the window and main layout
-fig = figure( 'Name', 'Dockable GUI example', ...
-              'NumberTitle', 'off', ...
-              'Toolbar', 'none', ...
-              'MenuBar', 'none', ...
-              'CloseRequestFcn', @nCloseAll );
-box = uix.HBox( 'Parent', fig );
-
-% Add three panels to the box
-panel{1} = uix.BoxPanel( 'Title', 'Panel 1', 'Parent', box );
-panel{2} = uix.BoxPanel( 'Title', 'Panel 2', 'Parent', box );
-panel{3} = uix.BoxPanel( 'Title', 'Panel 3', 'Parent', box );
-
-% Add some contents
-uicontrol( 'Style', 'PushButton', 'String', 'Button 1', 'Parent', panel{1} ); -uicontrol( 'Style', 'PushButton', 'String', 'Button 2', 'Parent', panel{2} ); -uicontrol( 'Style', 'PushButton', 'String', 'Button 3', 'Parent', panel{3} );
-

-
- -

Add the dock/undock callback

-

We set each panel to call the same dock/undock function. - This function is nested inside the main function so that it has access - to the main function's variables. A better way to do this is to make the -main function into a class, but this nested-function approach is fine -for simple applications.

-

Note that as soon as we set the "DockFcn" property the Dock/Undock - icon appears in the top-right of each panel. We use a cell-array to pass an - extra argument, the panel number, to the minimize function. This extra argument appears after the usual - eventSource and eventData arguments.

-
% Set the dock/undock callback
-set( panel{1}, 'DockFcn', {@nDock, 1} ); -set( panel{2}, 'DockFcn', {@nDock, 2} ); -set( panel{3}, 'DockFcn', {@nDock, 3} ); - -%-------------------------------------------------------------------------%
- function nDock( eventSource, eventData, whichpanel ) - % Set the flag - panel{whichpanel}.IsDocked = ~panel{whichpanel}.IsDocked; - if panel{whichpanel}.IsDocked - % Put it back into the layout - newfig = get( panel{whichpanel}, 'Parent' ); - set( panel{whichpanel}, 'Parent', box ); - delete( newfig ); - else  - % Take it out of the layout - pos = getpixelposition( panel{whichpanel} ); - newfig = figure( ... - 'Name', get( panel{whichpanel}, 'Title' ), ... - 'NumberTitle', 'off', ... - 'MenuBar', 'none', ... - 'Toolbar', 'none', ... - 'CloseRequestFcn', {@nDock, whichpanel} ); - figpos = get( newfig, 'Position' ); - set( newfig, 'Position', [figpos(1,1:2), pos(1,3:4)] ); - set( p{whichpanel}, 'Parent', newfig, ... - 'Units', 'Normalized', ... - 'Position', [0 0 1 1] ); - end  - end % nDock
- - -

Add the close callback

-

If the user closes the main window we need to also close any - other windows that were created. This can be done by finding - the window that contains each panel and deleting it.

-
%-------------------------------------------------------------------------%
- function nCloseAll( ~, ~ ) - for ii=1:numel( panel ) - if isvalid( panel{ii} ) && ~strcmpi( panel{ii}.BeingDeleted, 'on' ) - figh = ancestor( panel{ii}, 'figure' ); - delete( figh ); - end  - end  - - end % nCloseAll -end % Main function
-

-
- -

Click the dock buttons

-

Undocking the middle panel causes the other two to fill the - vacated space. The undocked panel appears in its own window, with the - "Undock" icon replaced by a "Dock" icon.

-

.

-

Re-docking the panel would - cause it to be appended to the right of the list in the original window. Closing the main window - causes all panels, docked or undocked, and their enclosing windows to be closed.

- - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide5.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide5.html deleted file mode 100644 index e368e38..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide5.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - Using layouts inside GUIDE GUIs - - - - - - - - - -
User_guideprevious pagenext page
- - -

5: Using layouts inside GUIDE GUIs Go back up one level

- - -

Whilst the layouts in this toolbox do not integrate into the - MATLAB Graphical User Interface Design Environment (GUIDE), it - is possible to insert layouts into a GUIDE-built GUI as follows:

-

Create the GUIDE GUI

-

Create you GUIDE application as usual, placing a panel where you - want to insert the layout. You can turn the panel border and title - off if you do not want them.

-
- -

Insert the layout

-

Edit the "OpeningFcn" in the GUIDE-created code and insert your - layout into the panel, making it fill the space. In the example below -four boxpanels are inserted into a grid, which itself is placed inside - uipanel1:

- -
% --- Executes just before guideApp is made visible. 
-function guideApp_OpeningFcn(hObject, eventdata, handles, varargin)
-
-% Choose default command line output for guideApp 
-handles.output = hObject;
-
-% Update handles structure 
-guidata(hObject, handles);
-
-% Put a layout in the panel 
-g = uix.GridFlex( 'Parent', handles.uipanel1, ...
-    'Units', 'Normalized', 'Position', [0 0 1 1], ...
-    'Spacing', 5 );
-uix.BoxPanel( 'Parent', g, 'Title', 'Panel 1' );
-uix.BoxPanel( 'Parent', g, 'Title', 'Panel 2' );
-uix.BoxPanel( 'Parent', g, 'Title', 'Panel 3' );
-uix.BoxPanel( 'Parent', g, 'Title', 'Panel 4' );
-g.Heights = [-1 -1];
-

-
-

(Full source code for this application is available here: - [ view - | edit - | run ] - )

- - - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide6.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide6.html deleted file mode 100644 index cb1f4bb..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide6.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - Deploying GUIs using the MATLAB Compiler - - - - - - - - - -
User_guideprevious pagenext page
- - -

6: Deploying GUIs using the MATLAB Compiler Go back up one level

- - - -

Applications built using these layout tools can be deployed as standalone - executables using the MATLAB Compiler in - the same way as any other MATLAB application. There is, however, one thing to watch out for:

-
    -
  • You must explicitly include the "Resources" folder within the +uix package
  • -
-

Example

-

Below is a screen-shot of the deploytool setup - used to build the example application. - The "Resources" folder from the toolbox has been explicitly added as a -shared resource so that the mouse-pointers and panel icons continue to work.

-

- - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide7.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide7.html deleted file mode 100644 index 9a26e56..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide7.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - A complete example - - - - - - - - - -
User_guideprevious pagenext page
- - -

7: A complete example Go back up one level

- - - - -

The following example application uses many of the layout features - discussed above in order to create a good-looking user interface that - scales well when resized. It is not designed to showcase all the - layout functionality, but shows how callbacks are added to provide - user interaction. It also exemplifies separating the data from the GUI, - a fundamental part of creating modular and maintainable applications.

-

The full application is available here:

- - - - - - - - - - - - - - - - - - - -

Section contents:

-
    -
- -
    -
- - - - - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide7_1.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide7_1.html deleted file mode 100644 index 62d544b..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide7_1.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - Application structure - - - - - - - - - -
User_guideprevious pagenext page
- - -
- -

7.1: Application structure Go back up one level

- - -

There are many ways to build graphical applications in MATLAB, but - here we will take a very simple approach. If the application were to become -larger and more complex, this approach would be changed to better mitigate - the complexity. Some notes on this are contained at the end.

- -

The application is structured as a single function with callbacks and other helper - functions stored as "nested" subfunctions, i.e. functions inside the main function. This has - the advantage that the nested subfunctions can share access to any variables - declared in the main function. This is also a risk as anything we accidentally - declare in the main function becomes "global" within the application. For that reason - all logic is put into subfunctions and we restrict the main - function to just declaring two shared variables:

-
    -
  • data: a structure containing all shared data
  • -
  • gui: a structure containing handles to GUI widgets
  • -
-

-function demoBrowser()
-
-   % Declare shared variables
-   data = createData();
-   gui = createInterface( data.DemoNames );
-
-   % Now update the GUI with the current data
-   updateInterface();
-   redrawDemo();
-   
-   % Helper subfunctions.
-   function data = createData() ... end;
-   function gui = createInterface(names) ... end;
-   function updateInterface() ... end;
-   function redrawDemo() ... end;
-
-   % Callback subfunctions.
-   function onMenuSelection() ... end;
-   function onListSelection() ... end;
-   function onDemoHelp() ... end;
-   function onHelp() ... end;
-   function onExit() ... end;
-
-end  % Main function
-
- -

Note that all of the work is done in subfunctions. Most subfunctions -are callbacks executed when a button is pressed or a menu selected. The four used -at startup are helper functions:

-
    -
  • createData: build the structure which contains all application data
  • -
  • createInterface: build the user interface
  • -
  • updateInterface: update selectors etc in response to a change in the data
  • -
  • redrawDemo: redraw the plot part of the interface
  • -
-

We will not dig into all the subfunctions and callbacks, but instead - concentrate on the GUI creation (createInterface) - and update (updateInterface).

- -

(Full source code for this application is available here: - [ view - | edit - | run ] - )

- - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide7_2.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide7_2.html deleted file mode 100644 index b6bc4d2..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide7_2.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - createInterface - - - - - - - - - -
User_guideprevious pagenext page
- - -
- -

7.2: createInterface Go back up one level

- -

The interface creation is handled in the createInterface - subfunction. This has two distinct sections: menu building and widget arrangement. - The menus are built using the standard MATLAB menu building command uimenu, - so let's concentrate on the widget arrangement.

- -

The top-level layout is a horizontal arrangement, placing the controls -to the left of the main plot. We make the layout draggable by using the -"flex" variant of HBox, and put a panel in each side. Note that setting the -"HelpFcn" for the view panel adds a small "?" icon for bringing up help. See -here for more details.

-

-% Add the contents
-mainLayout = uix.HBoxFlex( 'Parent', gui.Window, 'Spacing', 3 );
-
-% Create the panels
-controlPanel = uix.BoxPanel( ...
-   'Parent', mainLayout, ...
-   'Title', 'Select a demo:' );
-gui.ViewPanel = uix.BoxPanel( ...
-   'Parent', mainLayout, ...
-   'Title', 'Viewing: ???', ...
-   'HelpFcn', @onDemoHelp );
-
-% Adjust the main layout
-set( mainLayout, 'Widths', [-1,-2] ); -
-

-
-

The controls panel is filled with a vertical layout containing the listbox -and a button. Note the callbacks that are specified for both the list and button. These -both call further subfunctions that are able to access the common "data" and "gui" -shared structures.

-

-% Create the controls
-controlLayout = uix.VBox( 'Parent', controlPanel, ...
-   'Padding', 3, 'Spacing', 3 );
-gui.ListBox = uicontrol( 'Style', 'list', ...
-   'BackgroundColor', 'w', ...
-   'Parent', controlLayout, ...
-   'String', demoList(:), ...
-   'Value', 1, ...
-   'Callback', @onListSelection);
-gui.HelpButton = uicontrol( 'Style', 'PushButton', ...
-   'Parent', controlLayout, ...
-   'String', 'Help for <demo>', ...
-   'Callback', @onDemoHelp );
-set( controlLayout, 'Heights', [-1 28] ); % Make the list fill the space
-
-

-
-

Finally, the view itself is simply an axes placed inside the view panel:

-

-% Create the view
-gui.ViewAxes = axes( 'Parent', gui.ViewPanel );
-   
-

-
-

(Full source code for this application is available here: - [ view - | edit - | run ] - )

- - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide7_3.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide7_3.html deleted file mode 100644 index ac4a701..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide7_3.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - updateInterface - - - - - - - - - -
User_guideprevious pagenext page
- - -
- -

7.3: updateInterface Go back up one level

- -

The second subfunction we will look at, updateInterface, uses the - current selections to update the interface. This uses the structure - "data" to update various parts of the interface. For this simple example this just means: -

-

1. Update the selected item in the listbox

-
set( gui.ListBox, 'Value', data.SelectedDemo );
-

2. Update the help button label

-
demoName = data.DemoNames{ data.SelectedDemo };
set( gui.HelpButton, 'String', ['Help for ',demoName] );
-

3. Update the view panel title

-
set( gui.ViewPanel, 'Title', sprintf( 'Viewing: %s', demoName ) );
-

4. Update the ticked menu

-
menus = get( gui.ViewMenu, 'Children' );
-set( menus, 'Checked', 'off' );
-% Use the name to work out which menu item should be ticked
-whichMenu = strcmpi( demoName, get( menus, 'Label' ) );
-set( menus(whichMenu), 'Checked', 'on' );
-
-

-

In general, this update function is called whenever the underlying - shared "data" structure is changed. This happens when the user clicks - a button, selects a list item or a menu. Next we will look at a typical - callback.

-

(Full source code for this application is available here: - [ view - | edit - | run ] - )

- - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide7_4.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide7_4.html deleted file mode 100644 index 3690840..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide7_4.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - onListSelection - - - - - - - - - -
User_guideprevious pagenext page
- - -
- -

7.4: onListSelection Go back up one level

- -

Finally, let's have a look at how one of the callbacks works: "onListSelection", the function - that is called when an item is selected in the listbox. The other - callbacks obey the same pattern.

-

The basic rule of thumb is that a callback should not update any part of - the user interface directly - it's job is to respond to user interaction by changing the "data" structure. - In this example, each callback changes the underlying data structure - then asks the interface to refresh. This might mean that things update in the -interface that don't need to, but ensures the callbacks remain simple and that all -interface update logic is in one place. Extending this to more granular interface updates - is straightforward. See Scalability for more details.

-

For the listbox callback, the "src" argument is a handle to the - listbox and we simply need to update the SelectedDemo field of "data" - to reflect the new selection. We then ask the rest of the interface to - update in response to the change. -

-

-                % User selected a demo from the list - update "data" and refresh
-data.SelectedDemo = get( src, 'Value' );
-updateInterface();
-redrawDemo();
-

-
-

(Full source code for this application is available here: - [ view - | edit - | run ] - )

- - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide7_5.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide7_5.html deleted file mode 100644 index 02585fe..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide7_5.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - Running it - - - - - - - - - -
User_guideprevious pagenext page
- - -
- -

7.5: Running it Go back up one level

- -

When the main function is launched (click - here) - it first creates the data, then the GUI, then updates the GUI using the data. At this point the - function exits and control is returned to the command prompt. Note, however, - that the GUI is still onscreen and will still respond to user interaction.

-

This works because the "shared" variables in the main function are not cleared when the - function exits. They are only cleared once the GUI is closed. This is a slightly - unusual, but very useful, feature of using nested functions for building - applications.

-

For example:

-
>> demoBrowser
-

- -

(Full source code for this application is available here: - [ view - | edit - | run ] - )

- - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide7_6.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide7_6.html deleted file mode 100644 index 67e27af..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/User_guide7_6.html +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - - Scalability - - - - - - - - - -
User_guideprevious pagenext page
- - -
- -

7.6: Scalability Go back up one level

- -

As applications get bigger the code gets more complex. The simple - application structure used here does not scale well to large applications, - however some small adjustments can make life much better:

-
    -
  • Convert the "data" structure into a handle object. This allows - a single "data" object to be shared between mutliple graphical interfaces, and in turn means that the interface - need not be built as a single monolithic entity.
  • -
  • Use the events system to trigger updates - to specific parts of the GUI in response to bits of the data object changing. This removes the need - for a single large "UpdateInterface" function and reduces coupling between parts of the interface. For example, - the "SelectedDemo" property would have an associated event such that when it is changed by a callback (or from the command-line) it - notifies other interface components of the change. Each interface component (or group thereof) can - just listen for the events that affect it.
  • -
-

Advice on how to build large-scale applications is beyond the scope - of this document. If you need help in this area, please contact your MathWorks - account manager who will be able to put you in touch with a technical specialist.

- - -
- - - - - - - - - - © 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks - - - -> diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/VisibleExample.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/VisibleExample.html deleted file mode 100644 index 40b442f..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/VisibleExample.html +++ /dev/null @@ -1 +0,0 @@ - > diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/about.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/about.html deleted file mode 100644 index a02d59c..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/about.html +++ /dev/null @@ -1 +0,0 @@ - > diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/atoz.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/atoz.html deleted file mode 100644 index ef7cd82..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/atoz.html +++ /dev/null @@ -1,181 +0,0 @@ - - - - - GUI Layout Toolbox documentation: Index - - -
- GUI Layout Toolbox 2.3.1 -
-

Alphabetical index

-
- A - - B - - C - - D - - E - - F - - G - - H - - I - - J - - K - - L - - M -
- N - - O - - P - - Q - - R - - S - - T - - U - - V - - W - - X - - Y - - Z -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

A

A complete exampleA complete example (User guide: 7)
AboutWhat is GUI Layout Toolbox? (Getting Started: 1)
AcknowledgementsAcknowledgements (Getting Started: 6)
Advanced maneuvers with panelsAdvanced maneuvers with panels (User guide: 4)
Application designA complete example (User guide: 7)
Application structureApplication structure (User guide: 7.1)
axesPositioning axes (User guide: 2)
Axes inside layoutsAxes inside layouts (User guide: 2.2)

B

Boxuix.HBox (Function reference: 2.1)
 uix.VBox (Function reference: 2.2)
 uix.HBoxFlex (Function reference: 2.3)
 uix.VBoxFlex (Function reference: 2.4)
BoxesBoxes (Function reference: 2)
BoxPaneluix.BoxPanel (Function reference: 1.3)
Button boxuix.HButtonBox (Function reference: 2.5)
 uix.VButtonBox (Function reference: 2.6)

C

CallbacksA complete example (User guide: 7)
CardPaneluix.CardPanel (Function reference: 1.2)
Colorbars and legendsColorbars and legends (User guide: 2.3)
Compatibility considerationsCompatibility considerations (Getting Started: 2)
CompilerDeploying GUIs using the MATLAB Compiler (User guide: 6)
Context helpContext help (User guide: 4.1)
Controlling visibilityControlling visibility (User guide: 3)
createInterfacecreateInterface (User guide: 7.2)

D

Deploying GUIs using the MATLAB CompilerDeploying GUIs using the MATLAB Compiler (User guide: 6)
Dock and undockDock and undock (User guide: 4.3)
Draggable dividersuix.HBoxFlex (Function reference: 2.3)
 uix.VBoxFlex (Function reference: 2.4)
 uix.GridFlex (Function reference: 3.2)

E

Emptyuix.Empty (Function reference: 4.1)
Examples(Examples)

F

Flexible layoutuix.HBoxFlex (Function reference: 2.3)
 uix.VBoxFlex (Function reference: 2.4)
FolderlayoutRoot (Function reference: 4.3)
Function reference(Function reference)

G

Getting Started(Getting Started)
Griduix.Grid (Function reference: 3.1)
GridFlexuix.GridFlex (Function reference: 3.2)
GridsGrids (Function reference: 3)
GUIDEUsing layouts inside GUIDE GUIs (User guide: 5)

H

HBoxuix.HBox (Function reference: 2.1)
HBoxFlexuix.HBoxFlex (Function reference: 2.3)
HButtonBoxuix.HButtonBox (Function reference: 2.5)
HelpSupport (Getting Started: 5)
Horizontal button layoutuix.HButtonBox (Function reference: 2.5)
Horizontal layoutuix.HBox (Function reference: 2.1)
 uix.HBoxFlex (Function reference: 2.3)

I

InstallationInstallation (Getting Started: 4)
Installation folderlayoutRoot (Function reference: 4.3)

L

Layout basicsLayout basics (User guide: 1.1)
Layout hierarchiesLayout hierarchies (User guide: 1.4)
layoutRootlayoutRoot (Function reference: 4.3)

M

MATLAB CompilerDeploying GUIs using the MATLAB Compiler (User guide: 6)
Minimize and maximizeMinimize and maximize (User guide: 4.2)
Minimum sizesSizes and units (User guide: 1.3.1)

O

onListSelectiononListSelection (User guide: 7.4)
Other functionsOther functions (Function reference: 4)

P

Paneluix.Panel (Function reference: 1.1)
PanelsPanels (Function reference: 1)
Position vs OuterPositionPosition vs OuterPosition (User guide: 2.1)
Positioning axesPositioning axes (User guide: 2)

R

Release notesRelease notes (Getting Started: 3)
RootlayoutRoot (Function reference: 4.3)
Running itRunning it (User guide: 7.5)

S

ScalabilityScalability (User guide: 7.6)
ScrollingPaneluix.ScrollingPanel (Function reference: 1.5)
Sizes and unitsSizes and units (User guide: 1.3)
SupportSupport (Getting Started: 5)

T

TabPaneluix.TabPanel (Function reference: 1.4)
Trackinguix.tracking (Function reference: 4.2)
Types of layoutTypes of layout (User guide: 1.2)

U

uix.BoxPaneluix.BoxPanel (Function reference: 1.3)
uix.CardPaneluix.CardPanel (Function reference: 1.2)
uix.Emptyuix.Empty (Function reference: 4.1)
uix.Griduix.Grid (Function reference: 3.1)
uix.GridFlexuix.GridFlex (Function reference: 3.2)
uix.HBoxuix.HBox (Function reference: 2.1)
uix.HBoxFlexuix.HBoxFlex (Function reference: 2.3)
uix.HButtonBoxuix.HButtonBox (Function reference: 2.5)
uix.Paneluix.Panel (Function reference: 1.1)
uix.ScrollingPaneluix.ScrollingPanel (Function reference: 1.5)
uix.TabPaneluix.TabPanel (Function reference: 1.4)
uix.trackinguix.tracking (Function reference: 4.2)
uix.VBoxuix.VBox (Function reference: 2.2)
uix.VBoxFlexuix.VBoxFlex (Function reference: 2.4)
uix.VButtonBoxuix.VButtonBox (Function reference: 2.6)
Understanding layoutsUnderstanding layouts (User guide: 1)
UndockDock and undock (User guide: 4.3)
UninstallInstallation (Getting Started: 4)
updateInterfaceupdateInterface (User guide: 7.3)
User guide(User guide)
Using layouts inside GUIDE GUIsUsing layouts inside GUIDE GUIs (User guide: 5)

V

VBoxuix.VBox (Function reference: 2.2)
VBoxFlexuix.VBoxFlex (Function reference: 2.4)
VButtonBoxuix.VButtonBox (Function reference: 2.6)
Vertical button layoutuix.VButtonBox (Function reference: 2.6)
Vertical layoutuix.VBox (Function reference: 2.2)
 uix.VBoxFlex (Function reference: 2.4)
Visible exampleVisible example (User guide: 3.1)

W

What is GUI Layout Toolbox?What is GUI Layout Toolbox? (Getting Started: 1)
Why use layouts?Why use layouts? (User guide: 1.5)
-
- - -
- Back to Top -
- © 2017 The MathWorks Inc - Terms of Use - Patents - Trademarks - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/compatibility.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/compatibility.html deleted file mode 100644 index 4bd600f..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/compatibility.html +++ /dev/null @@ -1 +0,0 @@ - > diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/demoBrowserCreateInterface.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/demoBrowserCreateInterface.html deleted file mode 100644 index 735ccd9..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/demoBrowserCreateInterface.html +++ /dev/null @@ -1 +0,0 @@ - > diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/demoBrowserOnListSelection.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/demoBrowserOnListSelection.html deleted file mode 100644 index b21cd6d..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/demoBrowserOnListSelection.html +++ /dev/null @@ -1 +0,0 @@ - > diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/demoBrowserRun.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/demoBrowserRun.html deleted file mode 100644 index 8f8ee68..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/demoBrowserRun.html +++ /dev/null @@ -1 +0,0 @@ - > diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/demoBrowserScalability.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/demoBrowserScalability.html deleted file mode 100644 index aa267c5..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/demoBrowserScalability.html +++ /dev/null @@ -1 +0,0 @@ - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/demoBrowserStructure.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/demoBrowserStructure.html deleted file mode 100644 index 893c5dc..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/demoBrowserStructure.html +++ /dev/null @@ -1 +0,0 @@ - > diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/demoBrowserUpdateInterface.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/demoBrowserUpdateInterface.html deleted file mode 100644 index 036fb84..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/demoBrowserUpdateInterface.html +++ /dev/null @@ -1 +0,0 @@ - > diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/doc.css b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/doc.css deleted file mode 100644 index 8a52a82..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/doc.css +++ /dev/null @@ -1,95 +0,0 @@ - H4 { color: rgb(153,0,0); - font-family: Arial,Helvetica,sans-serif; - font-weight: bold; - font-size: smallnormal; - } - - H3 { color: rgb(153,0,0); - font-family: Arial,Helvetica,sans-serif; - font-weight: bold; - font-size: large; - } - - H2 { color: rgb(153,0,0); - font-weight: bold; - font-size: x-large; - font-family: Arial,Helvetica,sans-serif; - } - - H1 { color: rgb(10,0,0); - font-weight: bold; - font-size: xx-large; - font-family: Arial,Helvetica,sans-serif; - } - - P { font-weight: normal; - font-style: normal; - color: rgb(0, 0, 32); - font-family: Arial,Helvetica,sans-serif; - text-decoration: none; - } - - LI { font-weight: normal; - font-style: normal; - color: rgb(0, 0, 32); - font-family: Arial,Helvetica,sans-serif; - text-decoration: none; - } - - A { font-weight: normal; - font-style: normal; - color: rgb(0,0,180, 0, 0); - font-family: Arial,Helvetica,sans-serif; - text-decoration: none; - } - - CODE { font-family: Courier New,Courier,monospace; - color: #000044; - font-size: -1; - } -CODE.FUNCTION { - color: #0000EE; - font-weight: bold; -} -CODE.INARG { - color: #008800; - font-weight: bold; -} -CODE.OUTARG { - color: #880000; - font-weight: bold; - } -CODE.COMMENT { - color: #008800; -} -CODE.STRING { - color: #DD00FF; -} - -TABLE.PROPERTYTABLE { - border-width: 3; - border-style: inset; - border-color: #777777; - cellpadding: 4; - cellspacing: 0; -} -TH.PROPERTYTABLE { - font-weight: bold; - color: #000000; - border-width: 2; - border-style: inset; - background-color: #b2b2b2; -} -TD.PROPERTYTABLE { - font-weight: normal; - color: #000000; - border-width: 2; - border-style: inset; - background-color: #f2f2f2; -} - -PRE { font-family: Courier New,Courier,monospace; - color: #000044; - font-size: -1; -} - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/frames.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/frames.html deleted file mode 100644 index 3b236e2..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/frames.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - GUI Layout Documentation - - - - - - - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/helpindex.xml b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/helpindex.xml deleted file mode 100644 index 8d82852..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/helpindex.xml +++ /dev/null @@ -1,118 +0,0 @@ - - - - -A complete example -About -Acknowledgements -Advanced maneuvers with panels -Application design -Application structure -axes -Axes inside layouts -Box - uix.HBox (Function reference: 2.1) - uix.VBox (Function reference: 2.2) - uix.HBoxFlex (Function reference: 2.3) - uix.VBoxFlex (Function reference: 2.4) - -Boxes -BoxPanel -Button box - uix.HButtonBox (Function reference: 2.5) - uix.VButtonBox (Function reference: 2.6) - -Callbacks -CardPanel -Colorbars and legends -Compatibility considerations -Compiler -Context help -Controlling visibility -createInterface -Deploying GUIs using the MATLAB Compiler -Dock and undock -Draggable dividers - uix.HBoxFlex (Function reference: 2.3) - uix.VBoxFlex (Function reference: 2.4) - uix.GridFlex (Function reference: 3.2) - -Empty -Examples -Flexible layout - uix.HBoxFlex (Function reference: 2.3) - uix.VBoxFlex (Function reference: 2.4) - -Folder -Function reference -Getting Started -Grid -GridFlex -Grids -GUIDE -HBox -HBoxFlex -HButtonBox -Help -Horizontal button layout -Horizontal layout - uix.HBox (Function reference: 2.1) - uix.HBoxFlex (Function reference: 2.3) - -Installation -Installation folder -Layout basics -Layout hierarchies -layoutRoot -MATLAB Compiler -Minimize and maximize -Minimum sizes -onListSelection -Other functions -Panel -Panels -Position vs OuterPosition -Positioning axes -Release notes -Root -Running it -Scalability -ScrollingPanel -Sizes and units -Support -TabPanel -Tracking -Types of layout -uix.BoxPanel -uix.CardPanel -uix.Empty -uix.Grid -uix.GridFlex -uix.HBox -uix.HBoxFlex -uix.HButtonBox -uix.Panel -uix.ScrollingPanel -uix.TabPanel -uix.tracking -uix.VBox -uix.VBoxFlex -uix.VButtonBox -Understanding layouts -Undock -Uninstall -updateInterface -User guide -Using layouts inside GUIDE GUIs -VBox -VBoxFlex -VButtonBox -Vertical button layout -Vertical layout - uix.VBox (Function reference: 2.2) - uix.VBoxFlex (Function reference: 2.4) - -Visible example -What is GUI Layout Toolbox? -Why use layouts? - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/helpsearch-v3/_0.cfe b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/helpsearch-v3/_0.cfe deleted file mode 100644 index b0d78a1d0186e10ed3e8143a6bf81ca9393ec11d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 268 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%0DBSQ#4>uruL@b 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

qDVy$R3~SvZdMJ7{?$2oKt$&-1xLd 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%0AdEY^Kk2Gp20n~ zrALKp5CF3$ISS$D%l(nPL-jIEx2=viPHJFBHF>eiyNYQ%V}(V+5o32{Dj~dVM3{f@W=6tc*W?2HA^#``GY#+3vi!R7GArKhcOH9;R{(<*LiKe({TC2 z0!CX*NgH4_8#s)1r8ev-DTb3=RCla@zXD;1Ttrc*4^waiBEgsiM;+`D$m2A!LH(0C z^ga}zY$Jn6cXodv!rU?UAk3Y_L{6^3G{sfvb_Ok;6wFA%pUp8#+wMDO_5jQ&*;3YZ z=g#h8l9+_^F%1zSB4Fr1d!3FT8eBt;`$D_aaN%2=mQ5ESAk#2lrtM`n&NeNaY`{=z8p=gg>hjK=u*@$F? z5Z+OU7$UerzI6V7zh)2;d}Zy{@&W`|?lgA6${uQR6+1)W##(`;1`9PjMhwnA=%G3y z4~4O_D8P5&<_0kfBG$0JfUiEUl6N5z27VHRz9Ntn6DW_&3R)F|bpJ7p z8R1G^Sej5UU%=CWnMB7%M#WPzN(2I@97-{jzzRzVRicv$b}b@gHHIlB0YA$aydr!o zh3N&u;@E7L-wz)eelcbVhdU3F5QBLKHHN@1N12amf+iI=Oz_l6a(^mc@%anB_qvKE z!?_KX!5uE0h3flYRCOULTQvv2<8WU3Yh5emd1p!AAfh&^FL=TESwbl$8qxAGRH zrCDofrmaJ1Y1LZVnw6Fgt)&B5r-rZ-rKL-2S>DWBmDXmhwYk}7ZEk6&q=S-9N|q_D zc(q+=?a&a1qO^7@tzAm%a-}uO+Z0@{twU?;Z07A+dvmjiz?EfPN_!{oP;hQXEAP}g zo16JE-o=+I%bS(uog(tt2{CjsDu#c%M@0X2P{eNCEJmJQFGinTBgQ^^fr#JS#Sa<> zBZnf|!PJmJE7(dXA&FZ`t9;x$9*fb$XpG0wX_FSwB}L+`onqpP%_4bklSqAPp_u$= zm|v<~n(@L|OCfwF<+Dg39#Dz~n0BY>=MKrN!_GP*h<_xBfHHi9nvQ+GQcI5xd7Ve}XX7;g6flO@|p)U7UY=ncA&{gfL5p4 ztulKq=`A_wBA46OaZ?|rv#{9~4qM8j>tL=zC$tqwFN_p{JXrTJtJqiI>|wULrvJP; z6`@s+vDLi4G>?Q3Ws}y=`UT?MAfnvB20p?%$YTOWqAF_l;xLRFwTK?Ag@n?{7mage zqg&(oD=YCzp$PT$L)yvDGld?i6m%hWRYwi`K^Y_&D6m+dSWn;h@v<6LiN7FU&7Q%s zui{#zR)l$-GX5N^_w-}!Sil>Ag=IBHAA{?LqV3kgkY@db&jp{a-_TLT%iFxcKCuCp z?f5(V)E3dQpSD(PZP?nebzr$yD~`6}XzTtq)+XBax3G56j$`dO){bKxtdlJh%Wz~F zjx57_m*Kt3_IF_GgeUTq|8@4f?Ml|mRx?^Vv6l5CXl*^)z&5fA*(SCbtAhsEAlu5e z!Md>ntA%#4-E0rW$LrWLJ~KkAUX4g5b+~{g$E<&_fy#*(IlwI`P)pkdq+~h9*X9Z% zScV8?3{f1xVRRb#VhNVI+YFF(+-!e+dg(=DSPE=DiCY zsA=A=1*srwg=v_7IH#A+zv|TK;+=_**34`u`(rU+`?E#MJwkDdR&7pq-9HzV*!aRj zxc_H8+IrTbZD&2&e%7NMXE};?b=IS2`!uw@vz~jlPix(O_D}0P%N5X?&wBK1-vMp@ zEa##Zob_m11*T>iigN*nRcGwCoOz)2%mZy_9%w)FK*yN}I*m~b^nOYxicN$3Zj6z2 zjuJW&%G&?2>m_eqCN*4zh%_0PHk)lUh-EtF}Ta{*?s;q_JD)w@%T_JCfOWHrm^i<@4fj|Y1XirTjoWYE z!~NM~Y#)Eq>W+^Hb;(#}BB8a&%)mI1E41bcZMi~wuFxS1TJ{X|X8Q$96}f`_9xeM; z^fmh(*(;zw*(ah4$dGXcJA7}XYW<)-}9?_FlF@Fs|(~cTj{`s_8hXBj50Kb z$XAy1re+4nt+XQ?})1?o-EW==k=?(5WNx z%k0cuM!rsar+?Va(?3j}MeC`^dN03Z?>PqSS8%u&=6B8G^#_7^q5OivqT-U$vhs?` zs)p*CaP5M+`o_gemNsAHz~XDeX}a9Lg^QY6THB-$+Vg1$(tU&Pt;@nph9c(4=1roQ?+opw zgnGf*6`T1louSxx=e-MxO~Jg~d5TSF{^48?n}5|a6dPwWmR-FoV+K8tH04TBS=Xx6 zdh~2Xo7o&U!^jpbBd6o&S>anD$ymzBBu)wlM5>f#6{K(*;WkKdnO-zcNy;!6CMI1u zF&S1Ff3BPpnc>N$)dn!-!(NWKQ)$t+%|3ApybpwmkT8utvU zsiHaoO2`HSBSZ^Yp@BFe8S6L~^r%XKnx{s5XWR%6t~M`PZj$5@M3o>VG2JfF@A1fE zIWZlMV;L5e^D(({1vC)noX)6chb*i~mvJugJLp+MkZaz3_MR^2+o3A7fP!4PPJ6`! ze6HYbNGBv-pxlxQ@97E#KLo!QY{_DJY!(i%%-DD5G!Als z=S)hJ=e8HuDkyp?_bz%5Tw^k&(){E0RcJvVea`$p`>a#v&VTLHH=?6-4t*ZT3TIs5 z^iQ*|@B_B}<5!|s4_nJqtJx037b6w|<`|G)V0qezZ5y1P6k4(n#+VCXf|;-0Y=dzI z$`7p9uu4J6q3A}kp~18da~S>G!q-B5Ar)x>uYu`C0Q124Vr3&fa2t#}15kNX`1jW1 zj3t~@o6Rr)t;4lyq2!RMhqFFj4dYK8z5#t3`n)wrdn*QEGTH@`Q4dro`_nGuo1h7; zhbq;N>$E=%>mpbgd?+CSX>j5kn&YFP^CmN=NN91*CZVacXzP%3ZVq@6%voHOm@^i& zF=ue&MFBOliDsadK|hc%GeFD~Vwl+rzhA%)>zGeAlP+htStv3UOL$;@=LQ@zbVuQ` zm-o|d87m&?f5)5QR-T76+uxN`h01P6n^ zMffcQ2oruwA>J07IYrvyGx5EC!>+I*KXr=J`DO@sksSrC1h!~TK7qJ`hz%kLm%qGl z0aZBATg*3y-BRX3w+{Sr-Ft6j`K2Lc5&BAf7i#=W2%6B=2Rv*wEZSKA>{fYUBZ0XJ zi!_s(F9OK|3o1r9wd+fDOeTC^Zw4y0wrRARC?7e@=Qtay%~bviU_J}m3yL$cUx zYj%X42gV956b`?1d(-cBVhAN1R-jvsw>+SC?7j6?_UL9A@H(G`RoNr7`p&hm18u>O z>-O6Otg3y8at5XF;!nWYilvDO;xh?Ig#>1T8A3-!5ufP0SgB6yTvWN(MIi(epFqqh zk(ZEScmrt(DLmK;(UvrcT#D;i zcof_TjG8!1oGrvcN}(-oGRZwjjvvf5 zvQs12gb+@u#ynWFYLA`p&SHAPf1FWNSzKjPwTP&K?yXB>CyGPl11V zHc>1(rCA@JEW^j=MFG(*87#emSd~ERC00q<)FxyQv@!#76GAKzGf0dk z$w5LSEY@rh>PV7~&R`sg)DMM0ntD*G>$G~jM3!>Ck+b8AY--VF#SwCv@GPH>f5IRl zUE#Q068wbKF#zWP|3tti+*l0@Y7BVJIjd|Swh`Sf3Si%Mbl^YUg^;$Q#tr3gqR(SM zxgm&X2JxQ)T#@uA9~dp(QdK4D(^gT!_5^kA_N(Tt{6}KP?hYVc2z*qlwY{4QV2>1n z9x1~J?GyjAQjE^UEdrlNDppx)kt%UT3QdFx)SUPnp-6@J93RpsMPDNx zkpPE?z;v`Y7$MBKwUFFZ$sfY#gFlR~Ue)K5G5RFy;Q-n^rZ9450@UYl;VeYY%c|+< zfA9McPQ8Qwayx>J^NPx=2l6T89+U`xg;c`Wux)M~mFM+_u>jo03H5vneF=9oixYZ| z5l+aI5Fx~^`6+CQB3-ilAjDV^Kgez4gXY7748jD3PN9S5a6yCv!drsKYz;1p3Ci(- zloSGAPZ5EzrVd>JUUUr{Ajtxvu7U7=@HAqpatI)uem{k@$}kqtHBANk@QG4L2G-4C z`6K!{%}E6Q0nWyx#F;gxHphZ%Uz2*UQ;;J-I*xVe==H{r9kz?ctIpE@08K6lsXRvYN$_&&)RWflD zikZs-akie04$2R6fP*lN0UJb}5)0(u$VUyMzM;)XWk9xF$0Dp4A$eBr(O3;=4rheS z*>Q5`C+}gWbA`e^LaFN?)WOj!A{Ot~JQr5r*)$=j8Q@0d=sMwjb$k_8?b=)&1xrdi zcsA`|!^Q8DVPA;QiUT8pMc9a~0%(+=I!>7)zI7st(uqryP8Onrc0QRxGL_D;a}-*( zM#0?J5VZ-l6aj)F3$D>%M?hrNd~S_^;f3%t7mO`5&D@^U=z*fK2{c*$%)T7i2Qwda4Tr$U3aZZ%#o?0EqfPU{?Ll|K z8VvSALJe*+o6n~y%@Ci4ZforBJ>ULYHU|MxYat)wR!9I)%YKB82Qa`20{;xQVHFUT z{pfC&=PdXd#Ry{_Jsn=N;C8@kw)=Oou6O)(fNOYUk`Iq4#I3 zdpBSO?gf1gE^YEAdB~0C>s@HTAQwRSQ>HUOc)*=^jA!&=ubHEG&QxHFa~5>DbUVw2 zbDb7WdCh>W=$3&Qc!(3>FoRJEj_HSMU%U%msjCzlNy%Y*nfVxr1vLeE(p)Aq(VGSR zrmnFGi=?T{3f}M}UOz5jUIb#Toe07p1Oqgr0%wH873!Iz(?Ac~#{BPoF|OglOvit= zhk-F3a$VRdq|9MJ+jA^l4qLrA+)}8Yhn-(id{W<`pCzFb8fQfs!OS)-nBqb2B28dC zV#EN(m;ELC7m(YrsU6x(gK}ZVv6aRzb1ysLd%s{g6ORe{gv)e%U#t<&myD@LI=-mT zEsb`28C#yFq#-~yt!ek-6eAfBaR`ylF2J~lgMMl2f_=0_K`Pso@^S&SvBU9i zL6iig985k`e7AV3l)6FF0hH0PWq~*Z4!>|@k>L|!U3mj?w6t649`Rg(DnzPe4;!s? zq>NSsPPrmYR;H#bRwU(2E`;tBu@iAb$j}jc%AHMGswgxjS3Uy*?%}wDQ{8jxAG;6u z%&?nEA(ZmKWJG~o047)f>0MTVVIFo*QIx{z$G}FtAZ-!|x6(Id{%6=WC8bXKg}~ai z{jg7n>iC3w*(JoW2f;|({PngV9VuIoulRvT9}oqQGsvW0aslc1iVKJ$-9LOsSb#VN zAS2En!)_n*v2S3kr1->)N?*W!j3YGifTF=XQ64h~G5CtZhx}8CfK}1rcUty5j7+Qu z<{zuTwEG5-v2CpBY(5u47k40K>Y?gxGiB*9!JP&*$CnK~3L&B?gzB|s7gi7mA9!4b z0^M$0Qi!~cdoo{D;_&m3(iJ3UsKj((8HnS+OMD)up#%3on#Rf4=&+J?urQ@jhw8xg zs0MX(X%2J`qB2edyw0UH24ESaURufwLrAp&F396yWDXmQ8hIGNZ69{xV6(!pFsYA@{QoZk<0;iyPw z4U|3PgDKs!^W>DNh9~v7qXNRq;$Xs01NxSZc0@{wbkY!T(ts=-R9SdxNbNNuBI%=n zh{&UobG3qaB zzvn5Ia=>WJ_aVstU)?XJ-6_WwY-xv$FAn)$@PwqPOTI3|{EiXNkvz4ae;+?w6Ddmt;MisJPsxV`50k`TrAv&>?<7i3P|%aJXoAmT}bB&WI-*sp4=nkp$kyT_G6UMgf5?+;rg=4#0vJwui0ZA$ltTG$Im~S$HW=a z*(!Av5Wzs!D(^R-96szXAq?p*ku&~CZ;7h!p|}J{Dc;WGtpaKvtYL{x7*55zu!A5) z#PZee#wF!^;5l@!6Ki4;p^ilC1Xea=|8lbw@I1g`wh`(U)v-KqA2K@_xrf7vB4Zp{ zSNI$#QppbOHO%&4YQQ@OYDPQiBY6yuZZ{Aphl0S_6lVOh^Nm;7VK;$s z_kjU-5v%zkE#;yB`vg>GQ!WVzT9GHU0J}<+ zHW92!^9|>wZ!??|aTxk!WR6E1zYW|#1B8O8W4M7@1;AK&g;(rz>^9JS1c3y8z_ok~ z%BwCtb<^b@zK!?eS;+hm{r2K_7?<)59CHoWFapx+bG$Y1Bp@bG;34aFAF^=3AceTX z1kPh`a^|N@)^H5v{nWL*=j3w3kNGHjmh(&~I4}nlo#tKC^VaXM#s%|*auHkcLzMI| zQI!H^DxU`nAKB3b!O5`QMgf}#M!O81eZKi|X|@sJzK}FvXn0cwCSVgd_6x(V3y#5p zbX_=Pxu8q$1r&J&4vB!z!ci?27#uKxLCewNxG11`Kv%PXX#xy>05l7T-~g5(Y?H4Du?1zA~qy=^d0LW6N2hKH=ZC~{~m@RD%QqvU&%ZWNvX>tII12>Q~7!%@<$sQq2 z8caUfBEX65QiUTKqs)E1_vSso9aJq0d$Gel2FK1i7Ga$)82x#j-8z@=Nd3k>JDOt z;X6HBe9o^>ze(ZcsQE~@Hz)h&2?QVQo8eW7pFPfX0_K!mJwfL_Ksy5tXrnxmsez~CAbN$gGw^0OIHWTGQ^z~| z7)I01>f81XJ1nw4PL~B`MNLWUjj*blR$)mR4@bf%TQ*9|b2eX*E(T45RlB$X4*_Vh zq@4hq190syWbi2TsM1LQ8sJ_59|3e0fPxA42Bnt(d<1mdNQEmDT!UDkq;0?`nLfhZ zUU(r(cW9{e5%;!8Tn8abI{+TIZ;aODqk4kzKCH=y$iYd9MvN6zpOYP6OT{XFq^Lea z%DkPCH~E<7-(zM2G7q`D>d57X#qx(V@~Wea zPYL6f9yT7x9G@Cr$n9m?iJ64_VU%DVvlT~IE`J#_U^S}=m&_$l+(D&Wjy}2QEq}28 zg+GmQBPd#)@*-Gc9t+K#M{Pn;{jhF6EodIn%$J>Hh1{0r9Z|}=O{tRy@!&OVUGZjL ze6&hl=4lX+ru6Xw6BhTKiK(TO@%Zsex_Hc0sf&kb5w%(byNLY+W+g6C5fAxd2Y5*T zO%=~K;8_^4@=6Z#qv+u0D#A6~+)L`<<#_ZTRRu2*z)?E*iE(-Gu{b(|d&ym!FZm0M zdBfvUB6trAXNLvakRM$F5AFRCB6vsqE{kK_5x`ep3dl)j9gcbtM%&Q4A6CCR_Z&hJ z>rox)`%#7OQvVLU`_Yu{@JhyVhnYVtZO4Ay+c~Uk|B{@&qXi-}If#xBu4_`b4oPQ9 zw66I^1nY7?@at(IK~vW}@ez|c^;d_!tW(!Cwe`5 zxgwS2iWHVRnsP;I%2}@>73GSgx%!UK8L5tZd{{d!ARCuDan}gh*Aa%#l}8T$9bFi% za@~))>GUs4JyE6;db;GX2&!pQ*tn@#xVMDe@Hqq!QvH4RsYh3T3!%F`*<2LNKT`AU zu?s8@3h@`Q_-)8-CaxQkHDw#%>Np?@0d@C?w%d_%JC#(a=tdZf-RQ|>9U(Q>l2GDI zQIwg#BCbZj4{^04t(LG{BL4qfS$$aIJgjX#Qq_D^IWvrNP!S)cW(LE-u@OoMm>vD{ zO3Q-jj1$;-LtbnN|6QvsK_@?m94^(9Ia=$CrhBM#$YFcz&TZ`Gv-!AE6fe9@NJPR# zR`!2aa>LsZrq}aoGa-vEnh+Qzik=Ou?D|M~5HoJiut+y8$<6zr0E$TfB(6fM&=W z*`nvhaiaI`v5w~2(OP$;wAL=Ewf-8ZH8vC3w#m_3BPo0(eYDUT zGU`^Sq~$F6zm-{gQwnQGUoDl@B6)RK^#9f?1}=Ar%|BPg;MV_9QT^KgYehAju`vFz z5XrO~bHG{5*@#PaI1iu(s0S%;O-aB>g>5o=aGvQT3x{;qSiHWfy9O4FWWrLvthoLg zdt=UD&t?DbMc40UzFVf~xq(~&EX&6R&>%MD>;3tWuHN=^p%%g_nT^SZobL#Q_BD<| zJ1831``%%F_5`3{eg8g+KHKA$-b-79H-AZ){Up1=$A(o11_JhB6@r%1AIP$l>|_8s z4v%j!4$BTgM^PQ9j_Bb3PIG{|ONvKc&{ zIO+lH=MD>Ew0K}dGa#TD_^Mt&Dh1HY?msC7U>=eZ)OMI7_l9)>DVYGS0VPVY0M;@7 zHTnS0C|v+(1derkN)>>lQ%V9p;w^ z6JcXP12O}YO9C+HP$zE^czJ=dfQD&OqTcx>cK@(9rA!#n8zJSQHp1*j!U(M5XvBWF zuwgtSGwcP1-?2ru!x;`%hZ+5fBt!U*Jd+%(LrLdXzK+PRrC9sEBgp$-;qE_yr7QKH zjNeBuPV&A4B1e9Iv|C9U9$xaC=jzV&=)W5Idsqj5>6KDHAO7pZuRr>k^1ghR(R_XR zH}XA3zYn8l*vd=K!xJS}|ADi>Q#uM+pYxSicD|0PFEdymdg3rqUk9^B{`)FT-|H>o zqe=RFgrqMdNnZfD7$NA3|3c6o$3Wr%q$d9z&qv7lx_I3X-}$-NbJ9bVHTntS;@3rI z=UQ-Qf4^N>yH;5%?l~W~o=)-9FO|F4U2HA;g-g6}t-j}^UzXSKR`K=&y7RE?hfZ{w zCi|vmj`U3*-T!?KXl!@}+qxAaAxtoP%$Z*Iea(t&TkKvB)48;|Cp4>OTh;07S5FA> zWqWQ$JrFzbU}$D z5nV(1_R5X4_awU_QW=RE^>&#t89jo0WCwiiFsvW}<5A8^)?i&FzClehE*5Fse3OW0b zmdTc~8QWQklDXtHen|(lDm?M9dd@~eNst})Q&6v=?~be`iN&O*lhH?eCP(m|a%(dh zf!%K=N|!-~QB3=(0xyJL*v{ITus87BWSE$zmiFoq{BCv+Rv1U=*t5kho(EP`2R&~e z5;je>E6yb>r5O&TClQ+=om7K$Q`J`uy~!{S)Hfhw`5Cc$ z;fO}&FG)S<#z$=!k^9-$-R)sTSUL&sADLA-lirg1@o*O-oXv?m(DxLlxn$;$Zmz*9 zaREJ_(ghlG9P!-cycgpwX`^;ZFQDdVFR5R-xPG?X&{IOjPNE2V6^t|B47QYo84W%% zCX!WkDyLkklbG{bs>E{o7_l1iXOK}x{}T9?seSyA4AvqeO4j6%FkhxL^WRidKL<3< zC)g=i*KxtxubPG zg&0QbtpJSfV!^p#ttx308)TOl>&WVOl=$@uTR`T+G`Vk{)A-6*OUtCv_WPvH#E1Pr z$u+)EXi|xBzLsr#Ps1Mq<$038J}~=8Se1{-Z;J&%EhU%$nNd=M6~|H_c>*T_w8%9ErjzlHtA@bHzQB}z_p?e5t zOR&on&mYxXW2%~FoIhP(3_)W$PT{2rn@QIWblK8}I%zZ^3tmWz zwbJAWW!-Q)<)T9XWC9)<@$c`@Q^CX&c< zLDt4T6va&~Au`VetEr8QS=?O4{RJh)uh6BCOrU^m_~VuF<_k!{aXFXNTk+ji%5VnA z>wOgJcSaDTFXF6~QnYCIw2f0eI1b}+HfqEixe!%*Sex_bZTRN1J)pIyKSPHAXC{>E#1nTgbzx68TayHfZ zuy~JPmDi`7$63|z1A<+_>BmGL`VPNuxZ+|i-!;xgz3U}3W_35yFac^wZNvy$)jii! zCyNiKC_K}Zo5TR~Oc!iAnRj_Y6|1^CY?nFKWlcc{_+zg;d}m{U3468U0vSeIAh*Oa ze5Or4<0O((a3@nQWM&h?#4RTJ*{GRpRYgfj7l&uxHF)#YDFn~p=08|ats}mli6JuK z3oD{14KnlBSO>23k4LZC(3sVD^VN*qrK>$E7gU5jFk@&2uJZE`EB5qH#b1K>wl8d1_XS0v-~2Qj)TX9oc&3rEjI69M z1sB_aa6@&#JeIO^!*hr!aSCS?>$e;>B{`9@#|3ATf;BU^GEM!7^V}>SW>FIb{bvVe zVfZei>@@cjQWnt%xiZN*WWR81z+8)09&-$~nJ!{umhJZ7w%BtFDP5Ei+Cj50$KsSd z#y^vkRg^I{gY^3ha~%c4v`plt&qeJ83tCn#DJP_x%@ow;i;>Ui`iPBLb-iY`Q#S6V zUJ|~<$}GeN>nJ16qaRnDv7l%0TQpnp#ZJj$ z^T_I_F)ww+hwM0Hmo`*-i5Jsp7R@d1>9c23C~`iD+q1}*9!^Y2&#P~}-yLkJORphyUU3@2<*HUg|i6sKYV+y^(toTg5s?Y8yPUk-*K7#`GEp%o}yxVTZ=fBCa zT7N=e<7TV0HS%bhc|6(NpKd2w&!GcqkCBvhUqD@m+pvcZCL>0ZtI=pe?euh74%aBO zKO*)J+1;%GdOQSv85@sXEx_`b-Q9l^)4nqXDdg;dj?URE6wl%F@KW(S5+^gQk>{b= zSpak8-wgaca|#KZoq4jgs(l~dU>uJbv<|`KMwf^#?r%NbmAi7ID=X}JTPO!akEczV zn(Y%IwOP%`{7hudxzVMp#%PbEr=6HF)@)LOMen(eBV$)iT`Ur_$NJcxe7lW$M?i|t zU_YHka}9)6$q1Zjy^+qgGF^kmGP4Ev}Y}k<7iD|S?FK)rFOYAnV zHSp&sulD1Kl{MJHUFH^Y=iBj(#9d+^0T)QL+K%-#o>4WAl$c+ghwn^uX1Xzxu0txE zv{5Uylbb?YyW8zSaHKczaly?+9{J|gtI2rKpKFYP*!i^p8=J*`CJKy-;~D+j#44p; zO=%l^>1gYKK-W&PCP0Tq1^V55=k0)hp2pymRmHTl$ElTt_eIpms2 zXhg}?1xGn7!jLL0{YMrRUoDPrJ8@agx{g0~7 zC$=TXFH>nlx@{+(9uu{by=mE@sx74a#^Ps$et-oPQ_iT0R5q&YrEu?xgltJ+XY2f- z49h-2&5L(D5~g&bj|Hz%L-ybDT>pmCysG_6n0|F~IQSz)yFXWXNC}S_OWH%qEchfn zsswXy`?o^si%gv<#P67StD+^)Uelgoe?o=D_IGovW^=l99J9)}|>Z68Xmj8`D^H$X>mI zw%T)m$)iO2d7fpYS@BeR!_BtGZl z$>Z~h&SjNIA7{Du`mo-tm_OTwhzX)nyEqYPj~K^C@glKxCHFE~?piK|t9G%6+w^=< zb5RM_U8zK#lh{;vYb(M@`&7hGZP;p~;Hu>7yJ7l|r#OV5gXy->ZRtBswG)o5en$my z58V#%3xCuMvQ}p%awp_+lcp2^BQTQYh-)u z&4~xx%K^Ie85upWwgw=70QqYn7g5O$-%yYP<%vCJD03lFkVz$B5{N{+U6!Gip zMnV6EYgrxOyrFlEC{Et{4CEHsUFePgn?qok$&yE;pRG*HYw0$uv3VzMIFYn9xw{d4 zAgb-ex{^SWdPR`->sIp_yhHD!R{=z7szh6lfw`P1xscSP004&%5cQ$XKt!tc`qtU5R1^#3e_2L?#NykmRR;s>PV6dDBs~=cW!h5sOPbT)D zAj7M!@zKS6c1777`+RQMdwD!!EI?sqD|r`DeI*`V<0-T^6cGQuuRdZl#<%(W3)uRl z4o`Lip>+#5-mvbI?Dcl>meQe;LdGs(t#4uV3Ld1z(;*WxH z-b~{o#+|C~Uqp{8>@LbP*1T(|U#P;bU5Fjn;XAc6J&?3XX=T+b1& zY3Uf_$Jp5`f)SgmlL-E;JV%JJq#}$`MGkWiF1&dDPn~F;9 zwo{vP({;GWH!( zJ|$X3frhu)nFt<=@F&g4?|GxJ zhShdiY~47DH6;?WgMq1kbg4cw&n~;hRWHGkg{3>N4oaB2rDs_{X)x)0LvfqF81cpK z*$5nlG?T3-WuIR}$em}J@A!#6;o>6^u+fcToUYEdL{0$EfqFmX8bR-5%l!>vm-Enu z6C$SD%X2H--eBY^bFSAMw1V2RhWaiBuy<8=V$g1R(-PU174JfuRfX4A3UbZTcj=|)9Zc7On5%YZM@Nau)sXUoiSmk z_uF3c71z~jSaAhi^tww_aZ^DL#JhF#F_$n8xYGH%x@o(^f%br_x;N4k4IDSau9#-v zNq^JCE?wQJ`etQNhHm~#UrR}1-y{8it{^Dduh&|>4KiFXKhcfc%1`uQ`R6&GKxwfg zUA;@w4u*`+GhDTq8Vr>`B|~#H;>49D*BRnEw|H4+=lXID9%jm0KJ{bW^u`4w5jHw2@0evRWiv{lZ&mdn*J2)^45Mq>P zP`O5r)S3r)I`9hLer}fW9P_7XdG^AjN3564w|d$eCfUZqy<_q_l5bmdN63obRfyr< zh@x13;=S-J#OV+7%qbO@4yd5&Df8MGAOv zn+Jeb$%@1niDt|0Lx+t+Vcz{;DikxLcco9Ky>kyGML^G_FNg%tk>NNXeG0EXoUq_2 zc%PA+MV1DJt87Lpo|do{P_f48^s8b-ohg7gxs2!|m+a`&o=T?>HX8_15Tk&SOZ%XQ zMwEu7DA6rf93&HMf2M<;emfNnr^4|hfNn>Om1vD@BfigvU>keD5kan#Gs`gdRN9L4 zN+##_p-8tD;o_5|jH7MRQ@;^^T|(CCRfi+p3)o&^Ncbid>pB>`(W23E8SVnS-Xvii zR2~-a~IxOc#1(uqiMZsPrR|7Qdz7^EZ3iQ5>}GuatJcD(Fm zqk__BsnrQe+p@UR)*w2uwfKnhKofoQX|@EgC(&L2 zk%*_i9IDDh%ZXL5JshjPAijy1)oI-c&~0EYu?zV~u$pckB~*QXI8?=rTpN~<6RV_=vH}Y*52;Hr~c<$m>pCWo?yb9UG2EI$?D#-P7}eFxkP_c z_NM`Uk!qVV864QsEKqh<12P5(r2~eBC=PVCZc(8=Z?%^u27MH5@7TOkqtn?BdWV%c zokI&Xf>;30KpYgJeGCg4#sCz=fa4^J|4-$yE&WR%z)Tt~;5ELjP_wpNmczQTX~9Y? zNkQ6X7h}2}zpiAyh$Z4Jr8;Y(&biX9Be4`>vA0s}$aVZ+G3 z4PvSOiHz=7qD4L3FRC%QL<;YE;$XHW4W!;%6;`fN0b|eV>{Xqerf-Ga$B>P=g_an< zpmk1Gn$80<7u`+jRaDT?y-Lw;0PGztnL}yqiW-f#+pp`}oCE;d=T0t6Z8g5#P;W#< zkp3BYmTL&o|DsHw72>i~kPf!RM8Q5$q7h^DphkDQBz-hM;+xujj!0b=h$Y!46|Ogk zbxyec9>VoM3mNaqaD9a`Dn5^JSuHF^T`Z_<#uH?aUgqk-y`sLNGI%RBmr+)ry^O~9 zMq+#`_Qz9-R^ZH2-E0_mx#*GkQsz>08j^xYQ>Jn)o`B62v9w*`4onTW*{f~@(|_aa zbvF%)V0^ZFJ61zT7y4Rj4OULeWHq&t#1kVyw!|(gXcnroF)(3Q6Q9MSh}LE*v`uI2 zgfdb*1vG}}qNWk?%u?EM2)e&t?9-MUg6@GsjzIT0A_d*&H^wzLko!-ik65aA+DO^o zn`xA9pdB7pZuJgNF!zOLJXi^LcRmT zXe>qCw}fU%jK_2EmB50z#(tJGTBTb~0?3ABGaKooo}!6}k6rF+z=V&yq3*!ah^dCA zGr#gjF*~}o z>Gys>s!g=ZmzPZBx~#-1m+vF8=B5+-6@VC5T_;q?3)S)cJ=G=!iN6V&teT%vc;JrlWy@o!?vX+b`+aAm&9Rl@QOZ&ntt}=2PSNc?IX904p`xuhdwfwbt0jk>3gbtWjxn&5pCAXTjDpue{A(QGJm8riZjGiyyK5ya7E^g zO0Du+`LLmkM-YF5(!{Rtnm2k?vl3$RG+7li^FZsavdnUQhk1@qwe6zz5dGXs7kE4s zMl-OSUVH8@ee9p!{IS$2__*LBt79XW|8ZMKC5k~@0)QvCOH^cC~9QU zUVi+RQhTV>K6xD;@0FdfbNoA@ac?WOF=TK~deWnj`j$?YayF@T=@kf*HwUln=`Nav z0s}JWOh3Di{XniLXt{*7;%ZH^NG;SwgR347#wL<-Id^B$EQFK~`GV$szQwF1!^xK) z_pu-NlnI&oUA|?~)cR&$?YLkrH*fQ~X2G2PHeaytC!rOn37np#-sV$hXQgfUF|#{| zrn}UqeXAsN-ZLo++!24bPn$sv*mbv*2l&4b_k*;l)1M70G%6AI6$a^<;CAc;*e-hq zVnO;e2vD3?X7LjcXya|yBlG2ndrMY)9x!fC*AIA+aKO4NjIn^ zbU$f$A0)b%%=WAz@X9T_foQd6wqzZA**st*&6^C(Jecv^ENs!AW#(_jTZ4YLd9hzT zps>G<4Z*+>i};_6ou-!V=I802>rI?nbDjH%1_^h(lTKHtu1|s8yUpLE^W0`!nO~#} zKdQvfr=uR6M$e`5GB+&%NrWL;j~-tZ)7{(cvWj&$@J(-W<*W?j!Hk0D*dJ(_H17Tb zg>z$jNE9?zEJBT(S}Aru~7s7nfdH)H~oc{f_Ae71ckd?RAh^4 z;&;0mp&D&(x5h@18{Cqf*Oy#E#%Uh(J*G=#y|&hJ;qE=~mNbmq3NnJZH{wdEW1fGz z+f#)QX3z()C^3|oDAKvV!?BM1(v5pXG)F#g@b}_Xzh|w^({U{I-QxEKf1b=2(p2$K z(0nm%p*U01Hf7LrK3Y|1?lBG?FxQ8mnm6cb)hu*}%>uVD-**XLDVf4360Kqu#;sx; z)b#?aDzFpFcAGE2gyJ4IWpNY6C+aUIOq3cC%y>RbcZPCGUkn=$hiC#b?{_C?ja$Fp`L0+%?|0X--d(G~DP=^1RDtgIyl zEOsE>WaBW6UU1J8fAo8vam%wA#o4^nIh#%4g9ooQUU91*spcz?4CatI7~YP%`Qi@Y z{z2G$)r~qn^S|m=SGe@`A+|H56uA8uiF1Q`HJMlD7|IgT-vD!B$2jx)qG{|+HwM*u zIb1i;7y}f-c~fIA75?z;!Ee=8ZhJTD=0)@$67-RF7GF;xoEiO#HJ$cNI+UO{JFK!K zwuliwpHvZ01{4y{x1IIODQu;PZc*Ad7IRpp;)o;Swq)8OTeam%i7a4P9*WHd)kq`W zPK`3Pj~_z>E>0hPoL7nz9A=PZSQRCO1rrj?`p(Xu(B3>G z4>m$@qZeW-KZ zvFuu8(@wd%WkV+WP*(N9N|xGhU;&INdjtOo3y_e*E7W)-7%&wf$0DZKhrs}pD^{;L z3}hM_`z@U8=93U6qI5Ov0qP(@0EQ%w!nWCH#9%7h?;VB=4k_41K?akF zYPnO#n!#lq>)b<_!Cj*YEKr+anrLVM=yfMX2$K&Fngv-nO=4oEv!vTn=La zMylo$rR7d?|I(Lo<;ysGn8j1MazLRM7+=Xy|5+w8m)^Qlg-=A!;yU%o+fb8F?adij!4sIY*gMR^hs&YtW?(Ju>>? zw!NH(He(N5#&v6Tm6*_(K+j&}lXJyU^2saMi87yr0F#16Dwka#!#vh z)50#qFN>CSCyFLfc-G3no=KEmf#%-F4wqn(6qp^<=~d+&Jnwk)3biY%WjwQz*WrQc zZ&IDiA;)Qfsb8qU)ip$wdZ6q!b-9C2UZbVi$1!?BkwM7oq6!Nn%t-2pb?LsTGzi%R zq#T_{%+b0LoT@4Gj*N@ssy~uCf&udY9y*jXj?=#;Y5eEmr14uSGN{kLnl$>~(U3Gg z?sDbUJnovTOlO`)UBfZVSSW7NS=XM?&a&ew8BsC=yZn%?CD(=ZTE^uz)HHT>V)0>o)4hGAkrLaw(6vd6k^rm ztUAne^wEfd=l+*9CpvXnBe<-rk zOaohr9twy`zP=S4y20+#tr%YW*Z?ps=%GtbbMnGc)(e0zVk~USL?QH2KRxL09d?R4 z&Ch=h)G* zRrdpK{~rV9cY}OhJLcGZ8T7rNQ-pmqDD#Zm=2FTGwwF>AJ&JNNTsKp0`zFeec%IoD zBLDZu0`J61dP0;<>}h5t_0W#8nC;X~D~yoPT}WrgtqX)`EsjmlKgVFtx&-uf_=`I- z=+{}%_V)Ne<@^!m_%lK6tsp``GgBr4e+bHmGAI*)pb;#;Bpfs*^0(d7kwI9@m}t;C zW=4##e=+&~ATuHDb2qhXW~Fg(HGhhklZ|rZMwUIFc)Hh|W*mGmIHycK6i#2Al?taH zLgi3~)2C*eZiPa{)&4pg(B8jt#P3wkOEQh{zO2)D#e6|OHn;J)?1LYg=Nr$^gR1LY zcUfEM=4^9^aWGI`R&k-BnCGFMoHR%?^lf2wvd28hs118hGJxus-G(c-YHK)LeucZ+ zAgkf@aWrpy&|Y1@Ud>B4>J9cXxn~-g-4n^o4UugOY%K&bcy5@@3HM^G+U@b)r}6{+ zWqG_bq1b zq$3RF^S_54hEcUNWCKXvpL{=L7bPzUBO=^q(6T(cyM0A~J{oTic9*8fmJ2N#B8_f? zo-SZ{yrZmhsJe@Q=m&3U4v#%=|h4 zK10( zPjlMLlw#Uz78k9mFLT;hl}#xsEdrS_QiiGKs*+Sg*Sm)7Ak5qtLBvSg8?shgC?li2{rFmq7xh zMLe%DF`3*ODZOMH)fF{NU3(dAO0I41?5`;LE>kL*xSHLPB8N&+?$s<>Xv{2}kZyd$ zl&e`?cs`uhi!MB|DJ4w0j0NorL>%cp+c7MyTDjq^(s;_}z9vGSh>LAl<{&=j@wqE)W|W{BNl_KD6brlZU67YdXR?gjonvgW0y(} zY|o)kshzOTFF{23JP=VN0*Jw4p!Y>fXJXg*2}Nfa6|a;wNZk&?sVgVa+)2T{*`+It z%80RI5#5%OEP(fDECg(tkI2+Ocsr~OF=~)pwOmRSor%_I#YIWuSB$5nnHP}T6vdN6 z<})m0Kf{!FSttzzjdz(@n;V++8+9^`Lykj#af2>Q-rT(2_=}9b$y!p{pBoIKaobSP zLypihc!x??=THEZX+4l=N!O|(dGXF?a+s%#Ka-=}Vz4b~R>v{p_`MT1ArX*N;4x{t zj4qsaq-MSG>Ij{uMv;YGMON!?BX>+S>PL8!`^UL{Z|e_~%;^L`$nqMIvG(+hfyg5x zmNe>*$7YbD(1P44pd~yz7Qc$;vdhP2+Bc825;@u85pvC;mi%sT8uBkx*e#yl;7uIn z^=9drky%0eIFvE2-4rrb2bbFtIbX?E0($K$OV6e=nW&*Nk}{u6CO#(a2ASfE@~tU} zS)vsyUX!ODDNWB?QLu7O&ZS1JURD#{j`2lawuQ98Tm+TY#wW#|BrJ<0o%|TEJMAXD zVppj>f90Z5d-+Pc#ujMKaT6DxDzh4Tx-JvCSt2Iqj@U)p{f)&}IGy5mNBFte z)>c4V(?ntsiPKc-%LkRRZw}`*#9#5zbNP_eEJ8YH3=nI`kD@2pjUsLjNXHjTv)Vq) z7nv;2j-8e-68RbNX$7=IQJ+xf8z{^_p;k^c8ZS|(-c4QQ;y!w?MMBpA4F-|pf0xl2 ze)a*VSfo6u#L(`qKQMTZX_0XvI8hxEG?HZu?pc1?1xJDQv|j0%;Z${_c9F{DeS7 zjBUv;oui98z(|{2>7K~~WgBfPF`w8;BtEUAOEBlEX_3M(KGqb_X0CpZsee|{#R{ny ziiF9IN!hW@9q~RcKF%y0vRzf|P7pPSr&TN=+Nqd}$q>89^?k;l^#_ulmD4YXxJE-v zsqrdX!8v=gTr8_vj~pEJu^(xL3FDtC&8cSXz9`20+g15}@mD?h8{#)+@P%%kLzwZ4 zuVei0oZn4ZiBGFmVD0Q1VAZH9^xKKPzMj5w31b9ydoB>q#|Bs>IN31Gnap!1S7N2Q z&&~UZKf~68+XMeIS9NojW3GCy%1@)PeSZO)>wX^g$XHlVD(gi+I>94;CXB}!`xc1{ zx%*5`;03-;>PtQ=*(KNu3Zem~bQ8VCSc8%`RC*iFw67$pR;W=|rtrK9yN~FHv1}t7 zN|<9PBQaw#tx(wH8YPGrFRlS&I@Xn*RCrpfj5KpV~7u84WocjsCbuiZ5wG1f<7S3&E&F-c~hd8k`aA}T(^O^cl6)Q zsaNa+$h*=nvUFD)t7QKe<;HPw;dkY-o&ZRg$9^@U~;xuEjLiaH&azIcFc7YoU?jH9nM~2Jx%UNcHQR^1+FUKkEhSj zi>c5qzS9LBd!oP8_EQYVR=1)CsCl3pcS~MYZ|ibwlo3m}Cpt`8GmZUlT7JTwC%kvK z!*=tuCWj~VqhJ(;-Hn-Wl1B>L)$>k<`w@3z1pu35#T0S3hK=oF+5X4r!1iwOChUJ$ zkGrnZqKGA6l$9;)w)jMWMd?Fsm6}?xWnNaWCo!G3@e0(&ulEL%uUWGJcg{Uqp)M6= z-Q-1zxr_-Fr+Y2sB&vyS7lHoE1WF`yfhr!!qzOFK8`K0Qd%j|hVH5nPl7)H-+X`wZ zK-ZS2$mrYYqU}266Z<~4lnaB*Ju8Y;WW9;p0vmlYF>eN)UPc2`mv>^AE_>Of+(UfB zOxncP!0gAUPk7wH%$eDmG2P{_U86==VZS$*T!Te6E(0!_5xbpiv_wQl9#2FIHu z&YRj;YOm-Se0mChM+-DeuH_b0cXS&+<#b@IWnU*|!x_c?tIfftWks~oMN8ADhysxx z8R8^QhEeDdwSu~J-&&9HmSk98N_@IU=w5nOD5ptv0Ja}bT@_%0+sSpQ2iWadzb6Y9Zxs{*0^Gc1+G_Fq+ZM1AI0>TRD{!>il47D1{-=)4r6k6hK&0*e`PiYNyy!kHC3up$<>*YGD z@H4lILeQ0K)C3ZGR6mA-6-CsD%0YX_fmm8{3l{4zmesfWknJIQ-6DH>*&PjxP+Ce5 zm6|-{q6geT`!p>I-^`N)KgUIr$bA}FD=SnQpGG(PX@Us$qaoP?G3BpFoji@$+2hS; z%r5VZJPQ(Ob2w|o?yxy2FgZ7SXFzL2L)r~gSO^B=!||bUv2NwT_tZ=Bl?Rq9yBDd^ zM%8Lkb}v*d{J%=sy-u~3D?65}E0$0G1<vHbNvhf+e90bFCBc`Qb_h>L&ORMGq8R05?}r%!v0l(_Zhe_8zkZ zwg|0KstEgE1p9#7FQx+w%bN6BPEJK`fZ%ZTjr84=IYecoB18-DXk~y-u836NUR8)_ zGG$e#9dAU2uCOin#o8^RYH(L}e}F?(L3xo-f|(-EZtWk&g@Z3qCaN#< z4|ILX$XS+&UZYR^_-eK+CLLnOIJ<+f%5eppK=l$_53t?Pu%Z40kfpu-7zQ0$o}D~~ zWQE>XNhSzRh_9iKytGTQBIHJ}i7KIy3vsZP+k4KT-4di5?(2IdX`fPWMU}l28Cn&m z&nQ^~D+vH^+lb;6=zWHwbGP(D9HG!}P~DY{@PLt{qJ=Croj0~%6WJK0y+Lp#Q!2c9 z5)iZJ$Ev1O#-f#W{#+SAA$bn4*>Wq);d?b_&pJc7DRSNVMgKFxiViJEPehs@@hC|5|3vLeWbJa#C zSJ&A2vPvLJ1916lwLvJG!T0KN{(~>%#C(!ygOmm9@y+5y9HyQ=(Bt`iC{)R2oF{|p z06^q2X0_caC{O7vwWarT{M*VV+esw4Ug7&aDF_6?w_^)205NUK-@4=Ec}kr$YAfdS zBoOn##8osXa}pfXMxIr(P^8yXvTap0Qz~M1{*qg{Qo!o4Q6{G{yKUfXu@xhr8;4}` z0{;96^EWQLq<%(5g1IhW*Hurhtcu$CvwOBoXL#3lXixu;JrBf~VRCK_CgZ558%I(|ST$|OipHjH!v5AXkk8e7r-%x)JfhexqUovK_b z*O`?5XeZTR71}{~k&0M!ik-iMu64XK@YP#3`dAD@s)4~rPEtbo{+K;bHt z?LEQv@p>Fu%&MVf%}B!W=}Xfowz#KdoeIL)rK?8@gb@lFHHx`Y)$6C&OXBBh>D70z zZ&XJss%i__R@tl+Uvl$$vN~_qk>OmZYAuRYQA2TjsjiM>89KI#K-2M@zNd>Tx#HsP z=~Pe~?Srx$I9|!4+q)c~~o}zW}LCG5RUkvr$(srcYGNEE{ohqB98_oLB__wwfu&^SW3~RZXiZ zbp9ZMJ_K;^Ek_ArwP3I4`XZ$+8k+;bJ_ zPq0m~+E`VEoj;%DclY1L=0FV6e;Z>51l`KO(Km#cranJX%gvYc_t&Ke1FErjma(6( zIL0b#VpFiLB;gXi05RR02J|Df#4qLSW4=43doBXjSah1G1Jqqq?%tHjv6Fq6S&7q0 zna0Z#t%cmbqrzS$J2@o!-qY)=5UsqZDsO4D&j{H&4f>~2Sk;^~ZcPH1i$=CcfFQ%8 ze=6#1n0AD8RGb~Vx!VLlFe~|ch5c4soJ>{PjDt93cNYKM9=i0q3<+xSpqRhjaTGW)p&!Y*Yg^$`I-xcGVkeD&;6>L1{grq zOqpd^Z9g=27e~5eyAl-C=iT5=>%IpiqNl-W;eq%8gU@xPcL!*;41cG&Ldi^RE2z@g zyKp1LKyj||YqwLNlyuwfL74aiSdDEzGJuMHm$}TUsW$$3zwheuB8Q{;+-2Z^(R~)rRzG+{0ncKvBe~%NB|ZK)a4a+$!7AR_@ng1L@>QD$&hfFa3gyuHlov#%P&2t@czktW zUdL~T`9=@Ef5*M*fwK5iV>ZTu-H1I6iPe&LCpO0}drePItFZ!z02svfVr&fH2@G`F zivYHi%}I1(bAv4SAc+NH6b#+sz|fB?6Ri5ri9HB>gr%EjD&__T$BPvp>cT~1Fr;evtps&+an8r2*2sD$@{gqJISPI$BQ%+H>ZbY zP1GR$qXsRyiz{!42QWhs?)4dy@tSI|PqqmLbNF?dZ9s_hXEP7<9^)+RunVPO$?w_v z05;Xm#7nMFLvc`fkNqHR!LU8z5U62)XTd@?^Ek@3>Ijl2+vwPaf&o#FL)VAYEnX_tCUkaO9AYu^BBYSmZqOz90vByj_Q4*16vB+{6kZ(NLz{@d z;H6C@eoB|%OQ&okKGUs%v$%S>EMo%f*=KGYVP-8SlwGm;^<#c?4sF%;Ac~g82uXmw zTkN)v1A#K1t8Ozar{4e;`6|uEC+J;5`NoP5U^qtnN|1tDF8APXkJHrbkT}7Q^CXFU zYslJg9fxXy>mi0J@EMwTgM;~Ahd8hQ8+<*SDPTG9?T|Q&XuA=LzZ(ST%4>aD#!dRI zgILR20fBV(^nMyPrt6?+yXtiQCu4`KsW)Jq_&hjC_zX<6I38HgQCJDnIr?rOvp?K0ZS0Yu3)c-6}zB_imr97Ys0pdwXJQ}U0rNz zUHyH}1oz#~TRuPjAYl?_?#w;qIp6jS?(y|^+e;)d@;;;IGOYgUO!Ymrp!y7@rqP)9 zq#)*~OAHKu=^#x03k3}^{sBXnlP>qm2)sW$M3z!yD}X-1&m!io#jA_ueMS;=;<@dY(<{knaq)X0n3+3 zEz+s*Fqw=0{RCD9|)x zj7RY8=x@ny5S?;480gVg^xsJ*%^j8J?w}yl)>=BDhh;97QP2s^KFGE`U6n^maasTo9 zQ~1HxPyfOcK6dm~Ei=pQT?u-9I`fS`MY-A_exJeq1Vj&T%4K<(ouBAb<5=52O1};2 z^h)*)%tH)anGATfM4k9+nq}PM6-PQ`7zq68N`ZG^wr>Y;u6dHuN+$RiYV$3_VJOiD z)&3V5nMT0H^2k_gD95;YoW>`sou1!m{U*oV`Pd`OMS)5Bn@(jB&$1TrVC`b=E4@*x z1Mu}1OR3`RI1Web@U6@Wzu~h|ujF~-vkN8wC;0mqnv}5?KZVTD=qW@AxY!s!P}POL zSqI#JvQUFY;$58nVeAIpj#IUPtz_WTj20-S24DA4dqzn|YBg>&Z;{%LRm2y&+27sj zICqPI4Sj(N`v`;Q!xS0Mg36Lthd@h@TCBv|PEZm8^rH@SSnURs1G zq(tY3q|Ic0<90z?g*cPZ#!S{O6t|nNCuNOmL@HeXw{^GqP)iPW_q5Y0Bb_;SqhRZT zY=c!6i66%JYLB{uisPNdZn_~zx8&2aR?hl2GI$-)ELL4@WP}$Zo~PRQ!0_3}W9_fa z2-iWpwl%W5Sc0PZ<((NuAC&YeDlTl+LfDxzw|%|){hA06a=xvYu4mL=h}!5qPQ}E3%3nJwi!?6Euwq(xMjtd4TYc=fEM1%+x@ETt2!iex8#59(SVvw8LN6R z7&=#v4O0X8dz($=yF3b8ltcW*0&ybo*`j7O>O!R~V*Es;>->CZ#)y6_;1x>Pj=g8I z?{aA=xlU(u-Or|hmLi7tbHXJWXh5mcdf+NLq| zyir$fmoc^oa=R{jFFP54#zqBo_HycNTmgcX6%Z5_HquL>yxQHxzL9*tM8N2mVrc~?>?euX+(AYrBUxIt~Ab*e{JA&x<`Chp?+urte+80Hrkh|;%x%h5Jx2uKf1sg_A~Vd zssT8DS@uCGb+Y1IlI0k{@}UHv6<`GMa;O~?mjjx(svJ7L45&M`6C0EnihPiqOSyQQyMJ|> zkMl|SCgNV6K%3gzs{HNGX2@!MmsyKScUZju*PLzzXCLpP^R*gO1LtV;g^PV&#>-r| zgWlv$#B-wn8?g6idJW|Cm3iz`k8zbwRvtt*G}T@;0GPka=1y&~V7b*+$DeS1>#}1v zRe2Mq>7mZVMp)T2_B%rT#k_7R(h!`{jKy#El@7j}l&&0hSY8cwou6~8{;j1g2ro&# z=LDqbcCaxHdS8!7ox0JpHe7?c*hk8(FjhXH8*NTDCZ7r_Ym;`{u_Y{O)3S19OP+Y0 zd*@zK6-rK>1q~Aq4@F<7o(rijm>e+=a{VqSCz##|A75r8*CG=8#?v*~VO2gBV9yq;lFn*4r~|XWSu`%J zpp~K-V8{ILNi1};eM+EeKI88wxk=c9ipuzH75sKaulU%Pc}0VLOO#@xe_e)^(lV{+ z9AyHITR#9*XuoG1^|P(1L}Jtcd#b|UQ?PQvWHE3_i)rF=462!nl<3}lwCZ$EL1H3JXnePdiR zL|y%}JWw+}$=GaKfvu_97^jOXb+JoVPGjR^(Yp($|8U|geD{6w-OCbKdK`BigVB|4};+dN1dculdxtF2I$ueRi2ZI z=_5ujPz{6&_p*>3sWYVq+fM3;x>%G}<$qIaWJ*Oc{j77Lux-RoH6O)uAU+Lm7|~@9 zZ~*+zJL=IbuuqJ&%kS2$imptWsM0yauTyf$Z`YeEjG^cu2Ax_ZW=y1G9Bg7S9}>ta zTLQM^c^@?@>M0I&C2PS9kDlUak@1L&p=KmD;IrCa^wGu%BVa)!#SvRs>>K)81pzOm zrXKbb&ldSR zKeX7FK5{X!knsy0u<=HQ{k3!pd3%I|Ae<;Cexg5uqc;TR&p_J~W>`Y7KSWj93x~d@ z-mQA=zY6+9u_k<=j0*kXp^$8{bMz*Z|k(bbH_R*@{Pt(;KtxQ|XPV|Nkz2B!ng zD|o(r6u0Na@2uiq`W;D5NLF}+^Cg^)K)%PiFS+@+<)9LByy;*y6snlIwoE&Rnv&5D zCq5QeIgHCzY*CRitK?A0o1IVfQ1s{XQlsZ0(heQt-XiZ>xU=&NpVbgz*@M^l)L;B` z1SQgGg2uf*=%m4*)|E}7C4iNdM3Jv>aW=JNsZa$Vx#>F2ZsqFL3IcU!;Q(d~I{A}~ z-Vszyq4wy_#@ck^rQOH!oKqeA5NFL$EV^MzacxDGP$n~)iM31clS=)_Tgyy-;rAOm znUbIx^$m7;u@n2w5-f)G4aH8Y;(D^n?E|bH#n_vAsI2l*=NdRapw7KO6S`i5h~CR` zMW)(>4f6VoNn?B+x{0nz=JnP7vb_NZrgr&^BsxXj;lacyE%A1q>Gax5^FkdF*CG7T zV)m6YV0@iP%~|{`AP|045-wkr(n^)x?LZ`Ue2$^r1fe4O^E{)9UmROOE)66wu8o@= zUVB6V43*5v5+(WU3#Ss&A-B+OMgA3l*@Ru1?;Wa|LZ9UGb9q_9*iLqn@lXN1H>SA? zIMLHUp|H|{!5s8BH<>im%U>bog$lOIz(luyty7ok%yNWq{!}runXb)3^Rj`Xo$4$H z`yH==Ozi3L@Yna_mxmyW+M@9z)VlR{I8d<^X@TMDv&J*iku^M-8Q+nz!~nV^l^uV{ ztSyhmke!8)?K^<~kn*vre3xTaROVS&3%t=!^xBS|#0}-#Q)mrcYz^SR4&h4j1&zK@ z#Up}!PPM4u+;!q;&1!s8g@WI;gXnGK^;9geW&X?h3>`36dHjV8`e6#4mtiL><|z=R zbl#aQesS?bMI6ty)S z+%lZ)TW}lA1QA%4Pi+fjTKHaVWJOJNO`TnXJnMcC8#UFFkF8RnBj@0wE%Rt12(YaQ zE2zG9;;~!E+y)Q*I+|oPJSV^UcrIE&Tw86rxVs*!%8l4b+(`4{k3(9#$~gc&7Oeg7 z>yD6J{*7BX!dukR`)CeLBQXW~=Z|ygwJ}hy48eQh7Ic%sCOYWPER2$0Ywb-W)+8Sa zuEY-7*;&S?cw6uD0EN-8zjte^YNsF)bJAg&QJ$yn(>+0Mw2>p9U)_KVJp8Dx!OQE+ z9@59x)~qH|QMrG?@r;L67V!sCPg!)hO3zN;1Zk6OqTXAt*8=oBP2DP`V6wkm@_tn> z4qMg38RB|_{;a^#W6ljb`13Ar@{p!XBg2hd!fv!HoctCILoGg4v!b_6s{uK1RmeMa zxkKc6*}X0fN&Cm@xTx`>!)m;3{Eq$}jOuhFuZ<1Xz}ylV=fbeGs&@sI0XKW3z7}g) zAS0YKqCT3N%^q}!z8U;#u1(P#vsCsXBFugKeh1;3J3$O0SG?MZ-F#tV7Uhc;aEqxA zAU(qIvGZz3RW)C7liO-Pwy70N_fY&~xv1y`2;sqLs=vr*XKDNr#u{X_`C)J?R{sln zlD=H!8wZ`G2m3BZv0!LCPj(=7RwNMnDUgYcc55bG2+fI+o*_Ou;Fnh0gBTSo zpNKk^xjJe2Vw$8h68-ZD$sv*i!%8BJG%n4hY*?q?b6|qhl2v@FwvfMDXA?69eho6RC+g*zp26LBp9$ zoJHqh{Z8jWN6B#@@87ZNxRm)Y6tqEjkhK3Jn+0#B%f<(8QK&Vt5643K=6~V;tY@hf zb=Qe3+(X~7EZ-AMCPw_ge5LOz6KIF@P$EGJ`2U$qf_9M6zQou?j3P{mS%&Fod=#;P zd2B>3=TawdHv3XRYZ82(qeOA#sQjdvAyx^F0UQS-H?nQ`Fu_OTdGBP8N*RdE5teAl z9NL<8WWzAhS%zB!8}yRV_P$cgD&hTua~k5+E~&H`x{RQ~h;-XT3;0WYvfUiey?6>@ z>37+dltdf*B5P{+R;fu^hdWq)6n_ajFQ}UKSSo}l>*F{)Vs7YK@8Zq4>dtoR2hfD! zo*IS#jFc;w@+%Jv56T8ANR9o^JfL*ksnN;~=)ir_YcPtIvIXfpSt-cKAm@$zA9!pu z;}+BG6p|&5BLcZ4|060&1o4i zk`=yOr8-s%|3#Zn4rjYDqhwb^*m%)%guYcV%94=QVjYy?(BBZp3`(c|{DX^JkTD7l z41I}utrm0PR1N0)Y#KB^mndZdE+qi?I0aU_SdydQITU7~m04-^_o zY(N=3UJJDk!<$&g0Pfw2?xPAXQx6!C(V`#x-+$y5$g;DVMxvPMU8$;`qcpma(IHR< z6XPm7j)4GHdZnTwmAIRMP;VdXMKap=im{wVe#4d~Qv+7R3-zz9YC|?-!^wIy^vT5gX=c|l?;L-!rQ`j}%iXONu# zLczL);7>3-52MAnlyZ9uttw0VO^;GrSI7hWWOc$+W6mE{N>a#J_MGO7skU9dnQ7CQ zRdF$+JB2rX6&~tqSLiNwO?u-`W9w^`MQQ)abRFx0JcE5FX2P*u-AT#~n9Z~{ov=3$ zt)d9tB6jc@6snswiL#QvGP<51l^7hz(zoK?NRq#!$K&K5Ye2m2X9uV++Sd+!Q?%TM zLbSHwNxmqZ!~>HQ{=FVPl3pK&Y_>a#PA=<4%@`T%Y+zH6DO^bGZ%%K20k!nvqnu8T zPnpDdYnM}fN2ITi29Wn$))S2YSNKKO)}U3v3B=%mxR2U8%I)=)4IEc))h&Rrl(7uj zgx_9|HEYcb$Vj!Lr5$_NhtWZ58}q#G*-BG6_Vcd#h|%$bQI87nI|Fku^)TNL6b&n3x@Tx4eulD03d8z$OEtY^JnCGA zUrO3DiPZ=;)kQ(Qq<^r^Y4wGil#&TtgR#31E^PP)3f1vli4!zQ!Y8#h{=LhxpC;us zqN5bnt_9~0YjJyaBwJyRxktcM%AoJgJ3JK$`$*>4;Zj~^j{SgQ&T@If&#}g6XLyTZ zmT8CRe`h*;?f0ry#p{CRaMRS}naO<(bc|RJ;7^IHaMv4$#yT8`*aEF!sblTPMV#JL zJ8?|IK|DzOGX~yamg?zL0puu7F8&IuDP}PCos>*qs%fmBSTohoG;m#BXx+A@A{Y)p z+seyf=?l<=jszND(H!ENNu2^$9ey@R$M&4$EoG2oy)U8CN3dpN3k9%`qTp-?+WVRp zp!vy%u92CeZk662T@R;2KGRWiwsGX=RMs0UaM8_%_@gs1DyN)cp{vyt3tXZ&o=mT$ z@Py_@ionrqQZVa5CX^LS|Je-I|7-@((*ge7X`XtP5APeZ>uQS#j4K`CUwV^JT;a3V+Xc zUOiI_PAJB^cub&0OQuHqGL)mm>9P=owkSF$%V$qyp``J-qaRg}6ed1o6-QEeK4pt? z$|%QcM=}|Gp9PVG2VZRkMy6fl8fll1E@aL*0c4%68f{1R1IzeZmNnrn2-6sLc-xrpZkB(3GqF`9 zyIswfkG!ANB833i#M?*(61bCzGVWZ0j&4}B#z1?g6m$Juyxn)TK-pDVDYx2QLtiad z$@*$oDOcyv_3jZV9gqS22Qt|tmlW-v1E(v>j`Aj9(F20c(b!iaf?P`oJ-fZM#sO+3 zYJ8McSJfW**zb#%LE@cT2T^kZjvScx=vSe&W#L#Cf5Jg60UF7sx0tg!Yt>xbGJ9x- zuPCvm$0POryN**XpR9G7dpu05J|J989LPJ6X3@?7va*mF8cT)UggBbDtHQuJLu$;B4B9XNp> zPMSE*g)ag^E_}&`ocSyYmW@8Z4kz;`$X3@2^L`=BO=41x`%Pgc1UJvj_K*KDFChZT ze)1%R@}UwKf3+gE@T=|eKVQ6O{GTs=Xp30YETPJY*>|T!(~!Ag@B4?KU)2T_348N) zNa;5~5Uf{|GwEu#=AnMpm)z$Y~9wTz%xD+5Ka zw`uU{5@}iPEnXH=ilTO|=6D~lhkd$BoI{z>$3RHFrJxx{23<~8IPa|i%RqFtbSwd316$qY5KTw`zN<;*WTz-Ps*X?Xyk{g3<+-XFFlA(h}adT z!-;mBi&uHPb9XY@;?=HU+kS&i>t9pt68lu2ct-FM8#05zw*vem&!Tkde>c?)CVP?| z%0L4*4>`iw>U2rtE`SUxoACu?*PU=bGp|H#S0?}ItzSSBOYFsWDEvk~BEy97sdQhO z%m1FCZZK(tP`A2rs1;|P{=`zYsJ5}LqH?TgtpwXpJ}F;pW_HD~(};ReRymZQqHa*w z6oo!@*+yHdFeCe1sS|K+Fk$5Jv`8;>nW3I-vXg~c zM2Zp$#Zu3O0jEo&>WMbHiRgBrfII>HE)`~%hy#Sd(PBeskE4rJfLw>8Oi1Gk3*fxE z+s-rkh{mb(a$uH}asQGpL!qyyKvfLUzG+DF2Pd#VkQ7lP6cjJ0i}7G@Y*8R5d9=n( zF9LATm**RTb?8yb4nM4ygze|NNVoBvf>P|CFp@$=Fs+E~_CtbF(qA>nWkq4Qy@*-W zH!iFByEmgT`}+n0Thps+_Pc6aJ?${M(7R{c8_=e+2>Vit_xd7hmr}V6zCa$Kq zW1HEHafV%TBJ0GVU}H11yRu}SESM(POEi9CT`jr!y+W_0U_HJSmy2K(qlT=KKWggJ z6hf>T<5M8jgs0zm znDZ4E>!GZTNh&^}I>uIZVlQf6hhdQVF#T_ zY@E6iv7S{pI`oy>r79fK7! zT5H-4E<80n2< z%cbN0yycQVc)DuvVwaHdDPwbVn&8L{P*MoIS*|>~F`QJ%y-uXCyrI3@S~g zp0AoQPcJ8aC&fX)kkeY3@LwgS!T zb6mV5)a3|5b_5fxC|Pag;(ox*eITZy(s|4cOPbv>8(am`*u@l*1KM_qc0H z?4|BnSYwd&I-!V~H2!gccCUA7Iu|addQ5qVhgOkTPTKA&mRlz7sbW8Q&1ZpJd}|lk z6@J}3BcP9;AAP$jmmR7*SLo`4TrXvGFU`T8*uUKeMv>Z?*foLOkjFaF%R_oRR!pZ_ zkbOIS{>S%Llb((LUs9~2IV8rRWF`$U%_{3b#;vqzBMNcVWzf`~+yBO!8VdJ)Xj_MNj zBPbMx&Me^1jPZB2Y5eITHKV?!3xa45+fu-%l6Yne{a8I2nC+Qf^+=Sa1tXR?DO z*INxGRV98`rrqXTRc@bHX`eW){uN+#vDmcQMwlw2y{~ZFt`HWakZJRKfW8wOW3dzL z3cIw_J`s3V2gKyLw6=P*-Ph4Vwx5B)Bt)kcTRqQI52gJ?i2+1c;qiA&*2baovZLjH zuCaQ~;#6b_g-Y#`J!lnZy6N|7$Zr3+2vh^CuSYO?N|;?}*9sln>$nBApfoVSXph-y ztc!F+-UzfNrH}3{7LM8vc+l$RE1}l;0c~AsF1A4~*pNXN*Mw3%bI2FoObEhquQTZo zm7{YC6kaKlen-k3#Da>s)|5oVFoolt*K%xyY7;CvkblR@Eh~N^?Ba<-iuk3F_Koo- z-XD*Fr+>})%ceKEZX#PxH2`_frW(M(JfATKuH@_x|8ydB3|RuA3y!3eic?ha#P!=a|X#!Q{mQpqf)J zmxb+F{YCw=<3O$w@mp;WUj=}scF7h?Go{0V5{CYtYUWAi}8Qj4T`AoDU{gA_-&^6=An#sSzi0qV%zAVU@ex;SBdYN!le`|7kSDvrNsYRn9ikSvMb@H!x<~a z2|TwJ^1&8*zqS!;R8>`#J$rq$W3Y81`_{j;vC9X<>kFR9G%bxhD(hqF}SMt(_5c{9=k36sVrf%$W`&Sk~lVqK>qe8d&{= z@q@8Mk;u4etQsC`)>4)dN`LXz7wP5&l*2t^i@K}Fpb1)93iWkE^HigJPTck-U&&>K zqNpnoY}9|wgSKhZ0Pww+J`=&lqDIZtt%|>>t42L33q=iv{Jm2EiqNY7iPZCE9<-$_ zshAuL9-}#1m(7E>Yl#!Q-1x8iw=It>dSXMvvNpB#e<9^2{(nii3)DLL%KM+K>JddM zdpQE8$B2@|STbr)1sFJ${#hU!z@#H(e{}tuv`fZp;8hTI)j5F0sR zN{t@*%~#k0P&Aj-gBg2^4g~(4 zV=(zG+ZAbtB^WmjaKUnTnz5bXqsK+yCP>wOl_VLuDKwaL3doWqOMD5)M`Y4;M5c(X zQaXiWN;Lj58<8}fv`ZY%uLU&;R9d<#j^mF=QXQyAnxp(2h{Gj_eSyYH?1I%AEkiNr zQ}#IQM$^Stgi$^U;o%-&D9+(~aX|-xKI2mO5N4ru6&-Ms3*tzescaTnSk-SJbBlm1=_8@^!>BM_G)-DrJ0N_e z`@9oKyrj|yXUjyh?3=Mkp^e(j$dZx!GI;548J($!e2wjgB>sE03aU8F*Pl7s5JyCR znjA^SE>)HbiXsUFR+!wS@jrWnNFXMR-WJJmWI zAHU#^o$%Biql*(cTdiZPf)?wI9wYeuobJ;cuZW^}=b`#$88ZM|VV6sx!^ldMXx|c+ z&2;=5s1=-7+ie2WE~AfX&}CMo_XJ%d)Fk@35*DHhpc15$Bc1EOf=9X^N0S1@XRjnD z&bN~sY^N5H$IWQ+ABI~RdJKmLAE69jjrOIOUb_f3ot>=^$spA;K zN;+*XvoVfUt8uMEIT=Y@J0Ts7wJ12ti+X~{aiIZaNhN8`vNAYIs+J$uw_rHP{=~^` zl+`&!Z3mK9V$V8@c`hJ!KGk9KRn&e7kHEUJfz$x0IjUW5Urb-A)w3{LBxjtI%x?*T zIEL&>l~wRs%+C#sd1&py5R}Q}UZhettr`tG05ymtBp@vxaOd$%1C>9A)QgGVLKmm| z5MwAz{ec>Au_dHEKvsM=1uMY6@&`!6*{>Lc_D+^Dv{aafUE4ykx*rCQv%WzO9=#zfK)0(LS4)u%LB*+Zl`$j;~dAf>S+>u{NC!xL%TS5ZGLC zmV#e;pTX|enBwL?3aQk`r=_SMuPTi175*Jy{Bj3rg{T=(mObg@>pW7@(;2uu++jupri_+La9C%YNH!tJ`8%uC_F%&aic7st#*r-`~ur!V{L`%KDo(rrw5 zq0}Z?&8%3jPLHU8&K!;ts~$J>SDAK|ZXp%)TI_n*$iW{bPcg#D#yNs9LBkr|!?>x9 z{3buz?E=T?jgBQ=;->MW`z=~6mS6`N=-lRnXN4~la5gndmSZ`BR%3UG9hJyvOWVGZ z#|rmSZXQqSg);fA7gbd62^QtzSTXA5UF6p9kY--V{B9unfbW*o1t_~DbT$=S~6Qtk(d};Uub*9v7{=&V{KXK6lM?`1mO3UiIP1J&)xz=PA z)Y=Y=t@{J)(*5>Z3Kkz^opV>KRLu14FNz|FqvK~U4@Q@w3#A7#>^%9*48f=5QV-DgE}GHPH;qQ9vvC_e_e{d$Aq zOMYk&dIJB-0j}TR^7eQK6Qr9Hgdg;#XxWLT*hKV~E3e0r3g3Y|JavP@-zV--Q0zPV_CO1<%ZWy=>#Gov}Ss&HL43y|n z2odj03+guT09sC=s}gg9PPt zVRpjQeuYE*D*%#ihwCGU+3lE|Z+@Vg5eFnD5r?ngDd)1>92Rl(jA|{;#Rg%r*5tDsMB?hn!YryNikyM0H;8;ZLEvTn>@~Yl!V<>K22B6)Uzc(;ICht=j1~<|*1_ zqOUU09z6Mi!HTj7@`!oFPcg~uXh?v{RFm@hy^Ejz={&LVz2Q9qvm zqt;ZkSyQM-#n91bD-$rbUlQ~e#aI1+fN`K+&|i=i4c&yzftalc0$UHj5qtU(=uLkwx)@& zLm<5&Bs+gea>K^c{FXNJxNapw*tI~6f(XK`Oo6iR>awW@FvM4GKs5Fmvqe@uEg3Rc zAKNDAxI^$_vHMtYvS-lG&qPpN2nJ3(Hf^OgOP zvuD%s5~!^t>xEa%0vfxhp`M5 z=;Ci&ZB#%z@k0W_7Qd<7f6O3YMsqV#>4dSQ;dJ;b|Cxc5WwHsKy}@0nFZ<;*O2P(;d##Uvw{-}RA1Q*MuDn6rSV(c zIPv0u7qR^+o19B;TjC#9FNjTkh2SGVAy@e6JDKI zj)MJ@fYsls(F>}&KaWqzqd6W{kxloz>22=LkbC32e-K0rGYWi_Egt1KCNjLdS<{Xc z3{~V$LR_5dP0eTFFD5U=8c82*_)mg9JJ!&^0h07&m}u)AW{g@%r|HR`|1!Xi|V|LYQqFqoE4@d0gEV@aZ1q26#8GTIfQugNt zhKrf9kU@gt{8rnHlX0(%2$<)lt4**>T?P56vKf<= zutD|ZoO)u=YI{UxOtBW>i0aq$MgSG`0I(_d>g-GFTJ)U)`XmKzX9vVeg9e@K5iVna zZw&}^)(tUUpim;m8f?jDurJk1P`%}vTx_#;D1_2iE6izzV=NWPE5dVn$Rn1(el<97 zQV;@S<#S&r~pLQYGn}Dt@?RlwjgJi%@joc+K1=1WmI#Z*9rOanu5_Vkdh~S4QB?A4C$_;4}dE zgQ@Q=n(tpKWu2AdL&(qLr!z6OK-o;*O z&Ev9~U7vGtl+ce-%~u_h^-SAbCU|h-GU3bF@}k4ra_<=JwUVtk_d(>{-5q_gfL`?i z{TK(cJQlOvW7yA(zoh0wPheUf4lEg=PJ3gpS!T+;ImT<>69zu8Ck*P?K0HYELG^f< zHnyk4wv+ClH~C(`j&%0>sa-=6UjttI(crZJbfB)1>F7rWTN`DH%oM*2f0?Z5XA|34 zs9vS58rAtd4wXR`JzqpEF7#wC?u{bFrWg@YT3vh8Ml>rVr9(%TT#Rngy)i@z*(cd* z3|@~fGHJP}9UO?ybYSF&_7W8%+`t(nD!{jx+1}K(W0XBXS!5-8yGs{!fHO&ru@&8e z%*2~AfpE)U^u8Tv)i7{76Avo{DbknzypD2{EysdctR9+Ywd0e%#h{OY^nV95U$4hT zP|PscknPu`BF@_~4$o2}Hh-G=!mXzIik2O2Rjl~h(p@r+UUnxR?C-tbQ45p=O!*Op z`3DmtOi+P36WHpKpA4!suM7X?#u#1`;#*w%fALLeKwbRK<_&k5JYzy&R!T9dzQdM?^m|foB zTGFwiL}^nu`_qAgz0ubz%;l;tlP#v~jOo;h(bYpuf9%c9nsLO!nTM}jx_I{Nl}l$Y zp1)+}yalsnFDJq-i64tOOP1n$g_t7lJ6E7*xw9bf1g9yN^LYNO?L1KyeT+x*+0*|N z@qG6AJ`u_1JGO{{{HTjRdzXlUfyMtmC&t9hXX!)ff5}J074M35s9{I{h_kkf!Suh> z{W0LwZ|kYt3gemq^$#)5U%Ayl@ih9Uh~NK<7_bihE5vVkNc8{qGveo8D-ypwr^2_q zE8@9$N%>Ow?Ay;oUnuwB)3f&;61}+xpFWfQaj%Gldv3{j#@qes2VI(*9k16ou|B2W28 zF_`t={)cihyx;NxL3;A`~L6eQZ|1jmi>?Cdhpr* zXrO;?`j4eOflgrZ#wzC|n0D89I=bqP{?T^caqza{MYQd&=RwNqra@G54|j+xud`0 zR_{4qbcXOVJgBKV&J-OX$iFv4rTe-cLDSz9kBWUP<+)DkCKmYb&27l$d S#UI4K#3jnJ+UPqHo&OILemB(D@KSH7hDRQ?VJv^U&) zAJX&Qt-ia5`{%*==#_r;@4?6ZDK_bhVx+hxS)Wsy&iXcZ>}}ZJfHJiKSxHmt#brW% z@EO|_N1DrvgtNCcZqpYsbKCuaPy0FXI54QSFj}*c1)D!fqySY4C}l G#TEdxS{qXU diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/helptoc.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/helptoc.html deleted file mode 100644 index 2e1b12f..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/helptoc.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - Table of Contents - - - - -  GUI Layout

- -  
 Getting Started
-      1. What is GUI Layout Toolbox?
-      2. Compatibility considerations
-      3. Release notes
-      4. Installation
-      5. Support
-      6. Acknowledgements
-
- -   Examples
-
- -   User guide
-      1. Understanding layouts
-      2. Positioning axes
-      3. Controlling visibility
-      4. Advanced maneuvers with panels
-      5. Using layouts inside GUIDE GUIs
-      6. Deploying GUIs using the MATLAB Compiler
-      7. A complete example
-
- -   Function reference
-
-   Index - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/helptoc.xml b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/helptoc.xml deleted file mode 100644 index 1d3398e..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/helptoc.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - GUI Layout - Getting Started1. What is GUI Layout Toolbox?2. Compatibility considerations3. Release notes4. Installation5. Support6. Acknowledgements - Examples - User guide1. Understanding layouts1.1. Layout basics1.2. Types of layout1.3. Sizes and units1.4. Layout hierarchies1.5. Why use layouts?2. Positioning axes2.1. Position vs OuterPosition2.2. Axes inside layouts2.3. Colorbars and legends3. Controlling visibility3.1. Visible example4. Advanced maneuvers with panels4.1. Context help4.2. Minimize and maximize4.3. Dock and undock5. Using layouts inside GUIDE GUIs6. Deploying GUIs using the MATLAB Compiler7. A complete example7.1. Application structure7.2. createInterface7.3. updateInterface7.4. onListSelection7.5. Running it7.6. Scalability - Function reference1. Panels1.1. uix.Panel1.2. uix.CardPanel1.3. uix.BoxPanel1.4. uix.TabPanel1.5. uix.ScrollingPanel2. Boxes2.1. uix.HBox2.2. uix.VBox2.3. uix.HBoxFlex2.4. uix.VBoxFlex2.5. uix.HButtonBox2.6. uix.VButtonBox3. Grids3.1. uix.Grid3.2. uix.GridFlex4. Other functions4.1. uix.Empty4.2. uix.tracking4.3. layoutRoot - Index - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/index.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/index.html deleted file mode 100644 index 8cd9683..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/index.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - GUI Layout Toolbox documentation - - - - - - - -
- GUI Layout Toolbox Documentation -
-
-

GUI Layout Toolbox documentation

- Version: 2.3.1 -

- GUI Layout Toolbox is a layout manager for creating MATLAB graphical user - interfaces that resize gracefully. The classes supplied can be used in - combination to produce virtually any user interface layout. -

- -
    -
  • Arrange MATLAB user interface components horizontally, vertically or in grids
  • -
  • Mix fixed- and variable-size components
  • -
  • Resize components interactively by dragging dividers
  • -
  • Show and hide components using tabs and panels
  • -
  • Show part of a large component in a scrollable panel
  • -
- -

- This toolbox was developed by - David Sampson and - Ben Tordoff from the - Consulting Services group - at MathWorks. -

-

-
-

Contents:

- - - - - - - -
Getting Started: Introductory notes and installation instructions
Examples: A list of the examples that are provided in the documentation
User guide: Describes how to use these tools
Function reference: A list of the available functions
IndexAlphabetical index of sections, functions and concepts
-
-
- -
-

© 2017 The MathWorks Ltd - Terms of Use - Patents - Trademarks

- - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/info.xml b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/info.xml deleted file mode 100644 index ef78de7..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/info.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - -14 -GUI Layout -toolbox -$toolbox/matlab/icons/bookicon.gif -../layoutdoc - - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/layoutDocRoot.m b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/layoutDocRoot.m deleted file mode 100644 index 3ae3cc1..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/layoutDocRoot.m +++ /dev/null @@ -1,12 +0,0 @@ -function folder = layoutDocRoot() -%layoutDocRoot Return the location of the GUI Layout Toolbox documentation. -% -% folder = layoutDocRoot() -% -% See also: layoutRoot - -% Copyright 2014 The MathWorks, Inc. - -folder = fileparts( mfilename( 'fullpath' ) ); - -end % layoutDocRoot \ No newline at end of file diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/layoutRoot.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/layoutRoot.html deleted file mode 100644 index d4d7d4f..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/layoutRoot.html +++ /dev/null @@ -1 +0,0 @@ - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/releasenotes.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/releasenotes.html deleted file mode 100644 index 03a81bd..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/releasenotes.html +++ /dev/null @@ -1 +0,0 @@ - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/termsOfUse.m b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/termsOfUse.m deleted file mode 100644 index 386c744..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/termsOfUse.m +++ /dev/null @@ -1,8 +0,0 @@ -function termsOfUse - if verLessThan('matlab','8.5') - helpview([matlabroot,'/license.txt']) - else - helpview([matlabroot,'/license_agreement.txt']) - end -end - diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.BoxPanel.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.BoxPanel.html deleted file mode 100644 index c4083d8..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.BoxPanel.html +++ /dev/null @@ -1 +0,0 @@ - > diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.CardPanel.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.CardPanel.html deleted file mode 100644 index d19809b..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.CardPanel.html +++ /dev/null @@ -1 +0,0 @@ - > diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.Empty.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.Empty.html deleted file mode 100644 index 0d6f382..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.Empty.html +++ /dev/null @@ -1 +0,0 @@ - > diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.Grid.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.Grid.html deleted file mode 100644 index 2c92912..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.Grid.html +++ /dev/null @@ -1 +0,0 @@ - > diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.GridFlex.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.GridFlex.html deleted file mode 100644 index 43a2b15..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.GridFlex.html +++ /dev/null @@ -1 +0,0 @@ - > diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.HBox.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.HBox.html deleted file mode 100644 index ea3c133..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.HBox.html +++ /dev/null @@ -1 +0,0 @@ - > diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.HBoxFlex.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.HBoxFlex.html deleted file mode 100644 index b35fc1b..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.HBoxFlex.html +++ /dev/null @@ -1 +0,0 @@ - > diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.HButtonBox.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.HButtonBox.html deleted file mode 100644 index 2979fc5..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.HButtonBox.html +++ /dev/null @@ -1 +0,0 @@ - > diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.Panel.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.Panel.html deleted file mode 100644 index 4e88b49..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.Panel.html +++ /dev/null @@ -1 +0,0 @@ - > diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.ScrollingPanel.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.ScrollingPanel.html deleted file mode 100644 index f38fdba..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.ScrollingPanel.html +++ /dev/null @@ -1 +0,0 @@ - > diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.TabPanel.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.TabPanel.html deleted file mode 100644 index ba04145..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.TabPanel.html +++ /dev/null @@ -1 +0,0 @@ - > diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.VBox.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.VBox.html deleted file mode 100644 index c22b1ce..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.VBox.html +++ /dev/null @@ -1 +0,0 @@ - > diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.VBoxFlex.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.VBoxFlex.html deleted file mode 100644 index eecfb87..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.VBoxFlex.html +++ /dev/null @@ -1 +0,0 @@ - > diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.VButtonBox.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.VButtonBox.html deleted file mode 100644 index f694b56..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.VButtonBox.html +++ /dev/null @@ -1 +0,0 @@ - > diff --git a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.tracking.html b/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.tracking.html deleted file mode 100644 index d83a06d..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/layoutdoc/uix.tracking.html +++ /dev/null @@ -1 +0,0 @@ - > diff --git a/widgets/GUI Layout Toolbox 2.3.1/license.txt b/widgets/GUI Layout Toolbox 2.3.1/license.txt deleted file mode 100644 index 4e88af6..0000000 --- a/widgets/GUI Layout Toolbox 2.3.1/license.txt +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2017, The MathWorks, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the distribution. - * In all cases, the software is, and all modifications and derivatives - of the software shall be, licensed to you solely for use in conjunction - with MathWorks products and service offerings. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE.