system/lib/lcd/gui/Widget/MENU__FindItem.c

61 lines
2.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 : MENU__FindItem.c
Purpose : Implementation of menu widget
---------------------------END-OF-HEADER------------------------------
*/
#include "MENU.h"
#include "MENU_Private.h"
#if GUI_WINSUPPORT
/*********************************************************************
*
* Public code
*
**********************************************************************
*/
/*********************************************************************
*
* MENU__FindItem
*/
int MENU__FindItem(MENU_Handle hObj, U16 ItemId, MENU_Handle* phMenu) {
int ItemIndex = -1;
MENU_Obj* pObj;
pObj = MENU_H2P(hObj);
if (pObj) {
MENU_ITEM* pItem;
unsigned NumItems, i;
NumItems = MENU__GetNumItems(pObj);
for (i = 0; (i < NumItems) && (ItemIndex < 0); i++) {
pItem = (MENU_ITEM*)GUI_ARRAY_GetpItem(&pObj->ItemArray, i);
if (pItem->Id == ItemId) {
*phMenu = hObj;
ItemIndex = i;
} else if (pItem->hSubmenu) {
ItemIndex = MENU__FindItem(pItem->hSubmenu, ItemId, phMenu);
}
}
}
return ItemIndex;
}
#else /* avoid empty object files */
void MENU__FindItem_C(void) {}
#endif
/*************************** End of file ****************************/