85 lines
2.4 KiB
C
85 lines
2.4 KiB
C
/*
|
|
*********************************************************************************************************
|
|
* uC/GUI
|
|
* Universal graphic software for embedded applications
|
|
*
|
|
* (c) Copyright 2002, Micrium Inc., Weston, FL
|
|
* (c) Copyright 2002, SEGGER Microcontroller Systeme GmbH
|
|
*
|
|
* µC/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_DispChar.c
|
|
Purpose : Implementation of optional routines
|
|
---------------------------END-OF-HEADER------------------------------
|
|
*/
|
|
|
|
#include "GUI_Protected.h"
|
|
|
|
/*********************************************************************
|
|
*
|
|
* Static code
|
|
*
|
|
**********************************************************************
|
|
*/
|
|
/*********************************************************************
|
|
*
|
|
* CL_DispChar
|
|
*/
|
|
#if (GUI_WINSUPPORT)
|
|
static void CL_DispChar(U16 c) {
|
|
GUI_RECT r;
|
|
WM_ADDORG(GUI_Context.DispPosX, GUI_Context.DispPosY);
|
|
r.x1 = (r.x0 = GUI_Context.DispPosX) + GUI_GetCharDistX(c) - 1;
|
|
r.y1 = (r.y0 = GUI_Context.DispPosY) + GUI_GetFontSizeY() - 1;
|
|
WM_ITERATE_START(&r) {
|
|
GL_DispChar(c);
|
|
} WM_ITERATE_END();
|
|
if (c != '\n') {
|
|
GUI_Context.DispPosX = r.x1 + 1;
|
|
}
|
|
WM_SUBORG(GUI_Context.DispPosX, GUI_Context.DispPosY);
|
|
}
|
|
#endif
|
|
|
|
/*********************************************************************
|
|
*
|
|
* Public code
|
|
*
|
|
**********************************************************************
|
|
*/
|
|
/*********************************************************************
|
|
*
|
|
* GUI_DispChar
|
|
*/
|
|
void GUI_DispChar(U16 c) {
|
|
GUI_LOCK();
|
|
#if (GUI_WINSUPPORT)
|
|
CL_DispChar(c);
|
|
#else
|
|
GL_DispChar(c);
|
|
#endif
|
|
GUI_UNLOCK();
|
|
}
|
|
|
|
/*********************************************************************
|
|
*
|
|
* GUI_DispCharAt
|
|
*/
|
|
void GUI_DispCharAt(U16 c, I16P x, I16P y) {
|
|
GUI_LOCK();
|
|
GUI_Context.DispPosX = x;
|
|
GUI_Context.DispPosY = y;
|
|
#if (GUI_WINSUPPORT)
|
|
CL_DispChar(c);
|
|
#else
|
|
GL_DispChar(c);
|
|
#endif
|
|
GUI_UNLOCK();
|
|
}
|
|
|
|
/*************************** End of file ****************************/
|