hilite_create_c
status.i4.v = hilite_create_c(window_id.i2.v, top_row.i4.v,
left_column.i4.v, num_items.i4.v,
num_chars.i4.v, num_columns.i4.v,
hilite_id.i2.r [,field_length.i4.v]
[,field_offset.i4.v] [,separate.i4.v]
[,field_orient.i4.v] [,options.u4.v]
[,color.i4.v] [,update_func.f.v]
[,update_data.g.v])
This routine will create a highlighting region in an alphanumeric
window which can be serviced by subsequent calls to 'hilite_update_c'.
This highlighting region remains active until it is removed by
calling 'hilite_delete_c'. (Note : If nondefault values are
passed for "field_length" or "field_offset", the highlighted fields
should be contained in one column if "field_orient" has a value
of HILITE_ROW_MAJOR or in one row if it has a value of
HILITE_COLUMN_MAJOR.) (Note: When using this routine, the default
window repaint mode should be set to WMNGR_REPAINT by a call to
'window_restore_hint_c'.) All highlight regions in a window
are automatically deleted when the window is deleted.
window_id window ID for window containing the highlight region
(use WMNGR_BACKGROUND for background window)
top_row top row of highlight region
left_column left column of highlight region
num_items number of highlight items
num_chars number of characters in a highlight item
num_columns number of highlight columns
hilite_id returned highlight ID
[field_length] length of field for checking cursor location
(default is "num_chars" for HILITE_ROW_MAJOR
orientation)
[field_offset] offset of field for checking cursor location
(For HILITE_ROW_MAJOR orientation, a positive offset
means that the highlighted area will be to the left
of the cursor, and a negative offset means that
the highlighted area will be to the right of
the cursor.)
(default is 0)
[separate] separation between successive highlight columns
(default is 1)
[field_orient] orientation of field for checking cursor location
(HILITE_ROW_MAJOR -> check in same row (default),
HILITE_COLUMN_MAJOR -> check in same column)
(Note : If HILITE_COLUMN_MAJOR mode is chosen,
only one row of highlighted fields should be
created.)
[options] highlighting options
(HILITE_OPT_NONE -> no options selected,
HILITE_OPT_USER_UPDATE -> update by calls to
'hilite_update_c' (default),
HILITE_OPT_AUTO_UPDATE -> automatically update this
highlight region,
HILITE_OPT_UPDATE_OCCLUDED -> update highlight region
even if it is partially
occluded)
[color] highlighting color (Default is HILITE_DEFAULT_COLOR
which simply inverts the foreground and background
colors of the text being highlighted.)
(constants are in cnsparam)
[update_func] callback function to be called just before updating
a new region in auto update mode
(called as follows:
suppress_update.i4.v = update_func(window_id.i2.v,
update_data.g.v,
hilite_data.s.r)
("hilite_data" is a structure of type HILITE_UPDATE_DATA)
(A value of NULL can be passed for this argument
if this functionality is not desired.)
[update_data] address of data to be passed to "update_func"
This function returns ACNET status values as follows:
CBS_OK success
CBS_NO_SUCH requested window does not exist
CBS_INVARG invalid rows and/or columns
CBS_MEMFAIL failed in allocating dynamic memory
This function requires the following include files:
cnsparam_h, cbslib_h, acnet_errors_h
Related functions:
hilite_simple_row_create_c, hilite_update_c, hilite_delete_c,
hilite_window_delete_c, hilite_suspend_c, hilite_resume_c,
window_hilite_c, window_hilite_line_c, window_restore_hint_c,
hilite_modify_save_buffer_c
C/C++ usage:
short window_id = WMNGR_BACKGROUND;
short hilite_id;
int status;
int top_row = 3;
int left_column = 1;
int num_items = NUM_ROWS;
int num_chars = NUM_CHARS;
int num_columns = 1;
int field_length = NUM_CHARS;
int field_offset = 0;
int separate = 0;
int field_orient = HILITE_ROW_MAJOR;
int color = HILITE_DEFAULT_COLOR;
unsigned int options = HILITE_OPT_AUTO_UPDATE;
void *update_data = (void *) NULL;
int update_func(short window_id, void *update_data,
HILITE_UPDATE_DATA *hilite_data);
status = hilite_create_c(window_id,top_row,left_column,num_items,
num_chars,num_columns,&hilite_id,
field_length,field_offset,separate,
field_orient,options,color,update_func,
update_data);