Google
Web alhem.net
Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members

gui::Menu Class Reference

#include <Menu.h>

Inheritance diagram for gui::Menu:

Inheritance graph
[legend]
Collaboration diagram for gui::Menu:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 Menu (Surface *, SurfaceHelper *=NULL)
 ~Menu ()
virtual void AddMenuItem (MenuItem *)
virtual void CreateMenu ()
void Draw ()
void OnRightClick (coord_t, coord_t)
void ActivateSubMenu (Menu *, coord_t, coord_t)
virtual MenuGetSubMenu (int id)

Private Attributes

coord_t m_w
coord_t m_h
Menum_pclSubMenu

Constructor & Destructor Documentation

gui::Menu::Menu Surface ,
SurfaceHelper = NULL
 

Definition at line 56 of file Menu.cpp.

References DIALOG_DEFAULT_FW.

00057 :Surface(s,pclHelper) 00058 ,m_w(0) 00059 ,m_h(0) 00060 ,m_pclSubMenu(NULL) 00061 { 00062 SetFrameWidth(DIALOG_DEFAULT_FW); 00063 }

gui::Menu::~Menu  ) 
 

Definition at line 66 of file Menu.cpp.

00067 { 00068 }


Member Function Documentation

void gui::Menu::ActivateSubMenu Menu ,
coord_t  ,
coord_t 
 

Definition at line 128 of file Menu.cpp.

References gui::Surface::CalculateAbsolute(), gui::Surface::GetAbsoluteRect(), gui::Surface::GetParent(), gui::Surface::InvalidateEv(), gui::Surface::IsVisible(), and m_pclSubMenu.

00129 { 00130 if (m_pclSubMenu && m_pclSubMenu -> IsVisible()) 00131 { 00132 SDL_Rect a = m_pclSubMenu -> GetAbsoluteRect(); 00133 InvalidateRectEv(a); 00134 m_pclSubMenu -> SetVisible(false); 00135 Unbond(m_pclSubMenu); 00136 } 00137 m_pclSubMenu = pclMenu; 00138 m_pclSubMenu -> SetX(x); 00139 m_pclSubMenu -> SetY(y); 00140 GetParent() -> CalculateAbsolute(); 00141 m_pclSubMenu -> SetVisible(true); 00142 m_pclSubMenu -> SetDirty(true); 00143 m_pclSubMenu -> InvalidateEv(); 00144 Bond(m_pclSubMenu); 00145 }

void gui::Menu::AddMenuItem MenuItem  )  [virtual]
 

Definition at line 71 of file Menu.cpp.

References gui::Surface::GetH(), gui::Surface::GetW(), m_h, and m_w.

00072 { 00073 m_w = pclItem -> GetW() > m_w ? pclItem -> GetW() : m_w; 00074 pclItem -> SetY(m_h); 00075 m_h += pclItem -> GetH(); 00076 00077 // m_items.insert(m_items.end(), pclItem); 00078 AddChild(pclItem); 00079 }

void gui::Menu::CreateMenu  )  [virtual]
 

Definition at line 82 of file Menu.cpp.

References DIALOG_DEFAULT_BG_B, DIALOG_DEFAULT_BG_G, DIALOG_DEFAULT_BG_R, DIALOG_DEFAULT_FC_B, DIALOG_DEFAULT_FC_G, DIALOG_DEFAULT_FC_R, gui::Surface::GetFrameWidth(), m_h, m_w, and gui::Surface::RecreateSurfaces().

00083 { 00084 surfacevector_t::iterator it; 00085 int fw = GetFrameWidth(); 00086 00087 for (it = m_ChildList.begin(); it != m_ChildList.end(); it++) 00088 { 00089 MenuItem *pclItem = static_cast<MenuItem *>(*it); 00090 pclItem -> SetW(m_w); 00091 pclItem -> CreateMenuItem(); 00092 } 00093 00094 SetW(m_w + fw * 2); 00095 SetH(m_h + fw * 2); 00096 00097 RecreateSurfaces(); 00098 00099 // SetBgColor(192,192,192); 00100 // SetFgColor(128,255,255); 00101 SetBgColor(DIALOG_DEFAULT_BG_R,DIALOG_DEFAULT_BG_G,DIALOG_DEFAULT_BG_B); 00102 SetFrameColor(DIALOG_DEFAULT_FC_R,DIALOG_DEFAULT_FC_G,DIALOG_DEFAULT_FC_B); 00103 }

void gui::Menu::Draw  )  [virtual]
 

Reimplemented from gui::Surface.

Definition at line 106 of file Menu.cpp.

References gui::Surface::GetBgColor(), and gui::Surface::GetClientRectPtr().

00107 { 00108 SDL_Rect *area = GetClientRectPtr(); 00109 Uint32 color = GetBgColor(); 00110 00111 SDL_FillRect(m_screen, area, color); 00112 }

Menu * gui::Menu::GetSubMenu int  id  )  [virtual]
 

Definition at line 148 of file Menu.cpp.

00149 { 00150 return NULL; 00151 }

void gui::Menu::OnRightClick coord_t  ,
coord_t 
[virtual]
 

Reimplemented from gui::Surface.

Definition at line 115 of file Menu.cpp.

References gui::Surface::CloseAll(), gui::Surface::GetBond(), and gui::Surface::RemoveAllBonds().

00116 { 00117 Surface *head = this; 00118 00119 while (head -> GetBond()) 00120 { 00121 head = head -> GetBond(); 00122 } 00123 head -> CloseAll(); 00124 head -> RemoveAllBonds(); 00125 }


Member Data Documentation

coord_t gui::Menu::m_h [private]
 

Reimplemented from gui::Surface.

Definition at line 43 of file Menu.h.

Referenced by AddMenuItem(), and CreateMenu().

Menu* gui::Menu::m_pclSubMenu [private]
 

Definition at line 45 of file Menu.h.

Referenced by ActivateSubMenu().

coord_t gui::Menu::m_w [private]
 

Reimplemented from gui::Surface.

Definition at line 42 of file Menu.h.

Referenced by AddMenuItem(), and CreateMenu().


The documentation for this class was generated from the following files:
Generated for My SDL C++ Gui by doxygen 1.3.6

www.TV-friendship.com
The matchmaking service with an all new twist.

Quantum 'Teleportation'
Some thoughts
Page, code, and content Copyright (C) 2004 by Anders Hedström