|
| Features |
|
- 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 setting via data messages .
Static and Dynamic ( variable ) . Inline Table and Dynamic Array
based data . Fixed and variable size string and text document
data . Instantiated data . Parameter passed and referenced .
- 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 - eg. Arial , Garamond etc. .
- Style - eg. italic , bold etc. .
- 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 .
- Button presses execute events :-
- Script Execution .
or
- Data Setting .
and \ or
- Application Function Execution .
- 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 .
- Hidden Section Fields - when the button is pressed
- toggled - the associated script is executed revealing a hidden
section . This allows pages to be designed on the basis of drill
down - going from titles & summaries to full content .
- 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 , Insert and Delete Entries .
- 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 .
- Headings .
- Headers and Footers .
- Spacing .
- 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 - Software On Silicon - 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
.
- There is a MultiMedia framework - play engine -
providing full management of decode operations . There aren't
, however , any associated source , demultiplex , decode &
sink components .
- The Module is easy to port - it only requires minimal OS and
GDI functions and is extensively instrumented .
|
| Architecture |
| |
|
|