stdui.h
来自「开放源码的编译器open watcom 1.6.0版的源代码」· C头文件 代码 · 共 713 行 · 第 1/2 页
H
713 行
UI_DULCORNER,
UI_DURCORNER,
UI_DHLINE,
UI_DVLINE,
/* triangles */
UI_DPOINT,
UI_LPOINT,
UI_RPOINT,
UI_UPOINT,
/* arrows */
UI_DARROW,
UI_UDARROW,
/* boxes */
UI_DBLOCK,
UI_LBLOCK,
UI_RBLOCK,
UI_UBLOCK,
UI_CKBOARD,
UI_BOARD,
UI_BLOCK,
/* misc */
UI_SQUARE,
UI_ROOT,
UI_EQUIVALENT = 31
/* we use 31 of them: don't add any more!
they have to fit in the C0 ASCII range */
};
#ifdef __GUI__
/*
ORD needs to be an unsigned int for the WINDOWS scaling system
in WVIDEO since values in the range 0-10000 are used.
Only the data structures are use.. No UI functions are actually
called for Windows so UI does not need to be rebuilt
*/
typedef unsigned int ORD;
#else
typedef unsigned char ORD;
#endif
typedef unsigned short MOUSEORD;
typedef struct sarea {
ORD row;
ORD col;
ORD height;
ORD width;
} SAREA;
typedef unsigned char ATTR;
#define iseditchar( ev ) ( ( ev >= EV_FIRST_EDIT_CHAR ) \
&& ( ev <= EV_LAST_EDIT_CHAR ) )
#if defined(__NT__)
typedef struct pixel {
unsigned short ch;
unsigned short attr;
} PIXEL;
typedef PIXEL *LPPIXEL;
#define __FAR
#undef HAVE_FAR
#elif defined(__OS2__) && defined(__386__)
typedef struct pixel {
char ch;
ATTR attr;
} PIXEL;
typedef PIXEL *LPPIXEL;
#define __FAR
#undef HAVE_FAR
#elif defined(__UNIX__)
typedef struct pixel {
char ch;
ATTR attr;
} PIXEL;
typedef PIXEL *LPPIXEL;
#define __FAR
#undef HAVE_FAR
#elif defined(__386__) || defined(M_I86)
typedef struct pixel {
char ch;
ATTR attr;
} PIXEL;
typedef PIXEL far *LPPIXEL;
#define __FAR far
#define HAVE_FAR
#else
#error pixel structure not configured for system
#endif
typedef struct buffer {
LPPIXEL origin;
int increment;
} BUFFER;
typedef struct image_hld {
struct image_hld __FAR *next_hld;
SAREA area;
int kill_image;
void __FAR *hld;
} IMAGE_HLD;
typedef struct image_def { // this gets attached to the graphic field
void __FAR *(_FAR *get_image)( void );
void (_FAR *put_image)( void );
void (_FAR *done_image)( void );
IMAGE_HLD __FAR *images;
} IMAGE_DEF;
typedef struct window {
SAREA area;
SAREA dirty;
int priority;
void (_FAR *update)( struct sarea, void * );
void _FARD *parm;
struct window _FARD *next;
struct window _FARD *prev;
union {
IMAGE_DEF __FAR *graphic;
BUFFER buffer;
} type;
} UI_WINDOW;
typedef struct vscreen {
EVENT event; /* garbage */
char _FARD *name; /* title of virtual screen */
SAREA area; /* position on physical screen */
unsigned int flags; /* dialogue, unframed, movable etc. */
ORD row;
ORD col; /* position of cursor on the screen */
int cursor; /* cursor type */
int open; /* bool: init to FALSE, set by ui */
UI_WINDOW window; /* used by the window manager */
} VSCREEN;
typedef struct monitor {
ORD height; /* number of rows */
ORD width; /* number of columns */
int colour; /* M_MONO, M_CGA, M_EGA */
ATTR _FARD *attrs; /* attributes */
EVENTLIST _FARD *events; /* event list pointer */
UI_WINDOW _FARD *area_head; /* head of area list */
UI_WINDOW _FARD *area_tail; /* tail of area list */
unsigned mouse_acc_delay;/* acceleration delay */
unsigned mouse_rpt_delay;/* repeat delay */
unsigned mouse_clk_delay;/* double click delay */
unsigned tick_delay; /* clock tick delay */
int cursor_on; /* cursor on flag */
int cursor_attr; /* cursor attribute */
ORD cursor_row; /* cursor row */
ORD cursor_col; /* cursor column */
int cursor_type; /* cursor type */
unsigned char old_shift; /* status of shift keys */
int no_snow; /* snow check flag */
UI_WINDOW blank; /* blank window */
BUFFER screen; /* screen */
unsigned desqview:1; /* desqview present flag */
unsigned f10menus:1; /* F10 active for menus */
unsigned busy_wait:1; /* SINK, MOUSE_HOLD or NO_EVENT */
unsigned mouse_swapped:1;/* mouse swap flag */
unsigned no_idle_int:1; /* disable idle interrupt */
unsigned no_refresh:1; /* disable refresh on EV_NO_EVENT */
unsigned no_graphics:1; /* disable character mapping */
unsigned dbcs:1; /* double-byte character set */
unsigned no_blowup:1; /* disable exploding windows */
unsigned mouse_speed; /* mouse speed factor */
unsigned char mouse_xscale; /* factor to divide mouse x posn */
unsigned char mouse_yscale; /* factor to divide mouse y posn */
} MONITOR;
#define V_DIALOGUE 0x0001
#define V_UNBUFFERED 0x0002
#define V_UNFRAMED 0x0004
#define V_NO_ZOOM 0x0008
#define V_PASSIVE 0x0010
#define V_UNPROTECTED 0x0020
#define V_HIDDEN 0x0040
#define V_LISTBOX 0x0100
enum {
C_OFF,
C_NORMAL,
C_INSERT
};
enum {
M_MONO,
M_CGA,
M_EGA,
M_VGA,
M_BW,
M_NEC_NORM,
M_UNUSED,
M_NEC_HIRES,
M_FMR
#if defined( __UNIX__ )
,M_TERMINFO_MONO
#endif
};
#ifdef __cplusplus
extern "C" {
#endif
extern MONITOR _FARD* UIData;
extern void finimouse( void );
extern int initmouse( int );
extern void uiactivatemenus( void );
extern void *uialloc( unsigned );
extern int uiattrs( void );
extern int uivgaattrs( void );
extern void uisetblinkattr( int );
extern char uigetblinkattr( void );
extern int uibackground( char * );
extern BUFFER _FARD *uibackgroundbuffer( void );
extern void uibandinit( SAREA, ATTR );
extern void uibandmove( SAREA );
extern void uibandfini( void );
extern void uirestorebackground( void );
extern void uibarf( void );
extern void uiblankarea( SAREA );
extern void uiblankscreen( void );
extern void uiblankattr( ATTR );
extern void *uicalloc( unsigned , unsigned );
extern int uichecklist( EVENT, EVENT _FARD * );
extern void uiclose( VSCREEN _FARD * );
extern void uicntrtext( VSCREEN _FARD *, SAREA *, ATTR,
unsigned int, char * );
extern int uiconfig( char *, char ** );
extern void uicursor( VSCREEN _FARD *, unsigned char,
unsigned char, int );
extern int uidialogevent( VSCREEN _FARD * );
extern void uidirty( SAREA );
extern void uidrawbox( VSCREEN _FARD *, SAREA *area,
ATTR attr, char * );
extern EVENT uieventsource( int );
extern void __FAR* uifaralloc( int );
extern void uifarfree( void __FAR * );
extern void uifini( void );
extern void uifinicursor( void );
extern void uifinigmouse( void );
extern void uiflush( void );
extern void uiflushevent( void );
extern void uifree( void * );
extern EVENT uiget( void );
extern void uigetcursor( ORD _FARD*, ORD _FARD*,
int _FARD*, int _FARD* );
extern EVENTLIST _FARD *uigetlist( void );
extern void uigetmouse( ORD _FARD*, ORD _FARD*, int _FARD* );
extern void uiignorealt( void );
extern unsigned int uiextkeyboard( void );
extern int uiinit( int );
extern void uiinitcursor( void );
extern int uiinitgmouse( int );
extern int uiinlist( EVENT );
extern int uiintoplist( EVENT );
extern int uikeepbackground( void );
extern void *uimalloc( unsigned );
extern void uimouse( int );
extern void uimouseforceoff( void );
extern void uimouseforceon( void );
extern void uinocursor( VSCREEN _FARD *);
extern void uioffcursor( void );
extern void uioncursor( void );
extern void uioffmouse( void );
extern void uionmouse( void );
extern VSCREEN _FARD *uiopen( SAREA *, char *, unsigned int );
extern void uihidemouse( void );
extern unsigned uiclockdelay( unsigned milli );
extern EVENT _FARD *uipoplist( void );
extern void uiposition( SAREA *, unsigned char,
unsigned char ,int ,int , int );
extern void uiprotect( VSCREEN _FARD* );
extern void uipushlist( EVENT _FARD* );
extern void uiputlist( EVENTLIST _FARD* );
extern void *uirealloc( void *, unsigned );
extern void uirefresh( void );
extern int uiremovebackground( void );
extern int uiset80col( void );
extern SAREA *uisetarea( SAREA *, VSCREEN _FARD * );
extern void uisetcursor( ORD, ORD, int, int );
extern void uisetmouse( MOUSEORD, MOUSEORD );
extern void uisetmouseposn( ORD, ORD );
extern SAREA *uisetscreenarea( SAREA *, int, int );
extern void uisetsnow( int );
extern void uispawnend( void );
extern void uispawnstart( void );
extern int uistart( void );
extern void uistop( void );
extern void uiswap( void );
extern void uiswapcursor( void );
extern void uiswapmouse( void );
extern void uiungetevent( void );
extern void uiunprotect( VSCREEN _FARD* );
extern void uivattrflip( VSCREEN _FARD*, SAREA );
extern void uivattribute( VSCREEN _FARD*, SAREA, ATTR );
extern void uivclose( VSCREEN _FARD* );
extern void uivdirty( VSCREEN _FARD*, SAREA );
extern void uivfill( VSCREEN _FARD*, SAREA, ATTR, char );
extern EVENT uivgetevent( VSCREEN _FARD* );
extern EVENT uivgetprime( VSCREEN _FARD* );
extern EVENT uivgetprimevent( VSCREEN _FARD* );
extern unsigned uivhide( VSCREEN _FARD * );
extern int uivmouseinstalled( void );
extern VSCREEN _FARD* uivmousepos( VSCREEN _FARD*, ORD _FARD*,
ORD _FARD* );
extern VSCREEN _FARD* uimousepos( VSCREEN _FARD*, int _FARD*,
int _FARD* );
extern void uivmoveblock( VSCREEN _FARD*, SAREA, int, int );
extern VSCREEN _FARD* uivopen( VSCREEN _FARD* );
extern VSCREEN _FARD* uivresize( VSCREEN _FARD*, SAREA );
extern void uivmove( VSCREEN _FARD*, ORD, ORD );
extern void uivrawput( VSCREEN _FARD*, ORD, ORD,
PIXEL _FARD*, int );
extern void uivsetactive( VSCREEN _FARD* );
extern void uivsetcursor( VSCREEN _FARD* );
extern unsigned uivshow( VSCREEN _FARD * );
extern void uivtextput( VSCREEN _FARD*, ORD, ORD,
ATTR, char _FARD*, int );
extern void uitextfield( VSCREEN _FARD*, ORD, ORD,
ORD, ATTR, char __FAR *, int );
extern void uimousespeed( unsigned );
extern unsigned char uicheckshift( void );
extern EVENT uikeyboardevent( void );
extern int uimouseinstalled( void );
extern int FlipCharacterMap( void );
extern int UIMapCharacters( char mapchar[], char mapdata[][16] );
extern void uiyield( void );
extern int uiforceevadd( EVENT ); // int is a bool
extern void uiforceevflush( void );
extern int uiisdbcs( void ); // bool
extern int uionnec( void ); // bool
extern int uicharlen( int ); // returns 2 if dbcs lead byte
extern void UIMemOpen( void );
extern void UIMemClose( void );
#ifdef __cplusplus
}
#endif
#endif /* _STDUI_H_INCLUDED_ */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?