Scilab Home Page | Wiki | Bug Tracker | Forge | Mailing List Archives | Scilab Online Help | File Exchange
ATOMS : guimaker details
Login with GitLab

guimaker

A toolbox for creating GUIs with a minimum of programming.
(8077 downloads for this version - 44390 downloads for all versions)
Details
Version
1.8
A more recent valid version with binaries for Scilab 5.4 exists: 1.9
Author
T. Pettersen
Owner Organization
Not applicable
Maintainer
Torbjorn Pettersen
Category
License
Dependency
Creation Date
May 28, 2012
Source created on
Scilab 5.4.x
Binaries available on
Scilab 5.4.x:
Windows 64-bit Windows 32-bit Linux 64-bit Linux 32-bit macOS
Install command
--> atomsInstall("guimaker")
Description
            guimaker is a command line tool for creating graphical user interfaces
(GUI) in Scilab.

The GUIs are based on the available uicontrol objects in Scilab. 

guimaker() can be used either for generating GUIs within programs, or it can be
used for creating Scilab source code which serve as a starting point for
more advanced programming of GUIs.

menumaker() has been added as a frontend for the scilab command uimenus(). Its
purpose is to add systems of menus to a figure using a similar input definition
as guimaker. 

gui2maker() creates an input file to guibuilder (external toolbox) from an
existing graphical user interface (gui). A graphical user interface created with
for example guimaker can be easily ported to guibuilder for further manual
modifications.

Changes in version 1.8:
 * Added gui2builder() which creates an input file to guibuilder (external
toolbox) from an existing gui.
            
Files (2)
[109.63 kB]
Source code archive

[96.27 kB]
OS-independent binary for Scilab 5.4.x
Binary version
Automatically generated by the ATOMS compilation chain

News (0)
Comments (11)     Leave a comment 
Comment from Samuel Gougeon -- August 6, 2012, 05:33:33 PM    
Hello,

I was running a demo when i got this message:
  !--error 4 
Undefined variable: apifun_checktype
at line     189 of function guimaker called by :  
h=guimaker(pg,list('Uicontrols demo',300),[],2); // setting up the gui with guimaker.
at line      17 of exec file called by :    
t_path = demo_gui_update();exec(script_path,-1);clear script_path;;if
exists("%oldgcbo")
then gcbo
while executing a callback

It looks that apifun is an external module needed by guimaker.
It could be worthwhile to indicate and configurate this dependency 
in ATOMS for guimaker.

Thanks
Samuel
Comment from Torbjorn Pettersen -- August 6, 2012, 07:24:53 PM    
Thanks, you are quite right. 
I just added the dependency.
-Torbjørn.
Comment from emmanuel laurent -- March 6, 2013, 11:23:14 AM    
Hi,
When installing guimaker from the source, the problem with apifun remains!
But all is ok when using atomsInstall('guimaker') 
Could you correct it ?
thanks
Emmanuel
Comment from Olaf Bousche -- August 2, 2013, 12:42:05 PM    
Excellent tool

I found a small issue with large data sets.

When a figure is creted in Scilab with

h = figure('position',[0,0,W,H], ...........);

It gets truncated beyond a certain size. To get a GUI that still works I want to propose
the following code

h = figure('position',[0,0,W,H], ...........);

if h.axes_size(1) < W then
  h.auto_resize = 'off'; // Turn off auto resize
  h.axes_size(1) = W + 50; // Set width plus a bit extra.
  h.figure_size(1) = 1500; // Optional with something useful for a HD monitor
end

if h.axes_size(2) < H then
  h.auto_resize = 'off'; // Turn off auto resize
  h.axes_size(2) = W + 50; // Set width plus a bit extra.
  h.figure_size(2) = 800; // Optional with something useful for a HD monitor
end

Can you please implement something like this in a next release ?

Thanks
Olaf
Answer from Torbjorn Pettersen -- August 14, 2013, 02:19:04 PM    
> Excellent tool
> 
> I found a small issue with large data sets.
> 
... deleted text...
> Can you please implement something like this in a next release ?
> 
> Thanks
> Olaf

Thanks and sorry for a late answer...

I wonder if you could provide an example illustrating the problem on a large gui. It 
would make it easier to check that the proposed code does fix the problem. 

A quick fix is to use guimaker (with the fourth input parameter = 1) to create source 
code for the large gui. Then you manually implement your fix in the generated source 
code - and just use the "fixed" code without guimaker.  
Regards,

-Torbj?rn.
Answer from Olaf Bousche -- September 27, 2013, 12:53:16 PM    
Sorry for the late response from my side as well. I was traveling without internet access.


Here is a simplified example taken from the type of programs that I use.

// Funtion definition for a dialog based on a struct with parameters

function y = update_pars(par_struct,q)

    // Get fieldnames
    fn = fieldnames(par_struct);

    // Dialog
    diag_list = list();
    for j = 1:size(fn,1)
        diag_list(j) = list(list(0.5,'text',evstr('par_struct.' + fn(j) +
'.Comment')),list(0.5,'edit',string(evstr('par_struct.' + fn(j) + '.Value'))));
    end
    diag_list($+1) = list(list('pushbutton','OK','callback','OK =
%t'),list('pushbutton','Cancel','callback','CANCEL = %t'));
    res = guimaker(diag_list,list(q,400));

    // Check if the user pressed cancel
    if isempty(res) then
        y = par_struct; // Do nothing
        return
    end

    // Assign new values to the parameter structure
    y = par_struct; // Initialize output
    for j = 1:size(fn,1)
        execstr('y.' + fn(j) + '.Value = res(j)'); // Assign to output struct
    end

endfunction

// Define a long parameter stuct a. In the real world this would have meaningful names and
values
clear a;
for j = 1:100
    execstr(msprintf('a.field%03d = struct(''Value'',%d,''Comment'',''This is field
%3d'');',j,j,j))
end

// Run the dialog 
y = update_pars(a,'Test with a lot of data')


Thanks for your effort

Olaf
Comment from Olaf Bousche -- August 2, 2013, 12:43:54 PM    
Small mistake

h = figure('position',[0,0,W,H], ...........);

if h.axes_size(1) < W then
  h.auto_resize = 'off'; // Turn off auto resize
  h.axes_size(1) = W + 50; // Set width plus a bit extra.
  h.figure_size(1) = 1500; // Optional with something useful for a HD monitor
end

if h.axes_size(2) < H then
  h.auto_resize = 'off'; // Turn off auto resize
  h.axes_size(2) = H + 50; // Set width plus a bit extra.
  h.figure_size(2) = 800; // Optional with something useful for a HD monitor
end
Comment from Sanjeev Gahlot -- August 4, 2013, 12:31:21 PM    
!--error 4 
Undefined variable: apifun_checktype
at line     189 of function guimaker called by :  
ist('Aerodynamic Lens Design')

The above Error message is received on running the Example from "http://wiki.scilab.org/howto/guicontrol"
Kindly advise.
Answer from Torbjorn Pettersen -- August 14, 2013, 02:26:03 PM    
> !--error 4 
> Undefined variable: apifun_checktype
> at line     189 of function guimaker called by :  
> ist('Aerodynamic Lens Design')
> 
> The above Error message is received on running the Example from
> "http://wiki.scilab.org/howto/guicontrol"
> Kindly advise.

guimaker is dependent of the apifun toolbox. 
If you installed guimaker using the atoms interface it should have installed apifun along 
with guimaker. Otherwise the command atomsInstall("apifun") should to the trick.

Regards,
-Torbj?rn.
Comment from Jeff Waters -- February 13, 2018, 06:45:06 PM    
loaded guimaker into Scilab 6 ... message at at Start of Scilab reads; ...



Start guimaker
	Load macros
atomsLoad: An error occurred while loading 'guimaker-1.91':
	lib: Old binary lib detected. Please recompile it for Scilab 6.

plans to recompile for 6 


Thanks 

Jeff


Comment from Torbjorn Pettersen -- February 15, 2018, 10:01:51 PM    
Unfortunately I don't have time to figure what broke when Scilab 6.0 was introduced. 
So most likely guimaker will be stuck at version 5.x. 
Apologies for that. 

-Torbjørn. 

Comment from Torbjorn Pettersen -- February 15, 2018, 10:02:00 PM    
Unfortunately I don't have time to figure what broke when Scilab 6.0 was introduced. 
So most likely guimaker will be stuck at version 5.x. 
Apologies for that. 

-Torbjørn. 

Leave a comment
You must register and log in before leaving a comment.
Login with GitLab
Email notifications
Send me email when this toolbox has changes, new files or a new release.
You must register and log in before setting up notifications.