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

📄 glib.h

📁 基于ARM平台的控制系统,自己带有MINIGUI,可以直接在VC下运行界面演示程序
💻 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 + -