Guiliani  Version 2.4 revision 5970 (build 3)
CGUIMenu Class Reference

An image-based pull-down menu. More...

#include <GUIMenu.h>

Inheritance diagram for CGUIMenu:

Public Member Functions

 CGUIMenu (CGUIMenuBase *const pParent, const eC_Value &vX, const eC_Value &vY, const eC_Value &vWidth, const eC_Value &vHeight, const ObjectHandle_t &eID=NO_HANDLE)
 
 CGUIMenu (CGUIMenuBase *const pParent, const CGUIRect &kRect, const ObjectHandle_t &eID=NO_HANDLE)
 
 CGUIMenu ()
 
 ~CGUIMenu ()
 This destructor is automatically virtual, as the base class destructor is virtual.
 
void Close ()
 
virtual eC_Bool DoClick (const eC_Value &vAbsX=eC_FromInt(-1), const eC_Value &vAbsY=eC_FromInt(-1))
 
virtual eC_Bool DoMouseEnter (const eC_Value &vAbsX, const eC_Value &vAbsY)
 
virtual eC_Bool FourWayNext (FourWayFocus_t eFocusDirection)
 
virtual void GetFocus ()
 
virtual void LoseFocus ()
 
void Open (const CGUIMenuItem *pkRefObj, CGUIMenuBase *pkObjOpensThisMenu)
 
virtual void ReadFromStream ()
 
void SelectFirstItemBackward ()
 Finds the first selectable item from the end of the list and selects it.
 
void SelectFirstItemForward ()
 Finds the first selectable item and selects it.
 
virtual void SetOptimalPosition (const CGUIMenuItem *pkRefObj)
 
void SetParent (CGUIMenuBase *const pParent)
 
virtual void WriteToStream (const eC_Bool bWriteClassID=false)
 
- Public Member Functions inherited from CGUIMenuBase
eC_Bool AddItem (CGUIMenuItem *pMenuItem, CGUIMenu *pSubMenu=NULL, CGUIMenuItemSeparator *pItemSeparator=NULL)
 
virtual eC_Bool DoDraw ()
 
virtual eC_Bool DoKeyDown (const GUIKeyIdentifier_t &eKeyIdentifier, const eC_UInt &uiModifiers)
 
virtual eC_Bool FocusAny ()
 
eC_Bool IsOpen ()
 
eC_Bool IsSubmenu () const
 
virtual void ReleaseSelection ()
 Deselects any potentially selected item in the menu and automatically closes any related menus.
 
void RemoveItem (CGUIMenuItem *pMenuItem)
 
void SetBgImage (const ImageResource_t &eBgImage)
 
void SetIsSubmenu (const eC_Bool bIsSubmenu)
 
- Public Member Functions inherited from CGUIRepositionCompositeObject
 CGUIRepositionCompositeObject (CGUICompositeObject *const pParent, const eC_Value &vX, const eC_Value &vY, const eC_Value &vWidth, const eC_Value &vHeight, const CGUILayoutHelper::RepositionAlignment_t &eBasePoint=CGUILayoutHelper::REPOSITION_ALIGN_INVALID, const eC_Value &vGap=eC_FromInt(0), const ObjectHandle_t &eID=NO_HANDLE)
 
 CGUIRepositionCompositeObject (CGUICompositeObject *const pParent, const CGUIRect &kRect, const CGUILayoutHelper::RepositionAlignment_t &eBasePoint=CGUILayoutHelper::REPOSITION_ALIGN_INVALID, const eC_Value &vGap=eC_FromInt(0), const ObjectHandle_t &eID=NO_HANDLE)
 
 CGUIRepositionCompositeObject ()
 
virtual ~CGUIRepositionCompositeObject ()
 
eC_Value GetGap () const
 
void RepositionChildren ()
 
void SetBasePoint (CGUILayoutHelper::RepositionAlignment_t eNewBasePoint)
 
void SetBorder (const eC_Value vBorder)
 
void SetGap (const eC_Value vGap)
 
- Public Member Functions inherited from CGUICompositeObject
 CGUICompositeObject ()
 
 CGUICompositeObject (CGUICompositeObject *const pParent, const eC_Value &vX, const eC_Value &vY, const eC_Value &vWidth, const eC_Value &vHeight, const ObjectHandle_t &eID=NO_HANDLE)
 
 CGUICompositeObject (CGUICompositeObject *const pParent, const CGUIRect &kRect, const ObjectHandle_t &eID=NO_HANDLE)
 
 CGUICompositeObject (const CGUICompositeObject &kSource)
 
virtual ~CGUICompositeObject ()
 This destructor is automatically virtual, as the base class destructor is virtual.
 
eC_Bool BringToFront (const CGUIObject *pkObject)
 
eC_Bool CanBeCyclicFocussed () const
 
virtual eC_Bool DoPostDraw ()
 
void DrawOnTop (CGUIObject *pkObject)
 
void DrawOnTopOf (CGUIObject *const pkObject, CGUIObject *const pDrawOnTopOf)
 
virtual CGUIObjectFindObject (const eC_Value &vAbsX, const eC_Value &vAbsY)
 
void Flip (const eC_Bool &rbVertical)
 
virtual eC_Bool FocusNext (CGUIObject *const pRefObj=NULL, const eC_Bool &bSubTreeOfRefObjDone=false)
 
virtual eC_Bool FocusPrevious (CGUIObject *const pRefObj=NULL, const eC_Bool &bSubTreeOfRefObjDone=false)
 
const CGUIObjectGetAndCheckObjectByID (ObjectHandle_t eObjID, const eC_String &kObjectName) const
 
CGUIObjectGetAndCheckObjectByID (ObjectHandle_t eObjID, const eC_String &kObjectName)
 
CGUIObjectGetChild (const eC_UInt uIndex) const
 
CGUIObjectGetChild (const eC_UInt uIndex)
 
const ObjectPtrListGetChildObjectsList () const
 
const ObjectPtrListGetDrawOrderList () const
 
eC_Int GetIndexOfChild (const CGUIObject *pkObject) const
 
eC_UInt GetNumberOfChildren () const
 
CGUIObjectGetObjectByID (const ObjectHandle_t &eID, const eC_Bool &bOnlyVisible=false)
 
const CGUIObjectGetObjectByID (const ObjectHandle_t &eID, const eC_Bool &bOnlyVisible=false) const
 
eC_Bool InsertChildAt (const eC_UInt cuiIndex, CGUIObject *pkChild)
 
void InvalidateChildren ()
 Invalidates all chidren, but not this parent.
 
eC_Bool IsAncestorOf (const CGUIObject *pkObject) const
 
virtual eC_Bool IsCompositeObject () const
 
eC_Bool LowerOneLevel (const CGUIObject *pkObject)
 
CGUICompositeObjectoperator= (const CGUICompositeObject &kSource)
 
eC_Bool RaiseOneLevel (const CGUIObject *pkObject)
 
virtual void RefreshLayout (CGUILayouter::eMovedEdges_t eMovedEdges) const
 
void RemoveAllChildren ()
 
void Rotate (const eC_UInt &ruiDegrees, const eC_Bool &rbFirst=false)
 
eC_Bool SendToBack (const CGUIObject *pkObject)
 
virtual void SetClickThrough (const eC_Bool &bClickThrough)
 
virtual void SetClickThrough (const eC_Bool &bClickThrough, const eC_Bool &bChildrenClickThrough)
 
void SetCyclicFocus (const eC_Bool &bCyclicFocus)
 
virtual void SetDisabled (const eC_Bool &bDisabled)
 
virtual void SetDisabled (const eC_Bool &bDisabled, const eC_Bool &bChildrenDisabled)
 
virtual void SetFocussable (const eC_Bool &bFocussable)
 
virtual void SetFocussable (const eC_Bool &bFocussable, const eC_Bool &bChildrenFocussable)
 
virtual void SetGrayedOut (const eC_Bool &bGrayedOut)
 
virtual void SetGrayedOut (const eC_Bool &bGrayedOut, const eC_Bool &bChildrenGrayedOut)
 
virtual void SetHeight (const eC_Value &vY)
 
virtual void SetInvisible (const eC_Bool &bInvisible)
 
virtual void SetInvisible (const eC_Bool &bInvisible, const eC_Bool &bChildrenInvisible)
 
virtual void SetWidth (const eC_Value &vX)
 
- Public Member Functions inherited from CGUIObject
 CGUIObject (CGUICompositeObject *const pParent, const eC_Value &vX, const eC_Value &vY, const eC_Value &vWidth, const eC_Value &vHeight, const ObjectHandle_t &eID=NO_HANDLE)
 
 CGUIObject (CGUICompositeObject *const pParent, const CGUIRect &kRect, const ObjectHandle_t &eID=NO_HANDLE)
 
 CGUIObject ()
 
 CGUIObject (const CGUIObject &kSource)
 
virtual ~CGUIObject ()
 
void AddValueObserver (CGUIObserver *pObserver)
 
eC_Bool CalculateInvalidatedRect (CGUIRect &rRect) const
 
virtual eC_Bool ClaimFocus ()
 
virtual void CreateSnapshot (eC_UInt uiBackColor=0x00)
 
eC_Bool DataPoolConnectorExists () const
 
void DeleteSnapshot ()
 
virtual void DisableSnapshotDrawing (eC_Bool bDeleteSnapshot=true)
 
virtual eC_Bool DoDrawSnapshot ()
 
virtual void EnableSnapshotDrawing ()
 
CGUIRect GetAbsRect () const
 
eC_Value GetAbsXPos () const
 
eC_Value GetAbsXPosCenter () const
 
eC_Value GetAbsXPosREdge () const
 
eC_Value GetAbsYPos () const
 
eC_Value GetAbsYPosBEdge () const
 
eC_Value GetAbsYPosCenter () const
 
eC_UByte GetAlpha () const
 
CGUIBehaviourDecoratorGetBehaviour ()
 
const CGUIBehaviourDecoratorGetBehaviour () const
 
GUIBitmapPlaneID_t GetBitmapID () const
 
CGUIBitmapPlaneGetBitmapPlane () const
 
CGUIRect GetCurrentAbsRect () const
 
eC_Value GetCurrentAbsXPos () const
 
eC_Value GetCurrentAbsXPosCenter () const
 
eC_Value GetCurrentAbsXPosREdge () const
 
eC_Value GetCurrentAbsYPos () const
 
eC_Value GetCurrentAbsYPosBEdge () const
 
eC_Value GetCurrentAbsYPosCenter () const
 
CDataPoolConnectorGetDataPoolConnector ()
 
eC_Value GetDistanceBottom () const
 
eC_Value GetDistanceRight () const
 
eC_Value GetHalfHeight () const
 
eC_Value GetHalfWidth () const
 
eC_Value GetHeight () const
 
ObjectHandle_t GetID () const
 
CGUILayouterGetLayouter ()
 
const CGUILayouterGetLayouter () const
 
ObjectHandle_t GetNeighborBottomID () const
 
ObjectHandle_t GetNeighborLeftID () const
 
ObjectHandle_t GetNeighborRightID () const
 
ObjectHandle_t GetNeighborTopID () const
 
CGUIObjectGetObjectByID (const ObjectHandle_t &eID, const eC_Bool &bOnlyVisible=false)
 
const CGUIObjectGetObjectByID (const ObjectHandle_t &eID, const eC_Bool &bOnlyVisible=false) const
 
CGUIRect GetOriginRect () const
 
CGUICompositeObjectGetParent ()
 
const CGUICompositeObjectGetParent () const
 
CGUIRect GetRelRect () const
 
eC_Value GetRelXPos () const
 
eC_Value GetRelXPosCenter () const
 
eC_Value GetRelXPosREdge () const
 
eC_Value GetRelYPos () const
 
eC_Value GetRelYPosBEdge () const
 
eC_Value GetRelYPosCenter () const
 
eC_Value GetWidth () const
 
void InvalidateArea ()
 
eC_Bool IsClickable () const
 
eC_Bool IsClickThrough () const
 
eC_Bool IsDescendantOf (const CGUIObject *const pAncestor) const
 
eC_Bool IsDisabled () const
 
eC_Bool IsDragable () const
 
eC_Bool IsDragged () const
 
eC_Bool IsDrawingSnapshot () const
 
eC_Bool IsFocussable () const
 
eC_Bool IsFocussed () const
 
eC_Bool IsGrayedOut () const
 
virtual eC_Bool IsHighlightable () const
 
eC_Bool IsHighlighted () const
 
eC_Bool IsInvisible () const
 
eC_Bool IsPressed () const
 
eC_Bool IsStopFocus () const
 
void NotifyValueObservers (const CGUIValue &kValue, const eC_UInt uiX=0, const eC_UInt uiY=0)
 
CGUIObjectoperator= (const CGUIObject &kSource)
 
void RemoveValueObserver (CGUIObserver *pObserver)
 
void RenderToBitmap (eC_UInt uiBitmapID, eC_Value vXOffset=eC_FromInt(0), eC_Value vYOffset=eC_FromInt(0))
 
eC_Bool RequestFocus ()
 
void SetAlpha (eC_UByte ubAlpha)
 
void SetBehaviour (CGUIBehaviourDecorator *pBehaviour)
 
void SetClickThrough (const eC_Bool &bClickThrough)
 
void SetID (const ObjectHandle_t &eID)
 
void SetLayouter (CGUILayouter *pLayouter)
 
void SetNeighborBottomID (const ObjectHandle_t eNewNeighborBottomID)
 
void SetNeighborIDs (const ObjectHandle_t eNewNeighborLeftID, const ObjectHandle_t eNewNeighborRightID, const ObjectHandle_t eNewNeighborTopID, const ObjectHandle_t eNewNeighborBottomID)
 
void SetNeighborLeftID (const ObjectHandle_t eNewNeighborLeftID)
 
void SetNeighborRightID (const ObjectHandle_t eNewNeighborRightID)
 
void SetNeighborTopID (const ObjectHandle_t eNewNeighborTopID)
 
void SetRelRect (const CGUIRect &kNewRect)
 
virtual void SetRelXPos (const eC_Value &vX)
 
void SetRelXPosCenter (const eC_Value &vXCenter)
 
void SetRelXPosREdge (const eC_Value &vX)
 
virtual void SetRelYPos (const eC_Value &vY)
 
void SetRelYPosBEdge (const eC_Value &vY)
 
void SetRelYPosCenter (const eC_Value &vYCenter)
 
void SetStopFocus (const eC_Bool &bDontFocusToParent)
 
virtual eC_Bool SetValue (const CGUIValue &rkValue)
 
virtual eC_Bool SetValue (CDataPoolEntry &rkValue)
 
- Public Member Functions inherited from CGUIBehaviour
virtual eC_Bool DoUserEvent (CGUIEvent *const pEvent)
 
virtual void OnCreate ()
 
virtual void OnDelete ()
 
virtual void OnHide ()
 
virtual void OnShow ()
 
virtual eC_Bool DoLongClick (const eC_Value &vAbsX=eC_FromInt(-1), const eC_Value &vAbsY=eC_FromInt(-1))
 
virtual eC_Bool DoDoubleClick (const eC_Value &vAbsX=eC_FromInt(-1), const eC_Value &vAbsY=eC_FromInt(-1))
 
virtual eC_Bool DoButtonDown (const eC_Value &vAbsX=eC_FromInt(-1), const eC_Value &vAbsY=eC_FromInt(-1))
 
virtual eC_Bool DoButtonUp (const eC_Value &vAbsX=eC_FromInt(-1), const eC_Value &vAbsY=eC_FromInt(-1))
 
virtual eC_Bool DoDrag (const eC_Value &vDeltaX=eC_FromInt(-1), const eC_Value &vDeltaY=eC_FromInt(-1), const eC_Value &vAbsX=eC_FromInt(-1), const eC_Value &vAbsY=eC_FromInt(-1))
 
virtual eC_Bool DoDragEnd (const eC_Value &vAbsX=eC_FromInt(-1), const eC_Value &vAbsY=eC_FromInt(-1))
 
virtual eC_Bool DoMouseLeave (const eC_Value &vAbsX=eC_FromInt(-1), const eC_Value &vAbsY=eC_FromInt(-1))
 
virtual eC_Bool DoMouseMove (const eC_Value &vAbsX=eC_FromInt(-1), const eC_Value &vAbsY=eC_FromInt(-1))
 
virtual eC_Bool Decrease ()
 
virtual eC_Bool Increase ()
 
virtual eC_Bool DoKeyUp (const GUIKeyIdentifier_t &eKeyIdentifier, const eC_UInt &uiModifiers)
 
virtual eC_Bool DoChar (const eC_UInt &uiKey, const GUIKeyIdentifier_t &eKeyIdentifier, const eC_UInt &uiModifiers)
 
virtual eC_Bool DoScrollUp (const eC_Value &vAbsX, const eC_Value &vAbsY)
 
virtual eC_Bool DoScrollDown (const eC_Value &vAbsX, const eC_Value &vAbsY)
 
virtual eC_Bool DoScrollLeft (const eC_Value &vAbsX, const eC_Value &vAbsY)
 
virtual eC_Bool DoScrollRight (const eC_Value &vAbsX, const eC_Value &vAbsY)
 
- Public Member Functions inherited from CGUIStreamableObject
const eC_String & GetXMLTag () const
 
void SetXMLTag (const eC_String &kXMLTag)
 
- Public Member Functions inherited from CGUIAnimatable
virtual ~CGUIAnimatable ()
 Destructor. Removes all existing animation callbacks.
 
virtual void DoAnimate (const eC_Value &vTimes=eC_FromInt(1))
 
virtual eC_Bool IsAnimating () const
 
virtual void StartAnimation ()
 
virtual void StopAnimation ()
 

Protected Member Functions

virtual eC_Bool AddObject (CGUIObject *pObject)
 
CGUIMenuFindMenuByPos (const eC_Value &vXPos, const eC_Value &vYPos)
 
void Init ()
 Helper for constructors.
 
virtual void RemoveObject (CGUIObject *pObject)
 
- Protected Member Functions inherited from CGUIMenuBase
 CGUIMenuBase (CGUICompositeObject *const pParent, const eC_Value &vX, const eC_Value &vY, const eC_Value &vWidth, const eC_Value &vHeight, const CGUILayoutHelper::RepositionAlignment_t eBasePoint, const ObjectHandle_t &eID=NO_HANDLE)
 
 CGUIMenuBase (CGUICompositeObject *const pParent, const CGUIRect &kRect, const CGUILayoutHelper::RepositionAlignment_t eBasePoint, const ObjectHandle_t &eID=NO_HANDLE)
 
 CGUIMenuBase ()
 
virtual CGUIMenuBaseGetMenuBar ()
 
void Init ()
 Initialization helper.
 
void SelectMenuItem (CGUIMenuItem *pMenuItem)
 
- Protected Member Functions inherited from CGUICompositeObject
ObjectPtrListGetChildObjectsList ()
 
virtual void HandleDraw (const CGUIRect &ClipRect)
 
- Protected Member Functions inherited from CGUIObject
virtual eC_Bool CreateBitmapPlane ()
 
- Protected Member Functions inherited from CGUIStreamableObject
eC_UInt ReadStreamingHeader (const eC_UInt &uiClassVersion, const eC_UInt &uiClassMinVersion=0) const
 
void WriteStreamingFooter (const eC_Bool &bWriteClassID) const
 
void WriteStreamingHeader (const eC_Bool &bWriteClassID, const eC_Char *const pkClassIDTag, const eC_Int &iClassID, const eC_UInt &uiClassVersion) const
 

Additional Inherited Members

- Public Types inherited from CGUIObject
enum  FourWayFocus_t { FOCUS_LEFT, FOCUS_RIGHT, FOCUS_UP, FOCUS_DOWN }
 
- Static Public Attributes inherited from CGUICompositeObject
static const eC_Char XMLTAG_CHILDREN [] = "Children"
 XML comment tag to be used before writing children to a stream.
 
static const eC_Char XMLTAG_ENDCHILDREN [] = "/Children"
 XML comment tag to be used after writing children to a stream.
 
- Static Public Attributes inherited from CGUIObject
static const eC_Char XMLTAG_ALPHA [] = "Alpha"
 XML tag to be used writing alpha-value into a stream.
 
static const eC_Char XMLTAG_CLICKTHROUGH [] = "ClickThrough"
 XML tag to be used writing clickthrough-state into a stream.
 
static const eC_Char XMLTAG_CONTROLCLASSID [] = "ControlClassID"
 XML tag to be used when writing a control class ID into a stream.
 
static const eC_Char XMLTAG_DISABLED [] = "Disabled"
 XML tag to be used writing disabled-state into a stream.
 
static const eC_Char XMLTAG_FOCUSSABLE [] = "Focussable"
 XML tag to be used writing focussable-state into a stream.
 
static const eC_Char XMLTAG_GRAYEDOUT [] = "GrayedOut"
 XML tag to be used writing grayedout-state into a stream.
 
static const eC_Char XMLTAG_HEIGHT [] = "Height"
 XML tag to be used writing height into a stream.
 
static const eC_Char XMLTAG_INVISIBLE [] = "Invisible"
 XML tag to be used writing invisible-state into a stream.
 
static const eC_Char XMLTAG_OBJECTID [] = "ObjectID"
 XML tag to be used writing object id into a stream.
 
static const eC_Char XMLTAG_OVERRIDDENNEIGHBORS [] = "OverriddenNeighbors"
 XML tag to be used writing overridden neighbors into a stream.
 
static const eC_Char XMLTAG_WIDTH [] = "Width"
 XML tag to be used writing width into a stream.
 
static const eC_Char XMLTAG_XPOS [] = "XPos"
 XML tag to be used writing x-position into a stream.
 
static const eC_Char XMLTAG_YPOS [] = "YPos"
 XML tag to be used writing y-position into a stream.
 
- Static Public Attributes inherited from CGUIBehaviour
static const eC_Char XMLTAG_BEHAVIOURCLASSID [] = "BehaviourClassID"
 XML tag to be used when writing a behaviour class ID into a stream.
 
- Static Public Attributes inherited from CGUIStreamableObject
static const eC_Char XMLTAG_CLASSVERSION [] = "ClassVersion"
 
- Protected Attributes inherited from CGUIMenuBase
eC_Bool m_bIsSubmenu
 Indicate whether the menu is a submenu or not.
 
ImageResource_t m_eBgImage
 Background image for this menu.
 
eC_Int m_iSelectedIndex
 The index of the selected item in the m_kSubMenuItemList.
 
CGUIMenuAndItem::MenuAndItemList m_kMenuItemList
 The list stores the menu item pointer, item separator and corresponding submenu pointer, if available.
 
CGUIMenuBasem_pkObjOpensThisMenu
 

Detailed Description

An image-based pull-down menu.

A CGUIMenu serves as a pull-down menu containing numerous menu-items which can open additional sub-menus. Instances of CGUIMenu may only be attached to either another CGUIMenu (=they are sub-menus) or directly to a CGUIMenuBar (=they are main-menus).

Add a menu item, item separator and/or corresponding submenu by using the AddItem method, and remove them by using the RemoveItem method.

  • Focussing CGUIMenu implements a specific focusing behaviour in its FourWayNext method. It intercepts FOCUS_LEFT and FOCUS_RIGHT events. These will either open the submenu for the currently selected menu item (if any) or close the current menu and move to the next entry within the menubar.
  • DoClick Clicking on a menu item will open the corresponding menu (if any)
  • DoMouseEnter Hovering with the mouse over a menu item which leads to a sub menu will open this menu automatically. Hovering over a menu item will also try to set the focus to this item.
See also
CGUIMenuBar for a comprehensive source-code example

Constructor & Destructor Documentation

◆ CGUIMenu() [1/3]

CGUIMenu::CGUIMenu ( CGUIMenuBase *const  pParent,
const eC_Value &  vX,
const eC_Value &  vY,
const eC_Value &  vWidth,
const eC_Value &  vHeight,
const ObjectHandle_t eID = NO_HANDLE 
)

CGUIMenu constructor.

Parameters
pParentPointer to the designated parent object.
vXX-position relative to its parent object
vYY-position relative to its parent object
vWidthWidth of the CGUIMenu object
vHeightHeight of the CGUIMenu object
eIDObject Identifier of this composite object (choose NO_HANDLE if none is required)

◆ CGUIMenu() [2/3]

CGUIMenu::CGUIMenu ( CGUIMenuBase *const  pParent,
const CGUIRect kRect,
const ObjectHandle_t eID = NO_HANDLE 
)

CGUIMenu constructor.

Parameters
pParentPointer to the designated parent object.
kRectBounding rectangle relative to parent.
eIDObject Identifier of this CGUIMenu object (choose NO_HANDLE if none is required)

◆ CGUIMenu() [3/3]

CGUIMenu::CGUIMenu ( )

CGUIMenu standard constructor.

See also
CGUIObject().

Member Function Documentation

◆ AddObject()

virtual eC_Bool CGUIMenu::AddObject ( CGUIObject pkObject)
inlineprotectedvirtual

Add a new Object to the list of child objects. This will automatically set the child's parent-pointer to this object.

Parameters
pkObjectThe object to be added
Returns
False if the object is already a child of this control or pkObject is NULL, otherwise true.

Reimplemented from CGUICompositeObject.

◆ Close()

void CGUIMenu::Close ( )

Close the menu and adjust the menu back to the original position.

◆ DoClick()

eC_Bool CGUIMenu::DoClick ( const eC_Value &  vAbsX = eC_FromInt(-1),
const eC_Value &  vAbsY = eC_FromInt(-1) 
)
virtual

Called when the object receives a click event. A click can e.g., be the result of a mouse click, a finger press/release sequence on touchscreens, or be triggered by a GK_ACTION keyboard event.

Note
DoClick() should work on the absolute positions of this object, that were set at the time of the passed redraw, as the user expects to click on what he sees and not to click on an object in a newer and probably intermediate state that he currently does not see. Thus, to calculate the relative position (where the mouse button was pressed and released at the same position for in a certain time span, relative to the origin of this object) from the vAbsY argument you must do it like this: vMyRelYPos = vAbsY - GetAbsYPos().
Parameters
vAbsXX-position in screen coordinates where the click occurred
vAbsYY-position in screen coordinates where the click occurred
Returns
True The event has been handled.
False The event has not been handled. In this base implementation it always returns False.

Reimplemented from CGUIBehaviour.

◆ DoMouseEnter()

eC_Bool CGUIMenu::DoMouseEnter ( const eC_Value &  vAbsX,
const eC_Value &  vAbsY 
)
virtual

Specific DoMouseEnter implementation to enhance usability by mouse

Parameters
vAbsXX-position in screen coordinates where the mouse entered the object
vAbsYY-position in screen coordinates where the mouse entered the object
Returns
True If the event has been handled.
False Else.

Reimplemented from CGUIBehaviour.

◆ FindMenuByPos()

CGUIMenu * CGUIMenu::FindMenuByPos ( const eC_Value &  vXPos,
const eC_Value &  vYPos 
)
protected

Find an opened menu that contains the given point. If no opened menu is found, NULL is returned.

Parameters
vXPosabsolute X position.
vYPosabsolute Y position.
Returns
found menu, or NULL if no one is found.

◆ FourWayNext()

eC_Bool CGUIMenu::FourWayNext ( FourWayFocus_t  eFocusDirection)
virtual

Helper function. Declared protected because you may want to add extra functionality to this function in a derived class and then call the base implementation afterwards. Called when the focus should be set to the next control that is to the given direction of the currently focused object. Please use CGUI::FourWayFocusNext() if you want to focus the next control that is in the specific direction of the currently focused object and not this function.

Returns
If true, then the algorithm breaks immediately and will have no effect. Thus, custom controls may override this function slot in order to set the focus to a specific control and afterwards force the 4-way navigation algorithm to stop. The automatism will always return False.
Parameters
eFocusDirectionThe focus direction
See also
CGUI::FourWayFocusNext()

Reimplemented from CGUICompositeObject.

◆ GetFocus()

void CGUIMenu::GetFocus ( )
virtual

Transfer the focus to the currently active item or the first item that can be focused if there is on one is active, otherwise to the parent object.

Reimplemented from CGUIBehaviour.

◆ LoseFocus()

void CGUIMenu::LoseFocus ( )
virtual

If the focus moves out of this menu and there is no item currently selected, the menu shall close.

Reimplemented from CGUIBehaviour.

◆ Open()

void CGUIMenu::Open ( const CGUIMenuItem pkRefObj,
CGUIMenuBase pkObjOpensThisMenu 
)

Open the menu and adjust it to the best position according to the given rectangle.

Parameters
pkRefObjThe reference object used to determine the position where this menu is adjusted to.
pkObjOpensThisMenuThe object that opens this menu.

◆ ReadFromStream()

void CGUIMenu::ReadFromStream ( )
virtual

Reads composite object attributes and children from stream. Reads attributes from the streaming file. Only for use with GUIFactoryManager.

See also
CGUIObject::ReadFromStream()
Exceptions
CGUIStreamingControlExceptionWhen catching a CGUIStreamingControlException from a child, this method adds the object from the exception, resets the object pointer to 'this', then re-throws.

Reimplemented from CGUIMenuBase.

◆ RemoveObject()

virtual void CGUIMenu::RemoveObject ( CGUIObject pkObject)
inlineprotectedvirtual

Removes an object from the list of child objects. This will not delete the object! If you wish to physically delete an object, you should use the C++ delete operator. The destructor of the object will then remove the object from the child list by calling this method.

Parameters
pkObjectThe object to be removed

Reimplemented from CGUICompositeObject.

◆ SetOptimalPosition()

void CGUIMenu::SetOptimalPosition ( const CGUIMenuItem pkRefObj)
virtual

Adjust the position of the menu to show the menu in the best place in the parent.

Parameters
pkRefObjThe reference object used to determine the position where this menu is adjusted to.

◆ SetParent()

void CGUIMenu::SetParent ( CGUIMenuBase *const  pParent)

Specialized SetParent method which will only accept objects of type CGUIMenuBase as parents This ensures that Menus will only get attached to MenuBars or other Menus.

Parameters
pParentThe parent object

◆ WriteToStream()

void CGUIMenu::WriteToStream ( const eC_Bool  bWriteClassID = false)
virtual

Writes all object attributes to the streaming file. StreamWriter has to be initialized. Only for use with GUIStreamWriter.

Parameters
bWriteClassIDThis flag is used to select if writing of ControlID, leading and trailing tags is performed. Only GUIStreamWriter and GUICompositeObject have to set this flag true.
See also
CGUIStreamWriter

Reimplemented from CGUIMenuBase.


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