GUIslice  0.16.0
Embedded GUI in C
GUIslice.c File Reference
#include "GUIslice_config.h"
#include "GUIslice.h"
#include "GUIslice_drv.h"
#include <stdio.h>
#include <pgmspace.h>
#include <stdarg.h>
#include "GUIslice_version.h"
Include dependency graph for GUIslice.c:

Enumerations

enum  gslc_teDebugPrintState {
  GSLC_S_DEBUG_PRINT_NORM, GSLC_S_DEBUG_PRINT_TOKEN, GSLC_S_DEBUG_PRINT_UINT16, GSLC_S_DEBUG_PRINT_CHAR,
  GSLC_S_DEBUG_PRINT_STR, GSLC_S_DEBUG_PRINT_STR_P
}
 

Functions

char * gslc_GetVer (gslc_tsGui *pGui)
 Get the GUIslice version number. More...
 
const char * gslc_GetNameDisp (gslc_tsGui *pGui)
 Get the GUIslice display driver name. More...
 
const char * gslc_GetNameTouch (gslc_tsGui *pGui)
 Get the GUIslice touch driver name. More...
 
void * gslc_GetDriverDisp (gslc_tsGui *pGui)
 Get the native display driver instance. More...
 
void * gslc_GetDriverTouch (gslc_tsGui *pGui)
 Get the native touch driver instance. More...
 
bool gslc_Init (gslc_tsGui *pGui, void *pvDriver, gslc_tsPage *asPage, uint8_t nMaxPage, gslc_tsFont *asFont, uint8_t nMaxFont)
 Initialize the GUIslice library. More...
 
void gslc_SetPinPollFunc (gslc_tsGui *pGui, GSLC_CB_PIN_POLL pfunc)
 
void gslc_InitInputMap (gslc_tsGui *pGui, gslc_tsInputMap *asInputMap, uint8_t nInputMapMax)
 
void gslc_InputMapAdd (gslc_tsGui *pGui, gslc_teInputRawEvent eInputEvent, int16_t nInputVal, gslc_teAction eAction, int16_t nActionVal)
 
bool gslc_InputMapLookup (gslc_tsGui *pGui, gslc_teInputRawEvent eInputEvent, int16_t nInputVal, gslc_teAction *peAction, int16_t *pnActionVal)
 
void gslc_InitDebug (GSLC_CB_DEBUG_OUT pfunc)
 Initialize debug output. More...
 
void gslc_DebugPrintf (const char *pFmt,...)
 Optimized printf routine for GUIslice debug/error output. More...
 
void gslc_Quit (gslc_tsGui *pGui)
 Exit the GUIslice environment. More...
 
void gslc_Update (gslc_tsGui *pGui)
 Perform main GUIslice handling functions. More...
 
gslc_tsEvent gslc_EventCreate (gslc_tsGui *pGui, gslc_teEventType eType, uint8_t nSubType, void *pvScope, void *pvData)
 Create an event structure. More...
 
bool gslc_IsInRect (int16_t nSelX, int16_t nSelY, gslc_tsRect rRect)
 Determine if a coordinate is inside of a rectangular region. More...
 
bool gslc_IsInWH (int16_t nSelX, int16_t nSelY, uint16_t nWidth, uint16_t nHeight)
 Determine if a coordinate is inside of a width x height region. More...
 
void gslc_OrderCoord (int16_t *pnX0, int16_t *pnY0, int16_t *pnX1, int16_t *pnY1)
 
bool gslc_ClipPt (gslc_tsRect *pClipRect, int16_t nX, int16_t nY)
 Perform basic clipping of a single point to a clipping region. More...
 
bool gslc_ClipLine (gslc_tsRect *pClipRect, int16_t *pnX0, int16_t *pnY0, int16_t *pnX1, int16_t *pnY1)
 Perform basic clipping of a line to a clipping region. More...
 
bool gslc_ClipRect (gslc_tsRect *pClipRect, gslc_tsRect *pRect)
 Perform basic clipping of a rectangle to a clipping region. More...
 
gslc_tsImgRef gslc_ResetImage ()
 Create a blank image reference structure. More...
 
gslc_tsImgRef gslc_GetImageFromFile (const char *pFname, gslc_teImgRefFlags eFmt)
 Create an image reference to a bitmap file in LINUX filesystem. More...
 
gslc_tsImgRef gslc_GetImageFromSD (const char *pFname, gslc_teImgRefFlags eFmt)
 Create an image reference to a bitmap file in SD card. More...
 
gslc_tsImgRef gslc_GetImageFromRam (unsigned char *pImgBuf, gslc_teImgRefFlags eFmt)
 Create an image reference to a bitmap in SRAM. More...
 
gslc_tsImgRef gslc_GetImageFromProg (const unsigned char *pImgBuf, gslc_teImgRefFlags eFmt)
 Create an image reference to a bitmap in program memory (PROGMEM) More...
 
int16_t gslc_sinFX (int16_t n64Ang)
 Calculate fixed-point sine function from fractional degrees. More...
 
int16_t gslc_cosFX (int16_t n64Ang)
 Calculate fixed-point cosine function from fractional degrees. More...
 
void gslc_PolarToXY (uint16_t nRad, int16_t n64Ang, int16_t *nDX, int16_t *nDY)
 Convert polar coordinate to cartesian. More...
 
gslc_tsColor gslc_ColorBlend2 (gslc_tsColor colStart, gslc_tsColor colEnd, uint16_t nMidAmt, uint16_t nBlendAmt)
 Create a color based on a blend between two colors. More...
 
gslc_tsColor gslc_ColorBlend3 (gslc_tsColor colStart, gslc_tsColor colMid, gslc_tsColor colEnd, uint16_t nMidAmt, uint16_t nBlendAmt)
 Create a color based on a blend between three colors. More...
 
bool gslc_ColorEqual (gslc_tsColor a, gslc_tsColor b)
 Check whether two colors are equal. More...
 
void gslc_DrawSetPixel (gslc_tsGui *pGui, int16_t nX, int16_t nY, gslc_tsColor nCol)
 Set a pixel on the active screen to the given color with lock. More...
 
void gslc_DrawLine (gslc_tsGui *pGui, int16_t nX0, int16_t nY0, int16_t nX1, int16_t nY1, gslc_tsColor nCol)
 Draw an arbitrary line using Bresenham's algorithm. More...
 
void gslc_DrawLineH (gslc_tsGui *pGui, int16_t nX, int16_t nY, uint16_t nW, gslc_tsColor nCol)
 Draw a horizontal line. More...
 
void gslc_DrawLineV (gslc_tsGui *pGui, int16_t nX, int16_t nY, uint16_t nH, gslc_tsColor nCol)
 Draw a vertical line. More...
 
void gslc_DrawLinePolar (gslc_tsGui *pGui, int16_t nX, int16_t nY, uint16_t nRadStart, uint16_t nRadEnd, int16_t n64Ang, gslc_tsColor nCol)
 Draw a polar ray segment. More...
 
void gslc_DrawFrameRect (gslc_tsGui *pGui, gslc_tsRect rRect, gslc_tsColor nCol)
 Draw a framed rectangle. More...
 
void gslc_DrawFrameRoundRect (gslc_tsGui *pGui, gslc_tsRect rRect, int16_t nRadius, gslc_tsColor nCol)
 Draw a framed rounded rectangle. More...
 
void gslc_DrawFillRect (gslc_tsGui *pGui, gslc_tsRect rRect, gslc_tsColor nCol)
 Draw a filled rectangle. More...
 
void gslc_DrawFillRoundRect (gslc_tsGui *pGui, gslc_tsRect rRect, int16_t nRadius, gslc_tsColor nCol)
 Draw a filled rounded rectangle. More...
 
gslc_tsRect gslc_ExpandRect (gslc_tsRect rRect, int16_t nExpandW, int16_t nExpandH)
 Expand or contract a rectangle in width and/or height (equal amounts on both side), based on the centerpoint of the rectangle. More...
 
void gslc_UnionRect (gslc_tsRect *pRect, gslc_tsRect rAddRect)
 Expand a rect to include another rect. More...
 
void gslc_InvalidateRgnReset (gslc_tsGui *pGui)
 Reset the invalidation region. More...
 
void gslc_InvalidateRgnScreen (gslc_tsGui *pGui)
 Mark the entire screen as invalidated. More...
 
void gslc_InvalidateRgnPage (gslc_tsGui *pGui, gslc_tsPage *pPage)
 Include an entire page (eg. More...
 
void gslc_InvalidateRgnAdd (gslc_tsGui *pGui, gslc_tsRect rAddRect)
 Add a rectangular region to the invalidation region. More...
 
void gslc_DrawFrameCircle (gslc_tsGui *pGui, int16_t nMidX, int16_t nMidY, uint16_t nRadius, gslc_tsColor nCol)
 Draw a framed circle. More...
 
void gslc_DrawFillCircle (gslc_tsGui *pGui, int16_t nMidX, int16_t nMidY, uint16_t nRadius, gslc_tsColor nCol)
 Draw a filled circle. More...
 
void gslc_DrawFrameTriangle (gslc_tsGui *pGui, int16_t nX0, int16_t nY0, int16_t nX1, int16_t nY1, int16_t nX2, int16_t nY2, gslc_tsColor nCol)
 Draw a framed triangle. More...
 
void gslc_SwapCoords (int16_t *pnXa, int16_t *pnYa, int16_t *pnXb, int16_t *pnYb)
 
void gslc_DrawFillTriangle (gslc_tsGui *pGui, int16_t nX0, int16_t nY0, int16_t nX1, int16_t nY1, int16_t nX2, int16_t nY2, gslc_tsColor nCol)
 Draw a filled triangle. More...
 
void gslc_DrawFrameQuad (gslc_tsGui *pGui, gslc_tsPt *psPt, gslc_tsColor nCol)
 Draw a framed quadrilateral. More...
 
void gslc_DrawFillQuad (gslc_tsGui *pGui, gslc_tsPt *psPt, gslc_tsColor nCol)
 Draw a filled quadrilateral. More...
 
void gslc_DrawFillSectorBase (gslc_tsGui *pGui, int16_t nQuality, int16_t nMidX, int16_t nMidY, int16_t nRad1, int16_t nRad2, gslc_tsColor cArcStart, gslc_tsColor cArcEnd, bool bGradient, int16_t nAngGradStart, int16_t nAngGradRange, int16_t nAngSecStart, int16_t nAngSecEnd)
 
void gslc_DrawFillGradSector (gslc_tsGui *pGui, int16_t nQuality, int16_t nMidX, int16_t nMidY, int16_t nRad1, int16_t nRad2, gslc_tsColor cArcStart, gslc_tsColor cArcEnd, int16_t nAngSecStart, int16_t nAngSecEnd, int16_t nAngGradStart, int16_t nAngGradRange)
 Draw a gradient filled sector of a circle with support for inner and outer radius. More...
 
void gslc_DrawFillSector (gslc_tsGui *pGui, int16_t nQuality, int16_t nMidX, int16_t nMidY, int16_t nRad1, int16_t nRad2, gslc_tsColor cArc, int16_t nAngSecStart, int16_t nAngSecEnd)
 Draw a flat filled sector of a circle with support for inner and outer radius. More...
 
bool gslc_FontSetBase (gslc_tsGui *pGui, uint8_t nFontInd, int16_t nFontId, gslc_teFontRefType eFontRefType, const void *pvFontRef, uint16_t nFontSz)
 
bool gslc_FontSet (gslc_tsGui *pGui, int16_t nFontId, gslc_teFontRefType eFontRefType, const void *pvFontRef, uint16_t nFontSz)
 Load a font into the local font cache and store as font ID (nFontId) More...
 
bool gslc_FontAdd (gslc_tsGui *pGui, int16_t nFontId, gslc_teFontRefType eFontRefType, const void *pvFontRef, uint16_t nFontSz)
 Load a font into the local font cache and assign font ID (nFontId). More...
 
gslc_tsFontgslc_FontGet (gslc_tsGui *pGui, int16_t nFontId)
 Fetch a font from its ID value. More...
 
bool gslc_FontSetMode (gslc_tsGui *pGui, int16_t nFontId, gslc_teFontRefMode eFontMode)
 Set the font operating mode. More...
 
bool gslc_PageEvent (void *pvGui, gslc_tsEvent sEvent)
 Common event handler function for a page. More...
 
void gslc_PageAdd (gslc_tsGui *pGui, int16_t nPageId, gslc_tsElem *psElem, uint16_t nMaxElem, gslc_tsElemRef *psElemRef, uint16_t nMaxElemRef)
 Add a page to the GUI. More...
 
int gslc_GetPageCur (gslc_tsGui *pGui)
 Fetch the current page ID. More...
 
void gslc_SetStackPage (gslc_tsGui *pGui, uint8_t nStackPos, int16_t nPageId)
 Assign a page to the page stack. More...
 
void gslc_SetStackState (gslc_tsGui *pGui, uint8_t nStackPos, bool bActive, bool bDoDraw)
 Change the status of a page in a page stack. More...
 
void gslc_SetPageBase (gslc_tsGui *pGui, int16_t nPageId)
 Assigns a page for the base layer in the page stack. More...
 
void gslc_SetPageCur (gslc_tsGui *pGui, int16_t nPageId)
 Select a page for the current layer in the page stack. More...
 
void gslc_SetPageOverlay (gslc_tsGui *pGui, int16_t nPageId)
 Select a page for the overlay layer in the page stack. More...
 
void gslc_PopupShow (gslc_tsGui *pGui, int16_t nPageId, bool bModal)
 Show a popup dialog. More...
 
void gslc_PopupHide (gslc_tsGui *pGui)
 Hides the currently active popup dialog. More...
 
void gslc_PageRedrawSet (gslc_tsGui *pGui, bool bRedraw)
 Update the need-redraw status for the current page. More...
 
bool gslc_PageRedrawGet (gslc_tsGui *pGui)
 Get the need-redraw status for the current page. More...
 
void gslc_PageRedrawCalc (gslc_tsGui *pGui)
 Perform a redraw calculation on the page to determine if additional elements should also be redrawn. More...
 
void gslc_PageRedrawGo (gslc_tsGui *pGui)
 Redraw all elements on the active page. More...
 
void gslc_PageFlipSet (gslc_tsGui *pGui, bool bNeeded)
 Indicate whether the screen requires page flip. More...
 
bool gslc_PageFlipGet (gslc_tsGui *pGui)
 Get state of pending page flip state. More...
 
void gslc_PageFlipGo (gslc_tsGui *pGui)
 Update the visible screen if page has been marked for flipping. More...
 
gslc_tsPagegslc_PageFindById (gslc_tsGui *pGui, int16_t nPageId)
 Find a page in the GUI by its ID. More...
 
gslc_tsElemRefgslc_PageFindElemById (gslc_tsGui *pGui, int16_t nPageId, int16_t nElemId)
 Find an element in the GUI by its Page ID and Element ID. More...
 
int16_t gslc_PageFocusStep (gslc_tsGui *pGui, gslc_tsPage *pPage, bool bNext)
 
int gslc_ElemGetId (gslc_tsGui *pGui, gslc_tsElemRef *pElemRef)
 Get an Element ID from an element structure. More...
 
uint8_t gslc_GetElemRefFlag (gslc_tsGui *pGui, gslc_tsElemRef *pElemRef, uint8_t nFlagMask)
 Get the flags associated with an element reference. More...
 
void gslc_SetElemRefFlag (gslc_tsGui *pGui, gslc_tsElemRef *pElemRef, uint8_t nFlagMask, uint8_t nFlagVal)
 Set the flags associated with an element reference. More...
 
gslc_tsElemgslc_GetElemFromRef (gslc_tsGui *pGui, gslc_tsElemRef *pElemRef)
 Returns a pointer to an element from an element reference, copying from FLASH to RAM if element is stored in PROGMEM. More...
 
gslc_tsElemgslc_GetElemFromRefD (gslc_tsGui *pGui, gslc_tsElemRef *pElemRef, int16_t nLineNum)
 Returns a pointer to an element from an element reference. More...
 
void * gslc_GetXDataFromRef (gslc_tsGui *pGui, gslc_tsElemRef *pElemRef, int16_t nType, int16_t nLineNum)
 Returns a pointer to the data structure associated with an extended element. More...
 
void gslc_SetRoundRadius (gslc_tsGui *pGui, uint8_t nRadius)
 Set the global rounded radius. More...
 
gslc_tsElemRefgslc_ElemCreateTxt (gslc_tsGui *pGui, int16_t nElemId, int16_t nPage, gslc_tsRect rElem, char *pStrBuf, uint8_t nStrBufMax, int16_t nFontId)
 Create a Text Element. More...
 
gslc_tsElemRefgslc_ElemCreateBtnTxt (gslc_tsGui *pGui, int16_t nElemId, int16_t nPage, gslc_tsRect rElem, char *pStrBuf, uint8_t nStrBufMax, int16_t nFontId, GSLC_CB_TOUCH cbTouch)
 Create a textual Button Element. More...
 
gslc_tsElemRefgslc_ElemCreateBtnImg (gslc_tsGui *pGui, int16_t nElemId, int16_t nPage, gslc_tsRect rElem, gslc_tsImgRef sImgRef, gslc_tsImgRef sImgRefSel, GSLC_CB_TOUCH cbTouch)
 Create a graphical Button Element. More...
 
gslc_tsElemRefgslc_ElemCreateBox (gslc_tsGui *pGui, int16_t nElemId, int16_t nPage, gslc_tsRect rElem)
 Create a Box Element. More...
 
gslc_tsElemRefgslc_ElemCreateLine (gslc_tsGui *pGui, int16_t nElemId, int16_t nPage, int16_t nX0, int16_t nY0, int16_t nX1, int16_t nY1)
 Create a Line Element. More...
 
gslc_tsElemRefgslc_ElemCreateImg (gslc_tsGui *pGui, int16_t nElemId, int16_t nPage, gslc_tsRect rElem, gslc_tsImgRef sImgRef)
 Create an image Element. More...
 
bool gslc_ElemEvent (void *pvGui, gslc_tsEvent sEvent)
 Common event handler function for an element. More...
 
void gslc_ElemDraw (gslc_tsGui *pGui, int16_t nPageId, int16_t nElemId)
 Draw an element to the active display. More...
 
void gslc_DrawTxtBase (gslc_tsGui *pGui, char *pStrBuf, gslc_tsRect rTxt, gslc_tsFont *pTxtFont, gslc_teTxtFlags eTxtFlags, int8_t eTxtAlign, gslc_tsColor colTxt, gslc_tsColor colBg, int16_t nMarginW, int16_t nMarginH)
 Draw text with full text justification. More...
 
bool gslc_ElemDrawByRef (gslc_tsGui *pGui, gslc_tsElemRef *pElemRef, gslc_teRedrawType eRedraw)
 Draw an element to the active display. More...
 
void gslc_ElemSetFillEn (gslc_tsGui *pGui, gslc_tsElemRef *pElemRef, bool bFillEn)
 Set the fill state for an Element. More...
 
void gslc_ElemSetFrameEn (gslc_tsGui *pGui, gslc_tsElemRef *pElemRef, bool bFrameEn)
 Set the frame state for an Element. More...
 
void gslc_ElemSetRoundEn (gslc_tsGui *pGui, gslc_tsElemRef *pElemRef, bool bRoundEn)
 Set the rounded frame/fill state for an Element. More...
 
void gslc_ElemSetCol (gslc_tsGui *pGui, gslc_tsElemRef *pElemRef, gslc_tsColor colFrame, gslc_tsColor colFill, gslc_tsColor colFillGlow)
 Update the common color selection for an Element. More...
 
void gslc_ElemSetGlowCol (gslc_tsGui *pGui, gslc_tsElemRef *pElemRef, gslc_tsColor colFrameGlow, gslc_tsColor colFillGlow, gslc_tsColor colTxtGlow)
 Update the common color selection for glowing state of an Element. More...
 
void gslc_ElemSetGroup (gslc_tsGui *pGui, gslc_tsElemRef *pElemRef, int nGroupId)
 Set the group ID for an element. More...
 
int gslc_ElemGetGroup (gslc_tsGui *pGui, gslc_tsElemRef *pElemRef)
 Get the group ID for an element. More...
 
void gslc_ElemSetRect (gslc_tsGui *pGui, gslc_tsElemRef *pElemRef, gslc_tsRect rElem)
 Set the position and size for an element. More...
 
gslc_tsRect gslc_ElemGetRect (gslc_tsGui *pGui, gslc_tsElemRef *pElemRef)
 Get the rectangular region for an element. More...
 
void gslc_ElemSetTxtAlign (gslc_tsGui *pGui, gslc_tsElemRef *pElemRef, unsigned nAlign)
 Set the alignment of a textual element (horizontal and vertical) More...
 
void gslc_ElemSetTxtMargin (gslc_tsGui *pGui, gslc_tsElemRef *pElemRef, unsigned nMargin)
 Set the margin around of a textual element. More...
 
void gslc_ElemSetTxtMarginXY (gslc_tsGui *pGui, gslc_tsElemRef *pElemRef, int8_t nMarginX, int8_t nMarginY)
 Set the margin around of a textual element (X & Y offsets can be different) More...
 
void gslc_StrCopy (char *pDstStr, const char *pSrcStr, uint16_t nDstLen)
 Helper routine to perform string deep copy. More...
 
void gslc_ElemSetTxtStr (gslc_tsGui *pGui, gslc_tsElemRef *pElemRef, const char *pStr)
 Update the text string associated with an Element. More...
 
char * gslc_ElemGetTxtStr (gslc_tsGui *pGui, gslc_tsElemRef *pElemRef)
 Fetch the current text string associated with an Element. More...
 
void gslc_ElemSetTxtCol (gslc_tsGui *pGui, gslc_tsElemRef *pElemRef, gslc_tsColor colVal)
 Update the text string color associated with an Element ID. More...
 
void gslc_ElemSetTxtMem (gslc_tsGui *pGui, gslc_tsElemRef *pElemRef, gslc_teTxtFlags eFlags)
 Update the text string location in memory. More...
 
void gslc_ElemSetTxtEnc (gslc_tsGui *pGui, gslc_tsElemRef *pElemRef, gslc_teTxtFlags eFlags)
 Update the text string encoding mode. More...
 
void gslc_ElemUpdateFont (gslc_tsGui *pGui, gslc_tsElemRef *pElemRef, int nFontId)
 Update the Font selected for an Element's text. More...
 
void gslc_ElemSetRedraw (gslc_tsGui *pGui, gslc_tsElemRef *pElemRef, gslc_teRedrawType eRedraw)
 Update the need-redraw status for an element. More...
 
gslc_teRedrawType gslc_ElemGetRedraw (gslc_tsGui *pGui, gslc_tsElemRef *pElemRef)
 Get the need-redraw status for an element. More...
 
void gslc_ElemSetGlow (gslc_tsGui *pGui, gslc_tsElemRef *pElemRef, bool bGlowing)
 Update the glowing indicator for an element. More...
 
bool gslc_ElemGetGlow (gslc_tsGui *pGui, gslc_tsElemRef *pElemRef)
 Get the glowing indicator for an element. More...
 
void gslc_ElemSetVisible (gslc_tsGui *pGui, gslc_tsElemRef *pElemRef, bool bVisible)
 Update the visibility status for an element. More...
 
bool gslc_ElemGetVisible (gslc_tsGui *pGui, gslc_tsElemRef *pElemRef)
 Get the visibility status for an element. More...
 
bool gslc_ElemGetOnScreen (gslc_tsGui *pGui, gslc_tsElemRef *pElemRef)
 Determine whether an element is visible on the screen. More...
 
void gslc_ElemSetGlowEn (gslc_tsGui *pGui, gslc_tsElemRef *pElemRef, bool bGlowEn)
 Update the glowing enable for an element. More...
 
bool gslc_ElemGetGlowEn (gslc_tsGui *pGui, gslc_tsElemRef *pElemRef)
 Get the glowing enable for an element. More...
 
void gslc_ElemSetClickEn (gslc_tsGui *pGui, gslc_tsElemRef *pElemRef, bool bClickEn)
 Update the click enable for an element. More...
 
void gslc_ElemSetTouchFunc (gslc_tsGui *pGui, gslc_tsElemRef *pElemRef, GSLC_CB_TOUCH funcCb)
 Update the touch function callback for an element. More...
 
void gslc_ElemSetStyleFrom (gslc_tsGui *pGui, gslc_tsElemRef *pElemRefSrc, gslc_tsElemRef *pElemRefDest)
 Copy style settings from one element to another. More...
 
void gslc_ElemSetDrawFunc (gslc_tsGui *pGui, gslc_tsElemRef *pElemRef, GSLC_CB_DRAW funcCb)
 Assign the drawing callback function for an element. More...
 
void gslc_ElemSetTickFunc (gslc_tsGui *pGui, gslc_tsElemRef *pElemRef, GSLC_CB_TICK funcCb)
 Assign the tick callback function for an element. More...
 
bool gslc_ElemOwnsCoord (gslc_tsGui *pGui, gslc_tsElemRef *pElemRef, int16_t nX, int16_t nY, bool bOnlyClickEn)
 Determine if a coordinate is inside of an element. More...
 
void gslc_CollectInput (gslc_tsGui *pGui, gslc_tsCollect *pCollect, gslc_tsEventTouch *pEventTouch)
 Handle direct input events within the element collection. More...
 
void gslc_CollectTouch (gslc_tsGui *pGui, gslc_tsCollect *pCollect, gslc_tsEventTouch *pEventTouch)
 Handle touch events within the element collection. More...
 
bool gslc_CollectTouchCompound (void *pvGui, void *pvElemRef, gslc_teTouch eTouch, int16_t nRelX, int16_t nRelY, gslc_tsCollect *pCollect)
 Handle dispatch of touch (up,down,move) events to compound elements sub elements. More...
 
void gslc_TrackInput (gslc_tsGui *pGui, gslc_tsPage *pPage, gslc_teInputRawEvent eInputEvent, int16_t nInputVal)
 Handles a direct input event and performs the necessary tracking, glowing and selection actions depending on the state. More...
 
void gslc_TrackTouch (gslc_tsGui *pGui, gslc_tsPage *pPage, int16_t nX, int16_t nY, uint16_t nPress)
 Handles a touch event and performs the necessary tracking, glowing and selection actions depending on the press state. More...
 
bool gslc_InitTouch (gslc_tsGui *pGui, const char *acDev)
 Initialize the touchscreen device driver. More...
 
bool gslc_GetTouch (gslc_tsGui *pGui, int16_t *pnX, int16_t *pnY, uint16_t *pnPress, gslc_teInputRawEvent *peInputEvent, int16_t *pnInputVal)
 Initialize the touchscreen device driver. More...
 
void gslc_SetTouchRemapEn (gslc_tsGui *pGui, bool bEn)
 Configure touchscreen remapping. More...
 
void gslc_SetTouchRemapCal (gslc_tsGui *pGui, uint16_t nXMin, uint16_t nXMax, uint16_t nYMin, uint16_t nYMax)
 Configure touchscreen calibration remapping values. More...
 
void gslc_SetTouchPressCal (gslc_tsGui *pGui, uint16_t nPressMin, uint16_t nPressMax)
 Configure touchscreen calibration pressure values. More...
 
void gslc_SetTouchRemapYX (gslc_tsGui *pGui, bool bSwap)
 Configure touchscreen XY swap. More...
 
gslc_tsElem gslc_ElemCreate (gslc_tsGui *pGui, int16_t nElemId, int16_t nPageId, int16_t nType, gslc_tsRect rElem, char *pStrBuf, uint8_t nStrBufMax, int16_t nFontId)
 Create a new element with default styling. More...
 
bool gslc_CollectEvent (void *pvGui, gslc_tsEvent sEvent)
 Common event handler function for an element collection. More...
 
gslc_tsElemRefgslc_CollectElemAdd (gslc_tsGui *pGui, gslc_tsCollect *pCollect, const gslc_tsElem *pElem, gslc_teElemRefFlags eFlags)
 Add an element to a collection. More...
 
bool gslc_CollectGetRedraw (gslc_tsGui *pGui, gslc_tsCollect *pCollect)
 Determine if any elements in a collection need redraw. More...
 
gslc_tsElemRefgslc_ElemAdd (gslc_tsGui *pGui, int16_t nPageId, gslc_tsElem *pElem, gslc_teElemRefFlags eFlags)
 Add the Element to the list of generated elements in the GUI environment. More...
 
gslc_tsRect gslc_GetClipRect (gslc_tsGui *pGui)
 Get the current the clipping rectangle. More...
 
bool gslc_SetClipRect (gslc_tsGui *pGui, gslc_tsRect *pRect)
 Set the clipping rectangle for further drawing. More...
 
bool gslc_ImgRefEqual (gslc_tsImgRef *pImgRef1, gslc_tsImgRef *pImgRef2)
 
void gslc_ElemSetImage (gslc_tsGui *pGui, gslc_tsElemRef *pElemRef, gslc_tsImgRef sImgRef, gslc_tsImgRef sImgRefSel)
 Set an element to use a bitmap image. More...
 
bool gslc_SetBkgndImage (gslc_tsGui *pGui, gslc_tsImgRef sImgRef)
 Configure the background to use a bitmap image. More...
 
bool gslc_SetBkgndColor (gslc_tsGui *pGui, gslc_tsColor nCol)
 Configure the background to use a solid color. More...
 
bool gslc_SetTransparentColor (gslc_tsGui *pGui, gslc_tsColor nCol)
 Configure the color to use for image transparency. More...
 
bool gslc_GuiRotate (gslc_tsGui *pGui, uint8_t nRotation)
 Dynamically change rotation, automatically adapt touchscreen axes swap/flip. More...
 
bool gslc_ElemSendEventTouch (gslc_tsGui *pGui, gslc_tsElemRef *pElemRefTracked, gslc_teTouch eTouch, int16_t nX, int16_t nY)
 Trigger an element's touch event. More...
 
void gslc_ResetElem (gslc_tsElem *pElem)
 Initialize an Element struct. More...
 
void gslc_ResetFont (gslc_tsFont *pFont)
 Initialize a Font struct. More...
 
void gslc_ElemDestruct (gslc_tsElem *pElem)
 Free up any members associated with an element. More...
 
void gslc_CollectDestruct (gslc_tsGui *pGui, gslc_tsCollect *pCollect)
 Free up any members associated with an element collection. More...
 
void gslc_PageDestruct (gslc_tsGui *pGui, gslc_tsPage *pPage)
 Free up any members associated with a page. More...
 
void gslc_GuiDestruct (gslc_tsGui *pGui)
 Free up any surfaces associated with the GUI, pages, collections and elements. More...
 
void gslc_CollectReset (gslc_tsCollect *pCollect, gslc_tsElem *asElem, uint16_t nElemMax, gslc_tsElemRef *asElemRef, uint16_t nElemRefMax)
 Reset the members of an element collection. More...
 
bool gslc_CollectFindFocusStep (gslc_tsGui *pGui, gslc_tsCollect *pCollect, bool bNext, bool *pbWrapped, int16_t *pnElemInd)
 
gslc_tsElemRefgslc_CollectFindElemById (gslc_tsGui *pGui, gslc_tsCollect *pCollect, int16_t nElemId)
 Find an element in a collection by its Element ID. More...
 
int gslc_CollectGetNextId (gslc_tsGui *pGui, gslc_tsCollect *pCollect)
 Allocate the next available Element ID in a collection. More...
 
gslc_tsElemRefgslc_CollectGetElemRefTracked (gslc_tsGui *pGui, gslc_tsCollect *pCollect)
 Get the element within a collection that is currently being tracked. More...
 
void gslc_CollectSetElemTracked (gslc_tsGui *pGui, gslc_tsCollect *pCollect, gslc_tsElemRef *pElemRef)
 Set the element within a collection that is currently being tracked. More...
 
gslc_tsElemRefgslc_CollectFindElemFromCoord (gslc_tsGui *pGui, gslc_tsCollect *pCollect, int16_t nX, int16_t nY)
 Find an element in a collection by a coordinate coordinate. More...
 
int16_t gslc_CollectGetFocus (gslc_tsGui *pGui, gslc_tsCollect *pCollect)
 Get the element index within a collection that is currently in focus. More...
 
void gslc_CollectSetFocus (gslc_tsGui *pGui, gslc_tsCollect *pCollect, int16_t nElemInd)
 Set the element index within a collection that is currently in focus. More...
 
void gslc_CollectSetParent (gslc_tsGui *pGui, gslc_tsCollect *pCollect, gslc_tsElemRef *pElemRefParent)
 Assign the parent element reference to all elements within a collection. More...
 

Variables

GSLC_CB_DEBUG_OUT g_pfDebugOut
 Global debug output function. More...
 
const uint16_t m_nLUTSinF0X16 [257]
 
const char GSLC_PMEM ERRSTR_NULL []
 
const char GSLC_PMEM ERRSTR_PXD_NULL []
 

Enumeration Type Documentation

Enumerator
GSLC_S_DEBUG_PRINT_NORM 
GSLC_S_DEBUG_PRINT_TOKEN 
GSLC_S_DEBUG_PRINT_UINT16 
GSLC_S_DEBUG_PRINT_CHAR 
GSLC_S_DEBUG_PRINT_STR 
GSLC_S_DEBUG_PRINT_STR_P 

Function Documentation

void gslc_DrawFillSectorBase ( gslc_tsGui pGui,
int16_t  nQuality,
int16_t  nMidX,
int16_t  nMidY,
int16_t  nRad1,
int16_t  nRad2,
gslc_tsColor  cArcStart,
gslc_tsColor  cArcEnd,
bool  bGradient,
int16_t  nAngGradStart,
int16_t  nAngGradRange,
int16_t  nAngSecStart,
int16_t  nAngSecEnd 
)
bool gslc_FontSetBase ( gslc_tsGui pGui,
uint8_t  nFontInd,
int16_t  nFontId,
gslc_teFontRefType  eFontRefType,
const void *  pvFontRef,
uint16_t  nFontSz 
)
bool gslc_ImgRefEqual ( gslc_tsImgRef pImgRef1,
gslc_tsImgRef pImgRef2 
)
void gslc_OrderCoord ( int16_t *  pnX0,
int16_t *  pnY0,
int16_t *  pnX1,
int16_t *  pnY1 
)
void gslc_SwapCoords ( int16_t *  pnXa,
int16_t *  pnYa,
int16_t *  pnXb,
int16_t *  pnYb 
)

Variable Documentation

const char ERRSTR_NULL[]
const char GSLC_PMEM ERRSTR_PXD_NULL[]
GSLC_CB_DEBUG_OUT g_pfDebugOut

Global debug output function.

const uint16_t m_nLUTSinF0X16