⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gdi.h

📁 在ecos 下mingui 的移植开发
💻 H
📖 第 1 页 / 共 2 页
字号:
/* * $Id: gdi.h,v 1.36 2000/11/20 05:46:45 ymwei Exp $ * * gdi.h * * This file include definitions of Graphics Device Interfaces. * *             MiniGUI for Linux Version 0.9.xx *             Copyright (c) 1998 ~ 2000 Wei Yongming. *             Last modified date: 2000/11/17 *//***  This library is free software; you can redistribute it and/or**  modify it under the terms of the GNU Library General Public**  License as published by the Free Software Foundation; either**  version 2 of the License, or (at your option) any later version.****  This library is distributed in the hope that it will be useful,**  but WITHOUT ANY WARRANTY; without even the implied warranty of**  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU**  Library General Public License for more details.****  You should have received a copy of the GNU Library General Public**  License along with this library; if not, write to the Free**  Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,**  MA 02111-1307, USA*/#ifndef GUI_GDI_H    #define GUI_GDI_H/* include necessary headers */#include <pthread.h> #ifdef __cplusplusextern "C" {#endif  /* __cplusplus */#ifdef __ECOStypedef unsigned char 		uchar;typedef unsigned short 		ushort;typedef unsigned long		ulong;typedef unsigned int		uint;typedef unsigned char 		u_char;typedef unsigned short 		u_short;typedef unsigned long		u_long;typedef unsigned int		u_int;#endif/* expanded bitmap struct */typedef struct tagBITMAP{    int     bmType;    int     bmWidth;    int     bmHeight;    int     bmWidthBytes;    BYTE    bmPlanes;    BYTE    bmBitsPixel;    void*   bmBits;} BITMAP;typedef BITMAP* PBITMAP;/******************************** Region Support ****************************/// Clip Recttypedef struct tagCLIPRECT{    RECT rc;    BOOL fromheap;    struct tagCLIPRECT* next;}CLIPRECT;typedef CLIPRECT* PCLIPRECT;// Free CLIPRECT listtypedef struct tagFREECLIPRECTLIST{   pthread_mutex_t lock;   PCLIPRECT       head;   PCLIPRECT       tail;   int             size;   PCLIPRECT       heap;   int             free;}FREECLIPRECTLIST;typedef FREECLIPRECTLIST* PFREECLIPRECTLIST;// Clip Regiontypedef struct tagCLIPRGN{   RECT            rcBound;     // bound rect of clip region   PCLIPRECT       head;        // clip rect list head   PCLIPRECT       tail;        // clip rect list tail   PFREECLIPRECTLIST pFreeList; // free clip rect list}CLIPRGN;typedef CLIPRGN* PCLIPRGN;BOOL GUIAPI InitFreeClipRectList (PFREECLIPRECTLIST pList, size_t size);PCLIPRECT GUIAPI ClipRectAlloc (PFREECLIPRECTLIST pList);void GUIAPI FreeClipRect (PFREECLIPRECTLIST pList, CLIPRECT* pRect);void GUIAPI EmptyFreeClipRectList (PFREECLIPRECTLIST pList);void GUIAPI DestroyFreeClipRectList (PFREECLIPRECTLIST pList);void GUIAPI InitClipRgn (PCLIPRGN pRgn, PFREECLIPRECTLIST pFreeList);BOOL GUIAPI ClipRgnCopy (PCLIPRGN pDstRgn, const CLIPRGN* pSrcRgn);BOOL GUIAPI ClipRgnIntersect (PCLIPRGN pRstRgn,                       const CLIPRGN* pRgn1, const CLIPRGN* pRgn2);void GUIAPI GetClipRgnBoundRect (PCLIPRGN pRgn, PRECT pRect);BOOL GUIAPI SetClipRgn (PCLIPRGN pRgn, const RECT* pRect);BOOL GUIAPI IsEmptyClipRgn (const CLIPRGN* pRgn);void GUIAPI EmptyClipRgn (PCLIPRGN pRgn);BOOL GUIAPI AddClipRect (PCLIPRGN pRgn, const RECT* pRect);BOOL GUIAPI IntersectClipRect (PCLIPRGN pRgn, const RECT* pRect);BOOL GUIAPI SubtractClipRect (PCLIPRGN pRgn, const RECT* pRect);/************************* Font-related structures  ************************/#define LEN_FONT_NAME               15#define LEN_DEVFONT_NAME            79#define FONT_WEIGHT_NIL             '\0'#define FONT_WEIGHT_ALL             '*'#define FONT_WEIGHT_BLACK           'c'#define FONT_WEIGHT_BOLD            'b'#define FONT_WEIGHT_BOOK            'k'#define FONT_WEIGHT_DEMIBOLD        'd'#define FONT_WEIGHT_LIGHT           'l'#define FONT_WEIGHT_MEDIUM          'm'#define FONT_WEIGHT_REGULAR         'r'#define FS_WEIGHT_MASK              0x000000FF#define FS_WEIGHT_BLACK             0x00000001#define FS_WEIGHT_BOLD              0x00000002#define FS_WEIGHT_BOOK              0x00000004#define FS_WEIGHT_DEMIBOLD          0x00000006 /* BOOK | BOLD */#define FS_WEIGHT_LIGHT             0x00000010#define FS_WEIGHT_MEDIUM            0x00000020#define FS_WEIGHT_REGULAR           0x00000000#define FONT_SLANT_NIL              '\0'#define FONT_SLANT_ALL              '*'#define FONT_SLANT_ITALIC           'i'#define FONT_SLANT_OBLIQUE          'o'#define FONT_SLANT_ROMAN            'r'#define FS_SLANT_MASK               0x00000F00#define FS_SLANT_ITALIC             0x00000100#define FS_SLANT_OBLIQUE            0x00000200#define FS_SLANT_ROMAN              0x00000000#define FONT_SETWIDTH_NIL           '\0'#define FONT_SETWIDTH_ALL           '*'#define FONT_SETWIDTH_BOLD          'b'#define FONT_SETWIDTH_CONDENSED     'c'#define FONT_SETWIDTH_SEMICONDENSED 's'#define FONT_SETWIDTH_NORMAL        'n'#define FS_SETWIDTH_MASK            0x0000F000#define FS_SETWIDTH_BOLD            0x00001000#define FS_SETWIDTH_CONDENSED       0x00002000#define FS_SETWIDTH_SEMICONDENSED   0x00004000#define FS_SETWIDTH_NORMAL          0x00000000#define FONT_SPACING_NIL            '\0'#define FONT_SPACING_ALL            '*'#define FONT_SPACING_MONOSPACING    'm'#define FONT_SPACING_PROPORTIONAL   'p'#define FONT_SPACING_CHARCELL       'c'#define FS_SPACING_MASK             0x000F0000#define FS_SPACING_MONOSPACING      0x00010000#define FS_SPACING_PROPORTIONAL     0x00020000#define FS_SPACING_CHARCELL         0x00000000#define FONT_UNDERLINE_NIL          '\0'#define FONT_UNDERLINE_ALL          '*'#define FONT_UNDERLINE_LINE         'u'#define FONT_UNDERLINE_NONE         'n'#define FS_UNDERLINE_MASK           0x00F00000#define FS_UNDERLINE_LINE           0x00100000#define FS_UNDERLINE_NONE           0x00000000#define FONT_STRUCKOUT_NIL          '\0'#define FONT_STRUCKOUT_ALL          '*'#define FONT_STRUCKOUT_LINE         's'#define FONT_STRUCKOUT_NONE         'n'#define FS_STRUCKOUT_MASK           0x0F000000#define FS_STRUCKOUT_LINE           0x01000000#define FS_STRUCKOUT_NONE           0x00000000#define FONT_TYPE_NAME_BITMAP_RAW   "rbf"#define FONT_TYPE_NAME_BITMAP_VAR   "vbf"#define FONT_TYPE_NAME_SCALE_TTF    "ttf"#define FONT_TYPE_NAME_ALL          "all"#define FONT_TYPE_BITMAP_RAW        0x0001  // "rbf"#define FONT_TYPE_BITMAP_VAR        0x0002  // "vbf"#define FONT_TYPE_SCALE_TTF         0x0010  // "ttf"#define FONT_TYPE_ALL               0xFFFF  // "all"#define FONT_CHARSET_ISO8859_1      "ISO8859-1"#define FONT_CHARSET_GB2312_1980_0  "GB2312.1980-0"#define FONT_CHARSET_GB12345        "GB12345"#define FONT_CHARSET_BIG5           "BIG5"#define FONT_MAX_SIZE               256#define FONT_MIN_SIZE               4struct _DEVFONT;typedef struct _DEVFONT DEVFONT;typedef struct _LOGFONT {    char type [LEN_FONT_NAME + 1];    char family [LEN_FONT_NAME + 1];    char charset [LEN_FONT_NAME + 1];    DWORD style;    int size;    int rotation;    DEVFONT* sbc_devfont;    DEVFONT* mbc_devfont;} LOGFONT;typedef LOGFONT*    PLOGFONT;extern LOGFONT SysLogFont;#define MAX_LEN_MCHAR               4typedef struct _WORDINFO{    int len;                    // length of the word    unsigned char delimiter;    // delimiter after the word    int nr_delimiters;          // number of delimiter after the word} WORDINFO;typedef struct _CHARSETOPS{    int nr_chars;    int bytes_per_char;    int bytes_maxlen_char;    const char* name;    char def_char [MAX_LEN_MCHAR];    int (*len_first_char) (const unsigned char* mstr, int mstrlen);    int (*char_offset) (const unsigned char* mchar);    int (*nr_chars_in_str) (const unsigned char* mstr, int mstrlen);    int (*is_this_charset) (const unsigned char* charset);    int (*len_first_substr) (const unsigned char* mstr, int mstrlen);    const unsigned char* (*get_next_word) (const unsigned char* mstr,                 int strlen, WORDINFO* word_info);    int (*pos_first_char) (const unsigned char* mstr, int mstrlen);    unsigned short (*conv_to_uc16) (const unsigned char* mchar, int len);} CHARSETOPS;typedef struct _FONTOPS{    int (*get_char_width) (LOGFONT* logfont, DEVFONT* devfont,             const unsigned char* mchar, int len);    int (*get_str_width) (LOGFONT* logfont, DEVFONT* devfont,             const unsigned char* mstr, int n, int cExtra);    int (*get_ave_width) (LOGFONT* logfont, DEVFONT* devfont);    int (*get_max_width) (LOGFONT* logfont, DEVFONT* devfont);    int (*get_font_height) (LOGFONT* logfont, DEVFONT* devfont);    int (*get_font_size) (LOGFONT* logfont, DEVFONT* devfont, int expect);    int (*get_font_ascent) (LOGFONT* logfont, DEVFONT* devfont);    int (*get_font_descent) (LOGFONT* logfont, DEVFONT* devfont);/* TODO *///    int (*get_font_ABC) (LOGFONT* logfont);        size_t (*char_bitmap_size) (LOGFONT* logfont, DEVFONT* devfont,             const unsigned char* mchar, int len);    size_t (*max_bitmap_size) (LOGFONT* logfont, DEVFONT* devfont);    void* (*get_char_bitmap) (LOGFONT* logfont, DEVFONT* devfont,             const unsigned char* mchar, int len);        void* (*get_char_pixmap) (LOGFONT* logfont, DEVFONT* devfont,             const unsigned char* mchar, int len, int* pitch);         /* Can be NULL */    void (*start_str_output) (LOGFONT* logfont, DEVFONT* devfont);         /* Can be NULL */    int (*get_char_bbox) (LOGFONT* logfont, DEVFONT* devfont,            const unsigned char* mchar, int len,            int* px, int* py, int* pwidth, int* pheight);         /* Can be NULL */    void (*get_char_advance) (LOGFONT* logfont, DEVFONT* devfont,            int* px, int* py);         /* Can be NULL */    DEVFONT* (*new_instance) (LOGFONT* logfont, DEVFONT* devfont,             BOOL need_sbc_font);         /* Can be NULL */    void (*delete_instance) (DEVFONT* devfont);         /* Can be NULL */} FONTOPS;struct _DEVFONT{    char             name [LEN_DEVFONT_NAME + 1];    DWORD            style;    FONTOPS*         font_ops;    CHARSETOPS*      charset_ops;    struct _DEVFONT* sbc_next;    struct _DEVFONT* mbc_next;    void*            data;};#define SBC_DEVFONT_INFO(logfont) (logfont.sbc_devfont)#define MBC_DEVFONT_INFO(logfont) (logfont.mbc_devfont)#define SBC_DEVFONT_INFO_P(logfont) (logfont->sbc_devfont)#define MBC_DEVFONT_INFO_P(logfont) (logfont->mbc_devfont)/****** Color support *******************************************************//* System pixel definition */extern gal_pixel SysPixelIndex [];extern const RGB SysPixelColor [];#define PIXEL_invalid       -1#define PIXEL_transparent   SysPixelIndex[0]#define PIXEL_darkred       SysPixelIndex[1] #define PIXEL_darkgreen     SysPixelIndex[2]#define PIXEL_darkyellow    SysPixelIndex[3] #define PIXEL_darkblue      SysPixelIndex[4]#define PIXEL_darkmagenta   SysPixelIndex[5]#define PIXEL_darkcyan      SysPixelIndex[6]#define PIXEL_lightgray     SysPixelIndex[7]#define PIXEL_darkgray      SysPixelIndex[8] #define PIXEL_red           SysPixelIndex[9]#define PIXEL_green         SysPixelIndex[10]#define PIXEL_yellow        SysPixelIndex[11]#define PIXEL_blue          SysPixelIndex[12]#define PIXEL_magenta       SysPixelIndex[13]

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -