www.pudn.com > CDX.rar > CDXMENU.H
//////////////////////////////////////////////////////////////////////////////////
// $Source: /cvsroot/cdx/cdx3.0/examples/vc/ex12/CDXMENU.H,v $
// $Author: istan $
//
// $Log: CDXMENU.H,v $
// Revision 1.1 2001/02/17 18:14:32 istan
// Added to the repository
//
// Revision 1.1.1.1 2000/04/22 16:50:12 hebertjo
// Initial checkin of v3.0 to SourceForge CVS.
//
// Revision 1.1.1.1 1999/05/04 23:59:23 bsimser
// Imported addons
//
// $Revision: 1.1 $
//////////////////////////////////////////////////////////////////////////////////
#define MAX_MENU_ITEMS 20
#define MAX_STRING_LENGTH 80
class CDXMenu
{
public:
CDXMenu();
void Create(CDXSurface *pSurface, int Spacing);
void SetTitle(const char *szTitle, COLORREF color);
void SetWrap(BOOL bWrap);
void AddItem(char *szString, COLORREF oncolor, COLORREF offcolor, COLORREF disabledcolor=RGB(0xaa,0xaa,0xaa));
void EnableItem(int item, BOOL bEnable);
// drawing related
void DrawCentered(void);
void Draw(void);
void Draw(int X, int Y);
// selection modification
void Up(void);
void Down(void);
void Home(void);
void End(void);
int Enter(void);
CDXSurface *GetSurface() { return m_pSurface; };
private:
CDXSurface *m_pSurface;
struct MenuItem {
char m_szString[MAX_STRING_LENGTH];
COLORREF m_OnColor;
COLORREF m_OffColor;
COLORREF m_DisabledColor;
BOOL m_Enabled;
} m_MenuItems[MAX_MENU_ITEMS];
int m_ItemCount;
int m_Spacing;
int m_CurrentItem;
BOOL m_bWrap;
struct Title {
char m_szTitle[MAX_STRING_LENGTH];
COLORREF m_color;
BOOL m_bActive;
} m_Title;
};