home *** CD-ROM | disk | FTP | other *** search
- *************************************************************************
- * >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.
-