/******************************************************************************* * Copyright 1991-1996 by ORCA Software, Inc. * * * * All rights reserved. May not be reproduced or distributed, in printed or * * electronic form, without permission of ORCA Software, Inc. May not be * * distributed as object code, separately or linked with other object modules, * * without permission. * *******************************************************************************/ typedef enum { LM_FOCUS_NOWHERE, LM_FOCUS_VISIBLE, LM_FOCUS_HORIZONTALLY_SCROLLED, LM_FOCUS_VERTICALLY_SCROLLED, LM_FOCUS_TEMP_INVISIBLE } LM_FOCUS; typedef struct _lm_focus_state { LM_FOCUS where; long focus_rec; long saved_focus_rec; BOOLEAN focus_rec_is_above; XinColor focus_rec_color; unsigned long focus_rec_attrib; unsigned long focus_cell_attrib; XinFont *focus_cell_font; XinColor focus_cell_color; XinColor focus_cell_back_color; int focus_rec_height; char *focus_cell_text; int focus_cell_ip1; int focus_cell_ip2; int focus_cell_start_ip; BOOLEAN button; BOOLEAN button_full_cell; BOOLEAN button_on_left; BOOLEAN button_on_focus; int button_icon_rid; XI_BITMAP* button_bitmap; } LM_FOCUS_STATE; typedef struct { LM_DATA *lmp; LM_FOCUS focus; int row; int column; int vert_scrolled; } LM_FOCUS_STATE_SET_ARGS; typedef struct { LM_DATA *lmp; int row; int column; int vert_scrolled; } LM_FOCUS_CELL_VISIBLE_FORCE_ARGS; unsigned long lm_focus_cell_attrib_get( LM_DATA * lmp ); void lm_focus_cell_attrib_set( LM_DATA * lmp, unsigned long attrib ); BOOLEAN lm_focus_cell_get( LM_DATA * lmp, int *row, int *col, BOOLEAN * v_scrolled ); BOOLEAN lm_focus_cell_is_visible( LM_DATA * lmp, BOOLEAN * is_hscrolled ); void lm_focus_cell_set( LM_DATA * lmp, int row, int col, BOOLEAN v_scrolled ); BOOLEAN lm_focus_cell_has( LM_DATA * lmp, int row, int col, BOOLEAN v_scrolled ); void lm_focus_cell_selection_get( LM_DATA * lmp, int *c1, int *c2 ); void lm_focus_cell_selection_set( LM_DATA * lmp, int c1, int c2 ); char *lm_focus_cell_text_get( LM_DATA * lmp ); void lm_focus_cell_text_set( LM_DATA * lmp, BOOLEAN preserve_focus_text, char *text, int row, int col, BOOLEAN v_scrolled ); BOOLEAN lm_focus_list_has( LM_DATA * lmp ); unsigned long lm_focus_rec_attrib_get( LM_DATA * lmp ); void lm_focus_rec_color_set( LM_DATA * lmp, XinColor color ); long lm_focus_rec_get( LM_DATA * lmp ); void lm_focus_rec_set( LM_DATA * lmp, long focus_rec ); void lm_focus_rec_is_above_set( LM_DATA * lmp, BOOLEAN is_above ); BOOLEAN lm_focus_rec_is_above_get( LM_DATA * lmp ); void lm_focus_rec_free( LM_DATA * lmp ); long lm_focus_rec_saved_get( LM_DATA * lmp ); LM_FOCUS lm_focus_state_get( LM_DATA * lmp ); /* State changing functions */ void lm_focus_cell_visible_attempt( LM_DATA * lmp ); void lm_focus_cell_visible_force( LM_FOCUS_CELL_VISIBLE_FORCE_ARGS * args ); void lm_focus_cell_invis_make( LM_DATA * lmp ); void lm_focus_remove( LM_DATA * lmp, int row, int column, BOOLEAN v_scrolled ); void lm_focus_create_temp_row( LM_DATA * lmp ); void lm_focus_set( long lm, int row, int column, BOOLEAN v_scrolled, BOOLEAN set ); BOOLEAN lm_focus_cell_is_button_full_cell( LM_DATA * lmp );