📄 glib.h
字号:
/*
;************************************************************************************************************
;* 北京达盛科技有限公司
;* 研 发 部
;*
;* http://www.techsine.com
;*
;*--------------------------------------------- 文件信息 ----------------------------------------------------
;*
;* 文件名称 : Glib.h
;* 文件功能 : 该文件为GUI的图形显示程序API。
;* 补充说明 :
;*-------------------------------------------- 最新版本信息 -------------------------------------------------
;* 修改作者 : ARM开发小组
;* 修改日期 : 2004/00/00
;* 版本声明 : V1.0.1
;*-------------------------------------------- 历史版本信息 -------------------------------------------------
;* 文件作者 : ARM开发小组
;* 创建日期 : 2004/07/07
;* 版本声明 : v1.0.0
;*-----------------------------------------------------------------------------------------------------------
*************************************************************************************************************
*/
#include"data.h"
#define NULL 0
/*
*************************************************************************************************************
*** 部分颜色定义 ***
*************************************************************************************************************
*/
#define GUI_BLACK 0x000000
#define GUI_BLUE 0x0000FF
#define GUI_GREEN 0x00FF00
#define GUI_CYAN 0xf0f000
#define GUI_RED 0xFF0000
#define GUI_MAGENTA 0x800080
#define GUI_BROWN 0x2020a0
#define GUI_DARKGRAY 0x404040
#define GUI_GRAY 0x808080
#define GUI_LIGHTGRAY 0xd0d0d0
#define GUI_LIGHTBLUE 0xf08080
#define GUI_LIGHTGREEN 0x80f080
#define GUI_LIGHTCYAN 0x80f0f0
#define GUI_LIGHTRED 0x8080f0
#define GUI_LIGHTMAGENTA 0xf080f0
#define GUI_YELLOW 0xf0f000
#define GUI_WHITE 0xffffff
/*
*************************************************************************************************************
*** 常量定义 ***
*************************************************************************************************************
*/
#define LCD_BPP 8 //LCD的每像素的位数
#define XMAX 320 // LCD宽
#define YMAX 240 // LCD高
/*
*************************************************************************************************************
*** 数字常量定义 ***
*************************************************************************************************************
*/
#define ________ 0x0
#define _______W 0x1
#define ______W_ 0x2
#define ______WW 0x3
#define _____W__ 0x4
#define _____W_W 0x5
#define _____WW_ 0x6
#define _____WWW 0x7
#define ____W___ 0x8
#define ____W__W 0x9
#define ____W_W_ 0xa
#define ____W_WW 0xb
#define ____WW__ 0xc
#define ____WW_W 0xd
#define ____WWW_ 0xe
#define ____WWWW 0xf
#define ___W____ 0x10
#define ___W___W 0x11
#define ___W__W_ 0x12
#define ___W__WW 0x13
#define ___W_W__ 0x14
#define ___W_W_W 0x15
#define ___W_WW_ 0x16
#define ___W_WWW 0x17
#define ___WW___ 0x18
#define ___WW__W 0x19
#define ___WW_W_ 0x1a
#define ___WW_WW 0x1b
#define ___WWW__ 0x1c
#define ___WWW_W 0x1d
#define ___WWWW_ 0x1e
#define ___WWWWW 0x1f
#define __W_____ 0x20
#define __W____W 0x21
#define __W___W_ 0x22
#define __W___WW 0x23
#define __W__W__ 0x24
#define __W__W_W 0x25
#define __W__WW_ 0x26
#define __W__WWW 0x27
#define __W_W___ 0x28
#define __W_W__W 0x29
#define __W_W_W_ 0x2a
#define __W_W_WW 0x2b
#define __W_WW__ 0x2c
#define __W_WW_W 0x2d
#define __W_WWW_ 0x2e
#define __W_WWWW 0x2f
#define __WW____ 0x30
#define __WW___W 0x31
#define __WW__W_ 0x32
#define __WW__WW 0x33
#define __WW_W__ 0x34
#define __WW_W_W 0x35
#define __WW_WW_ 0x36
#define __WW_WWW 0x37
#define __WWW___ 0x38
#define __WWW__W 0x39
#define __WWW_W_ 0x3a
#define __WWW_WW 0x3b
#define __WWWW__ 0x3c
#define __WWWW_W 0x3d
#define __WWWWW_ 0x3e
#define __WWWWWW 0x3f
#define _W______ 0x40
#define _W_____W 0x41
#define _W____W_ 0x42
#define _W____WW 0x43
#define _W___W__ 0x44
#define _W___W_W 0x45
#define _W___WW_ 0x46
#define _W___WWW 0x47
#define _W__W___ 0x48
#define _W__W__W 0x49
#define _W__W_W_ 0x4a
#define _W__W_WW 0x4b
#define _W__WW__ 0x4c
#define _W__WW_W 0x4d
#define _W__WWW_ 0x4e
#define _W__WWWW 0x4f
#define _W_W____ 0x50
#define _W_W___W 0x51
#define _W_W__W_ 0x52
#define _W_W__WW 0x53
#define _W_W_W__ 0x54
#define _W_W_W_W 0x55
#define _W_W_WW_ 0x56
#define _W_W_WWW 0x57
#define _W_WW___ 0x58
#define _W_WW__W 0x59
#define _W_WW_W_ 0x5a
#define _W_WW_WW 0x5b
#define _W_WWW__ 0x5c
#define _W_WWW_W 0x5d
#define _W_WWWW_ 0x5e
#define _W_WWWWW 0x5f
#define _WW_____ 0x60
#define _WW____W 0x61
#define _WW___W_ 0x62
#define _WW___WW 0x63
#define _WW__W__ 0x64
#define _WW__W_W 0x65
#define _WW__WW_ 0x66
#define _WW__WWW 0x67
#define _WW_W___ 0x68
#define _WW_W__W 0x69
#define _WW_W_W_ 0x6a
#define _WW_W_WW 0x6b
#define _WW_WW__ 0x6c
#define _WW_WW_W 0x6d
#define _WW_WWW_ 0x6e
#define _WW_WWWW 0x6f
#define _WWW____ 0x70
#define _WWW___W 0x71
#define _WWW__W_ 0x72
#define _WWW__WW 0x73
#define _WWW_W__ 0x74
#define _WWW_W_W 0x75
#define _WWW_WW_ 0x76
#define _WWW_WWW 0x77
#define _WWWW___ 0x78
#define _WWWW__W 0x79
#define _WWWW_W_ 0x7a
#define _WWWW_WW 0x7b
#define _WWWWW__ 0x7c
#define _WWWWW_W 0x7d
#define _WWWWWW_ 0x7e
#define _WWWWWWW 0x7f
#define W_______ 0x80
#define W______W 0x81
#define W_____W_ 0x82
#define W_____WW 0x83
#define W____W__ 0x84
#define W____W_W 0x85
#define W____WW_ 0x86
#define W____WWW 0x87
#define W___W___ 0x88
#define W___W__W 0x89
#define W___W_W_ 0x8a
#define W___W_WW 0x8b
#define W___WW__ 0x8c
#define W___WW_W 0x8d
#define W___WWW_ 0x8e
#define W___WWWW 0x8f
#define W__W____ 0x90
#define W__W___W 0x91
#define W__W__W_ 0x92
#define W__W__WW 0x93
#define W__W_W__ 0x94
#define W__W_W_W 0x95
#define W__W_WW_ 0x96
#define W__W_WWW 0x97
#define W__WW___ 0x98
#define W__WW__W 0x99
#define W__WW_W_ 0x9a
#define W__WW_WW 0x9b
#define W__WWW__ 0x9c
#define W__WWW_W 0x9d
#define W__WWWW_ 0x9e
#define W__WWWWW 0x9f
#define W_W_____ 0xa0
#define W_W____W 0xa1
#define W_W___W_ 0xa2
#define W_W___WW 0xa3
#define W_W__W__ 0xa4
#define W_W__W_W 0xa5
#define W_W__WW_ 0xa6
#define W_W__WWW 0xa7
#define W_W_W___ 0xa8
#define W_W_W__W 0xa9
#define W_W_W_W_ 0xaa
#define W_W_W_WW 0xab
#define W_W_WW__ 0xac
#define W_W_WW_W 0xad
#define W_W_WWW_ 0xae
#define W_W_WWWW 0xaf
#define W_WW____ 0xb0
#define W_WW___W 0xb1
#define W_WW__W_ 0xb2
#define W_WW__WW 0xb3
#define W_WW_W__ 0xb4
#define W_WW_W_W 0xb5
#define W_WW_WW_ 0xb6
#define W_WW_WWW 0xb7
#define W_WWW___ 0xb8
#define W_WWW__W 0xb9
#define W_WWW_W_ 0xba
#define W_WWW_WW 0xbb
#define W_WWWW__ 0xbc
#define W_WWWW_W 0xbd
#define W_WWWWW_ 0xbe
#define W_WWWWWW 0xbf
#define WW______ 0xc0
#define WW_____W 0xc1
#define WW____W_ 0xc2
#define WW____WW 0xc3
#define WW___W__ 0xc4
#define WW___W_W 0xc5
#define WW___WW_ 0xc6
#define WW___WWW 0xc7
#define WW__W___ 0xc8
#define WW__W__W 0xc9
#define WW__W_W_ 0xca
#define WW__W_WW 0xcb
#define WW__WW__ 0xcc
#define WW__WW_W 0xcd
#define WW__WWW_ 0xce
#define WW__WWWW 0xcf
#define WW_W____ 0xd0
#define WW_W___W 0xd1
#define WW_W__W_ 0xd2
#define WW_W__WW 0xd3
#define WW_W_W__ 0xd4
#define WW_W_W_W 0xd5
#define WW_W_WW_ 0xd6
#define WW_W_WWW 0xd7
#define WW_WW___ 0xd8
#define WW_WW__W 0xd9
#define WW_WW_W_ 0xda
#define WW_WW_WW 0xdb
#define WW_WWW__ 0xdc
#define WW_WWW_W 0xdd
#define WW_WWWW_ 0xde
#define WW_WWWWW 0xdf
#define WWW_____ 0xe0
#define WWW____W 0xe1
#define WWW___W_ 0xe2
#define WWW___WW 0xe3
#define WWW__W__ 0xe4
#define WWW__W_W 0xe5
#define WWW__WW_ 0xe6
#define WWW__WWW 0xe7
#define WWW_W___ 0xe8
#define WWW_W__W 0xe9
#define WWW_W_W_ 0xea
#define WWW_W_WW 0xeb
#define WWW_WW__ 0xec
#define WWW_WW_W 0xed
#define WWW_WWW_ 0xee
#define WWW_WWWW 0xef
#define WWWW____ 0xf0
#define WWWW___W 0xf1
#define WWWW__W_ 0xf2
#define WWWW__WW 0xf3
#define WWWW_W__ 0xf4
#define WWWW_W_W 0xf5
#define WWWW_WW_ 0xf6
#define WWWW_WWW 0xf7
#define WWWWW___ 0xf8
#define WWWWW__W 0xf9
#define WWWWW_W_ 0xfa
#define WWWWW_WW 0xfb
#define WWWWWW__ 0xfc
#define WWWWWW_W 0xfd
#define WWWWWWW_ 0xfe
#define WWWWWWWW 0xff
/*
*************************************************************************************************************
*** 重定义数据结构 ***
*************************************************************************************************************
*/
typedef struct{
void* pData;
U16 FirstChar;
U16 LastChar;
U8 XSize;
U8 XDist;
U8 BytesPerLine;
}GUI_FONT_MONO ;
typedef struct{
U8 YSize;
U8 YDist;
U8 XMag;
U8 YMag;
const GUI_FONT_MONO* pMono;
}GUI_FONT;
typedef struct {
const GUI_FONT* pAFont;
I16P LBorder;
I16P DispPosX;
I16P DispPosY;
}Context;
typedef struct {
I16 x0;
I16 y0;
I16 x1;
I16 y1;
}GUI_RECT;
/*
*************************************************************************************************************
*** 中文支持定义 ***
*************************************************************************************************************
*/
#define CHINESE_STARTCHAR 0xAA
#define CHINESE_ENDCHAR 0xBB
#define CN_start "\xAA"
#define CN_end "\xBB"
/*
*************************************************************************************************************
** 用户调用显示的API **
*************************************************************************************************************
*/
extern U32 GUI_Init (void); //GUI初始化
extern void Draw_Point (U16 x, U16 y); //绘制点API
extern U32 Get_Point (U16 x, U16 y); //得到点API
extern void Draw_HLine (U16 y0, U16 x0, U16 x1); //绘制水平线API
extern void Draw_VLine (U16 x0, U16 y0, U16 y1); //绘制竖直线API
extern void Draw_Line (I32 x1,I32 y1,I32 x2,I32 y2); //绘制线API
extern void Draw_Circle (U32 x0, U32 y0, U32 r); //绘制圆API
extern void Fill_Circle (U16 x0, U16 y0, U16 r); //填充圆API
extern void Fill_Rect (U16 x0, U16 y0, U16 x1, U16 y1); //填充区域API
extern void Set_Color (U32 color); //设定前景颜色API
extern void Set_BkColor (U32 color); //设定背景颜色API
extern void Set_Font (GUI_FONT* pFont); //设定字体类型API
extern void Disp_String (const I8 *s, I16 x, I16 y); //显示字体API
/*
************************************************************************************************************
* 中层绘图API *
************************************************************************************************************
*/
extern void LCD_SetColor (U16 PhyColor);
extern void LCD_SetBkColor (U16 PhyColor);
extern U16 LCD_Init (U8 Lcd_Bpp);
extern void LCD_DrawPixel (U16 x, U16 y);
extern U32 LCD_GetPixel (U16 x, U16 y);
extern void LCD_DrawHLine (U16 x0, U16 y, U16 x1);
extern void LCD_DrawVLine (U16 x, U16 y0, U16 y1);
extern void LCD_FillRect (U16 x0, U16 y0, U16 x1, U16 y1);
extern void LCD_L0_DrawBitmap (U16 x0, U16 y0,U16 xsize, U16 ysize,U16 BitsPerPixel,U16 BytesPerLine,
const U8* pData, U16 Diff,
const U16* pTrans);
/*
************************************************************************************************************
* 键盘API *
************************************************************************************************************
*/
/* extern void Key_Init (void);
extern I32 GUI_GetKey (void);
extern void GUI_StoreKey (I32 key);
extern void Check_Init (void);
extern I32 GUI_WaitKey (void);
extern void GUI_ClearKeyBuffer(void);*/
/*
************************************************************************************************************
* 时间API *
************************************************************************************************************
*/
/* extern void GUI_Delay (I32 period);
extern I32 Get_Time (void); */
/*
*************************************************************************************************************
*** 键值定义 ***
*************************************************************************************************************
*/
/* #define GUI_KEY_BACKSPACE 8
#define GUI_KEY_TAB 9
#define GUI_KEY_ENTER 13
#define GUI_KEY_LEFT 16
#define GUI_KEY_UP 17
#define GUI_KEY_RIGHT 18
#define GUI_KEY_DOWN 19
#define GUI_KEY_HOME 23
#define GUI_KEY_END 24
#define GUI_KEY_SHIFT 25
#define GUI_KEY_CONTROL 26
#define GUI_KEY_ESCAPE 27
#define GUI_KEY_INSERT 29
#define GUI_KEY_DELETE 30
#define GUI_KEY_START 301
*/
/*
*****************************************************************************************************************
** 结束文件 **
*****************************************************************************************************************
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -