yet another GUI builder
Yagb is a free GUI
builder program for
Lesstif
.With it you can visually construct your user interface and theprogram will
automatically generate the source code for that GUI.This makes the process
of developing a GUI much simpler, although you still need to understand a
fairbit about the widget set you are using.
Supports most resource types including fonts, colours and callbacks but not pixmaps
alpha release, lacks polish
only works with Lesstif (before 0.1h) Open Motif (0.1h)
is currently setup to work with Motif-1.2 version of Lesstif/OpenMotif and X11R6
I have tried to steer clear of code specific to Lesstif / Motif so that other widget sets can be used - almost certainly this needs further work but the potentialis there.
Download the code, unzip and unpack it
'make' to build the code
run the system 'yagb'
build a GUI
generate code - will be output to 'Output.cc'
build your GUI's code - 'make Output' - uses Output.cc and OutputPlus.cc (a library file, and MOSCW.cc providing better support for XmScrolledWindow's)
run your generated code with 'Output'
The code :
yagb-0_1h_tar.gz
Previous release code :
Anycomments, suggestions are very welcome:
rich_gooding@yahoo.com
Predefined callback code Eg. PopupWindow(X)
Added toggle of widget management
Global widget declarations in code generation
Fix of real-widget selection -- now selects the widget clicked
Added 'Auto-update' mode to resource editor window
Added fix to allow 'composite widgets' (eg Shells) to have a child added to them if they have no children. This normally does not occur unless a shell's child is deleted.
Added 'Append' option.
Cut , Copy and Paste not full-proof yet - but useful
Selection extended :
Btn1 |
select widget / clear selection |
Btn1 + shift |
toggle selection of widget |
Btn1 + control |
select widget & all children |
Btn1 + control + shift |
toggle select widget & all children |
Bug fix for callback code gen : major
Bug fix for specifying the name of the file on the command line - save wasn't remembering it !
Bug fix for top level application shell & colourmaps
Fix for command line argument handling compilation bug.
Add compatibility with True Colour Visuals : 15,16,24 bits tested.
Improved resources
Bug Fix : Tear off bugs fix
Bug Fix : FontList - select "none"
Bug Fix : File Selection Box refresh
Bug Fix : Widget Naming (several)
New convenience function for XmFrame
Minor GUI improvements - including Automatic scrolling of widgeet tree to selected widget
*NEW* Allow Yagb to run using a private colormaps -- 'yagb -pc'
Add tear-off menus around the place
Bug Fix for 'File_Open' Menu option which used to not work more than once
Bug Fix minor bug in Widget Naming text field error reporting
Bug fix for 'ClientLeader' resource
Improved error trapping for Colours
*NEW* Support for widget naming
Improved support for XmScrolledWindow
Bug fix - improved deleting children of XmPanedWindow (still LESSTIF trouble ?!)
Bug fix - resource references to deleted widgets are reset
Attempt to Improve Resource Editor GUI
Bug Fix - Pixmap resource (no support for editing these yet)
Yagb uses some X11 functionality to try and minimize its dependence on Motif specific knowledge :
Widget Creation: Yagb examins the widget hierarchy before and after widget creation to work out which widgets are created by any given function call. Widgets created by a single call are treated as a group throughout the program. Deleting any widget in a group deletes the whole group (since the same code used to create the widgets is used in Yagb and the programs it generates) - likewise cut / copy / paste. It has to be done this way because the code generation uses the same creation call to generate the widgets. This works fine in most cases - even for complex widgets such as a file selection dialog. Problems: widget creation is sometimes context sensitive - eg in Lesstif cascade buttons on a menu bar share a single XmPopupShell - only the first pulldown menu will create the Popup shell , later menus will share the firstone - fine unless you ever delete the first one ! .. And the are otherexamples...
Yagb uses XtGetResourceList and XtGetConstraintResouce list. Again lots of useful information here allowing viewing of values. Problems : information such as whether resources are CSG (create, set or get see XmCore man pages) is not present. Default valuescan be context sensitive. Some resources work in groups eg the Form constraint resources - where widgets can be specified and another resource indicates how to use that widget.
Resource type conversions. Lots of these are provided by default and can be used to get and set resources - as the basis for resource editing.
last update 3 June 2001