OpenBarnyard
 
Loading...
Searching...
No Matches
AAudioOptionsState.h
Go to the documentation of this file.
1#pragma once
2#include "ABYardMenuState.h"
4
6{
7public:
8 using ArrowFocusCallback = void ( * )( void* a_pUserData, TINT a_iSliderID );
9
10public:
13
14 TBOOL Create( const TCHAR* a_szLeftArrow, const TCHAR* a_szRightArrow, const TCHAR* a_szBarIcon );
15
16 void SetId( TINT a_iID ) { m_iID = a_iID; }
17 TINT GetId() const { return m_iID; }
18
19 void SetCallbackUserData( void* a_pUserData ) { m_pCallbackUserData = a_pUserData; }
20 void SetArrowFocusedCallback( ArrowFocusCallback a_fnCallback ) { m_fnArrowFocusCallback = a_fnCallback; }
21
22 //-----------------------------------------------------------------------------
23 // AGUI2MenuGridItem
24 //-----------------------------------------------------------------------------
25 virtual void OnUpdate( TFLOAT a_fDeltaTime ) OVERRIDE;
26
27private:
28 inline static TFLOAT ms_fBarScale = 0.5f;
29
30private:
31 TINT m_iID;
32 AGUI2Rectangle m_aArrows[ 2 ];
33 AGUI2Rectangle m_aBars[ 5 ];
34 ArrowFocusCallback m_fnArrowFocusCallback;
35 void* m_pCallbackUserData;
36 TBOOL m_bMouseDirty;
37 TINT m_iLastPressedArrowIndex;
38};
39
41{
42public:
44
52
53 inline constexpr static TINT AUDIOOPTIONS_TEXTS[ AUDIOOPTIONS_NUMOF ] = {
54 299,
55 300,
56 301
57 };
58
59public:
62
63 //-----------------------------------------------------------------------------
64 // AGameState
65 //-----------------------------------------------------------------------------
66 virtual TBOOL ProcessInput( const Toshi::TInputInterface::InputEvent* a_pInputEvent ) OVERRIDE;
67 virtual TBOOL ProcessCommand( AInputCommand a_eInputCommand, const Toshi::TInputInterface::InputEvent* a_pInputEvent, TBOOL& a_rStopEvents ) OVERRIDE;
68 virtual void OnInsertion() OVERRIDE;
69 virtual void OnRemoval() OVERRIDE;
70
71 //-----------------------------------------------------------------------------
72 // ABYardMenuState
73 //-----------------------------------------------------------------------------
74 virtual void OnMenuItemActivated( AGUI2MenuItem& a_rMenuItem ) OVERRIDE;
75 virtual void OnMenuItemFocused( AGUI2MenuItem& a_rOldFocus, AGUI2MenuItem& a_rNewFocus ) OVERRIDE;
76 virtual void OnMenuClose() OVERRIDE;
77
78 //-----------------------------------------------------------------------------
79 // Own methods
80 //-----------------------------------------------------------------------------
81 virtual void OnMenuGridItemFocused( AGUI2MenuGridItem& a_rOldFocus, AGUI2MenuGridItem& a_rNewFocus );
82
83private:
84 AGUI2MenuGrid m_oGridMenu;
86 AVolumeSlider m_aVolumeSliders[ AUDIOOPTIONS_NUMOF ];
87 // ...
88 TINT m_iFocusedItemId;
89};
#define OVERRIDE
Definition Defines.h:12
#define TDECLARE_CLASS(THIS_CLASS, PARENT_CLASS)
Definition TObject.h:38
char TCHAR
Definition Typedefs.h:20
float TFLOAT
Definition Typedefs.h:4
int TINT
Definition Typedefs.h:7
bool TBOOL
Definition Typedefs.h:6
AInputCommand
Definition AInputMap.h:12
void(*)(void *a_pUserData, TINT a_iSliderID) ArrowFocusCallback
void SetId(TINT a_iID)
TBOOL Create(const TCHAR *a_szLeftArrow, const TCHAR *a_szRightArrow, const TCHAR *a_szBarIcon)
void SetArrowFocusedCallback(ArrowFocusCallback a_fnCallback)
TINT GetId() const
virtual void OnUpdate(TFLOAT a_fDeltaTime) override
void SetCallbackUserData(void *a_pUserData)
virtual void OnInsertion() override
virtual void OnMenuClose() override
virtual TBOOL ProcessInput(const Toshi::TInputInterface::InputEvent *a_pInputEvent) override
virtual void OnMenuItemFocused(AGUI2MenuItem &a_rOldFocus, AGUI2MenuItem &a_rNewFocus) override
virtual TBOOL ProcessCommand(AInputCommand a_eInputCommand, const Toshi::TInputInterface::InputEvent *a_pInputEvent, TBOOL &a_rStopEvents) override
virtual void OnMenuItemActivated(AGUI2MenuItem &a_rMenuItem) override
virtual void OnMenuGridItemFocused(AGUI2MenuGridItem &a_rOldFocus, AGUI2MenuGridItem &a_rNewFocus)
static constexpr TINT AUDIOOPTIONS_TEXTS[AUDIOOPTIONS_NUMOF]
virtual void OnRemoval() override