📄 mwtypes.h
字号:
#ifndef _MWTYPES_H#define _MWTYPES_H/* * Copyright (c) 1999, 2000, 2001 Greg Haerr <greg@censoft.com> * * Exported Microwindows engine typedefs and defines */#define MWPACKED __attribute__ ((aligned(1), packed))/* 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_COPY 0 /* src*/#define MWMODE_XOR 1 /* src ^ dst*/#define MWMODE_OR 2 /* src | dst*/#define MWMODE_AND 3 /* src & dst*/#define MWMODE_CLEAR 4 /* 0*/#define MWMODE_SETTO1 5 /* 11111111*/ /* obsolete name, will be MWMODE_SET*/#define MWMODE_EQUIV 6 /* ~(src ^ dst)*/#define MWMODE_NOR 7 /* ~(src | dst)*/#define MWMODE_NAND 8 /* ~(src & dst)*/#define MWMODE_INVERT 9 /* ~dst*/#define MWMODE_COPYINVERTED 10 /* ~src*/#define MWMODE_ORINVERTED 11 /* ~src | dst*/#define MWMODE_ANDINVERTED 12 /* ~src & dst*/#define MWMODE_ORREVERSE 13 /* src | ~dst*/#define MWMODE_ANDREVERSE 14 /* src & ~dst*/#define MWMODE_NOOP 15 /* dst*/#define MWMODE_MAX 15/* 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 (extensions < 0x10000000 are MWMODE_xxx blit ops) */#define MWROP_EXTENSION 0xff000000L /* rop extension bits*//* copy src -> dst except for transparent color in src*/#define MWROP_SRCTRANSCOPY 0x11000000L/* alpha blend src -> dst with constant alpha, alpha value in low 8 bits*/#define MWROP_BLENDCONSTANT 0x12000000L/* alpha blend fg/bg color -> dst with src as alpha channel*/#define MWROP_BLENDFGBG 0x13000000L/* alpha blend src -> dst with separate per pixel alpha channel*/#define MWROP_BLENDCHANNEL 0x14000000L/* stretch src -> dst*/#define MWROP_STRETCH 0x15000000L/* blits rops based on src/dst binary operations*/#define MWROP_COPY (MWMODE_COPY << 24L)#define MWROP_XOR (MWMODE_XOR << 24L)#define MWROP_OR (MWMODE_OR << 24L)#define MWROP_AND (MWMODE_AND << 24L)#define MWROP_CLEAR (MWMODE_CLEAR << 24L)#define MWROP_SET (MWMODE_SETTO1 << 24L)#define MWROP_EQUIV (MWMODE_EQUIV << 24L)#define MWROP_NOR (MWMODE_NOR << 24L)#define MWROP_NAND (MWMODE_NAND << 24L)#define MWROP_INVERT (MWMODE_INVERT << 24L)#define MWROP_COPYINVERTED (MWMODE_COPYINVERTED << 24L)#define MWROP_ORINVERTED (MWMODE_ORINVERTED << 24L)#define MWROP_ANDINVERTED (MWMODE_ANDINVERTED << 24L)#define MWROP_ORREVERSE (MWMODE_ORREVERSE << 24L)#define MWROP_ANDREVERSE (MWMODE_ANDREVERSE << 24L)#define MWROP_NOOP (MWMODE_NOOP << 24L)#define MWROP_SRCCOPY MWROP_COPY /* obsolete*/#define MWROP_SRCAND MWROP_AND /* obsolete*/#define MWROP_SRCINVERT MWROP_XOR /* obsolete*/#define MWROP_BLACKNESS MWROP_CLEAR /* obsolete*//* convert an MWROP to drawing mode MWMODE value*/#define MWROP_TO_MODE(op) ((op) >> 24)/* * 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_TRUECOLOR565) || (MWPIXEL_FORMAT == MWPF_TRUECOLOR555)typedef 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/* portrait modes*/#define MWPORTRAIT_NONE 0x00 /* hw framebuffer, no rotation*/#define MWPORTRAIT_LEFT 0x01 /* rotate left*/#define MWPORTRAIT_RIGHT 0x02 /* rotate right*/#define MWPORTRAIT_DOWN 0x04 /* upside down*//* * 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;/* Keyboard state modifiers*/typedef unsigned int MWKEYMOD;/* 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 */ MWKEYMOD modifiers; /* modifiers which are implemented */ int pixtype; /* format of pixel value*/ int portrait; /* current portrait mode*/ MWBOOL fbdriver; /* true if running mwin fb screen driver*/ unsigned long rmask; /* red mask bits in pixel*/ unsigned long gmask; /* green mask bits in pixel*/ unsigned long bmask; /* blue mask bits in pixel*/ 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;/* client side window framebuffer info*/typedef struct { unsigned char * physpixels; /* address of real framebuffer*/ /* note winpixels is only correct in non-portrait modes*/ unsigned char * winpixels; /* address of 0,0 this window in fb*/ int pixtype; /* MWPF_ pixel type*/ int bpp; /* bits per pixel*/ int bytespp; /* bytes per pixel*/ int pitch; /* bytes per scan line for window (=fb pitch)*/ int x, y; /* absolute virtual window coordinates*/ int portrait_mode; /* current portrait mode*/ MWCOORD xres; /* real framebuffer resolution*/ MWCOORD yres; MWCOORD xvirtres; /* virtual framebuffer resolution*/ MWCOORD yvirtres;} MWWINDOWFBINFO;/* 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;/* GetFontList structure */typedef struct { char *ttname; /* TrueType name, eg "Times New Roman Bold" */ char *mwname; /* microwin name, eg "timesb" */} MWFONTLIST, *PMWFONTLIST;/* 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 */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -