200 lines
7.4 KiB
C
200 lines
7.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 : MENU.h
|
|
Purpose : MENU include
|
|
--------------------END-OF-HEADER-------------------------------------
|
|
*/
|
|
|
|
#ifndef MENU_H
|
|
#define MENU_H
|
|
|
|
#include "WM.h"
|
|
#include "WIDGET.h"
|
|
#include "DIALOG_Intern.h" /* Req. for Create indirect data structure */
|
|
|
|
#if GUI_WINSUPPORT
|
|
|
|
#if defined(__cplusplus)
|
|
extern "C" { /* Make sure we have C-declarations in C++ programs */
|
|
#endif
|
|
|
|
/*********************************************************************
|
|
*
|
|
* Defines
|
|
*
|
|
**********************************************************************
|
|
*/
|
|
/*********************************************************************
|
|
*
|
|
* Create flags
|
|
*/
|
|
#define MENU_CF_HORIZONTAL (0<<0)
|
|
#define MENU_CF_VERTICAL (1<<0)
|
|
#define MENU_CF_OPEN_ON_POINTEROVER (1<<1)
|
|
#define MENU_CF_CLOSE_ON_SECOND_CLICK (1<<2)
|
|
#define MENU_CF_HIDE_DISABLED_SEL (1<<3) /* Hides the selection when a disabled item is selected */
|
|
|
|
/*********************************************************************
|
|
*
|
|
* Menu item flags
|
|
*/
|
|
#define MENU_IF_DISABLED (1<<0)
|
|
#define MENU_IF_SEPARATOR (1<<1)
|
|
|
|
/*********************************************************************
|
|
*
|
|
* Color indices
|
|
*/
|
|
#define MENU_CI_ENABLED 0
|
|
#define MENU_CI_SELECTED 1
|
|
#define MENU_CI_DISABLED 2
|
|
#define MENU_CI_DISABLED_SEL 3
|
|
#define MENU_CI_ACTIVE_SUBMENU 4
|
|
|
|
/*********************************************************************
|
|
*
|
|
* Border indices
|
|
*/
|
|
#define MENU_BI_LEFT 0
|
|
#define MENU_BI_RIGHT 1
|
|
#define MENU_BI_TOP 2
|
|
#define MENU_BI_BOTTOM 3
|
|
|
|
/*********************************************************************
|
|
*
|
|
* Message types
|
|
*/
|
|
#define MENU_ON_ITEMSELECT 0 /* Send to owner when selecting a menu item */
|
|
#define MENU_ON_INITMENU 1 /* Send to owner when for the first time selecting a submenu */
|
|
#define MENU_ON_INITSUBMENU 2 /* Send to owner when selecting a submenu */
|
|
#define MENU_ON_OPEN 3 /* Internal message of menu widget (send to submenus) */
|
|
#define MENU_ON_CLOSE 4 /* Internal message of menu widget (send to submenus) */
|
|
#define MENU_IS_MENU 5 /* Internal message of menu widget. Owner must call */
|
|
/* WM_DefaultProc() when not handle the message. */
|
|
|
|
/*********************************************************************
|
|
*
|
|
* Types
|
|
*
|
|
**********************************************************************
|
|
*/
|
|
|
|
typedef WM_HMEM MENU_Handle;
|
|
|
|
/*********************************************************************
|
|
*
|
|
* menu message data
|
|
*/
|
|
typedef struct {
|
|
U16 MsgType;
|
|
U16 ItemId;
|
|
} MENU_MSG_DATA;
|
|
|
|
/*********************************************************************
|
|
*
|
|
* menu item data
|
|
*/
|
|
typedef struct {
|
|
// const char* pText;
|
|
char* pText;
|
|
U16 Id;
|
|
U16 Flags;
|
|
MENU_Handle hSubmenu;
|
|
} MENU_ITEM_DATA;
|
|
|
|
/*********************************************************************
|
|
*
|
|
* Create functions
|
|
*
|
|
**********************************************************************
|
|
*/
|
|
|
|
MENU_Handle MENU_CreateIndirect(const GUI_WIDGET_CREATE_INFO* pCreateInfo, WM_HWIN hWinParent, int x0, int y0, WM_CALLBACK* cb);
|
|
MENU_Handle MENU_CreateEx (int x0, int y0, int xSize, int ySize, WM_HWIN hParent, int WinFlags, int ExFlags, int Id);
|
|
|
|
/*********************************************************************
|
|
*
|
|
* Standard member functions
|
|
*
|
|
**********************************************************************
|
|
*/
|
|
|
|
#define MENU_EnableMemdev(hObj) WM_EnableMemdev(hObj)
|
|
#define MENU_DisableMemdev(hObj) WM_DisableMemdev(hObj)
|
|
#define MENU_Delete(hObj) WM_DeleteWindow(hObj)
|
|
#define MENU_Paint(hObj) WM_Paint(hObj)
|
|
#define MENU_Invalidate(hObj) WM_InvalidateWindow(hObj)
|
|
|
|
/*********************************************************************
|
|
*
|
|
* Individual member functions
|
|
*
|
|
**********************************************************************
|
|
*/
|
|
|
|
void MENU_Attach (MENU_Handle hObj, WM_HWIN hDestWin, int x, int y, int xSize, int ySize, int Flags);
|
|
void MENU_Popup (MENU_Handle hObj, WM_HWIN hDestWin, int x, int y, int xSize, int ySize, int Flags);
|
|
void MENU_SetOwner (MENU_Handle hObj, WM_HWIN hOwner);
|
|
|
|
void MENU_AddItem (MENU_Handle hObj, const MENU_ITEM_DATA* pItemData);
|
|
void MENU_DeleteItem (MENU_Handle hObj, U16 ItemId);
|
|
void MENU_InsertItem (MENU_Handle hObj, U16 ItemId, const MENU_ITEM_DATA* pItemData);
|
|
void MENU_SetItem (MENU_Handle hObj, U16 ItemId, const MENU_ITEM_DATA* pItemData);
|
|
void MENU_GetItem (MENU_Handle hObj, U16 ItemId, MENU_ITEM_DATA* pItemData);
|
|
void MENU_GetItemText (MENU_Handle hObj, U16 ItemId, char* pBuffer, unsigned BufferSize);
|
|
unsigned MENU_GetNumItems (MENU_Handle hObj);
|
|
|
|
void MENU_DisableItem (MENU_Handle hObj, U16 ItemId);
|
|
void MENU_EnableItem (MENU_Handle hObj, U16 ItemId);
|
|
|
|
/*********************************************************************
|
|
*
|
|
* Member functions, get / set properties
|
|
*
|
|
**********************************************************************
|
|
*/
|
|
|
|
void MENU_SetTextColor (MENU_Handle hObj, unsigned ColorIndex, GUI_COLOR Color);
|
|
void MENU_SetBkColor (MENU_Handle hObj, unsigned ColorIndex, GUI_COLOR Color);
|
|
void MENU_SetBorderSize (MENU_Handle hObj, unsigned BorderIndex, U8 BorderSize);
|
|
void MENU_SetFont (MENU_Handle hObj, const GUI_FONT GUI_UNI_PTR* pFont);
|
|
|
|
/*********************************************************************
|
|
*
|
|
* Member functions, get / set defaults
|
|
*
|
|
**********************************************************************
|
|
*/
|
|
|
|
GUI_COLOR MENU_GetDefaultTextColor (unsigned ColorIndex);
|
|
GUI_COLOR MENU_GetDefaultBkColor (unsigned ColorIndex);
|
|
U8 MENU_GetDefaultBorderSize (unsigned BorderIndex);
|
|
const WIDGET_EFFECT* MENU_GetDefaultEffect (void);
|
|
const GUI_FONT GUI_UNI_PTR* MENU_GetDefaultFont (void);
|
|
void MENU_SetDefaultTextColor (unsigned ColorIndex, GUI_COLOR Color);
|
|
void MENU_SetDefaultBkColor (unsigned ColorIndex, GUI_COLOR Color);
|
|
void MENU_SetDefaultBorderSize (unsigned BorderIndex, U8 BorderSize);
|
|
void MENU_SetDefaultEffect (const WIDGET_EFFECT* pEffect);
|
|
void MENU_SetDefaultFont (const GUI_FONT GUI_UNI_PTR* pFont);
|
|
|
|
#if defined(__cplusplus)
|
|
}
|
|
#endif
|
|
|
|
#endif /* GUI_WINSUPPORT */
|
|
#endif /* MENU_H */
|
|
|
|
/*************************** End of file ****************************/
|