📄 guigdi.h
字号:
/* $id:guiGdi.h V1.0 2001/10/10 */
/******************************************************************************
* This source code has been made available to you by SEIKO EPSON on
* AS-IS.Anyone receiving this source is licensed under
* SEIKO EPSON copyrights to use it in any way he or she deems fit,including
* copying it,modifying it,compiling it,and redistributing it either with
* or without modifictions.
*
*
* Any person who transfers this source code or any derivative work must
* include the SEIKO EPSON copyright notice, this paragraph,and the preceding
* two paragraphs in the transferred software.
*
*
* COPYRIGHT SEIKO EPSON CORPORATION 2001
* LICENSED MATERIAL - PROGRAM PROPERTY OF EPSON
*****************************************************************************/
/******************************************************************************
*
* FILE: guiGdi.h
*
* MODULE: System predefined data types
*
* PURPOSE: Define some system level data types and some key macros
*
* AUTHOR(S):Chen Hong
*
* GROUP:GUI_GROUP
*
* DATE CREATED:2001/10/17
*
* REFERENCE DOCUMENT ID:
*
* MODIFICATIONS:
* Date user Name Description
* 2001/10/17 Chen Hong Create this file
*********************************************************************************/
#ifndef _GUIGDI_H
#define _GUIGDI_H
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/* expanded bitmap struct */
typedef struct T_GUI_Bitmap
{
T_WORD wType;
T_WORD wWidth;
T_WORD wHeight;
T_WORD wWidthBytes;
T_UBYTE ubPlanes;
T_UBYTE ubBitsPixel;
T_VOID* vpBits;
T_UWORD uwTransparent;
} T_GUI_Bitmap;
typedef T_GUI_Bitmap* T_GUI_pBitmap;
/* buffer for image file */
typedef struct T_GUI_BmpBuffer
{
T_UBYTE *pArray;
T_UWORD ImageSize;
}T_GUI_BmpBuffer;
typedef T_GUI_BmpBuffer* T_GUI_pBmpBuffer;
/*************************** Block data heap operations ***********************/
typedef struct T_GUI_BlockHeap
{
T_GUI_SIZE bd_size;
T_GUI_SIZE heap_size;
T_WORD free;
T_VOID* heap;
} T_GUI_BlockHeap;
typedef T_GUI_BlockHeap* T_GUI_pBlockHeap;
T_VOID fnGUI_InitBlockDataHeap (T_GUI_pBlockHeap heap, T_GUI_SIZE bd_size, T_GUI_SIZE heap_size);
T_VOID* fnGUI_BlockDataAlloc (T_GUI_pBlockHeap heap);
T_VOID fnGUI_BlockDataFree (T_GUI_pBlockHeap heap, T_VOID* data);
T_VOID fnGUI_DestroyBlockDataHeap (T_GUI_pBlockHeap heap);
/******************************** Region Support ****************************/
/* Clip Rect */
typedef struct T_GUI_ClipRect
{
T_GUI_Rect rc;
struct T_GUI_ClipRect* next;
}T_GUI_ClipRect;
typedef T_GUI_ClipRect* T_GUI_pClipRect;
/* Clip Region */
typedef struct T_GUI_ClipRgn
{
T_GUI_Rect RcBound; /* bound rect of clip region */
T_GUI_pClipRect head; /* clip rect list head */
T_GUI_pClipRect tail; /* clip rect list tail */
T_GUI_pBlockHeap heap; /* heap of clip rect */
} T_GUI_ClipRgn;
typedef T_GUI_ClipRgn* T_GUI_pClipRgn;
#define fnGUI_InitFreeClipRectList(heap, size) fnGUI_InitBlockDataHeap (heap, sizeof (T_GUI_ClipRect), size)
#define fnGUI_ClipRectAlloc(heap) fnGUI_BlockDataAlloc (heap)
#define fnGUI_FreeClipRect(heap, cr) fnGUI_BlockDataFree (heap, cr);
#define fnGUI_DestroyFreeClipRectList(heap) fnGUI_DestroyBlockDataHeap (heap);
T_VOID fnGUI_InitClipRgn (T_GUI_pClipRgn pRgn, T_GUI_pBlockHeap pFreeList);
T_BOOL fnGUI_ClipRgnCopy (T_GUI_pClipRgn pDstRgn, T_CONST T_GUI_ClipRgn* pSrcRgn);
T_BOOL fnGUI_ClipRgnIntersect (T_GUI_pClipRgn pDstRgn,
T_CONST T_GUI_ClipRgn* pSrcRgn1, T_CONST T_GUI_ClipRgn* pSrcRgn2);
T_VOID fnGUI_GetClipRgnBoundRect (T_GUI_pClipRgn pRgn, T_GUI_pRect pRect);
T_BOOL fnGUI_SetClipRgn (T_GUI_pClipRgn pRgn, T_CONST T_GUI_Rect* pRect);
T_BOOL fnGUI_IsEmptyClipRgn (T_CONST T_GUI_ClipRgn* pRgn);
T_VOID fnGUI_EmptyClipRgn (T_GUI_pClipRgn pRgn);
T_BOOL fnGUI_AddClipRect (T_GUI_pClipRgn pRgn, T_CONST T_GUI_Rect* pRect);
T_BOOL fnGUI_IntersectClipRect (T_GUI_pClipRgn pRgn, T_CONST T_GUI_Rect* pRect);
T_BOOL fnGUI_SubtractClipRect (T_GUI_pClipRgn pRgn, T_CONST T_GUI_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_ALL "all"
#define FONT_TYPE_BITMAP_RAW 0x0001
#define FONT_TYPE_BITMAP_VAR 0x0002
#define FONT_TYPE_SCALE_TTF 0x0010
#define FONT_TYPE_SCALE_T1F 0x0010
#define FONT_TYPE_ALL 0xFFFF
#define FONT_CHARSET_ISO8859_1 "ISO8859-1"
#define FONT_CHARSET_GB2312 "GB2312"
#define FONT_CHARSET_BIG5 "BIG5"
#define FONT_CHARSET_SJIS "SJIS"
#define FONT_MAX_SIZE 256
#define FONT_MIN_SIZE 4
struct T_GUI_DevFont;
typedef struct T_GUI_DevFont T_GUI_DevFont;
typedef struct T_GUI_LogFont {
T_BYTE type [LEN_FONT_NAME + 1];
T_BYTE family [LEN_FONT_NAME + 1];
T_BYTE charset [LEN_FONT_NAME + 1];
T_DWORD style;
T_WORD size;
T_WORD rotation;
T_GUI_DevFont* sbc_devfont;
T_GUI_DevFont* mbc_devfont;
} T_GUI_LogFont;
typedef T_GUI_LogFont* T_GUI_pLogFont;
#define MAX_LEN_MCHAR 4
typedef struct T_GUI_WordInfo
{
T_WORD len;
T_UBYTE delimiter;
T_WORD nr_delimiters;
} T_GUI_WordInfo;
typedef struct T_GUI_CharsetOps
{
T_WORD nr_chars;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -