📄 glib.h
字号:
#ifndef __GLIB_H__
#define __GLIB_H__
#include "GHAL.h"
//////////////////////////////////////////////////////////////////
//
// color scheme related
//
//
#define COLOR_FORGROUND 0
#define COLOR_BKGROUND 0
#define COLOR_BORDER 1
#define COLOR_SHADOW 1
typedef struct _NANA_FONT_LIB_
{
unsigned char * GBFontLib; //GB font
int GBFontSize; //GB font is size of [GBFontSize*GBFontSize]
unsigned char * ASCIIFontlib; //ASCII font
int ASCIIFontHeight; //ASCII font height
int * pASCIIFontWidth; //ASCII font width of each character
int * pASCIIFontIndex; //ASCII font offset of each character
}NANA_FONT_LIB,*PNANA_FONT_LIB;
typedef const NANA_FONT_LIB * NANA_FONT;
#ifdef __cplusplus /* Insert start of extern C construct */
extern "C" {
#endif
extern const NANA_FONT_LIB NANA_FONT16x;//细黑
extern const NANA_FONT_LIB NANA_FONT12;
extern const NANA_FONT_LIB NANA_FONT16;//幼圆粗
extern const NANA_FONT_LIB NANA_FONT32;
//Text print
void TextPrintEx(const char * strText,int x,int y,const NANA_FONT_LIB * pfontLib,int ByteLimit,int bNeg);
int GetTextWidth(const char * strText,const NANA_FONT_LIB * pfontLib,int symbol_limit);
#define ALIGN_LEFT 0
#define ALIGN_RIGHT 1
#define ALIGN_MIDDLE 2
void TextBlockPrint(const char * strMultiLineText,int x,int y,int *pwidth,int *pheight,const NANA_FONT_LIB * pfontLib,int bNeg,int align_mode,int LineSpace,int bCalculateRect);
#define TextPrint(strText,x,y,pfontLib,bNeg) TextPrintEx(strText,x,y,pfontLib,0x7fffffff,bNeg)
//basic shape
void RectLine(int left,int top,int right,int bottom,COLOR color);
void RectFill(int left,int top,int right,int bottom,COLOR color);
void Rect(int left,int top,int right,int bottom,COLOR border_color,COLOR fill_color);
void RoundRectangle_Big(int left,int top,int right,int bottom,int nSize);
void RoundRectangle_little(int left,int top,int right,int bottom);
#define ROUND_LEFTTOP 0x01
#define ROUND_LEFTBOTTOM 0x02
#define ROUND_RIGHTTOP 0x04
#define ROUND_RIGHTBOTOM 0x08
#define ROUND_LEFTEDGE (ROUND_LEFTTOP | ROUND_LEFTBOTTOM)
#define ROUND_RIGHTEDGE (ROUND_RIGHTTOP | ROUND_RIGHTBOTOM)
#define ROUND_TOPEDGE (ROUND_LEFTTOP | ROUND_RIGHTTOP)
#define ROUND_BOTOMEDGE (ROUND_LEFTBOTTOM | ROUND_RIGHTBOTOM)
void RoundRectangle_custom(int left,int top,int right,int bottom,int round_mode);
//compatible for old GUI lib
#define RectangleBlock(nStartX,nStartY,nWidth,nHeight,nNeg) RectFill(nStartX,nStartY,(nStartX)+(nWidth),(nStartY)+(nHeight),(!nNeg)?COLOR_BORDER:COLOR_BKGROUND)
#define RectanglLine(nStartX,nStartY,nWidth,nHeigth) RectLine(nStartX,nStartY,(nStartX)+(nWidth),(nStartY)+(nHeigth),COLOR_BORDER)
#define RectFrame(nStartX,nStartY,nWidth,nHeigth) Rect(nStartX,nStartY,(nStartX)+(nWidth),(nStartY)+(nHeigth),COLOR_BORDER,COLOR_BKGROUND)
//UI related
void RoundWindowFrame(int left,int top,int right,int bottom,int bThick,int nTitleHeight);
void ButtonFrame(int nStartX,int nStartY,int nWidth,int nHeigth,int nPressed);
#define DrawHorizontalLine(nStartX,nStartY,nLength,nSize) _DrawHorizontalLine(nStartX,nStartY,nLength,nSize,COLOR_BORDER)
#define DrawVerticalLine(nStartX,nStartY,nLength,nSize) _DrawVerticalLine(nStartX,nStartY,nLength,nSize,COLOR_BORDER)
void _DrawVerticalLine(int nStartX,int nStartY,int nLength,int nSize,COLOR c);
void _DrawHorizontalLine(int nStartX,int nStartY,int nLength,int nSize,COLOR c);
//ICON related
#define ICON16_OPEN 0x01
#define ICON16_SAVE 0x02
#define ICON16_NEW 0x03
#define ICON16_PROPERTY 0x04
#define ICON16_SEARCH 0x05
#define ICON16_SETTING 0x06
#define ICON16_FOLDER 0x07
#define ICON16_OPEN_FOLDER 0x08
#define ICON16_FIND 0x09
#define ICON16_QUESTION 0x0A
#define ICON16_BOOK_CLOSED 0x0B
#define ICON16_BOOK_OPEN 0x0C
#define ICON16_TEXT_FILE 0x0D
#define ICON16_SPEAK 0x0E
#define ICON16_DELETE_FILE 0x0F
#define ICON16_REFREASH_ALL 0x10
#define ICON16_HAND 0x11
#define ICON32_WARNING 0x12
#define ICON32_QUESTION 0x13
#define ICON32_STOP 0x14
#define ICON32_INFORMATION 0x15
#define ICON30_USER 0x16
#define ICON32_KEY 0x17
#define ICON16_PENCEL 0x18
/////////////////////////////////////////////
//@ltq001.2005-8-2.start 添加输入法相关的图标
#define ICON16_CH 0x19
#define ICON16_EN 0x1A
#define ICON16_NU 0x1B
//@ltq001.2005-8-2.end 添加输入法相关的图标
/////////////////////////////////////////////
#define ICON16_SETTIING 0x1C
#define ICON_BOHNLOGO 0x1D
#define ICON16_CLOSE 0x1E
#define ICON32_DISPSET 0x1F
#define ICON32_FIXMODE 0x20
#define ICON32_HISLOG 0x21
#define ICON32_NETWORK 0x22
#define ICON32_USERPASS 0x23
#define ICON32_WARNNING 0x24
#define ICON32_FAN 0x25
#define ICON32_COMPRESSOR 0x26
#define ICON32_SENSOR 0x27
#define ICON16_ADJUP 0x28
#define ICON16_ADJDOWN 0x29
#define ICON16_PASSKEY 0x2A
#define ICON32_OC 0x2B
#define ICON16_OC 0x2C
#define ICON16_SECOND 0x2D
#define ICON32_ADMIN 0x2E
#define ICON32_OVERCOLD 0x2F
#define ICON20_SCRUP_U 0x30
#define ICON20_SCRUP_D 0x31
#define ICON20_SCRDOWN_U 0x32
#define ICON20_SCRDOWN_D 0x33
typedef struct _ICON_
{
int width;
int height;
const unsigned char *pBitmap;
}ICON;
void DrawICON(int ICON_ID,int x,int y,int bNeg);
ICON * GetIcon(int ICON_ID);
extern char ASSERT_STR[100];
#define DEBUG_Assert(X) if(!(X)){ TextPrint("ASSERT FAILED!",0,0,&NANA_FONT12,0);\
sprintf(ASSERT_STR," File:%s",__FILE__);\
TextPrint(ASSERT_STR,0,16,&NANA_FONT12,0);\
sprintf(ASSERT_STR," Line:%d",__LINE__);\
TextPrint(ASSERT_STR,0,32,&NANA_FONT12,0);\
GHAL_RefreshAll(); while(1){};}
#ifdef __cplusplus /* Insert start of extern C construct */
}
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -