GG
GG::PopupMenu Class Reference

#include <Menu.h>

Inheritance diagram for GG::PopupMenu:
GG::Wnd

List of all members.

- Public Types inherited from GG::Wnd
enum  ChildClippingMode {
  DontClip,
  ClipToClient,
  ClipToWindow,
  ClipToClientAndWindowSeparately
}
typedef std::map< const Wnd
*, bool >::iterator 
DropsAcceptableIter
virtual ~Wnd ()
bool Interactive () const
bool RepeatButtonDown () const
bool Dragable () const
bool Resizable () const
bool OnTop () const
bool Modal () const
ChildClippingMode GetChildClippingMode () const
bool NonClientChild () const
bool Visible () const
const std::string & Name () const
const std::string & DragDropDataType () const
virtual void DropsAcceptable (DropsAcceptableIter first, DropsAcceptableIter last, const Pt &pt) const
Pt UpperLeft () const
Pt LowerRight () const
Pt RelativeUpperLeft () const
Pt RelativeLowerRight () const
X Width () const
Y Height () const
int ZOrder () const
Pt Size () const
Pt MinSize () const
Pt MaxSize () const
virtual Pt MinUsableSize () const
virtual Pt ClientLowerRight () const
Pt ClientSize () const
X ClientWidth () const
Y ClientHeight () const
Pt ScreenToWindow (const Pt &pt) const
Pt ScreenToClient (const Pt &pt) const
virtual bool InWindow (const Pt &pt) const
virtual bool InClient (const Pt &pt) const
const std::list< Wnd * > & Children () const
WndParent () const
WndRootParent () const
LayoutGetLayout () const
LayoutContainingLayout () const
const std::vector
< BrowseInfoMode > & 
BrowseModes () const
const std::string & BrowseInfoText (std::size_t mode) const
const boost::shared_ptr
< StyleFactory > & 
GetStyleFactory () const
virtual WndRegion WindowRegion (const Pt &pt) const
void SetDragDropDataType (const std::string &data_type)
virtual void StartingChildDragDrop (const Wnd *wnd, const Pt &offset)
virtual void AcceptDrops (const std::vector< Wnd * > &wnds, const Pt &pt)
virtual void CancellingChildDragDrop (const std::vector< const Wnd * > &wnds)
virtual void ChildrenDraggedAway (const std::vector< Wnd * > &wnds, const Wnd *destination)
void SetName (const std::string &name)
void Hide (bool children=true)
void Show (bool children=true)
virtual void ModalInit ()
void SetChildClippingMode (ChildClippingMode mode)
void NonClientChild (bool b)
void MoveTo (const Pt &pt)
void OffsetMove (const Pt &pt)
virtual void SizeMove (const Pt &ul, const Pt &lr)
void Resize (const Pt &sz)
void SetMinSize (const Pt &sz)
void SetMaxSize (const Pt &sz)
void AttachChild (Wnd *wnd)
void MoveChildUp (Wnd *wnd)
void MoveChildDown (Wnd *wnd)
void DetachChild (Wnd *wnd)
void DetachChildren ()
void DeleteChild (Wnd *wnd)
void DeleteChildren ()
void InstallEventFilter (Wnd *wnd)
void RemoveEventFilter (Wnd *wnd)
void HorizontalLayout ()
void VerticalLayout ()
void GridLayout ()
void SetLayout (Layout *layout)
void RemoveLayout ()
LayoutDetachLayout ()
void SetLayoutBorderMargin (unsigned int margin)
void SetLayoutCellMargin (unsigned int margin)
void EndRun ()
void SetBrowseModeTime (unsigned int time, std::size_t mode=0)
void SetBrowseInfoWnd (const boost::shared_ptr< BrowseInfoWnd > &wnd, std::size_t mode=0)
void ClearBrowseInfoWnd (std::size_t mode=0)
void SetBrowseText (const std::string &text, std::size_t mode=0)
void SetBrowseModes (const std::vector< BrowseInfoMode > &modes)
void SetStyleFactory (const boost::shared_ptr< StyleFactory > &factory)
 GG_ABSTRACT_EXCEPTION (Exception)
 GG_CONCRETE_EXCEPTION (BadLayout, GG::Wnd, Exception)
 Wnd ()
 Wnd (X x, Y y, X w, Y h, Flags< WndFlag > flags=INTERACTIVE|DRAGABLE)
DragDropRenderingState GetDragDropRenderingState () const
virtual void LButtonDown (const Pt &pt, Flags< ModKey > mod_keys)
virtual void LDoubleClick (const Pt &pt, Flags< ModKey > mod_keys)
virtual void MButtonDown (const Pt &pt, Flags< ModKey > mod_keys)
virtual void MDrag (const Pt &pt, const Pt &move, Flags< ModKey > mod_keys)
virtual void MButtonUp (const Pt &pt, Flags< ModKey > mod_keys)
virtual void MClick (const Pt &pt, Flags< ModKey > mod_keys)
virtual void MDoubleClick (const Pt &pt, Flags< ModKey > mod_keys)
virtual void RButtonDown (const Pt &pt, Flags< ModKey > mod_keys)
virtual void RDrag (const Pt &pt, const Pt &move, Flags< ModKey > mod_keys)
virtual void RDoubleClick (const Pt &pt, Flags< ModKey > mod_keys)
virtual void MouseEnter (const Pt &pt, Flags< ModKey > mod_keys)
virtual void MouseLeave ()
virtual void MouseWheel (const Pt &pt, int move, Flags< ModKey > mod_keys)
virtual void DragDropEnter (const Pt &pt, const std::map< Wnd *, Pt > &drag_drop_wnds, Flags< ModKey > mod_keys)
virtual void DragDropHere (const Pt &pt, const std::map< Wnd *, Pt > &drag_drop_wnds, Flags< ModKey > mod_keys)
virtual void DragDropLeave ()
virtual void KeyPress (Key key, boost::uint32_t key_code_point, Flags< ModKey > mod_keys)
virtual void KeyRelease (Key key, boost::uint32_t key_code_point, Flags< ModKey > mod_keys)
virtual void GainingFocus ()
virtual void LosingFocus ()
virtual void TimerFiring (unsigned int ticks, Timer *timer)
virtual bool EventFilter (Wnd *w, const WndEvent &event)
void HandleEvent (const WndEvent &event)
void ForwardEventToParent ()
void BeginClipping ()
void EndClipping ()
void BeginNonclientClipping ()
void EndNonclientClipping ()

Signal Types

typedef boost::signal< void(int)> BrowsedSignalType

Structors

 PopupMenu (X x, Y y, const boost::shared_ptr< Font > &font, const MenuItem &m, Clr text_color=CLR_WHITE, Clr color=CLR_BLACK, Clr interior=CLR_SHADOW)

Accessors

BrowsedSignalType BrowsedSignal
virtual Pt ClientUpperLeft () const
int MenuID () const
Clr BorderColor () const
Clr InteriorColor () const
Clr TextColor () const
Clr HiliteColor () const
Clr SelectedTextColor () const
const boost::shared_ptr< Font > & GetFont () const
const MenuItemMenuData () const
const std::vector< Rect > & OpenLevels () const
const std::vector< std::size_t > & Caret () const
const MenuItemItemSelected () const

Mutators

virtual void Render ()
virtual void LButtonUp (const Pt &pt, Flags< ModKey > mod_keys)
virtual void LClick (const Pt &pt, Flags< ModKey > mod_keys)
virtual void LDrag (const Pt &pt, const Pt &move, Flags< ModKey > mod_keys)
virtual void RButtonUp (const Pt &pt, Flags< ModKey > mod_keys)
virtual void RClick (const Pt &pt, Flags< ModKey > mod_keys)
virtual void MouseHere (const Pt &pt, Flags< ModKey > mod_keys)
virtual bool Run ()
void SetBorderColor (Clr clr)
void SetInteriorColor (Clr clr)
void SetTextColor (Clr clr)
void SetHiliteColor (Clr clr)
void SetSelectedTextColor (Clr clr)

Additional Inherited Members

- Static Public Member Functions inherited from GG::Wnd
static unsigned int DefaultBrowseTime ()
static void SetDefaultBrowseTime (unsigned int time)
static const boost::shared_ptr
< BrowseInfoWnd > & 
DefaultBrowseInfoWnd ()
static void SetDefaultBrowseInfoWnd (const boost::shared_ptr< BrowseInfoWnd > &browse_info_wnd)
- Protected Types inherited from GG::Wnd
enum  DragDropRenderingState {
  NOT_DRAGGED,
  IN_PLACE_COPY,
  DRAGGED_OVER_UNACCEPTING_DROP_TARGET,
  DRAGGED_OVER_ACCEPTING_DROP_TARGET
}
- Protected Attributes inherited from GG::Wnd
bool m_done

Detailed Description

A modal pop-up menu.

PopupMenu gives calling code the abiltiy to create a pop-up menu (usually in response to a right mouse click), allow the pop-up to execute, and then obtain an integer ID representing the selected menu item, by calling MenuID(). If no menu item has been selected, MenuID() returns 0. Though every MenuItem in a PopupMenu may be attached to a slot directly, it is not recommended. The intent of this class is to act as a tool to get immediate input from the user, inline. However, attaching MenuItem signals directly to slots will work, and it will certainly be useful in some cases to do this. Also, if some action is to be taken as the user browses the menu items, such as displaying some visual cue to indicate the result of chosing a particular menu entry, you can attach a slot function to the BrowsedSignalType object returned by BrowsedSignal. Whenever the mouse moves to a new menu item, this signal is emitted with the ID number of the item under the cursor.

Definition at line 231 of file Menu.h.


Constructor & Destructor Documentation

GG::PopupMenu::PopupMenu ( X  x,
Y  y,
const boost::shared_ptr< Font > &  font,
const MenuItem m,
Clr  text_color = CLR_WHITE,
Clr  color = CLR_BLACK,
Clr  interior = CLR_SHADOW 
)

Ctor. Parameter m should contain the desired menu in its next_level member.


Member Function Documentation

virtual Pt GG::PopupMenu::ClientUpperLeft ( ) const
virtual

Returns upper-left corner of window's client area in screen coordinates (or of the entire area, if no client area is specified). Virtual because different windows have different shapes (and so ways of calculating client area).

Reimplemented from GG::Wnd.

virtual void GG::PopupMenu::Render ( )
virtual

Draws this Wnd. Note that Wnds being dragged for a drag-and-drop operation are rendered twice – once in-place as normal, once in the location of the drag operation, attached to the cursor. Such Wnds may wish to render themselves differently in those two cases. To determine which render is being performed, they can call GUI::GetGUI()->RenderingDragDropWnds().

Reimplemented from GG::Wnd.

virtual void GG::PopupMenu::LButtonUp ( const Pt pt,
Flags< ModKey >  mod_keys 
)
virtual

Respond to release of left mouse button outside this Wnd, if it was originally depressed over this Wnd. A Wnd will receive an LButtonUp() message whenever a drag that started over its area ends, even if the cursor is not currently over the window when this happens.

Reimplemented from GG::Wnd.

virtual void GG::PopupMenu::LClick ( const Pt pt,
Flags< ModKey >  mod_keys 
)
virtual

Respond to release of left mouse button over this Wnd, if it was also originally depressed over this Wnd. A Wnd will receive an LButtonUp() message whenever a drag that started over its area ends over its area as well.

Reimplemented from GG::Wnd.

virtual void GG::PopupMenu::LDrag ( const Pt pt,
const Pt move,
Flags< ModKey >  mod_keys 
)
virtual

Respond to left button drag msg (even if this Wnd is not dragable). Drag messages are only sent to the window over which the button was pressed at the beginning of the drag. A window receives this whenever any input device button is down and the cursor is moving while over the window. The window will also receive drag messages when the mouse is being dragged outside the window's area.

Reimplemented from GG::Wnd.

virtual void GG::PopupMenu::RButtonUp ( const Pt pt,
Flags< ModKey >  mod_keys 
)
virtual

Respond to release of right mouse button outside this Wnd, if it was originally depressed over this Wnd.

See also:
LButtonUp()

Reimplemented from GG::Wnd.

virtual void GG::PopupMenu::RClick ( const Pt pt,
Flags< ModKey >  mod_keys 
)
virtual

Respond to release of right mouse button over this Wnd, if it was also originally depressed over this Wnd.

See also:
LClick()

Reimplemented from GG::Wnd.

virtual void GG::PopupMenu::MouseHere ( const Pt pt,
Flags< ModKey >  mod_keys 
)
virtual

Respond to cursor moving about within the Wnd, or to cursor lingering within the Wnd for a long period of time. A MouseHere() message will not be generated the first time the cursor enters the window's area. In that case, a MouseEnter() message is generated.

Reimplemented from GG::Wnd.

virtual bool GG::PopupMenu::Run ( )
virtual

This executes a modal window and gives it its modality. For non-modal windows, this function is a no-op. It returns false if the window is non-modal, or true after successful modal execution.

Reimplemented from GG::Wnd.


The documentation for this class was generated from the following file: