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

📄 guigdi.h

📁 The combined demo is dedicated for S1C33L05, so DMT33L05 should be used to load and run the demo. F
💻 H
📖 第 1 页 / 共 3 页
字号:
/* $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 + -