OpenBarnyard
 
Loading...
Searching...
No Matches
AGUI2Dialog Class Reference

#include <AGUI2Dialog.h>

Inheritance diagram for AGUI2Dialog:
AGUI2Element AGUI2ElementNode

Public Member Functions

 AGUI2Dialog ()
 
 ~AGUI2Dialog ()
 
virtual void Render () OVERRIDE
 
virtual void SetDimensions (TFLOAT a_fWidth, TFLOAT a_fHeight) OVERRIDE
 
virtual void SetColour (TUINT32 a_uiColour) OVERRIDE
 
virtual void SetAlpha (TFLOAT a_fAlpha) OVERRIDE
 
virtual void SetFocus (TBOOL a_bFocused) OVERRIDE
 
void Create (const TCHAR *a_szTopLeft="Border_Top_Left", const TCHAR *a_szTopCenter="Border_Horizontal", const TCHAR *a_szTopRight="Border_Top_Right", const TCHAR *a_szMiddleLeft="Border_Vertical", const TCHAR *a_szMiddleCenter="Border_Middle", const TCHAR *a_szMiddleRight="Border_Vertical", const TCHAR *a_szBottomLeft="Border_Bottom_Left", const TCHAR *a_szBottomCenter="Border_Horizontal", const TCHAR *a_szBottomRight="Border_Bottom_Right")
 
void SetDialogSize (TFLOAT a_fWidth, TFLOAT a_fHeight)
 
- Public Member Functions inherited from AGUI2Element
 AGUI2Element ()
 
virtual ~AGUI2Element ()=default
 
virtual void Tick (TFLOAT a_fDeltaTime)
 
virtual void PreRender ()
 
virtual void PostRender ()
 
virtual void GetDimensions (TFLOAT &a_rWidth, TFLOAT &a_rHeight)
 
virtual TFLOAT GetWidth ()
 
virtual TFLOAT GetHeight ()
 
virtual void SetWidth (TFLOAT a_fWidth)
 
virtual void SetHeight (TFLOAT a_fHeight)
 
virtual void GetMins (TFLOAT &a_fX, TFLOAT &a_fY)
 
virtual void GetMaxs (TFLOAT &a_fX, TFLOAT &a_fY)
 
virtual void SetShadowAlpha (TFLOAT a_fAlpha)
 
virtual TBOOL IsPointInside (TFLOAT a_fX, TFLOAT a_fY)
 
void AnchorPos (TFLOAT &a_rX, TFLOAT &a_rY, TFLOAT a_fWidth, TFLOAT a_fHeight)
 
void PivotPos (TFLOAT &a_rX, TFLOAT &a_rY, TFLOAT a_fWidth, TFLOAT a_fHeight)
 
void GetScreenTransform (AGUI2Transform &a_rOutTransform)
 
void GetInvScreenTransform (AGUI2Transform &a_rOutTransform)
 
void Show ()
 
void Hide ()
 
void SetInFront ()
 
void SetRenderBeforeChildren ()
 
TBOOL HasFlags (TUINT32 a_uiFlags) const
 
TBOOL IsVisible () const
 
TBOOL IsFocused () const
 
TBOOL ShouldRenderBeforeChildren ()
 
TBOOL IsInFront () const
 
TFLOAT GetAlpha () const
 
void AddChildTail (AGUI2Element &a_rElement)
 
void AddChildHead (AGUI2Element &a_rElement)
 
void SetTranslation (TFLOAT a_fX, TFLOAT a_fY)
 
void SetTranslation (const Toshi::TVector2 &a_rTranslation)
 
void SetTransform (TFLOAT a_fX, TFLOAT a_fY, float a_fRotAngle=0.0f)
 
void SetAnchor (AGUI2ATTACHMENT a_eAnchor)
 
void SetPivot (AGUI2ATTACHMENT a_ePivot)
 
void SetAttachment (AGUI2ATTACHMENT a_eAnchor, AGUI2ATTACHMENT a_ePivot)
 
t_PostRender SetPostRenderCallback (t_PostRender a_cbNewCallback)
 
AGUI2TransformGetTransform ()
 
AGUI2ElementChildBegin () const
 
AGUI2ElementChildRBegin () const
 
AGUI2ElementGetNextChild (AGUI2Element *a_pCurrentChild)
 
AGUI2ElementGetPrevChild (AGUI2Element *a_pCurrentChild)
 
void RemoveSelf ()
 
void LinkChildBefore (AGUI2Element &a_rNewChildren, AGUI2Element &a_rInsertAfter)
 
- Public Member Functions inherited from AGUI2ElementNode
 AGUI2ElementNode ()
 
virtual ~AGUI2ElementNode ()
 
void Unlink ()
 
void LinkAfter (AGUI2ElementNode &a_rNode)
 
void LinkBefore (AGUI2ElementNode &a_rNode)
 
TBOOL IsLinked () const
 
AGUI2ElementNodeGetNext () const
 
AGUI2ElementNodeGetPrev () const
 

Additional Inherited Members

- Public Types inherited from AGUI2Element
using t_PostRender = void ( * )()
 
- Public Attributes inherited from AGUI2ElementNode
friend AGUI2Element
 
- Static Public Attributes inherited from AGUI2Element
static TUINT32 s_uiVisibilityMask = 0xFFFFFFFF
 
- Protected Attributes inherited from AGUI2Element
AGUI2Elementm_pParent
 
AGUI2Transform m_oTransform
 
AGUI2ElementNode m_Children
 
AGUI2ATTACHMENT m_eAnchor
 
AGUI2ATTACHMENT m_ePivot
 
TFLOAT m_fWidth
 
TFLOAT m_fHeight
 
TUINT32 m_uiColour
 
TUINT32 m_eFlags
 
t_PostRender m_cbPostRender
 
TUINT32 m_uiVisibilityMask
 
- Protected Attributes inherited from AGUI2ElementNode
AGUI2ElementNodem_pNext
 
AGUI2ElementNodem_pPrev
 

Detailed Description

Definition at line 6 of file AGUI2Dialog.h.

Constructor & Destructor Documentation

◆ AGUI2Dialog()

AGUI2Dialog::AGUI2Dialog ( )

Definition at line 14 of file AGUI2Dialog.cpp.

15{
16 m_pFocusElement = TNULL;
17 m_bUseScissor = TFALSE;
18}
#define TNULL
Definition Typedefs.h:23
#define TFALSE
Definition Typedefs.h:24

◆ ~AGUI2Dialog()

AGUI2Dialog::~AGUI2Dialog ( )

Definition at line 20 of file AGUI2Dialog.cpp.

21{
22}

Member Function Documentation

◆ Create()

void AGUI2Dialog::Create ( const TCHAR * a_szTopLeft = "Border_Top_Left",
const TCHAR * a_szTopCenter = "Border_Horizontal",
const TCHAR * a_szTopRight = "Border_Top_Right",
const TCHAR * a_szMiddleLeft = "Border_Vertical",
const TCHAR * a_szMiddleCenter = "Border_Middle",
const TCHAR * a_szMiddleRight = "Border_Vertical",
const TCHAR * a_szBottomLeft = "Border_Bottom_Left",
const TCHAR * a_szBottomCenter = "Border_Horizontal",
const TCHAR * a_szBottomRight = "Border_Bottom_Right" )

Definition at line 88 of file AGUI2Dialog.cpp.

89{
93
97
101
102 for ( TINT i = 0; i < AGUI2ATTACHMENT_NUMOF; i++ )
103 {
104 m_aRectangles[ i ].SetDimensions( m_apTexTiles[ i ]->GetWidth(), m_apTexTiles[ i ]->GetHeight() );
105 m_aRectangles[ i ].SetTextureSection( m_apTexTiles[ i ] );
106 m_aRectangles[ i ].SetAttachment( (AGUI2ATTACHMENT)i, (AGUI2ATTACHMENT)i );
107
108 AddChildTail( m_aRectangles[ i ] );
109 }
110
111 AddChildTail( m_aRectangles[ AGUI2ATTACHMENT_MIDDLECENTER ] );
112}
int TINT
Definition Typedefs.h:7
AGUI2ATTACHMENT
@ AGUI2ATTACHMENT_TOPLEFT
@ AGUI2ATTACHMENT_MIDDLELEFT
@ AGUI2ATTACHMENT_MIDDLECENTER
@ AGUI2ATTACHMENT_BOTTOMLEFT
@ AGUI2ATTACHMENT_MIDDLERIGHT
@ AGUI2ATTACHMENT_BOTTOMRIGHT
@ AGUI2ATTACHMENT_NUMOF
@ AGUI2ATTACHMENT_TOPRIGHT
@ AGUI2ATTACHMENT_BOTTOMCENTER
@ AGUI2ATTACHMENT_TOPCENTER
void AddChildTail(AGUI2Element &a_rElement)
virtual TFLOAT GetHeight()
virtual TFLOAT GetWidth()
static AGUI2TextureSection * GetTextureSection(const TCHAR *a_szSectionName)

◆ Render()

void AGUI2Dialog::Render ( )
virtual

Reimplemented from AGUI2Element.

Definition at line 24 of file AGUI2Dialog.cpp.

25{
26 AGUI2Renderer* pRenderer = AGUI2::GetRenderer();
27
28 for ( AGUI2Element* it = ChildRBegin(); it != TNULL; it = GetPrevChild( it ) )
29 {
30 if ( it->IsVisible() )
31 {
32 it->PreRender();
33
34 if ( m_bUseScissor && it != &m_aRectangles[ AGUI2ATTACHMENT_MIDDLECENTER ] )
35 {
36 TFLOAT fWidth, fHeight;
37 it->GetDimensions( fWidth, fHeight );
38
39 TFLOAT fHalfWidth = fWidth * 0.5f;
40 TFLOAT fHalfHeight = fHeight * 0.5f;
41
42 pRenderer->SetScissor( -fHalfWidth, fHalfHeight, fHalfWidth, -fHalfHeight );
43 }
44
45 it->Render();
46
47 if ( m_bUseScissor && it != &m_aRectangles[ AGUI2ATTACHMENT_MIDDLECENTER ] )
48 pRenderer->ClearScissor();
49
50 it->PostRender();
51 }
52 }
53}
float TFLOAT
Definition Typedefs.h:4
static AGUI2Renderer * GetRenderer()
Definition AGUI2.cpp:239
AGUI2Element * GetPrevChild(AGUI2Element *a_pCurrentChild)
AGUI2Element * ChildRBegin() const
virtual void ClearScissor()=0
virtual void SetScissor(TFLOAT a_fVal1, TFLOAT a_fVal2, TFLOAT a_fVal3, TFLOAT a_fVal4)=0

◆ SetAlpha()

void AGUI2Dialog::SetAlpha ( TFLOAT a_fAlpha)
virtual

Reimplemented from AGUI2Element.

Definition at line 70 of file AGUI2Dialog.cpp.

71{
72 for ( TINT i = 0; i < AGUI2ATTACHMENT_NUMOF; i++ )
73 {
74 m_aRectangles->SetAlpha( a_fAlpha );
75 }
76
77 AGUI2Element::SetAlpha( a_fAlpha );
78}
virtual void SetAlpha(TFLOAT a_fAlpha)

◆ SetColour()

void AGUI2Dialog::SetColour ( TUINT32 a_uiColour)
virtual

Reimplemented from AGUI2Element.

Definition at line 60 of file AGUI2Dialog.cpp.

61{
62 for ( TINT i = 0; i < AGUI2ATTACHMENT_NUMOF; i++ )
63 {
64 m_aRectangles->SetColour( a_uiColour );
65 }
66
67 AGUI2Element::SetColour( a_uiColour );
68}
virtual void SetColour(TUINT32 a_uiColour)

◆ SetDialogSize()

void AGUI2Dialog::SetDialogSize ( TFLOAT a_fWidth,
TFLOAT a_fHeight )

Definition at line 114 of file AGUI2Dialog.cpp.

115{
116 TFLOAT fBorderWidth = ( m_apTexTiles[ AGUI2ATTACHMENT_MIDDLELEFT ]->GetWidth() + m_apTexTiles[ AGUI2ATTACHMENT_MIDDLERIGHT ]->GetWidth() ) * 0.5f;
117 TFLOAT fBorderHeight = ( m_apTexTiles[ AGUI2ATTACHMENT_TOPCENTER ]->GetHeight() + m_apTexTiles[ AGUI2ATTACHMENT_BOTTOMCENTER ]->GetHeight() ) * 0.5f;
118
119 TFLOAT fContentWidth = a_fWidth - ( fBorderWidth + fBorderWidth );
120 TFLOAT fContentHeight = a_fHeight - ( fBorderHeight + fBorderHeight );
121
122 m_aRectangles[ AGUI2ATTACHMENT_TOPLEFT ].SetDimensions( fBorderWidth, fBorderHeight );
123 m_aRectangles[ AGUI2ATTACHMENT_TOPCENTER ].SetDimensions( fContentWidth, fBorderHeight );
124 m_aRectangles[ AGUI2ATTACHMENT_TOPRIGHT ].SetDimensions( fBorderWidth, fBorderHeight );
125
126 m_aRectangles[ AGUI2ATTACHMENT_MIDDLELEFT ].SetDimensions( fBorderWidth, fContentHeight );
127 m_aRectangles[ AGUI2ATTACHMENT_MIDDLECENTER ].SetDimensions( a_fWidth - fBorderWidth, a_fHeight - fBorderHeight );
128 m_aRectangles[ AGUI2ATTACHMENT_MIDDLERIGHT ].SetDimensions( fBorderWidth, fContentHeight );
129
130 m_aRectangles[ AGUI2ATTACHMENT_BOTTOMLEFT ].SetDimensions( fBorderWidth, fBorderHeight );
131 m_aRectangles[ AGUI2ATTACHMENT_BOTTOMCENTER ].SetDimensions( fContentWidth, fBorderHeight );
132 m_aRectangles[ AGUI2ATTACHMENT_BOTTOMRIGHT ].SetDimensions( fBorderWidth, fBorderHeight );
133
134 AGUI2Element::SetDimensions( a_fWidth, a_fHeight );
135 AddChildHead( m_aRectangles[ AGUI2ATTACHMENT_MIDDLECENTER ] );
136}
virtual void SetDimensions(TFLOAT a_fWidth, TFLOAT a_fHeight)
void AddChildHead(AGUI2Element &a_rElement)

◆ SetDimensions()

void AGUI2Dialog::SetDimensions ( TFLOAT a_fWidth,
TFLOAT a_fHeight )
virtual

Reimplemented from AGUI2Element.

Definition at line 55 of file AGUI2Dialog.cpp.

56{
57 SetDialogSize( a_fWidth, a_fHeight );
58}
void SetDialogSize(TFLOAT a_fWidth, TFLOAT a_fHeight)

◆ SetFocus()

void AGUI2Dialog::SetFocus ( TBOOL a_bFocused)
virtual

Reimplemented from AGUI2Element.

Definition at line 80 of file AGUI2Dialog.cpp.

81{
82 if ( m_pFocusElement )
83 m_pFocusElement->SetFocus( a_bFocused );
84
85 AGUI2Element::SetFocus( a_bFocused );
86}
virtual void SetFocus(TBOOL a_bFocused)

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