gui.h
来自「开放源码的编译器open watcom 1.6.0版的源代码」· C头文件 代码 · 共 976 行 · 第 1/3 页
H
976 行
GUI_BAR_SHADOW = 0x02,
GUI_BAR_3DRECT1 = 0x04,
GUI_BAR_3DRECT2 = 0x08,
GUI_FULL_BAR = 0x10
} gui_bar_styles;
typedef struct gui_resource {
gui_bitmap res;
char *chars; /* Character based */
} gui_resource;
typedef struct gui_control_info {
gui_control_class control_class;
char *text;
gui_rect rect;
gui_window *parent;
gui_scroll_styles scroll;
gui_control_styles style;
unsigned id;
} gui_control_info;
typedef bool (GUICALLBACK)( gui_window *, gui_event, void * );
typedef void (ENUMCALLBACK)( gui_window *, void *param );
typedef void (CONTRENUMCALLBACK)( gui_window *parent, unsigned id, void *param );
typedef void (PICKCALLBACK)( gui_window *, int id );
typedef void (PICKDLGOPEN)( char *name, int rows, int cols,
struct gui_control_info *ctl, int num_controls,
GUICALLBACK *rtn, void *extra );
typedef struct gui_create_info {
char *text;
gui_rect rect;
gui_scroll_styles scroll;
gui_create_styles style;
gui_window *parent;
int num_menus;
gui_menu_struct *menu;
int num_attrs;
gui_colour_set *colours; /* array of num_attrs gui_attrs */
GUICALLBACK *call_back;
void *extra;
gui_resource *icon;
int resource_menu;
} gui_create_info;
typedef enum {
GUI_ABORT_RETRY_IGNORE = 0x001,
GUI_EXCLAMATION = 0x002,
GUI_INFORMATION = 0x004,
GUI_QUESTION = 0x008,
GUI_STOP = 0x010,
GUI_OK = 0x020,
GUI_OK_CANCEL = 0x040,
GUI_RETRY_CANCEL = 0x080,
GUI_YES_NO = 0x100,
GUI_YES_NO_CANCEL = 0x200,
GUI_SYSTEMMODAL = 0x400
} gui_message_type;
typedef enum {
GUI_RET_ABORT,
GUI_RET_CANCEL,
GUI_RET_IGNORE,
GUI_RET_NO,
GUI_RET_OK,
GUI_RET_RETRY,
GUI_RET_YES
} gui_message_return;
typedef struct gui_text_metrics {
gui_coord avg;
gui_coord max;
} gui_text_metrics;
typedef struct gui_system_metrics {
gui_coord resize_border;
bool colour;
bool mouse;
gui_coord top_left;
gui_coord bottom_right;
gui_coord scrollbar_size;
gui_coord dialog_top_left_size;
gui_coord dialog_bottom_right_size;
gui_ord caption_size;
} gui_system_metrics;
typedef enum {
GUI_TRACK_NONE = 0x00,
GUI_TRACK_LEFT = 0x01,
GUI_TRACK_RIGHT = 0x02,
GUI_TRACK_BOTH = GUI_TRACK_LEFT | GUI_TRACK_RIGHT
} gui_mouse_track;
typedef enum {
GUI_KS_NONE = 0x00,
GUI_KS_ALT = 0x01,
GUI_KS_SHIFT = 0x02,
GUI_KS_CTRL = 0x04
} gui_keystate;
typedef enum {
GUI_ARROW_CURSOR,
GUI_HOURGLASS_CURSOR,
GUI_CROSS_CURSOR
} gui_mouse_cursor;
typedef enum {
GUI_NO_CURSOR,
GUI_NORMAL_CURSOR,
GUI_INSERT_CURSOR
} gui_char_cursor;
typedef enum {
GUI_FRAME_TOP,
GUI_FRAME_UL_CORNER,
GUI_FRAME_LEFT,
GUI_FRAME_LL_CORNER,
GUI_FRAME_BOTTOM,
GUI_FRAME_LR_CORNER,
GUI_FRAME_RIGHT,
GUI_FRAME_UR_CORNER,
GUI_LR_VERT_BAR,
GUI_LR_HORZ_BAR,
GUI_LEFT_TITLE_MARK,
GUI_RIGHT_TITLE_MARK,
GUI_LEFT_GADGET_MARK,
GUI_RIGHT_GADGET_MARK,
GUI_TITLE_SPACE,
GUI_CLOSER,
GUI_MAXIMIZE_GADGET,
GUI_MINIMIZE_GADGET,
GUI_RESIZE_GADGET,
GUI_HOR_SCROLL,
GUI_VERT_SCROLL,
GUI_LEFT_SCROLL_ARROW,
GUI_RIGHT_SCROLL_ARROW,
GUI_UP_SCROLL_ARROW,
GUI_DOWN_SCROLL_ARROW,
GUI_SCROLL_SLIDER,
GUI_INACT_FRAME_TOP,
GUI_INACT_FRAME_UL_CORNER,
GUI_INACT_FRAME_LEFT,
GUI_INACT_FRAME_LL_CORNER,
GUI_INACT_FRAME_BOTTOM,
GUI_INACT_FRAME_LR_CORNER,
GUI_INACT_FRAME_RIGHT,
GUI_INACT_FRAME_UR_CORNER,
GUI_INACT_LR_VERT_BAR,
GUI_INACT_LR_HORZ_BAR,
GUI_INACT_LEFT_TITLE_MARK,
GUI_INACT_RIGHT_TITLE_MARK,
GUI_INACT_LEFT_GADGET_MARK,
GUI_INACT_RIGHT_GADGET_MARK,
GUI_INACT_TITLE_SPACE,
GUI_INACT_CLOSER,
GUI_INACT_MAXIMIZE_GADGET,
GUI_INACT_MINIMIZE_GADGET,
GUI_INACT_RESIZE_GADGET,
GUI_INACT_HOR_SCROLL,
GUI_INACT_VERT_SCROLL,
GUI_INACT_LEFT_SCROLL_ARROW,
GUI_INACT_RIGHT_SCROLL_ARROW,
GUI_INACT_UP_SCROLL_ARROW,
GUI_INACT_DOWN_SCROLL_ARROW,
GUI_INACT_SCROLL_SLIDER,
GUI_DIAL_VERT_SCROLL,
GUI_DIAL_UP_SCROLL_ARROW,
GUI_DIAL_DOWN_SCROLL_ARROW,
GUI_DIAL_SCROLL_SLIDER,
GUI_NUM_DRAW_CHARS,
GUI_INACTIVE_OFFSET = GUI_INACT_FRAME_TOP
} gui_draw_char;
typedef enum {
GUI_PLAIN = 0x00,
GUI_CHARMAP_MOUSE = 0x01,
GUI_INACT_GADGETS = 0x02,
GUI_INACT_SAME = 0x04,
GUI_CHARMAP_DLG = 0x08,
GUI_GMOUSE = (GUI_CHARMAP_DLG|GUI_CHARMAP_MOUSE)
} gui_window_styles;
#define GUI_SHIFT( state ) ( state & GUI_KS_SHIFT )
#define GUI_ALT( state ) ( state & GUI_KS_ALT )
#define GUI_CTRL( state ) ( state & GUI_KS_CTRL )
#define GUI_NO_COLUMN ((gui_ord)-1)
#define GUI_NO_ROW ((gui_ord)-1)
#define NO_SELECT -1
// GUIIsChecked and GUISetChecked values
#define GUI_NOT_CHECKED 0
#define GUI_CHECKED 1
#define GUI_INDETERMINANT 2
/*
**************************************************************
* GUI_MOUSEMOVE :
* GUI_LBUTTONUDOWN :
* GUI_LBUTTONUP :
* GUI_LBUTTONDBLCLK :
* GUI_RBUTTONUDOWN :
* GUI_RBUTTONUP :
* GUI_RBUTTONDBLCLK : 1 parameter - gui_point : GUI_GET_POINT
**************************************************************
* GUI_PAINT : 2 parameters - gui_ord, int : GUI_GET_ROWS
**************************************************************
* GUI_ENDSESSION : historical 1 parameter - bool : GUI_GET_BOOL
* GUI_QUERYENDSESSION : 2 parameters - bool, long : GUI_GET_ENDSESSION
**************************************************************
* GUI_CONTROL_NOT_ACTIVE :
* GUI_CLICKED :
* GUI_CONTROL_CLICKED
* GUI_CONTROL_DCLICKED : 1 parameter - unsigned : GUI_GETID
**************************************************************
* GUI_RESIZE : 1 parameter - gui_coord : GUI_GET_SIZE
**************************************************************
* GUI_SCROLL_VERTICAL :
* GUI_SCROLL_HORIZONTAL : 1 parametr - int : GUI_GET_SCROLL
**************************************************************
*
*
*/
typedef struct gui_row_num {
gui_ord start;
int num;
} gui_row_num;
typedef struct gui_end_session {
bool endsession;
bool logoff;
} gui_end_session;
typedef struct gui_timer_event {
int id;
} gui_timer_event;
#define GUI_GET_TIMER( param, i ) { \
i = ((gui_timer_event *)param)->id; \
}
#define GUI_GET_BOOL( param, b ) { \
b = ((gui_end_session *)param)->endsession; \
}
#define GUI_GET_ENDSESSION( param, b, l ) { \
b = ((gui_end_session *)param)->endsession; \
l = ((gui_end_session *)param)->logoff; \
}
#define GUI_GET_POINT( param, point ) ( point = *( gui_point * )param )
#define GUI_GET_ROWS( param, gui_start, gui_num ) { \
gui_start = (( gui_row_num * )param)->start; \
gui_num = (( gui_row_num * )param)->num; \
}
#define GUI_GETID( param, id ) ( id = ( unsigned short )(*( unsigned * )param ) )
#define GUI_GET_SIZE( param, size ) { size.x = (( gui_coord * )param)->x; \
size.y = (( gui_coord * )param)->y; }
#define GUI_GET_SCROLL( param, scroll ) ( scroll = *( int * )param )
/* Initialization Functions */
extern bool GUIWndInit( unsigned rate, gui_window_styles style );
extern void GUIGMouseOn( void );
extern void GUIGMouseOff( void );
extern void GUIMDIInit( void );
extern void GUIMDIInitMenuOnly( void );
extern bool GUI3DDialogInit( void );
extern void GUISetBetweenTitles( int between_titles );
extern void GUIGetRoundScale( gui_coord *scale );
extern void GUISetScale( gui_rect *screen );
extern void GUIGetScale( gui_rect *screen );
extern void GUIGetScreen( gui_rect *rect );
extern void GUISetDClickRate( unsigned rate );
extern void GUISetCharacter( gui_draw_char draw_char, char new_char );
extern char GUIGetCharacter( gui_draw_char draw_char );
extern bool GUIIsInit( void );
extern void GUISetF10Menus( bool setting );
extern void GUICleanup( void );
/* colour functions */
extern void GUISetBackgroundColour( gui_colour_set *colour );
extern void GUIGetDialogColours( gui_colour_set *colours );
extern void GUISetDialogColours( gui_colour_set *colours );
extern void GUISetWindowColours( gui_window *wnd, int num_colours, gui_colour_set *colours );
extern bool GUISetRGB( gui_colour colour, gui_rgb rgb );
extern bool GUIGetRGB( gui_colour colour, gui_rgb *rgb );
extern bool GUIGetWndColour( gui_window *wnd, gui_attr attr, gui_colour_set *colour_set );
extern bool GUISetWndColour( gui_window *wnd, gui_attr attr, gui_colour_set *colour_set );
extern bool GUIGetRGBFromUser( gui_rgb init_rgb, gui_rgb *new_rgb );
extern bool GUIGetColourFromUser( char *title, gui_colour *init, gui_colour *new_colour );
/* Hot Spot (sizzle spot) functions */
extern bool GUIInitHotSpots( int num_hot_spots, gui_resource *hot );
extern int GUIGetNumHotSpots( void );
extern bool GUIGetHotSpotSize( int hot_spot, gui_coord *size );
extern void GUIDrawHotSpot( gui_window *wnd, int hot_spot, gui_ord row,
gui_ord indent, gui_attr attr );
/* Window Functions */
extern gui_window *GUICreateWindow( gui_create_info *info );
extern int GUIGetNumWindowColours( gui_window *wnd );
extern gui_colour_set *GUIGetWindowColours( gui_window *wnd );
extern void GUIDestroyWnd( gui_window *wnd );
extern void GUIWndDirty( gui_window *wnd );
extern void GUIControlDirty( gui_window *wnd, unsigned id );
extern void GUIWndDirtyRow( gui_window *wnd, gui_ord row );
extern void GUIWndDirtyRect( gui_window *wnd, gui_rect *rect );
extern void GUIRefresh( void );
extern void GUIWndUpdate( gui_window *wnd );
extern bool GUISetBackgroundChar( gui_window *wnd, char background );
extern void GUIActivateNC( gui_window *wnd, bool activate );
extern void GUIBringToFront( gui_window *wnd );
extern gui_window *GUIGetFront( void );
extern gui_window *GUIGetParentWindow( gui_window *wnd );
extern bool GUIIsRootWindow( gui_window *wnd );
extern gui_window *GUIGetRootWindow( void );
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?