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

#include <AAudioOptionsState.h>

Inheritance diagram for AVolumeSlider:
AGUI2MenuGridItem AGUI2Element AGUI2ElementNode

Public Types

using ArrowFocusCallback = void ( * )( void* a_pUserData, TINT a_iSliderID )
 
- Public Types inherited from AGUI2MenuGridItem
enum  COMMANDRESULT { COMMANDRESULT_NONE , COMMANDRESULT_OK , COMMANDRESULT_CANCEL }
 
- Public Types inherited from AGUI2Element
using t_PostRender = void ( * )()
 

Public Member Functions

 AVolumeSlider ()
 
 ~AVolumeSlider ()
 
TBOOL Create (const TCHAR *a_szLeftArrow, const TCHAR *a_szRightArrow, const TCHAR *a_szBarIcon)
 
void SetId (TINT a_iID)
 
TINT GetId () const
 
void SetCallbackUserData (void *a_pUserData)
 
void SetArrowFocusedCallback (ArrowFocusCallback a_fnCallback)
 
virtual void OnUpdate (TFLOAT a_fDeltaTime) override
 
- Public Member Functions inherited from AGUI2MenuGridItem
 AGUI2MenuGridItem ()
 
 ~AGUI2MenuGridItem ()
 
void LinkMenuItemBefore (AGUI2MenuGridItem &a_rLinkAfter)
 
void SetSideElements (AGUI2MenuGridItem *a_pLeft, AGUI2MenuGridItem *a_pRight, AGUI2MenuGridItem *a_pTop, AGUI2MenuGridItem *a_pBottom)
 
TBOOL IsEnabled () const
 
TBOOL CanFocus () const
 
AGUI2MenuGridItemGetNextMenuItem () const
 
AGUI2MenuGridItemGetPrevMenuItem () const
 
virtual void OnFocus ()
 
virtual void OnFocusLost ()
 
virtual COMMANDRESULT OnInputCommand (AGUI2MenuGrid::ACTIONFLAGS &a_rActionFlags)
 
virtual void SetEnabled (TBOOL a_bEnabled)
 
virtual TFLOAT GetFlowVisualOffset ()
 
virtual TFLOAT GetFlowOffset ()
 
- Public Member Functions inherited from AGUI2Element
 AGUI2Element ()
 
virtual ~AGUI2Element ()=default
 
virtual void Tick (TFLOAT a_fDeltaTime)
 
virtual void PreRender ()
 
virtual void Render ()
 
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 SetDimensions (TFLOAT a_fWidth, TFLOAT a_fHeight)
 
virtual void GetMins (TFLOAT &a_fX, TFLOAT &a_fY)
 
virtual void GetMaxs (TFLOAT &a_fX, TFLOAT &a_fY)
 
virtual void SetColour (TUINT32 a_uiColour)
 
virtual void SetAlpha (TFLOAT a_fAlpha)
 
virtual void SetShadowAlpha (TFLOAT a_fAlpha)
 
virtual void SetFocus (TBOOL a_bFocused)
 
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 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 5 of file AAudioOptionsState.h.

Member Typedef Documentation

◆ ArrowFocusCallback

using AVolumeSlider::ArrowFocusCallback = void ( * )( void* a_pUserData, TINT a_iSliderID )

Definition at line 8 of file AAudioOptionsState.h.

Constructor & Destructor Documentation

◆ AVolumeSlider()

AVolumeSlider::AVolumeSlider ( )

Definition at line 188 of file AAudioOptionsState.cpp.

189{
190 m_bMouseDirty = TFALSE;
191 m_iLastPressedArrowIndex = -1;
192}
#define TFALSE
Definition Typedefs.h:24

◆ ~AVolumeSlider()

AVolumeSlider::~AVolumeSlider ( )

Definition at line 194 of file AAudioOptionsState.cpp.

195{
196}

Member Function Documentation

◆ Create()

TBOOL AVolumeSlider::Create ( const TCHAR * a_szLeftArrow,
const TCHAR * a_szRightArrow,
const TCHAR * a_szBarIcon )

Definition at line 198 of file AAudioOptionsState.cpp.

199{
200 // Setup left arrow
201 AGUI2TextureSection* pLeftArrow = AGUI2TextureSectionManager::GetTextureSection( a_szLeftArrow );
202 TVALIDPTR( pLeftArrow );
203
204 m_aArrows[ 0 ].SetDimensions( pLeftArrow->GetWidth(), pLeftArrow->GetHeight() );
205 m_aArrows[ 0 ].SetTextureSection( pLeftArrow );
206 m_aArrows[ 0 ].SetTransform( 0.0f, 0.0f );
207 m_aArrows[ 0 ].SetAttachment( AGUI2ATTACHMENT_MIDDLELEFT, AGUI2ATTACHMENT_MIDDLELEFT );
208 AddChildTail( m_aArrows[ 0 ] );
209
210 // Setup bar icons
211 AGUI2TextureSection* pBarIcon = AGUI2TextureSectionManager::GetTextureSection( a_szBarIcon );
212 TVALIDPTR( pBarIcon );
213
214 TFLOAT fBarWidth = pBarIcon->GetWidth();
215 TFLOAT fBarHeight = pBarIcon->GetHeight();
216 TFLOAT fBarX = pLeftArrow->GetWidth();
217
218 for ( TINT i = 0; i < TARRAYSIZE( m_aBars ); i++ )
219 {
220 m_aBars[ i ].SetDimensions( fBarWidth, fBarHeight );
221 m_aBars[ i ].SetTextureSection( pBarIcon );
222 m_aBars[ i ].SetTransform( fBarX, 0.0f );
223 m_aBars[ i ].GetTransform().Scale( ms_fBarScale, ms_fBarScale );
224 m_aBars[ i ].SetAttachment( AGUI2ATTACHMENT_MIDDLELEFT, AGUI2ATTACHMENT_MIDDLELEFT );
225 AddChildTail( m_aBars[ i ] );
226
227 fBarX += ms_fBarScale * fBarWidth;
228 }
229
230 // Setup right arrow
231 AGUI2TextureSection* pRightArrow = AGUI2TextureSectionManager::GetTextureSection( a_szRightArrow );
232 TVALIDPTR( pRightArrow );
233
234 m_aArrows[ 1 ].SetDimensions( pRightArrow->GetWidth(), pRightArrow->GetHeight() );
235 m_aArrows[ 1 ].SetTextureSection( pRightArrow );
236 m_aArrows[ 1 ].SetTransform( fBarX, 0.0f );
237 m_aArrows[ 1 ].SetAttachment( AGUI2ATTACHMENT_MIDDLELEFT, AGUI2ATTACHMENT_MIDDLELEFT );
238 AddChildTail( m_aArrows[ 1 ] );
239
240 SetDimensions( fBarX + pRightArrow->GetWidth(), m_aBars[ 0 ].GetHeight() * ms_fBarScale );
241 return TTRUE;
242}
#define TARRAYSIZE(ARRAY)
Definition Defines.h:70
#define TVALIDPTR(PTR)
Definition Defines.h:139
float TFLOAT
Definition Typedefs.h:4
int TINT
Definition Typedefs.h:7
#define TTRUE
Definition Typedefs.h:25
@ AGUI2ATTACHMENT_MIDDLELEFT
void AddChildTail(AGUI2Element &a_rElement)
virtual void SetDimensions(TFLOAT a_fWidth, TFLOAT a_fHeight)
static AGUI2TextureSection * GetTextureSection(const TCHAR *a_szSectionName)

◆ GetId()

TINT AVolumeSlider::GetId ( ) const
inline

Definition at line 17 of file AAudioOptionsState.h.

17{ return m_iID; }

◆ OnUpdate()

void AVolumeSlider::OnUpdate ( TFLOAT a_fDeltaTime)
overridevirtual

Reimplemented from AGUI2MenuGridItem.

Definition at line 244 of file AAudioOptionsState.cpp.

245{
246 if ( m_bMouseDirty )
247 {
248 // Check if any of the arrow rectangles was pressed
249 m_iLastPressedArrowIndex = -1;
250 AGUI2Transform oElementInvTransform;
251
252 TVector2 vecCursorPos = AGUI2::GetMouseCursor().GetCursorPos();
253
254 for ( TINT i = 0; i < TARRAYSIZE( m_aArrows ); i++ )
255 {
256 // Get inverse transform of the current UI element
257 m_aArrows[ i ].GetInvScreenTransform( oElementInvTransform );
258
259 // Get cursor position that is relative to the UI element
260 TVector2 vecElementRelCursorPos;
261 oElementInvTransform.Transform( vecElementRelCursorPos, vecCursorPos );
262
263 if ( m_aArrows[ i ].IsPointInside( vecElementRelCursorPos.x, vecElementRelCursorPos.y ) )
264 {
265 TVALIDPTR( m_fnArrowFocusCallback );
266 m_fnArrowFocusCallback( m_pCallbackUserData, m_iID );
267 m_iLastPressedArrowIndex = i;
268 }
269 }
270
271 m_bMouseDirty = TFALSE;
272 }
273}
TFLOAT y
Definition TVector2.h:139
TFLOAT x
Definition TVector2.h:139
static AGUI2MouseCursor & GetMouseCursor()
Definition AGUI2.h:30
virtual TBOOL IsPointInside(TFLOAT a_fX, TFLOAT a_fY)
const Toshi::TVector2 & GetCursorPos() const
void Transform(Toshi::TVector2 &a_rOutVec, const Toshi::TVector2 &a_rTransformVec) const

◆ SetArrowFocusedCallback()

void AVolumeSlider::SetArrowFocusedCallback ( ArrowFocusCallback a_fnCallback)
inline

Definition at line 20 of file AAudioOptionsState.h.

20{ m_fnArrowFocusCallback = a_fnCallback; }

◆ SetCallbackUserData()

void AVolumeSlider::SetCallbackUserData ( void * a_pUserData)
inline

Definition at line 19 of file AAudioOptionsState.h.

19{ m_pCallbackUserData = a_pUserData; }

◆ SetId()

void AVolumeSlider::SetId ( TINT a_iID)
inline

Definition at line 16 of file AAudioOptionsState.h.

16{ m_iID = a_iID; }

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