📄 mwtypes.h
字号:
#ifndef _MWTYPES_H#define _MWTYPES_H/* * Copyright (c) 1999, 2000 Greg Haerr <greg@censoft.com> * * Exported Microwindows engine typedefs and defines *//* builtin font std names*/#define MWFONT_SYSTEM_VAR "System" /* winSystem 14x16 (ansi)*/#define MWFONT_GUI_VAR "Helvetica" /* winMSSansSerif 11x13 (ansi)*/#define MWFONT_OEM_FIXED "Terminal" /* rom8x16 (oem)*/#define MWFONT_SYSTEM_FIXED "SystemFixed" /* X6x13 (should be ansi)*//* Text/GetTextSize encoding flags*/#define MWTF_ASCII 0x0000 /* 8 bit packing, ascii*/#define MWTF_UTF8 0x0001 /* 8 bit packing, utf8*/#define MWTF_UC16 0x0002 /* 16 bit packing, unicode 16*/#define MWTF_UC32 0x0004 /* 32 bit packing, unicode 32*/#define MWTF_PACKMASK 0x0007 /* packing mask*//* Text alignment flags*/#define MWTF_TOP 0x0010 /* align on top*/#define MWTF_BASELINE 0x0020 /* align on baseline*/#define MWTF_BOTTOM 0x0040 /* align on bottom*//* SetFontAttr flags*/#define MWTF_KERNING 0x1000 /* font kerning*/#define MWTF_ANTIALIAS 0x2000 /* antialiased output*/#define MWTF_UNDERLINE 0x4000 /* draw underline*//* Drawing modes*/#define MWMODE_SET 0 /* draw pixels as given (default) */#define MWMODE_XOR 1 /* draw pixels using XOR */#define MWMODE_OR 2 /* draw pixels using OR (notimp)*/#define MWMODE_AND 3 /* draw pixels using AND (notimp)*/#define MWMODE_MAX 3/* Mouse button bits*/#define MWBUTTON_L 04#define MWBUTTON_M 02#define MWBUTTON_R 01/* Color defines*/#define MWRGB(r,g,b) ((MWCOLORVAL)(((unsigned char)(r)|\ ((unsigned short)((unsigned char)(g))<<8))|\ (((unsigned long)(unsigned char)(b))<<16)))#define MWF_PALINDEX 0x01000000#define MWPALINDEX(x) ((MWCOLORVAL)MWF_PALINDEX | (x))/* * ROP blitter opcodes */#define MWROP_EXTENSION 0xff000000L /* rop extension bits*//* copy src -> dst*/#define MWROP_SRCCOPY 0x00000000L/* copy src -> dst except for transparent color in src*/#define MWROP_SRCTRANSCOPY 0x01000000L/* alpha blend src -> dst with constant alpha, alpha value in low 8 bits*/#define MWROP_BLENDCONSTANT 0x02000000L/* alpha blend fg/bg color -> dst with src as alpha channel*/#define MWROP_BLENDFGBG 0x03000000L/* alpha blend src -> dst with separate per pixel alpha channel*/#define MWROP_BLENDCHANNEL 0x04000000L/* stretch src -> dst*/#define MWROP_STRETCH 0x05000000L#define MWROP_SRCAND 0x06000000L#define MWROP_SRCINVERT 0x07000000L#define MWROP_BLACKNESS 0x08000000L/* * Pixel formats * Note the two pseudo pixel formats are never returned by display drivers, * but rather used as a data structure type in GrArea. The other * types are both returned by display drivers and used as pixel packing * specifiers. */#define MWPF_RGB 0 /* pseudo, convert from packed 32 bit RGB*/#define MWPF_PIXELVAL 1 /* pseudo, no convert from packed PIXELVAL*/#define MWPF_PALETTE 2 /* pixel is packed 8 bits 1, 4 or 8 pal index*/#define MWPF_TRUECOLOR0888 3 /* pixel is packed 32 bits 8/8/8 truecolor*/#define MWPF_TRUECOLOR888 4 /* pixel is packed 24 bits 8/8/8 truecolor*/#define MWPF_TRUECOLOR565 5 /* pixel is packed 16 bits 5/6/5 truecolor*/#define MWPF_TRUECOLOR555 6 /* pixel is packed 16 bits 5/5/5 truecolor*/#define MWPF_TRUECOLOR332 7 /* pixel is packed 8 bits 3/3/2 truecolor*//* * MWPIXELVAL definition: changes based on target system * Set using -DMWPIXEL_FORMAT=MWPF_XXX * * For the Nano-X server, it is important to use the correct MWPF_* value * for the MWPIXEL_FORMAT macro in order to match the hardware, * while the Nano-X clients that includes this file can get away with * a default pixel format of 24-bit color as the client will either: * 1) Use the MWPF_PIXELVAL native format when calling GrReadArea, in * which case we have to have enough spare room to hold 32-bit * pixlevalues (hence the default MWPF_TRUECOLOR0888 format), or * 2) Will use some other PF_* format, in which case the application * is well aware of which pixel-format it uses and can avoid the * device specific RGB2PIXEL and use RGB2PIXEL565 etc. instead, * and specifiy the pixel fomar as MWPF_TRUECOLOR565 etc. when * calling the GrArea function(s). */#ifndef MWPIXEL_FORMAT#define MWPIXEL_FORMAT MWPF_TRUECOLOR0888#endif#if defined(__AS386_16__)/* Force 8 bit palettized display for ELKS*/#undef MWPIXEL_FORMAT#define MWPIXEL_FORMAT MWPF_PALETTE#endif#if MWPIXEL_FORMAT==MWPF_TRUECOLOR565typedef unsigned short MWPIXELVAL;#else #if MWPIXEL_FORMAT==MWPF_TRUECOLOR332 typedef unsigned char MWPIXELVAL; #else #if MWPIXEL_FORMAT==MWPF_PALETTE typedef unsigned char MWPIXELVAL; #else typedef unsigned long MWPIXELVAL; #endif #endif#endif/* * Type definitions */typedef int MWCOORD; /* device coordinates*/typedef int MWBOOL; /* boolean value*/typedef unsigned char MWUCHAR; /* unsigned char*/typedef unsigned long MWCOLORVAL; /* device-independent color value*/typedef unsigned short MWIMAGEBITS; /* bitmap image unit size*/typedef unsigned long MWTIMEOUT; /* timeout value *//* dbl linked list data structure*/typedef struct _mwlist { /* LIST must be first decl in struct*/ struct _mwlist *next; /* next item*/ struct _mwlist *prev; /* previous item*/} MWLIST, *PMWLIST;/* dbl linked list head data structure*/typedef struct _mwlisthead { struct _mwlist *head; /* first item*/ struct _mwlist *tail; /* last item*/} MWLISTHEAD, *PMWLISTHEAD;/* GetScreenInfo structure*/typedef struct { MWCOORD rows; /* number of rows on screen */ MWCOORD cols; /* number of columns on screen */ int xdpcm; /* dots/centimeter in x direction */ int ydpcm; /* dots/centimeter in y direction */ int planes; /* hw # planes*/ int bpp; /* hw bpp*/ long ncolors; /* hw number of colors supported*/ int fonts; /* number of built-in fonts */ int buttons; /* buttons which are implemented */ int modifiers; /* modifiers which are implemented */ int pixtype; /* format of pixel value*/ MWCOORD xpos; /* current x mouse position*/ MWCOORD ypos; /* current y mouse position*//* items below are get/set by the window manager and not used internally*/ int vs_width; /* virtual screen width/height*/ int vs_height; int ws_width; /* workspace width/height*/ int ws_height;} MWSCREENINFO, *PMWSCREENINFO;/* GetFontInfo structure*/typedef struct { int maxwidth; /* maximum width of any char */ int height; /* height of font in pixels*/ int baseline; /* baseline (ascent) of font */ int firstchar; /* first character in font*/ int lastchar; /* last character in font*/ MWBOOL fixed; /* TRUE if font is fixed width */ MWUCHAR widths[256]; /* table of character widths */} MWFONTINFO, *PMWFONTINFO;/* logical font descriptor*//* font classes - used internally*/#define MWLF_CLASS_BUILTIN 1 /* Builtin fonts (bitmaps) */#define MWLF_CLASS_FREETYPE 2 /* FreeType fonts in TT format */#define MWLF_CLASS_T1LIB 3 /* T1LIB outlined Adobe Type 1 fonts */#define MWLF_CLASS_ANY 4 /* Any font*/#define MWLF_FACESIZE 64 /* max facename size*//* font type selection - lfOutPrecision*/#define MWLF_TYPE_DEFAULT 0 /* any font*/#define MWLF_TYPE_SCALED 4 /* outlined font (tt or adobe)*/#define MWLF_TYPE_RASTER 5 /* raster only*/#define MWLF_TYPE_TRUETYPE 7 /* truetype only*/#define MWLF_TYPE_ADOBE 10 /* adobe type 1 only*//* font weights - lfWeight*/#define MWLF_WEIGHT_DEFAULT 0 /* any weight*/#define MWLF_WEIGHT_THIN 100 /* thin*/#define MWLF_WEIGHT_EXTRALIGHT 200#define MWLF_WEIGHT_LIGHT 300 /* light */#define MWLF_WEIGHT_NORMAL 400 /* regular*/#define MWLF_WEIGHT_REGULAR 400#define MWLF_WEIGHT_MEDIUM 500 /* medium */#define MWLF_WEIGHT_DEMIBOLD 600#define MWLF_WEIGHT_BOLD 700 /* bold*/#define MWLF_WEIGTH_EXTRABOLD 800#define MWLF_WEIGHT_BLACK 900 /* black *//* font charset - lfCharSet*/#define MWLF_CHARSET_ANSI 0 /* win32 ansi*/#define MWLF_CHARSET_DEFAULT 1 /* any charset*/#define MWLF_CHARSET_UNICODE 254 /* unicode*/#define MWLF_CHARSET_OEM 255 /* local hw*//* font pitch - lfPitch */#define MWLF_PITCH_DEFAULT 0 /* any pitch */#define MWLF_PITCH_ULTRACONDENSED 10#define MWLF_PITCH_EXTRACONDENSED 20#define MWLF_PITCH_CONDENSED 30#define MWLF_PITCH_SEMICONDENSED 40#define MWLF_PITCH_NORMAL 50#define MWLF_PITCH_SEMIEXPANDED 60#define MWLF_PITCH_EXPANDED 70#define MWLF_PITCH_EXTRAEXPANDED 80#define MWLF_PITCH_ULTRAEXPANDED 90/* flags for the GdAddFont function */#define MWLF_FLAGS_ALIAS 1typedef struct { long lfHeight; /* desired height in pixels*/ long lfWidth; /* desired width in pixels or 0*/ long lfEscapement; /* rotation in tenths of degree*/ long lfOrientation; /* not used*/ long lfWeight; /* font weight*/ MWUCHAR lfItalic; /* =1 for italic */ MWUCHAR lfUnderline; /* =1 for underline */ MWUCHAR lfStrikeOut; /* not used*/ MWUCHAR lfCharSet; /* font character set*/ MWUCHAR lfOutPrecision; /* font type selection*/ MWUCHAR lfClipPrecision; /* not used*/ MWUCHAR lfQuality; /* not used*/ /* the following differs from windows font model*/ MWUCHAR lfRoman; /* =1 for Roman letters (upright) */ MWUCHAR lfSerif; /* =1 for Serifed font */ MWUCHAR lfSansSerif; /* =1 for Sans-serif font */ MWUCHAR lfModern; /* =1 for Modern font */ MWUCHAR lfMonospace; /* =1 for Monospaced font */ MWUCHAR lfProportional; /* =1 for Proportional font */ MWUCHAR lfOblique; /* =1 for Oblique (kind of Italic) */ MWUCHAR lfSmallCaps; /* =1 for small caps */ MWUCHAR lfPitch; /* font pitch (width) */ char lfFaceName[MWLF_FACESIZE]; /* font name, may be aliased*/} MWLOGFONT, *PMWLOGFONT;/* * Macros to initialize the MWLOGFONT structure to the most common defaults * needed by application programs and the nano-X server program. */#define MWLF_Clear(lf) \ do { \ (lf)->lfHeight = 0; \ (lf)->lfWidth = 0; \ (lf)->lfEscapement = 0; \ (lf)->lfOrientation = 0; \ (lf)->lfWeight = MWLF_WEIGHT_REGULAR; \ (lf)->lfPitch = 0; \ (lf)->lfItalic = 0; \ (lf)->lfOblique = 0; \ (lf)->lfRoman = 0; \ (lf)->lfSerif = 0; \ (lf)->lfSansSerif = 0; \ (lf)->lfModern = 0; \ (lf)->lfMonospace = 0; \ (lf)->lfProportional = 0; \ (lf)->lfSmallCaps = 0; \
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -