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

📄 guigdi.h

📁 The combined demo is dedicated for S1C33L05, so DMT33L05 should be used to load and run the demo. F
💻 H
📖 第 1 页 / 共 3 页
字号:
    T_WORD bytes_per_char;
    T_WORD bytes_maxlen_char;
    T_CONST T_BYTE* name;
    T_BYTE def_char [MAX_LEN_MCHAR];

    T_WORD (*len_first_char) (T_CONST T_UBYTE* mstr, T_WORD mstrlen);
    T_WORD (*char_offset) (T_CONST T_UBYTE* mchar);

    T_WORD (*nr_chars_in_str) (T_CONST T_UBYTE* mstr, T_WORD mstrlen);

    T_BOOL (*is_this_charset) (T_CONST T_UBYTE* charset);

    T_WORD (*len_first_substr) (T_CONST T_UBYTE* mstr, T_WORD mstrlen);
    T_CONST T_UBYTE* (*get_next_word) (T_CONST T_UBYTE* mstr,
                T_WORD strlen, T_GUI_WordInfo* word_info);

    T_WORD (*pos_first_char) (T_CONST T_UBYTE* mstr, T_WORD mstrlen);

} T_GUI_CharsetOps;

typedef struct T_GUI_FontOps
{
    T_WORD (*get_char_width) (T_GUI_LogFont* logfont, T_GUI_DevFont* devfont,
            T_CONST T_UBYTE* mchar, T_WORD len);
    T_WORD (*get_str_width) (T_GUI_LogFont* logfont, T_GUI_DevFont* devfont,
            T_CONST T_UBYTE* mstr, T_WORD n, T_WORD cExtra);
    T_WORD (*get_ave_width) (T_GUI_LogFont* logfont, T_GUI_DevFont* devfont);
    T_WORD (*get_max_width) (T_GUI_LogFont* logfont, T_GUI_DevFont* devfont);
    T_WORD (*get_font_height) (T_GUI_LogFont* logfont, T_GUI_DevFont* devfont);
    T_WORD (*get_font_size) (T_GUI_LogFont* logfont, T_GUI_DevFont* devfont, T_WORD expect);
    T_WORD (*get_font_ascent) (T_GUI_LogFont* logfont, T_GUI_DevFont* devfont);
    T_WORD (*get_font_descent) (T_GUI_LogFont* logfont, T_GUI_DevFont* devfont);

    T_GUI_SIZE (*char_bitmap_size) (T_GUI_LogFont* logfont, T_GUI_DevFont* devfont,
            T_CONST T_UBYTE* mchar, T_WORD len);
    T_GUI_SIZE (*max_bitmap_size) (T_GUI_LogFont* logfont, T_GUI_DevFont* devfont);
    T_CONST T_VOID* (*get_char_bitmap) (T_GUI_LogFont* logfont, T_GUI_DevFont* devfont,
            T_CONST T_UBYTE* mchar, T_WORD len);

    T_CONST T_VOID* (*get_char_pixmap) (T_GUI_LogFont* logfont, T_GUI_DevFont* devfont,
            T_CONST T_UBYTE* mchar, T_WORD len, T_WORD* pitch);
         /* Can be NULL */

    T_VOID (*start_str_output) (T_GUI_LogFont* logfont, T_GUI_DevFont* devfont);
         /* Can be NULL */
    T_WORD (*get_char_bbox) (T_GUI_LogFont* logfont, T_GUI_DevFont* devfont,
            T_CONST T_UBYTE* mchar, T_WORD len,
            T_WORD* px, T_WORD* py, T_WORD* pwidth, T_WORD* pheight);
         /* Can be NULL */
    T_VOID (*get_char_advance) (T_GUI_LogFont* logfont, T_GUI_DevFont* devfont,
            T_WORD* px, T_WORD* py);
         /* Can be NULL */

    T_GUI_DevFont* (*new_instance) (T_GUI_LogFont* logfont, T_GUI_DevFont* devfont,
            T_BOOL need_sbc_font);
         /* Can be NULL */
    T_VOID (*delete_instance) (T_GUI_DevFont* devfont);
         /* Can be NULL */
} T_GUI_FontOps;

struct T_GUI_DevFont
{
    T_BYTE             name [LEN_DEVFONT_NAME + 1];
    T_DWORD            style;
    T_GUI_FontOps*         font_ops;
    T_GUI_CharsetOps*      charset_ops;
    struct T_GUI_DevFont* sbc_next;
    struct T_GUI_DevFont* mbc_next;
    T_VOID*            data;
};

#define fnGUI_SBC_DEVFONT_INFO(logfont) (logfont.sbc_devfont)
#define fnGUI_MBC_DEVFONT_INFO(logfont) (logfont.mbc_devfont)

#define fnGUI_SBC_DEVFONT_INFO_P(logfont) (logfont->sbc_devfont)
#define fnGUI_MBC_DEVFONT_INFO_P(logfont) (logfont->mbc_devfont)



/****** Color support *******************************************************/
/* System pixel definition */
T_GUI_PIXEL fnGUI_GetSysPixelIndex(T_WORD id);

#define PIXEL_INVALID       -1
#define PIXEL_TRANSPARENT   fnGUI_GetSysPixelIndex(0)
#define PIXEL_DARKBLUE      fnGUI_GetSysPixelIndex(1)
#define PIXEL_DARKGREEN     fnGUI_GetSysPixelIndex(2)
#define PIXEL_DARKCYAN      fnGUI_GetSysPixelIndex(3)
#define PIXEL_DARKRED       fnGUI_GetSysPixelIndex(4)
#define PIXEL_DARKMAGENTA   fnGUI_GetSysPixelIndex(5)
#define PIXEL_DARKYELLOW    fnGUI_GetSysPixelIndex(6)
#define PIXEL_DARKGRAY      fnGUI_GetSysPixelIndex(7)
#define PIXEL_LIGHTGRAY     fnGUI_GetSysPixelIndex(8)
#define PIXEL_BLUE          fnGUI_GetSysPixelIndex(9)
#define PIXEL_GREEN         fnGUI_GetSysPixelIndex(10)
#define PIXEL_CYAN          fnGUI_GetSysPixelIndex(11)
#define PIXEL_RED           fnGUI_GetSysPixelIndex(12)
#define PIXEL_MAGENTA       fnGUI_GetSysPixelIndex(13)
#define PIXEL_YELLOW        fnGUI_GetSysPixelIndex(14)
#define PIXEL_LIGHTWHITE    fnGUI_GetSysPixelIndex(15)
#define PIXEL_BLACK         fnGUI_GetSysPixelIndex(16)
/* Compatiblity definitions */
#define COLOR_INVALID       PIXEL_INVALID
#define COLOR_TRANSPARENT   PIXEL_TRANSPARENT
#define COLOR_DARKRED       PIXEL_DARKRED
#define COLOR_DARKGREEN     PIXEL_DARKGREEN
#define COLOR_DARKYELLOW    PIXEL_DARKYELLOW
#define COLOR_DARKBLUE      PIXEL_DARKBULE
#define COLOR_DARKMAGENTA   PIXEL_DARKMAGENTA
#define COLOR_DARKCYAN      PIXEL_DARKCYAN
#define COLOR_LIGHTGRAY     PIXEL_LIGHTGRAY
#define COLOR_DARKGRAY      PIXEL_DARKGRAY
#define COLOR_RED           PIXEL_RED
#define COLOR_GREEN         PIXEL_GREEN
#define COLOR_YELLOW        PIXEL_YELLOW
#define COLOR_BLUE          PIXEL_BLUE
#define COLOR_MAGENTA       PIXEL_MAGENTA
#define COLOR_CYAN          PIXEL_CYAN
#define COLOR_LIGHTWHITE    PIXEL_LIGHTWHITE
#define COLOR_BLACK         PIXEL_BLACK

#define SCREENHDC           0
#define HDC_SCREEN          SCREENHDC
#define HDC_INVALID         0

#define GDCAP_COLORNUM      0
#define GDCAP_HPIXEL        1
#define GDCAP_VPIXEL        2
#define GDCAP_MAXX          3
#define GDCAP_MAXY          4
#define GDCAP_DEPTH         5
#define GDCAP_BPP           6



/****** DC support *******************************************************/
T_WORD fnGUI_GetGDCapability (T_GUI_HDC hdc, T_WORD index);
T_GUI_HDC fnGUI_GetDC(T_GUI_HWND hwnd);
T_GUI_HDC fnGUI_GetClientDC (T_GUI_HWND hwnd);
T_VOID fnGUI_ReleaseDC (T_GUI_HDC hdc);
T_GUI_HDC fnGUI_CreateCompatibleDC (T_GUI_HDC hdc);
T_VOID fnGUI_DeleteCompatibleDC (T_GUI_HDC hdc);
T_GUI_HDC fnGUI_CreatePrivateDC (T_GUI_HWND hwnd);
T_GUI_HDC fnGUI_CreatePrivateClientDC (T_GUI_HWND hwnd);
T_GUI_HDC fnGUI_GetPrivateClientDC (T_GUI_HWND hwnd);
T_VOID fnGUI_DeletePrivateDC (T_GUI_HDC hdc);




/****** General drawing attributes support *******************************************************/
#define BM_TRANSPARENT        1
#define BM_OPAQUE             0
T_GUI_PIXEL fnGUI_GetBkColor (T_GUI_HDC hdc);
T_WORD fnGUI_GetBkMode (T_GUI_HDC hdc);
T_GUI_PIXEL fnGUI_GetTextColor (T_GUI_HDC hdc);
T_GUI_PIXEL fnGUI_SetBkColor (T_GUI_HDC hdc, T_GUI_PIXEL color);
T_WORD fnGUI_SetBkMode (T_GUI_HDC hdc, T_WORD mode);
T_GUI_PIXEL fnGUI_SetTextColor (T_GUI_HDC hdc, T_GUI_PIXEL color);
T_WORD fnGUI_GetTabStop (T_GUI_HDC hdc);
T_WORD fnGUI_SetTabStop (T_GUI_HDC hdc, T_WORD new_value);
/* Pen and brush support */
#define PT_SOLID    0
#define BT_SOLID    0
T_GUI_PIXEL fnGUI_GetPenColor (T_GUI_HDC hdc);
T_GUI_PIXEL fnGUI_GetBrushColor (T_GUI_HDC hdc);
T_WORD fnGUI_GetPenType (T_GUI_HDC hdc);
T_WORD fnGUI_GetBrushType (T_GUI_HDC hdc);
T_GUI_PIXEL fnGUI_SetPenColor (T_GUI_HDC hdc, T_GUI_PIXEL color);
T_GUI_PIXEL fnGUI_SetBrushColor (T_GUI_HDC hdc, T_GUI_PIXEL color);
T_WORD fnGUI_SetPenType (T_GUI_HDC hdc, T_WORD type);
T_WORD fnGUI_SetBrushType (T_GUI_HDC hdc, T_WORD type);



/****** General drawing support *******************************************************/
T_VOID fnGUI_SetPixel (T_GUI_HDC hdc, T_WORD x, T_WORD y, T_GUI_PIXEL color);
T_VOID fnGUI_SetPixelRGB (T_GUI_HDC hdc, T_WORD x, T_WORD y, T_WORD r, T_WORD g, T_WORD b);
T_GUI_PIXEL fnGUI_GetPixel (T_GUI_HDC hdc, T_WORD x, T_WORD y);
T_VOID fnGUI_GetPixelRGB (T_GUI_HDC hdc, T_WORD x, T_WORD y, T_WORD* r, T_WORD* g, T_WORD* b);
T_GUI_PIXEL fnGUI_RGB2Pixel (T_GUI_HDC hdc, T_WORD r, T_WORD g, T_WORD b);

#define fnGUI_RGB2Index fnGUI_RGB2Pixel
T_VOID fnGUI_LineTo (T_GUI_HDC hdc, T_WORD x, T_WORD y);
T_VOID fnGUI_MoveTo (T_GUI_HDC hdc, T_WORD x, T_WORD y);
T_VOID fnGUI_Polyline(T_GUI_HDC hdc, T_GUI_Point* points, T_WORD point_sum);

T_VOID fnGUI_Circle (T_GUI_HDC hdc, T_WORD x, T_WORD y, T_WORD r);
T_VOID fnGUI_Rectangle (T_GUI_HDC hdc, T_WORD x0, T_WORD y0, T_WORD x1, T_WORD y1);
#if 0
T_VOID fnGUI_Ellipse(T_GUI_HDC hdc,T_WORD x,T_WORD y,T_WORD w,T_WORD h);
T_VOID fnGUI_Arc(T_GUI_HDC hdc,T_WORD x,T_WORD y,T_WORD w,T_WORD h,T_WORD alfa,T_WORD beta);
#else
T_VOID fnGUI_Ellipse(T_GUI_HDC hdc,T_WORD x,T_WORD y,T_WORD rx,T_WORD ry, T_WORD startAngle, T_WORD arcAngle, T_BOOL bFill);
T_VOID fnGUI_Arc(T_GUI_HDC hdc,T_WORD x,T_WORD y,T_WORD ang1,T_WORD ang2,T_WORD r);
T_VOID fnGUI_DrawRoundRect(T_GUI_HDC hdc, T_WORD x, T_WORD y, T_WORD width, T_WORD height, T_WORD arcWidth, T_WORD arcHeight, T_BOOL bFill);
#endif

T_VOID fnGUI_FocusRect (T_GUI_HDC hdc, T_WORD x0, T_WORD y0, T_WORD x1, T_WORD y1);




/****** mapping support *****************************************************************/
#define MM_TEXT               0
#define MM_ANISOTROPIC        1
T_WORD fnGUI_GetMapMode (T_GUI_HDC hdc);
T_VOID fnGUI_GetViewportExt (T_GUI_HDC hdc, T_GUI_Point* pPt);
T_VOID fnGUI_GetViewportOrg (T_GUI_HDC hdc, T_GUI_Point* pPt);
T_VOID fnGUI_GetWindowExt (T_GUI_HDC hdc, T_GUI_Point* pPt);
T_VOID fnGUI_GetWindowOrg (T_GUI_HDC hdc, T_GUI_Point* pPt);
T_VOID fnGUI_SetMapMode (T_GUI_HDC hdc, T_WORD mode);
T_VOID fnGUI_SetViewportExt (T_GUI_HDC hdc, T_GUI_Point* pPt);
T_VOID fnGUI_SetViewportOrg (T_GUI_HDC hdc, T_GUI_Point* pPt);
T_VOID fnGUI_SetWindowExt (T_GUI_HDC hdc, T_GUI_Point* pPt);
T_VOID fnGUI_SetWindowOrg (T_GUI_HDC hdc, T_GUI_Point* pPt);



/****** Coordinate system transfer support *******************************************************/
T_VOID fnGUI_SPtoLP(T_GUI_HDC hdc, T_GUI_Point* pPt);
T_VOID fnGUI_LPtoSP(T_GUI_HDC hdc, T_GUI_Point* pPt);
T_VOID fnGUI_DPtoLP(T_GUI_HDC hdc, T_GUI_Point* pPt);
T_VOID fnGUI_LPtoDP(T_GUI_HDC hdc, T_GUI_Point* pPt);



/****** Clipping support *******************************************************/
T_VOID fnGUI_ExcludeClipRect (T_GUI_HDC hdc, T_WORD left, T_WORD top,
                            T_WORD right, T_WORD bottom);
T_VOID fnGUI_IncludeClipRect (T_GUI_HDC hdc, T_WORD left, T_WORD top,
                              T_WORD right, T_WORD bottom);
T_VOID fnGUI_ClipRectIntersect (T_GUI_HDC hdc, T_CONST T_GUI_Rect* pRect);
T_VOID fnGUI_SelectClipRect (T_GUI_HDC hdc, T_CONST T_GUI_Rect* pRect);
T_VOID fnGUI_SelectClipRegion (T_GUI_HDC hdc, T_CONST T_GUI_ClipRgn* pRgn);
T_VOID fnGUI_GetBoundsRect (T_GUI_HDC hdc, T_GUI_Rect* pRect);
T_BOOL fnGUI_PtVisible (T_GUI_HDC hdc, T_CONST T_GUI_Point* pPt);
T_BOOL fnGUI_RectVisible (T_GUI_HDC hdc, T_CONST T_GUI_Rect* pRect);



/****** bitmap support *******************************************************/
T_VOID fnGUI_SaveScreenBox (T_WORD x, T_WORD y, T_WORD w, T_WORD h, T_VOID* pBuffer);
T_VOID* fnGUI_SaveCoveredScreenBox (T_WORD x, T_WORD y, T_WORD w, T_WORD h);
T_VOID fnGUI_PutSavedBoxOnScreen (T_WORD x, T_WORD y, T_WORD w, T_WORD h, T_VOID* pBuffer);
T_VOID fnGUI_PutSavedBoxOnDC (T_GUI_HDC hdc, T_WORD x, T_WORD y, T_WORD w, T_WORD h, T_VOID* pBuffer);

⌨️ 快捷键说明

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