home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Datafile PD-CD 3
/
PDCD_3.iso
/
utilities
/
utilst
/
zap
/
!Zap
/
Docs
/
E-Cursors
< prev
next >
Wrap
Text File
|
1993-12-13
|
3KB
|
75 lines
*************************************************************************
* >E-Cursors Documents a cursor block format. *
*************************************************************************
Zap currently supports 3 cursors. Each has a cursor block. The addresses of
the blocks can be read via Zap_ReadVar (See E-Vars). I will call them after
the names of their pointers, ie, car_cursor, car_input, car_selection. The
second is not usually used. It is used in cursor mode 2, when the cursors are
split for keyboard copying.
The current cursor mode is stored in a variable called car_mode. Use
Zap_ReadVar to get at this. Currently modes 0-5 are defined as below:
Mode: Cursors updated on screen: Use:
0 car_selection Zap hasn't got the input.
square where input should be
1 car_cursor & car_selection Standard editing
cursor and input carets combined.
2 car_cursor Split cursor copying
car_input car_cursor=moving cursor
car_selection car_input=where input goes
3 car_selection Select area via keyboard
car_cursor=current posn
4 car_selection Select area via mouse
car_cursor=current posn
5 car_input & car_selection Select via mouse with CTRL held
car_cursor=current posn
car_input=fixed cursor
Internally, Zap also uses the modes:
-1 square where input should be Caret 'temporarily' lost by Zap.
car_selection (Eg it is in a menu item)
-2 car_selection only Used as a temporary value to scrub
carets from the screen.
The offsets of a cursor block have names beginning 'c_'. As usual, the
E-Library file defines these offsets for you. They are described below. By
convention, R10 is used to point to a cursor block.
c_wind
Window offset of associated window (use Zap_ConvWindOff). This offset is -1
if the cursor is not being used.
c_line Current line cursor is on.
c_col Current column cursor is on (including margin).
c_off Current file offset of cursor.
c_loff Current file offset of start of physical line of cursor.
c_width Width of cursor in characters.
c_owind Window of old cursor position.
c_oline Line of old cursor position.
c_ocol Column of old cursor position.
c_owidth Old cursor width.
The above meanings hold for car_cursor and car_input. For car_selection the
current cursor position is the start of the selection and the old cursor
position gives the end of the selection. Also c_owidth gives the end offset
of the selection. c_width is unused. By start and end I mean logical start
and end. Thus, it may not hold that the start comes before the end in the
file.
To alter a cursors position you should first store the new position in the
current position variables. The easiest way to do this is to store the new
offset in c_off and then call Zap_UpdateCaret. You should then call Zap_Plot
caret to move the caret on screen and update the old offset to the current
offset. Zap_ReflectCaret combines these.