In order for this site to work correctly, and for us to improve the site, we need to store a small file (called a cookie) on your computer.
By continuing to use this website, you agree to our cookies and privacy policy.
  
Home page Home page Home page Home page
Pixel
Pixel Header R1 C1 Pixel
Pixel Header R2 C1 Pixel
Pixel Header R3 C1 Pixel
Pixel

Customising the Status Line

When designing applications with an AREV "look and feel" it can be desirable to create highlighted words on the bottom status line (as with the system help level 2 function keys). In addition, when indicating cursor key movement it makes sense to use the arrow characters to illustrate the keys to press rather than spelling out "Cursor Left", "Cursor Right" etc.

Two minor points need to be made before the explanation proper begins. Firstly, Status Line images are now stored in SYS.TEXT_PARMS, with a key of Process*Status (or Process2*Status for help level 2 images). Secondly, there are now only two supported help levels, 0 and 2. Whilst it is possible to use a help level of 1 this can lead to problems.

When adding new status line images it behoves us to cater for both levels of user, so two status line images should be created per process, one for level 0 and one for level 2. Statup will automatically select the correct image when asked to load Process. This discussion will concentrate on level 2 status images but it can be amended for level 0.

The layout of the status line image is documented in various places (UTILITY subdirectory on pre release 2.0, Programmer's Reference on 2.1, System Subroutines book) but the field that is of interest when customising highlighted words, is field 2. This field (in a level 2 status line) contains four multivalues, three for the top three boxes of the status line and the fourth for the bottom line. Highlighted words can only be put into the fourth multivalue.

Very Simple Program to Test Amended Status Lines So that the new status lines can be tested, a simple program such as the one following can be used. Simply compile, catalog and attach to a macro key


0001        Subroutine TestStat
0002         /*
0003            Note that with help level 2 this will display record SPREZZ2
0004         */
0005         Call Statup(4,"SPREZZ",Save)
0006         Call Input.Char(x)
0007         Call Statup(5,"", Save)
0008        Return

Adding Highlighted Words

The key point here is the use of hyphens. In multivalue 4, everything up to the first hyphen will be highlighted, then after the first hyphen, every word before a hyphen will be highlighted. Thus if a record were created called SPREZZ2*STATUS with a layout as follows

MENU

SprezzżRevM  żField 3żThis is Highlighted-This Isn't-ThisIs-This Isn't
1

it would appear on the status line as follows

³Sprezz³RevM  ³Field 3                           ³
ĆÄÄÄÄÄÄĮÄÄÄÄÄÄĮÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ“
³This is Highlighted-This Isn't-ThisIs-This Isn't³

Note then that to give the illusion of multiple words being highlighted, mixed capitalisation must be used (I.E. ThisIs, rather than This Is, where only the Is would be highlighted). Note further that when the text in the record is shorter than the width of the status line cell, a number of spaces must be appended after the text to display to the width of the cell. With the final cell this can be made easier by appending a value mark.

Unfortunately the ASCII characters for the various arrow symbols cannot be
added directly into the status line as they cause the screen to become
corrupted. To get around this, a fix has been provided. It would not be
uncharitable to describe this fix as a kludge.

Essentially, five characters have been provided that are taken by the system
to mean that they should be replaced with arrow characters when they are
bracketed by *'s and a flag variable is set. The characters and their
meanings are as follows

# Ž (represents a double headed arrow)

~ 

| 

^ 

` 

The flag variable is that somewhere in the preceding text, a ^ should have
been entered. For convenience it is recommended that this be the first
character on the line although this is not strictly necessary (see note 1).
Thus the the status record

MENU ^SprezzżRev*^* M żż*~*-Move Left *³*-Move Right 1

would appear on the status line as follows

³Sprezz³RevM ³....... ³ ĆÄÄÄÄÄÄĮÄÄÄÄÄÄĮÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ“ ³-Move Left -Move Right ³

Note 1:

Thus the example given could also have achieved the same results if rendered

SprezzżRe^v*^*Mżż*~*-Move Left *|*-Move Right

(Volume 4, Issue 4, Pages 6-7)
Pixel
Pixel Footer R1 C1 Pixel
Pixel
Pixel
Pixel