26#ifndef TGUI_PANEL_LIST_BOX_HPP
27#define TGUI_PANEL_LIST_BOX_HPP
29#include <TGUI/Widgets/ScrollablePanel.hpp>
30#include <TGUI/Renderers/PanelListBoxRenderer.hpp>
34TGUI_MODULE_EXPORT
namespace tgui
43 using Ptr = std::shared_ptr<PanelListBox>;
44 using ConstPtr = std::shared_ptr<const PanelListBox>;
46 static constexpr const char StaticWidgetType[] =
"PanelListBox";
56 PanelListBox(
const char* typeName = StaticWidgetType,
bool initRenderer =
true);
95 using ScrollablePanel::setSize;
352 TGUI_NODISCARD std::vector<Panel::Ptr>
getItems()
const;
407 void mouseMoved(
Vector2f pos)
override;
413 void mouseNoLongerOnWidget()
override;
449 TGUI_NODISCARD std::unique_ptr<DataIO::Node>
save(SavingRenderersMap& renderers)
const override;
455 void load(
const std::unique_ptr<DataIO::Node>& node,
const LoadingRenderersMap& renderers)
override;
461 void updateItemsPositions()
const;
467 void updateItemsSize()
const;
473 TGUI_NODISCARD
float getAllItemsHeight()
const;
487 void updateSelectedItem(
int item);
493 void updateHoveringItem(
int item);
499 void updateSelectedAndHoveringItemColorsAndStyle()
const;
513 void clearAllItemsStyle()
const;
536 std::vector<Item> m_items;
537 std::size_t m_maxItems;
544 Color m_itemsBackgroundColorCached;
545 Color m_itemsBackgroundColorHoverCached;
546 Color m_selectedItemsBackgroundColorCached;
547 Color m_selectedItemsBackgroundColorHoverCached;
Wrapper for colors.
Definition Color.hpp:72
Class to store the position or size of a widget.
Definition Layout.hpp:305
Class to store the left, top, width or height of a widget.
Definition Layout.hpp:70
Definition PanelListBoxRenderer.hpp:38
List of panels, which can be flexible changed.
Definition PanelListBox.hpp:41
TGUI_NODISCARD PanelListBoxRenderer * getRenderer() override
Returns the renderer, which gives access to functions that determine how the widget is displayed.
TGUI_NODISCARD std::size_t getItemCount() const
Returns the amount of items in the panel list box.
TGUI_NODISCARD std::vector< Panel::Ptr > getItems() const
Returns a copy of the items in the list box.
bool removeItemById(const String &id)
Removes the item that were added with the given id.
TGUI_NODISCARD Panel::Ptr getPanelTemplate()
Get panel template from which new elements are created.
bool setSelectedItemById(const String &id)
Selects an item in the panel list box.
TGUI_NODISCARD Widget::Ptr clone() const override
Makes a copy of the widget if you don't know its exact type.
std::shared_ptr< PanelListBox > Ptr
Shared widget pointer.
Definition PanelListBox.hpp:43
void rendererChanged(const String &property) override
Function called when one of the properties of the renderer is changed.
int getSelectedItemIndex() const
Gets the index of the selected item.
bool setSelectedItem(const Panel::Ptr &panelPtr)
Selects an item in the panel list box.
bool leftMousePressed(Vector2f pos) override
Called by the parent when the left mouse button goes down on top of the widget.
TGUI_NODISCARD PanelListBoxRenderer * getSharedRenderer() override
Returns the renderer, which gives access to functions that determine how the widget is displayed.
String getIdByIndex(std::size_t index) const
Returns the id of the item at the given index.
Panel::Ptr addItem(const String &id={}, int index=-1)
Adds an item to the list.
TGUI_NODISCARD Signal & getSignal(String signalName) override
Retrieves a signal based on its name.
bool containsId(const String &id) const
Returns whether the panel list box contains an item with the given id.
void setItemsHeight(const Layout &height) const
Changes the height of the items in the list box.
static Ptr copy(const ConstPtr &panelListBox)
Makes a copy of another panel list box.
TGUI_NODISCARD Panel::Ptr getItemByIndex(std::size_t index) const
Returns the item name of the item at the given index.
Panel::Ptr getSelectedItem() const
Returns the currently selected item.
void load(const std::unique_ptr< DataIO::Node > &node, const LoadingRenderersMap &renderers) override
Loads the widget from a tree of nodes.
TGUI_NODISCARD std::size_t getMaximumItems() const
Returns the maximum items that the list box can contain.
void clearItemStyle(int item) const
TGUI_NODISCARD float getItemsHeightUpToIndex(std::size_t index) const
TGUI_NODISCARD std::vector< String > getItemIds() const
Returns a vector of stored items ids.
void setMaximumItems(std::size_t maximumItems=0)
Changes the maximum items that the list box can contain.
std::shared_ptr< const PanelListBox > ConstPtr
Shared constant widget pointer.
Definition PanelListBox.hpp:44
String getSelectedItemId() const
Gets the id of the selected item.
TGUI_NODISCARD Layout getItemsWidth() const
Returns the width of the items in the list box.
static Ptr create()
Creates a new panel list box widget.
void deselectItem()
Deselects the selected item.
TGUI_NODISCARD Layout getItemsHeight() const
Returns the height of the items in the list box.
TGUI_NODISCARD Panel::Ptr getItemById(const String &id) const
Returns the item name of the item with the given id.
bool removeItem(const Panel::Ptr &panelPtr)
Removes the item from the panel list with the given pointer.
bool removeItemByIndex(std::size_t index)
Removes the item from the panel list box.
bool contains(const Panel::Ptr &panelPtr) const
Returns whether the panel list box contains the given item.
int getIndexByItem(const Panel::Ptr &panelPtr) const
Returns the index of the given item.
TGUI_NODISCARD std::unique_ptr< DataIO::Node > save(SavingRenderersMap &renderers) const override
Saves the widget as a tree node in order to save it to a file.
void setSize(const Layout2d &size) override
Changes the size of the panel list box.
void removeAllItems()
Removes all items from the list.
bool setSelectedItemByIndex(std::size_t index)
Selects an item in the panel list box.
int getIndexById(const String &id) const
Returns the index of the item with the given id.
std::shared_ptr< Panel > Ptr
Shared widget pointer.
Definition Panel.hpp:44
Signal to which the user can subscribe to get callbacks from.
Definition Signal.hpp:675
Signal to which the user can subscribe to get callbacks from.
Definition Signal.hpp:62
Wrapper class to store strings.
Definition String.hpp:101
Namespace that contains all TGUI functions and classes.
Definition AbsoluteOrRelativeValue.hpp:39
Definition PanelListBox.hpp:531