home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD2.mdf / c / library / dos / screen / intui110 / tui0.hlp < prev    next >
Encoding:
Text File  |  1992-02-06  |  24.3 KB  |  432 lines

  1. `color(RED,LIGHTGRAY);<<<<<<<<<<<<<<<<<<<<< Welcome to EnQue's InTUItion V1.10 >>>>>>>>>>>>>>>>>>>>>`color();
  2. `tab(2);`color_default(LIGHTGRAY,BLUE);`color_keyword(YELLOW,BLUE);`color_first_char(WHITE,BLUE);
  3.  
  4.  ┌──────────────────────────────────────────────────────────────────────────┐
  5.  │                                                `keyword(Introduction,/// Introduction);                                      │
  6.  │                        `keyword(How the TUICP works,/// How the TUICP works);                               │
  7.  │                        `keyword(The TUICP's menus,/// The TUICP's menus);                                 │
  8.  │                        `keyword(Dialog objects,/// Dialog objects);                                    │
  9.  │                        `keyword(Creating dialogs,[TUI1.HLP]/// Creating dialogs);                                  │
  10.  │                        `keyword(Dialog Transfer and Menu construction,[TUI2.HLP]/// Dialog Transfer);             │
  11.  │                        `keyword(Incorporating Dialogs into your programs,[TUI2.HLP]/// Incorporating Dialogs);          │
  12.  │                        `keyword(The InTUItion Library,[TUI3.HLP]/// The InTUItion Library);                             │
  13.  │                                                `keyword(The Online Tutorials,/// The Online Tutorials);                              │
  14.  └──────────────────────────────────────────────────────────────────────────┘
  15.  
  16. `co(4,7);─────────────────────────────── /// Introduction ─────────────────────────────`co();
  17.  
  18.       The TUICP (Textual User Interface Construction Program) is a programming
  19.     tool designed to make the construction of user interfaces not only easy,
  20.     but fun!  The TUICP, taking advantage of the power of EnQue's UltraWin
  21.     windowing library, allows you to interactively "draw" your menus, dialog
  22.     boxes, data-entry forms, etc.  User customizable screen size, colors,
  23.     palettes, fonts, and more make the TUICP the most flexible screen designer
  24.     available.
  25.  
  26.       We at EnQue take a slightly different approach to teaching you how to
  27.     use our tools.  Like most people, we hate to read long, complicated
  28.     technical manuals, and find that little information is retained.  If you
  29.     have been programming for any time at all, you know that the best way to
  30.     learn something is to dive right in and make it work.  We take the latter
  31.     approach with a few sophisticated aids to help.  In this way, we can keep
  32.     our manuals relatively small, serving mainly as a function usage and
  33.     reference guide.
  34.  
  35.       First of all, we ship the full source code not only for our libraries,
  36.     but for the tools as well.  This is a real rarity in this business.  We do
  37.     this because as programmers we often run across a utility that is "almost"
  38.     exactly what we need "if only".  For those of you who run into this, you
  39.     can add those last few features that make it perfect for you.  In
  40.     addition, the source provides insight into how the tools work and the more
  41.     you know about the inner workings the more you understand how to take
  42.     advantage of its features.  Secondly, we include several demo programs
  43.     that illustrate how to use most of the functions in the library.  Some of
  44.     the demos are quite large but are very modular, with a particular module
  45.     or function demonstrating just a few features.  Last and most important,
  46.     we have included several fully automated tutorials that take you through
  47.     actual recorded sessions and teach you how to incorporate each dialog
  48.     object.  A few minutes with the tutorials will save you hours of reading
  49.     boring manuals.  You even end up with a usable dialog at the end!  If you
  50.     get stuck while creating a dialog, context-sensitive help is only a button
  51.     press or keystroke away.  In most cases, you will never have to use the
  52.     manual.
  53.  
  54. `co(4,7);─────────────────────────── /// How the TUICP works ──────────────────────────`co();
  55.  
  56.       The TUICP allows you to use the keyboard and mouse to construct your
  57.     dialogs.  Many dialogs can exists within a single .TUI file, similar to
  58.     project files commonly used by compilers.  InTUItion saves all the needed
  59.     information to recreate your dialogs during runtime.  IT DOES NOT store
  60.     wasteful screen images like many other products.  InTUItion's dialogs can
  61.     even be modified "on-the-fly" by modifying variables within the
  62.     controlling structures.  A header file, with a .DEF extension, containing
  63.     defines that describe each object is saved along with the TUI and is used
  64.     in your program so that each object can be referenced by name, not by
  65.     number. Don't modify this file, the TUICP does this for you.
  66.  
  67.       Dialog files can either be read in during run time or alternatively, the
  68.     TUICP can generate "C" source code that can be compiled and linked into
  69.     your exe file.  The advantage of loading the file is easy modification
  70.     without recompiling (assuming the basic structure of the dialog has not
  71.     been changed, i.e., buttons added/removed, etc.).  This method is
  72.     recommended during program development.  In addition, you may be
  73.     developing a program where you would like the user to have the ability to
  74.     change the position, colors, etc. of the program's dialogs.  Linking in
  75.     the dialogs will slightly increase the code size but eliminate the need
  76.     for file I/O during startup.  This also prevents users from editing the
  77.     dialogs, or worse, deleting the files.  This is recommended for final
  78.     versions of your programs.
  79.  
  80.       Once a dialog is loaded into memory, the InTUItion library will
  81.     "process" all dialog commands, returning to you depending on the flags set
  82.     for each item.  Processing the commands is done with a simple switch
  83.     statement. InTUItion handles all the keyboard and mouse interaction.  Once
  84.     a dialog is created and tested, the TUICP will generate a "C" source code
  85.     shell that contains the switch statements necessary to process each
  86.     possible event. Finishing off your program becomes a simple matter of
  87.     writing the code for each case.  Program development time can be reduced
  88.     by up to 90%. An excellent example is the font editor included with
  89.     InTUItion.  The font editor took less than 20 hours to write, start to
  90.     finish.  Without InTUItion, even using the power of UltraWin, this program
  91.     would have taken over 100 hours.  But don't take our word on this, we're
  92.     biased.  Try a few programs yourself and see how easy it is.
  93.  
  94.       The TUICP will also generate a "C" source shell that allows for the
  95.     inclusion of context-sensitive help.  A switch statement similar to the
  96.     one above can be created with a search string into a help file, and a
  97.     click of the right button will access the help, taking the user right to
  98.     the proper location.  All you have to do is create the ASCII help file and
  99.     modify the search strings if needed; the rest is automatic.
  100.  
  101.       Internally, InTUItion stores base structures that contains the global
  102.     parameters for the TUI and a pointer to additional structures depending on
  103.     what objects you add to the dialog.  Each time you add an object,
  104.     InTUItion allocates a stucture for that object and stores a pointer to it
  105.     in the base structure.  This "base array", which is equal in size to the
  106.     total number of objects in the TUI, is indexed by the names you specify
  107.     for each object. The TUICP converts the names to an integer and stores
  108.     these as defines in an ASCII .DEF include file.  Do not modify the actual
  109.     values, although it is perfectly fine to modify the define names.  If you
  110.     change the names, the next time you load that TUI into the TUICP, your new
  111.     names will be used.
  112.  
  113.       Most TUI structures contain a pointer to additional parameters an object
  114.     may need.  For example, the button's additional parameter is the text for
  115.     the button.  By allocated this space as needed, InTUItion can keep memory
  116.     requirements low yet allow for large fields if needed.  You may notice
  117.     that these pointers are "C" unions.  This is necessary because pointers
  118.     are different sizes depending on the memory model.  In order for TUI files
  119.     to be compatible across models, we use a union that allocates four bytes,
  120.     the size of a pointer in large model.  If you peruse through the T.H
  121.     header file you will see exactly what you modify when using the
  122.     construction program!
  123.  
  124. `co(4,7);─────────────────────────────── /// Dialog objects ───────────────────────────`co();
  125.  
  126.       InTUItion dialogs consist of a collection of buttons, strings, sliders,
  127.     and other objects.  To create such a dialog we must first understand what
  128.     each object is and its purpose.
  129.  
  130.  ┌──────────────────────────────────────────────────────────────────────────┐
  131.  │                           `keyword(Text Strings,/// Text Strings);                                   │
  132.  │                           `keyword(Boxes,/// Boxes);                                          │
  133.  │                           `keyword(Buttons,/// Buttons);                                        │
  134.  │                           `keyword(Check Boxes,/// Check Boxes);                                    │
  135.  │                           `keyword(Icons,/// Icons);                                          │
  136.  │                           `keyword(Sliders,/// Sliders);                                        │
  137.  │                           `keyword(Entry Strings,/// Entry Strings);                                  │
  138.  │                           `keyword(Attributes and Flags,/// Attributes and Flags);                           │
  139.  └──────────────────────────────────────────────────────────────────────────┘
  140.  
  141. `co(15,?);/// Text Strings`co();
  142.       The simplest object is the text string.  This is actually a button that
  143.     is not selectable or tabable and will not return if the user clicks on it
  144.     or presses a hot key.  Strings are primarily used for labeling other
  145.     objects.  Since a dialog is a memory structure, you can format your own
  146.     data into this string and redraw it if desired.  This allows you to output
  147.     data to a dialog as well as input data.
  148.  
  149. `co(15,?);/// Boxes`co();
  150.       A box is a rectangular area within the dialog that may be used by your
  151.     program for output or to hold and group other objects, such as radio
  152.     buttons.
  153.  
  154. `co(15,?);/// Buttons`co();
  155.         Buttons consist of text within a box.  A button can have a different
  156.     appearance when selected or tabbed, and can be set to behave differently
  157.     depending on the presence of other buttons in its group.  The following
  158.     are the flags for the different types of buttons available.
  159.  
  160.   `co(15,?);Normal`co();
  161.       Normal buttons act independently, having no effect on other buttons,
  162.         even if they reside in the same box.
  163.   `co(15,?);Radio`co();
  164.     Radio buttons are a group of buttons within a box that are mutually
  165.         exclusive.  If one is selected, all others are turned off.  This is
  166.         useful where the user must select one option.  To make radio buttons,
  167.         create a box to contain the group and make sure the radio flag is set
  168.         for each button.  If you don't want the bounding box to show, simply
  169.         set its color to the same as the color of the dialog, effectively
  170.         "hiding" it.  If you have only one group of radio buttons in your
  171.         dialog, you may simply put them in the dialog, without a grouping box,
  172.         as the dialog itself acts as the base level box.
  173.   `co(15,?);Deselectable Radio`co();
  174.       Deselectable Radio buttons are the same as above except that all
  175.         buttons can be turned off if desired.  This is useful in the case where
  176.         a user can select no option, or one of several.
  177.  
  178. `co(15,?);/// Check Boxes`co();
  179.       Check boxes are the same as buttons except for the text describing the
  180.     check area and the check character itself.  All three styles are
  181.     available.
  182.  
  183. `co(15,?);/// Icons`co();
  184.       An icon is similar to a box except that each character in the rectangle
  185.     can be different, resulting in a rectangular image.  In addition, a second
  186.     image can be displayed when the item is selected.
  187.  
  188. `co(15,?);/// Sliders`co();
  189.       Horizontal and Vertical sliders are actually the same object except for
  190.     their orientation.  Sliders are useful when more data is available than
  191.     will fit on the screen.  They give the user an easy way to scroll through
  192.     information, while providing visual feedback as to the current position
  193.     within that information.
  194.  
  195. `co(15,?);/// Entry Strings`co();
  196.       Entry strings are used to get data from the user.  They are the most
  197.     versatile of all objects, in that you can use them to get a string from
  198.     the user in virtually any format you wish.  This is useful when the user
  199.     must input a name, number, date, time, phone number, etc.
  200.   
  201. `co(4,7);───────────────────────────── /// Attributes and Flags ───────────────────────`co();
  202.  
  203.         Each object has certain attributes that control its appearance and
  204.     operation.  Here is a list of attributes and their meaning:
  205.  
  206. `co(15,?);Name`co();                - This is a text name that will be used in your program
  207.                                             to reference this item. The TUICP uses this name to
  208.                                             generate a define, which is then saved in the ASCII
  209.                                             .DEF include file. Note that the reference in your
  210.                                             code is really a number, which is the index into the
  211.                                             TUI base array for the object. The defined names make
  212.                                             your code much more readable while not reducing
  213.                                             performance due to string references.
  214.                                             Objects: All
  215.  
  216. `co(15,?);Border style`co();        - This is the border style and is only used by the
  217.                                             dialog itself.  Options include, none, single line,
  218.                                             double line, or heavy solid line.
  219.                                             Objects: Dialog
  220.  
  221. `co(15,?);Border color`co();        - This is the border color and is only used by the
  222.                                             dialog itself.
  223.                                             Objects: Dialog
  224.  
  225. `co(15,?);Dialog color`co();        - This is the dialog color and is only used by the
  226.                                             dialog itself.
  227.                                             Objects: Dialog
  228.  
  229. `co(15,?);Style`co();               - This describes whether an object is displayed with
  230.                                             a shadow.
  231.                                             Objects: All except Dialog
  232.  
  233. `co(15,?);Normal color`co();        - This describes the normal color of an object.
  234.                                             Objects: Text, Icon, Button, Check Box, Entry String 
  235.  
  236. `co(15,?);Normal 1st color`co();    - This describes the normal color of the character
  237.                                             referenced by "first position."
  238.                                             Objects: Text, Button, Check Box 
  239.  
  240. `co(15,?);Selected color`co();      - This describes the color of an object when selected.
  241.                                             Objects: Icon, Button, Check Box 
  242.  
  243. `co(15,?);Selected 1st color`co();  - This describes the color of the character referenced
  244.                                             by "first position" when the object is selected.
  245.                                             Objects: Text, Button, Check Box 
  246.        
  247. `co(15,?);Tabbed color`co();        - This describes the color of a tabbed object.
  248.                       Objects: Icon, Button, Check Box, Entry String 
  249.  
  250. `co(15,?);First position`co();      - This is the offset of the character in the string
  251.                                             that will be displayed with the first color values.
  252.                                             Objects: Text, Button, Check Box 
  253.  
  254. `co(15,?);Text`co();                - The text (string) for the object.
  255.                       Objects: Text, Button, Check Box
  256.  
  257. `co(15,?);Icon image #1`co();       - The two-dimensional character array that describes an
  258.                                             icon image.
  259.                                             Objects: Icon
  260.  
  261. `co(15,?);Icon Image #2`co();       - The two-dimensional character array that describes a
  262.                                             selected icon image.
  263.                                             Objects: Icon
  264.  
  265. `co(15,?);Arrow color`co();         - The color of a slider arrow.
  266.                       Objects: Slider
  267.  
  268. `co(15,?);Track color`co();         - The color of a slider track.
  269.                       Objects: Slider
  270.  
  271. `co(15,?);Grab Box color`co();      - The color of a slider grab box.
  272.                       Objects: Slider
  273.  
  274. `co(15,?);Slider Chars`co();        - The 6 characters used to draw a slider.  These are
  275.                                             the left, right, up, down, track, and grab box
  276.                                             characters.
  277.                                             Objects: Slider
  278.  
  279. `co(15,?);Input Strings`co();       - The text, mask, and template strings needed for data
  280.                                             entry. See the UltraWin documentation and demos for
  281.                                             more details.
  282.                                             Objects: Entry String
  283.  
  284. `co(15,?);Input Flags`co();         - The action InTUItion should take on an input string
  285.                       before returning control to you.  You may use no
  286.                       action or a combination of the following:
  287.                       `co(15,?);Strip`co();          - strips the entire mask from string.
  288.                                       `co(15,?);Strip End`co();      - strips only the end of the string.
  289.                                       `co(15,?);Capitalize`co();     - converts the first character of
  290.                                                        each word to upper-case.
  291.                                       `co(15,?);Type R-to-L`co();    - causes input to be entered right-
  292.                                                        to left.  This is useful for prices
  293.                                                        in data-entry forms.
  294.                                       `co(15,?);<CR> on Full`co();   - causes the equivalent of an <Enter>
  295.                                                        key press when the last character of
  296.                                                        the field is entered.
  297.                                       `co(15,?);Clr on Key`co();     - causes the field to be cleared when
  298.                                                        the first valid character is typed.
  299.                                       See the UltraWin documentation and demos for more
  300.                                             details.
  301.                                             Objects: Entry String
  302.  
  303.         Each object has a set of flags that describe its operation.  Not all
  304.     flags apply to all objects.  Here is a list of the flags and their
  305.     meaning:
  306.  
  307.     `co(15,?);Selectable`co();    - The object can be selected.
  308.     `co(15,?);Tabable`co();       - The object can be tabbed.
  309.     `co(15,?);Radio`co();         - The object is a radio button/check box.
  310.     `co(15,?);Exit Press`co();    - Returns when the mouse is over the object and a button is
  311.                     pressed.
  312.     `co(15,?);Exit Release`co();  - Returns when the mouse is over the object and a button is
  313.                     depressed and then released.
  314.     `co(15,?);Exit Over`co();     - Returns when the mouse cursor is over the object.
  315.     `co(15,?);One Level`co();     - If control is transferred from another dialog, and the
  316.                     object should exit, return just one level to the calling
  317.                     dialog.
  318.     `co(15,?);All Levels`co();    - If control is transferred from another dialog, and the
  319.                     object should exit, return all levels through all calling
  320.                     dialogs.
  321.                     (See `keyword(Dialog Transfer,[TUI2.HLP]/// Dialog Transfer);)
  322.     `co(15,?);Selected`co();      - The object is currently selected.  Check for this flag in
  323.                     your program with the is_selected macro to determine if the
  324.                     button is on or off.
  325.     `co(15,?);Tabbed`co();        - The object is currently tabbed.
  326.  
  327. `co(4,7);──────────────────────────── /// The TUICP's menus ───────────────────────────`co();
  328.  
  329.     `co(15,?);The TUICP's Main Menu`co();
  330.     `keyword(Info,/// Info [Main Menu]);  `keyword(Files,/// Files [Main Menu]);  `keyword(Dialogs,/// Dialogs [Main Menu]);  `keyword(Source,/// Source [Main Menu]);
  331.  
  332.     `co(15,?);The TUICP's Edit Menu`co();
  333.     `keyword(Info,/// Info [Edit Menu]);  `keyword(Edit,/// Edit [Edit Menu]);  `keyword(Source,/// Source [Edit Menu]);
  334.  
  335. `co(15,?);/// Info [Main Menu]`co();
  336.   Help             -  Displays the TUICP help index.  This is a context-
  337.                       sensitive group of hypertexted files under our own
  338.                       hypertext help engine, and contains all the
  339.                       information you will need to utilize InTUItion.
  340.   About InTUItion  -  Displays information about EnQue Software, along
  341.                       with system free memory.
  342.  
  343. `co(15,?);/// Files [Main Menu]`co();
  344.   TUI Params - Allows global control over colors, fonts, screen size, etc.
  345.                This sets how the TUI will look when initialized in your
  346.                program with init_tui.  This menu selection is active only
  347.                when the TUI work window is on the main screen.
  348.   New TUI    - Clears any TUI in memory and creates a new TUI.
  349.   Load TUI   - Allows you to load an existing TUI file into memory.
  350.   Save TUI   - Allows you to save the current TUI in memory to a file.
  351.   Close TUI  - Closes the current TUI without saving.
  352.   Dos Shell  - Shells out to DOS.  Type <exit> from DOS to return.
  353.   Quit       - Quits the program.
  354.  
  355. `co(15,?);/// Dialogs [Main Menu]`co();
  356.   Add Dialog       - Adds a new dialog to the current TUI.
  357.   Add Menu Dialogs - Adds a number of menu dialogs to the current TUI.
  358.   Delete Dialog    - Deletes a dialog from the current TUI.  After selecting
  359.                      delete, move your mouse to the desired dialog and press
  360.                      the left button.
  361.  
  362. `co(15,?);/// Source [Main Menu]`co();
  363.   Gen Linkable TUI  - InTUItion TUI files can be either loaded at run time
  364.      or linked in.  In order to link in a TUI, the source code needed to
  365.      create the dialog must be generated and compiled.  This generates the
  366.      source code shell, which can then be added to your project or make
  367.      file, eliminating the need to distribute seperate TUI files.  Be sure
  368.      to select a filename that will not clash with other "C" files.
  369.  
  370. `co(15,?);/// Info [Edit Menu]`co();
  371.   Help           -  displays the TUICP help index.
  372.  
  373. `co(15,?);/// Edit [Edit Menu]`co();
  374.   Clear          -  Clears all object from the dialog.
  375.   Copy           -  Copies an object to the clipboard.  After selecting
  376.                     this item, move to and click on the item to copy.
  377.   Cut            -  Same as copy but removes the item from the dialog.
  378.   Paste          -  Pastes the current item in the clipboard to the dialog.
  379.                     Select this item and hold down the left button,
  380.                     dragging the item onto the dialog.
  381.   Bring to Top   -  Changes the order of the dialog's drawing.  For
  382.                     instance, if a box is added over several buttons and
  383.                     you want the button to be on top of the box, select
  384.                     this and click on the buttons.  They will now draw
  385.                     after the box.
  386.   Set Tab Order  -  All objects within a dialog that have the "Tabable"
  387.                     parameter set can be tabbed to by the user.  This
  388.                     sets the tab order. After selecting this item, click
  389.                     on each object in the order that you wish the tabbing
  390.                     to proceed.  Note that this has the same effect on
  391.                     the drawing order as Bring to Top.
  392.   Show Clipboard -  Allows you to view the last object Copied or Cut.
  393.   Test           -  Allows you to interactively test the dialog.  This is
  394.                     one of the TUICP's most important features.  It allows 
  395.                     you to actually use the dialog as the user would and
  396.                     see the actions/colors of the dialog taking place.  It
  397.                     also allows you to test the hotkeys, tab order, slider
  398.                     action, transfer, and display the return values of
  399.                     each object that has been set to "exit."
  400.   Test with Advance is the same as Test, but uses the DO_INPUT_ADV mode,
  401.                     useful for data-entry forms.    
  402.   Main Menu      -  Returns to the main menu.
  403.  
  404. `co(15,?);/// Source [Edit Menu]`co();
  405.   Gen Dialog Shell  - This will generate a "C" source code shell with all
  406.                                             dialog processing hooks created.  All you have to do
  407.                                             is add the code needed for each dialog action.
  408.   Dialog & Help     - This will generate a "C" source code shell with all
  409.                                             dialog processing hooks created, including
  410.                                             context-sensitive calls to the hypertext help engine.
  411.                                             All you have to do is add the code needed for each
  412.                                             dialog action, and set the desired help search
  413.                                             strings.
  414.  
  415. `co(4,7);───────────────────────── /// The Online Tutorials ───────────────────────────`co();
  416.  
  417.       One of the quickest ways to learn about a tool is to have someone who
  418.     knows how to use it show you.  Now while we at EnQue can't sit down with
  419.     each and every one of you, we have given you the next best thing. Included
  420.     on the disk are a number of .TUT files.  These are recorded sesssions of
  421.     one of us putting the TUICP through its paces.  We use a popup comment box
  422.     throughout the sessions to "chat" with you during each phase of TUI
  423.     construction.
  424.     
  425.   To play back a .TUT file, just type 
  426.  
  427.   TUICP -pFILENAME.TUT
  428.   
  429.   from the command line, then sit back, relax, and let us show you how to
  430.   become proficient in no time at all!
  431.  
  432.