My Project
Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Attributes | Static Protected Attributes | List of all members
ParaEngine::CGUIRoot Class Reference

When rendering scene, root scene and the root GUI are rendered in sequence. More...

#include <GUIRoot.h>

Inheritance diagram for ParaEngine::CGUIRoot:
ParaEngine::CGUIContainer ParaEngine::CGUIBase ParaEngine::IAttributeFields ParaEngine::IObjectDrag ParaEngine::CPaintDevice ParaEngine::IObject ParaEngine::CRefCounted

Public Member Functions

virtual int GetAttributeClassID ()
 attribute class ID should be identical, unless one knows how overriding rules work. More...
 
virtual const char * GetAttributeClassName ()
 a static string, describing the attribute class object's name
 
virtual const char * GetAttributeClassDescription ()
 a static string, describing the attribute class object
 
virtual int InstallFields (CAttributeClass *pClass, bool bOverride)
 this class should be implemented if one wants to add new attribute. More...
 
 ATTRIBUTE_METHOD1 (CGUIRoot, GetUIScale_s, Vector2 *)
 
 ATTRIBUTE_METHOD1 (CGUIRoot, SetUIScale_s, Vector2)
 
 ATTRIBUTE_METHOD1 (CGUIRoot, GetBackBufferSize_s, Vector2 *)
 
 ATTRIBUTE_METHOD1 (CGUIRoot, GetMousePosition_s, Vector2 *)
 
 ATTRIBUTE_METHOD1 (CGUIRoot, SetMousePosition_s, Vector2)
 
 ATTRIBUTE_METHOD1 (CGUIRoot, GetHasIMEFocus_s, bool *)
 
 ATTRIBUTE_METHOD1 (CGUIRoot, SetHasIMEFocus_s, bool)
 
 ATTRIBUTE_METHOD1 (CGUIRoot, GetEnableIME_s, bool *)
 
 ATTRIBUTE_METHOD1 (CGUIRoot, SetEnableIME_s, bool)
 
 ATTRIBUTE_METHOD1 (CGUIRoot, GetUseSystemCursor_s, bool *)
 
 ATTRIBUTE_METHOD1 (CGUIRoot, SetUseSystemCursor_s, bool)
 
 ATTRIBUTE_METHOD1 (CGUIRoot, GetFingerSizePixels_s, int *)
 
 ATTRIBUTE_METHOD1 (CGUIRoot, SetFingerSizePixels_s, int)
 
 ATTRIBUTE_METHOD1 (CGUIRoot, GetFingerStepSizePixels_s, int *)
 
 ATTRIBUTE_METHOD1 (CGUIRoot, SetFingerStepSizePixels_s, int)
 
 ATTRIBUTE_METHOD1 (CGUIRoot, SendKeyDownEvent_s, int)
 
 ATTRIBUTE_METHOD1 (CGUIRoot, SendKeyUpEvent_s, int)
 
 ATTRIBUTE_METHOD1 (CGUIRoot, IsMouseButtonSwapped_s, bool *)
 
 ATTRIBUTE_METHOD1 (CGUIRoot, SetMouseButtonSwapped_s, bool)
 
 ATTRIBUTE_METHOD1 (CGUIRoot, SendInputMethodEvent_s, const char *)
 
 ATTRIBUTE_METHOD1 (CGUIRoot, SetMinimumScreenSize_s, Vector2)
 
 ATTRIBUTE_METHOD1 (CGUIRoot, IsMouseCaptured_s, bool *)
 
 ATTRIBUTE_METHOD1 (CGUIRoot, SetCaptureMouse_s, bool)
 
 ATTRIBUTE_METHOD1 (CGUIRoot, IsNonClient_s, bool *)
 
 ATTRIBUTE_METHOD1 (CGUIRoot, SetIsNonClient_s, bool)
 
ParaEngine::GUIStateGetGUIState ()
 
CDirectMouseGetMouse ()
 
CDirectKeyboardGetKeyboard ()
 
void SetCaptureMouse (bool bCapture)
 set whether we will capture the mouse for the main window. More...
 
bool IsMouseCaptured ()
 
bool PushEvent (const MSG &msg)
 
bool handleTouchEvent (const TouchEvent &touch)
 
bool handleNonClientTest (const MouseEvent &mouseEvent)
 
bool handleAccelerometerEvent (const AccelerometerEvent &accelerator)
 
bool handleGesturePinch (CTouchGesturePinch &pinch_gesture)
 
void TranslateMousePointInTouchEvent (TouchEvent &touch)
 
void SetUIScale (float fScalingX, float fScalingY, bool bEnsureMinimumScreenSize=true, bool bNotifySizeChange=true)
 set the UI scaling. More...
 
void GetUIScale (float *pfScalingX=NULL, float *pfScalingY=NULL)
 set the UI scaling. More...
 
void GetBackBufferSize (float *pWidth, float *pHeight)
 get back buffer size
 
void SetMinimumScreenSize (int nWidth, int nHeight, bool bAutoUIScaling=true)
 the minimum screen size. More...
 
bool UpdateViewport (int nLeft, int nTop, int nWidth, int nHeight, bool bForceUpdate=false)
 update backbuffer size, in case it is changed. More...
 
void PushTopLevelControl (CGUIContainer *pTopLevelControl)
 make the given control the current top level control. More...
 
void RemoveTopLevelControl (CGUIContainer *pTopLevelControl)
 Remove the given top level control and make all top level controls below this control one level up. More...
 
void ClearAllTopLevelControls ()
 clear all top level controls. More...
 
CGUIContainerGetTopLevelControl ()
 get the top level control at level 0
 
CGUIBaseGetIMEFocus () const
 
void SetIMEFocus (CGUIBase *val)
 
void AttachGUIElement (CGUIBase *pParent, CGUIBase *pChild)
 Attach a control to another control. More...
 
void DetachGUIElement (CGUIBase *pChild)
 Detach a control from its parent. More...
 
int DestroyGUIElement (CGUIBase *pObj)
 Destroy destroy a control and all its descendants from the GUI. More...
 
int DestroyGUIElement (const char *sID)
 Destroy destroy a control with the given name and all its descendants from the GUI. More...
 
CGUIBaseGetUIObject (const char *strObjectName)
 Get the first control with the given name. More...
 
CGUIBaseGetUIObject (const std::string &strObjectName)
 
CGUIBaseGetUIObject (int nID)
 get UI object by its ID. More...
 
CGUIBaseGetUIObject (int x, int y)
 Gets the control at a given point It finds the top-most control in all controls. More...
 
CGUIBaseGetDefaultObject (const char *strType)
 get the default template object from which all sub-sequent controls of the same type are cloned(created). More...
 
CGUIBaseGetUIKeyFocus ()
 Gets the key focus of all controls. More...
 
void SetUIKeyFocus (CGUIBase *control)
 set UI key focus to a given control. More...
 
CGUIBaseGetUIMouseFocus ()
 Gets the mouse focus of all controls. More...
 
void SetUIMouseFocus (CGUIBase *control)
 set UI mouse focus to a given control. More...
 
void UseDefaultMouseCursor (bool bUseDefaultMouseCursor)
 set whether to use default mouse cursor or not. More...
 
int HandleUserInput ()
 Dispatch the current events in m_objEvents to its correct receiver. More...
 
void SendKeyDownEvent (int nVirtualkey)
 send a simulated raw key event to ParaEngine. More...
 
void SendKeyUpEvent (int nVirtualkey)
 
void SendInputMethodEvent (const char *pStr)
 
bool IsMouseButtonSwapped ()
 swap left/right mouse button and touch. More...
 
void SetMouseButtonSwapped (bool bSwapped)
 
bool DispatchKeyboardMsg (bool bKeyHandled)
 
void DispatchTouchMouseEvent (bool &bMouseHandled)
 
virtual bool MsgProc (MSG *event)
 First, send the message to the scrollbar. More...
 
virtual void Reset ()
 Resets all objects.
 
virtual void DestroyChildren ()
 Clear all the control's children.
 
void Clear ()
 Delete all contains of the root object.
 
void Initialize ()
 Initialize the root object.
 
void AdvanceGUI (float fElapsedTime)
 Render all the contorls. More...
 
void AddScript ()
 
HRESULT OneTimeGUIInit ()
 
LRESULT MsgProc (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, bool &bNoFurtherProcess)
 
virtual HRESULT Render (GUIState *pGUIState, float fElapsedTime)
 Render function of the control. More...
 
virtual bool OnClick (int MouseState, int X, int Y)
 Any better ways to do it? Added LXZ: 2006.1.1.
 
virtual HRESULT InitDeviceObjects ()
 
HRESULT RestoreDeviceObjects (UINT nBkbufWidth, UINT nBkbufHeight)
 
virtual HRESULT InvalidateDeviceObjects ()
 
virtual HRESULT DeleteDeviceObjects ()
 
virtual int Release ()
 
virtual string ToScript (int option=0)
 
void SetMouseInClient (bool bMouseInClient)
 
bool GetMouseInClient ()
 
bool CheckLoadCursor ()
 just in case the cursor is not loaded successfully in previous frame
 
void ActivateRoot ()
 Activates the GUI Root object.
 
void InactivateRoot ()
 Inactivates the GUI Root object.
 
bool IsActive ()
 whether the GUI is active or not.
 
bool IsKeyboardProcessed ()
 
bool IsMouseProcessed ()
 
bool IsNonClient () const
 whether the mouse is in non-client area, we will allow the user to drag the window if this is true. More...
 
void SetIsNonClient (bool val)
 
void GetMousePosition (int *nX, int *nY) const
 get the current mouse cursor position More...
 
void SetMousePosition (int nX, int nY)
 
int GetFingerSizePixels () const
 touch finger size in pixels. More...
 
void SetFingerSizePixels (int val)
 
int GetFingerStepSizePixels () const
 the minimum UI size to test
 
void SetFingerStepSizePixels (int val)
 
Matrix4Get3DViewProjMatrix ()
 
void Set3DViewProjMatrix (const Matrix4 &mat)
 
void AddToNameMap (const string &name, CGUIBase *pObj)
 Never call this unless you know why: Add an object to name map.
 
void AddToIDMap (int nID, CGUIBase *pObj)
 Never call this unless you know why: Add an object to id map.
 
void SetRenderImageCursor (bool bEnable)
 render the image cursor. More...
 
void SetUseSystemCursor (bool bUseSystem)
 whether to use system cursor. More...
 
bool GetUseSystemCursor ()
 get whether to use system cursor
 
virtual const ITypeGetType () const
 
bool HasIMEFocus ()
 [thread safe] whether there is a visible IME virtual CGUIIMEEditBox that has key focus. More...
 
void SetHasIMEFocus (bool bHasFocus)
 
bool GetEnableIME ()
 whether to use directX rendered ime windows. More...
 
void SetEnableIME (bool bHasIME)
 
void EnableClipCursor (bool bEnable)
 confine the cursor in current window. More...
 
bool IsCursorClipped ()
 whether the cursor is clipped. More...
 
CGUIBaseGetActiveWindow () const
 
void SetActiveWindow (CGUIBase *val)
 
virtual CPaintEnginepaintEngine () const
 Returns the paint engine. More...
 
virtual int metric (PaintDeviceMetric metric) const
 
virtual float GetUIScalingX () const
 
virtual float GetUIScalingY () const
 
virtual float GetViewportLeft () const
 
virtual float GetViewportTop () const
 
CPainterGetPainter ()
 
- Public Member Functions inherited from ParaEngine::CGUIContainer
 ATTRIBUTE_DEFINE_CLASS (CGUIContainer)
 
virtual int GetChildCount ()
 
virtual GUIBase_List_Type * GetChildren ()
 Gets the control's children. More...
 
virtual CGUIBaseGetChildByID (int nChildID)
 get a child node by its id More...
 
virtual CGUIBaseGetChildByName (const string &name)
 get the first child node whose name is name. More...
 
void AddChild (CGUIBase *pChild, int nIndex=-1)
 add a child object. More...
 
bool SortChildrenByZOrder ()
 Sort children by z-order. More...
 
virtual int GetZOrder () const
 z order affect the order of rendering. More...
 
virtual void SetDepth (float fDepth)
 set the 3D depth. More...
 
void SetKeyFocus (CGUIBase *control)
 Set key focus of this control. More...
 
void SetMouseFocus (CGUIBase *control)
 Set mouse focus of this control. More...
 
virtual CGUIBaseGetKeyFocus ()
 Gets the direct key focus of the current control. More...
 
virtual CGUIBaseGetMouseFocus ()
 Gets the direct mouse focus of the current control. More...
 
int GetScrollType ()
 Get the scroll type of the control. More...
 
void SetScrollType (int etype)
 Set the scroll type of the control. More...
 
virtual bool IsScrollable ()
 return true if it is scrollable. More...
 
void SetScrollable (bool bScrollable)
 set scrollable More...
 
void ResetScrollbar ()
 Reset the scroll bar.
 
virtual CGUIBaseGetObjectAtPoint (int x, int y)
 Gets the direct object at the given point. More...
 
virtual CGUIBaseGetObjectAtPointRecursive (int x, int y)
 Gets the deepest non-click-through object at the given point. More...
 
virtual void Begin (GUIState *pGUIState, float fElapsedTime)
 Render a mask of the container to ensure none of its descendants is rendered outside its boundary. More...
 
virtual void End (GUIState *pGUIState, float fElapsedTime)
 Do some fininsh-ups after render. More...
 
virtual bool OnFocusOut ()
 
void SetFastRender (bool fastrender)
 
bool GetFastRender ()
 
virtual void UpdateScroll (int nXDelta, int nYDelta)
 Tell the container how many items are scrolled in both X and Y direction. More...
 
virtual void UpdateRects ()
 
virtual bool InvalidateRect (const RECT *lpRect)
 adds a rectangle to the specified window's update region. More...
 
void UpdateScrollSize ()
 
virtual void UpdateClientRect (const CGUIPosition &pos, bool unupdate=false)
 this function will update the client rectangle of this object. More...
 
virtual void InitObject (const char *strObjectName, const char *alignment, int x, int y, int width, int height)
 
virtual HRESULT RestoreDeviceObjects ()
 
virtual void NextKeyFocus ()
 
virtual bool ActivateDefaultButton ()
 click the default button inside this container. More...
 
virtual CGUIButtonGetDefaultButton ()
 get the default button inside this container. More...
 
virtual bool ActivateNextEdit (CGUIEditBox *curCtrl=nullptr)
 
virtual CGUIEditBoxGetNextEdit (CGUIEditBox *curCtrl=nullptr)
 get the next editbox inside this container. More...
 
virtual GUITextureElementGetTextureElement (const char *texturename)
 Get the texture element. More...
 
void SetScrollbarWidth (int width)
 
int GetScrollbarWidth () const
 
void Clone (IObject *pobj) const
 This is not a complete clone. More...
 
IObjectClone () const
 Clone the object's contains and return a pointer to the newly created object. More...
 
virtual void BringToFront (CGUIBase *obj)
 Bring the obj to the front of z-order if the obj is child of this container.
 
virtual void SendToBack (CGUIBase *obj)
 Send the obj to the back of z-order if the obj is child of this container.
 
virtual void SetVisible (bool visible)
 If set invisible, the control will make itself not on top.
 
virtual void SetCandrag (bool bCandrag)
 If set dragable, the control will make itself not on top.
 
virtual void SetTopLevel (bool value)
 Sets the container as the top-level control. More...
 
virtual bool GetTopLevel () const
 
virtual void SetPopUp (int popup)
 
virtual int GetPopUp () const
 
virtual void BeginUpdate ()
 
virtual void EndUpdate ()
 
virtual QPoint GetCompositionPoint ()
 get composition point. More...
 
virtual void SetCompositionPoint (const QPoint &point)
 if set to (0,0) it will use the bounding bottom. More...
 
virtual bool CanPaintOnDevice (CPaintDevice *val)
 whether this object is allowed to paint on the given device. More...
 
CGUIScrollBarGetScrollBar (int nVerticalHorizontal=0)
 get the vertical or horizontal scroll bar. More...
 
int GetChildIndex (CGUIBase *pChild)
 get the index of the given child. More...
 
virtual bool IsNonClientTestEnabled ()
 
virtual void EnableNonClientTest (bool val)
 
- Public Member Functions inherited from ParaEngine::CGUIBase
virtual void * QueryObject (int nObjectType)
 convert to object of a given type. More...
 
virtual IAttributeFieldsGetChildAttributeObject (const std::string &sName)
 get attribute by child object. More...
 
virtual int GetChildAttributeObjectCount (int nColumnIndex=0)
 get the number of child objects (row count) in the given column. More...
 
virtual int GetChildAttributeColumnCount ()
 we support multi-dimensional child object. More...
 
virtual IAttributeFieldsGetChildAttributeObject (int nRowIndex, int nColumnIndex=0)
 
 ATTRIBUTE_METHOD1 (CGUIBase, GetName_s, const char **)
 
 ATTRIBUTE_METHOD1 (CGUIBase, SetName_s, const char *)
 
 ATTRIBUTE_METHOD1 (CGUIBase, GetTextScale_s, float *)
 
 ATTRIBUTE_METHOD1 (CGUIBase, SetTextScale_s, float)
 
 ATTRIBUTE_METHOD1 (CGUIBase, GetUseTextShadow_s, bool *)
 
 ATTRIBUTE_METHOD1 (CGUIBase, SetUseTextShadow_s, bool)
 
 ATTRIBUTE_METHOD1 (CGUIBase, GetTextShadowQuality_s, int *)
 
 ATTRIBUTE_METHOD1 (CGUIBase, SetTextShadowQuality_s, int)
 
 ATTRIBUTE_METHOD1 (CGUIBase, GetTextShadowColor_s, int *)
 
 ATTRIBUTE_METHOD1 (CGUIBase, SetTextShadowColor_s, int)
 
 ATTRIBUTE_METHOD1 (CGUIBase, GetTextOffsetX_s, int *)
 
 ATTRIBUTE_METHOD1 (CGUIBase, SetTextOffsetX_s, int)
 
 ATTRIBUTE_METHOD1 (CGUIBase, GetTextOffsetY_s, int *)
 
 ATTRIBUTE_METHOD1 (CGUIBase, SetTextOffsetY_s, int)
 
 ATTRIBUTE_METHOD1 (CGUIBase, GetEnabled_s, bool *)
 
 ATTRIBUTE_METHOD1 (CGUIBase, SetEnabled_s, bool)
 
 ATTRIBUTE_METHOD1 (CGUIBase, GetAlwaysMouseOver_s, bool *)
 
 ATTRIBUTE_METHOD1 (CGUIBase, SetAlwaysMouseOver_s, bool)
 
 ATTRIBUTE_METHOD1 (CGUIBase, GetDepth_s, float *)
 
 ATTRIBUTE_METHOD1 (CGUIBase, SetDepth_s, float)
 
 ATTRIBUTE_METHOD1 (CGUIBase, GetLifeTime_s, int *)
 
 ATTRIBUTE_METHOD1 (CGUIBase, SetLifeTime_s, int)
 
 ATTRIBUTE_METHOD1 (CGUIBase, GetX_s, int *)
 
 ATTRIBUTE_METHOD1 (CGUIBase, SetX_s, int)
 
 ATTRIBUTE_METHOD1 (CGUIBase, GetY_s, int *)
 
 ATTRIBUTE_METHOD1 (CGUIBase, SetY_s, int)
 
 ATTRIBUTE_METHOD1 (CGUIBase, GetWidth_s, int *)
 
 ATTRIBUTE_METHOD1 (CGUIBase, SetWidth_s, int)
 
 ATTRIBUTE_METHOD1 (CGUIBase, GetHeight_s, int *)
 
 ATTRIBUTE_METHOD1 (CGUIBase, SetHeight_s, int)
 
 ATTRIBUTE_METHOD1 (CGUIBase, GetRotation_s, float *)
 
 ATTRIBUTE_METHOD1 (CGUIBase, SetRotation_s, float)
 
 ATTRIBUTE_METHOD1 (CGUIBase, GetScaling_s, Vector2 *)
 
 ATTRIBUTE_METHOD1 (CGUIBase, SetScaling_s, Vector2)
 
 ATTRIBUTE_METHOD1 (CGUIBase, GetTranslation_s, Vector2 *)
 
 ATTRIBUTE_METHOD1 (CGUIBase, SetTranslation_s, Vector2)
 
 ATTRIBUTE_METHOD1 (CGUIBase, GetRotOriginOffset_s, Vector2 *)
 
 ATTRIBUTE_METHOD1 (CGUIBase, SetRotOriginOffset_s, Vector2)
 
 ATTRIBUTE_METHOD1 (CGUIBase, GetColorMask_s, DWORD *)
 
 ATTRIBUTE_METHOD1 (CGUIBase, SetColorMask_s, DWORD)
 
 ATTRIBUTE_METHOD1 (CGUIBase, GetText_s, const char **)
 
 ATTRIBUTE_METHOD1 (CGUIBase, SetText_s, const char *)
 
 ATTRIBUTE_METHOD1 (CGUIBase, GetSpacing_s, int *)
 
 ATTRIBUTE_METHOD1 (CGUIBase, SetSpacing_s, int)
 
 ATTRIBUTE_METHOD1 (CGUIBase, GetPadding_s, int *)
 
 ATTRIBUTE_METHOD1 (CGUIBase, SetPadding_s, int)
 
 ATTRIBUTE_METHOD1 (CGUIBase, GetZOrder_s, int *)
 
 ATTRIBUTE_METHOD1 (CGUIBase, SetZOrder_s, int)
 
 ATTRIBUTE_METHOD1 (CGUIBase, GetCursor_s, const char **)
 
 ATTRIBUTE_METHOD1 (CGUIBase, SetCursor_s, const char *)
 
 ATTRIBUTE_METHOD1 (CGUIBase, GetIndex_s, int *)
 
 ATTRIBUTE_METHOD1 (CGUIBase, GetID_s, int *)
 
 ATTRIBUTE_METHOD1 (CGUIBase, SetID_s, int)
 
 ATTRIBUTE_METHOD1 (CGUIBase, GetVisible_s, bool *)
 
 ATTRIBUTE_METHOD1 (CGUIBase, SetVisible_s, bool)
 
 ATTRIBUTE_METHOD1 (CGUIBase, GetVisibleRecursive_s, bool *)
 
 ATTRIBUTE_METHOD1 (CGUIBase, GetHighlightStyle_s, int *)
 
 ATTRIBUTE_METHOD1 (CGUIBase, SetHighlightStyle_s, int)
 
 ATTRIBUTE_METHOD1 (CGUIBase, GetAnimationStyle_s, int *)
 
 ATTRIBUTE_METHOD1 (CGUIBase, SetAnimationStyle_s, int)
 
 ATTRIBUTE_METHOD1 (CGUIBase, IsPressed_s, bool *)
 
 ATTRIBUTE_METHOD1 (CGUIBase, IsClickThrough_s, bool *)
 
 ATTRIBUTE_METHOD1 (CGUIBase, SetClickThrough_s, bool)
 
 ATTRIBUTE_METHOD1 (CGUIBase, CanHaveFocus_s, bool *)
 
 ATTRIBUTE_METHOD1 (CGUIBase, SetCanHaveFocus_s, bool)
 
 ATTRIBUTE_METHOD1 (CGUIBase, IsDirty_s, bool *)
 
 ATTRIBUTE_METHOD1 (CGUIBase, SetDirty_s, bool)
 
 ATTRIBUTE_METHOD1 (CGUIBase, IsOwnerDraw_s, bool *)
 
 ATTRIBUTE_METHOD1 (CGUIBase, SetOwnerDraw_s, bool)
 
 ATTRIBUTE_METHOD1 (CGUIBase, IsUVWrappingEnabled_s, bool *)
 
 ATTRIBUTE_METHOD1 (CGUIBase, EnableUVWrapping_s, bool)
 
 ATTRIBUTE_METHOD1 (CGUIBase, HasKeyFocus_s, bool *)
 
 ATTRIBUTE_METHOD1 (CGUIBase, GetUsePointTextureFiltering_s, bool *)
 
 ATTRIBUTE_METHOD1 (CGUIBase, SetUsePointTextureFiltering_s, bool)
 
 ATTRIBUTE_METHOD (CGUIBase, ApplyColorMask_s)
 
 ATTRIBUTE_METHOD (CGUIBase, ApplyAnim_s)
 
 ATTRIBUTE_METHOD1 (CGUIBase, IsSelfPaintEnabled_s, bool *)
 
 ATTRIBUTE_METHOD1 (CGUIBase, EnableSelfPaint_s, bool)
 
 ATTRIBUTE_METHOD1 (CGUIBase, IsAutoClearBackground_s, bool *)
 
 ATTRIBUTE_METHOD1 (CGUIBase, SetAutoClearBackground_s, bool)
 
 ATTRIBUTE_METHOD1 (CGUIBase, IsMouseCaptured_s, bool *)
 
 ATTRIBUTE_METHOD1 (CGUIBase, SetMouseCaptured_s, bool)
 
 ATTRIBUTE_METHOD1 (CGUIBase, IsInputMethodEnabled_s, bool *)
 
 ATTRIBUTE_METHOD1 (CGUIBase, SetInputMethodEnabled_s, bool)
 
 ATTRIBUTE_METHOD1 (CGUIBase, GetCompositionPoint_s, Vector2 *)
 
 ATTRIBUTE_METHOD1 (CGUIBase, SetCompositionPoint_s, Vector2)
 
 ATTRIBUTE_METHOD1 (CGUIBase, IsNonClientTestEnabled_s, bool *)
 
 ATTRIBUTE_METHOD1 (CGUIBase, EnableNonClientTest_s, bool)
 
void DeleteThis ()
 
CGUIContainerGetParent ()
 get the parent container
 
CGUIContainerGetPainterWindow ()
 get the parent container which has a self painted painter device. More...
 
bool IsPainterWindow ()
 if control contains its own painting device. More...
 
virtual bool HasClickEvent ()
 return true, if this control can be clicked. More...
 
bool IsAncestorOf (CGUIBase *pChild)
 return true if current control is a parent of pChild. More...
 
bool HasParent (CGUIContainer *pParent)
 return true if pParent is a predecessor of this object. More...
 
void SetParent (CGUIContainer *parent)
 set the parent container
 
int GetIndex ()
 get the child index in the parent object. More...
 
bool GetEnabled ()
 whether control is enabled. More...
 
void SetEnabled (bool bEnabled)
 set whether the control is enabled or not
 
bool IsInputMethodEnabled () const
 
void SetInputMethodEnabled (bool val)
 
void SetNeedUpdate (bool bNeedUpdate=true)
 set need update
 
bool IsNeedUpdate (bool bRecursive=false)
 whether this control needs update. More...
 
void SetAlwaysMouseOver (bool bAlwaysMouseOver)
 set whether make mouse over to true as long as it contains the mouse point, no matter it has mouse focus or not. More...
 
bool GetAlwaysMouseOver ()
 get whether make mouse over to true as long as it contains the mouse point, no matter it has mouse focus or not. More...
 
virtual bool IsPressed ()
 whether it is pressed. More...
 
virtual void SetTextA (const char *szText)
 Set the text of this object. More...
 
virtual void SetText (const char16_t *wszText)
 Set the text of this object The control internally store everything in Unicode. More...
 
virtual int GetTextA (std::string &out)
 get the text of the control More...
 
virtual const char16_t * GetText ()
 get the text of the control The control internally store everything in Unicode. More...
 
bool HasEvent (int etype)
 check if the object has any events More...
 
void ClearAllEvent ()
 Clear all events in the event buffer (m_objEvents), not including interpreted events such as m_pMouseEvent and m_pKeyEvent.
 
void ClearEvent (int etype)
 Clear specific kind of events in the event buffer (m_objEvents), including interpreted events such as m_pMouseEvent and m_pKeyEvent. More...
 
void BeginDepthTest (GUIState *pState=NULL)
 draw calls between BeginDepthTest() and EndDepthTest() are rendered with depth enabled, such as for relative to 3d objects. More...
 
void EndDepthTest (GUIState *pState=NULL)
 
virtual void GetAbsolutePosition (CGUIPosition *pOut, const CGUIPosition *pIn)
 Gets the absolute position of a CGUIPosition structure. More...
 
virtual float GetDepth ()
 Get the 3D depth.
 
bool HasFocus () const
 
virtual bool HasKeyFocus ()
 whether this control has key focus. More...
 
virtual void SetLifeTime (int lifttime)
 Set/get how many frames the control will survive. More...
 
virtual int GetLifeTime () const
 
- Public Member Functions inherited from ParaEngine::IAttributeFields
 ATTRIBUTE_METHOD1 (IAttributeFields, GetName_s, const char **)
 
 ATTRIBUTE_METHOD1 (IAttributeFields, SetName_s, const char *)
 
 ATTRIBUTE_METHOD (IAttributeFields, PrintObject_s)
 
 ATTRIBUTE_METHOD (IAttributeFields, AddRef_s)
 
 ATTRIBUTE_METHOD1 (IAttributeFields, GetRefCount_s, int *)
 
 ATTRIBUTE_METHOD1 (IAttributeFields, SetTime_s, int)
 
 ATTRIBUTE_METHOD1 (IAttributeFields, GetTime_s, int *)
 
 ATTRIBUTE_METHOD (IAttributeFields, Release_s)
 
virtual const std::string & GetIdentifier ()
 
virtual void SetIdentifier (const std::string &sID)
 
virtual bool IsModified ()
 whether some of the fields are modified.It is up to the implementation class to provide this functionality if necessary. More...
 
virtual void SetModified (bool bModified)
 set whether any field has been modified. More...
 
virtual bool ValidateFields ()
 validate all fields and return true if validation passed. More...
 
virtual string GetValidationMessage ()
 get the recent validation message due to the most recent call to ValidateFields()
 
virtual bool ResetField (int nFieldID)
 Reset the field to its initial or default value. More...
 
virtual bool InvokeEditor (int nFieldID, const std::string &sParameters)
 Invoke an (external) editor for a given field. More...
 
virtual bool AddChildAttributeObject (IAttributeFields *pChild, int nRowIndex=-1, int nColumnIndex=0)
 add child object. More...
 
virtual void * QueryObjectByName (const std::string &sObjectType)
 convert to object of a given type. More...
 
virtual int GetTime ()
 get the current local time in case it is animated in milli seconds frames. More...
 
virtual void SetTime (int nTime)
 
virtual CDynamicAttributeFieldGetDynamicField (const std::string &sName)
 Get a dynamic field with a given name. More...
 
virtual CDynamicAttributeFieldGetDynamicField (int nIndex)
 Get a dynamic field with a given index. More...
 
virtual const char * GetDynamicFieldNameByIndex (int nIndex)
 get field name by index
 
virtual int GetDynamicFieldCount ()
 how many dynamic field this object currently have. More...
 
virtual int SetDynamicField (const std::string &sName, const CVariable &value)
 set a dynamic field with a given name. More...
 
virtual int AddDynamicField (const std::string &sName, ATTRIBUTE_FIELDTYPE dwType)
 add dynamic field and return field index
 
virtual void RemoveAllDynamicFields ()
 remove all dynamic fields
 
virtual int SaveDynamicFieldsToString (std::string &output)
 save only text dynamic fields to fieldname = value text strings. More...
 
virtual int LoadDynamicFieldsFromString (const std::string &input)
 load only text dynamic fields from string More...
 
CAttributeClassGetAttributeClass ()
 get the main attribute class object. More...
 
void PrintObject ()
 print the content of this object to a text file at temp/doc/[ClassName].txt. More...
 
- Public Member Functions inherited from ParaEngine::IObject
virtual bool Equals (const IObject *obj) const
 Compare the object with another object. More...
 
virtual std::string ToString () const
 
WeakPtr_typeGetWeakReference ()
 get weak reference object. More...
 
virtual int ProcessObjectEvent (const ObjectEvent &event)
 this function is only used to backward compatibility of ParaObject:AddEvent() function. More...
 
- Public Member Functions inherited from ParaEngine::CRefCounted
void addref () const
 add reference count of the object. More...
 
bool delref () const
 decrease reference count of the object. More...
 
int GetRefCount () const
 get the reference count
 
CRefCountedAddToAutoReleasePool ()
 addref and releases the ownership sometime soon automatically (usually at the end of the current frame). More...
 
- Public Member Functions inherited from ParaEngine::IObjectDrag
virtual bool GetCandrag () const =0
 
virtual void BeginDrag (int nEvent, int x, int y, int z)=0
 Default BeginDrag handle function. More...
 
virtual void EndDrag (int nEvent, int x, int y, int z)=0
 Default EndDrag handle function. More...
 
virtual BOOL IsOnObject (int x, int y, int z)=0
 Decide whether the input position is on this object This function is to help other function to decide if the currently pointing position is logically "on" the object. More...
 
virtual void SetPositionI (const CGUIPosition &position)
 restore to a given position. More...
 
- Public Member Functions inherited from ParaEngine::CPaintDevice
virtual int devType () const
 
bool paintingActive () const
 
int width () const
 
int height () const
 
int depth () const
 

Static Public Member Functions

static void DeleteGUIObject (CGUIBase *pObj)
 Delete a given object according to its type It's a static function. More...
 
static void PostDeleteGUIObject (CGUIBase *pObj)
 
static CGUIRootGetInstance ()
 
static CGUIRootCreateInstance ()
 
static void DeleteInstance (CGUIRoot *pThis=NULL)
 
- Static Public Member Functions inherited from ParaEngine::CGUIContainer
static void StaticInit ()
 
- Static Public Member Functions inherited from ParaEngine::CGUIBase
static void StaticInit ()
 Initialize the event mapping for the default CGUIBase class All its inheritances should have a StaticInit() for each kind of class.
 
- Static Public Member Functions inherited from ParaEngine::IAttributeFields
static HRESULT GetAttributeClassID_s (IAttributeFields *cls, int *p1)
 
static HRESULT GetAttributeClassName_s (IAttributeFields *cls, const char **p1)
 
static bool OpenWithDefaultEditor (const char *sFilename, bool bWaitOnReturn=false)
 Open a given file with the default registered editor in the game engine. More...
 
- Static Public Member Functions inherited from ParaEngine::IObjectDrag
static bool CancelDrag (STRUCT_DRAG_AND_DROP *pdrag)
 try cancel the drag operation. More...
 

Public Attributes

std::map< string, CGUIBase * > m_namemap
 
std::map< int, CGUIBase * > m_idmap
 
GUIMsgEventList_type m_events
 GUI root's mouse events. More...
 
CDirectKeyboardm_pKeyboard
 
CDirectMousem_pMouse
 
CGUIBasem_IMEFocus
 
CGUIScript m_scripts
 
bool m_bDesign
 
bool m_bActive
 if the gui is active
 
CGUIToolTipm_tooltip
 
vector< CGUIContainer * > m_TopLevelCtrls
 the top level controls in a array, m_TopCtrl[0] always refers to the top level, m_TopCtrl[1] refers to the top level control below m_TopCtrl[0], etc.
 

Static Public Attributes

static DWORD WheelScrollLines = 3
 
static DWORD KeyDelay = 200
 
static DWORD KeyRepeat = 30
 
static DWORD MouseDelay = 330
 
static DWORD MouseRepeat = 33
 
static DWORD MouseHover = 200
 
static int MouseThreshold1 = 1000
 
static int MouseThreshold2 = 1000
 
static DWORD MouseAcceleration = 0
 
static float MouseSpeed = 1
 
- Static Public Attributes inherited from ParaEngine::IObjectDrag
static STRUCT_DRAG_AND_DROP DraggingObject
 This structure contains the information about the dragging object.
 

Protected Attributes

CPaintEngineengine
 
bool m_bIsCursorClipped
 
RECT m_rcOldClipRect
 
bool m_bMouseProcessed
 
bool m_bKeyboardProcessed
 
bool m_bMouseCaptured
 
IAttributeFieldsm_pLastMouseDownObject
 please note this can be the 3d scene object. More...
 
Matrix4 m_matViewProj
 
bool m_bMouseInClient
 
bool m_bWindowChanging
 
bool m_bRenderImageCursor
 
bool m_bUseSystemCursor
 
vector< int > m_deleteQueue
 
float m_fUIScalingX
 
float m_fUIScalingY
 
float m_fViewportLeft
 
float m_fViewportTop
 
float m_fViewportWidth
 
float m_fViewportHeight
 
float m_fMinScreenWidth
 the minimum screen width. More...
 
float m_fMinScreenHeight
 the minimum screen height. More...
 
bool m_bHasIMEFocus
 whether there is a visible IME virtual CGUIIMEEditBox that has key focus. More...
 
bool m_bIsNonClient
 whether the mouse is in non-client area, we will allow the user to drag the window if this is true. More...
 
int m_nFingerSizePixels
 touch finger size in pixels. More...
 
int m_nFingerStepSizePixels
 
int m_nLastTouchX
 last touch position in mobile version. More...
 
int m_nLastTouchY
 
std::map< int, int > m_touch_id_to_ui_obj
 mapping from touch id to ui object. More...
 
ParaEngine::mutex m_mutex
 mostly for the ime focus.
 
CPainterm_pPainter
 
GUIState m_stateGUI
 
CGUIBasem_pActiveWindow
 last active GUI object object who has onactivate event handler in script. More...
 
friend CGUIBase
 
- Protected Attributes inherited from ParaEngine::CGUIContainer
bool m_bScrollable
 whether it can automatically scroll
 
CGUIScrollBarm_VScroll
 Vertical scrollbar.
 
CGUIScrollBarm_HScroll
 Horizontal scrollbar.
 
GUIBase_List_Type m_children
 child object
 
CGUIBasem_pKeyFocus
 one of its children control which has Key focus
 
CGUIBasem_pMouseFocus
 one of its children control where the mouse located
 
int m_ScrollType
 Scroll type.
 
WeakPtr m_renderTarget
 only used when self paint is enabled, when we will render into our own render target. More...
 
int m_nBorder
 
int m_nMargin
 
int m_nSBWidth
 
bool m_bFastRender
 
RECT m_oldRect
 
RECT m_clientRect
 
QPoint m_compositionPoint
 
int m_nPopupStyle
 
bool m_bIsTop
 
bool m_bBatching
 
bool m_bNeedCalClientRect
 
bool m_bEnableNonClientTest
 default to false. More...
 
- Protected Attributes inherited from ParaEngine::IObject
WeakPtr_type m_weak_reference
 
- Protected Attributes inherited from ParaEngine::CRefCounted
int m_refcount
 
- Protected Attributes inherited from ParaEngine::IObjectDrag
bool m_bCandrag
 
- Protected Attributes inherited from ParaEngine::CPaintDevice
int32 painters
 refcount
 

Static Protected Attributes

static const ITypem_type = NULL
 
- Static Protected Attributes inherited from ParaEngine::CGUIContainer
static const ITypem_type = NULL
 

Additional Inherited Members

- Public Types inherited from ParaEngine::CGUIContainer
enum  GUI_POPUP_STYLE { Popup_None =0, Popup_Autohide =1, Popup_Autodelete =2 }
 
- Public Types inherited from ParaEngine::CGUIBase
typedef ParaEngine::weak_ptr< IObject, CGUIBaseWeakPtr_type
 
- Public Types inherited from ParaEngine::IAttributeFields
typedef ParaEngine::weak_ptr< IObject, IAttributeFieldsWeakPtr_type
 
- Public Types inherited from ParaEngine::IObject
typedef ParaEngine::weak_ptr< IObjectWeakPtr_type
 
- Public Types inherited from ParaEngine::CPaintDevice
enum  PaintDeviceMetric { PdmWidth = 1, PdmHeight, PdmDepth }
 
- Protected Member Functions inherited from ParaEngine::CGUIContainer
virtual CRenderTargetCreateGetRenderTarget (bool bCreateIfNotExist=true)
 a render target will be created with the same name as this object. More...
 
- Protected Member Functions inherited from ParaEngine::IAttributeFields
virtual CAttributeClassCreateAttributeClass ()
 initialize fields
 
virtual CDynamicAttributesSetGetDynamicAttributes (bool bCreateIfNotExist=false)
 
- Protected Member Functions inherited from ParaEngine::CPaintDevice
virtual void initPainter (CPainter *painter) const
 
virtual CPaintersharedPainter () const
 

Detailed Description

When rendering scene, root scene and the root GUI are rendered in sequence.

We see that root scene is still the dominant entity in the ParaEngine. What GUI objects do is making annotations to the scene as we are traversing the scene. Some biped head-up display may cause creation of new GUI objects (with a small life time count down, possibly one frame). Neuron files may also cause the creation of new GUI object, such as the triggering of a dialog neuron file will cause a dialog box screen annotation to be created and a few GUI sensors as buttons in the dialog. A again the triggering of the sensor by mouse click may cause the previous neuron (dialog box )reach a new state, which in turn, determines the response to the user's choice in the dialog box.

2004.5.21: Key stroke sensor GUI added, the AISimulator will support it automatically. A key buffer is added in CGUIRoot. The ParaShell is responsible to add key to the key buffer by calling AddKeyStroke(), the pick function in CGUIRoot will now handle not only mouse but also key strokes, key triggered object is added to the GUIState of listTriggeredObjects. HAPI of creating such sensor is also added.

call AdvanceGUI() to render the GUI

Member Function Documentation

§ AdvanceGUI()

void CGUIRoot::AdvanceGUI ( float  fElapsedTime)

Render all the contorls.

Desc: Advances the local animation time by dTimeDelta, and render it call this function in Render of the parent window to draw the entire GUI.

[Note]: m_stateGUI struct must be filled carefully before calling this class

clean up GUI state

§ AttachGUIElement()

void CGUIRoot::AttachGUIElement ( CGUIBase pParent,
CGUIBase pChild 
)

Attach a control to another control.

pParent can be NULL, the root GUI will be used then

Parameters
pParentpointer to the parent control. If it is NULL, the child will be attached to the root.
pChildpointer to the child control. If it is NULL, nothing is done.

§ ClearAllTopLevelControls()

void CGUIRoot::ClearAllTopLevelControls ( )

clear all top level controls.

possibly only used for GUI resetting.

§ DeleteGUIObject()

void CGUIRoot::DeleteGUIObject ( CGUIBase pObj)
static

Delete a given object according to its type It's a static function.

Parameters
pObjpointer to the object.
Remarks
: Users need to make sure the object is not referenced in other place. We don't set the pointer to NULL.

§ DestroyGUIElement() [1/2]

int CGUIRoot::DestroyGUIElement ( CGUIBase pObj)

Destroy destroy a control and all its descendants from the GUI.

desc: destroy object and all its decedents from the GUI.

Parameters
pObjpointer to the control to delete. If it is NULL, nothing is done.
Returns
: always return 0.

§ DestroyGUIElement() [2/2]

int CGUIRoot::DestroyGUIElement ( const char *  sID)

Destroy destroy a control with the given name and all its descendants from the GUI.

given a id name, destroy it and all its descendants from the GUI.

If there are several objects who have the same id, only the last attached one is deleted.

Parameters
sIDthe name of the control to delete.
Returns
: return 0 if succeed otherwise -1(object not found).

there may be several object who has the same id, then only the last attached is deleted

§ DetachGUIElement()

void CGUIRoot::DetachGUIElement ( CGUIBase pChild)

Detach a control from its parent.

This function automatically cleans all focus related to pChild and updates rectangles of its parent and itself.

Parameters
pChildpointer to the child control. If it is NULL, nothing is done.

§ EnableClipCursor()

void ParaEngine::CGUIRoot::EnableClipCursor ( bool  bEnable)

confine the cursor in current window.

Parameters
bEnabletrue to enable and false to release.

§ GetAttributeClassID()

virtual int ParaEngine::CGUIRoot::GetAttributeClassID ( )
inlinevirtual

attribute class ID should be identical, unless one knows how overriding rules work.

Reimplemented from ParaEngine::CGUIBase.

§ GetDefaultObject()

CGUIBase * CGUIRoot::GetDefaultObject ( const char *  strType)

get the default template object from which all sub-sequent controls of the same type are cloned(created).

if the default template object does not exist, it will be deleted. one can modify the template object at runtime to change of the theme of all controls created subsequently. All default template object is defined in "script/config.lua", which will be loaded when GUI engine is loaded

Parameters
strTypeIt can be "container", "button", "scrollbar", "editbox", "imeeditbox","slider" and "text".
Returns
the template object is returned. or NULL if does not exists.

§ GetEnableIME()

bool ParaEngine::CGUIRoot::GetEnableIME ( )

whether to use directX rendered ime windows.

in most cases during windowed mode, ime window can be disabled.

§ GetFingerSizePixels()

int ParaEngine::CGUIRoot::GetFingerSizePixels ( ) const

touch finger size in pixels.

we will automatically click a button when it is within finger size.

§ GetMousePosition()

void CGUIRoot::GetMousePosition ( int *  nX,
int *  nY 
) const

get the current mouse cursor position

Parameters
nX: in pixels
nY: in pixels

§ GetUIKeyFocus()

CGUIBase * CGUIRoot::GetUIKeyFocus ( )

Gets the key focus of all controls.

It searches all its descendants.

Returns
: a pointer to the focused control
Remarks
: It's different from the GetKeyFocus() in CGUIContainer.

§ GetUIMouseFocus()

CGUIBase * CGUIRoot::GetUIMouseFocus ( )

Gets the mouse focus of all controls.

Each container type object stores a mouse focus object, which can be NULL or one of its children.

It searches all its descendant.

Returns
: a pointer to the focused control
Remarks
: It's different from the GetMouseFocus() in CGUIContainer.

The GUIRoot object's GetUIMouseFocus returns the top level(the leaf one) mouse focus object.

§ GetUIObject() [1/3]

CGUIBase * CGUIRoot::GetUIObject ( const char *  strObjectName)

Get the first control with the given name.

Parameters
strObjectNamethe name of the control. If this is "root", the root object is returned.
Returns
: the control with the given name. return NULL if not find.

§ GetUIObject() [2/3]

CGUIBase * ParaEngine::CGUIRoot::GetUIObject ( int  nID)

get UI object by its ID.

Parameters
nIDthis is id property value or result of GetID() from a UI object. If this is 0, the root object is returned.
Returns
: the control with the given id. return NULL if not find.

§ GetUIObject() [3/3]

CGUIBase * CGUIRoot::GetUIObject ( int  x,
int  y 
)

Gets the control at a given point It finds the top-most control in all controls.

return the most top level(leaf) object that contains the mouse point(x,y).

It's not the same as GetObjectAtPoint, which finds the control in the direct children of the container

Parameters
x,yabsolute coordinates.
Remarks
: It's different from the GetObjectAtPoint() in CGUIContainer.

top level control is returned regardless of whether it contains the point or not. However, the exact leaf child of top level control that contains the point will be returned. it never returns GUIRoot object. It return NULL if mouse is not over any GUI object.

§ GetUIScale()

void ParaEngine::CGUIRoot::GetUIScale ( float *  pfScalingX = NULL,
float *  pfScalingY = NULL 
)

set the UI scaling.

This can be useful to render 1024*768 to a 800*600 surface; we can set to fScalingX to 800/1024 and fScalingY to 600/768

Parameters
pfScalingXout put x scale
pfScalingYout put y scale

§ HandleUserInput()

int CGUIRoot::HandleUserInput ( )

Dispatch the current events in m_objEvents to its correct receiver.

The deeper a control in the hierarchy tree is, the higher priority it has for receiving the event. The two types of events, Mouse event and Keyboard event, are dispatched separately. If there are more than one events for each type. The last one will be dispatched. Return: The successfully dispatched events are deleted from m_objEvents. return value tells which kind of event have been successfully dispatched.

if current mouse targeted object is different from the current top most mouse focus object, we shall set the current mouse targeted object as current mouse focus object.

§ HasIMEFocus()

bool ParaEngine::CGUIRoot::HasIMEFocus ( )

[thread safe] whether there is a visible IME virtual CGUIIMEEditBox that has key focus.

§ InstallFields()

int ParaEngine::CGUIRoot::InstallFields ( CAttributeClass pClass,
bool  bOverride 
)
virtual

this class should be implemented if one wants to add new attribute.

This function is always called internally.

Reimplemented from ParaEngine::CGUIBase.

§ IsCursorClipped()

bool ParaEngine::CGUIRoot::IsCursorClipped ( )

whether the cursor is clipped.

§ IsMouseButtonSwapped()

bool ParaEngine::CGUIRoot::IsMouseButtonSwapped ( )

swap left/right mouse button and touch.

§ IsNonClient()

bool ParaEngine::CGUIRoot::IsNonClient ( ) const

whether the mouse is in non-client area, we will allow the user to drag the window if this is true.

CGUIContainer:SetNonClientArea(true) can be used to specify a non-client area.

§ MsgProc()

bool CGUIRoot::MsgProc ( MSG event)
virtual

First, send the message to the scrollbar.

If scrollbar does not handle the message, let the container handle it. Container only handle EM_MOUSE_WHEEL, other events are sent further to CGUIBase::MsgProc

object should at least has a life count greater than 1, and isEnabled

object should at least has a life count greater than 1, and isEnabled

Reimplemented from ParaEngine::CGUIContainer.

§ paintEngine()

CPaintEngine * ParaEngine::CGUIRoot::paintEngine ( ) const
virtual

Returns the paint engine.

Note that this function should not be called explicitly by the user, since it's meant for reimplementation purposes only. The function is called internally, and the default implementation may not always return a valid pointer.

Reimplemented from ParaEngine::CGUIBase.

§ PushTopLevelControl()

void CGUIRoot::PushTopLevelControl ( CGUIContainer pTopLevelControl)

make the given control the current top level control.

if the given control is already a top level control but it not on level 0, it is moved to level 0. set top level control

Parameters
pTopLevelControlmake the given control the current top level control

§ RemoveTopLevelControl()

void CGUIRoot::RemoveTopLevelControl ( CGUIContainer pTopLevelControl)

Remove the given top level control and make all top level controls below this control one level up.

Parameters
pTopLevelControl

§ Render()

HRESULT CGUIRoot::Render ( GUIState pGUIState,
float  fElapsedTime 
)
virtual

Render function of the control.

Parameters
pGUIStatea pointer to the GUIState object;
Returns
: return S_OK if success;

skip any node that is not visible

Reimplemented from ParaEngine::CGUIContainer.

§ SendKeyDownEvent()

void ParaEngine::CGUIRoot::SendKeyDownEvent ( int  nVirtualkey)

send a simulated raw key event to ParaEngine.

Parameters
nVirtualkeyshould be of type EVirtualkey

§ SetCaptureMouse()

void ParaEngine::CGUIRoot::SetCaptureMouse ( bool  bCapture)

set whether we will capture the mouse for the main window.

§ SetMinimumScreenSize()

void ParaEngine::CGUIRoot::SetMinimumScreenSize ( int  nWidth,
int  nHeight,
bool  bAutoUIScaling = true 
)

the minimum screen size.

if the backbuffer is smaller than this, we will use automatically use UI scaling for example, if minimum width is 1024, and backbuffer it 800, then m_fUIScalingX will be automatically set to 1024/800. calling this function will cause OnSize() and UpdateBackbufferSize() to be called. Actually it calls SetUIScale()

Parameters
nWidththe new width.
nHeightthe new height.
bAutoUIScalingdefault to true. whether we will automatically recalculate the UI scaling accordingly with regard to current backbuffer size.

§ SetRenderImageCursor()

void CGUIRoot::SetRenderImageCursor ( bool  bEnable)

render the image cursor.

this is automatically enabled during movie recording.

§ SetUIKeyFocus()

void CGUIRoot::SetUIKeyFocus ( CGUIBase control)

set UI key focus to a given control.

It will automatically refresh the mouse focus hierachy.

§ SetUIMouseFocus()

void CGUIRoot::SetUIMouseFocus ( CGUIBase control)

set UI mouse focus to a given control.

added by Xizhi 2009.10.12 Set the UI mouse focus to the given control, and unset previous focused controls.

It will automatically refresh the mouse focus hierachy.

The algorithm is below.

find the closest common parent: compare input control's parent with all controls that has focus from top to bottom.

§ SetUIScale()

void ParaEngine::CGUIRoot::SetUIScale ( float  fScalingX,
float  fScalingY,
bool  bEnsureMinimumScreenSize = true,
bool  bNotifySizeChange = true 
)

set the UI scaling.

This can be useful to render 1024*768 to a 800*600 surface; we can set to fScalingX to 800/1024 and fScalingY to 600/768 calling this function will cause OnSize() and UpdateBackbufferSize() to be called.

Parameters
fScalingXx defaults to 1.0
fScalingYy defaults to 1.0
bEnsureMinimumScreenSizeif true, we will readjust UI scaling so that minimum screen size is ensured.

§ SetUseSystemCursor()

void ParaEngine::CGUIRoot::SetUseSystemCursor ( bool  bUseSystem)

whether to use system cursor.

If this is true, d3d hardware cursor is not shown, even you have loaded an cursor icon for it.

§ ToScript()

string CGUIRoot::ToScript ( int  option = 0)
virtual

-breadth first transversing the scene

Reimplemented from ParaEngine::CGUIContainer.

§ UpdateViewport()

bool CGUIRoot::UpdateViewport ( int  nLeft,
int  nTop,
int  nWidth,
int  nHeight,
bool  bForceUpdate = false 
)

update backbuffer size, in case it is changed.

we will automatically multiple backbuffer size using UI scale to obtain the actual size of GUI state

Returns
true if size has changed.

§ UseDefaultMouseCursor()

void CGUIRoot::UseDefaultMouseCursor ( bool  bUseDefaultMouseCursor)

set whether to use default mouse cursor or not.

Member Data Documentation

§ m_bHasIMEFocus

bool ParaEngine::CGUIRoot::m_bHasIMEFocus
protected

whether there is a visible IME virtual CGUIIMEEditBox that has key focus.

§ m_bIsNonClient

bool ParaEngine::CGUIRoot::m_bIsNonClient
protected

whether the mouse is in non-client area, we will allow the user to drag the window if this is true.

CGUIContainer:SetNonClientArea(true) can be used to specify a non-client area.

§ m_events

GUIMsgEventList_type ParaEngine::CGUIRoot::m_events

GUI root's mouse events.

Unlike control events, the root event can have multiple event handlers defined outside. The events will be emptied every GUI cycle. Added LXZ: 2006.1.1

§ m_fMinScreenHeight

float ParaEngine::CGUIRoot::m_fMinScreenHeight
protected

the minimum screen height.

if the backbuffer is smaller than this, we will use automatically use UI scaling

§ m_fMinScreenWidth

float ParaEngine::CGUIRoot::m_fMinScreenWidth
protected

the minimum screen width.

if the backbuffer is smaller than this, we will use automatically use UI scaling for example, if minimum width is 1024, and backbuffer it 800, then m_fUIScalingX will be automatically set to 1024/800.

§ m_nFingerSizePixels

int ParaEngine::CGUIRoot::m_nFingerSizePixels
protected

touch finger size in pixels.

we will automatically click a button when it is within finger size.

§ m_nLastTouchX

int ParaEngine::CGUIRoot::m_nLastTouchX
protected

last touch position in mobile version.

§ m_pActiveWindow

CGUIBase* ParaEngine::CGUIRoot::m_pActiveWindow
protected

last active GUI object object who has onactivate event handler in script.

§ m_pLastMouseDownObject

IAttributeFields* ParaEngine::CGUIRoot::m_pLastMouseDownObject
protected

please note this can be the 3d scene object.

§ m_touch_id_to_ui_obj

std::map<int, int> ParaEngine::CGUIRoot::m_touch_id_to_ui_obj
protected

mapping from touch id to ui object.


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