- The description of the screen layout is specified by
compact binary coded scripts . Separate bit ranges used for commands
, data prefixes , data and text .
- The User Interfaces - via the scripts - can be developed
very quickly and very easily . Not only can products be released quicker
but also more time is available for the User Interface design - eg.
for maximising the quality and features of the design .
- Through the use of different script files for the same
Application - different User Interfaces ( skins ) can be designed for
different market areas thus maximising the market reach of your product
. As such both large general and small niche markets can be easily and
cheaply catered for .
- Scripts can be accessed as files - this allows the User
Interface to be remotely changed and updated . Further because the Application
acts only as a functional module the application code can be fixed -
as it often would not need any alterations when the features are updated
- where these are provided by the User Interface . Scripts can also
be compiled in as part of the code .
- Multiple script files ( including library files ) can be simultaneously
accessed . Script files can be closed .
- Script ‘ objects ‘ and associated ‘ display objects
‘ are created on script execution . Scripts can be ‘ instantiated ‘
- re-executed as separate entities . Full script , branch and overlay
management and controls are provided .
- Screens .
- Overlayed Screens .
- Branches ( parent and child script objects ) .
- Segments - branch sections that can be removed from
the branch .
- General and specific instantiation of branches .
- Command based removal of scripts ( script objects
) and branches ( parent and child script objects ) .
- Automatic displacement ( removal ) of scripts and
branches displayed at the same position .
- Automatic detection and handling of conditions such
as looped branches and implied script instantiation .
- Re-display of area associated scripts - when actions
such as text field movement and re-sizing occurs .
- Automatic display object re-display ( on associated
data change ) and automatic complete screen re-display .
- Inline ( within the script ) , System , Local ( to the
scripts ) and Global ( Application ) Data . Indexed ( script and data
array ) , Percentage , Script Table and Parameter based data . Numerical
, string , document and picture data and graphics characters . Separate
character ranges for commands , data description prefixes and data and
screen text . Bi-directional parsing of scripts . Interchangeable data
sources .
- Data Objects - all data types - including Unsigned and
Signed Decimal , Binary , Hex , String , Document ( eg. .txt files )
and Picture . Initial value setting . Maximum value setting and checking
. Inline and external data message setting . Array based data . Fixed
and variable size string and text document data . Instantiated data
.
- Direct connection to Application Data and Functions -
easily specified via Data ' Object ' Tables . Application data is automatically
updated and application functions automatically called . Alteration
of data in the Front End - User Interface - causes automatic updating
of application data and calling of associated functions .
- Linkage to the Application is via simple tables - macros
are supplied to encode the table entries . The tables specify the ‘
object ‘ names and the data and associated and separate functions .
- Linkage to the Application uses an ' object ' based format
and provides for Gain Focus ( constructor ) and Lose Focus ( destructor
) functions . Objects are named within the Application and within the
scripts . Linkage is on the basis of the ' object ' name and the ' object
' field number - within ANSI C format .
- Linkage from the Application to the Front End is via
a simple set of macros .
- Application Data can be static or dynamic . If dynamic
the application side Object Manager will automatically create the data
on the heap .
- The Application can remotely change the system data to
cause , for example , the display of a specified script .
- Linkage to Scripts and Data Based Selection of Scripts
by :-
- Directly specified data within the script - out
of a command parameter list - within the text area .
- Link command - displays the specified script .
- Multi Link command - displays the list of scripts for the number
of scripts specified in the data . Has overlay controls .
- Call command - allows parameters to be passed from
script to script - provides for the design of complex and portable
screen objects - such as Menus and Combo Boxes .
- Call External command - allows parameters to be
passed from a script to a script in an separate script file .
- Script Macros - sections of script code and data can be defined
as macros and be referred to as code or data .
- Widgets - external scripts executed via numerical ( enumerated
) references . Widgets be referred to as code or data .
- Repeat command - repeats the specified script for the number of
times specified in the data .
- Page command - repeats the specified script for the number of
times specified in the data . Provides page controls - allows buttons
( eg. directory entries ) to be created and managed as a page .
- While command - repeats the specified script while
the specified data is FALSE ( 0 value ) .
- Choice command - displays the script corresponding
to the index specified in the data .
- Masked Link command - displays the list of scripts
corresponding to the selection bits specified in the data .
This allows scripts to be linked to ( executed at the
current script position ) and allows the screen display to be altered
in response to data changes . Altering the data causes an automatic update
of the display .
The Multi Link , Repeat , Page , While , Choice & Masked Link commands
can also handle inline script code sections .
- Dependence of scripts on data - when the data is altered
the script is re-executed ( re-displayed ) or removed .
- Internal Scripts - referred to by Script Number - and
External Scripts - referred to by Script File Name . Scripts handled
as files - can be externally loaded and updated . Script files can also
be placed directly in the code space .
- Association of Scripts with data - when the data is altered
the script is removed or is re-executed ( re-displayed ) .
- All styles are specified within Style Tables . Individual
Frame , Area , Table , Field , Graphics and Font styles can be selected
. Styles can also be overridden by using the Set Style command .
- Text Styles :-
- Type Face .
- Style - eg. italic or bold .
- Size .
- Background and Foreground Colours .
- Variable Font - full screen and data text display and
cursor movement handling . Script lines are parsed - text and objects
- to detect the overall line height and ascent . Control over the line
height and ascent is provided .
- Frame Styles :-
- Flat , Raised and Lowered Edges .
- Edge Width setting .
- Rectangular and Rounded Corners .
- Frame Pattern and Colour with optional Background
Picture .
- Background and Foreground Pattern and Colours .
- Raised and Lowered Lands .
- Left , Central and Right Aligned Labels .
- Default style and sub-style handling .
- Additional Associated Styles :-
- Fonts - type , style , size - screen text , areas and
fields .
- Spacing - areas and fields .
- Framing of Text Displays , Areas , Fields , Tables and
Table Cells .
- Setting of Font and Graphics Styles .
- Areas - defines start position , size and frame .
- Tables with Default and Custom Cells - handled as areas
.
- Data Fields - with full data editing facilities :-
- Character , Word and Field Cursor Movement - Left
and Right , Up and Down and between fields .
- Overflow and wrap around .
- Go To Line Start , Line End , Data Start and Data
End .
- Page Up , Page Down , Page Left and Page Right .
- Previous Page and Next Page .
- Delete Previous Character & Delete Current Character
.
- Insert & Revise .
- Mouse , Cursor and Word based Data Selections . Select
All .
- Delete , Replace , Cut , Copy & Paste . Drag
and drop - copy ( out of the field ) and move ( in the field ) operations
.
- UnDo and Re-Do .
- Increment and Decrement data .
- Data fields display a ' window ' on the data - data
is automatically moved into and out of the display area .
- Vertical and Horizontal Scroll Bars ( sliders with
movement buttons ) .
- Grab Bars with Hide \ Show , Minimise \ Maximise
and Close Controls . Movement and Re-sizing .
- The cursor can be allowed to move to the outer right
of the display area .
- Password - '*' - characters can be displayed on character
input .
- Descriptive Messages - removed from data on selection
of the data field .
- Display Only and Display and Edit .
- Automatic association of data fields with associated
data editor component - according to data type .
- Button Fields :-
- Full range of types and frame styles provided for
. Can - via the GDI - display any button type - no frame , standard
frame types , check box , radio button etc.
- Can be explicitly displayed or can be associated
with text or screen areas .
- Can be displayed Up , Down
or Highlighted .
- Can operate on Cursor Selection , Button Down or
Down then Up - Mouse Button or Enter key , Right Click or Double
Click .
- Can be toggled and auto toggled - eg. menu operation
.
- Can be cursor selected .
- Field Selection , Mouse and Enter Key button press
or Mouse Only button press .
- When pressed causes the execution of the associated
script .
- The label can be specified inline or specified by
data .
- The label can be left , center or right aligned .
- Can be field selected - eg. the selection of files
within a directory . The selections ( button labels ) being loaded
into system data which can then be sent through to the Application
. The selections can also be pasted or dropped into data .
- Buttons can be clicked through - data labels can
be edited - allows , for example , for file names to be changed
.
- Menus with full page controls can be constructed .
- Link Section fields can be left mouse button activated
, double click left left mouse button activated and right mouse
button activated .
- Activate and Link Section fields can be overlayed
on other fields .
- Link Section Fields - when the mouse button is pressed
over the screen area ( defined as a script or rectangular section )
the associated script is executed .
- Activate Fields - executes the associated script when
the mouse cursor is held over the area . Can be used to display descriptive
( eg. help ) text .
- Button presses execute events :-
- Script Execution .
or
- Data Setting .
and \ or
- Application Function Execution .
- Grab Bar Field - can be associated with data and can
be used as a grab bar for areas and data fields .
- Slider Field - with movement buttons - can be associated
with data and can be used as a scroll bar for a data field .
- Drop Field - allows data that has been selected to be
dropped indirectly into data areas .
- Resource Field - Audio , Picture or Movie .
- Graph Field .
- Fields can be overlayed on top of each other .
- Positions: -
- Absolute and Relative positioning .
- Absolute and Relative rotation .
- Movement relative to line tops and bases .
- Movement relative to Area sides .
- Area associated positioning . Areas can be referred
to from outside or from within the area .
- Table associated positioning . Tables can be referred
to from outside or from within the table .
- Tabs with positions set by tab tables .
- Indents .
- Horizontal - left , center and right - Alignment
.
- Vertical - top , middle and bottom - Alignment .
- Inherited and Current Display States .
- Ordered lists with type specification - ([{ a A 1 i I
}]) - and with full nesting .
- Data Operations :-
- General - Select Data ( contextual based ) , Select
Current Field Data & Select Specified Field Data , Externalise Data
.
- Arrays - Clear Array , Set Number of Entries , Get Number of Entries
, Set Entry Width , Get Entry Width , Get Entry Height , Sort &
Reverse .
- Button Width . Menu Width & Height .
- File Based - Load File Name , Search , Search extended
, Load , Save , Store , Rename , Copy , Move and Delete .
- Data Base - Load , Save & Store , Insert & Delete Fields and
Lines .
- Arithmetic - Load , Load Array , Exchange , Append
, Clear , Increment , Add , Decrement , Subtract , Multiply , Divide
, Remainder , Percent , Minimum , Maximum , Decrement on Not Zero
and Negative .
- Arithmetic Conditional - Not Equal , Equal , Less
Than , Less Than or Equal , Greater Than , Greater Than or Equal
.
- Logical - And , And Not , Or , Xor , Shift Left
, Shift Right , Invert , Not .
- Logical Conditional - No 1's Match , Some 1's Match
, All 1's Match .
- Exit on Zero , Exit on Non Zero .
- Application Function Execution - Synchronous and Asynchronous
.
- Graphics :-
- Lines .
- Rectangles .
- Arcs .
- Fill Graphic Areas .
- Blank Graphic Areas .
The graphics commands , as with all commands , use formatted data -
where the data source is specified as a prefix . As such if a variable
data source is used and if the data is altered the whole script that
contains the graphic command is re-executed - thus causing re-drawing
of the graphics in the script .
- Graphics Styles :-
- Line Type .
- Line Width .
- Line Colour .
- Foreground and background colour .
- Automatic initialisation script execution . Setting of
language section characteristics . Setting of default Display State
characteristics - loaded on execution of scripts within script command
specified ranges .
- Execute Script ( display script - constructor ) , Re-display Script
and Remove Script ( script based and external application based removal
of the script from display - destructor ) operations . Removal of overlay
areas , branches and screens .
- Overlaid scripts and Areas . Transparent ( actions go
through ) scripts and opaque ( actions don't go through ) Areas . Restriction
of cursor movement to selected Areas . Localisation of actions to overlays
. Overlay of screens ( ensures no transparency to the underlying screen
) .
- Automatic displacement of scripts of the same level previously
displayed at the same position . Full management of scripts , script
objects and associated objects . Automatic displacement of screens by
screens .
- Script Timer operation provided - causes the execution
of scripts after the expiration of a specified time . The timers can
be single shot or repeated . Scripts can also be removed from display
. Timer management facilities are also provided .
- Input Events can be generated within scripts and be executed on fields
. This allows , for example , for keyboards to be constructed on the
screen .
- Layout controls :-
- Vertical - organise into columns .
- Horizontal - organise into rows .
- Offset Y - tile overlayed .
- Offset X - tile overlayed .
- Because the Module uses basic commands ( rather than
complex display object graphic commands ) a very high level of control
is available to specify the layout and appearance of complex screen
objects . The commands provided can be easily put together to construct
complex objects . As such Menus and Combo Boxes can , for example ,
have any button type and layout and lines between items. Further because
these objects are constructed using component commands they can be widely
varied in their design . As such , for example , overlaid buttons and
dividing lines can be put on menu's and different button types can be
used for combo boxes . As such full control is provided over the presentation
of the User Interface .
- Full Multiple Language handling - either included within
the script file or within a separate language file that is loaded when
the language selector is altered - is provided . 8 bit extended ASCII
( eg. European ) character sets catered for .
- The Application can be remotely located from the User
Interface . The User Interface can be located in a separate chip - single
chip solution . This allows a distributed processing solution to be
provided . The User Interface can be located on a separate computer
- this minimises the byte space required on the embedded device .
- The Front End Module is asynchronous - ie. no lock ups
!
- User Interfaces are asynchronous in nature as such they
require :-
- Ease of movement between menus - branches - not only
going up a branch but directly across to another branch .
- Inputs from multiple sources :-
- keyboard .
- mouse .
- the application .
The User Interface must be able to react to these as they occur . As
the Front End Module is asynchronous all these are handled .
- The features can be compiled in or out by means of conditional
compile switches thus allowing the build size to be minimised .
- The Module is easy to port - it only requires minimal
OS and GDI functions and is extensively instrumented .
|