

XbW Sample applications
=======================

Requirements:

- RAM in small quantities; 1.5 free megs should suffice
- disk space in large quantities :)
  don't try XbW with much less than about 5 megs; this is for XbW itself,
  the C-sources and the megawin application. The bare minimum is about 2 megs
  (XbW compiled, megawin not used).
- X11 up and _running_ :)

adder:
====== A simple, two-function calculator allows to add or subtract two values
       and displays the result in a separate object. The arithmetic is done
       by a separate C-program (adder.c). It gets its data from the user
       interface and produces two values: the result and a display status,
       which are imported back into the user interface.

       Remark: calculating these values directly in XbW is much simpler :)

- You can see how to create a user interface with a simple "C" headerfile.
  This C-file is called "addermfx.h"; it creates an user interface together
  with a program interface (XBMFX) that exports and
  imports "MFX-Groups". The MFX-Group used in this example is "MFI".

- You will find out how to activate the display status of a single object;
  look at "TEST6" for that feature.

- See the Makefile on how to start that application (e.g.: "# make")

- Try using the "bw" and "color" options for the command
 
    @xbwstart(("test") ("color"));
 
  in file ./adder/startadder.mta. You will see that generation of b/w and
  color user interfaces is quite simple. Have a look at /xw/x/xbwstart.mta
  for that purpose.

- Use the object editor by pressing the middle mouse button on any object:
  you can modify the contents of any VAR-Element in any object.

bidirectional:
==============
       A simple, two-way interface analog to the calculator.
       The Values entered in Window WD01 are copied to WD02. But
       that is done by a user program ("move"). The complete
       user interface and data interface ist created by XbW.
       "startmove.mta" is a manually modified version of "movewdw.mta",
       the automatically created user interface.

- You can see how to create a user interface with a simple "C" headerfile.
  This C-file is called "movemfx.h"; it creates an user interface together
  with a program interface (XBMFX) that exports MFI and
  imports MFO.

- See the Makefile on how to start that application (e.g.: "# make")

megawin:
======== A program creates a metafile automatically; that metafile contains
         several complete user interfaces ("projects"). These can be accessed
         via buttons; every window in these projects can also be accessed.
 
- See that only the windows of a single project can be viewed at a time.

- XbW creates a file "megawin/megawin.prj"; if you start XbW with

    xbw megawin.prj
 
  the file is used directly and so the compilation of that file is skipped.
 
- See how fast XbW can handle really large user interfaces, especially when
  loading them: XbW uses Memory Mapped File I/O for the database.
  The sample database "megawin.prj" is about 2.3 Megs large :)



