AES
Print dialogs
Event library
This library makes functions available to undertake editing
operations on an editable object.
Hint: The editable object is available from MagiC 5.20
onwards. As it is implemented as part of the shared library (SLB or
SharedLib), one only needs to open the library with:
Slbopen("EDITOBJC.SLB", NULL, 0L, &slb,
&slbexec);
The library installs a new AES object-type G_EDIT.
See also: Using G_EDIT objects AES GEM Object functions
Name: |
»Edit Object Close« - Close editable object
|
Opcode: |
212
|
Syntax: |
void edit_close ( OBJECT *tree, int16_t obj );
|
Description: |
The call edit_close closes size-dependent management structures
of an object and releases the memory used. The descriptor itself,
though, will be preserved. Text management is now no longer possible.
The following apply:
Parameter |
Meaning |
tree |
RSC-tree of object |
obj |
Object index |
|
Return value: |
The function does not return a result.
|
Availability: |
As of MagiC 5.20 by means of a shared library.
|
Group: |
Editable object functions
|
See also: |
Binding
|
C: |
void edit_close ( OBJECT *tree, int16_t obj );
|
Binding: |
void edit_close ( OBJECT *tree, int16_t obj )
{
int_in[0] = obj;
addr_in[0] = tree;
return ( crys_if(212) );
}
|
GEM-Arrays: |
Address |
Element |
Contents |
control |
control[0] |
212 # Function opcode |
control+2 |
control[1] |
1 # Entry in int_in |
control+4 |
control[2] |
0 # Entry in int_out |
control+6 |
control[3] |
1 # Entry in addr_in |
control+8 |
control[4] |
0 # Entry in addr_out |
int_in |
int_in[0] |
obj |
addr_in |
addr_in[0] |
tree |
|
Name: |
»Edit Object Create« - Create editable object
|
Opcode: |
210
|
Syntax: |
void *edit_create ( void )
|
Description: |
The call edit_create creates a corresponding descriptor (memory
is reserved), but the editor will not be opened yet. One can now alter
several settings with one of the edit_set_xxx functions. The default
settings are:
System font, 10 pt
Black on white
No line wrap
Tabulator width 64 pixels
|
Return value: |
Returns a descriptor for any further actions, or NULL if an
error has occurred (not enough memory). The descriptor must be entered
as ob_spec into the object.
|
Availability: |
As of MagiC 5.20 by means of a shared library.
|
Group: |
Editable object functions
|
See also: |
Binding
|
C: |
void *edit_create ( void )
|
Binding: |
void *edit_create ( void )
{
crys_if(210);
return ( addr_out[0] );
}
|
GEM-Arrays: |
Address |
Element |
Contents |
control |
control[0] |
210 # Function opcode |
control+2 |
control[1] |
0 # Entry in int_in |
control+4 |
control[2] |
0 # Entry in int_out |
control+6 |
control[3] |
0 # Entry in addr_in |
control+8 |
control[4] |
1 # Entry in addr_out |
addr_out |
addr_out[0] |
Return value |
|
Name: |
»Edit object cursor« - Edit cursor on/off.
|
Opcode: |
214
|
Syntax: |
int16_t edit_cursor ( OBJECT *tree, int16_t obj, int16_t whdl,
int16_t show );
|
Description: |
Parameter |
Meaning
|
|
|
tree |
RSC-tree of object
|
obj |
Object index
|
whdl |
Window handle or -1
|
show |
The cursor is switched on (show == 1), switched off (show == 0)
or examined (show == -1).
|
The call can be nested.
|
Return value: |
Return value is the cursor-off counter.
|
Availability: |
As of MagiC 5.20 by means of a shared library.
|
Group: |
Editable object functions
|
See also: |
Binding
|
C: |
int16_t edit_cursor ( OBJECT *tree, int16_t obj, int16_t whdl,
int16_t show );
|
Binding: |
int16_t edit_cursor ( OBJECT *tree, int16_t obj, int16_t whdl,
int16_t show )
{
addr_in[0] = tree;
int_in[0] = obj;
int_in[1] = whdl;
int_in[2] = show;
crys_if( 214 );
return ( int_out[0] );
}
|
GEM-Arrays: |
Address |
Element |
Contents |
control |
control[0] |
214 # Function opcode |
control+2 |
control[1] |
3 # Entry in int_in |
control+4 |
control[2] |
1 # Entry in int_out |
control+6 |
control[3] |
1 # Entry in addr_in |
control+8 |
control[4] |
0 # Entry in addr_out |
int_in |
int_in[0] |
obj |
int_in+2 |
int_in[1] |
whdl |
int_in+2 |
int_in[2] |
show |
addr_in |
addr_in[0] |
tree |
int_out |
int_out[0] |
Return value |
|
Name: |
»Edit Object Delete« - Remove editable object
|
Opcode: |
213
|
Syntax: |
void edit_delete ( void *editinfo );
|
Description: |
The call edit_delete releases the descriptor editinfo.
If the object is to be used further then the object type has to be
placed back on G_BOX.
|
Return value: |
The function does not return a result.
|
Availability: |
As of MagiC 5.20 by means of a shared library.
|
Group: |
Editable object functions
|
See also: |
Binding
|
C: |
void edit_delete ( void *editinfo );
|
Binding: |
void edit_delete ( void *editinfo )
{
addr_in[0] = editinfo;
crys_if( 213 );
}
|
GEM-Arrays: |
Address |
Element |
Contents |
control |
control[0] |
213 # Function opcode |
control+2 |
control[1] |
0 # Entry in int_in |
control+4 |
control[2] |
0 # Entry in int_out |
control+6 |
control[3] |
1 # Entry in addr_in |
control+8 |
control[4] |
0 # Entry in addr_out |
addr_in |
addr_in[0] |
editinfo |
|
Name: |
»Edit object event« - Process editable object
|
Opcode: |
215
|
Syntax: |
int16_t edit_evnt ( OBJECT *tree, int16_t obj, int16_t whdl,
EVNT *events, int32_t *errcode );
|
Description: |
The call edit_evnt causes events, i.e. mouse clicks and key
presses, to be forwarded to the editable object and processed by it if
appropriate. When an event has been processed, the corresponding bit
in the EVENT structure is cleared. The following apply:
Parameter |
Meaning
|
|
|
tree |
RSC-tree of object
|
obj |
Object index
|
whdl |
Window handle or -1
|
events |
EVENT structure as for wdlg_evnt, fnts_evnt; the events are
processed by the dialog if they are intended for the associated window
|
errcode |
Error code (-200 = text buffer full)
|
|
Return value: |
The function returns the value 0 in case of error. The exact
error-code in this case is stored in the variable errcode.
|
Availability: |
As of MagiC 5.20 by means of a shared library.
|
Group: |
Editable object functions
|
See also: |
Binding Keyboard codes
|
C: |
int16_t edit_evnt ( OBJECT *tree, int16_t obj, int16_t whdl,
EVNT *events, int32_t *errcode );
|
Binding: |
int16_t edit_evnt ( OBJECT *tree, int16_t obj, int16_t whdl,
EVNT *events, int32_t *errcode )
{
int_in[0] = obj;
int_in[1] = whdl;
addr_in[0] = tree;
addr_in[1] = events;
int_out[1] = 0; /* für alte SLB */
int_out[2] = 0; /* für alte SLB */
crys_if( 215 )
*errcode = int_out[1..2];
return ( int_out[0] );
}
|
GEM-Arrays: |
Address |
Element |
Contents |
control |
control[0] |
215 # Function opcode |
control+2 |
control[1] |
2 # Entry in int_in |
control+4 |
control[2] |
3 # Entry in int_out |
control+6 |
control[3] |
2 # Entry in addr_in |
control+8 |
control[4] |
0 # Entry in addr_out |
int_in |
int_in[0] |
obj |
int_in+2 |
int_in[1] |
whdl |
addr_in |
addr_in[0] |
tree |
addr_in+4 |
addr_in[1] |
events |
int_out |
int_out[0] |
Return value |
int_out+2 |
int_out[1..2] |
errcode |
|
The error-code errcode is present only as of Version 7
of the SLB; the binding in MT_AES ensures that old SLB versions always
return NULLs. Vice versa, the new SLB versions recognize via contrl[2]
whether an error-code was requested.
Name: |
»Edit Object Get Buffer« - Examine settings: Text buffer
|
Opcode: |
216 (sub-opcode 0)
|
Syntax: |
int16_t edit_get_buf ( OBJECT *tree, int16_t obj, int8_t **buf,
int32_t *buflen, int32_t *txtlen );
|
Description: |
The call edit_get_buf obtains the settings of the text buffer.
The following apply:
Parameter |
Meaning |
tree |
RSC-tree of object |
obj |
Object index |
buf |
Address of buffer |
buflen |
Buffer length |
txtlen |
Current text length without EOS |
|
Return value: |
0 for error, else 1
|
Availability: |
As of MagiC 5.20 by means of a shared library.
|
Group: |
Editable object functions
|
See also: |
Binding
|
C: |
int16_t edit_get_buf ( OBJECT *tree, int16_t obj, int8_t **buf,
int32_t *buflen, int32_t *txtlen );
|
Binding: |
int16_t edit_get_buf ( OBJECT *tree, int16_t obj,
int8_t **buf,
int32_t *buflen, int32_t *txtlen )
{
int_in[0] = obj;
int_in[1] = 0; /* Sub-opcode for function */
addr_in[0] = tree;
crys_if( 216 );
*buflen = int_out[1..2];
*txtlen = int_out[3..4];
*buf = addr_out[0];
return ( int_out[0] );
}
|
GEM-Arrays: |
Address |
Element |
Contents |
control |
control[0] |
216 # Function opcode |
control+2 |
control[1] |
2 # Entry in int_in |
control+4 |
control[2] |
5 # Entry in int_out |
control+6 |
control[3] |
1 # Entry in addr_in |
control+8 |
control[4] |
1 # Entry in addr_out |
int_in |
int_in[0] |
obj |
int_in+2 |
int_in[1] |
0 # Sub-opcode |
addr_in |
addr_in[0] |
tree |
int_out |
int_out[0] |
Return value |
int_out+2 |
int_out[1..2] |
buflen |
int_out+6 |
int_out[3..4] |
txtlen |
addr_out |
addr_out[0] |
buf |
|
Name: |
»Edit Object Get Colour« - Examine settings: Colours
|
Opcode: |
216 (sub-opcode 2)
|
Syntax: |
int16_t edit_get_colour ( OBJECT *tree, int16_t obj, int16_t
*tcolour, int16_t *bcolour );
|
Description: |
The call edit_get_colour obtains the colour of an object. The
following apply:
Parameter |
Meaning |
tree |
RSC-tree of object |
obj |
Object index |
tcolour |
Text colour |
bcolour |
Background colour |
|
Return value: |
The function returns the value 1 on successful execution, else
the value 0 in case of error.
|
Availability: |
As of MagiC 5.20 by means of a shared library.
|
Group: |
Editable object functions
|
See also: |
Binding
|
C: |
int16_t edit_get_colour ( OBJECT *tree, int16_t obj, int16_t
*tcolour, int16_t *bcolour );
|
Binding: |
int16_t edit_get_colour ( OBJECT *tree, int16_t obj,
int16_t *tcolour, int16_t *bcolour )
{
int_in[0] = obj;
int_in[1] = 2; /* Sub-opcode for function */
addr_in[0] = tree;
crys_if( 216 );
*tcolour = int_out[1];
*bcolour = int_out[2];
return ( int_out[0] );
}
|
GEM-Arrays: |
Address |
Element |
Contents |
control |
control[0] |
216 # Function opcode |
control+2 |
control[1] |
2 # Entry in int_in |
control+4 |
control[2] |
3 # Entry in int_out |
control+6 |
control[3] |
1 # Entry in addr_in |
control+8 |
control[4] |
0 # Entry in addr_out |
int_in |
int_in[0] |
obj |
int_in+2 |
int_in[1] |
2 # Sub-opcode |
addr_in |
addr_in[0] |
tree |
int_out |
int_out[0] |
Return value |
int_out+2 |
int_out[1] |
tcolour |
int_out+4 |
int_out[2] |
bcolour |
|
Name: |
»Edit Object Get Cursor« - Examine settings: Absolute cursor
position
|
Opcode: |
216 (sub-opcode 4)
|
Syntax: |
int16_t edit_get_cursor ( OBJECT *tree, int16_t obj, int8_t
**cursorpos );
|
Description: |
The call edit_get_cursor obtains the absolute position of the
cursor in the text of an editable object. The following apply:
Parameter |
Meaning |
tree |
RSC-tree of object |
obj |
Object index |
cursorpos |
Cursor position in text |
|
Return value: |
0 for error, else 1
|
Availability: |
As of MagiC 5.20 by means of a shared library.
|
Group: |
Editable object functions
|
See also: |
Binding
|
C: |
int16_t edit_get_cursor ( OBJECT *tree, int16_t obj, int8_t
**cursorpos );
|
Binding: |
int16_t edit_get_cursor ( OBJECT *tree, int16_t obj,
int8_t **cursorpos )
{
int_in[0] = obj;
int_in[1] = 4; /* Sub-opcode for function */
addr_in[0] = tree;
crys_if( 216 );
*cursorpos = addr_out[0];
return ( int_out[0] );
}
|
GEM-Arrays: |
Address |
Element |
Contents |
control |
control[0] |
216 # Function Opcode |
control+2 |
control[1] |
2 # Entry in int_in |
control+4 |
control[2] |
1 # Entry in int_out |
control+6 |
control[3] |
1 # Entry in addr_in |
control+8 |
control[4] |
1 # Entry in addr_out |
int_in |
int_in[0] |
obj |
int_in+2 |
int_in[1] |
4 # Sub-opcode |
addr_in |
addr_in[0] |
tree |
int_out |
int_out[0] |
Return value |
addr_out |
addr_out[0] |
cursorpos |
|
Name: |
»Edit Object Get Dirtyflag« - Examine settings: Dirty flag
|
Opcode: |
216 (sub-opcode 7)
|
Syntax: |
int16_t edit_get_dirty ( OBJECT *tree, int16_t obj );
|
Description: |
The call edit_get_dirty lets one ascertain whether the text was
altered in the meantime. The flag can be cleared again with
edit_set_dirty or edit_set_buf. The following apply:
Parameter |
Meaning |
tree |
RSC-tree of object |
obj |
Object index |
|
Return value: |
The function returns the value 1 if the text was changed else
0.
|
Availability: |
As of MagiC 5.20 by means of a shared library.
|
Group: |
Editable object functions
|
See also: |
Binding
|
C: |
int16_t edit_get_dirty ( OBJECT *tree, int16_t obj );
|
Binding: |
int16_t edit_get_dirty ( OBJECT *tree, int16_t obj )
{
int_in[0] = obj;
int_in[1] = 7; /* Sub-opcode for function */
addr_in[0] = tree;
crys_if( 216 );
return ( int_out[0] );
}
|
GEM-Arrays: |
Address |
Element |
Contents |
control |
control[0] |
216 # Function opcode |
control+2 |
control[1] |
2 # Entry in int_in |
control+4 |
control[2] |
1 # Entry in int_out |
control+6 |
control[3] |
1 # Entry in addr_in |
control+8 |
control[4] |
0 # Entry in addr_out |
int_in |
int_in[0] |
obj |
int_in+2 |
int_in[1] |
7 # Sub-opcode |
addr_in |
addr_in[0] |
tree |
int_out |
int_out[0] |
Return value |
|
Name: |
»Edit Object Get Font« - Examine settings: Font
|
Opcode: |
216 (sub-opcode 3)
|
Syntax: |
int16_t edit_get_font ( OBJECT *tree, int16_t obj, int16_t
*fontID, int16_t *fontH, int16_t *fontPix, int16_t *mono );
|
Description: |
The call edit_get_font obtains information about the ID, size
and type of font used in an editable object. The following apply:
Parameter |
Meaning
|
|
|
tree |
RSC-tree of object
|
obj |
Object index
|
fontID |
Font ID
|
fontH |
Height for vst_point
|
fontPix |
0=points, 1=pixels
(available as of version 8 (3.5.98) of the SLB)
|
mono |
Flag for equidistant font
|
|
Return value: |
The function returns the value 1 on successful execution, else
the value 0 in case of error.
|
Availability: |
As of MagiC 5.20 by means of a shared library.
|
Group: |
Editable object functions
|
See also: |
Binding
|
C: |
int16_t edit_get_font ( OBJECT *tree, int16_t obj, int16_t
*fontID, int16_t *fontH, int16_t *fontPix, int16_t *mono );
|
Binding: |
int16_t edit_get_font ( OBJECT *tree, int16_t obj,
int16_t *fontID, int16_t *fontH,
int16_t *fontPix, int16_t *mono )
{
int_in[0] = obj;
int_in[1] = 3; /* Sub-opcode for function */
addr_in[0] = tree;
int_out[4] = 0; /* for old SLB */
crys_if( 216 );
*fontID = int_out[1];
*fontH = int_out[2];
*mono = int_out[3];
*fontPix = int_out[4];
return ( int_out[0] );
}
|
GEM-Arrays: |
Address |
Element |
Contents |
control |
control[0] |
216 # Function opcode |
control+2 |
control[1] |
2 # Entry in int_in |
control+4 |
control[2] |
5 # Entry in int_out |
control+6 |
control[3] |
1 # Entry in addr_in |
control+8 |
control[4] |
0 # Entry in addr_out |
int_in |
int_in[0] |
obj |
int_in+2 |
int_in[1] |
3 # Sub-opcode |
addr_in |
addr_in[0] |
tree |
int_out |
int_out[0] |
Return value |
int_out+2 |
int_out[1] |
fontID |
int_out+4 |
int_out[2] |
fontH |
int_out+6 |
int_out[3] |
mono |
int_out+8 |
int_out[4] |
fontPix |
|
Name: |
»Edit Object Get Format« - Examine settings: Formating
|
Opcode: |
216 (sub-opcode 1)
|
Syntax: |
int16_t edit_get_format ( OBJECT *tree, int16_t obj, int16_t
*tabwidth, int16_t *autowrap );
|
Description: |
The call edit_get_format obtains information about the
formatting of text in an editable object. The following apply:
Parameter |
Meaning
|
|
|
tree |
RSC-tree of object
|
obj |
Object index
|
tabwidth |
Tabulator width
|
autowrap |
> 0: Pixel width for auto line wrap (generally == object
width)
= 0: No wrapping, but horiz. scrolling
|
|
Return value: |
0 for error, else 1
|
Availability: |
As of MagiC 5.20 by means of a shared library.
|
Group: |
Editable object functions
|
See also: |
Binding
|
C: |
int16_t edit_get_format ( OBJECT *tree, int16_t obj, int16_t
*tabwidth, int16_t *autowrap );
|
Binding: |
int16_t edit_get_format ( OBJECT *tree, int16_t obj,
int16_t *tabwidth,
int16_t *autowrap )
{
int_in[0] = obj;
int_in[1] = 1; /* Sub-opcode für Funktion */
addr_in[0] = tree;
crys_if( 216 );
*tabwidth = int_out[1];
*autowrap = int_out[2];
return ( int_out[0] );
}
|
GEM-Arrays: |
Address |
Element |
Contents |
control |
control[0] |
216 # Function opcode |
control+2 |
control[1] |
2 # Entry in int_in |
control+4 |
control[2] |
3 # Entry in int_out |
control+6 |
control[3] |
1 # Entry in addr_in |
control+8 |
control[4] |
0 # Entry in addr_out |
int_in |
int_in[0] |
obj |
int_in+2 |
int_in[1] |
1 # Sub-opcode |
addr_in |
addr_in[0] |
tree |
int_out |
int_out[0] |
Return value |
int_out+2 |
int_out[1] |
tabwidth |
int_out+4 |
int_out[2] |
autowrap |
|
Name: |
»Edit Object Get ?« - Obtain important information about an
editable object.?
|
Opcode: |
216 (sub-opcode 5)
|
Syntax: |
void edit_get_pos ( OBJECT *tree, int16_t obj, int16_t
*xscroll, int32_t *yscroll, int8_t **cyscroll, int8_t **cursorpos,
int16_t *cx, int16_t *cy );
|
Description: |
Exactly what the function edit_get_pos does is not known, as it
only turns up in the binding mt_edit.c. From the parameters it seems
to obtain information about cursor position and scrolling functions in
an editable object. The following apply:
Parameter |
Meaning |
tree |
RSC-tree of object |
obj |
Object index |
xscroll |
|
yscroll |
|
cyscroll |
|
cursorpos |
|
cx |
|
cy |
|
|
Return value: |
The function does not return a result.
|
Availability: |
As of MagiC 5.20 by means of a shared library.
|
Group: |
Editable object functions
|
See also: |
Binding
|
C: |
void edit_get_pos ( OBJECT *tree, int16_t obj, int16_t
*xscroll, int32_t *yscroll, int8_t **cyscroll, int8_t **cursorpos,
int16_t *cx, int16_t *cy );
|
Binding: |
void edit_get_pos ( OBJECT *tree, int16_t obj,
int16_t *xscroll, int32_t *yscroll,
int8_t **cyscroll, int8_t **cursorpos,
int16_t *cx, int16_t *cy )
{
int_in[0] = obj;
int_in[1] = 5; /* Sub-opcode for function */
addr_in[0] = tree;
crys_if( 216 );
*xscroll = int_out[1];
*yscroll = int_out[2..3];
*cx = int_out[4];
*cy = int_out[5];
*cyscroll = addr_out[0];
*cursorpos = addr_out[1];
return;
}
|
GEM-Arrays: |
Address |
Element |
Contents |
control |
control[0] |
216 # Function opcode |
control+2 |
control[1] |
2 # Entry in int_in |
control+4 |
control[2] |
6 # Entry in int_out |
control+6 |
control[3] |
1 # Entry in addr_in |
control+8 |
control[4] |
2 # Entry in addr_out |
int_in |
int_in[0] |
obj |
int_in+2 |
int_in[1] |
5 # Sub-opcode |
addr_in |
addr_in[0] |
tree |
int_out |
int_out[0] |
undefined |
int_out+2 |
int_out[1] |
xscroll |
int_out+4 |
int_out[2..3] |
yscroll |
int_out+8 |
int_out[4] |
cx |
int_out+10 |
int_out[5] |
cy |
addr_out |
addr_out[0] |
cyscroll |
addr_out+4 |
addr_out[1] |
cursorpos |
|
Name: |
»Edit Object Get Scrollinformation« - Examine settings:
Scroll information
|
Opcode: |
216 (sub-opcode 9)
|
Syntax: |
void edit_get_scrollinfo ( OBJECT *tree, int16_t obj, int32_t
*nlines, int32_t *yscroll, int16_t *yvis, int16_t *yval, int16_t
*ncols, int16_t *xscroll, int16_t *xvis );
|
Description: |
The call edit_get_scrollinfo obtains information about
scrollable text capabilities in an editable object. The following
apply:
Parameter |
Meaning
|
|
|
tree |
RSC-tree of object
|
obj |
Object index
|
nlines |
Number of lines in text
|
yscroll |
First visible line
|
yvis |
Number of max. visible lines
|
yval |
Number of currently visible lines
|
ncols |
Number of columns, or -1 (unknown)
|
xscroll |
Horizontal scroll offset in pixels
|
xvis |
Number of visible columns (in pixels)
|
This information is required in order to set the horizontal and
vertical scroll bars. As the editable object would have to make a
vq_extend for each individual line, actually at each alteration of a
line, the number of columns is currently not defined and the call
returns -1.
MGEDIT here simply assumes a fixed width, in the same way as other
programs e.g. VIEW.PRG and PC.PRG do as well. yval is always
smaller or equal to yvis. If the text has fewer lines that
yvis, then yval is always smaller.
|
Return value: |
The function does not return a result.
|
Availability: |
As of MagiC 5.20 by means of a shared library.
|
Group: |
Editable object functions
|
See also: |
Binding
|
C: |
void edit_get_scrollinfo ( OBJECT *tree, int16_t obj, int32_t
*nlines, int32_t *yscroll, int16_t *yvis, int16_t *yval, int16_t
*ncols, int16_t *xscroll, int16_t *xvis );
|
Binding: |
void edit_get_scrollinfo ( OBJECT *tree, int16_t obj,
int32_t *nlines, int32_t *yscroll,
int16_t *yvis, int16_t *yval,
int16_t *ncols, int16_t *xscroll,
int16_t *xvis )
{
int_in[0] = obj;
int_in[1] = 9; /* Sub-opcode for function */
addr_in[0] = tree;
crys_if( 216 );
*nlines = int_out[1..2];
*yscroll = int_out[3..4];
*yvis = int_out[5];
*yval = int_out[6];
*ncols = int_out[7];
*xscroll = int_out[8];
*xvis = int_out[9];
return;
}
|
GEM-Arrays: |
Address |
Element |
Contents |
control |
control[0] |
216 # Function opcode |
control+2 |
control[1] |
2 # Entry in int_in |
control+4 |
control[2] |
10 # Entry in int_out |
control+6 |
control[3] |
1 # Entry in addr_in |
control+8 |
control[4] |
0 # Entry in addr_out |
int_in |
int_in[0] |
obj |
int_in+2 |
int_in[1] |
9 # Sub-opcode |
addr_in |
addr_in[0] |
tree |
int_out |
int_out[0] |
undefined |
int_out+2 |
int_out[1..2] |
nlines |
int_out+6 |
int_out[3..4] |
yscroll |
int_out+10 |
int_out[5] |
yvis |
int_out+11 |
int_out[6] |
yval |
int_out+12 |
int_out[7] |
ncols |
int_out+13 |
int_out[8] |
xscroll |
int_out+14 |
int_out[9] |
xvis |
In mt_edit.c is control[2] set with 6 (?).
|
Name: |
»Edit Object Get Selection« - Examine settings: Selected
region
|
Opcode: |
216 (sub-opcode 8)
|
Syntax: |
void edit_get_sel ( OBJECT *tree, int16_t obj, int8_t **bsel,
int8_t **esel );
|
Description: |
The call edit_get_sel obtains information about a selected
region in an editable object. The following apply:
Parameter |
Meaning
|
|
|
tree |
RSC-tree of object
|
obj |
Object index
|
bsel |
Start of selected region
|
esel |
After the end of the selected region
|
If no region is selected then bsel == NULL.
|
Return value: |
The function returns the value 1 on successful execution, else
the value 0 in case of error.
|
Availability: |
As of MagiC 5.20 by means of a shared library.
|
Group: |
Editable object functions
|
See also: |
Binding
|
C: |
void edit_get_sel ( OBJECT *tree, int16_t obj, int8_t **bsel,
int8_t **esel );
|
Binding: |
void edit_get_sel ( OBJECT *tree, int16_t obj,
int8_t **bsel, int8_t **esel )
{
int_in[0] = obj;
int_in[1] = 8; /* Sub-opcode for function */
addr_in[0] = tree;
crys_if( 216 );
*bsel = addr_out[0];
*esel = addr_out[1];
return;
}
|
GEM-Arrays: |
Address |
Element |
Contents |
control |
control[0] |
216 # Function opcode |
control+2 |
control[1] |
2 # Entry in int_in |
control+4 |
control[2] |
0 # Entry in int_out |
control+6 |
control[3] |
1 # Entry in addr_in |
control+8 |
control[4] |
2 # Entry in addr_out |
int_in |
int_in[0] |
obj |
int_in+2 |
int_in[1] |
8 # Sub-opcode |
addr_in |
addr_in[0] |
tree |
addr_out |
addr_out[0] |
bsel |
addr_out+4 |
addr_out[1] |
esel |
In the original documentation this function is defined with an
int16_t return value; however in mt_edit.c this is given as void.
|
Name: |
»Edit Object Open« - Open editable object
|
Opcode: |
211
|
Syntax: |
int16_t edit_open ( OBJECT *tree, int16_t obj );
|
Description: |
The call edit_open opens an editable object. The following
apply:
Parameter |
Meaning
|
|
|
tree |
RSC-tree of object
|
obj |
Object index
|
The number of lines and columns of text visible for the object
size is calculated, and corresponding pointers are created. Memory is
then requested for it.
|
Return value: |
The function returns the value 1 on successfull execution, else
the value 0 in case of error.
|
Availability: |
As of MagiC 5.20 by means of a shared library.
|
Group: |
Editable object functions
|
See also: |
Binding
|
C: |
int16_t edit_open ( OBJECT *tree, int16_t obj );
|
Binding: |
int16_t edit_open ( OBJECT *tree, int16_t obj )
{
int_in[0] = obj;
addr_in[0] = tree;
crys_if( 211 );
return ( int_out [0] );
}
|
GEM-Arrays: |
Address |
Element |
Contents |
control |
control[0] |
211 # Function opcode |
control+2 |
control[1] |
1 # Entry in int_in |
control+4 |
control[2] |
1 # Entry in int_out |
control+6 |
control[3] |
1 # Entry in addr_in |
control+8 |
control[4] |
0 # Entry in addr_out |
int_in |
int_in[0] |
obj |
addr_in |
addr_in[0] |
tree |
int_out |
int_out[0] |
Return value |
|
Name: |
»Edit Object Resized« - Alter settings: Object size
|
Opcode: |
217 (sub-opcode 6)
|
Syntax: |
int16_t edit_resized ( OBJECT *tree, int16_t obj, int16_t
*oldrh, int16_t *newrh );
|
Description: |
The call edit_resized alters the height of an editable object.
The following apply:
Parameter |
Meaning
|
|
|
tree |
RSC-tree of object
|
obj |
Object index
|
oldrh |
Old net height of object
|
newrh |
New net height of object
|
For changes of the object size the editable object must release
and reserve memory. Thus it is possible that in extreme circumstances
the operation fails due to a shortage of memory. In that case the
return value is 0. So that the calling program can execute a correct
redraw, the previous and new actual height is returned. In fact it
means here the number of visible lines multiplied by the line height,
i.e. the object height without the unused bottom white border.
|
Return value: |
1 (OK) or 0 (error)
|
Availability: |
As of MagiC 5.20 by means of a shared library.
|
Group: |
Editable object functions
|
See also: |
Binding
|
C: |
int16_t edit_resized ( OBJECT *tree, int16_t obj, int16_t
*oldrh, int16_t *newrh );
|
Binding: |
int16_t edit_resized ( OBJECT *tree, int16_t obj,
int16_t *oldrh, int16_t *newrh )
{
int_in[0] = obj;
int_in[1] = 6; /* Sub-opcode for function */
addr_in[0] = tree;
crys_if( 217 );
*oldrh = int_out[1];
*newrh = int_out[2];
return ( int_out [0] );
}
|
GEM-Arrays: |
Address |
Element |
Contents |
control |
control[0] |
217 # Function opcode |
control+2 |
control[1] |
2 # Entry in int_in |
control+4 |
control[2] |
3 # Entry in int_out |
control+6 |
control[3] |
1 # Entry in addr_in |
control+8 |
control[4] |
0 # Entry in addr_out |
int_in |
int_in[0] |
obj |
int_in+2 |
int_in[1] |
6 # Sub-opcode |
addr_in |
addr_in[0] |
tree |
int_out |
int_out[0] |
Return value |
int_out+2 |
int_out[1] |
oldrh |
int_out+4 |
int_out[4] |
newrh |
|
Name: |
»Edit Object Scroll« - Alter settings: Scroll positions
|
Opcode: |
217 (sub-opcode 9)
|
Syntax: |
int16_t edit_scroll ( OBJECT *tree, int16_t obj, int16_t whdl,
int32_t yscroll, int16_t xscroll );
|
Description: |
The call edit_scroll is used for altering the scroll position
in an editable object. The following apply:
Parameter |
Meaning
|
|
|
tree |
RSC-tree of object
|
obj |
Object index
|
whdl |
Window handle or -1
|
yscroll |
Vertical scroll offset in lines
|
xscroll |
Horizontal scroll offset in pixels
|
With this one scrolls horizontally and vertically absolutely.
This call is required when a scroll bar or arrow has been clicked on.
The window handle is required so that the rectangle list is taken into
consideration during scrolling.
An error-code will be returned if the number of lines has been
exceeded.
|
Return value: |
1 (OK) or 0 (Error)
|
Availability: |
As of MagiC 5.20 by means of a shared library.
|
Group: |
Editable object functions
|
See also: |
Binding
|
C: |
int16_t edit_scroll ( OBJECT *tree, int16_t obj, int16_t whdl,
int32_t yscroll, int16_t xscroll );
|
Binding: |
int16_t edit_scroll ( OBJECT *tree, int16_t obj, int16_t whdl,
int32_t yscroll, int16_t xscroll )
{
int_in[0] = obj;
int_in[1] = 9; /* Sub-opcode for function */
int_in[2] = whdl;
int_in[3..4] = yscroll;
int_in[5] = xscroll;
addr_in[0] = tree;
crys_if( 217 );
return ( int_out [0] );
}
|
GEM-Arrays: |
Address |
Element |
Contents |
control |
control[0] |
217 # Function opcode |
control+2 |
control[1] |
6 # Entry in int_in |
control+4 |
control[2] |
1 # Entry in int_out |
control+6 |
control[3] |
1 # Entry in addr_in |
control+8 |
control[4] |
0 # Entry in addr_out |
int_in |
int_in[0] |
obj |
int_in+2 |
int_in[1] |
9 # Sub-opcode |
int_in+4 |
int_in[2] |
whdl |
int_in+6 |
int_in[3..4] |
yscroll |
int_in+10 |
int_in[5] |
xscroll |
addr_in |
addr_in[0] |
tree |
int_out |
int_out[0] |
Return value |
|
Name: |
»Edit Object Set Buffer« - Alter settings: Text buffer
|
Opcode: |
217 (sub-opcode 0)
|
Syntax: |
void edit_set_buf ( OBJECT *tree, int16_t obj, int8_t *buf,
int32_t buflen );
|
Description: |
The call edit_set_buf is used to alter the settings of the text
buffer for an editable object. The following apply:
Parameter |
Meaning
|
|
|
tree |
Object tree
|
obj |
Object index
|
buf |
Text buffer. The text is present in DOS format with CR/LF as
line-end identifier and is terminated by a Nullbyte.
|
buflen |
Length of text buffer inclusive of closing Nullbyte.
|
The buffer is allocated to the text object, the number of lines
are determined. The cursor is set to the start of the text. This call
clears the Dirty flag.
|
Return value: |
The function does not return a result.
|
Availability: |
As of MagiC 5.20 by means of a shared library.
|
Group: |
Editable object functions
|
See also: |
Binding
|
C: |
void edit_set_buf ( OBJECT *tree, int16_t obj, int8_t *buf,
int32_t buflen );
|
Binding: |
void edit_set_buf ( OBJECT *tree, int16_t obj, int8_t *buf,
int32_t buflen )
{
int_in[0] = obj;
int_in[1] = 0; /* Sub-opcode for function */
int_in[2..3] = buflen;
addr_in[0] = tree;
addr_in[1] = buf;
crys_if( 217 );
return;
}
|
GEM-Arrays: |
Address |
Element |
Contents |
control |
control[0] |
217 # Function opcode |
control+2 |
control[1] |
4 # Entry in int_in |
control+4 |
control[2] |
0 # Entry in int_out |
control+6 |
control[3] |
2 # Entry in addr_in |
control+8 |
control[4] |
0 # Entry in addr_out |
int_in |
int_in[0] |
obj |
int_in+2 |
int_in[1] |
0 # Sub-opcode |
int_in+4 |
int_in[2..3] |
buflen |
addr_in |
addr_in[0] |
tree |
addr_in+4 |
addr_in[1] |
buf |
|
Name: |
»Edit Object Set Colour« - Alter settings: Colours
|
Opcode: |
217 (sub-opcode 2)
|
Syntax: |
void edit_set_colour ( OBJECT *tree, int16_t obj, int16_t
tcolour, int16_t bcolour );
|
Description: |
The call edit_set_colour is used to alter the colours in an
editable object. The following apply:
Parameter |
Meaning
|
|
|
tree |
Object tree
|
obj |
Object index
|
tcolour |
Text colour
|
bcolour |
Background colour
|
If one of the two attributes is to remain unchanged then -1 can
be passed.
If the editable object was opened previously, then one should
generally trigger a redraw when changing one of the attributes.
|
Return value: |
The function does not return a result.
|
Availability: |
As of MagiC 5.20 by means of a shared library.
|
Group: |
Editable object functions
|
See also: |
Binding
|
C: |
void edit_set_colour ( OBJECT *tree, int16_t obj, int16_t
tcolour, int16_t bcolour );
|
Binding: |
void edit_set_colour ( OBJECT *tree, int16_t obj,
int16_t tcolour, int16_t bcolour )
{
int_in[0] = obj;
int_in[1] = 2; /* Sub-opcode for function */
int_in[2] = tcolour;
int_in[3] = bcolour;
addr_in[0] = tree;
crys_if( 217 );
return;
}
|
GEM-Arrays: |
Address |
Element |
Contents |
control |
control[0] |
217 # Function opcode |
control+2 |
control[1] |
4 # Entry in int_in |
control+4 |
control[2] |
0 # Entry in int_out |
control+6 |
control[3] |
1 # Entry in addr_in |
control+8 |
control[4] |
0 # Entry in addr_out |
int_in |
int_in[0] |
obj |
int_in+2 |
int_in[1] |
2 # Sub-opcode |
int_in+4 |
int_in[2] |
tcolour |
int_in+6 |
int_in[3] |
bcolour |
addr_in |
addr_in[0] |
tree |
|
Name: |
»Edit Object Set Cursor« - Alter settings: Absolute
positioning of cursor
|
Opcode: |
217 (sub-opcode 4)
|
Syntax: |
void edit_set_cursor ( OBJECT *tree, int16_t obj, int8_t
*cursorpos );
|
Description: |
The call edit_set_cursor sets the absolute position of the
cursor in an editable object. The following apply:
Parameter |
Meaning
|
|
|
tree |
Object tree
|
obj |
Object index
|
cursorpos |
Absolute cursor position
|
|
Return value: |
The function does not return a result.
|
Availability: |
As of MagiC 5.20 by means of a shared library.
|
Group: |
Editable object functions
|
See also: |
Binding
|
C: |
void edit_set_cursor ( OBJECT *tree, int16_t obj, int8_t
*cursorpos );
|
Binding: |
void edit_set_cursor ( OBJECT *tree, int16_t obj,
int8_t *cursorpos )
{
int_in[0] = obj;
int_in[1] = 4; /* Sub-opcode for function */
addr_in[0] = tree;
addr_in[1] = cursorpos;
crys_if( 217 );
return;
}
|
GEM-Arrays: |
Address |
Element |
Contents |
control |
control[0] |
217 # Function opcode |
control+2 |
control[1] |
2 # Entry in int_in |
control+4 |
control[2] |
0 # Entry in int_out |
control+6 |
control[3] |
2 # Entry in addr_in |
control+8 |
control[4] |
0 # Entry in addr_out |
int_in |
int_in[0] |
obj |
int_in+2 |
int_in[1] |
4 # Sub-opcode |
addr_in |
addr_in[0] |
tree |
addr_in+4 |
addr_in[1] |
cursorpos |
|
Name: |
»Edit Object Set Dirtyflag« - Alter settings: Dirty flag
|
Opcode: |
217 (sub-opcode 7)
|
Syntax: |
void edit_set_dirty ( OBJECT *tree, int16_t obj, int16_t dirty
);
|
Description: |
The call edit_set_dirty changes the settings of the Dirty flag
for an editable object. The following apply:
Parameter |
Meaning
|
|
|
tree |
RSC-tree of object
|
obj |
Object number
|
dirty |
0 = clear, or 1 = set
|
With this one can clear the Dirty flag when the text has been
saved.
|
Return value: |
The function does not return a result.
|
Availability: |
As of MagiC 5.20 by means of a shared library.
|
Group: |
Editable object functions
|
See also: |
Binding
|
C: |
void edit_set_dirty ( OBJECT *tree, int16_t obj, int16_t dirty
);
|
Binding: |
void edit_set_dirty ( OBJECT *tree, int16_t obj,
int16_t dirty )
{
int_in[0] = obj;
int_in[1] = 7; /* Sub-opcode for function */
int_in[2] = dirty;
addr_in[0] = tree;
crys_if( 217 );
return;
}
|
GEM-Arrays: |
Address |
Element |
Contents |
control |
control[0] |
217 # Function opcode |
control+2 |
control[1] |
3 # Entry in int_in |
control+4 |
control[2] |
0 # Entry in int_out |
control+6 |
control[3] |
1 # Entry in addr_in |
control+8 |
control[4] |
0 # Entry in addr_out |
int_in |
int_in[0] |
obj |
int_in+2 |
int_in[1] |
7 # Sub-opcode |
int_in+4 |
int_in[4] |
dirty |
addr_in |
addr_in[0] |
tree |
|
Name: |
»Edit Object Set Font« - Alter settings: Font
|
Opcode: |
217 (sub-opcode 3)
|
Syntax: |
void edit_set_font ( OBJECT *tree, int16_t obj, int16_t fontID,
int16_t fontH, int16_t fontPix, int16_t mono );
|
Description: |
The call edit_set_font sets the ID, size and type of font used
in an editable object. The following apply:
Parameter |
Meaning
|
|
|
tree |
Object tree
|
obj |
Object index
|
fontID |
Font ID
|
fontH |
Character height in "points"
|
fontPix |
0=points, 1=pixels (from 3.5.98 on)
|
mono |
'Equidistant' flag
|
If the editable object was opened previously, then one should
generally trigger a redraw when changing the font.
The mono flag is required to give the editable object
the possibility to handle equidistant fonts (mono == 1) appreciably
faster that proportional fonts (mono == 0).
fontPix is only available from version 8 of the SLB
onwards. Older versions always assume fontPix=0, i.e. exclusively use
vst_point() for setting the character height. The SLB recognises from
contrl[1] whether fontPix was passed. If not then 0 will be
asumed.
|
Return value: |
The function does not return a result.
|
Availability: |
As of MagiC 5.20 by means of a shared library.
|
Group: |
Editable object functions
|
See also: |
Binding
|
C: |
void edit_set_font ( OBJECT *tree, int16_t obj, int16_t fontID,
int16_t fontH, int16_t fontPix, int16_t mono );
|
Binding: |
void edit_set_font ( OBJECT *tree, int16_t obj,
int16_t fontID, int16_t fontH,
int16_t fontPix, int16_t mono )
{
int_in[0] = obj;
int_in[1] = 3; /* Sub-opcode for function */
int_in[2] = fontID;
int_in[3] = fontH;
int_in[4] = mono;
int_in[5] = fontPix;
addr_in[0] = tree;
crys_if( 217 );
return;
}
|
GEM-Arrays: |
Address |
Element |
Contents |
control |
control[0] |
217 # Function opcode |
control+2 |
control[1] |
6 # Entry in int_in |
control+4 |
control[2] |
0 # Entry in int_out |
control+6 |
control[3] |
1 # Entry in addr_in |
control+8 |
control[4] |
0 # Entry in addr_out |
int_in |
int_in[0] |
obj |
int_in+2 |
int_in[1] |
3 # Sub-opcode |
int_in+4 |
int_in[2] |
fontID |
int_in+6 |
int_in[3] |
fontH |
int_in+8 |
int_in[4] |
mono |
int_in+10 |
int_in[5] |
fontPix |
addr_in |
addr_in[0] |
tree |
|
Name: |
»Edit Object Set Format« - Alter settings: Formating
|
Opcode: |
217 (sub-opcode 1)
|
Syntax: |
void edit_set_format ( OBJECT *tree, int16_t obj, int16_t
tabwidth, int16_t autowrap );
|
Description: |
The call edit_set_format sets the formatting of text in an
editable object. The following apply:
Parameter |
Meaning
|
|
|
tree |
Object tree
|
obj |
Object index
|
tabwidth |
1 or tabulator width in pixels
|
autowrap |
-1: Do not change
> 0: Pixel width for auto line wrap
(generally == object width)
= 0: No wrapping, but horiz. scrolling
|
If one of the two attributes is to remain unchanged then -1 can
be passed.
If the editable object was opened previously then one should
generally trigger a redraw when changing one of the attributes. From
version 9 of the SLB the number of lines is recalculated when the
autowrap setting is altered. In older versions this only
happens with edit_set_buf.
|
Return value: |
The function does not return a result.
|
Availability: |
As of MagiC 5.20 by means of a shared library.
|
Group: |
Editable object functions
|
See also: |
Binding
|
C: |
void edit_set_format ( OBJECT *tree, int16_t obj, int16_t
tabwidth, int16_t autowrap );
|
Binding: |
void edit_set_format ( OBJECT *tree, int16_t obj,
int16_t tabwidth, int16_t autowrap )
{
int_in[0] = obj;
int_in[1] = 1; /* Sub-opcode for function */
int_in[2] = tabwidth;
int_in[3] = autowrap;
addr_in[0] = tree;
crys_if( 217 );
return;
}
|
GEM-Arrays: |
Address |
Element |
Contents |
control |
control[0] |
217 # Function opcode |
control+2 |
control[1] |
4 # Entry in int_in |
control+4 |
control[2] |
0 # Entry in int_out |
control+6 |
control[3] |
1 # Entry in addr_in |
control+8 |
control[4] |
0 # Entry in addr_out |
int_in |
int_in[0] |
obj |
int_in+2 |
int_in[1] |
1 # Sub-opcode |
int_in+4 |
int_in[2] |
tabwidth |
int_in+6 |
int_in[3] |
autowrap |
addr_in |
addr_in[0] |
tree |
|
Name: |
»Edit object set ?« - Set important information ? of an
editable object.
|
Opcode: |
217 (sub-opcode 5)
|
Syntax: |
void edit_set_pos ( OBJECT *tree, int16_t obj, int16_t xscroll,
int32_t yscroll, int8_t *cyscroll, int8_t *cursorpos, int16_t cx,
int16_t cy );
|
Description: |
Exactly what the function edit_set_pos does is not known, as it
only turns up in the binding mt_edit.c. From the parameters it seems
to allow the setting of the cursor position and scrolling functions in
an editable object. The following apply:
Parameter |
Meaning |
tree |
RSC-tree of object |
obj |
Object index |
xscroll |
|
yscroll |
|
cyscroll |
|
cursorpos |
|
cx |
|
cy |
|
|
Return value: |
The function does not return a result.
|
Availability: |
As of MagiC 5.20 by means of a shared library.
|
Group: |
Editable object functions
|
See also: |
Binding
|
C: |
void edit_set_pos ( OBJECT *tree, int16_t obj, int16_t xscroll,
int32_t yscroll, int8_t *cyscroll, int8_t *cursorpos, int16_t cx,
int16_t cy );
|
Binding: |
void edit_set_pos ( OBJECT *tree, int16_t obj,
int16_t xscroll, int32_t yscroll,
int8_t *cyscroll, int8_t *cursorpos,
int16_t cx, int16_t cy )
{
int_in[0] = obj;
int_in[1] = 5; /* Sub-opcode for function */
int_in[2] = xscroll;
int_in[3..4] = yscroll;
int_in[5] = cx;
int_in[6] = cy;
addr_in[0] = tree;
addr_in[1] = cyscroll;
addr_in[2] = cursorpos;
crys_if( 217 );
return;
}
|
GEM-Arrays: |
Address |
Element |
Contents |
control |
control[0] |
217 # Function opcode |
control+2 |
control[1] |
7 # Entry in int_in |
control+4 |
control[2] |
0 # Entry in int_out |
control+6 |
control[3] |
3 # Entry in addr_in |
control+8 |
control[4] |
0 # Entry in addr_out |
int_in |
int_in[0] |
obj |
int_in+2 |
int_in[1] |
5 # Sub-opcode |
int_in+4 |
int_in[2] |
xscroll |
int_in+6 |
int_in[3..4] |
yscroll |
int_in+10 |
int_in[5] |
cx |
int_in+12 |
int_in[6] |
cy |
addr_in |
addr_in[0] |
tree |
addr_in+4 |
addr_in[1] |
cyscroll |
addr_in+8 |
addr_in[2] |
cursorpos |
|
- In the RSC file a white G_BOX, without border, is included
- In the program the SharedLib is loaded
- For each G_EDIT object:
- Create text buffer.
- Create editable object with edit_create.
- Alter object type in G_EDIT and place ob_spec on the
editable object.
- Allocate the text buffer with edit_set_buf.
- If necessary alter the settings of the editable object with
edit_set_xxx.
- Open editable object with edit_open.
- Only then draw the tree with objc_draw.
- In order to pass keyboard codes and mouse clicks to the
editable object, one has to call edit_evnt. The syntax is fully
analogous to wdlg_evnt, fslx_evnt and fnts_evnt.
- When closing, the edit field must be closed with edit_close,
after which the memory reserved for the edit field is released again
with edit_delete. No further objc_draw may be performed! If necessary,
set the object type on G_BOX once more.
See also: Keyboard codes for G_EDIT
These keyboard codes are evaluated by G_EDIT:
Cursor |
Corresponding cursor movements |
Ctrl-Cursor-up/down |
Scrolling |
Ctrl-Cursor-left/right |
Move cursor word by word |
Shift-Cursor-left/right |
Cursor to start/end of line |
Esc |
Nothing (yet) |
Insert |
Nothing (yet) |
Shift-Insert |
Nothing (yet) |
Backspace |
Delete character left of cursor |
Delete |
Delete character right of cursor |
Ctrl-Delete |
Nothing (yet) |
Home |
Cursor to start of text |
Ende (MF-2) and |
|
Ende (Mac) and |
|
Shift-Clr/Home |
End of text |
PgUp (Mac) and |
|
Shift-Cursor-up |
Cursor one page up |
PgUp (Mac) and |
|
Shift-Cursor-down |
Cursor one page down |
^A |
Select all (from 27.1.98 on) |
^C |
Copy block to clipboard (leave it in text) |
^X |
Cut block to clipboard (delete it from text) |
^V |
Insert clipboard contents at cursor position |
AES
Print dialogs
Event library