📄 gui_protected.h
字号:
/*
*********************************************************************************************************
* uC/GUI V3.98
* Universal graphic software for embedded applications
*
* (c) Copyright 2002, Micrium Inc., Weston, FL
* (c) Copyright 2002, SEGGER Microcontroller Systeme GmbH
*
* 礐/GUI is protected by international copyright laws. Knowledge of the
* source code may not be used to write a similar product. This file may
* only be used in accordance with a license and should not be redistributed
* in any way. We appreciate your understanding and fairness.
*
----------------------------------------------------------------------
File : GUI_Protected.h
Purpose : GUI internal declarations
---------------------------END-OF-HEADER------------------------------
*/
#ifndef GUI_PROTECTED_H
#define GUI_PROTECTED_H
#include "GUI.h"
#include "LCD_Protected.h"
#include "GUIDebug.h"
#if GUI_WINSUPPORT
#include "WM_GUI.h"
#endif
#if defined(__cplusplus)
extern "C" { /* Make sure we have C-declarations in C++ programs */
#endif
/**********************************************************************
*
* Defaults for config switches
*
***********************************************************************
The config switches below do not affect the interface in GUI.h and
are therefor not required to be in GUI.h.
*/
/* Short address area.
For most compilers, this is "near" or "__near"
We do not use this except for some CPUs which we know to always have some
near memory, because the GUI_Context ans some other data will be declared
to be in this short address (near) memory area as it has a major effect
on performance.
Please define in GUIConf.h (if you want to use it)
*/
#ifndef GUI_SADDR
#define GUI_SADDR
#endif
#ifndef GUI_DEFAULT_FONT
#define GUI_DEFAULT_FONT &GUI_Font6x8
#endif
#ifndef GUI_DEFAULT_CURSOR
#define GUI_DEFAULT_CURSOR &GUI_CursorArrowM
#endif
#ifndef GUI_DEFAULT_BKCOLOR
#define GUI_DEFAULT_BKCOLOR GUI_BLACK
#endif
#ifndef GUI_DEFAULT_COLOR
#define GUI_DEFAULT_COLOR GUI_WHITE
#endif
#ifndef GUI_X_SIGNAL_EVENT
#define GUI_X_SIGNAL_EVENT()
#endif
#ifndef GUI_X_WAIT_EVENT
#define GUI_X_WAIT_EVENT() GUI_X_ExecIdle()
#endif
/* *********************************
* *
* Angles *
* *
*********************************
*/
#define GUI_45DEG 512
#define GUI_90DEG (2*GUI_45DEG)
#define GUI_180DEG (4*GUI_45DEG)
#define GUI_360DEG (8*GUI_45DEG)
/*****************************************************
*
* Locking checks
*
******************************************************
*/
#if defined (WIN32) && defined (_DEBUG) && GUI_OS
#define GUI_ASSERT_LOCK() GUITASK_AssertLock()
#define GUI_ASSERT_NO_LOCK() GUITASK_AssertNoLock()
void GUITASK_AssertLock(void);
void GUITASK_AssertNoLock(void);
#else
#define GUI_ASSERT_LOCK()
#define GUI_ASSERT_NO_LOCK()
#endif
/*****************************************************
*
* Usage internals
*
******************************************************
*/
typedef GUI_HMEM GUI_USAGE_Handle;
typedef struct tsUSAGE_APIList tUSAGE_APIList;
typedef struct GUI_Usage GUI_USAGE;
#define GUI_USAGE_h GUI_USAGE_Handle
typedef GUI_USAGE_h tUSAGE_CreateCompatible(GUI_USAGE* p);
typedef void tUSAGE_AddPixel (GUI_USAGE* p, int x, int y);
typedef void tUSAGE_AddHLine (GUI_USAGE* p, int x0, int y0, int len);
typedef void tUSAGE_Clear (GUI_USAGE* p);
typedef void tUSAGE_Delete (GUI_USAGE_h h);
typedef int tUSAGE_GetNextDirty (GUI_USAGE* p, int *pxOff, int yOff);
#define GUI_USAGE_H2P(h) ((GUI_USAGE*)GUI_ALLOC_h2p(h))
void GUI_USAGE_DecUseCnt(GUI_USAGE_Handle hUsage);
GUI_USAGE_Handle GUI_USAGE_BM_Create(int x0, int y0, int xsize, int ysize, int Flags);
void GUI_USAGE_Select(GUI_USAGE_Handle hUsage);
void GUI_USAGE_AddRect(GUI_USAGE* pUsage, int x0, int y0, int xSize, int ySize);
#define GUI_USAGE_AddPixel(p, x,y) p->pAPI->pfAddPixel(p,x,y)
#define GUI_USAGE_AddHLine(p,x,y,len) p->pAPI->pfAddHLine(p,x,y,len)
#define GUI_USAGE_Clear(p) p->pAPI->pfClear(p)
#define GUI_USAGE_Delete(p) p->pAPI->pfDelete(p)
#define GUI_USAGE_GetNextDirty(p,pxOff, yOff) p->pAPI->pfGetNextDirty(p,pxOff, yOff)
struct tsUSAGE_APIList {
tUSAGE_AddPixel* pfAddPixel;
tUSAGE_AddHLine* pfAddHLine;
tUSAGE_Clear* pfClear;
tUSAGE_CreateCompatible* pfCreateCompatible;
tUSAGE_Delete* pfDelete;
tUSAGE_GetNextDirty* pfGetNextDirty;
} ;
struct GUI_Usage {
I16P x0, y0, XSize, YSize;
const tUSAGE_APIList *pAPI;
I16 UseCnt;
};
/*****************************************************
*
* GUI_MEMDEV
*
******************************************************
*/
#if GUI_SUPPORT_MEMDEV
typedef struct {
I16P x0, y0, XSize, YSize;
int NumColors;
unsigned BytesPerLine;
unsigned BitsPerPixel;
unsigned LayerIndex;
GUI_HMEM hUsage;
tLCDDEV_Color2Index* pfColor2Index;
tLCDDEV_Index2Color* pfIndex2Color;
tLCDDEV_GetIndexMask* pfGetIndexMask;
const tLCDDEV_APIList* pAPIList;
} GUI_MEMDEV;
#define GUI_MEMDEV_H2P(h) ((GUI_MEMDEV*)GUI_ALLOC_h2p(h))
void GUI_MEMDEV__CopyFromLCD (GUI_MEMDEV_Handle hMem);
void GUI_MEMDEV__GetRect (GUI_RECT* pRect);
unsigned GUI_MEMDEV__Color2Index (LCD_COLOR Color);
LCD_COLOR GUI_MEMDEV__Index2Color (int Index);
unsigned int GUI_MEMDEV__GetIndexMask(void);
GUI_MEMDEV_Handle GUI_MEMDEV__CreateFixed(int x0, int y0, int xsize, int ysize, int Flags
,const tLCDDEV_APIList * pMemDevAPI
,tLCDDEV_Color2Index* pfColor2Index
,tLCDDEV_Index2Color* pfIndex2Color
,tLCDDEV_GetIndexMask* pfGetIndexMask);
#endif
/*******************************************************************
*
* LCD_HL_ level defines
*
********************************************************************
*/
#if GUI_SUPPORT_AA
#define LCD_HL_DrawHLine GUI_Context.pLCD_HL->pfDrawHLine
#define LCD_HL_DrawPixel GUI_Context.pLCD_HL->pfDrawPixel
#else
#define LCD_HL_DrawHLine LCD_DrawHLine
#define LCD_HL_DrawPixel LCD_DrawPixel
#endif
/*********************************************************************
*
* Helper functions
*
***********************************************************************
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -