9 #ifndef TurtleBrainsExpress_InterfaceDropdown_hpp
10 #define TurtleBrainsExpress_InterfaceDropdown_hpp
12 #include <turtle_brains/express/interface/tbx_interface.hpp>
13 #include <turtle_brains/express/interface/tbx_interface_element.hpp>
14 #include <turtle_brains/express/interface/tbx_interface_handler_interface.hpp>
15 #include <turtle_brains/express/interface/tbx_interface_screen.hpp>
16 #include <turtle_brains/express/interface/tbx_interface_button.hpp>
17 #include <turtle_brains/graphics/tb_text.hpp>
18 #include <turtle_brains/graphics/tb_basic_shapes.hpp>
35 typedef std::vector<tbCore::tbString> ItemContainer;
37 Dropdown(
const ItemContainer& itemNames,
const size_t selectedIndex = 0);
40 size_t GetSelectedIndex(
void)
const {
return mSelectedIndex; }
41 void SetSelectedIndex(
const size_t selectedIndex);
44 virtual void OnHandleUserEvent(
const UserEvent& userEvent)
override;
45 virtual void OnHandleActiveUserEvent(
const UserEvent& userEvent)
override;
46 virtual void OnActivate(
void)
override;
47 virtual bool ContainsPointer(
const Point& pointerPosition)
const override;
49 virtual void OnSelectionChange(
const size_t selectedIndex) = 0;
50 virtual void OnStateChange(
const State& newState)
override;
51 virtual void OnHandleInterfaceEvent(
const InterfaceEvent& interfaceEvent,
const ElementHandle& elementHandle)
override;
53 const ItemContainer& GetItemNames(
void)
const {
return mItemNames; }
54 size_t GetFocusedIndex(
void)
const {
return mFocusedIndex; }
55 size_t GetVisibleItems(
void)
const {
return mVisibleItems; }
58 ItemContainer mItemNames;
59 size_t mSelectedIndex;
62 bool mPressedWhileActive;
63 bool mTrulyContainsPointer;
69 SimpleDropdown(
const ItemContainer& itemNames,
const size_t selectedIndex,
74 virtual void OnSelectionChange(
const size_t selectedIndex)
override;
77 void RecreateActiveGraphics(
const size_t selectedIndex);
Definition: tbx_interface.hpp:66
A collection of objects and functions to express games quickly.
Definition: tbx_interface_dropdown.hpp:66
Definition: tbx_interface.hpp:18
Definition: tbx_interface_handler_interface.hpp:27
Definition: tbx_interface.hpp:58
tbCore::uint16 PixelSpace
Definition: tb_texture_manager.hpp:36
Definition: tb_text.hpp:42
Definition: tbx_interface_dropdown.hpp:32
Definition: tbx_interface_element.hpp:28
Definition: tb_basic_shapes.hpp:237