freertos_f407/User/system/lib/lcd/gui/Widget/BUTTON_Get.c

107 lines
3.0 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 : BUTTON_Get.c
Purpose : Button widget, various (optional) Get routines
---------------------------END-OF-HEADER------------------------------
*/
#include <string.h>
#include "BUTTON.h"
#include "BUTTON_Private.h"
#include "GUI_Protected.h"
#if GUI_WINSUPPORT
/*********************************************************************
*
* Exported functions
*
**********************************************************************
*/
/*********************************************************************
*
* BUTTON_GetBkColor
*/
GUI_COLOR BUTTON_GetBkColor(BUTTON_Handle hObj,unsigned int Index) {
GUI_COLOR Color = 0;
if (hObj && (Index < 2)) {
BUTTON_Obj * pObj;
WM_LOCK();
pObj = BUTTON_H2P(hObj);
Color = pObj->Props.aBkColor[Index];
WM_UNLOCK();
}
return Color;
}
/*********************************************************************
*
* BUTTON_GetFont
*/
const GUI_FONT GUI_UNI_PTR * BUTTON_GetFont(BUTTON_Handle hObj) {
const GUI_FONT GUI_UNI_PTR * pFont = 0;
if (hObj) {
BUTTON_Obj * pObj;
WM_LOCK();
pObj = BUTTON_H2P(hObj);
pFont = pObj->Props.pFont;
WM_UNLOCK();
}
return pFont;
}
/*********************************************************************
*
* BUTTON_GetText
*/
void BUTTON_GetText(BUTTON_Handle hObj, char * pBuffer, int MaxLen) {
if (hObj) {
BUTTON_Obj * pObj;
WM_LOCK();
pObj = BUTTON_H2P(hObj);
if (pObj->hpText) {
const char * pText = (const char*) GUI_ALLOC_h2p(pObj->hpText);
int Len = strlen(pText);
if (Len > (MaxLen - 1))
Len = MaxLen - 1;
memcpy((void *)pBuffer, (const void *)pText, Len);
*(pBuffer + Len) = 0;
} else {
*pBuffer = 0; /* Empty string */
}
WM_UNLOCK();
}
}
/*********************************************************************
*
* BUTTON_GetTextColor
*/
GUI_COLOR BUTTON_GetTextColor(BUTTON_Handle hObj,unsigned int Index) {
GUI_COLOR Color = 0;
if (hObj && (Index < 2)) {
BUTTON_Obj * pObj;
WM_LOCK();
pObj = BUTTON_H2P(hObj);
Color = pObj->Props.aTextColor[Index];
WM_UNLOCK();
}
return Color;
}
#else /* Avoid problems with empty object modules */
void BUTTON_Get_C(void) {}
#endif