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

gui::PopupMenuItem Class Reference

#include <PopupMenuItem.h>

Inheritance diagram for gui::PopupMenuItem:

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

Collaboration graph
[legend]
List of all members.

Public Member Functions

 PopupMenuItem (Surface *, const string &, TTFont *=NULL, int id=0, SurfaceHelper *=NULL)
 ~PopupMenuItem ()
void OnClick (coord_t, coord_t)
void Draw ()
void DumpMembers (FILE *)

Private Attributes

int m_id
Menum_pclSubmenu

Constructor & Destructor Documentation

gui::PopupMenuItem::PopupMenuItem Surface ,
const string &  ,
TTFont = NULL,
int  id = 0,
SurfaceHelper = NULL
 

Definition at line 61 of file PopupMenuItem.cpp.

00062 :MenuItem(s,str,font,pclHelper) 00063 ,m_id(id) 00064 ,m_pclSubmenu(NULL) 00065 { 00066 }

gui::PopupMenuItem::~PopupMenuItem  ) 
 

Definition at line 69 of file PopupMenuItem.cpp.

References m_pclSubmenu.

00070 { 00071 if (m_pclSubmenu) 00072 { 00073 delete m_pclSubmenu; 00074 } 00075 }


Member Function Documentation

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

Reimplemented from gui::MenuItem.

Definition at line 121 of file PopupMenuItem.cpp.

References gui::coord_t, DIST, gui::Surface::GetClientRectPtr(), gui::Surface::GetFgColor(), gui::Surface::GetScreen(), and SDL_fillTriangle().

00122 { 00123 SDL_Rect *a = GetClientRectPtr(); 00124 00125 MenuItem::Draw(); 00126 00127 #define DIST 3 00128 00129 coord_t x1 = a -> x + a -> w - a -> h + DIST; 00130 coord_t y1 = DIST; 00131 coord_t x2 = a -> x + a -> w - DIST; 00132 coord_t y2 = a -> h / 2; 00133 coord_t x3 = x1; 00134 coord_t y3 = a -> h - DIST; 00135 00136 SDL_fillTriangle(GetScreen(), x1,y1, x2,y2, x3,y3, GetFgColor()); 00137 }

void gui::PopupMenuItem::DumpMembers FILE *   )  [virtual]
 

Reimplemented from gui::MenuItem.

Definition at line 140 of file PopupMenuItem.cpp.

References m_id, and util::Xml::Write().

00141 { 00142 Xml xml(fil); 00143 00144 MenuItem::DumpMembers(fil); 00145 00146 xml.Write("POPUPMENUID", (long)m_id); 00147 }

void gui::PopupMenuItem::OnClick coord_t  ,
coord_t 
[virtual]
 

Reimplemented from gui::MenuItem.

Definition at line 78 of file PopupMenuItem.cpp.

References gui::Surface::CalculateAbsolute(), gui::coord_t, DEB, gui::Surface::GetH(), gui::Surface::GetParent(), gui::Surface::GetScreen(), gui::Surface::GetSDLControl(), gui::Surface::GetW(), gui::Surface::GetX(), gui::Surface::GetY(), gui::Surface::InvalidateEv(), m_id, and m_pclSubmenu.

00079 { 00080 Menu *pclMenu = static_cast<Menu *>(GetParent()); 00081 Surface *pclParent = pclMenu -> GetParent(); 00082 coord_t x = pclMenu -> GetX() + pclMenu -> GetW(); 00083 coord_t y = pclMenu -> GetY() + GetY(); 00084 00085 DEB(printf("PopupMenuItem::OnClick()\n");) 00086 00087 if (!m_pclSubmenu) 00088 { 00089 m_pclSubmenu = pclMenu -> GetSubMenu(m_id); 00090 if (!m_pclSubmenu) 00091 { 00092 DEB(printf(" * m_pclSubmenu NULL\n");) 00093 return; 00094 } 00095 if (x + m_pclSubmenu -> GetW() >= GetSDLControl() -> GetScreen() -> w || 00096 y + m_pclSubmenu -> GetH() >= GetSDLControl() -> GetScreen() -> h) 00097 { 00098 DEB(printf(" * m_pclSubmenu offscreen\n");) 00099 delete m_pclSubmenu; 00100 m_pclSubmenu = NULL; 00101 return; 00102 } 00103 else 00104 { 00105 DEB(printf(" * m_pclSubmenu created\n");) 00106 pclParent -> AddChild(m_pclSubmenu); 00107 } 00108 } 00109 else 00110 { 00111 DEB(printf(" * m_pclSubmenu exists\n");) 00112 } 00113 m_pclSubmenu -> SetX(x); 00114 m_pclSubmenu -> SetY(y); 00115 pclParent -> CalculateAbsolute(); 00116 m_pclSubmenu -> InvalidateEv(); 00117 pclMenu -> ActivateSubMenu(m_pclSubmenu, x, y); 00118 }


Member Data Documentation

int gui::PopupMenuItem::m_id [private]
 

Reimplemented from gui::Surface.

Definition at line 40 of file PopupMenuItem.h.

Referenced by DumpMembers(), and OnClick().

Menu* gui::PopupMenuItem::m_pclSubmenu [private]
 

Definition at line 41 of file PopupMenuItem.h.

Referenced by OnClick(), and ~PopupMenuItem().


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