📄 gui.h
字号:
extern GUI_CONST_STORAGE GUI_BITMAP GUI_BitmapCrossL, GUI_BitmapCrossLI;
/*********************************************************************
*
* Text related routines
*
**********************************************************************
*/
void GUI_DispCEOL (void);
void GUI_DispChar (U16 c);
void GUI_DispChars (U16 c, int Cnt);
void GUI_DispCharAt(U16 c, I16P x, I16P y);
void GUI_DispString (const char GUI_UNI_PTR *s);
void GUI_DispStringAt (const char GUI_UNI_PTR *s, int x, int y);
void GUI_DispStringAtCEOL (const char GUI_UNI_PTR *s, int x, int y);
void GUI_DispStringHCenterAt(const char GUI_UNI_PTR *s, int x, int y);
void GUI__DispStringInRect (const char GUI_UNI_PTR *s, GUI_RECT* pRect, int TextAlign, int MaxNumChars);
void GUI_DispStringInRect (const char GUI_UNI_PTR *s, GUI_RECT* pRect, int Flags);
#if GUI_SUPPORT_ROTATION
void GUI_DispStringInRectEx (const char GUI_UNI_PTR *s, GUI_RECT* pRect, int TextAlign, int MaxLen, const GUI_ROTATION * pLCD_Api);
#endif
void GUI_DispStringInRectMax(const char GUI_UNI_PTR *s, GUI_RECT* pRect, int TextAlign, int MaxLen); /* Not to be doc. */
void GUI_DispStringLen (const char GUI_UNI_PTR *s, int Len);
void GUI_GetTextExtend(GUI_RECT* pRect, const char GUI_UNI_PTR * s, int Len);
int GUI_GetYAdjust(void);
int GUI_GetDispPosX(void);
int GUI_GetDispPosY(void);
const GUI_FONT GUI_UNI_PTR * GUI_GetFont(void);
int GUI_GetCharDistX(U16 c);
int GUI_GetStringDistX(const char GUI_UNI_PTR *s);
int GUI_GetFontDistY(void);
int GUI_GetFontSizeY(void);
void GUI_GetFontInfo (const GUI_FONT GUI_UNI_PTR * pFont, GUI_FONTINFO* pfi);
int GUI_GetYSizeOfFont(const GUI_FONT GUI_UNI_PTR * pFont);
int GUI_GetYDistOfFont(const GUI_FONT GUI_UNI_PTR * pFont);
int GUI_GetTextAlign(void);
int GUI_GetTextMode(void);
char GUI_IsInFont(const GUI_FONT GUI_UNI_PTR * pFont, U16 c);
int GUI_SetTextAlign(int Align);
int GUI_SetTextMode(int Mode);
char GUI_SetTextStyle(char Style);
int GUI_SetLBorder(int x);
void GUI_SetOrg(int x, int y);
const GUI_FONT GUI_UNI_PTR * GUI_SetFont(const GUI_FONT GUI_UNI_PTR * pNewFont);
char GUI_GotoXY(int x, int y);
char GUI_GotoX(int x);
char GUI_GotoY(int y);
void GUI_DispNextLine(void);
/*********************************************************************
*
* Position independent fonts
*
**********************************************************************
*/
void GUI_SIF_CreateFont(void * pFontData, GUI_FONT * pFont, const GUI_SIF_TYPE * pFontType);
void GUI_SIF_DeleteFont(GUI_FONT * pFont);
/*********************************************************************
*
* Unicode support
*
**********************************************************************
*/
int GUI_UC_Encode (char* s, U16 Char);
int GUI_UC_GetCharSize (const char GUI_UNI_PTR * s);
U16 GUI_UC_GetCharCode (const char GUI_UNI_PTR * s);
void GUI_UC_SetEncodeNone (void);
void GUI_UC_SetEncodeUTF8 (void);
void GUI_UC_DispString(const U16 GUI_UNI_PTR *s);
void GUI_UC2DB (U16 Code, U8* pOut);
U16 GUI_DB2UC (U8 Byte0, U8 Byte1);
/* *********************************
* *
* GUIVAL.C *
* *
*********************************
*/
void GUI_DispBin (U32 v, U8 Len);
void GUI_DispBinAt(U32 v, I16P x, I16P y, U8 Len);
void GUI_DispDec (I32 v, U8 Len);
void GUI_DispDecAt (I32 v, I16P x, I16P y, U8 Len);
void GUI_DispDecMin(I32 v);
void GUI_DispDecShift(I32 v, U8 Len, U8 Shift);
void GUI_DispDecSpace(I32 v, U8 MaxDigits);
void GUI_DispHex (U32 v, U8 Len);
void GUI_DispHexAt(U32 v, I16P x, I16P y, U8 Len);
void GUI_DispSDec(I32 v, U8 Len);
void GUI_DispSDecShift(I32 v, U8 Len, U8 Shift);
/* *********************************
* *
* GUIVALF.C *
* *
*********************************
Routines to display floating point values. These routines use the routines
defined in the module GUIVAL.C as base routines.
*/
void GUI_DispFloat (float v, char Len);
void GUI_DispFloatFix (float v, char Len, char Fract);
void GUI_DispFloatMin (float v, char Fract);
void GUI_DispSFloatFix(float v, char Len, char Fract);
void GUI_DispSFloatMin(float v, char Fract);
/*********************************************************************
*
* Dynamic memory management
*
**********************************************************************
*/
#if !defined(GUI_ALLOC_ALLOC)
/* diagnostics */
GUI_ALLOC_DATATYPE GUI_ALLOC_GetUsed (void);
GUI_ALLOC_DATATYPE GUI_ALLOC_GetNumFreeBytes(void);
#endif
GUI_HMEM GUI_ALLOC_AllocInit (const void *pInitData, GUI_ALLOC_DATATYPE Size);
GUI_HMEM GUI_ALLOC_AllocNoInit(GUI_ALLOC_DATATYPE size);
GUI_HMEM GUI_ALLOC_AllocZero (GUI_ALLOC_DATATYPE size);
void GUI_ALLOC_Free (GUI_HMEM hMem);
void GUI_ALLOC_FreePtr (GUI_HMEM *phMem);
GUI_ALLOC_DATATYPE GUI_ALLOC_GetSize (GUI_HMEM hMem);
GUI_ALLOC_DATATYPE GUI_ALLOC_GetMaxSize (void);
void* GUI_ALLOC_h2p (GUI_HMEM hMem);
void GUI_ALLOC_Init (void);
GUI_HMEM GUI_ALLOC_Realloc (GUI_HMEM hOld, int NewSize);
/*********************************************************************
*
* Memory device: GUI_MEMDEV
*
**********************************************************************
*/
#define GUI_MEMDEV_HASTRANS 0
#define GUI_MEMDEV_NOTRANS (1<<0)
#if GUI_SUPPORT_DEVICES
typedef GUI_HMEM GUI_MEMDEV_Handle;
typedef void GUI_CALLBACK_VOID_P(void* p);
typedef struct {
GUI_RECT rView, rPrev;
char FirstCall;
} GUI_AUTODEV;
typedef struct {
char DrawFixed;
char IsMeasurement;
} GUI_AUTODEV_INFO;
int GUI_MEMDEV_CreateAuto(GUI_AUTODEV * pAutoDev);
void GUI_MEMDEV_DeleteAuto(GUI_AUTODEV * pAutoDev);
int GUI_MEMDEV_DrawAuto (GUI_AUTODEV * pAutoDev, GUI_AUTODEV_INFO * pAutoDevInfo, GUI_CALLBACK_VOID_P * pfDraw, void * pData);
/* Create a memory device which is compatible to the selected LCD */
GUI_MEMDEV_Handle GUI_MEMDEV_Create (int x0, int y0, int XSize, int YSize);
GUI_MEMDEV_Handle GUI_MEMDEV_CreateEx (int x0, int y0, int XSize, int YSize, int Flags);
GUI_MEMDEV_Handle GUI_MEMDEV_CreateFixed(int x0, int y0, int xsize, int ysize, int Flags,
const tLCDDEV_APIList * pMemDevAPI,
const LCD_API_COLOR_CONV * pColorConvAPI);
void GUI_MEMDEV_Clear (GUI_MEMDEV_Handle hMem);
void GUI_MEMDEV_CopyFromLCD (GUI_MEMDEV_Handle hMem);
void GUI_MEMDEV_CopyFromLCDAA (GUI_MEMDEV_Handle hMem);
void GUI_MEMDEV_CopyToLCD (GUI_MEMDEV_Handle hMem);
void GUI_MEMDEV_CopyToLCDAA (GUI_MEMDEV_Handle hMem);
void GUI_MEMDEV_CopyToLCDAt (GUI_MEMDEV_Handle hMem, int x, int y);
int GUI_MEMDEV_CompareWithLCD(GUI_MEMDEV_Handle hMem, int*px, int*py, int *pExp, int*pAct);
void GUI_MEMDEV_Delete (GUI_MEMDEV_Handle MemDev);
int GUI_MEMDEV_GetXSize (GUI_MEMDEV_Handle hMem);
int GUI_MEMDEV_GetYSize (GUI_MEMDEV_Handle hMem);
void GUI_MEMDEV_ReduceYSize (GUI_MEMDEV_Handle hMem, int YSize);
GUI_MEMDEV_Handle GUI_MEMDEV_Select (GUI_MEMDEV_Handle hMem); /* Select (activate) a particular memory device. */
void GUI_MEMDEV_SetOrg (GUI_MEMDEV_Handle hMem, int x0, int y0);
void GUI_MEMDEV_WriteAt (GUI_MEMDEV_Handle hMem, int x, int y);
void GUI_MEMDEV_Write (GUI_MEMDEV_Handle hMem);
void GUI_MEMDEV_WriteAlphaAt (GUI_MEMDEV_Handle hMem, int Alpha, int x, int y);
void GUI_MEMDEV_WriteAlpha (GUI_MEMDEV_Handle hMem, int Alpha);
void GUI_MEMDEV_WriteExAt (GUI_MEMDEV_Handle hMem, int x, int y, int xMag, int yMag, int Alpha);
void GUI_MEMDEV_WriteEx (GUI_MEMDEV_Handle hMem, int xMag, int yMag, int Alpha);
int GUI_MEMDEV_Draw (GUI_RECT* pRect, GUI_CALLBACK_VOID_P* pfDraw, void* pData, int MemSize, int Flags);
void* GUI_MEMDEV_GetDataPtr (GUI_MEMDEV_Handle hMem);
#endif
void GUI_SelectLCD(void);
unsigned int GUI_SelectLayer(unsigned int Index);
/**************************************************************
*
* Measure device: GUI_MEASDEV
*
***************************************************************
*/
typedef GUI_HMEM GUI_MEASDEV_Handle;
GUI_MEASDEV_Handle GUI_MEASDEV_Create (void);
void GUI_MEASDEV_Delete (GUI_MEASDEV_Handle hMemDev);
void GUI_MEASDEV_Select (GUI_MEASDEV_Handle hMem);
void GUI_MEASDEV_GetRect(GUI_MEASDEV_Handle hMem, GUI_RECT *pRect);
void GUI_MEASDEV_ClearRect(GUI_MEASDEV_Handle hMem);
/************************************************************
*
* Polygon helpers
*
*************************************************************
*/
void GUI_RotatePolygon(GUI_POINT* pDest, const GUI_POINT* pSrc, int NumPoints, float Angle);
void GUI_MagnifyPolygon(GUI_POINT* pDest, const GUI_POINT* pSrc, int NumPoints, int Mag);
void GUI_EnlargePolygon(GUI_POINT* pDest, const GUI_POINT* pSrc, int NumPoints, int Len);
/************************************************************
*
* Streamed bitmap
*
*************************************************************
*/
void GUI_DrawStreamedBitmap(const GUI_BITMAP_STREAM *pBitmapStream, int x, int y);
/************************************************************
*
* BMP-export
*
*************************************************************
*/
typedef void GUI_CALLBACK_VOID_U8_P(U8 Data, void * p);
void GUI_BMP_SerializeEx(GUI_CALLBACK_VOID_U8_P * pfSerialize, int x0, int y0, int xSize, int ySize, void * p);
void GUI_BMP_Serialize (GUI_CALLBACK_VOID_U8_P * pfSerialize, void * p);
/*********************************************************************
*
* Time / execution related routines
*
**********************************************************************
*/
void GUI_Delay (int Period);
int GUI_GetTime(void);
int GUI_Exec(void); /* Execute all jobs ... Return 0 if nothing was done. */
int GUI_Exec1(void); /* Execute one job ... Return 0 if nothing was done. */
/*********************************************************************
*
* MessageBox
*
**********************************************************************
Note: These should be moved into a separate file.
*/
int GUI_MessageBox (const char * sMessage, const char * sCaption, int Flags);
#define GUI_MESSAGEBOX_CF_MOVEABLE (1<<4)
#define GUI_MB_OK 20
#define GUI_MB_WARNING 21
/*********************************************************************
*
* GUI_TIMER module
*
**********************************************************************
*/
typedef struct {
GUI_TIMER_TIME Time;
U32 Context;
} GUI_TIMER_MESSAGE;
typedef GUI_HMEM GUI_TIMER_HANDLE;
typedef void GUI_TIMER_CALLBACK(/*const*/ GUI_TIMER_MESSAGE* pTM);
GUI_TIMER_HANDLE GUI_TIMER_Create (GUI_TIMER_CALLBACK* cb, int Time, U32 Context, int Flags);
void GUI_TIMER_Delete (GUI_TIMER_HANDLE hObj);
/* Methods changing properties */
void GUI_TIMER_SetPeriod (GUI_TIMER_HANDLE hObj, GUI_TIMER_TIME Period);
void GUI_TIMER_SetTime (GUI_TIMER_HANDLE hObj, GUI_TIMER_TIME Period);
void GUI_TIMER_SetDelay (GUI_TIMER_HANDLE hObj, GUI_TIMER_TIME Delay);
void GUI_TIMER_Restart (GUI_TIMER_HANDLE hObj);
int GUI_TIMER_Exec(void);
void GUI_TIMER_Context(GUI_TIMER_HANDLE hObj, U32 Context); //houhh 20061020
/******************************************************************
*
* Anti Aliasing
*
*******************************************************************
*/
void GUI_AA_DisableHiRes (void);
void GUI_AA_EnableHiRes (void);
int GUI_AA_GetFactor (void);
void GUI_AA_SetFactor (int Factor);
void GUI_AA_DrawArc (int x0, int y0, int rx, int ry, int a0, int a1);
void GUI_AA_DrawLine (int x0, int y0, int x1, int y1);
void GUI_AA_DrawPolyOutline(const GUI_POINT* pSrc, int NumPoints, int Thickness, int x, int y);
void GUI_AA_FillCircle (int x0, int y0, int r);
void GUI_AA_FillPolygon (GUI_POINT* pPoints, int NumPoints, int x0, int y0);
/******************************************************************
*
* Keyboard
*
*******************************************************************
*/
/* Message layer */
void GUI_StoreKeyMsg(int Key, int Pressed);
void GUI_SendKeyMsg (int Key, int Pressed);
int GUI_PollKeyMsg(void);
/* Message hook */
typedef int GUI_KEY_MSG_HOOK(int Key, int Pressed);
extern GUI_KEY_MSG_HOOK* GUI_pfKeyMsgHook;
GUI_KEY_MSG_HOOK* GUI_SetKeyMsgHook(GUI_KEY_MSG_HOOK* pHook);
/* Application layer */
int GUI_GetKey(void);
int GUI_WaitKey(void);
void GUI_StoreKey(int c);
void GUI_ClearKeyBuffer(void);
/*********************************************************************
*
* Task syncronisation (depends on configuration)
*/
void GUI_WaitEvent(void);
/*********************************************************************
*
* PID (Pointer input device ... mouse/touch)
*/
void GUI_PID_StoreState(const GUI_PID_STATE *pState);
int GUI_PID_GetState ( GUI_PID_STATE *pState);
/*********************************************************************
*
* Mouse, generic
*/
int GUI_MOUSE_GetState ( GUI_PID_STATE *pState);
void GUI_MOUSE_StoreState(const GUI_PID_STATE *pState);
/*********************************************************************
*
* TOUCH screen, generic
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -