SecureUser
VERBatim - V86
Advanced Revelation Initialisation Sequence (Overview) by Mike Pope
QTIPS - Using @Upper.Case and @Lower.Case with Foreign Languages
@ATTACK - @Lower.Case
@ATTACK - @Upper.Case
Sorting out Collation Sequences by Mike Pope
SecureUser
VERBatim - V25
@ATTACK - @Files.System
Advanced Revelation Initialisation Sequence (Overview) by Mike Pope
REVMEDIA Revisted
VERBatim - V86
VERBatim - V88
QTIPS - Securing Menus
Simple Security
Directory Exists on Novell
Utility Diskette # 4
QTIPS - Equidistant Menu Options
QTIPS - Improved Menu Help 1
QTIPS - Improved Menu Help 2
QTIPS - Securing Menus
QTIPS - Overriding Menu Colours
Utility Diskette # 3 - Part I
Menus and Menu Drivers
QTIPS - Menus Without an Action Bar
QTIPS - Comment Lines In Pulldown Menus
Overlapping Windows And Window Menus
QTIPS - Blank Menus in Windows
QTIPS - Menu Item Pre-Processing
Caching in on the Frames Array - Mike Pope
What's New (and un(der)documented!) In 2.12
Utility Diskette # 4
QTIPS - Winus
QTIPS - Calling an Action Bar from a Pulldown Menu
File Variables
LINEAR HASH FILE STRUCTURES - Part 1
QTIPS - File Handle Structure
RTP Series - RTP42
VERBatim - V65
Argument passing - Subroutines and Functions - Mike Pope
QTIPS - Missing DICT Files
Menus and Menu Drivers
QTIPS - Postscript Driver Problem
REVMEDIA Revisted
Defaults
QTIPS - Autofilling Default Values
REVMEDIA Revisted
Menus and Menu Drivers
QTIPS - Calling an Action Bar from a Pulldown Menu
Menus and Menu Drivers
Argument passing - Subroutines and Functions - Mike Pope
Caching in on the Frames Array - Mike Pope
QTIPS - Fast Dynamic Array Building
QTIPS - Comment Lines In Pulldown Menus
VERBatim - V39
Esc.To.Exit
Reader's Clinic - Naming Routines
Reader's Clinic - Prompting for Passwords
Reader's Clinic - Removing "Searching Cross References" Message
Message
Trapping Message Calls
A RevTechie Replies - And Miscellaneous Jottings - Mike Pope - Revelation Technologies (UK) Ltd
QTIPS - Standardising Error Message Display
QTIPS - Interrupt Proof Error Messages
QTIPS - Improving the Message Window
Version 3 Technical Highlights - New Message Types
File Variables
Argument passing - Subroutines and Functions - Mike Pope
RevTech Replies - Mike Pope (RevTech UK Ltd)
Symbol Table Structure
Utility Diskette # 3 - Part I
Utility Diskette # 3 - Part II
RTP Series - RTP42
RTP Series - RTP51
Reader's Clinic - AREV Runtime
@ATTACK - @PDisk.On
Advanced Revelation Initialisation Sequence (Overview) by Mike Pope
AREV Comes to Czechoslovakia Les Palenik, Cosmotron Systems
@ATTACK - @Return.Value
Reader's Clinic - Functions and Subroutines
Reader's Letters - Jim Owen
Playing with Scan Codes
Argument passing - Subroutines and Functions - Mike Pope
Menus and Menu Drivers
Caching in on the Frames Array - Mike Pope
What's New (and un(der)documented!) In 2.12
DOS Interfacing (Part II)
Reader's Clinic - Preventing Records Being Amended
How Indexes Are Updated
A RevTechie Replies - And Miscellaneous Jottings - Mike Pope - Revelation Technologies (UK) Ltd
Caching in on the Frames Array - Mike Pope
QTIPS - Improving the LH_VERIFY Window
Menus and Menu Drivers
QTIPS - DOSTime
VERBatim - V11
@ATTACK - @Backgrnd.Time
@ATTACK - @Index.Time
QTIPS - Time-outs in Windows
@ATTACK - @HW
Reader's Clinic - Volume Pointer Record
Menus and Menu Drivers
QTIPS - Menus Without an Action Bar
QTIPS - Winus
@ATTACK - @Modal
Reader's Clinic - Screen Width
VERBatim - V41

RevMedia FKB

DocumentV3I3A7
TitleMenus and Menu Drivers
KeywordsMENU
DRIVER
%MENUSTYLE%
AREV_WINUS
PULLDOWN_WINUS
/LCMENUS/
MENU.BUFFER
LCMENU
MENU.ENV
TextWhen developing end user applications it is frequently the case that the
menu drivers provided by the system (AREV and PULLDOWN) do not provide all
of the functionality required Extra security might be wished for or to aid
learning curves the user might specify a Novell style menu structure
Alternatively access may be required to some of the more esoteric aspects
of the provided menu driver's functionality This article explores the
system LABELLED common and subroutines ASSOCIATED WITH menus to assist in
the DEVELOPMENT of more generic driver routines

/%MENUSTYLE%/ Winus_name
The LABELLED common area %MENUSTYLE% contains the name of the routine
currently being used as the default menu driver This will normally be
AREV_WINUS or PULLDOWN_WINUS

/LCMENUS/ Menu_List Menu_Pos
The LABELLED common area LCMENUS is used to store generic information about
the position of the CURRENT option within menus (for the "Stickum" feature)
The way in which it is treated differs FROM menu driver to menu driver so
use %MENUSTYLE% to get the CURRENT menu style before playing WITH these
variables

Menu_List
As menus are accessed their NAMES are loaded into an @FM delimited
array of menu NAMES Each new menu name is inserted at the beginning of
the array When USING the PULLDOWN menu style it can be seen that when
choosing a menu selection WITH a single option a "pseudo" menu
appears showing the single option and an Escape to Exit message As
this is not a proper menu option a dummy variable called
%%CUAWINUS_TEMP%% is inserted into Menu_List and is used for all such
accesses

Menu_Pos
An @FM delimited list of values ASSOCIATED WITH Menu_List Each field
has three values being used slightly differently in DIFFERENT menu
drivers

AREV < 0 1 > Amount of columns across menu (origin = 0
i e if the value is 4 this is the 5th column)
< 0 2 > Row down menu (origin = 0 i e if the value
is 3 this is the 3rd row)
< 0 3 > Number of last option accessed

PULLDOWN < 0 1 > Not Used
< 0 2 > Not Used
< 0 3 > Number of last option accessed


MENU BUFFER(Menu_Name Flag)
The system uses the function MENU BUFFER to read menus FROM disk and to
update the LCMENU area by including the menu name in Menu_List and the
initial coordinates in Menu_Pos It may be used in customised menu drivers
To use declare as a function and pass the name of the menu to load and a
flag variable which will return the position of the menu within Menu_List
If the menu is being loaded for the first time the position flag will be set
to 1 otherwise it will return a pointer into the ARRAYS This could be used
by the developer to position the CURSOR at the appropriate "Stickum" point
EG
common /LCMENUS/ MENU_LIST MENU_POS
declare function MENU BUFFER
MENU_REC = menu buffer("TOOLS" FLAG)
OPTION_TO_START_AT = MENU_POS< FLAG 3>
gosub DISPLAY_MENU


Customised Menu Drivers
A point that no longer seems to be documented is that it is possible to
replace the default system menu driver WITH one written by the developer
This is because the menu driver WINUS simply acts as a despatching program
to call the appropriate menu driver nominated in the environment Any
replacement menu drivers written need to be suffixed WITH "_WINUS" E G
NOVELL_WINUS This routine must accept 5 parameters as DEFINED in
UTILITY DOC WINUS in the old (1 x) UTILITY Subdirectory Note though that
if the customised menu driver is made the default the five parameters do
not need to be used as described However if you ever intend to allow your
menu driver to exit once it has been entered (rather than just refusing to
allow escape FROM a top LEVEL menu) ensure that when exiting at the top
level the CODE and COMMAND portions are nulled down or WINUS will treat them
as CATALYST code and COMMANDS and try to EXECUTE them

To MAKE the customised menu driver the system menu driver it is necessary
to make the system "Menu Style" (as it is referred to in the environment
window) equal to the name of the menu driver minus the _WINUS Thus if your
driver were called NOVELL_WINUS you would set the menu style equal to
NOVELL Unfortunately you cannot do this USING the environment WINDOW as it
edit checks for AREV or PULLDOWN Consequently you can either PAINT COMMANDS
MENU ENV and amend the TEMPLATE to permit the use of your driver or put the
name of your driver (minus the _WINUS) into the environment record for the
user in FIELD 82

N B If the menu is DEFINED as "unanchored" the customised menu driver must
return the code and command to the CALLING routine and not attempt to
process it Failure to comply WITH this directive will mean that routines
like PAINT will fail to work correctly


(Volume 3 Issue 3 Pages 13 14)
[revmedia/copyrigh.htm]

Page last modified: 30/01/03