home *** CD-ROM | disk | FTP | other *** search
/ Media Share 13 / mediashare_13.zip / mediashare_13 / ZIPPED / PROGRAM / PBWTD13.ZIP / WORKSHOP.ZIP / PBW_TD.DOC < prev    next >
Text File  |  1994-03-07  |  139KB  |  3,118 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.           ┌───────────────────────────────────────────────────────┐
  10.           │                                                       │
  11.           │    P B / W O R K S H O P (tm)  T E S T   D R I V E    │
  12.           │  Visual Designer for PB/VISION(tm) and PowerBASIC 3.0 │
  13.           │                                                       │
  14.           │                     Documentation                     │
  15.           │                                                       │
  16.           │   (c) Copyright 1993-1994 DSE Software Publishing     │
  17.           │       Licensed Material.  All Rights Reserved.        │
  18.           │                                                       │
  19.           │        ┌────────────────────────────────────┐         │
  20.           │        │ ▀▀▀▀▀▀▀▀\      ▀▀▀▀▀▀\ ▀▀▀▀▀▀▀▀▀▀\ │         │
  21.           │        │  ▀▀▀\   ▀\    ▀▀\   ▀▀\ ▀▀▀\   ▀▀\ │         │
  22.           │        │  ▀▀▀\    ▀\  ▀▀\     ▀\ ▀▀▀\    ▀\ │         │
  23.           │        │  ▀▀▀\    ▀▀\ ▀▀\        ▀▀▀\       │         │
  24.           │        │  ▀▀▀\    ▀▀\ ▀▀▀\       ▀▀▀\ ▀\    │         │
  25.           │        │  ▀▀▀\    ▀▀\  ▀▀▀\      ▀▀▀\ ▀\    │         │
  26.           │        │  ▀▀▀\    ▀▀\    ▀▀▀\    ▀▀▀▀▀▀\    │         │
  27.           │        │  ▀▀▀\    ▀▀\      ▀▀▀\  ▀▀▀\ ▀\    │         │
  28.           │        │  ▀▀▀\    ▀▀\       ▀▀▀\ ▀▀▀\ ▀\    │         │
  29.           │        │  ▀▀▀\    ▀▀\        ▀▀\ ▀▀▀\       │         │
  30.           │        │  ▀▀▀\    ▀\  ▀\     ▀▀\ ▀▀▀\    ▀\ │         │
  31.           │        │  ▀▀▀\   ▀\   ▀▀\   ▀▀\  ▀▀▀\   ▀▀\ │         │
  32.           │        │ ▀▀▀▀▀▀▀▀\     ▀▀▀▀▀▀\  ▀▀▀▀▀▀▀▀▀▀\ │         │
  33.           │        └────────────────────────────────────┘         │
  34.           │                                                       │
  35.           │                DSE Software Publishing                │
  36.           │                  Post Office Box 96                   │
  37.           │                Willits, CA 95490-0096                 │
  38.           │                    (707) 459-4358                     │
  39.           │                                                       │
  40.           └───────────────────────────────────────────────────────┘
  41.           ┌───────────────────────────────────────────────────────┐
  42.           │  This program and its accompanying documentation      │
  43.           │  remain the exclusive property of DSE Software        │
  44.           │  Publishing.  Unauthorized use, duplication, or       │
  45.           │  distribution is strictly forbidden by federal law    │
  46.           │  and is subject to criminal prosecution.              │
  47.           └───────────────────────────────────────────────────────┘
  48.  
  49.           PowerBASIC is a registered trademark of PowerBASIC, Inc.
  50.           PB/VISION(tm) and PB/WORKSHOP(tm) are trademarks of DSE
  51.           Software Publishing.  Other product names are trademarks
  52.           or registered trademarks of their respective holders.
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                     Contents
  64.  
  65.  
  66.                   Introduction.  . . . . . . . . . . . . . . . . . . 2
  67.  
  68.                Chapter 1  Getting Started.                           3
  69.                   1.1  Installing PB/WORKSHOP. . . . . . . . . . . . 3
  70.                   1.2  Starting PB/WORKSHOP. . . . . . . . . . . . . 3
  71.                   1.3  Setting PB/WORKSHOP Preferences.  . . . . . . 3
  72.                   1.4  Exiting PB/WORKSHOP.  . . . . . . . . . . . . 4
  73.                   1.5  Using Online Help in PB/WORKSHOP. . . . . . . 4
  74.  
  75.                Chapter 2  PB/WORKSHOP Basics.                        5
  76.                   2.1  Understanding Resources.  . . . . . . . . . . 5
  77.                   2.2  PB/WORKSHOP Resource Objects. . . . . . . . . 5
  78.                      2.2.1  Forms. . . . . . . . . . . . . . . . . . 5
  79.                      2.2.2  Menus. . . . . . . . . . . . . . . . . . 5
  80.                         2.2.2.1  Popup menus.  . . . . . . . . . . . 5
  81.                         2.2.2.2  Pulldown menus. . . . . . . . . . . 6
  82.                      2.2.3  Status bars. . . . . . . . . . . . . . . 6
  83.  
  84.                Chapter 3  Working with Projects and Resources.       7
  85.                   3.1  Creating new projects.  . . . . . . . . . . . 7
  86.                      3.1.1  Project (.PRJ) files.  . . . . . . . . . 8
  87.                      3.1.2  Resource compiler files (.RC)  . . . . . 8
  88.                      3.1.3  Resource files (RES) . . . . . . . . . . 8
  89.                      3.1.4  Help source files (.TXT) and Help files
  90.                             (.HLP) . . . . . . . . . . . . . . . . . 9
  91.                      3.1.5  Include Files (.BI)  . . . . . . . . . . 9
  92.                   3.2  Opening an existing project.  . . . . . . .  10
  93.                   3.3  The Project window. . . . . . . . . . . . .  10
  94.                   3.4  Adding a resource object. . . . . . . . . .  11
  95.                   3.5  Editing a resource object.  . . . . . . . .  12
  96.                   3.6  Testing a resource object.  . . . . . . . .  12
  97.                   3.7  Copying a resource object.  . . . . . . . .  12
  98.                   3.8  Renaming a resource object. . . . . . . . .  12
  99.                   3.9  Deleting a resource object. . . . . . . . .  13
  100.                   3.10  Compiling a resource.  . . . . . . . . . .  13
  101.                   3.11  The ATTACH.EXE Utility . . . . . . . . . .  14
  102.                   3.12  The HELPGEN.EXE Utility  . . . . . . . . .  14
  103.  
  104.                Chapter 4  The Data Entry Form Editor.               15
  105.                   4.1  Creating Data Entry Forms.  . . . . . . . .  15
  106.                      4.1.1  The "Properties" dialog. . . . . . . .  15
  107.                      4.1.2  The "Text Properties" Dialog.  . . . .  17
  108.                      4.1.3  The "Palette" dialog.  . . . . . . . .  18
  109.                      4.1.4  Navigating through the Dialogs.  . . .  18
  110.  
  111.                                           i
  112.  
  113.  
  114.  
  115.                   4.2  Working with buttons. . . . . . . . . . . .  18
  116.                      4.2.1  Adding buttons.  . . . . . . . . . . .  19
  117.                      4.2.2  Selecting buttons. . . . . . . . . . .  20
  118.                      4.2.3  Moving and resizing buttons. . . . . .  20
  119.                         4.2.3.1  Moving and resizing with the
  120.                                  Properties dialog.  . . . . . . .  20
  121.                         4.2.3.2  Moving and resizing buttons
  122.                                  manually. . . . . . . . . . . . .  21
  123.                      4.2.4  Duplicating buttons. . . . . . . . . .  21
  124.                      4.2.5  Editing buttons. . . . . . . . . . . .  21
  125.                      4.2.6  Editing specific button properties.  .  21
  126.                         4.2.6.1  The String Length property. . . .  22
  127.                         4.2.6.2  The Event ID property.  . . . . .  22
  128.                         4.2.6.3  The Help ID property. . . . . . .  22
  129.                         4.2.6.4  The Name property.  . . . . . . .  23
  130.                         4.2.6.5  Grouping related buttons. . . . .  24
  131.                      4.2.7  Reordering button sequence.  . . . . .  24
  132.                      4.2.8  Creating Custom Input Masks. . . . . .  25
  133.                      4.2.9  Global Help Assignment.  . . . . . . .  27
  134.                      4.2.10  Form Code Generation. . . . . . . . .  27
  135.                         4.2.10.1  Form Initialization  . . . . . .  28
  136.                         4.2.10.2  Form Display Options . . . . . .  29
  137.                         4.2.10.3  Form Flow Control  . . . . . . .  29
  138.                         4.2.10.4  Quick Code . . . . . . . . . . .  29
  139.                   4.3  Testing a Data Entry Form.  . . . . . . . .  30
  140.                   4.4  Saving a Data Entry Form. . . . . . . . . .  30
  141.                   4.5  Exiting the Data Entry Form Editor. . . . .  30
  142.                   4.6  A Sample Data Entry Form. . . . . . . . . .  31
  143.                      4.6.1  Creating a new data entry form.  . . .  31
  144.                         4.6.1.1  Adding the new form.  . . . . . .  32
  145.                         4.6.1.2  Adding a text button. . . . . . .  33
  146.                         4.6.1.3  Adding check boxes. . . . . . . .  33
  147.                         4.6.1.4  Adding command buttons. . . . . .  34
  148.                         4.6.1.5  Adding some color to the form and
  149.                                  buttons.  . . . . . . . . . . . .  34
  150.                         4.6.1.6  Testing, fixing, and saving the
  151.                                  form. . . . . . . . . . . . . . .  34
  152.  
  153.                Chapter 5  Creating menus.                           36
  154.                   5.1  The Menu editors. . . . . . . . . . . . . .  36
  155.                      5.1.1  Menu properties. . . . . . . . . . . .  36
  156.                   5.2  The menu entry list.  . . . . . . . . . . .  37
  157.                   5.3  Menu outlining buttons  . . . . . . . . . .  37
  158.                   5.4  Starting a menu editor. . . . . . . . . . .  37
  159.                      5.4.1  Adding menu entries. . . . . . . . . .  38
  160.                         5.4.1.1  Entering menu captions. . . . . .  38
  161.                         5.4.1.2  Menu entry event id.  . . . . . .  38
  162.                         5.4.1.3  Menu entry help id. . . . . . . .  39
  163.                         5.4.1.4  Moving menu entries.  . . . . . .  39
  164.                   5.5  Menu palette dialog.  . . . . . . . . . . .  39
  165.                      5.5.1  Menu code generation.  . . . . . . . .  40
  166.                         5.5.1.1  Menu initialization.  . . . . . .  41
  167.                         5.5.1.2  Menu display options. . . . . . .  42
  168.  
  169.                                          ii
  170.  
  171.  
  172.  
  173.                         5.5.1.3  Menu flow control.  . . . . . . .  42
  174.                         5.5.1.4  Quick Code  . . . . . . . . . . .  42
  175.                   5.6  Saving a menu . . . . . . . . . . . . . . .  43
  176.  
  177.                Chapter 6  Creating Status bars.                     44
  178.                   6.1  The Status bar editor.  . . . . . . . . . .  44
  179.                      6.1.1  Status bar properties. . . . . . . . .  44
  180.                   6.2  The status bar entry list.  . . . . . . . .  45
  181.                   6.3  Status bar outlining buttons. . . . . . . .  45
  182.                   6.4  Starting the status object editor.  . . . .  45
  183.                      6.4.1  Adding Status bar entries. . . . . . .  45
  184.                         6.4.1.1  Entering Status bar captions. . .  46
  185.                         6.4.1.2  Status bar entry event id.  . . .  46
  186.                         6.4.1.3  Moving status bar entries.  . . .  46
  187.                   6.5  Status bar Palette Dialog.  . . . . . . . .  46
  188.                   6.6  Status bar Code Generation. . . . . . . . .  47
  189.                      6.6.1  Status bar Initialization. . . . . . .  48
  190.                      6.6.2  Status bar display options . . . . . .  48
  191.                      6.6.3  Quick Code . . . . . . . . . . . . . .  48
  192.                   6.7  Saving a Status bar.  . . . . . . . . . . .  49
  193.  
  194.                Chapter 7  COMMERCIAL RELEASE ONLY                   50
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.                                          iii
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.                                     Figures
  238.  
  239.  
  240.                Figure 1.1: The Preferences Dialog. . . . . . . . . . 4
  241.                Figure 3.1: New Project Dialog. . . . . . . . . . . . 7
  242.                Figure 3.2: Open Project Dialog.  . . . . . . . . . .10
  243.                Figure 3.3: Project Window  . . . . . . . . . . . . .11
  244.                Figure 3.4: Create New Object Dialog. . . . . . . . .11
  245.                Figure 3.5: Copy Object Dialog. . . . . . . . . . . .12
  246.                Figure 3.6: Rename Object Dialog. . . . . . . . . . .13
  247.                Figure 4.1: New Form. . . . . . . . . . . . . . . . .15
  248.                Figure 4.2: The Properties dialog.  . . . . . . . . .16
  249.                Figure 4.3: The Text Properties Window. . . . . . . .17
  250.                Figure 4.4: The Palette Dialog. . . . . . . . . . . .18
  251.                Figure 4.5: The Reorder Buttons Dialog. . . . . . . .25
  252.                Figure 4.6: The Custom Input Masks Dialog.  . . . . .26
  253.                Figure 4.7: Global Help Id Assignment Dialog. . . . .27
  254.                Figure 4.8: Form Code Generation Dialog.  . . . . . .28
  255.                Figure 4.9: Quick Code File Creation Dialog.  . . . .30
  256.                Figure 4.10: The Project Window for PBWDEMO.PRJ.  . .31
  257.                Figure 4.11: The Sample Data Entry Form.  . . . . . .32
  258.                Figure 5.1: Menu Properties.  . . . . . . . . . . . .36
  259.                Figure 5.2: Menu entry list.  . . . . . . . . . . . .37
  260.                Figure 5.3: Menu outlining keys.  . . . . . . . . . .37
  261.                Figure 5.4: The Menu Palette Dialog.  . . . . . . . .40
  262.                Figure 5.5: Menu Code Generation Dialog.  . . . . . .41
  263.                Figure 5.6: Quick Code File Creation Dialog.  . . . .42
  264.                Figure 6.1: Status Bar Properties.  . . . . . . . . .44
  265.                Figure 6.2: Status bar entry list.  . . . . . . . . .45
  266.                Figure 6.3: Menu Outlining Keys.  . . . . . . . . . .45
  267.                Figure 6.4: Status Bar Palette Dialog . . . . . . . .47
  268.                Figure 6.5: Status bar Code Generation Dialog.  . . .47
  269.                Figure 6.6: Quick Code File Creation Dialog.  . . . .49
  270.  
  271.  
  272.  
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285.                                          iv
  286.           PB/WORKSHOP(tm) - Version 1.03
  287.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  288.  
  289.           Introduction.
  290.           ─────────────────────────────────────────────────────────────────
  291.  
  292.                PB/WORKSHOP VISUAL DESIGNER is a development system used for
  293.                the design of complex user interfaces and source code
  294.                generation.  This manual describes PB/WORKSHOP and takes the
  295.                user through a step by step tutorial in interface design.
  296.  
  297.                Some of the terms may seem foreign since you do not have the
  298.                PB/VISION documentation that provides the details of the
  299.                interface tools.  More extensive documentation and example
  300.                programs are included with the commercial package.
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  
  340.  
  341.  
  342.  
  343.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  344.           (c) Copyright 1993-1994 DSE Software Publishing               2
  345.           PB/WORKSHOP(tm) - Version 1.03
  346.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  347.  
  348.                                       Chapter 1
  349.  
  350.                                   Getting Started.
  351.  
  352.           █████████████████████████████████████████████████████████████████
  353.  
  354.                This chapter describes the PB/WORKSHOP installation process.
  355.                Also described is how to start PB/WORKSHOP, set the program
  356.                "Preferences", exit PB/WORKSHOP, and how to call up context
  357.                sensitive help at any time.
  358.  
  359.  
  360.           1.1  Installing PB/WORKSHOP.
  361.           ─────────────────────────────────────────────────────────────────
  362.  
  363.                PB/WORKSHOP is installed at the same time PB/VISION is
  364.                installed.  If you have not yet installed PB/VISION, place
  365.                the diskette in either drive A: or drive B:, go to that
  366.                drive and run INSTALL.EXE.
  367.  
  368.                You will be required to enter the installation directory as
  369.                well as the path of PowerBASIC (PB.EXE) itself.  The process
  370.                is automated and will take a few minutes to complete.
  371.  
  372.                If you have any problem during installation, please contact
  373.                DSE Software Publishing for instructions.
  374.  
  375.  
  376.           1.2  Starting PB/WORKSHOP.
  377.           ─────────────────────────────────────────────────────────────────
  378.  
  379.                To start PB/WORKSHOP, type in the following at the DOS
  380.                prompt:
  381.  
  382.                     PBW            ' press <CR>
  383.  
  384.                PB/WORKSHOP will then load and execute.
  385.  
  386.                If a project was open during a previous execution of
  387.                PB/WORKSHOP, it will be automatically reloaded.
  388.  
  389.  
  390.           1.3  Setting PB/WORKSHOP Preferences.
  391.           ─────────────────────────────────────────────────────────────────
  392.  
  393.                When running PB/WORKSHOP for the first time, it is important
  394.                that the system preferences be set correctly.  To set the
  395.                system preferences, select "Project|Preferences" from the
  396.                pulldown menu.  PB/WORKSHOP will then display the
  397.                "Preferences" dialog.
  398.  
  399.  
  400.  
  401.  
  402.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  403.           (c) Copyright 1993-1994 DSE Software Publishing               3
  404.           PB/WORKSHOP(tm) - Version 1.03
  405.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  406.  
  407.                           ┌──────────── PREFERENCES ───────────┐
  408.                           │ ┌ Screen Lines────────┐ ╔════════╗ │
  409.                           │ │ (*) 25 Lines        │ ║   Ok   ║ │
  410.                           │ │ ( ) 28 Lines        │ ╚════════╝ │
  411.                           │ │ ( ) 43 Lines        │ ┌────────┐ │
  412.                           │ │ ( ) 50 Lines        │ │ Cancel │ │
  413.                           │ └─────────────────────┘ └────────┘ │
  414.                           │ ┌ Screen Mode─────────┐ ┌────────┐ │
  415.                           │ │ ( ) Text Mode       │ │  Help  │ │
  416.                           │ │ (*) Graphic Mapping │ └────────┘ │
  417.                           │ └─────────────────────┘            │
  418.                           └────────────────────────────────────┘
  419.                            Figure 1.1: The Preferences Dialog.
  420.  
  421.                The "Screen Lines" box tells PB/WORKSHOP what screen
  422.                resolution to use.  For normal use, 28 lines provides the
  423.                best results when developing standard 25 line mode
  424.                applications.  This mode is only available on EGA/VGA
  425.                equipped systems.
  426.  
  427.                "Screen Mode" is used to select between generic text mode or
  428.                the graphics mapped text mode.  "Graphics Mapping" provides
  429.                the crisp look of a graphics program, but the speed and low
  430.                overhead of text mode.  When run on MDA/CGA equipped system,
  431.                graphics mapping is automatically disabled and the generic
  432.                text mode is used.  This is automatic for PB/WORKSHOP and
  433.                the programs you create with it.
  434.  
  435.                To make the Preference changes permanent, select the "OK"
  436.                button and the dialog will close.
  437.  
  438.  
  439.           1.4  Exiting PB/WORKSHOP.
  440.           ─────────────────────────────────────────────────────────────────
  441.  
  442.                To exit PB/WORKSHOP, select "Project|Exit" from the pulldown
  443.                menu.  There is no need to select "Project|Close" first as
  444.                PB/WORKSHOP always saves your work before exiting.
  445.  
  446.  
  447.           1.5  Using Online Help in PB/WORKSHOP.
  448.           ─────────────────────────────────────────────────────────────────
  449.  
  450.                If you are unsure of what any PB/WORKSHOP menu or dialog is
  451.                requesting, pressing <F1> will bring forward context
  452.                sensitive help for that item.  Many dialogs may also have a
  453.                separate "Help" button.  Help returned by the "Help" button
  454.                is usually more generic than the help returned by pressing
  455.                <F1> at a specific button or menu entry.
  456.  
  457.                To close a help window, select the "Quit".
  458.  
  459.  
  460.  
  461.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  462.           (c) Copyright 1993-1994 DSE Software Publishing               4
  463.           PB/WORKSHOP(tm) - Version 1.03
  464.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  465.  
  466.                                       Chapter 2
  467.  
  468.                                  PB/WORKSHOP Basics.
  469.  
  470.           █████████████████████████████████████████████████████████████████
  471.  
  472.                This chapter describes PB/WORKSHOP resource files and
  473.                individual resource objects.
  474.  
  475.  
  476.           2.1  Understanding Resources.
  477.           ─────────────────────────────────────────────────────────────────
  478.  
  479.                Resources are all of the objects that belong to a particular
  480.                project.  Resources are made of of any combination of forms,
  481.                menus, and status bars.
  482.  
  483.  
  484.           2.2  PB/WORKSHOP Resource Objects.
  485.           ─────────────────────────────────────────────────────────────────
  486.  
  487.                The individual components of a PB/WORKSHOP project are
  488.                called "resource objects".  At the present time, PB/WORKSHOP
  489.                supports 4 kinds of resource objects:
  490.  
  491.  
  492.           2.2.1  Forms.
  493.           ─────────────────────────────────────────────────────────────────
  494.  
  495.                In PB/VISION forms are windows that provide a mechanism for
  496.                entering specific information.
  497.  
  498.                Data entry forms are made up of any combination of text
  499.                buttons, command buttons, check boxes, and such.  All
  500.                objects placed in a form are referred to as "buttons".
  501.  
  502.                Using PB/WORKSHOP's form editor, you can add, customize, and
  503.                move buttons around until you have what you are looking for.
  504.                At any time during the process, you can test the form or
  505.                save it for later editing.
  506.  
  507.  
  508.           2.2.2  Menus.
  509.           ─────────────────────────────────────────────────────────────────
  510.  
  511.                PB/WORKSHOP supports two very distinct menu styles:
  512.  
  513.  
  514.           2.2.2.1  Popup menus.
  515.           ─────────────────────────────────────────────────────────────────
  516.  
  517.                Popup menus are windows that present a list of possible
  518.                choices to select.
  519.  
  520.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  521.           (c) Copyright 1993-1994 DSE Software Publishing               5
  522.           PB/WORKSHOP(tm) - Version 1.03
  523.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  524.  
  525.                Using PB/WORKSHOP's popup menu editor, you can add menu
  526.                entries, change the position of an entry, and customize the
  527.                coloring scheme of the popup menu.
  528.  
  529.  
  530.           2.2.2.2  Pulldown menus.
  531.           ─────────────────────────────────────────────────────────────────
  532.  
  533.                Pulldown menus are menus that can display child menus that
  534.                drop from a horizontal menu bar at the top of the screen.
  535.  
  536.                PB/VISION's pulldown menu editor is nearly identical to the
  537.                popup menu editor.  The difference is that the pulldown menu
  538.                editor has extra features that let you define the hierarchy
  539.                of the menu entries.
  540.  
  541.  
  542.           2.2.3  Status bars.
  543.           ─────────────────────────────────────────────────────────────────
  544.  
  545.                Status bars are visual accelerators.  If your program will
  546.                allow events to occur when the user presses a particular key
  547.                combination, the status bar would be used to not only
  548.                provide a mechanism of trapping the key but also provide a
  549.                visual reference to that key.  The user then has the option
  550.                of either pressing the key or clicking on the visual
  551.                indicator with the mouse.
  552.  
  553.                PB/VISION's status bar editor is quite similar to the popup
  554.                menu editor all ready described.
  555.  
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562.  
  563.  
  564.  
  565.  
  566.  
  567.  
  568.  
  569.  
  570.  
  571.  
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  580.           (c) Copyright 1993-1994 DSE Software Publishing               6
  581.           PB/WORKSHOP(tm) - Version 1.03
  582.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  583.  
  584.                                       Chapter 3
  585.  
  586.                         Working with Projects and Resources.
  587.  
  588.           █████████████████████████████████████████████████████████████████
  589.  
  590.                This chapter describes what projects are and how to create
  591.                them.  Also discussed are what additional files are created
  592.                when a new project is created.
  593.  
  594.  
  595.           3.1  Creating new projects.
  596.           ─────────────────────────────────────────────────────────────────
  597.  
  598.                To create a new PB/WORKSHOP project, select "Project|New"
  599.                from the pulldown menu.  PB/WORKSHOP will then display the
  600.                New Project dialog:
  601.  
  602.                        ┌─────────────── NEW PROJECT ──────────────┐
  603.                        │                                          │
  604.                        │┌────────────────────────────────────────┐│
  605.                        ││                                        ││
  606.                        │└────────────────────────────────────────┘│
  607.                        │          ╔════════╗  ┌────────┐          │
  608.                        │          ║   Ok   ║  │ Cancel │          │
  609.                        │          ╚════════╝  └────────┘          │
  610.                        └──────────────────────────────────────────┘
  611.                              Figure 3.1: New Project Dialog.
  612.  
  613.                Enter the file name of the project to create.  Do not enter
  614.                any path information.  The extension ".PRJ" will
  615.                automatically appended to the file name if it is not
  616.                supplied.  To proceed, select the "Ok" button.
  617.  
  618.                For each project that you create, PB/WORKSHOP creates a
  619.                subdirectory to place the project component files in.  If
  620.                you were to create a project call "HELLO", your directory
  621.                tree wouud look like this:
  622.  
  623.                                    \ (ROOT)
  624.                                      └─ WORKSHOP
  625.                                         ├─ HELLO
  626.                                         ├─ PBWDEMO
  627.                                         └─ RC
  628.  
  629.                Each project gets its own subdirectory.
  630.  
  631.                At the of creation, PB/WORKSHOP builds a stub $INCLUDE file
  632.                and a starter help source file and places them in the
  633.                projects subdirectory.  As PB/WORKSHOP and its utilities
  634.                build other files, they too are placed in the subdirectory.
  635.                Each one of these files begin with the projects name, but
  636.  
  637.  
  638.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  639.           (c) Copyright 1993-1994 DSE Software Publishing               7
  640.           PB/WORKSHOP(tm) - Version 1.03
  641.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  642.  
  643.                have different file extensions depending on the purpose of
  644.                the file.
  645.  
  646.                The next few sections will describe the files that
  647.                PB/WORKSHOP will create.
  648.  
  649.  
  650.           3.1.1  Project (.PRJ) files.
  651.           ─────────────────────────────────────────────────────────────────
  652.  
  653.                For each project created, PB/WORKSHOP creates and maintains
  654.                a project management file.  This is the file that keeps
  655.                track of all of the other component files belonging to a
  656.                project.  Project files always have a .PRJ extension.
  657.  
  658.                Inside the project file are sections that define what
  659.                resource object files belong to what resource objects.
  660.                Other sections maintain a list of the custom event codes and
  661.                help screens defined in the individual resource objects.
  662.  
  663.                Unlike the rest of the files PB/WORKSHOP creates, this file
  664.                is placed in the same directory as PB/WORKSHOP itself.
  665.  
  666.  
  667.           3.1.2  Resource compiler files (.RC)
  668.           ──────────────────────────────────────────────────────────────────
  669.  
  670.                Each time you create a new resource object, PB/WORKSHOP
  671.                creates a "resource component" file to place the object in.
  672.                These files all end with an ".RC" file extension and they are
  673.                all placed into the ".\RC" subdirectory, a subdirectory off
  674.                of the main PB/WORKSHOP directory.
  675.  
  676.                If you look into the ".\RC" subdirectory you will note that
  677.                they all have strange names.  All "RC" files are given a
  678.                completely random file name.  Since PB/WORKSHOP manages these
  679.                files itself, you should never have to worry about the names
  680.                of these files.
  681.  
  682.  
  683.           3.1.3  Resource files (RES)
  684.           ──────────────────────────────────────────────────────────────────
  685.  
  686.                These are the files that PB/WORKSHOP creates when you select
  687.                the "Project|Resource Compiler" option from the main menu.
  688.                When selected, PB/WORKSHOP collects all of the resource
  689.                objects you have created and puts them into a single
  690.                compressed file.  This file is then placed in the
  691.                subdirectory assigned to your project.
  692.  
  693.                For more information on compiling resource files, see section
  694.                3.10.
  695.  
  696.  
  697.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  698.           (c) Copyright 1993-1994 DSE Software Publishing               8
  699.           PB/WORKSHOP(tm) - Version 1.03
  700.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  701.  
  702.           3.1.4  Help source files (.TXT) and Help files (.HLP)
  703.           ──────────────────────────────────────────────────────────────────
  704.  
  705.                The "Help source file" is simply a specially formatted plain
  706.                text file that has the source for all of your help screens.
  707.                If you want to have context sensitive help screens for all of
  708.                your menu and data entry form entries, you must put the text
  709.                for each entry in this file.
  710.  
  711.                You can create and edit this file with any editor capable of
  712.                loading and saving ASCII files (such as EDIT.COM).
  713.                PB/WORKSHOP only creates the stub file.  It is up to you to
  714.                add the text for each help screen.
  715.  
  716.                PB/VISION came with a utility named "PBVHC.EXE" (which for
  717.                stands for PB/VISION Help Compiler".  This utility reads in
  718.                your original help source files and outputs a compressed .HLP
  719.                version of the same file.  When the user requests help, it is
  720.                from this file that the screen is loaded.
  721.  
  722.  
  723.           3.1.5  Include Files (.BI)
  724.           ──────────────────────────────────────────────────────────────────
  725.  
  726.                These files are managed by PB/WORKSHOP _and_ PBVHC.EXE.
  727.  
  728.                When "Project|Resource Compiler" is selected from the main
  729.                menu, not only does PB/WORKSHOP create a resource file (RES),
  730.                it also updates this $INCLUDE file with references to all of
  731.                the objects and help screens defined in your project.  If you
  732.                have form objects in your project, complete "TYPE" variable
  733.                definitions for each form will also be added.
  734.  
  735.                You are permitted to add your own information to the project
  736.                $INCLUDE file but you _must_ add it _below_ the line that
  737.                reads:
  738.  
  739.                     REM [USER DATA]
  740.  
  741.                Everything below this line is preserved between resource
  742.                compiles.  Everything else is subject to the whims of the
  743.                compiler and will probably be deleted.
  744.  
  745.                What can you put in the "[USER DATA]" area?  You can put your
  746.                own "DECLARE" statements, "TYPE" variables, anything really.
  747.                Just keep it below that line.
  748.  
  749.  
  750.  
  751.  
  752.  
  753.  
  754.  
  755.  
  756.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  757.           (c) Copyright 1993-1994 DSE Software Publishing               9
  758.           PB/WORKSHOP(tm) - Version 1.03
  759.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  760.  
  761.           3.2  Opening an existing project.
  762.           ─────────────────────────────────────────────────────────────────
  763.  
  764.                To open an existing PB/WORKSHOP project, select
  765.                "Project|Open Project" from the main menu.  PB/WORKSHOP will
  766.                then display the "Open Project" dialog:
  767.  
  768.                   ┌─────────────────── OPEN PROJECT ───────────────────┐
  769.                   │                                                    │
  770.                   │            ┌────────────────────────┐   ╔════════╗ │
  771.                   │ File Name  │F:\PB\*.PRJ             │   ║   Ok   ║ │
  772.                   │            └────────────────────────┘   ╚════════╝ │
  773.                   │  Files              Drives              ┌────────┐ │
  774.                   │ ┌────────────────┐ ┌────────────────┐   │ Cancel │ │
  775.                   │ │BOG.PRJ         █ │ F:             │   └────────┘ │
  776.                   │ │COWBASE.PRJ     ■ └────────────────┘              │
  777.                   │ │FAX.PRJ         ░  Directories                    │
  778.                   │ │FIRST.PRJ       ░ ┌────────────────┐              │
  779.                   │ │FONTVIEW.PRJ    ░ │F:\             █              │
  780.                   │ │HELPDEMO.PRJ    ░ │ PB             ■              │
  781.                   │ │HELPGEN.PRJ     ░ │  FONTS         ░              │
  782.                   │ │PBMORSE.PRJ     ░ │  INCLUDE       ░              │
  783.                   │ │PBW.PRJ         █ │  LIB           █              │
  784.                   │ └────────────────┘ └────────────────┘              │
  785.                   └────────────────────────────────────────────────────┘
  786.                              Figure 3.2: Open Project Dialog.
  787.  
  788.                Assuming you are familiar with how this dialog works, choose
  789.                a project to load and select "Ok".
  790.  
  791.  
  792.           3.3  The Project window.
  793.           ─────────────────────────────────────────────────────────────────
  794.  
  795.                When you open a new or existing project, PB/WORKSHOP will
  796.                display the Project window.  For new projects, the window is
  797.                empty except for the labels showing what kinds of objects
  798.                can be added.  For existing projects you will also see a
  799.                categorized list of all the resource objects belonging to
  800.                the project.
  801.  
  802.  
  803.  
  804.  
  805.  
  806.  
  807.  
  808.  
  809.  
  810.  
  811.  
  812.  
  813.  
  814.  
  815.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  816.           (c) Copyright 1993-1994 DSE Software Publishing               10
  817.           PB/WORKSHOP(tm) - Version 1.03
  818.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  819.  
  820.                                   ┌─── COWBASE.PRJ ───┐
  821.                                   │[FORM]             █
  822.                                   │ CowList           ░
  823.                                   │ NewCow            ■
  824.                                   │ EditCow           ░
  825.                                   │ SearchCow         ░
  826.                                   │[POPMENU]          ░
  827.                                   │[PULLMENU]         ░
  828.                                   │[STATUS]           ░
  829.                                   │ CowKeys           ░
  830.                                   │                   ░
  831.                                   │                   █
  832.                                   └───────────────────┘
  833.                                 Figure 3.3: Project Window
  834.  
  835.                From the Project window, you can create new resource objects
  836.                or select existing resource objects to edit.
  837.  
  838.  
  839.           3.4  Adding a resource object.
  840.           ─────────────────────────────────────────────────────────────────
  841.  
  842.                Adding a new resource object to a project can be
  843.                accomplished using several methods.  The easiest way is to
  844.                simply press the <INSert> key on the keyboard cursor pad.
  845.                PB/WORKSHOP will then display the "Create New Object"
  846.                dialog:
  847.  
  848.                       ┌──────────── CREATE NEW OBJECT ────────────┐
  849.                       │                                           │
  850.                       │             ┌───────────────┐  ╔════════╗ │
  851.                       │ New Object: │               │  ║   Ok   ║ │
  852.                       │             └───────────────┘  ╚════════╝ │
  853.                       │             ┌───────────────┐  ┌────────┐ │
  854.                       │             │ (*) FORM      │  │ Cancel │ │
  855.                       │             │ ( ) POPMENU   │  └────────┘ │
  856.                       │             │ ( ) PULLMENU  │  ┌────────┐ │
  857.                       │             │ ( ) STATUS    │  │  Help  │ │
  858.                       │             └───────────────┘  └────────┘ │
  859.                       └───────────────────────────────────────────┘
  860.                           Figure 3.4: Create New Object Dialog.
  861.  
  862.                Enter a unique name for the object.  Without using spaces or
  863.                punctuation, enter a descriptive name such as "MainMenu" or
  864.                "BobsForm".  This name will not appear where anyone else can
  865.                see.  You must also choose what class of resource object to
  866.                create.  When satisfied, select "Ok".
  867.  
  868.                Two other methods of creating a new object are to select one
  869.                of the object labels (in brackets) from the Project window,
  870.                or to select "Object|New Object" from the main menu.  All
  871.                three methods yield the same net result.
  872.  
  873.  
  874.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  875.           (c) Copyright 1993-1994 DSE Software Publishing               11
  876.           PB/WORKSHOP(tm) - Version 1.03
  877.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  878.  
  879.           3.5  Editing a resource object.
  880.           ─────────────────────────────────────────────────────────────────
  881.  
  882.                To edit a resource object, select one from the Project
  883.                window by positioning the highlight bar over the object name
  884.                and press <CR> or selecting "Object|Edit" from the main
  885.                menu.  PB/WORKSHOP will then load and display the editor
  886.                that is appropriate for that particular kind of object.
  887.  
  888.  
  889.           3.6  Testing a resource object.
  890.           ─────────────────────────────────────────────────────────────────
  891.  
  892.                PB/WORKSHOP allows you to test any object at any time.  To
  893.                test an object, position the highlight bar in the Project
  894.                window over the intended object and either press <F5> or
  895.                select "Object:Test Object" from the main menu.
  896.  
  897.  
  898.           3.7  Copying a resource object.
  899.           ─────────────────────────────────────────────────────────────────
  900.  
  901.                To copy an existing resource object to a new resource
  902.                object, position the highlight bar in the Project window
  903.                over the intended object and select "Object|Copy Object"
  904.                from the main menu.  PB/WORKSHOP will then display the "Copy
  905.                Object" dialog:
  906.  
  907.                       ┌─────────────── COPY OBJECT ───────────────┐
  908.                       │                                           │
  909.                       │              ┌───────────────┐ ╔════════╗ │
  910.                       │ Object Name: │CowList        │ ║   Ok   ║ │
  911.                       │              └───────────────┘ ╚════════╝ │
  912.                       │              ┌───────────────┐ ┌────────┐ │
  913.                       │ New Object:  │               │ │ Cancel │ │
  914.                       │              └───────────────┘ └────────┘ │
  915.                       │                                ┌────────┐ │
  916.                       │                                │  Help  │ │
  917.                       │                                └────────┘ │
  918.                       └───────────────────────────────────────────┘
  919.                              Figure 3.5: Copy Object Dialog.
  920.  
  921.                As when creating a new resource object, enter a unique name
  922.                for the object.  Omit spaces and punctuation, and use a
  923.                descriptive name.  When satisfied, select "Ok" to create the
  924.                copy.
  925.  
  926.  
  927.           3.8  Renaming a resource object.
  928.           ─────────────────────────────────────────────────────────────────
  929.  
  930.                For those occasions when you mistakenly enter a wrong name
  931.                that, PB/WORKSHOP allows you to rename a resource object.
  932.  
  933.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  934.           (c) Copyright 1993-1994 DSE Software Publishing               12
  935.           PB/WORKSHOP(tm) - Version 1.03
  936.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  937.  
  938.                To rename an existing object, position the highlight bar in
  939.                the Project window over the intended object and select
  940.                "Object|Copy Rename" from the main menu.  PB/WORKSHOP will
  941.                then display the "Copy Object" dialog:
  942.  
  943.                       ┌─────────────── RENAME OBJECT ──────────────┐
  944.                       │                                            │
  945.                       │              ┌───────────────┐  ╔════════╗ │
  946.                       │ Object Name: │CowList        │  ║   Ok   ║ │
  947.                       │              └───────────────┘  ╚════════╝ │
  948.                       │              ┌───────────────┐  ┌────────┐ │
  949.                       │ New Name:    │               │  │ Cancel │ │
  950.                       │              └───────────────┘  └────────┘ │
  951.                       │                                 ┌────────┐ │
  952.                       │                                 │  Help  │ │
  953.                       │                                 └────────┘ │
  954.                       └────────────────────────────────────────────┘
  955.                             Figure 3.6: Rename Object Dialog.
  956.  
  957.                The "Object Name" box displays the current name.  Enter a
  958.                label in the "New Name" box and select "Ok".
  959.  
  960.  
  961.           3.9  Deleting a resource object.
  962.           ─────────────────────────────────────────────────────────────────
  963.  
  964.                To delete a resource object from a project, position the
  965.                highlight bar in the Project window over the intended object
  966.                and press the <DELete> key or select "Object|Delete" from
  967.                the main menu.
  968.  
  969.                A dialog will appear requesting that you verify the
  970.                operation.  Choose well.
  971.  
  972.  
  973.           3.10  Compiling a resource.
  974.           ─────────────────────────────────────────────────────────────────
  975.  
  976.                To include any PB/WORKSHOP resource objects in your own
  977.                programs, you are required to build a stand-alone resource
  978.                (RES) file.  Selecting "Project|Resource Compiler" will
  979.                perform this task.
  980.  
  981.                Resource compiling involves collecting all of the objects
  982.                you have created for a particular project, converting them
  983.                to a "memory image" format, and compressing them to take
  984.                take less disk space.  All of the objects are placed into a
  985.                single file in your project subdirectory.  This file has the
  986.                same name as your project, but with an "RES" extension.
  987.  
  988.                In your own programs, you execute commands to retrieve
  989.                specific objects from the file and display them on the
  990.                screen.
  991.  
  992.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  993.           (c) Copyright 1993-1994 DSE Software Publishing               13
  994.           PB/WORKSHOP(tm) - Version 1.03
  995.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  996.  
  997.                Also during the resource compilation process, PB/WORKSHOP
  998.                updates the project's $INCLUDE file by adding references for
  999.                any new objects and event code id's.  Anything unused is
  1000.                purged.
  1001.  
  1002.  
  1003.           3.11  The ATTACH.EXE Utility
  1004.           ─────────────────────────────────────────────────────────────────
  1005.  
  1006.                After you have created both an executable (EXE) file and a
  1007.                resource (RES) file, you can combine them using the provided
  1008.                ATTACH.EXE utility.
  1009.  
  1010.                From your project subdirectory, run ATTACH.EXE with the name
  1011.                of your project:
  1012.  
  1013.                     ATTACH hello
  1014.  
  1015.                The ATTACH utility will then append the resource file
  1016.                directly to the end of your program so that you need only
  1017.                distribute file.
  1018.  
  1019.  
  1020.           3.12  The HELPGEN.EXE Utility
  1021.           ─────────────────────────────────────────────────────────────────
  1022.  
  1023.                Creating help screens is usually one of the last priorities
  1024.                of product development.  The HELPGEN.EXE utility provided
  1025.                with PB/WORKSHOP keeps it that way.
  1026.  
  1027.                As you create menus and data entry forms in PB/WORKSHOP, you
  1028.                will be asked to enter a "Help Context Id" for each of the
  1029.                various menu entries and form buttons.  Were it not for
  1030.                HELPGEN, you would have been required to plan your help
  1031.                screens long before creating any interface objects.
  1032.  
  1033.                When requested by PB/WORKSHOP to enter a Help Context Id for
  1034.                a particular item, it is completely safe to enter a help
  1035.                context Id that does not yet appear in the help source file.
  1036.                HELPGEN will add these Id's after the fact.
  1037.  
  1038.                To use HELPGEN, from your project subdirectory, enter:
  1039.  
  1040.                     HELPGEN project.
  1041.  
  1042.                The HELPGEN utility will then scan your existing help source
  1043.                file (project.TXT) and resource objects, and will then add
  1044.                any contexts referenced in the objects but do not yet appear
  1045.                in the help source.  Nothing will be removed from your
  1046.                original file at any time.
  1047.  
  1048.  
  1049.  
  1050.  
  1051.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1052.           (c) Copyright 1993-1994 DSE Software Publishing               14
  1053.           PB/WORKSHOP(tm) - Version 1.03
  1054.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1055.  
  1056.                                       Chapter 4
  1057.  
  1058.                              The Data Entry Form Editor.
  1059.  
  1060.           █████████████████████████████████████████████████████████████████
  1061.  
  1062.                This chapter describes the PB/WORKSHOP form editor.
  1063.  
  1064.  
  1065.           4.1  Creating Data Entry Forms.
  1066.           ─────────────────────────────────────────────────────────────────
  1067.  
  1068.                As described in section 3.4, create a new "FORM"  object.
  1069.                PB/VISION will load the Data Entry Form editor and display a
  1070.                blank form in the center of the screen:
  1071.  
  1072.                     ┌───────────────── NEW FORM ─────────────────────┐
  1073.                     │················································│
  1074.                     │················································│
  1075.                     │················································│
  1076.                     │················································│
  1077.                     │················································│
  1078.                     │················································│
  1079.                     │················································│
  1080.                     └────────────────────────────────────────────────┘
  1081.                                   Figure 4.1: New Form.
  1082.  
  1083.                You are now in the form editing mode.
  1084.  
  1085.                From within the form editor, you can add, change, group,
  1086.                move, reorder, resize, or delete buttons.  You have total
  1087.                control over what the form looks like and how it operates.
  1088.  
  1089.  
  1090.           4.1.1  The "Properties" dialog.
  1091.           ─────────────────────────────────────────────────────────────────
  1092.  
  1093.                Much of the customizing of forms and buttons will be
  1094.                performed through the Properties dialog.  This is the dialog
  1095.                that also appears when a form object is created or edited.
  1096.                From the Properties dialog you can control every aspect of
  1097.                the form window and all of the buttons within it.  There are
  1098.                other, easier methods of changing certain properties and
  1099.                they will be discussed at length in subsequent sections.
  1100.  
  1101.  
  1102.  
  1103.  
  1104.  
  1105.  
  1106.  
  1107.  
  1108.  
  1109.  
  1110.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1111.           (c) Copyright 1993-1994 DSE Software Publishing               15
  1112.           PB/WORKSHOP(tm) - Version 1.03
  1113.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1114.  
  1115.                              ┌┤■├─── BUTTON PROPERTIES ────┐
  1116.                              │┌───────────────────────────┐│
  1117.                              ││ Object Box                ││
  1118.                              │└───────────────────────────┘│
  1119.                              │┌───────────────────────────┐│
  1120.                              ││ Settings Box              ││
  1121.                              │└───────────────────────────┘│
  1122.                              │┌───────────────────────────┐│
  1123.                              ││ Property 1___:            █│
  1124.                              ││ Property 2___:            ■│
  1125.                              ││ Property 3___:            ░│
  1126.                              ││ Property 4___:            ░│
  1127.                              ││ Property 5___:            ░│
  1128.                              ││ Property 6___:            █│
  1129.                              │└───────────────────────────┘│
  1130.                              └─────────────────────────────┘
  1131.                             Figure 4.2: The Properties dialog.
  1132.  
  1133.                The Properties window consists of three parts:
  1134.  
  1135.                     Object Box - Displays the name of each button in the
  1136.                     current form.  Click on this box to select the button
  1137.                     to be edited.
  1138.  
  1139.                     Settings Box - This button lets you edit the setting
  1140.                     for the property selected in the Properties List.  With
  1141.                     some properties, an arrow will appear indicating you
  1142.                     can make a selection from a list of possible values for
  1143.                     that property.
  1144.  
  1145.                     Properties List - This list displays all of the current
  1146.                     settings for the selected button.
  1147.  
  1148.                Navigating through the Properties dialog with the mouse is
  1149.                straightforward and merits no special advice.  Navigating
  1150.                via the keyboard, however, may seem a little cumbersome
  1151.                until you teach your fingers the correct motions:
  1152.  
  1153.                     While at the Object Box, pressing <CR> will drop you to
  1154.                     the Properties List.  Using the cursor keys you can
  1155.                     then move up or down the list until you find what you
  1156.                     are looking for.
  1157.  
  1158.                     Pressing <CR> again will move you to the Settings Box
  1159.                     where you can edit the property you just selected.
  1160.                     Press <CR> again and the property is made permanent and
  1161.                     you're back at the Properties List.
  1162.  
  1163.                     From here, press <TAB> and you are back at the Object
  1164.                     Box again.
  1165.  
  1166.                Once you get the hang of it, it is quite efficient.
  1167.  
  1168.  
  1169.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1170.           (c) Copyright 1993-1994 DSE Software Publishing               16
  1171.           PB/WORKSHOP(tm) - Version 1.03
  1172.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1173.  
  1174.           4.1.2  The "Text Properties" Dialog.
  1175.           ─────────────────────────────────────────────────────────────────
  1176.  
  1177.                The Text Properties dialog is one of the easier methods of
  1178.                changing certain properties.  Through the Text Properties
  1179.                dialog, you can change one or more of 4 specific text
  1180.                oriented properties.  To display the Text Properties dialog,
  1181.                press any alphanumeric key while the form is in focus:
  1182.  
  1183.                  ┌────────────────── TEXT PROPERTIES ───────────────────┐
  1184.                  │          ┌──────────────────────────────┐            │
  1185.                  │ Caption: │                              │            │
  1186.                  │          └──────────────────────────────┘            │
  1187.                  │          ┌────────────────────┐                      │
  1188.                  │ Name:    │                    │                      │
  1189.                  │          └────────────────────┘                      │
  1190.                  │          ┌───────────────┐                ╔════════╗ │
  1191.                  │ Event ID:│               │                ║   Ok   ║ │
  1192.                  │          └───────────────┘                ╚════════╝ │
  1193.                  │          ┌───────────────┐                ┌────────┐ │
  1194.                  │ Help ID: │               │                │ Cancel │ │
  1195.                  │          └───────────────┘                └────────┘ │
  1196.                  └──────────────────────────────────────────────────────┘
  1197.                          Figure 4.3: The Text Properties Window.
  1198.  
  1199.                The Text Properties dialog allows you to modify any of the
  1200.                following properties (if applicable):
  1201.  
  1202.                     Caption property - This is the caption displayed with
  1203.                     each button.  It can also set the title of the current
  1204.                     form.  Not all buttons have a caption.
  1205.  
  1206.                     Name property - This will be the name of the type
  1207.                     variable element PB/WORKSHOP will create when it
  1208.                     generates source code for your program.  When used with
  1209.                     Command Buttons, this will be the "Group id" that
  1210.                     interconnects them.  More on this later.
  1211.  
  1212.                     Event ID property  - When PB/WORKSHOP generates source
  1213.                     code for your program, it uses this property as a label
  1214.                     to create custom event codes for command buttons.  More
  1215.                     on this later.
  1216.  
  1217.                     Help ID property - This is the context name of the help
  1218.                     screen to bring up when <F1> is pressed in your
  1219.                     program.  More on this later.
  1220.  
  1221.                Depending on the type of button, some of the fields may not
  1222.                appear in the Text Properties dialog.
  1223.  
  1224.                After you have made any changes, select the "Ok" button to
  1225.                make the changes take effect.
  1226.  
  1227.  
  1228.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1229.           (c) Copyright 1993-1994 DSE Software Publishing               17
  1230.           PB/WORKSHOP(tm) - Version 1.03
  1231.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1232.  
  1233.           4.1.3  The "Palette" dialog.
  1234.           ─────────────────────────────────────────────────────────────────
  1235.  
  1236.                While editing a form or button in the form editor, you can
  1237.                open the Palette dialog.  This is a floating dialog (multi-
  1238.                threading in PB/VISION) and can be left displayed
  1239.                continuously.
  1240.  
  1241.                      ┌┤■├──────────────── PALETTE ──────────────────┐
  1242.                      │┌────────────────────────────────────────────┐│
  1243.                      ││Foreground: ░░▓▓░░▓▓░░▓▓■■▓▓░░▓▓░░▓▓░░▓▓░░▓▓││
  1244.                      ││Background: ■■░░▓▓░░▓▓░░▓▓░░▓▓░░▓▓░░▓▓░░▓▓░░││
  1245.                      ││ Ext. Fore: ░░▓▓░░▓▓░░▓▓░░▓▓░░▓▓░░▓▓░░▓▓░░■■││
  1246.                      ││ Ext. Back: ■■░░▓▓░░▓▓░░▓▓░░▓▓░░▓▓░░▓▓░░▓▓░░││
  1247.                      │└────────────────────────────────────────────┘│
  1248.                      │ ┌───────────────────────────┐  ╔═══════════╗ │
  1249.                      │ │ Settings Box              │  ║ Apply All ║ │
  1250.                      │ └───────────────────────────┘  ╚═══════════╝ │
  1251.                      │ ┌───────────────────────────┐  ┌───────────┐ │
  1252.                      │ │Color Property 1:          █  │┌─────────┐│ │
  1253.                      │ │Color Property 2:          ■  ││  Color  ││ │
  1254.                      │ │Color Property 3:          █  │└─────────┘│ │
  1255.                      │ └───────────────────────────┘  └───────────┘ │
  1256.                      └──────────────────────────────────────────────┘
  1257.                              Figure 4.4: The Palette Dialog.
  1258.  
  1259.                From the Palette dialog you may modify any color related
  1260.                property for the form or button in focus.
  1261.  
  1262.                When coloring a button, the "Apply All" feature can be used
  1263.                to color all similar buttons (of the same kind) at a single
  1264.                pass.  Color the current button as you normally would, and
  1265.                then select "Apply All".
  1266.  
  1267.  
  1268.           4.1.4  Navigating through the Dialogs.
  1269.           ─────────────────────────────────────────────────────────────────
  1270.  
  1271.                With the potential of having three dialogs displayed
  1272.                simultaneously, the screen may seem cluttered.  You may
  1273.                close the Properties or Palette Dialog without affecting the
  1274.                ability to create buttons.
  1275.  
  1276.                To switch between the different dialogs, press the <F6> key
  1277.                or click the right mouse button.  Each methods has the
  1278.                effect of switching to the next logical window.
  1279.  
  1280.  
  1281.           4.2  Working with buttons.
  1282.           ─────────────────────────────────────────────────────────────────
  1283.  
  1284.                PB/WORKSHOP supports all of the button styles supported by
  1285.                the PB/VISION library.  These include:
  1286.  
  1287.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1288.           (c) Copyright 1993-1994 DSE Software Publishing               18
  1289.           PB/WORKSHOP(tm) - Version 1.03
  1290.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1291.  
  1292.                ■ Area Button      ■ Creates an invisible "hot" area on a
  1293.                                     form.
  1294.  
  1295.                ■ Check Box        ■ Toggles the selection of an option On
  1296.                                or Off.
  1297.  
  1298.                ■ Combo Button     ■ Allows user to select from a drop down
  1299.                                list.
  1300.  
  1301.                ■ Command Button   ■ Invokes an event when selected.
  1302.  
  1303.                ■ Dir List         ■ Allows selection of a directory path.
  1304.  
  1305.                ■ Drive List       ■ Allows selection of a disk drive.
  1306.  
  1307.                ■ File List        ■ Allows selection of a file.
  1308.  
  1309.                ■ HScrollbar       ■ Allows selection of a value from a
  1310.                                scroll bar.
  1311.  
  1312.                ■ List Button      ■ Allows selection from a list.
  1313.  
  1314.                ■ Option Button    ■ Allows selection of an item in a
  1315.                                group.
  1316.  
  1317.                ■ Text button      ■ Displays text that the user can edit.
  1318.  
  1319.                ■ VScrollbar       ■ Allows selection of a value from a
  1320.                              scroll bar.
  1321.  
  1322.                Also supported are two static buttons available only in
  1323.                PB/WORKSHOP.
  1324.  
  1325.                ■ Label            ■ Displays text that the user cannot
  1326.                                edit.
  1327.  
  1328.                ■ Box/Line         ■ Displays a box that the user cannot
  1329.                                select.
  1330.  
  1331.                The only equivalent they have in PB/VISION is the WINPRINT()
  1332.                and WINDRAWBOX() subroutines.  These objects cannot be
  1333.                selected in a program.
  1334.  
  1335.  
  1336.           4.2.1  Adding buttons.
  1337.           ─────────────────────────────────────────────────────────────────
  1338.  
  1339.                To add a new button to a form, select a button type from the
  1340.                "Button" pulldown menu in the form editor.  PB/VISION will
  1341.                then place a blank button of that type in the center of the
  1342.                form being edited.
  1343.  
  1344.  
  1345.  
  1346.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1347.           (c) Copyright 1993-1994 DSE Software Publishing               19
  1348.           PB/WORKSHOP(tm) - Version 1.03
  1349.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1350.  
  1351.           4.2.2  Selecting buttons.
  1352.           ─────────────────────────────────────────────────────────────────
  1353.  
  1354.                Pressing <TAB> or <SHIFT><TAB> in the form editor will move
  1355.                you forward or backward through the list of buttons.  You
  1356.                may also move through the buttons by selecting the Object
  1357.                Box in the Properties dialog and then use the cursor keys to
  1358.                move up or down the list.
  1359.  
  1360.                If you have a mouse, simply clicking on a particular button
  1361.                will bring it into focus.
  1362.  
  1363.                In some cases it may not be possible for you to click on a
  1364.                particular button.  If you have placed a static label or
  1365.                frame box over a button, selection of that button can only
  1366.                be made by using the <TAB> or <SHIFT><TAB> key, or by moving
  1367.                the static object out of the way first.
  1368.  
  1369.                You also have the option of reordering the sequence of the
  1370.                buttons so that the static buttons are placed below the
  1371.                dynamic buttons.  This will be discussed in section 4.2.7.
  1372.  
  1373.  
  1374.           4.2.3  Moving and resizing buttons.
  1375.           ─────────────────────────────────────────────────────────────────
  1376.  
  1377.                To move or resize a button, you have the option of entering
  1378.                the exact coordinates in the Properties dialog, or you can
  1379.                move them manually using the keyboard or mouse.
  1380.  
  1381.  
  1382.           4.2.3.1  Moving and resizing with the Properties dialog.
  1383.           ─────────────────────────────────────────────────────────────────
  1384.  
  1385.                To move or resize one using the Properties dialog, you must
  1386.                enter valid numbers into the following properties:
  1387.  
  1388.                     Row_______:      vertical position
  1389.                     Column____:      horizontal position
  1390.                     Rows______:      vertical dimension
  1391.                     Columns___:      horizontal dimension
  1392.  
  1393.                Each property value is automatically verified.  You cannot
  1394.                change a button so that it would fall off the edge of
  1395.                virtual of the form size or so that will be larger than the
  1396.                preset size limits.  Also, depending on the button type,
  1397.                some of these properties may not be available.
  1398.  
  1399.  
  1400.  
  1401.  
  1402.  
  1403.  
  1404.  
  1405.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1406.           (c) Copyright 1993-1994 DSE Software Publishing               20
  1407.           PB/WORKSHOP(tm) - Version 1.03
  1408.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1409.  
  1410.           4.2.3.2  Moving and resizing buttons manually.
  1411.           ─────────────────────────────────────────────────────────────────
  1412.  
  1413.                Using the mouse, you can change the width of a button
  1414.                holding the left mouse button while the mouse cursor is
  1415.                hovering above the lower right edge of the button.
  1416.  
  1417.                When using the keyboard, holding down the <CTRL> key while
  1418.                pressing any of the four directional cursor keys will allow
  1419.                you to change the size of a button.  Pressing any of the
  1420.                four directional cursor keys without holding the <CTRL> key
  1421.                will allow you to move it around the form.
  1422.  
  1423.                With Command buttons, Combo buttons, and Text buttons,
  1424.                changing the vertical dimension has the effect of changing
  1425.                the button style between one of three styles, those being
  1426.                Single line, shadowed, and box.  Whatever the style chosen,
  1427.                it will have no effect on the overall function of these
  1428.                buttons.
  1429.  
  1430.  
  1431.           4.2.4  Duplicating buttons.
  1432.           ─────────────────────────────────────────────────────────────────
  1433.  
  1434.                When creating a series of similar buttons, it may be easier
  1435.                to copy the "master" button into the Paste buffer and then
  1436.                paste multiple copies.
  1437.  
  1438.                To copy a button into the Paste buffer, select the button
  1439.                you want to copy and press <CTRL><INS>.   To paste a copy of
  1440.                that button to the form, press <SHIFT><INS>.
  1441.  
  1442.                You may also perform these operations by selecting
  1443.                "Edit|Copy" and "Edit|Paste" from the pulldown menu.
  1444.  
  1445.  
  1446.           4.2.5  Editing buttons.
  1447.           ─────────────────────────────────────────────────────────────────
  1448.  
  1449.                After you have created a button, you may still go back and
  1450.                edit any aspect of by using the Properties dialog (see
  1451.                section 4.1.1), Text Properties dialog (section 4.1.2), or
  1452.                the Palette dialog (section 4.1.3).
  1453.  
  1454.                Each one of these property editing dialogs has its merits
  1455.                when it comes to ease of use.
  1456.  
  1457.  
  1458.           4.2.6  Editing specific button properties.
  1459.           ─────────────────────────────────────────────────────────────────
  1460.  
  1461.                Some of the button properties shown in the Properties dialog
  1462.                have no counterpart to the parameters passed to the same
  1463.  
  1464.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1465.           (c) Copyright 1993-1994 DSE Software Publishing               21
  1466.           PB/WORKSHOP(tm) - Version 1.03
  1467.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1468.  
  1469.                routines in PB/VISION.  Others are somewhat vague in their
  1470.                representation of PB/VISION function call parameters.  Let's
  1471.                discuss a few.
  1472.  
  1473.  
  1474.           4.2.6.1  The String Length property.
  1475.           ─────────────────────────────────────────────────────────────────
  1476.  
  1477.                The "String Length" property defines the overall string
  1478.                length of a Text button and should not be confused with the
  1479.                "Cols" (columns) property.  The maximum string length is set
  1480.                to 255 characters, while the columns are set to the maximum
  1481.                width of the form.
  1482.  
  1483.  
  1484.           4.2.6.2  The Event ID property.
  1485.           ─────────────────────────────────────────────────────────────────
  1486.  
  1487.                In PB/VISION, you are required to assign a unique event code
  1488.                to each command button so that when one is pressed, the
  1489.                event id code is returned by GETEVENT().  The assignment is
  1490.                usually performed by creating a series of constants such as
  1491.                "%cmOk", "%cmHelp", etc.
  1492.  
  1493.                To assign an event code in PB/WORKSHOP, you must enter a
  1494.                unique string label for the Event Id property.  This id will
  1495.                be used as the event code.
  1496.  
  1497.                When PB/WORKSHOP compiles your project (see section 3.10),
  1498.                it will add these labels to the project's $INCLUDE file and
  1499.                reference them in your code where needed.  Event code id's
  1500.                like "Ok" or "Hello" will be added to the file as "%cmOk"
  1501.                and "%cmHello".
  1502.  
  1503.                Several event code id's are already defined by PB/WORKSHOP.
  1504.                When PB/WORKSHOP generates your program, it adds code to
  1505.                respond to these predefined events.
  1506.  
  1507.                     OK        Closes the current form or menu.
  1508.                     CANCEL    Closes the current form or menu.
  1509.                     HELP      Displays a generic help screen.
  1510.                     EXIT      Terminates execution of the program.
  1511.  
  1512.  
  1513.           4.2.6.3  The Help ID property.
  1514.           ─────────────────────────────────────────────────────────────────
  1515.  
  1516.                To add context sensitive help to your program, you must
  1517.                enter the help context id's for each button in the form.
  1518.  
  1519.                For the help context id, enter the name of a help context
  1520.                defined in the help screen source file [project.TXT].
  1521.  
  1522.  
  1523.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1524.           (c) Copyright 1993-1994 DSE Software Publishing               22
  1525.           PB/WORKSHOP(tm) - Version 1.03
  1526.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1527.  
  1528.                As an example, if your help screen source file has a context
  1529.                that reads:
  1530.  
  1531.                     .context MyHelp
  1532.  
  1533.                You would then enter the text "MyHelp" as the help context
  1534.                id.
  1535.  
  1536.                If you have not yet defined any help screens, you are still
  1537.                permitted to enter help context id's, but you will have to
  1538.                re-compile the resource file later.  Until that time, the
  1539.                default help screen will be displayed in its place.
  1540.  
  1541.                To quickly assign help context id's to every button in the
  1542.                form, you may select the "Global Help Id Assignment" dialog.
  1543.                This feature is described at length in section 4.2.9.
  1544.  
  1545.                As an added bonus PB/WORKSHOP includes a utility called
  1546.                HELPGEN.EXE that can go through your project to find out
  1547.                what help screens are referenced but do not actually exist.
  1548.                It will then add labels for those screens to the help source
  1549.                file.
  1550.  
  1551.  
  1552.           4.2.6.4  The Name property.
  1553.           ─────────────────────────────────────────────────────────────────
  1554.  
  1555.                The "Name" property (not to be confused with the "caption"
  1556.                property) serves several purposes in PB/WORKSHOP.
  1557.  
  1558.                The primary purpose of the Name property is to label the
  1559.                type variable element for the form's type variable.  If you
  1560.                have a form object called "MyForm" and in it is a single
  1561.                check box with the name "CheckMe", when PB/WORKSHOP compiles
  1562.                the resource file it will add the following type variable
  1563.                definition to the project's $INCLUDE file:
  1564.  
  1565.                     TYPE MyFormTYPE
  1566.                          checkme AS BYTE
  1567.                     END TYPE
  1568.  
  1569.                If you were to add a List Button to that same form and give
  1570.                it the name "MyList", PB/WORKSHOP would add this to the
  1571.                project's $INCLUDE file:
  1572.  
  1573.                     TYPE MyFormTYPE
  1574.                          checkme AS BYTE
  1575.                          MyList AS INTEGER
  1576.                     END TYPE
  1577.  
  1578.                     DIM MyList$(1) AS SHARED STRING
  1579.  
  1580.  
  1581.  
  1582.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1583.           (c) Copyright 1993-1994 DSE Software Publishing               23
  1584.           PB/WORKSHOP(tm) - Version 1.03
  1585.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1586.  
  1587.                The "MyList$()" array is the string array that will hold the
  1588.                information being displayed in the list, and the "MyList%"
  1589.                element in the type variable will refer to the current list
  1590.                position.
  1591.  
  1592.                The second use of the Name property will be discussed next.
  1593.  
  1594.  
  1595.           4.2.6.5  Grouping related buttons.
  1596.           ─────────────────────────────────────────────────────────────────
  1597.  
  1598.                Two button classes in PB/VISION, command buttons and option
  1599.                buttons, can be grouped together so that when one button in
  1600.                the group is selected, the other buttons in the group become
  1601.                deselected.
  1602.  
  1603.                To identify a button with a group, the "Name" property is
  1604.                used.  When two or more command buttons or option buttons
  1605.                share the same Name property, they become linked together.
  1606.  
  1607.                You can only group buttons of the same class.  Command
  1608.                buttons cannot be grouped with option buttons or vice-versa.
  1609.                You may have up to 255 buttons in a single group.
  1610.  
  1611.                It is important that all buttons within a group be in
  1612.                logical sequence.  You must not have non-grouped buttons
  1613.                between a series of grouped buttons.  Please read the next
  1614.                section for information on how to correct any that are out
  1615.                of sequence.
  1616.  
  1617.  
  1618.           4.2.7  Reordering button sequence.
  1619.           ─────────────────────────────────────────────────────────────────
  1620.  
  1621.                So that you are able to create buttons out of sequence and
  1622.                be able to fix it later, PR/WORKSHOP provides the "Reorder
  1623.                Buttons" dialog.  To display this dialog, select
  1624.                "Options|Reorder" from the pulldown menu:
  1625.  
  1626.  
  1627.  
  1628.  
  1629.  
  1630.  
  1631.  
  1632.  
  1633.  
  1634.  
  1635.  
  1636.  
  1637.  
  1638.  
  1639.  
  1640.  
  1641.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1642.           (c) Copyright 1993-1994 DSE Software Publishing               24
  1643.           PB/WORKSHOP(tm) - Version 1.03
  1644.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1645.  
  1646.                        ┌──────────── REORDER BUTTONS ─────────────┐
  1647.                        │                                          │
  1648.                        │ ┌───────────────────────────┐ ┌────────┐ │
  1649.                        │ │form1 - FORM               █ │  Done  │ │
  1650.                        │ │FAXLIST - FILE             ░ └────────┘ │
  1651.                        │ │Low Resolution - OPTION    ░ ┌────────┐ │
  1652.                        │ │Normal Resolution - OPTION ░ │  Help  │ │
  1653.                        │ │High Resolution - OPTION   ░ └────────┘ │
  1654.                        │ │9 Pin Printer - OPTION     ■            │
  1655.                        │ │24 Pin Printer - OPTION    ░            │
  1656.                        │ │Laser Printer - OPTION     ░            │
  1657.                        │ │Print Actual Size - CHECK  ░            │
  1658.                        │ │Suppress Errors - CHECK    ░            │
  1659.                        │ │View Fax - COMMAND         █            │
  1660.                        │ └───────────────────────────┘            │
  1661.                        │ ┌───┐ ┌───┐    ╔════════════╗            │
  1662.                        │ │ U │ │ D │    ║ Smart Sort ║            │
  1663.                        │ └───┘ └───┘    ╚════════════╝            │
  1664.                        └──────────────────────────────────────────┘
  1665.                          Figure 4.5: The Reorder Buttons Dialog.
  1666.  
  1667.                To move a button, position the highlight bar over the
  1668.                desired button and press one of the up or down pointing
  1669.                direction buttons.  The button will be moved in direction
  1670.                you requested.
  1671.  
  1672.                To facilitate the quick organization of groups of command
  1673.                buttons and option buttons, the "Smart Sort" feature is
  1674.                provided.  The feature will put all of the buttons belonging
  1675.                to a group in logical sequence.
  1676.  
  1677.                When you are satisfied with the ordering of the buttons,
  1678.                select "Done".
  1679.  
  1680.  
  1681.           4.2.8  Creating Custom Input Masks.
  1682.           ─────────────────────────────────────────────────────────────────
  1683.  
  1684.                PB/WORKSHOP allows for the creation of custom input masks
  1685.                for Text buttons.  To create or edit a custom input mask,
  1686.                select "Options|Edit Custom Input Mask" from the pulldown
  1687.                menu.  PB/WORKSHOP will then display the "Edit Custom Input
  1688.                Masks" dialog:
  1689.  
  1690.  
  1691.  
  1692.  
  1693.  
  1694.  
  1695.  
  1696.  
  1697.  
  1698.  
  1699.  
  1700.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1701.           (c) Copyright 1993-1994 DSE Software Publishing               25
  1702.           PB/WORKSHOP(tm) - Version 1.03
  1703.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1704.  
  1705.                   ┌───────────── EDIT CUSTOM INPUT MASKS ─────────────┐
  1706.                   │ ┌───┐┌──────────────────────────────────────────┐ │
  1707.                   │ │  1││99-99-9999                                │ │
  1708.                   │ └───┘└──────────────────────────────────────────┘ │
  1709.                   │ ┌───────────────────────────────────────────────┐ │
  1710.                   │ │99-99-9999                                     █ │
  1711.                   │ │(999) 999-9999                                 ░ │
  1712.                   │ │AA-999                                         ■ │
  1713.                   │ │                                               ░ │
  1714.                   │ │                                               ░ │
  1715.                   │ │                                               ░ │
  1716.                   │ │                                               ░ │
  1717.                   │ │                                               ░ │
  1718.                   │ │                                               █ │
  1719.                   │ └───────────────────────────────────────────────┘ │
  1720.                   │      ╔════════╗    ┌────────┐    ┌────────┐       │
  1721.                   │      ║   Ok   ║    │ Cancel │    │  Help  │       │
  1722.                   │      ╚════════╝    └────────┘    └────────┘       │
  1723.                   └───────────────────────────────────────────────────┘
  1724.                         Figure 4.6: The Custom Input Masks Dialog.
  1725.  
  1726.                To create a custom input mask, position the highlight bar
  1727.                over a blank entry and press <CR>.  You may then begin
  1728.                entering valid mask characters.  Valid characters include:
  1729.  
  1730.                     Code   Description
  1731.                     ─────  ─────────────────────────────────
  1732.                       A    Alphabetic (a-z, A-Z).
  1733.                       9    Decimal digit.
  1734.                       #    Digit, sign, or blank.
  1735.                       N    Alphanumeric.
  1736.                       L    Logical (Y,y,N,n).
  1737.                       X    Any character.
  1738.                       !    Convert to upper case.
  1739.  
  1740.                Some examples are:
  1741.  
  1742.                     Mask          Valid input
  1743.                     ────────────  ─────────────────────────────────────
  1744.                     "99/99/9999"  11/21/1962
  1745.                     "!!-NNNN"     ZZ-543S
  1746.                     "AAAAAAAAAA"  PB/VISION or pb/vision
  1747.                     "A!A!A!A!A!"  pB/ViSiOn
  1748.                     "L"           Y or N
  1749.  
  1750.                In PB/WORKSHOP, you may define up to 32 custom masks per
  1751.                project.
  1752.  
  1753.                To reference a custom input mask in a PB/WORKSHOP Text
  1754.                button, select the "Masks" property from the Properties
  1755.                list.  Next, select the mask from the settings combo button.
  1756.  
  1757.  
  1758.  
  1759.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1760.           (c) Copyright 1993-1994 DSE Software Publishing               26
  1761.           PB/WORKSHOP(tm) - Version 1.03
  1762.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1763.  
  1764.                When PB/WORKSHOP generates the source code for your program,
  1765.                it will add a TEXTBUTTONMASK() call for each custom input
  1766.                mask defined.
  1767.  
  1768.  
  1769.           4.2.9  Global Help Assignment.
  1770.           ─────────────────────────────────────────────────────────────────
  1771.  
  1772.                The "Global Help Id Assignment" dialog allows you to set the
  1773.                help context id property for all of the buttons in the
  1774.                current form at one time.  To display this dialog, select
  1775.                "Options|"Global Help Id Assignment" from the pulldown menu:
  1776.  
  1777.                     ┌────────── GLOBAL HELP ID ASSIGNMENT ──────────┐
  1778.                     │                        ┌──────────────────┐   │
  1779.                     │  Help Context ID Text: │                  │   │
  1780.                     │                        └──────────────────┘   │
  1781.                     │╔══════════════╗┌─────────────┐┌──────────────┐│
  1782.                     │║   Use Text   ║│ Auto Assign ││    Cancel    ││
  1783.                     │╚══════════════╝└─────────────┘└──────────────┘│
  1784.                     └───────────────────────────────────────────────┘
  1785.                       Figure 4.7: Global Help Id Assignment Dialog.
  1786.  
  1787.                To set all of the help context id properties to a single
  1788.                common help context id, enter a Help context id into the
  1789.                text button and select the "Use Text" button.
  1790.  
  1791.                The "Auto Assign" button will perform an intelligent auto
  1792.                assignment of each help context id property.  For command
  1793.                buttons, the Help context id property will be set to match
  1794.                the Event Id property.  With all other types of buttons, the
  1795.                Help context id property will be set to match the Name
  1796.                property.
  1797.  
  1798.  
  1799.           4.2.10  Form Code Generation.
  1800.           ─────────────────────────────────────────────────────────────────
  1801.  
  1802.                Before PB/WORKSHOP can generate source code for a form, the
  1803.                "Source Code Generation" dialog must be filled in properly.
  1804.                To display this dialog, select "Options|Form Code
  1805.                Generation" from the pulldown menu:
  1806.  
  1807.  
  1808.  
  1809.  
  1810.  
  1811.  
  1812.  
  1813.  
  1814.  
  1815.  
  1816.  
  1817.  
  1818.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1819.           (c) Copyright 1993-1994 DSE Software Publishing               27
  1820.           PB/WORKSHOP(tm) - Version 1.03
  1821.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1822.  
  1823.                        ┌──────── SOURCE CODE GENERATION ─────────┐
  1824.                        │                                         │
  1825.                        │ ┌ SUB/FUNCTION────────┐  ╔════════════╗ │
  1826.                        │ │MyForm               │  ║     Ok     ║ │
  1827.                        │ └─────────────────────┘  ╚════════════╝ │
  1828.                        │ ┌ Initialization──────┐  ┌────────────┐ │
  1829.                        │ │ ( ) Create Inline   │  │   Cancel   │ │
  1830.                        │ │ (*) Load Resource   │  └────────────┘ │
  1831.                        │ └─────────────────────┘  ┌────────────┐ │
  1832.                        │ ┌ Display ────────────┐  │    Help    │ │
  1833.                        │ │ [ ] Show at Runtime │  └────────────┘ │
  1834.                        │ │ [X] Show on Event   │  ┌────────────┐ │
  1835.                        │ │     [MyForm       ] │  │ Quick Code │ │
  1836.                        │ └─────────────────────┘  └────────────┘ │
  1837.                        │ ┌ Flow Control ───────┐                 │
  1838.                        │ │ (*) Modal           │                 │
  1839.                        │ │ ( ) Multi-Threading │                 │
  1840.                        │ │ [X] Lock Window     │                 │
  1841.                        │ │ [X] Close on <CR>   │                 │
  1842.                        │ │ [X] Close on <ESC>  │                 │
  1843.                        │ └─────────────────────┘                 │
  1844.                        └─────────────────────────────────────────┘
  1845.                          Figure 4.8: Form Code Generation Dialog.
  1846.  
  1847.                In the Sub/Function box, PB/WORKSHOP displays the name of
  1848.                the current form object.  When PB/WORKSHOP generates source
  1849.                code, the function or sub names will begin with the form
  1850.                object name and end with either ".INIT" and/or ".ROUTINE":
  1851.  
  1852.                     SUB MyForm.INIT ()
  1853.                     FUNCTION MyForm.ROUTINE% ()
  1854.  
  1855.                The type variable definition created for this form will also
  1856.                use the same key word:
  1857.  
  1858.                     TYPE MyFormTYPE
  1859.                          ...
  1860.                     END TYPE
  1861.  
  1862.                When loading a data entry form in a program, the form object
  1863.                will be referred to as "%rc" + the form object name, e.g.
  1864.                "%rcMyForm".
  1865.  
  1866.  
  1867.           4.2.10.1  Form Initialization
  1868.           ─────────────────────────────────────────────────────────────────
  1869.  
  1870.                The Initialization box in the Source Code Generation dialog
  1871.                determines how the form will be created.
  1872.  
  1873.                When "Create Inline" is selected, PB/WORKSHOP generates a
  1874.                function call for each button.  If your program has more
  1875.  
  1876.  
  1877.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1878.           (c) Copyright 1993-1994 DSE Software Publishing               28
  1879.           PB/WORKSHOP(tm) - Version 1.03
  1880.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1881.  
  1882.                than one form, this will increase the size of your
  1883.                executable file and memory usage substantially.
  1884.  
  1885.                The "Load Resource" generates a single line of code that
  1886.                loads the entire form from a compiled resource (.RES) file.
  1887.                It is fast, memory efficient, and the recommended method of
  1888.                loading forms.
  1889.  
  1890.  
  1891.           4.2.10.2  Form Display Options
  1892.           ─────────────────────────────────────────────────────────────────
  1893.  
  1894.                The "Form Display Options" box in the Source Code Generation
  1895.                dialog determines when the form will be displayed.
  1896.  
  1897.                To have the form displayed when the program begins, enable
  1898.                the "Show at Runtime" check box.
  1899.  
  1900.                The "Show on Event" option will add code to allow the form
  1901.                to be displayed whenever a particular event is returned by
  1902.                GETEVENT().  Enter the name of that Event code id in the
  1903.                text button below.
  1904.  
  1905.  
  1906.           4.2.10.3  Form Flow Control
  1907.           ─────────────────────────────────────────────────────────────────
  1908.  
  1909.                PB/VISION can create forms that are either Modal or Multi-
  1910.                Threading.  Either selection will generate code appropriate
  1911.                for that style.
  1912.  
  1913.                "Modal" means that the user cannot select any other
  1914.                interface object until the form is closed. "Multi-Threading"
  1915.                means the form can run concurrently with other multi-
  1916.                threading objects.  These topics are discussed thoroughly in
  1917.                the PB/VISION tutorial.
  1918.  
  1919.                To lock the form in place when it is displayed, enable the
  1920.                "Lock Window" check box.  This is the default mode for modal
  1921.                forms.  Enabling the "Close on <CR>" or "Close on <ESC>
  1922.                check boxes will add code to close the form when either of
  1923.                those keys is pressed.
  1924.  
  1925.  
  1926.           4.2.10.4  Quick Code
  1927.           ─────────────────────────────────────────────────────────────────
  1928.  
  1929.                To create code only for the current form, select the "Quick
  1930.                Code" button in the Source Code Generation dialog.
  1931.                PB/VISION will then request the name of the file to create:
  1932.  
  1933.  
  1934.  
  1935.  
  1936.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1937.           (c) Copyright 1993-1994 DSE Software Publishing               29
  1938.           PB/WORKSHOP(tm) - Version 1.03
  1939.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1940.  
  1941.                        ┌─────────── FILENAME TO CREATE ───────────┐
  1942.                        │                                          │
  1943.                        │┌────────────────────────────────────────┐│
  1944.                        ││                                        ││
  1945.                        │└────────────────────────────────────────┘│
  1946.                        │          ╔════════╗  ┌────────┐          │
  1947.                        │          ║   Ok   ║  │ Cancel │          │
  1948.                        │          ╚════════╝  └────────┘          │
  1949.                        └──────────────────────────────────────────┘
  1950.                        Figure 4.9: Quick Code File Creation Dialog.
  1951.  
  1952.                Enter a valid filename and select "Ok". If the file already
  1953.                exists, you will have the option of appending the form to
  1954.                the existing file or overwrite the file completely.
  1955.  
  1956.  
  1957.           4.3  Testing a Data Entry Form.
  1958.           ─────────────────────────────────────────────────────────────────
  1959.  
  1960.                The form editor makes it easy to test your data entry form
  1961.                at any time.  This way you can see the effects of any
  1962.                changes that were made.  To test your form, select
  1963.                "Object:Test Form" from the pulldown menu or press <F5>.
  1964.  
  1965.                You can use <TAB> and <SHIFT><TAB>, or the defined
  1966.                accelerator keys to move around the form.  Use the test mode
  1967.                to make sure that your buttons are in the proper order.
  1968.  
  1969.                To leave the test mode, press <ESC> or click the right mouse
  1970.                button.
  1971.  
  1972.  
  1973.           4.4  Saving a Data Entry Form.
  1974.           ─────────────────────────────────────────────────────────────────
  1975.  
  1976.                To save a form that has been edited, select "Form|Save Form"
  1977.                from the pulldown menu, or press <F2>.
  1978.  
  1979.                As a precaution against power loss, you should save your
  1980.                work often.
  1981.  
  1982.  
  1983.           4.5  Exiting the Data Entry Form Editor.
  1984.           ─────────────────────────────────────────────────────────────────
  1985.  
  1986.                To exit the form editor, select "Form:Exit Form Editor" from
  1987.                the pulldown menu, or press <F10>.  You will have the
  1988.                opportunity to save your work if it has not yet been saved.
  1989.  
  1990.  
  1991.  
  1992.  
  1993.  
  1994.  
  1995.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1996.           (c) Copyright 1993-1994 DSE Software Publishing               30
  1997.           PB/WORKSHOP(tm) - Version 1.03
  1998.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1999.  
  2000.           4.6  A Sample Data Entry Form.
  2001.           ─────────────────────────────────────────────────────────────────
  2002.  
  2003.                PB/WORKSHOP includes a starter project that will give you an
  2004.                idea what it is like to work with data entry forms.  If you
  2005.                haven't yet loaded PB/WORKSHOP, please load it now and
  2006.                follow these steps:
  2007.  
  2008.                1.   Select "Project|Open Project".
  2009.  
  2010.                2.   Using the "Project Open" dialog, locate and open the
  2011.                     "PBWDEMO.PRJ" file.  Upon opening the project, the
  2012.                     Project window will appear.
  2013.  
  2014.                                   ┌─── PBWDEMO.PRJ ───┐
  2015.                                   │[FORM]             █
  2016.                                   │ EditMember        ░
  2017.                                   │[POPMENU]          ■
  2018.                                   │[PULLMENU]         ░
  2019.                                   │[STATUS]           ░
  2020.                                   │                   ░
  2021.                                   │                   ░
  2022.                                   │                   ░
  2023.                                   │                   █
  2024.                                   └───────────────────┘
  2025.                      Figure 4.10: The Project Window for PBWDEMO.PRJ.
  2026.  
  2027.                3.   In the Project window, select the "EditMember" form.
  2028.  
  2029.                     The form editor will be displayed, and the selected
  2030.                     form will load.
  2031.  
  2032.                Now is the time to experiment a little.  Select each of the
  2033.                buttons in the form and see what properties each has.  See
  2034.                how the command buttons and option buttons use the "Name"
  2035.                property to group them together.  See how the Text button
  2036.                "Mask" property controls input to the Text button.
  2037.  
  2038.                You can also test this form to see how it will run in a
  2039.                compiled program.  Select "Options|Test", or press <F5>.  To
  2040.                exit the test mode, press the <ESC> button or click the
  2041.                right mouse button.
  2042.  
  2043.                To exit this form, select "Form|Exit" or press <F10>.
  2044.  
  2045.  
  2046.           4.6.1  Creating a new data entry form.
  2047.           ─────────────────────────────────────────────────────────────────
  2048.  
  2049.                You have already experimented with working with existing
  2050.                forms. Now you will get to create one of your own.  Before
  2051.                creating any form, however, there are several things you
  2052.                will have to take into consideration.
  2053.  
  2054.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  2055.           (c) Copyright 1993-1994 DSE Software Publishing               31
  2056.           PB/WORKSHOP(tm) - Version 1.03
  2057.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  2058.  
  2059.                  1. What should the form window look like?  What colors and
  2060.                     border styles will you use?  Will it be modal or
  2061.                     multi-threading?
  2062.  
  2063.                  2. What kinds of buttons will be used in the form?
  2064.  
  2065.                     Some queries are mutually exclusive and will require a
  2066.                     group of Option buttons.  What if you need to accept a
  2067.                     file name, will you use a Text button or a File list,
  2068.                     or maybe even both.
  2069.  
  2070.                Let's create a form that allows the user to enter some text
  2071.                and make a couple of printing choices.  This is how it
  2072.                should look:
  2073.  
  2074.                                 ┌──── Print a String ────┐
  2075.                                 │ ┌────────────────────┐ │
  2076.                                 │ │                    │ │
  2077.                                 │ └────────────────────┘ │
  2078.                                 │ ┌ Format ────────────┐ │
  2079.                                 │ │   [ ] Bold         │ │
  2080.                                 │ │   [ ] Underlined   │ │
  2081.                                 │ │   [ ] Italic       │ │
  2082.                                 │ └────────────────────┘ │
  2083.                                 │ ╔════════╗  ┌────────┐ │
  2084.                                 │ ║   Ok   ║  │ Cancel │ │
  2085.                                 │ ╚════════╝  └────────┘ │
  2086.                                 └────────────────────────┘
  2087.                          Figure 4.11: The Sample Data Entry Form.
  2088.  
  2089.                From the top down, let's talk about what this form has.
  2090.  
  2091.                1. This form has a caption that reads "Print a String".
  2092.  
  2093.                2.   There is a text button where the user can enter some
  2094.                     text.
  2095.  
  2096.                3.   There are three check boxes to choose a formatting
  2097.                     style.
  2098.  
  2099.                4.   Around the check boxes is a single frame.
  2100.  
  2101.                5.   There are two grouped command buttons that the user can
  2102.                     press.
  2103.  
  2104.  
  2105.           4.6.1.1  Adding the new form.
  2106.           ─────────────────────────────────────────────────────────────────
  2107.  
  2108.                Now let's test your skills at creating this same form.
  2109.  
  2110.                  1. Select "Object|New".
  2111.  
  2112.  
  2113.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  2114.           (c) Copyright 1993-1994 DSE Software Publishing               32
  2115.           PB/WORKSHOP(tm) - Version 1.03
  2116.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  2117.  
  2118.                  2. In the "Create New Object" dialog, enter "PrintIt".
  2119.                     Select the "FORM" option button, and then "Ok".
  2120.  
  2121.                     You are now in the form editor and should have a blank
  2122.                     form sitting before your eyes.
  2123.  
  2124.                3.   Bring the form into focus by clicking on the form with
  2125.                     the mouse, or by cycling though the windows by pressing
  2126.                     the right mouse button. You can also press <F6>.
  2127.  
  2128.                4.   Press the <SPACE> bar to bring up the Text Properties
  2129.                     dialog.  Enter "Print a String" and select "OK".
  2130.  
  2131.  
  2132.           4.6.1.2  Adding a text button.
  2133.           ─────────────────────────────────────────────────────────────────
  2134.  
  2135.                Let's add a Text button.
  2136.  
  2137.                  1. Select "Buttons|Text button".  A text button will
  2138.                     appear in the center of the form.
  2139.  
  2140.                  2. Using the mouse or cursor keys, move the text button to
  2141.                     the top left edge of the border.
  2142.  
  2143.                  3. Again, using the mouse or cursor keys (while holding
  2144.                     down the <CTRL> key), resize the Text button so that it
  2145.                     is 20 characters wide and 3 rows deep.
  2146.  
  2147.                  4. Press the <SPACE> bar again to bring up the Text
  2148.                     Properties dialog.  For the Name property, enter "Text"
  2149.                     and for Help context Id property enter anything you
  2150.                     want.  Select "Ok" to close the Text Properties dialog.
  2151.  
  2152.  
  2153.           4.6.1.3  Adding check boxes.
  2154.           ─────────────────────────────────────────────────────────────────
  2155.  
  2156.                And now for three check boxes and a box frame:
  2157.  
  2158.                 1.  Select "Buttons|Check Box".  Position the check box
  2159.                     below the text button while leaving room for the box
  2160.                     frame.
  2161.  
  2162.                 2.  Press <CTRL><INS> to copy the check box button into the
  2163.                     paste buffer.  Press <SHIFT><INS> to paste two copies
  2164.                     of the check box button.  Move both buttons to
  2165.                     positions below the first check box.
  2166.  
  2167.                 3.  Add Captions and Names to each button by selecting the
  2168.                     Text Properties dialog for each one.  Label them
  2169.                     "~B~old", "~U~nderlined", and "~I~talic".  The tilde
  2170.  
  2171.  
  2172.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  2173.           (c) Copyright 1993-1994 DSE Software Publishing               33
  2174.           PB/WORKSHOP(tm) - Version 1.03
  2175.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  2176.  
  2177.                     (~) character will give the enclosed characters a
  2178.                     different color when the color properties are added.
  2179.  
  2180.                     For the button names, use "Bold", "Underline", and
  2181.                     "Italic" respectively.
  2182.  
  2183.                4.   Add the frame by selecting "Buttons|Frame" and place it
  2184.                     around the check boxes.  Using the Text Properties
  2185.                     dialog, give it the caption "Format".
  2186.  
  2187.  
  2188.           4.6.1.4  Adding command buttons.
  2189.           ─────────────────────────────────────────────────────────────────
  2190.  
  2191.                With the Check boxes added, you're now ready to add a couple
  2192.                of Command buttons.
  2193.  
  2194.                  1. Select "Buttons|Command Button".  Move it below the box
  2195.                     frame surrounding the Check boxes.  Add another Command
  2196.                     button just to the right of the first.
  2197.  
  2198.                  2. Using the Text Properties dialog, add "Ok" and "Cancel"
  2199.                     captions to each button.  Use "Ok" and Cancel" for the
  2200.                     Names property also.  For the Event Id properties in
  2201.                     each button, use the word "Action".
  2202.  
  2203.  
  2204.           4.6.1.5  Adding some color to the form and buttons.
  2205.           ─────────────────────────────────────────────────────────────────
  2206.  
  2207.                To customize the color of the buttons and form, follow these
  2208.                instructions:
  2209.  
  2210.                  1. Select "Window|Color Palette" or press <F7> to display
  2211.                     the Palette dialog.
  2212.  
  2213.                  2. Click the right mouse button or press <F6> until the
  2214.                     form window comes into focus.  Select a button and then
  2215.                     bring the Palette dialog back into focus.
  2216.  
  2217.                  3. Click on the color tiles of the Palette window to
  2218.                     change the button color.  When coloring the check boxes
  2219.                     or command buttons, select "Apply All" to color them
  2220.                     similarly.
  2221.  
  2222.  
  2223.           4.6.1.6  Testing, fixing, and saving the form.
  2224.           ─────────────────────────────────────────────────────────────────
  2225.  
  2226.                After adding buttons to the form, you should should test it
  2227.                to make sure that the colors are correct and that the
  2228.                buttons are in proper order.
  2229.  
  2230.  
  2231.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  2232.           (c) Copyright 1993-1994 DSE Software Publishing               34
  2233.           PB/WORKSHOP(tm) - Version 1.03
  2234.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  2235.  
  2236.                If any buttons are out of order, select "Options|Reorder"
  2237.                and place them in the proper sequence.
  2238.  
  2239.                When finished, save the form and exit the form editor.
  2240.  
  2241.  
  2242.  
  2243.  
  2244.  
  2245.  
  2246.  
  2247.  
  2248.  
  2249.  
  2250.  
  2251.  
  2252.  
  2253.  
  2254.  
  2255.  
  2256.  
  2257.  
  2258.  
  2259.  
  2260.  
  2261.  
  2262.  
  2263.  
  2264.  
  2265.  
  2266.  
  2267.  
  2268.  
  2269.  
  2270.  
  2271.  
  2272.  
  2273.  
  2274.  
  2275.  
  2276.  
  2277.  
  2278.  
  2279.  
  2280.  
  2281.  
  2282.  
  2283.  
  2284.  
  2285.  
  2286.  
  2287.  
  2288.  
  2289.  
  2290.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  2291.           (c) Copyright 1993-1994 DSE Software Publishing               35
  2292.           PB/WORKSHOP(tm) - Version 1.03
  2293.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  2294.  
  2295.                                       Chapter 5
  2296.  
  2297.                                    Creating menus.
  2298.  
  2299.           █████████████████████████████████████████████████████████████████
  2300.  
  2301.                This chapter describes the PB/WORKSHOP Pulldown and Popup
  2302.                Menu Editors.  Since both editors are nearly identical in
  2303.                operation, this chapter will describe them as a whole, only
  2304.                noting the differences.
  2305.  
  2306.  
  2307.           5.1  The Menu editors.
  2308.           ─────────────────────────────────────────────────────────────────
  2309.  
  2310.                Each menu editor consists of the menu entry property boxes,
  2311.                menu entry list, outlining buttons, and several command
  2312.                buttons:
  2313.  
  2314.  
  2315.           5.1.1  Menu properties.
  2316.           ─────────────────────────────────────────────────────────────────
  2317.  
  2318.                Much of the customizing of menus is performed by editing the
  2319.                menu entry properties.  Properties that can be set are the
  2320.                menu entry caption, help context id, event id, and state.
  2321.  
  2322.                  ┌──────────────────────────────────────────────────────┐
  2323.                  │          ┌──────────────────────┐                    │
  2324.                  │ Caption: │                      │  ┌ State ────────┐ │
  2325.                  │          └──────────────────────┘  │ ( ) Cross Bar │ │
  2326.                  │          ┌──────────────────┐      │ ( ) Grid      │ │
  2327.                  │ Event ID:│                  │      │ ( ) Disabled  │ │
  2328.                  │          └──────────────────┘      │ (*) Enabled   │ │
  2329.                  │          ┌──────────────────┐      │ ( ) Checked   │ │
  2330.                  │ Help ID: │                  │      └───────────────┘ │
  2331.                  │          └──────────────────┘                        │
  2332.                  └──────────────────────────────────────────────────────┘
  2333.                                Figure 5.1: Menu Properties.
  2334.  
  2335.                Menu Caption property - This is the caption displayed with
  2336.                each menu entry.  Menu entries to be used as a separating
  2337.                cross bar will not have a caption.
  2338.  
  2339.                Menu Event ID property - When PB/WORKSHOP generates source
  2340.                code for your program, it uses this property as a label to
  2341.                create custom event codes for each menu entry.
  2342.  
  2343.                Menu Help ID property - This is the context name of the help
  2344.                screen to bring up when <F1> is pressed while at a specific
  2345.                menu entry.
  2346.  
  2347.  
  2348.  
  2349.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  2350.           (c) Copyright 1993-1994 DSE Software Publishing               36
  2351.           PB/WORKSHOP(tm) - Version 1.03
  2352.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  2353.  
  2354.                Menu State property - Sets visual and physical attributes
  2355.                for the menu entry.
  2356.  
  2357.  
  2358.           5.2  The menu entry list.
  2359.           ─────────────────────────────────────────────────────────────────
  2360.  
  2361.                The menu entry list shows all of the menu entries added to a
  2362.                menu.
  2363.  
  2364.                   ┌───────────────────────────────────────────────────┐
  2365.                   │Project                                            █
  2366.                   │  New project...                                   ■
  2367.                   │  Open project...                                  ░
  2368.                   │  Close project                                    ░
  2369.                   │  ──                                               ░
  2370.                   │  Resource compiler                                ░
  2371.                   │  ──                                               █
  2372.                   └───────────────────────────────────────────────────┘
  2373.                                Figure 5.2: Menu entry list.
  2374.  
  2375.                If the menu is a pulldown menu, the menu entry list will
  2376.                also show the hierarchy of the menu entries.  Menu bar
  2377.                entries are flush left and sub menu entries are indented.
  2378.  
  2379.                If the menu is a popup menu, the first entry will be used as
  2380.                the caption for the menu.  The indented entries are the
  2381.                actual menu entry captions.
  2382.  
  2383.  
  2384.           5.3  Menu outlining buttons
  2385.           ─────────────────────────────────────────────────────────────────
  2386.  
  2387.                The menu outlining buttons allow for the selection,
  2388.                insertion, deletion, setting of hierarchy, and reordering of
  2389.                menu entries.
  2390.  
  2391.                 ┌───────────────────────────────────────────────────────┐
  2392.                 │ ╔════════╗ ┌────────┐ ┌────────┐ ┌───┐┌───┐┌───┐┌───┐ │
  2393.                 │ ║  Next  ║ │ Insert │ │ Delete │ │ L ││ R ││ U ││ D │ │
  2394.                 │ ╚════════╝ └────────┘ └────────┘ └───┘└───┘└───┘└───┘ │
  2395.                 └───────────────────────────────────────────────────────┘
  2396.                              Figure 5.3: Menu outlining keys.
  2397.  
  2398.  
  2399.           5.4  Starting a menu editor.
  2400.           ─────────────────────────────────────────────────────────────────
  2401.  
  2402.                Creating a menu is accomplished by selecting "Object|New"
  2403.                from the pulldown menu.  When the "Create New Object" dialog
  2404.                appears, select the appropriate menu type, enter an object
  2405.                name and select "Ok".  PB/VISION will then display the
  2406.                appropriate menu editor.
  2407.  
  2408.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  2409.           (c) Copyright 1993-1994 DSE Software Publishing               37
  2410.           PB/WORKSHOP(tm) - Version 1.03
  2411.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  2412.  
  2413.           5.4.1  Adding menu entries.
  2414.           ─────────────────────────────────────────────────────────────────
  2415.  
  2416.                To add a new entry to a menu, double-click one of the
  2417.                entries  in the list, or position the highlight bar over an
  2418.                entry and press <CR>.  This will advance you to the caption
  2419.                property box.
  2420.  
  2421.  
  2422.           5.4.1.1  Entering menu captions.
  2423.           ─────────────────────────────────────────────────────────────────
  2424.  
  2425.                Text entered into the caption property is the text that will
  2426.                be displayed in the menu.
  2427.  
  2428.                By enclosing a single letter of a caption between two tilde
  2429.                (~) characters, that letter will become the accelerator key
  2430.                for that menu entry.  The letter used as the accelerator
  2431.                will also be colored differently from the rest of the text.
  2432.  
  2433.                It is permissible to enclose other parts of the same menu
  2434.                entry caption between tile character so as to color them
  2435.                differently, but only the first letter after the first tilde
  2436.                will be used as an accelerator.
  2437.  
  2438.                For the caption to take effect, you must either press <CR>
  2439.                or select another menu entry.
  2440.  
  2441.  
  2442.           5.4.1.2  Menu entry event id.
  2443.           ─────────────────────────────────────────────────────────────────
  2444.  
  2445.                With the exception of a menu bar entry (pulldown menus
  2446.                only), each menu entry must have an event id assigned to it.
  2447.  
  2448.                When PB/WORKSHOP compiles your project (see chapter 3.10),
  2449.                it will add each event id to the project's $INCLUDE file.
  2450.                It will also add references to each event in a "SELECT CASE"
  2451.                structure when it generates the program source code.
  2452.  
  2453.                Several event code id's are already defined by PB/WORKSHOP.
  2454.                When PB/WORKSHOP generates your program, it adds code to
  2455.                respond to these predefined events.
  2456.  
  2457.                     OK        Closes the current form or menu.
  2458.                     CANCEL    Closes the current form or menu.
  2459.                     HELP      Displays a generic help screen.
  2460.                     EXIT      Terminates execution of the program.
  2461.  
  2462.  
  2463.  
  2464.  
  2465.  
  2466.  
  2467.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  2468.           (c) Copyright 1993-1994 DSE Software Publishing               38
  2469.           PB/WORKSHOP(tm) - Version 1.03
  2470.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  2471.  
  2472.           5.4.1.3  Menu entry help id.
  2473.           ─────────────────────────────────────────────────────────────────
  2474.  
  2475.                To add context sensitive help to a menu entry, for the help
  2476.                id property, enter the name of a help screen context as it
  2477.                appears in the help source file.
  2478.  
  2479.                If you have not yet added screens to the help source file,
  2480.                you may still enter a help id, but you will need to re-
  2481.                compile the project resource file once the screens are
  2482.                added.
  2483.  
  2484.  
  2485.           5.4.1.4  Moving menu entries.
  2486.           ─────────────────────────────────────────────────────────────────
  2487.  
  2488.                To move menu entries around or to change the menu hierarchy,
  2489.                the menu outlining buttons are provided.
  2490.  
  2491.                To change the position of an entry, highlight an entry from
  2492.                the list and then press the up or down outlining buttons.
  2493.                The entry will move incrementally each time an outlining
  2494.                button is pressed.
  2495.  
  2496.                If the menu is a pulldown menu, the left outlining button
  2497.                will make the entry a menu bar entry.  The right outlining
  2498.                button will make the entry a sub menu entry.
  2499.  
  2500.  
  2501.           5.5  Menu palette dialog.
  2502.           ─────────────────────────────────────────────────────────────────
  2503.  
  2504.                To customize menu colors, select the "Palette" button.
  2505.                PB/WORKSHOP will then display the "Menu Palette" dialog.
  2506.  
  2507.  
  2508.  
  2509.  
  2510.  
  2511.  
  2512.  
  2513.  
  2514.  
  2515.  
  2516.  
  2517.  
  2518.  
  2519.  
  2520.  
  2521.  
  2522.  
  2523.  
  2524.  
  2525.  
  2526.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  2527.           (c) Copyright 1993-1994 DSE Software Publishing               39
  2528.           PB/WORKSHOP(tm) - Version 1.03
  2529.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  2530.  
  2531.                ┌───────────────────── MENU PALETTE ──────────────────────┐
  2532.                │┌────────────────────────────────────────────┐ ╔════════╗│
  2533.                ││Foreground: ■■▒▒░░▒▒░░▒▒░░▒▒░░▒▒░░▒▒░░▒▒░░▒▒│ ║   Ok   ║│
  2534.                ││Background: ▒▒░░▒▒░░▒▒░░▒▒░░■■░░▒▒░░▒▒░░▒▒░░│ ╚════════╝│
  2535.                ││ Ext. Fore: ░░▒▒░░▒▒░░▒▒░░▒▒░░▒▒░░▒▒░░▒▒░░■■│ ┌────────┐│
  2536.                ││ Ext. Back: ▒▒░░▒▒░░▒▒░░▒▒░░■■░░▒▒░░▒▒░░▒▒░░│ │ Cancel ││
  2537.                │└────────────────────────────────────────────┘ └────────┘│
  2538.                │┌───────────────────────────────┐┌──────────────────────┐│
  2539.                ││ Settings box                  ││ File  Edit  Window   ││
  2540.                │└───────────────────────────────┘│ ┌──────────────────┐ ││
  2541.                │┌ Property──────────────────────┐│ │ New File         │ ││
  2542.                ││ ( ) Color                     ││ │ Open File        │ ││
  2543.                ││ ( ) Highlight Color           ││ │──────────────────│ ││
  2544.                ││ ( ) Border Color              ││ │ Save File        │ ││
  2545.                ││ ( ) Caption Color             ││ │──────────────────│ ││
  2546.                ││ ( ) Cross Bar                 ││ │ Exit Program     │ ││
  2547.                │└───────────────────────────────┘│ └──────────────────┘ ││
  2548.                │┌ Flags & Icons─────────────────┐│                      ││
  2549.                ││ [ ] %AUTOCLOSE  [ ] %NOBORDER ││                      ││
  2550.                ││ [ ] %BOTTOMBAR  [ ] %NOHIDE   ││                      ││
  2551.                ││ [ ] %CONTROL    [ ] %NOSELECT ││                      ││
  2552.                ││ [ ] %DRAGBAR    [X] %SHADOW   ││                      ││
  2553.                │└───────────────────────────────┘└──────────────────────┘│
  2554.                └─────────────────────────────────────────────────────────┘
  2555.                            Figure 5.4: The Menu Palette Dialog.
  2556.  
  2557.                From the Menu Palette dialog you may modify the color
  2558.                properties for the menu.  If the menu is a popup menu, you
  2559.                can also toggle various visual icons.  The purpose of these
  2560.                icons are described in the PB/VISION documentation.
  2561.  
  2562.                As you modify the color and visual properties, the sample
  2563.                menu in the lower right corner will provide a visual
  2564.                representation of the current settings.
  2565.  
  2566.                To close the Menu Palette dialog, select "Ok".
  2567.  
  2568.  
  2569.           5.5.1  Menu code generation.
  2570.           ─────────────────────────────────────────────────────────────────
  2571.  
  2572.                Before PB/WORKSHOP can generate source code for a menu, the
  2573.                Source Code Generation dialog for the menu must be filled in
  2574.                properly.  To display this dialog, select the "Code" button
  2575.                located at the bottom right corner of the menu editor
  2576.                dialog.
  2577.  
  2578.  
  2579.  
  2580.  
  2581.  
  2582.  
  2583.  
  2584.  
  2585.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  2586.           (c) Copyright 1993-1994 DSE Software Publishing               40
  2587.           PB/WORKSHOP(tm) - Version 1.03
  2588.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  2589.  
  2590.                        ┌──────── SOURCE CODE GENERATION ─────────┐
  2591.                        │                                         │
  2592.                        │ ┌ SUB/FUNCTION────────┐  ╔════════════╗ │
  2593.                        │ │MyMenu               │  ║     Ok     ║ │
  2594.                        │ └─────────────────────┘  ╚════════════╝ │
  2595.                        │ ┌ Initialization──────┐  ┌────────────┐ │
  2596.                        │ │ ( ) Create Inline   │  │   Cancel   │ │
  2597.                        │ │ (*) Load Resource   │  └────────────┘ │
  2598.                        │ └─────────────────────┘  ┌────────────┐ │
  2599.                        │ ┌ Display ────────────┐  │    Help    │ │
  2600.                        │ │ [ ] Show at Runtime │  └────────────┘ │
  2601.                        │ │ [X] Show on Event   │  ┌────────────┐ │
  2602.                        │ │     [MyForm       ] │  │ Quick Code │ │
  2603.                        │ └─────────────────────┘  └────────────┘ │
  2604.                        │ ┌ Flow Control ───────┐                 │
  2605.                        │ │ (*) Modal           │                 │
  2606.                        │ │ ( ) Multi-Threading │                 │
  2607.                        │ │ [X] Lock Window     │                 │
  2608.                        │ │ [X] Close on <CR>   │                 │
  2609.                        │ │ [X] Close on <ESC>  │                 │
  2610.                        │ └─────────────────────┘                 │
  2611.                        └─────────────────────────────────────────┘
  2612.                          Figure 5.5: Menu Code Generation Dialog.
  2613.  
  2614.                In the Sub/Function box, PB/WORKSHOP displays the name of
  2615.                the current menu object.  When PB/WORKSHOP generates source
  2616.                code, the function and sub names it creates will begin with
  2617.                the menu object name and end with either ".INIT" and/or
  2618.                ".ROUTINE":
  2619.  
  2620.                When loading the menu in a program, the menu object will be
  2621.                referred to as "%rc" + the menu object name, e.g.
  2622.                "%rcMyMenu".
  2623.  
  2624.  
  2625.           5.5.1.1  Menu initialization.
  2626.           ─────────────────────────────────────────────────────────────────
  2627.  
  2628.                The Initialization box in the Source Code Generation dialog
  2629.                determines how the menu will be created.
  2630.  
  2631.                When "Create Inline" is selected, PB/WORKSHOP will generate
  2632.                POPMENUADD() or PULLMENUADD() function calls for each menu
  2633.                entry.  If your menu has more than a few entries, this will
  2634.                increase the size of your executable file and memory usage
  2635.                substantially.
  2636.  
  2637.                The "Load Resource" generates a single line of code that
  2638.                loads the entire menu from a compiled resource (.RES) file.
  2639.                It is fast, memory efficient, and the recommended method of
  2640.                loading menus.
  2641.  
  2642.  
  2643.  
  2644.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  2645.           (c) Copyright 1993-1994 DSE Software Publishing               41
  2646.           PB/WORKSHOP(tm) - Version 1.03
  2647.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  2648.  
  2649.           5.5.1.2  Menu display options.
  2650.           ─────────────────────────────────────────────────────────────────
  2651.  
  2652.                The Menu Display Options box in the Source Code Generation
  2653.                dialog determines when the menu will be displayed.
  2654.  
  2655.                To have the menu displayed when the program begins, enable
  2656.                the "Show at Runtime" check box.
  2657.  
  2658.                The "Show on Event" check box will add code to have the menu
  2659.                displayed whenever a particular event is returned by
  2660.                GETEVENT().  You must enter the event code id to respond to
  2661.                in the text field below.
  2662.  
  2663.  
  2664.           5.5.1.3  Menu flow control.
  2665.           ─────────────────────────────────────────────────────────────────
  2666.  
  2667.                When generating popup menus, PB/VISION can create menus that
  2668.                are either Modal or Multi-Threading.
  2669.  
  2670.                "Modal" means that the user cannot select any other
  2671.                interface object until the popup menu is closed. "Multi-
  2672.                Threading" means the menu can run concurrently with other
  2673.                multi-threading objects.  These topics are discussed
  2674.                thoroughly in the PB/VISION tutorial.
  2675.  
  2676.                To lock the popup menu in place when it is displayed, enable
  2677.                the "Lock Window" check box.  This is the default mode for
  2678.                modal menus.  Enabling the "Close on <CR>" or "Close on
  2679.                <ESC>" check boxes will add code to close the menu when a
  2680.                menu entry is selected or when the <ESC> key is pressed.
  2681.  
  2682.  
  2683.           5.5.1.4  Quick Code
  2684.           ─────────────────────────────────────────────────────────────────
  2685.  
  2686.                To create code only for the current menu, select the "Quick
  2687.                Code" button in the Source Code Generation dialog.
  2688.                PB/VISION will then request the name of the file to create:
  2689.  
  2690.                        ┌─────────── FILENAME TO CREATE ───────────┐
  2691.                        │                                          │
  2692.                        │┌────────────────────────────────────────┐│
  2693.                        ││                                        ││
  2694.                        │└────────────────────────────────────────┘│
  2695.                        │          ╔════════╗  ┌────────┐          │
  2696.                        │          ║   Ok   ║  │ Cancel │          │
  2697.                        │          ╚════════╝  └────────┘          │
  2698.                        └──────────────────────────────────────────┘
  2699.                        Figure 5.6: Quick Code File Creation Dialog.
  2700.  
  2701.  
  2702.  
  2703.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  2704.           (c) Copyright 1993-1994 DSE Software Publishing               42
  2705.           PB/WORKSHOP(tm) - Version 1.03
  2706.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  2707.  
  2708.                Enter a valid filename and select "Ok".  If the file already
  2709.                exists, you will have the option of appending it to the
  2710.                existing file or overwriting the file completely.
  2711.  
  2712.  
  2713.           5.6  Saving a menu
  2714.           ─────────────────────────────────────────────────────────────────
  2715.  
  2716.                To save a menu that you have created, select the "Ok" button
  2717.                in Source Code Generation dialog.
  2718.  
  2719.  
  2720.  
  2721.  
  2722.  
  2723.  
  2724.  
  2725.  
  2726.  
  2727.  
  2728.  
  2729.  
  2730.  
  2731.  
  2732.  
  2733.  
  2734.  
  2735.  
  2736.  
  2737.  
  2738.  
  2739.  
  2740.  
  2741.  
  2742.  
  2743.  
  2744.  
  2745.  
  2746.  
  2747.  
  2748.  
  2749.  
  2750.  
  2751.  
  2752.  
  2753.  
  2754.  
  2755.  
  2756.  
  2757.  
  2758.  
  2759.  
  2760.  
  2761.  
  2762.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  2763.           (c) Copyright 1993-1994 DSE Software Publishing               43
  2764.           PB/WORKSHOP(tm) - Version 1.03
  2765.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  2766.  
  2767.                                       Chapter 6
  2768.  
  2769.                                 Creating Status bars.
  2770.  
  2771.           █████████████████████████████████████████████████████████████████
  2772.  
  2773.                This chapter describes the PB/WORKSHOP Status bar Editor.
  2774.  
  2775.  
  2776.           6.1  The Status bar editor.
  2777.           ─────────────────────────────────────────────────────────────────
  2778.  
  2779.                The Status bar editor consists of the status entry
  2780.                properties boxes, status entry list, outlining buttons, and
  2781.                several command buttons:
  2782.  
  2783.  
  2784.           6.1.1  Status bar properties.
  2785.           ─────────────────────────────────────────────────────────────────
  2786.  
  2787.                Much of the customizing of menus is performed by editing the
  2788.                status bar entry properties.  Properties that can be defined
  2789.                are the caption, event code id, accelerator key, and state.
  2790.  
  2791.                            ┌─────────────────────────────────┐
  2792.                            │          ┌────────────────────┐ │
  2793.                            │ Caption: │~F1~=Help           │ │
  2794.                            │          └────────────────────┘ │
  2795.                            │          ┌────────────────────┐ │
  2796.                            │ Event ID:│Help                │ │
  2797.                            │          └────────────────────┘ │
  2798.                            │                                 │
  2799.                            │         ┌ State ───────┐        │
  2800.                            │         │ (*) Disabled │        │
  2801.                            │         │ ( ) Enabled  │        │
  2802.                            │         └──────────────┘        │
  2803.                            └─────────────────────────────────┘
  2804.                             Figure 6.1: Status Bar Properties.
  2805.  
  2806.                Status bar caption property - This is the caption displayed
  2807.                at each Status bar entry.
  2808.  
  2809.                Status bar event id property - When PB/WORKSHOP generates
  2810.                source code for your program, it uses this property as a
  2811.                label to create custom event codes for each Status bar
  2812.                entry.
  2813.  
  2814.                Status bar state property - Sets visual and physical
  2815.                attributes for the Status bar entry.  Status bar entries can
  2816.                be either enabled or disabled.
  2817.  
  2818.  
  2819.  
  2820.  
  2821.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  2822.           (c) Copyright 1993-1994 DSE Software Publishing               44
  2823.           PB/WORKSHOP(tm) - Version 1.03
  2824.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  2825.  
  2826.           6.2  The status bar entry list.
  2827.           ─────────────────────────────────────────────────────────────────
  2828.  
  2829.                The status bar entry list shows all of the entries added to
  2830.                a status bar.
  2831.  
  2832.                     ┌───────────────────────────────────────────────┐
  2833.                     │F1=Help                                        █
  2834.                     │F2=Save                                        ■
  2835.                     │F5=Test                                        ░
  2836.                     │F7=Palette                                     ░
  2837.                     │F10=Done                                       ░
  2838.                     │                                               ░
  2839.                     │                                               ░
  2840.                     │                                               █
  2841.                     └───────────────────────────────────────────────┘
  2842.                             Figure 6.2: Status bar entry list.
  2843.  
  2844.  
  2845.           6.3  Status bar outlining buttons.
  2846.           ─────────────────────────────────────────────────────────────────
  2847.  
  2848.                The status bar outlining buttons allow for the selection,
  2849.                insertion, deletion, and reordering of status bar entries.
  2850.  
  2851.                      ┌──────────────────────────────────────────────┐
  2852.                      │ ╔════════╗ ┌────────┐ ┌────────┐  ┌───┐┌───┐ │
  2853.                      │ ║  Next  ║ │ Insert │ │ Delete │  │ U ││ D │ │
  2854.                      │ ╚════════╝ └────────┘ └────────┘  └───┘└───┘ │
  2855.                      └──────────────────────────────────────────────┘
  2856.                              Figure 6.3: Menu Outlining Keys.
  2857.  
  2858.  
  2859.           6.4  Starting the status object editor.
  2860.           ─────────────────────────────────────────────────────────────────
  2861.  
  2862.                Creating a status bar object is accomplished by selecting
  2863.                "Object|New" from the pulldown menu.  When the "Create New
  2864.                Object" dialog appears, enter an object name, select the
  2865.                "STATUS" option, and press "Ok".  PB/VISION will then
  2866.                display the status object editor.
  2867.  
  2868.  
  2869.           6.4.1  Adding Status bar entries.
  2870.           ─────────────────────────────────────────────────────────────────
  2871.  
  2872.                To add a new entry to a status bar, double-click one of he
  2873.                entries in the list, or position the highlight bar over and
  2874.                entry and press <CR>.  This will advance you to the caption
  2875.                property box.
  2876.  
  2877.  
  2878.  
  2879.  
  2880.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  2881.           (c) Copyright 1993-1994 DSE Software Publishing               45
  2882.           PB/WORKSHOP(tm) - Version 1.03
  2883.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  2884.  
  2885.           6.4.1.1  Entering Status bar captions.
  2886.           ─────────────────────────────────────────────────────────────────
  2887.  
  2888.                Text entered into the caption property is the text that will
  2889.                be displayed in the menu.
  2890.  
  2891.                By enclosing portions of a caption between two tilde (~)
  2892.                characters, those portions will be colored differently from
  2893.                the rest of the text.  This has no effect on the operation
  2894.                of the Status bar entry.
  2895.  
  2896.                For the caption to take effect, you must either press <CR>
  2897.                or select another entry.
  2898.  
  2899.  
  2900.           6.4.1.2  Status bar entry event id.
  2901.           ─────────────────────────────────────────────────────────────────
  2902.  
  2903.                When PB/WORKSHOP compiles your project (see chapter  3.10),
  2904.                it will add each event code id to the project's $INCLUDE
  2905.                file.  It will also add references to each event in a
  2906.                "SELECT CASE" structure when it generates the program source
  2907.                code.
  2908.  
  2909.                Several event code id's are already defined by PB/WORKSHOP.
  2910.                When PB/WORKSHOP generates your program, it adds code to
  2911.                respond to these predefined events.
  2912.  
  2913.                     HELP      Displays a generic help screen.
  2914.                     EXIT      Terminates execution of the program.
  2915.  
  2916.  
  2917.           6.4.1.3  Moving status bar entries.
  2918.           ─────────────────────────────────────────────────────────────────
  2919.  
  2920.                To move Status bar entries around, the outlining buttons are
  2921.                provided.
  2922.  
  2923.                To change the position of an entry, highlight an entry from
  2924.                the list and then press the up or down outlining buttons.
  2925.                The entry will move incrementally each time an outlining
  2926.                button is pressed.
  2927.  
  2928.  
  2929.           6.5  Status bar Palette Dialog.
  2930.           ─────────────────────────────────────────────────────────────────
  2931.  
  2932.                To customize the colors in a status bar, select the
  2933.                "Palette" button.  PB/WORKSHOP will then display the "Status
  2934.                Bar Palette" dialog.
  2935.  
  2936.  
  2937.  
  2938.  
  2939.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  2940.           (c) Copyright 1993-1994 DSE Software Publishing               46
  2941.           PB/WORKSHOP(tm) - Version 1.03
  2942.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  2943.  
  2944.                ┌─────────────────── STATUSBAR PALETTE ───────────────────┐
  2945.                │┌────────────────────────────────────────────┐ ╔════════╗│
  2946.                ││Foreground: ■■▒▒░░▒▒░░▒▒░░▒▒░░▒▒░░▒▒░░▒▒░░▒▒│ ║   Ok   ║│
  2947.                ││Background: ▒▒░░▒▒░░▒▒░░▒▒░░■■░░▒▒░░▒▒░░▒▒░░│ ╚════════╝│
  2948.                ││ Ext. Fore: ░░▒▒░░▒▒░░▒▒░░▒▒░░▒▒░░▒▒░░▒▒░░■■│ ┌────────┐│
  2949.                ││ Ext. Back: ▒▒░░▒▒░░▒▒░░▒▒░░■■░░▒▒░░▒▒░░▒▒░░│ │ Cancel ││
  2950.                │└────────────────────────────────────────────┘ └────────┘│
  2951.                │┌───────────────────────────┐┌──────────────────────────┐│
  2952.                ││ Settings box              ││                          ││
  2953.                │└───────────────────────────┘│                          ││
  2954.                │┌ Properties ───────────────┐│                          ││
  2955.                ││ (*) Color                 ││                          ││
  2956.                ││ ( ) Highlight Color       ││                          ││
  2957.                ││ ( ) Disabled Color        ││ F1=Help  F2=Save  F3=End ││
  2958.                │└───────────────────────────┘└──────────────────────────┘│
  2959.                └─────────────────────────────────────────────────────────┘
  2960.                           Figure 6.4: Status Bar Palette Dialog
  2961.  
  2962.                From the status bar palette dialog you may modify the color
  2963.                properties for the Status bar.
  2964.  
  2965.                As you modify the color and visual properties, the sample
  2966.                status bar in the lower right corner will provide a visual
  2967.                representation of the current settings.
  2968.  
  2969.                To close the Status Bar Palette dialog, select "Ok".
  2970.  
  2971.  
  2972.           6.6  Status bar Code Generation.
  2973.           ─────────────────────────────────────────────────────────────────
  2974.  
  2975.                Before PB/WORKSHOP can generate source code for a status
  2976.                bar, the Source Code Generation dialog must be filled in
  2977.                properly.  To display this dialog, select the "Code" button
  2978.                located at the bottom right corner of the Status bar editor
  2979.                dialog.
  2980.  
  2981.                        ┌──────── SOURCE CODE GENERATION ─────────┐
  2982.                        │                                         │
  2983.                        │ ┌ SUB/FUNCTION────────┐  ╔════════════╗ │
  2984.                        │ │MyStatusBar          │  ║     Ok     ║ │
  2985.                        │ └─────────────────────┘  ╚════════════╝ │
  2986.                        │ ┌ Initialization──────┐  ┌────────────┐ │
  2987.                        │ │ ( ) Create Inline   │  │   Cancel   │ │
  2988.                        │ │ (*) Load Resource   │  └────────────┘ │
  2989.                        │ └─────────────────────┘  ┌────────────┐ │
  2990.                        │ ┌ Display ────────────┐  │    Help    │ │
  2991.                        │ │ [X] Show at Runtime │  └────────────┘ │
  2992.                        │ │ [X] Show on Event   │  ┌────────────┐ │
  2993.                        │ │     [MyStatusBar  ] │  │ Quick Code │ │
  2994.                        │ └─────────────────────┘  └────────────┘ │
  2995.                        └─────────────────────────────────────────┘
  2996.                       Figure 6.5: Status bar Code Generation Dialog.
  2997.  
  2998.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  2999.           (c) Copyright 1993-1994 DSE Software Publishing               47
  3000.           PB/WORKSHOP(tm) - Version 1.03
  3001.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  3002.  
  3003.                In the Sub/Function box, PB/WORKSHOP displays the name of
  3004.                the current status bar object.  When PB/WORKSHOP generates
  3005.                source code, the function or sub names will begin with the
  3006.                status bar object name and end with ".INIT".
  3007.  
  3008.                When loading a status bar in a program, the status bar
  3009.                object will be referred to as "%rc" + the status bar object
  3010.                name, e.g. "%rcMyStatusBar".
  3011.  
  3012.  
  3013.           6.6.1  Status bar Initialization.
  3014.           ─────────────────────────────────────────────────────────────────
  3015.  
  3016.                The Initialization box in the Source Code Generation dialog
  3017.                determines how the status bat will be created.
  3018.  
  3019.                When "Create Inline" is selected, PB/WORKSHOP will generate
  3020.                STATUSUADD() function calls for each entry.  If your program
  3021.                has more than one status bar, this will increase the size of
  3022.                your executable file and memory usage substantially.
  3023.  
  3024.                The "Load Resource" generates a single line of code that
  3025.                loads the entire status bar from a compiled resource (.RES)
  3026.                file.  It is fast, memory efficient, and the recommended
  3027.                method of loading status bars.
  3028.  
  3029.  
  3030.           6.6.2  Status bar display options
  3031.           ─────────────────────────────────────────────────────────────────
  3032.  
  3033.                The Display Options box in the Source Code Generation dialog
  3034.                determines when the status bar will be displayed.
  3035.  
  3036.                To have the status bar displayed when the program begins,
  3037.                enable the "Show at Runtime" check box.
  3038.  
  3039.                The "Show on Event" will add code to have the status bar
  3040.                displayed whenever a particular event is returned by
  3041.                GETEVENT().  You must enter the event code id to respond to
  3042.                in the text field below.
  3043.  
  3044.  
  3045.           6.6.3  Quick Code
  3046.           ─────────────────────────────────────────────────────────────────
  3047.  
  3048.                To create the code only for the current status bar, select
  3049.                the "Quick Code" button in the Source Code Generation
  3050.                dialog.  PB/VISION will then request the name of the file to
  3051.                create:
  3052.  
  3053.  
  3054.  
  3055.  
  3056.  
  3057.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  3058.           (c) Copyright 1993-1994 DSE Software Publishing               48
  3059.           PB/WORKSHOP(tm) - Version 1.03
  3060.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  3061.  
  3062.                        ┌─────────── FILENAME TO CREATE ───────────┐
  3063.                        │                                          │
  3064.                        │┌────────────────────────────────────────┐│
  3065.                        ││                                        ││
  3066.                        │└────────────────────────────────────────┘│
  3067.                        │          ╔════════╗  ┌────────┐          │
  3068.                        │          ║   Ok   ║  │ Cancel │          │
  3069.                        │          ╚════════╝  └────────┘          │
  3070.                        └──────────────────────────────────────────┘
  3071.                        Figure 6.6: Quick Code File Creation Dialog.
  3072.  
  3073.                Enter a valid filename and select "Ok".  If the file already
  3074.                exists, you will have the option of appending it to the
  3075.                existing file or overwriting the file completely.
  3076.  
  3077.  
  3078.           6.7  Saving a Status bar.
  3079.           ─────────────────────────────────────────────────────────────────
  3080.  
  3081.                To save a menu that you have created, select the "Ok"
  3082.                button.
  3083.  
  3084.  
  3085.  
  3086.  
  3087.  
  3088.  
  3089.  
  3090.  
  3091.  
  3092.  
  3093.  
  3094.  
  3095.  
  3096.  
  3097.  
  3098.  
  3099.  
  3100.  
  3101.  
  3102.  
  3103.  
  3104.  
  3105.  
  3106.  
  3107.  
  3108.  
  3109.  
  3110.  
  3111.  
  3112.  
  3113.  
  3114.  
  3115.  
  3116.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  3117.           (c) Copyright 1993-1994 DSE Software Publishing               49
  3118.