Skip to content

Commit 955cb9b

Browse files
committed
GUITool 1.0.1 Build 21.03.085
0 parents  commit 955cb9b

File tree

161 files changed

+10381
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

161 files changed

+10381
-0
lines changed
Loading

LICENSE

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
Redistribution and use in source and binary forms, with or without
2+
modification, are permitted provided that the following conditions are met:
3+
4+
1. You may not use the material for commercial purposes. License for
5+
personal non-commercial uses only, please contact Precise Simulation
6+
Limited for commercial and custom licensing options.
7+
8+
2. Redistributions of source code must retain the above copyright
9+
notice, this list of conditions and the following disclaimer.
10+
11+
3. Redistributions in binary form must reproduce the above copyright
12+
notice, this list of conditions and the following disclaimer in the
13+
documentation and/or other materials provided with the distribution.
14+
15+
4. All advertising materials mentioning features or use of this
16+
software must display the following acknowledgement: This product
17+
includes software developed by Precise Simulation Limited
18+
(www.precisesimulation.com).
19+
20+
5. Neither the name of the Precise Simulation Limited nor the
21+
names of its contributors may be used to endorse or promote products
22+
derived from this software without specific prior written permission.
23+
24+
THIS SOFTWARE IS PROVIDED BY PRECISE SIMULATION LIMITED ''AS IS'' AND ANY
25+
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
26+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
27+
DISCLAIMED. IN NO EVENT SHALL PRECISE SIMULATION LIMITED BE LIABLE FOR ANY
28+
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
29+
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
30+
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
31+
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
32+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
33+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

README.md

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
GUITool - Easy to Use GUI Toolkit & Framework for MATLAB
2+
========================================================
3+
4+
![GUITool - Easy to Use MATLAB GUI Toolkit and Framework](https://raw.githubusercontent.com/precisesimulation/featool-multiphysics/master/featool-multiphysics-screenshot.png)
5+
6+
7+
_GUITool_ is a cross compatible Graphical User Interface (GUI)
8+
Toolkit, UI design, and layout framework for MATLAB. It has been
9+
specifically designed to be very easy to use and allow rapid
10+
prototyping of custom MATLAB UI interfaces. At the same time it has
11+
been developed to be faster and have better performance for complex
12+
and larger scale GUIs than the _Mathworks GUI Layout Toolbox_.
13+
14+
GUITool is for example used for designing and building the simulation
15+
interfaces for the [FEATool Multiphysics](https://www.featool.com) and
16+
[CFDTool](https://www.cfdtool.com) simulation toolboxes.
17+
18+
19+
Performance Evaluation
20+
----------------------
21+
22+
The GUITool framework has been compared to the Mathworks GUI Layout
23+
Toolbox (GLT) by running the included test suite, as for example
24+
25+
runTestSuite( 'nruns', 100, 'pause', 0, 'closef', 1, 'uilib', 'uitk' )
26+
27+
substituting the _uilib_ parameter with `uitk`, `uiextras`, and `uix`
28+
correspondingly. The resulting timings can be seen in the table
29+
below. First, we can see that GUITool is 1.8-2.5 times faster than the
30+
GUI Layout Toolbox (GLT), moreover, comparing the runs for MATLAB
31+
2011a with 2019a it also clear that the MATLAB GUI functionality is
32+
currently 2-3 times slower with is also consistent with a previous
33+
[MATLAB GUI benchmark comparison](https://www.precisesimulation.com/blog/2019-08-20-benchmarking-and-performance-comparison-of-matlab-versions).
34+
To really get good GUI performance we can therefore only recommend
35+
using the GUITool framework with older MATLAB versions.
36+
37+
<table>
38+
<caption id="matlab-gui-performance-comparison-table">MATLAB GUI Performance Comparison</caption>
39+
<tr> <th> MATLAB <th colspan="2"> R2011a <th colspan="2"> R2019a
40+
<tr> <th> Test case <th> GUITool <th> GLT (v1.17) <th> GUITool <th> GLT (v2.3.4)
41+
<tr> <td> hbox 1 <td> 0.5 <td> 1.3 <td> 1.4 <td> 1.9
42+
<tr> <td> hbox 2 <td> 0.7 <td> 1.7 <td> 2.0 <td> 2.8
43+
<tr> <td> vbox 1 <td> 0.4 <td> 1.3 <td> 1.3 <td> 1.9
44+
<tr> <td> vbox 2 <td> 0.6 <td> 1.7 <td> 2.0 <td> 2.5
45+
<tr> <td> grid 1 <td> 0.6 <td> 2.4 <td> 2.0 <td> 3.6
46+
<tr> <td> boxpanel 1 <td> 0.5 <td> 2.7 <td> 2.2 <td> 12.5
47+
<tr> <td> tabpanel 1 <td> 1.6 <td> 3.1 <td> 6.1 <td> 3.9
48+
<tr> <th> Total Time <th> 5.8 <th> 14.2 <th> 16.9 <th> 28.9
49+
</table>
50+
51+
52+
Installation
53+
------------
54+
55+
Copy and add the GUI toolkit source files (.m and .p files from
56+
the _src_ directory) to your own project directory, or add a path to
57+
to the directory with the `addpath` command.
58+
59+
60+
Examples
61+
--------
62+
63+
Look at the examples in the source files _uitkHBox_, _uitkVBox_,
64+
_uitkGrid_, _uitkBoxPanel_, and _uitkTabPanel_ as well as the examples
65+
in the _src/tests_ directory.
66+
67+
68+
Testing
69+
-------
70+
71+
Run the `runTestSuite` function from the root directory.
72+
73+
74+
Documentation
75+
-------------
76+
77+
Open the included **index.html** file in a web browser to access the
78+
function documentation.
79+
80+
81+
License
82+
-------
83+
84+
Copyright (C) 2013-2019 Precise Simulation Ltd.
85+
86+
Keywords: MATLAB GUI Layout Toolkit Framework
87+
88+
Redistribution and use in source and binary forms, with or without
89+
modification, are permitted provided that the following conditions are met:
90+
91+
1. You may not use the material for commercial purposes. License for
92+
personal non-commercial uses only, please contact Precise Simulation
93+
Limited for commercial and custom licensing options.
94+
95+
2. Redistributions of source code must retain the above copyright
96+
notice, this list of conditions and the following disclaimer.
97+
98+
3. Redistributions in binary form must reproduce the above copyright
99+
notice, this list of conditions and the following disclaimer in the
100+
documentation and/or other materials provided with the distribution.
101+
102+
4. All advertising materials mentioning features or use of this
103+
software must display the following acknowledgement: This product
104+
includes software developed by Precise Simulation Limited
105+
(www.precisesimulation.com).
106+
107+
5. Neither the name of the Precise Simulation Limited nor the
108+
names of its contributors may be used to endorse or promote products
109+
derived from this software without specific prior written permission.
110+
111+
THIS SOFTWARE IS PROVIDED BY PRECISE SIMULATION LIMITED ''AS IS'' AND ANY
112+
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
113+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
114+
DISCLAIMED. IN NO EVENT SHALL PRECISE SIMULATION LIMITED BE LIABLE FOR ANY
115+
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
116+
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
117+
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
118+
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
119+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
120+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Loading

doc/bc_s.png

676 Bytes
Loading

doc/bdwn.png

147 Bytes
Loading

doc/closed.png

132 Bytes
Loading
Lines changed: 145 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,145 @@
1+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2+
<html xmlns="http://www.w3.org/1999/xhtml">
3+
<head>
4+
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5+
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
6+
<meta name="viewport" content="width=device-width, initial-scale=1"/>
7+
<title>GUITool Documentation: src Directory Reference</title>
8+
<link href="tabs.css" rel="stylesheet" type="text/css"/>
9+
<script type="text/javascript" src="jquery.js"></script>
10+
<script type="text/javascript" src="dynsections.js"></script>
11+
<link href="navtree.css" rel="stylesheet" type="text/css"/>
12+
<script type="text/javascript" src="resize.js"></script>
13+
<script type="text/javascript" src="navtreedata.js"></script>
14+
<script type="text/javascript" src="navtree.js"></script>
15+
<script type="text/javascript">
16+
$(document).ready(initResizable);
17+
</script>
18+
<link href="search/search.css" rel="stylesheet" type="text/css"/>
19+
<script type="text/javascript" src="search/searchdata.js"></script>
20+
<script type="text/javascript" src="search/search.js"></script>
21+
<script type="text/x-mathjax-config">
22+
MathJax.Hub.Config({
23+
extensions: ["tex2jax.js"],
24+
jax: ["input/TeX","output/HTML-CSS"],
25+
});
26+
</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js"></script>
27+
<link href="doxygen.css" rel="stylesheet" type="text/css" />
28+
</head>
29+
<body>
30+
<div id="top">
31+
<div id="titlearea">
32+
<table cellspacing="0" cellpadding="0">
33+
<tbody>
34+
<tr style="height: 56px;">
35+
<td id="projectlogo"><a href="https://www.precisesimulation.com" target="_blank"><img alt="Logo" src="logo.jpg"/></a></td>
36+
<td id="projectalign" style="padding-left: 0.5em;">
37+
<a href="https://www.featool.com" target="_blank"><div id="projectname">GUITool
38+
&#160;<span id="projectnumber">v1.0.1</span>
39+
</div></a>
40+
<div id="projectbrief">MATLAB GUI Tookit &amp; Layout Framework</div>
41+
</td>
42+
</tr>
43+
</tbody>
44+
</table>
45+
</div>
46+
<!-- end header part -->
47+
<!-- Generated by Doxygen 1.8.13 -->
48+
<script type="text/javascript">
49+
var searchBox = new SearchBox("searchBox", "search",false,'Search');
50+
</script>
51+
<script type="text/javascript" src="menudata.js"></script>
52+
<script type="text/javascript" src="menu.js"></script>
53+
<script type="text/javascript">
54+
$(function() {
55+
initMenu('',true,false,'search.php','Search');
56+
$(document).ready(function() { init_search(); });
57+
});
58+
</script>
59+
<div id="main-nav"></div>
60+
</div><!-- top -->
61+
<div id="side-nav" class="ui-resizable side-nav-resizable">
62+
<div id="nav-tree">
63+
<div id="nav-tree-contents">
64+
<div id="nav-sync" class="sync"></div>
65+
</div>
66+
</div>
67+
<div id="splitbar" style="-moz-user-select:none;"
68+
class="ui-resizable-handle">
69+
</div>
70+
</div>
71+
<script type="text/javascript">
72+
$(document).ready(function(){initNavTree('dir_68267d1309a1af8e8297ef4c3efbcdba.html','');});
73+
</script>
74+
<div id="doc-content">
75+
<!-- window showing the filter options -->
76+
<div id="MSearchSelectWindow"
77+
onmouseover="return searchBox.OnSearchSelectShow()"
78+
onmouseout="return searchBox.OnSearchSelectHide()"
79+
onkeydown="return searchBox.OnSearchSelectKey(event)">
80+
</div>
81+
82+
<!-- iframe showing the search results (closed by default) -->
83+
<div id="MSearchResultsWindow">
84+
<iframe src="javascript:void(0)" frameborder="0"
85+
name="MSearchResults" id="MSearchResults">
86+
</iframe>
87+
</div>
88+
89+
<div class="header">
90+
<div class="headertitle">
91+
<div class="title">src Directory Reference</div> </div>
92+
</div><!--header-->
93+
<div class="contents">
94+
<table class="memberdecls">
95+
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
96+
Directories</h2></td></tr>
97+
<tr class="memitem:dir_d49b597d86ed44de6eb8a459f0ed40df"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_d49b597d86ed44de6eb8a459f0ed40df.html">private</a></td></tr>
98+
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
99+
<tr class="memitem:dir_d93a1d4020dea85bb71b237545b5e722"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_d93a1d4020dea85bb71b237545b5e722.html">tests</a></td></tr>
100+
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
101+
</table><table class="memberdecls">
102+
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
103+
Files</h2></td></tr>
104+
<tr class="memitem:uitkBoxPanel_8m"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uitkBoxPanel_8m.html">uitkBoxPanel.m</a></td></tr>
105+
<tr class="memdesc:uitkBoxPanel_8m"><td class="mdescLeft">&#160;</td><td class="mdescRight">UITKBOXPANEL Show one element inside a box panel. <br /></td></tr>
106+
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
107+
<tr class="memitem:uitkGrid_8m"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uitkGrid_8m.html">uitkGrid.m</a></td></tr>
108+
<tr class="memdesc:uitkGrid_8m"><td class="mdescLeft">&#160;</td><td class="mdescRight">UITKGRID Arrange GUI elements in a grid layout. <br /></td></tr>
109+
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
110+
<tr class="memitem:uitkHBox_8m"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uitkHBox_8m.html">uitkHBox.m</a></td></tr>
111+
<tr class="memdesc:uitkHBox_8m"><td class="mdescLeft">&#160;</td><td class="mdescRight">UITKHBOX Create/update uitk GUI container for a horizontal single row layout. <br /></td></tr>
112+
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
113+
<tr class="memitem:uitkRedraw_8m"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uitkRedraw_8m.html">uitkRedraw.m</a></td></tr>
114+
<tr class="memdesc:uitkRedraw_8m"><td class="mdescLeft">&#160;</td><td class="mdescRight">UITKREDRAW Call figures nested uitk redrawing callbacks. <br /></td></tr>
115+
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
116+
<tr class="memitem:uitkRedrawGrid_8m"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uitkRedrawGrid_8m.html">uitkRedrawGrid.m</a></td></tr>
117+
<tr class="memdesc:uitkRedrawGrid_8m"><td class="mdescLeft">&#160;</td><td class="mdescRight">UITKREDRAWGRID Redraw container contents for a uitkGrid object. <br /></td></tr>
118+
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
119+
<tr class="memitem:uitkTabPanel_8m"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uitkTabPanel_8m.html">uitkTabPanel.m</a></td></tr>
120+
<tr class="memdesc:uitkTabPanel_8m"><td class="mdescLeft">&#160;</td><td class="mdescRight">UITKTABPANEL Create an uitk panel with tabs. <br /></td></tr>
121+
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
122+
<tr class="memitem:uitkVBox_8m"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uitkVBox_8m.html">uitkVBox.m</a></td></tr>
123+
<tr class="memdesc:uitkVBox_8m"><td class="mdescLeft">&#160;</td><td class="mdescRight">UITKVBOX Create/update uitk GUI container for a vertical single row layout. <br /></td></tr>
124+
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
125+
</table>
126+
</div><!-- contents -->
127+
</div><!-- doc-content -->
128+
<!-- start footer part -->
129+
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
130+
<ul>
131+
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li>
132+
<li class="footer">
133+
© Copyright 2013-2019 Precise Simulation Ltd.
134+
</ul>
135+
</div>
136+
<script>
137+
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
138+
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
139+
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
140+
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
141+
ga('create', 'UA-51347039-2', 'auto');
142+
ga('send', 'pageview');
143+
</script>
144+
</body>
145+
</html>
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
var dir_68267d1309a1af8e8297ef4c3efbcdba =
2+
[
3+
[ "private", "dir_d49b597d86ed44de6eb8a459f0ed40df.html", "dir_d49b597d86ed44de6eb8a459f0ed40df" ],
4+
[ "tests", "dir_d93a1d4020dea85bb71b237545b5e722.html", "dir_d93a1d4020dea85bb71b237545b5e722" ],
5+
[ "uitkBoxPanel.m", "uitkBoxPanel_8m.html", null ],
6+
[ "uitkGrid.m", "uitkGrid_8m.html", null ],
7+
[ "uitkHBox.m", "uitkHBox_8m.html", null ],
8+
[ "uitkRedraw.m", "uitkRedraw_8m.html", null ],
9+
[ "uitkRedrawGrid.m", "uitkRedrawGrid_8m.html", null ],
10+
[ "uitkTabPanel.m", "uitkTabPanel_8m.html", null ],
11+
[ "uitkVBox.m", "uitkVBox_8m.html", null ]
12+
];

0 commit comments

Comments
 (0)