home *** CD-ROM | disk | FTP | other *** search
- ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
- º SysLib 2.45 º
- ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
-
- SysLib 2.45 is an application framework designed to provide all the
- neccessary functionality which you like to have for your applications
- without any extra programming! This leaves only the applicatoric
- dependent procedures in your applications, reducing complexity and size
- and even reduces the time for testing all the basics.
-
- ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
- ³ Terms of usage ³
- ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
-
- SysLib 2.45 may be used freely within your applications, even if you
- supply them as shareware. The only thing you are asked to do is to name
- the author in your applications documentation.
- The fee for this applications should not be higher because of the usage
- of the SysLib. Please, if possible, avoid to include the SysLib itself
- in your packages because of it's continous further development and
- enhancements. Simply refer to it's name in the CompuServe Forum.
- The author will do (almost) anything to keep the interface absolutely
- stable, but if there are any troubles with your application using it,
- ask for assistance!
- As some kind of gratification please make an offer for a free
- registration for any shareware using SysLib to the author!
-
- ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
- ³ About this reference ³
- ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
-
- Please consider this paper as a constantly growing thing, because on one
- hand the SysLib was not thought of to be a public use library and
- therefore all the related documentation has to be written after the
- programming, and on the other hand the library is far from being perfect
- and to be extended and enhanced which does not make the documentation
- work very much easier!
-
- ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
- ³ About the author ³
- ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
-
- If you have any questions, please contact the author:
-
- Thomas Nemec
- Gladbeckstraáe 1/12a/10
- 2320 Schwechat, Austria
- CIS: 100024,3461
-
- ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
- ³ A minimum application using the SysLib ³
- ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
-
- See the following application skeleton as a template for an absolute
- minimal application (simply try to translate this application thing and
- watch what it is doing!):
-
- Rem --------------- application source starts here --------------------------
- App Template
- Type Type $1003
- Ext "ext"
- Path "\template"
- Enda
-
- Rem your application start procedure should only load the SysLib and
- Rem enter the event loop
- Proc Main:
- LoadM dir$:("Sys$Lib2.opo")
- Events:("\template","ext","1.0","",0)
- Endp
-
- Rem try to find the SysLib on any local drive and in \opo or \syslib
- Proc dir$:(fn$)
- Local i%,d$(6),r$(7)
- d$="ABMABM" :r$="OPO\"
- Do
- i%=i%+1
- If i%=4 :r$="SYSLIB\" :EndIf
- If Exist(Mid$(d$,i%,1)+":\"+r$+fn$)
- Return (Mid$(d$,i%,1)+":\"+r$+fn$)
- EndIf
- Until i%=6
- Return fn$
- Endp
-
- Rem be ready to receive all the messages
- Rem 0=initialize application (special message, called only once)
- Rem 1=come to foreground
- Rem 2=go to background and so on (see the psion programmers manual)
- Proc Message:(t%)
- Print "Message:",t%
- Endp
-
- Rem each time there has a file open to be performed
- Proc Open%:
- Print "Open:",f$
- Endp
-
- Rem or a create is neccessary
- Proc Create%:
- Print "Create:",f$
- Endp
-
- Rem close a file on exit or before any file change
- Proc Close%:
- Print "Close"
- Endp
-
- Rem ignore [ctrl][menu] keypresses
- Proc SetWidth:(w%)
- Endp
-
- Rem catch all the simple key presses, return 1 if to exit
- Proc Key%:(k%,s%)
- Print "Key:",k%,"Mod:",s%
- Endp
-
- Rem react on special key combinations (including diamond key),
- Rem return 1 if to exit
- Proc CtrlKey:(k%,s%)
- Print "CtrlKey:",k%,"Mod:",s%
- Endp
-
- Rem perform menu and hotkey operations, return 1 if to exit
- Proc Action%:(k%)
- If k%=%x
- Return 1
- EndIf
- Endp
-
- Rem make a menu on request, return the result on exit
- Proc Menu%:
- Local i%
- mInit
- mCard "Special","Exit",%x
- Lock On
- i%=Menu
- Lock Off
- Return i%
- Endp
- Rem --------------- application source ends here ----------------------------
-
-
- ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
- º Minimum application needings º
- ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
-
- The above application example does the following basic things for you:
-
- 1. Your application will be renamed from something like "Sys$prgo.$09" to
- "TEMPLATE.$09"
- 2. On startup there will be a logo shown in the lower right edge of the
- screen, naming the application and it's version
- (here: "Template 1.0")
- 3. The applications data path and file extension is stored and can be
- retrieved by a function Mask$:
- 4. The applications actual working file name is stored within a
- global variable called f$
- 5. The country data is read from the system and provided in global
- variables
- 6. Your application will be initialized by a message 0
- 7. The working file will be created or opened by the applications
- create/open functions
- 8. The text "bring" mechanism will be initialized
- 9. The timer will be initialized
- 10. Now the message loop will be entered and can only be exited if a
- termination signal is encountered (which means return 1 on key
- and action procedures)
-
- ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
- ³ Event loop handling ³
- ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
-
- All the messages and events are handled by an event loop, which is to be
- called on application entry:
-
- Events:( datadir$, ext$, ver$, rsc$, flags% )
-
- datadir$ specifies the data directory for the application e.g. "\data"
-
- ext$ specifies the extension string e.g. "ext"
-
- ver$ is the applications version number string (max 4 chars)
- e.g. "1.1a"
-
- rsc$ specifies the ressources name (description to follow)
-
- flags% states configuration flags (description to follow)
-
- This event loop will only be left on an exit request, usually from a
- hotkey or menu item call.
-
- ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
- ³ Message handling ³
- ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
-
- Every time when a message is encountered from the system, the
- applications message handler call back procedure "Message" will be
- called:
-
- Message:(msg%)
-
- msg% Message type identifier,
- msg%=0 for the application initialization
- msg%=1 for "come to foreground"
- msg%=2 for "go to background" and so on
-
- ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
- ³ File creation, file open and file close ³
- ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
-
- Every time when a file has to be created, opened or changed by request from
- the system screen or on startup, this call back procedures are executed
- (before opening or creating a new file any currently open file will be
- closed)
-
- Create%:
- Open%:
- Close%:
-
- These procedures should return 0 on success, otherwise 1.
- File creation should try to delete any existing file having the same
- name.
- The global variable f$ consists of the full filename.
-
- ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
- ³ Key processing ³
- ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
-
- Whenever a (normal) key is to be processed, the applications call back
- procedure Key%: will be called:
-
- Key%:( key%, mod% )
-
- key% is the value of the pressed key, e.g. %a or %O or anything
-
- mod% is the modifier, e.g. $02 if only [shift] is pressed
-
- This function has to return 1 if an exit is to perform afterwards,
- otherwise 0.
-
- ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
- ³ Special key processing ³
- ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
-
- Whenever a special key is to be processed, the applications call back
- procedure CtrlKey%: will be called:
-
- CtrlKey%:( key%, mod% )
-
- For the parameters and return code see the procedure Key%:
-
- The code will be subtracted by 256, providing: 0 for cursor up, 1 for
- cursor down, 4 for page up, 36 for the diamond key and so on!
-
- ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
- ³ Menu handling ³
- ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
-
- Every time when the menu key is pressed, the applications call back
- procedure Menu%: is called:
-
- Menu%:
-
- This procedure should build up a menu in the usual manner, providing the
- result of the OPL statement MENU as the procedures result.
-
- ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
- ³ Hotkey processing and menu element selection ³
- ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
-
- Each selected menu element and any (additional) hotkey has to be
- processed in the applications call back procedure Action%:
-
- Action%:( hotkey% )
-
- hotkey% stands for the hotkey or menu element selection, e.g. %o
-
- This procedure should return 1 if an exit is to be made, otherwise 0.
-
-
- ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
- º Enhanced functionality º
- ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
-
- There are lots of functions available in the SysLib, some of them are
- listed below:
-
- ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
- ³ [Ctrl][Menu] state window change ³
- ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
-
- To react correct on a [ctrl][menu] key press you have to use the
- SetWidth: call back procedure in such a way:
-
- Proc SetWidth:(width%)
- gSetWin gOriginX,gOriginY,gWidth+w%,gHeight Rem change the window size
- Rem include here your applications reaction to the size change
- Return 1 Rem signal a "size change accepted"
- Endp
-
- ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
- ³ Include an "About" message ³
- ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
-
- To show your initials on startup and provide an about box you have to
- provide a call back procedure About$: like this one:
-
- Proc About$:(i%)
- Vector i%
- a1,a2,a3,a4
- Endv
- a1:: Return "(c)1994"
- a2:: Return "Your Name"
- a3:: Return "Your email address"
- a4:: Return "Your initials"
- Endp
-
- To show the about box by reacting on the SysLib hotkey [shift]A include
- the following source fragment in your Action%: procedure:
-
- .....
- ElseIf hotkey%=k0%:(17)
- About:
- ElseIf ......
-
- ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
- ³ Date and time formatting ³
- ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
-
- Format a date number d& by using the procedure
-
- date$:(days&)
-
- or a time number t& by using the procedure
-
- time$:(time&,0)
-
- ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
- º SysLib's screen updating and cursor management º
- ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
-
- Since most of the applications on the S3a are line and column oriented,
- a large number of procedures are related to this type of screen output.
- To use this functionality, follow the below described guidelines (shown
- on basis of a simple example):
-
-
- Rem --------------- application source starts here --------------------------
- App Template
- Type Type $1003
- Ext "ext"
- Path "\template"
- Enda
-
- Rem enter the event loop
- Proc Main:
- LoadM dir$:("Sys$Lib2.opo")
- Events:("\template","ext","1.0","",0)
- Endp
-
- Rem try to find the SysLib on any local drive and in \opo or \syslib
- Proc dir$:(fn$)
- Local i%,d$(6),r$(7)
- d$="ABMABM" :r$="OPO\"
- Do
- i%=i%+1
- If i%=4 :r$="SYSLIB\" :EndIf
- If Exist(Mid$(d$,i%,1)+":\"+r$+fn$)
- Return (Mid$(d$,i%,1)+":\"+r$+fn$)
- EndIf
- Until i%=6
- Return fn$
- Endp
-
- Rem handle messages
- Proc Message:(t%)
- If t%=0 Rem initialize application
- ttl%=1 Rem use a title line
- sld%=1 Rem use a slider bar
- Zoom:(0) Rem use the standard font selection
- SetStat:(2) Rem use the big status window on startup
- SetFnc:("Lne","PrtIdx") Rem use the standard index output proc's
- SetFnc:("Pos","pSeek") Rem use this positioning procedure
- SetFnc:("Hdr","Head") Rem use this title output procedure
- SetFnc:("Fld","Field") Rem use this field output procedure
- Count%=3 Rem let us assume there are 3 lines to draw
- poll%=3 Rem signal: redraw the whole screen
- EndIf
- Endp
-
- Rem call back proc for the field values
- Proc Field$:(f%,n%)
- Return Num$(n%,3)+","+Num$(f%,3) Rem simply print line and column #
- Endp
-
- Rem call back proc for the title identifiers
- Proc Head$:(i%)
- Return Num$(i%,3) Rem simply print the column #
- Endp
-
- Rem call back proc for doing a seek on item n%
- Proc pSeek%:(n%)
- Endp
-
- Proc Create%:
- Endp
-
- Proc Open%:
- Endp
-
- Proc Close%:
- Endp
-
- Rem react on [ctrl][menu] key combinations
- Proc SetWidth:(w%)
- gSetWin gOriginX,gOriginY,gWidth+w%,gHeight
- SetCW:(-1,g%(6)*28,2) Rem the first column is 28 chars wide
- SetCW:(0,g%(6)*8,1) Rem the second column is 8 chars wide
- poll%=3 Rem redraw the screen
- Return 1 Rem signal "ok"
- Endp
-
- Rem catch all the simple key presses, return 1 if to exit
- Proc Key%:(k%,s%)
- Endp
-
- Rem react on special key combinations (including diamond key),
- Rem return 1 if to exit
- Proc CtrlKey:(k%,s%)
- If MoveCur:(k%) Rem process cursor movement
- giPrint "Key not valid" Rem process any non cursor movement keys
- EndIf
- Endp
-
- Rem perform menu and hotkey operations, return 1 if to exit
- Proc Action%:(k%)
- If k%=%x
- Return 1
- EndIf
- Endp
-
- Rem make a menu on request, return the result on exit
- Proc Menu%:
- Local i%
- mInit
- mCard "Special","Exit",%x
- Lock On
- i%=Menu
- Lock Off
- Return i%
- Endp
- Rem --------------- application source ends here ----------------------------
-
- ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
- ³ Zoom the working font ³
- ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
-
- To increase the current font by 1 use
-
- Zoom:(1)
-
- To decrease the current font by 1 use
-
- Zoom:(-1)
-
- To force a redraw use afterwards:
-
- SetWidth:(0)
-
-
- ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
- º SysLib's global variables º
- ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
-
- The following variables may be changed by the application:
-
- Global fnt% Rem font number (default=7)
- Global esc% Rem exit by escape (1=yes, 2=no)
- Global frm% Rem use framed output (1=yes, 2=no)
- Global cm% Rem cursor mode (1=arrow, 2=line)
- Global sld% Rem use a slider bar on the right side (1=yes, 2=no)
- Global ttl% Rem use a title line (1=yes, 2=no)
- Global Count% Rem number of items (records)
- Global poll% Rem refresh signal, refresh:
- Rem 1=full screen w/o title
- Rem 2=full screen w title
- Rem 3=full screen w cls
- Rem 4=only current line
- Rem 5=only current and next line
- Rem 6=only current and previous line
- Rem 7=only title and current line
- Rem 8=only title
- Global top% Rem number of first index line (top line)
- Global cp% Rem number of current index line on screen
-
- The following variables may be checked by the application:
-
- Global o% Rem current file message %O, %C or %X
- Global f$(128) Rem current file name (including path)
- Global Pos% Rem current line position
- Global lg$(2) Rem current language code ("01" is english)
- Global pid% Rem current process id
-
-
- ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
- º Further documentation º
- ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
-
- Since the above description is only a fraction of the functionality,
- please look out for the next versions of SysLib to include more
- specification documentation!
-
-
- (c)1994 by Thomas Nemec, Vienna, Austria
-
-