TGUI
1.6.1
|
List view widget. More...
#include <TGUI/Widgets/ListView.hpp>
Classes | |
struct | Column |
struct | Item |
Public Types | |
using | Ptr = std::shared_ptr<ListView> |
Shared widget pointer. | |
using | ConstPtr = std::shared_ptr<const ListView> |
Shared constant widget pointer. | |
using | ColumnAlignment = HorizontalAlignment |
The text alignment for all texts within a column. | |
Public Types inherited from tgui::Widget | |
using | Ptr = std::shared_ptr<Widget> |
Shared widget pointer. | |
using | ConstPtr = std::shared_ptr<const Widget> |
Shared constant widget pointer. | |
Public Member Functions | |
ListView (const char *typeName=StaticWidgetType, bool initRenderer=true) | |
ListViewRenderer * | getSharedRenderer () override |
Returns the renderer, which gives access to functions that determine how the widget is displayed. | |
const ListViewRenderer * | getSharedRenderer () const override |
ListViewRenderer * | getRenderer () override |
Returns the renderer, which gives access to functions that determine how the widget is displayed. | |
void | setSize (const Layout2d &size) override |
Changes the size of the list view. | |
std::size_t | addColumn (const String &text, float width=0, HorizontalAlignment alignment=HorizontalAlignment::Left) |
Adds a column. | |
void | setColumnText (std::size_t index, const String &text) |
Changes the text of a column. | |
String | getColumnText (std::size_t index) const |
Returns the text of a column. | |
void | setColumnWidth (std::size_t index, float width) |
Changes the width of a column. | |
float | getColumnWidth (std::size_t index) const |
Returns the width of a column. | |
float | getColumnDesignWidth (std::size_t index) const |
Returns the original width of a column (the value passed to addColumn or the last setColumnWidth call) | |
void | setColumnAlignment (std::size_t columnIndex, HorizontalAlignment alignment) |
Changes the text alignment within a column. | |
HorizontalAlignment | getColumnAlignment (std::size_t columnIndex) const |
Returns the current text alignment within a column. | |
void | setColumnAutoResize (std::size_t index, bool autoResize) |
Changes whether the column width depends on the widest item added to that column. | |
bool | getColumnAutoResize (std::size_t index) const |
Returns whether the column width depends on the widest item added to that column. | |
void | setColumnExpanded (std::size_t index, bool expand) |
Changes whether a column is expanded to fill the list view (if all columns fit inside the list view) | |
bool | getColumnExpanded (std::size_t index) const |
Returns whether the column is expanded to fill the list view (if all columns fit inside the list view) | |
void | removeAllColumns () |
Removes all columns. | |
std::size_t | getColumnCount () const |
Returns the amount of columns in the list view. | |
void | setHeaderHeight (float height) |
Changes the height of the header row. | |
float | getHeaderHeight () const |
Returns the height of the header row. | |
float | getCurrentHeaderHeight () const |
Returns the height of the header or 0 if no header row is shown. | |
void | setHeaderVisible (bool showHeader) |
Changes whether the header is shown. | |
bool | getHeaderVisible () const |
Returns whether the header is shown. | |
std::size_t | addItem (const String &text) |
Adds an item to the list. | |
std::size_t | addItem (const std::vector< String > &item) |
Adds an item with values for multiple columns to the list. | |
void | addMultipleItems (const std::vector< std::vector< String > > &items) |
Adds multiple items to the list. | |
void | insertItem (std::size_t index, const String &text) |
Inserts an item into the list. | |
void | insertItem (std::size_t index, const std::vector< String > &item) |
Inserts an item into the list. | |
void | insertMultipleItems (std::size_t index, const std::vector< std::vector< String > > &items) |
Inserts multiple items into the list. | |
bool | changeItem (std::size_t index, const std::vector< String > &item) |
Changes an item with values for multiple columns to the list. | |
bool | changeSubItem (std::size_t index, std::size_t column, const String &item) |
Changes the caption of a single value in the item. | |
bool | removeItem (std::size_t index) |
Removes the item from the list view. | |
void | removeAllItems () |
Removes all items from the list. | |
void | setSelectedItem (std::size_t index) |
Selects an item in the list view. | |
void | setSelectedItems (const std::set< std::size_t > &indices) |
Selects items in the list view. | |
void | deselectItems () |
Deselects the selected items. | |
int | getSelectedItemIndex () const |
Gets the index of the selected item. | |
int | getHoveredItemIndex () const |
Gets the index of the item below the mouse cursor. | |
std::set< std::size_t > | getSelectedItemIndices () const |
Gets the indices of the selected items. | |
void | setMultiSelect (bool multiSelect) |
Allow multi selection of the items. | |
bool | getMultiSelect () const |
Returns multi selection of the items is allowed. | |
void | setItemData (std::size_t index, Any data) |
Store some user data with the item. | |
template<typename DataType > | |
DataType | getItemData (std::size_t index) const |
Returns user data stored in the item. | |
void | setItemIcon (std::size_t index, const Texture &texture) |
Sets a small icon in front of the item. | |
Texture | getItemIcon (std::size_t index) const |
Gets the icon displayed in front of the item. | |
std::size_t | getItemCount () const |
Returns the amount of items in the list view. | |
String | getItem (std::size_t index) const |
Retrieves an item in the list. | |
std::vector< String > | getItemRow (std::size_t index) const |
Retrieves the values of all columns for an item in the list. | |
String | getItemCell (std::size_t rowIndex, std::size_t columnIndex) const |
Retrieves the value for a cell in the list. | |
std::vector< String > | getItems () const |
Returns a list of the texts in the first column for all items in the list view. | |
std::vector< std::vector< String > > | getItemRows () const |
Returns a list of all column values for all items in the list view. | |
void | sort (std::size_t index, const std::function< bool(const String &, const String &)> &cmp) |
Sort items. | |
void | setItemHeight (unsigned int itemHeight) |
Changes the height of the items in the list view. | |
unsigned int | getItemHeight () const |
Returns the height of the items in the list view. | |
void | setHeaderTextSize (unsigned int textSize) |
Changes the text size of the header caption. | |
unsigned int | getHeaderTextSize () const |
Returns the text size of the header caption. | |
void | setSeparatorWidth (unsigned int width) |
Changes the width of the column separator. | |
unsigned int | getSeparatorWidth () const |
Returns the width of the column separator. | |
void | setHeaderSeparatorHeight (unsigned int height) |
Changes the height of the separator between the header and the items. | |
unsigned int | getHeaderSeparatorHeight () const |
Returns the height of the separator between the header and the items. | |
void | setGridLinesWidth (unsigned int width) |
Changes the width of the grid lines. | |
unsigned int | getGridLinesWidth () const |
Returns the width of the grid lines. | |
void | setAutoScroll (bool autoScroll) |
Changes whether the list view scrolls to the bottom when a new item is added. | |
bool | getAutoScroll () const |
Returns whether the list view scrolls to the bottom when a new item is added. | |
void | setShowVerticalGridLines (bool showGridLines) |
Changes whether lines are drawn between columns. | |
bool | getShowVerticalGridLines () const |
Returns whether lines are drawn between items. | |
void | setShowHorizontalGridLines (bool showGridLines) |
Changes whether lines are drawn between items. | |
bool | getShowHorizontalGridLines () const |
Returns whether lines are drawn between items. | |
void | setExpandLastColumn (bool expand) |
Changes whether the last column is expanded to fill the list view (if all columns fit inside the list view) | |
bool | getExpandLastColumn () const |
Returns whether the last column is expanded to fill the list view (if all columns fit inside the list view) | |
void | setVerticalScrollbarPolicy (Scrollbar::Policy policy) |
Changes when the vertical scrollbar should be displayed. | |
Scrollbar::Policy | getVerticalScrollbarPolicy () const |
Returns when the vertical scrollbar should be displayed. | |
void | setHorizontalScrollbarPolicy (Scrollbar::Policy policy) |
Changes when the horizontal scrollbar should be displayed. | |
Scrollbar::Policy | getHorizontalScrollbarPolicy () const |
Returns when the horizontal scrollbar should be displayed. | |
void | setVerticalScrollbarValue (unsigned int value) |
Changes the thumb position of the vertical scrollbar. | |
unsigned int | getVerticalScrollbarValue () const |
Returns the thumb position of the vertical scrollbar. | |
unsigned int | getVerticalScrollbarMaxValue () const |
Returns the maximum thumb position of the vertical scrollbar. | |
void | setHorizontalScrollbarValue (unsigned int value) |
Changes the thumb position of the horizontal scrollbar. | |
unsigned int | getHorizontalScrollbarValue () const |
Returns the thumb position of the horizontal scrollbar. | |
unsigned int | getHorizontalScrollbarMaxValue () const |
Returns the maximum thumb position of the horizontal scrollbar. | |
void | setFixedIconSize (Vector2f iconSize) |
Sets a size to which all icons should be scaled. | |
Vector2f | getFixedIconSize () const |
Returns to which size all icons should be scaled. | |
void | setResizableColumns (bool resizable) |
Changes whether the user can resize the columns by dragging the border between columns. | |
bool | getResizableColumns () const |
Returns whether the user can resize the columns by dragging the border between columns. | |
bool | isMouseOnWidget (Vector2f pos) const override |
Returns whether the mouse position (which is relative to the parent widget) lies on top of the widget. | |
bool | leftMousePressed (Vector2f pos) override |
Called by the parent when the left mouse button goes down on top of the widget. | |
void | leftMouseReleased (Vector2f pos) override |
void | rightMousePressed (Vector2f pos) override |
void | mouseMoved (Vector2f pos) override |
bool | scrolled (float delta, Vector2f pos, bool touch) override |
Called by the parent on scroll event (either from mouse wheel of from two finger scrolling on a touchscreen) | |
void | mouseNoLongerOnWidget () override |
void | leftMouseButtonNoLongerDown () override |
void | keyPressed (const Event::KeyEvent &event) override |
bool | canHandleKeyPress (const Event::KeyEvent &event) override |
Called by the parent of the widget to check if keyPressed would process the event. | |
void | draw (BackendRenderTarget &target, RenderStates states) const override |
Draw the widget to a render target. | |
void | setSize (Layout width, Layout height) |
Changes the size of the widget. | |
Public Member Functions inherited from tgui::Widget | |
Widget (const char *typeName, bool initRenderer) | |
Widget (const Widget &) | |
Copy constructor. | |
Widget (Widget &&) noexcept | |
Move constructor. | |
virtual | ~Widget () |
Destructor. | |
Widget & | operator= (const Widget &) |
Overload of copy assignment operator. | |
Widget & | operator= (Widget &&) noexcept |
Move assignment. | |
void | setRenderer (std::shared_ptr< RendererData > rendererData) |
Sets a new renderer for the widget. The renderer determines how the widget looks. | |
virtual void | setPosition (const Layout2d &position) |
sets the position of the widget | |
void | setPosition (Layout x, Layout y) |
Sets the position of the widget. | |
Vector2f | getPosition () const |
Gets the position of the widget. | |
void | setSize (Layout width, Layout height) |
Changes the size of the widget. | |
void | setWidth (Layout width) |
Changes the width of the widget. | |
void | setHeight (Layout height) |
Changes the height of the widget. | |
Vector2f | getSize () const |
Returns the size of the widget. | |
virtual Vector2f | getFullSize () const |
Returns the entire size that the widget is using. | |
virtual Vector2f | getAbsolutePosition (Vector2f offset={}) const |
Get the absolute position of the widget instead of the relative position to its parent. | |
virtual Vector2f | getWidgetOffset () const |
Returns the distance between the position where the widget is drawn and where the widget is placed. | |
void | setAutoLayout (AutoLayout layout) |
Sets how the position is determined compared to the other widgets in the parent. | |
AutoLayout | getAutoLayout () const |
Returns how the position is determined compared to the other widgets in the parent. | |
void | setOrigin (float x, float y) |
Sets the origin point on which the position, scale and rotation is based. | |
void | setOrigin (Vector2f origin) |
Sets the origin point on which the position, scale and rotation is based. | |
Vector2f | getOrigin () const |
Returns the relative origin point on which the position, scale and rotation is based. | |
void | setScale (Vector2f scaleFactors) |
Sets the scaling to be applied to the widget. | |
void | setScale (Vector2f scaleFactors, Vector2f origin) |
Sets the scaling to be applied to the widget. | |
void | setScale (float scaleFactor) |
Sets the scaling to be applied to the widget. | |
void | setScale (float scaleFactor, Vector2f origin) |
Sets the scaling to be applied to the widget. | |
Vector2f | getScale () const |
Returns the scaling to be applied to the widget. | |
Vector2f | getScaleOrigin () const |
Returns the origin used for scaling. | |
void | setRotation (float angle) |
Sets the rotation to be applied to the widget. | |
void | setRotation (float angle, Vector2f origin) |
Sets the rotation to be applied to the widget. | |
float | getRotation () const |
Returns the rotation to be applied to the widget. | |
Vector2f | getRotationOrigin () const |
Returns the origin used for rotations. | |
void | showWithEffect (ShowEffectType type, Duration duration) |
Shows the widget by introducing it with an animation. | |
void | hideWithEffect (ShowEffectType type, Duration duration) |
Hides the widget by making it leave with an animation. | |
void | moveWithAnimation (Layout2d position, Duration duration) |
Moves the widget from its current position to the given position, over a given duration. | |
void | resizeWithAnimation (Layout2d size, Duration duration) |
Resizes the widget from its current size to the given size, over a given duration. | |
virtual void | setVisible (bool visible) |
Shows or hides a widget. | |
bool | isVisible () const |
Returns true when the widget is visible. | |
virtual void | setEnabled (bool enabled) |
Enables or disables the widget. | |
bool | isEnabled () const |
Returns true when the widget is enabled. | |
virtual void | setFocused (bool focused) |
Focus or unfocus the widget. | |
bool | isFocused () const |
Returns true when the widget is focused and false otherwise. | |
const String & | getWidgetType () const |
Returns the type of the widget. | |
Container * | getParent () const |
Returns a pointer to the parent widget. | |
BackendGui * | getParentGui () const |
Returns a pointer to the gui to which this widget belongs. | |
bool | isAnimationPlaying () const |
Returns whether there is an active animation (started with showWithEffect or hideWithEffect) | |
void | moveToFront () |
Places the widget before all other widgets. | |
void | moveToBack () |
Places the widget behind all other widgets. | |
void | setUserData (Any userData) |
Stores some data into the widget. | |
template<typename DataType > | |
DataType | getUserData () const |
Returns data stored in the widget. | |
bool | hasUserData () const |
Returns whether data stored in the widget. | |
void | setInheritedFont (const Font &font) |
Sets the font of the widget that is used when no font is set in the renderer. | |
const Font & | getInheritedFont () const |
Returns the font of the widget that is used when no font is set in the renderer. | |
void | setInheritedOpacity (float opacity) |
Sets the opacity of the widget that will be multiplied with the opacity set in the renderer. | |
float | getInheritedOpacity () const |
Returns the opacity of the widget that is multiplied with the opacity set in the renderer. | |
void | setTextSize (unsigned int size) |
Changes the character size of text in this widget if it uses text. | |
unsigned int | getTextSize () const |
Returns the character size of text in this widget. | |
void | setToolTip (Widget::Ptr toolTip) |
Sets the tool tip that should be displayed when hovering over the widget. | |
Widget::Ptr | getToolTip () const |
Returns the tool tip that is displayed when hovering over the widget. | |
void | setWidgetName (const String &name) |
Changes the name of a widget. | |
String | getWidgetName () const |
Returns the name of a widget. | |
void | setMouseCursor (Cursor::Type cursor) |
Changes which mouse cursor is shown when hovering over the widget. | |
Cursor::Type | getMouseCursor () const |
Returns which mouse cursor is shown when hovering over the widget. | |
void | setFocusable (bool focusable) |
Changes whether a widget could be focused. | |
bool | isFocusable () const |
Returns whether a widget could be focused. | |
void | setNavigationUp (const Widget::Ptr &widgetAbove) |
Changes which widget should become focused when navigating upwards from this widget. | |
Widget::Ptr | getNavigationUp () const |
Returns which widget would become focused when navigating upwards from this widget. | |
void | setNavigationDown (const Widget::Ptr &widgetBelow) |
Changes which widget should become focused when navigating downwards from this widget. | |
Widget::Ptr | getNavigationDown () const |
Returns which widget would become focused when navigating downwards from this widget. | |
void | setNavigationLeft (const Widget::Ptr &widgetLeft) |
Changes which widget should become focused when navigating to the left from this widget. | |
Widget::Ptr | getNavigationLeft () const |
Returns which widget would become focused when navigating to the left from this widget. | |
void | setNavigationRight (const Widget::Ptr &widgetRight) |
Changes which widget should become focused when navigating to the right from this widget. | |
Widget::Ptr | getNavigationRight () const |
Returns which widget would become focused when navigating to the right from this widget. | |
void | setIgnoreMouseEvents (bool ignore) |
Sets whether the widget should completely ignore mouse events and let them pass to the widgets behind it. | |
bool | getIgnoreMouseEvents () const |
Returns whether the widget is ignoring mouse events and letting them pass to the widgets behind it. | |
void | finishAllAnimations () |
Makes all animations of the widget finish immediately. | |
virtual bool | canGainFocus () const |
Returns whether the widget can currently gain focus. | |
bool | isContainer () const |
Returns whether the widget is a container widget or not. | |
bool | isMouseDown () const |
Returns whether the left mouse button has been pressed on top of the widget. | |
virtual void | setParent (Container *parent) |
void | setAutoLayoutUpdateEnabled (bool enabled) |
virtual void | rightMouseReleased (Vector2f pos) |
virtual void | mouseReleased (Event::MouseButton button, Vector2f pos) |
virtual void | textEntered (char32_t key) |
virtual void | rightMouseButtonNoLongerDown () |
virtual Widget::Ptr | askToolTip (Vector2f mousePos) |
const Layout2d & | getPositionLayout () const |
const Layout2d & | getSizeLayout () const |
void | bindPositionLayout (Layout *layout) |
void | unbindPositionLayout (Layout *layout) |
void | bindSizeLayout (Layout *layout) |
void | unbindSizeLayout (Layout *layout) |
template<typename WidgetType > | |
std::shared_ptr< const WidgetType > | cast () const |
Downcast const widget. | |
template<typename WidgetType > | |
std::shared_ptr< WidgetType > | cast () |
Downcast widget. | |
void | rendererChangedCallback (const String &property) |
Public Member Functions inherited from tgui::DualScrollbarChildInterface | |
DualScrollbarChildInterface () | |
Default constructor. | |
DualScrollbarChildInterface (const DualScrollbarChildInterface &) | |
Copy constructor. | |
DualScrollbarChildInterface (DualScrollbarChildInterface &&) noexcept | |
Move constructor. | |
virtual | ~DualScrollbarChildInterface ()=default |
Destructor. | |
DualScrollbarChildInterface & | operator= (const DualScrollbarChildInterface &) |
Overload of copy assignment operator. | |
DualScrollbarChildInterface & | operator= (DualScrollbarChildInterface &&) noexcept |
Move assignment. | |
ScrollbarAccessor * | getVerticalScrollbar () |
Returns an object that provides access to the widget's vertical scrollbar. | |
const ScrollbarAccessor * | getVerticalScrollbar () const |
Returns an object that provides access to the widget's vertical scrollbar. | |
ScrollbarAccessor * | getHorizontalScrollbar () |
Returns an object that provides access to the widget's horizontal scrollbar. | |
const ScrollbarAccessor * | getHorizontalScrollbar () const |
Returns an object that provides access to the widget's horizontal scrollbar. | |
Static Public Member Functions | |
static ListView::Ptr | create () |
Creates a new list view widget. | |
static ListView::Ptr | copy (const ListView::ConstPtr &listView) |
Makes a copy of another list view. | |
Public Attributes | |
SignalInt | onItemSelect = {"ItemSelected"} |
SignalInt | onDoubleClick = {"DoubleClicked"} |
An item was double clicked. Optional parameter: selected item index. | |
SignalInt | onRightClick = {"RightClicked"} |
Right mouse clicked. Optional parameter: index of item below mouse (-1 when not on top of item) | |
SignalInt | onHeaderClick = {"HeaderClicked"} |
The header was clicked. Optional parameter: column index. | |
Public Attributes inherited from tgui::Widget | |
SignalVector2f | onPositionChange = {"PositionChanged"} |
The position of the widget changed. Optional parameter: new position. | |
SignalVector2f | onSizeChange = {"SizeChanged"} |
The size of the widget changed. Optional parameter: new size. | |
Signal | onFocus = {"Focused"} |
The widget was focused. | |
Signal | onUnfocus = {"Unfocused"} |
The widget was unfocused. | |
Signal | onMouseEnter = {"MouseEntered"} |
The mouse entered the widget. | |
Signal | onMouseLeave = {"MouseLeft"} |
The mouse left the widget. | |
SignalShowEffect | onShowEffectFinish = {"ShowEffectFinished"} |
A show or hide effect finished. Optional parameters: effect type, new widget visibility or both. | |
SignalAnimationType | onAnimationFinish = {"AnimationFinished"} |
An animation has finished. | |
Static Public Attributes | |
static constexpr const char | StaticWidgetType [] = "ListView" |
Type name of the widget. | |
Protected Member Functions | |
Signal & | getSignal (String signalName) override |
Retrieves a signal based on its name. | |
void | rendererChanged (const String &property) override |
Function called when one of the properties of the renderer is changed. | |
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 | load (const std::unique_ptr< DataIO::Node > &node, const LoadingRenderersMap &renderers) override |
Loads the widget from a tree of nodes. | |
void | mouseEnteredWidget () override |
This function is called when the mouse enters the widget. | |
void | mouseLeftWidget () override |
This function is called when the mouse leaves the widget. | |
void | updateTextSize () override |
Called when the text size is changed (either by setTextSize or via the renderer) | |
void | scrollbarPolicyChanged (Orientation orientation) override |
Called when the policy of one of the scrollbars has been changed calling either getVerticalScrollbar()->setPolicy(...) or getHorizontalScrollbar()->setPolicy(...) | |
Vector2f | getInnerSize () const |
Text | createText (const String &caption) |
Text | createHeaderText (const String &caption) |
virtual void | setItemColor (std::size_t index, const Color &color) |
float | calculateAutoColumnWidth (const Text &text) |
void | updateSelectedAndhoveredItemColors () |
void | updateItemColors () |
void | updateHeaderTextsColor () |
void | updateHoveredItem (int item) |
void | updateSelectedItem (int item) |
void | selectRangeFromEvent (std::size_t item) |
bool | updateWidestItemInColumn (std::size_t columnIndex) |
bool | updateWidestItemInColumn (std::size_t columnIndex, std::size_t itemIndex) |
bool | updateWidestItem () |
bool | updateWidestItem (std::size_t itemIndex) |
void | incrementWidestItemIndices (std::size_t itemIndex) |
void | updateColumnWidths () |
bool | hasExpandedColumn () const |
void | addSelectedItem (int item) |
void | removeSelectedItem (std::size_t item) |
void | updateHoveredItemByMousePos (Vector2f mousePos) |
unsigned int | getTotalSeparatorWidth () const |
float | getItemTotalWidth (const Item &item, std::size_t columnIndex) const |
int | getColumnIndexBelowMouse (float mouseLeft) |
bool | findBorderBelowMouse (Vector2f pos, std::size_t &columnIndex) const |
void | updateScrollbars () |
void | updateVerticalScrollbarMaximum () |
void | drawHeaderText (BackendRenderTarget &target, RenderStates states, float columnWidth, float headerHeight, std::size_t column) const |
void | drawColumn (BackendRenderTarget &target, RenderStates states, std::size_t firstItem, std::size_t lastItem, std::size_t column, float columnWidth) const |
bool | updateTime (Duration elapsedTime) override |
Widget::Ptr | clone () const override |
Makes a copy of the widget if you don't know its exact type. | |
Protected Member Functions inherited from tgui::Widget | |
void | recalculateBoundPositionLayouts () |
Calls recalculateValue() on each layout in m_boundPositionLayouts. | |
void | recalculateBoundSizeLayouts () |
Calls recalculateValue() on each layout in m_boundSizeLayouts. | |
Protected Member Functions inherited from tgui::DualScrollbarChildInterface | |
virtual void | scrollbarValueChanged (Orientation orientation) |
Called when the value of one of the scrollbars has been changed by calling either getVerticalScrollbar()->setValue(...) or getHorizontalScrollbar()->setValue(...) | |
virtual void | scrollbarScrollAmountChanged (Orientation orientation) |
Called when the scroll amount of one of the scrollbars has been changed calling either getVerticalScrollbar()->setScrollAmount(...) or getHorizontalScrollbar()->setScrollAmount(...) | |
void | saveScrollbarPolicies (std::unique_ptr< DataIO::Node > &node) const |
This function should be called inside the save function in order to save the configured scrollbar policies. | |
void | loadScrollbarPolicies (const std::unique_ptr< DataIO::Node > &node) |
This function should be called inside the load function in order to load the wanted scrollbar policies. | |
Protected Attributes | |
std::vector< Column > | m_columns |
std::vector< Item > | m_items |
std::set< std::size_t > | m_selectedItems |
int | m_hoveredItem = -1 |
int | m_firstSelectedItemIndex = -1 |
int | m_focusedItemIndex = -1 |
float | m_requestedHeaderHeight = 0 |
unsigned int | m_itemHeight = 0 |
unsigned int | m_headerTextSize = 0 |
unsigned int | m_headerSeparatorHeight = 0 |
unsigned int | m_separatorWidth = 1 |
unsigned int | m_gridLinesWidth = 1 |
unsigned int | m_iconCount = 0 |
float | m_maxIconWidth = 0 |
float | m_widestItemWidth = 0 |
std::size_t | m_widestItemIndex = std::numeric_limits<std::size_t>::max() |
bool | m_headerVisible = true |
bool | m_showHorizontalGridLines = false |
bool | m_showVerticalGridLines = true |
bool | m_expandLastColumn = false |
bool | m_multiSelect = false |
bool | m_resizableColumns = false |
Vector2f | m_fixedIconSize |
Cursor::Type | m_currentListViewMouseCursor = Cursor::Type::Arrow |
std::size_t | m_resizingColumn = 0 |
float | m_resizingColumnLastMouseX = 0 |
int | m_mouseOnHeaderIndex = -1 |
int | m_possibleDoubleClick = false |
bool | m_autoScroll = true |
Sprite | m_spriteHeaderBackground |
Sprite | m_spriteBackground |
Borders | m_bordersCached |
Borders | m_paddingCached |
Color | m_borderColorCached |
Color | m_separatorColorCached |
Color | m_gridLinesColorCached |
Color | m_headerTextColorCached |
Color | m_headerBackgroundColorCached |
Color | m_backgroundColorCached |
Color | m_backgroundColorHoverCached |
Color | m_selectedBackgroundColorCached |
Color | m_selectedBackgroundColorHoverCached |
Color | m_textColorCached |
Color | m_textColorHoverCached |
Color | m_selectedTextColorCached |
Color | m_selectedTextColorHoverCached |
Protected Attributes inherited from tgui::Widget | |
String | m_type |
String | m_name |
Layout2d | m_position |
Stores the position of this widget. | |
Layout2d | m_size |
Stores the size of this widget. | |
unsigned int | m_textSize = 0 |
Vector2f | m_origin |
Optional< Vector2f > | m_rotationOrigin |
Optional< Vector2f > | m_scaleOrigin |
Vector2f | m_scaleFactors = {1, 1} |
float | m_rotationDeg = 0 |
Vector2f | m_prevPosition |
Vector2f | m_prevSize |
std::unordered_set< Layout * > | m_boundPositionLayouts |
std::unordered_set< Layout * > | m_boundSizeLayouts |
bool | m_enabled = true |
Stores the flag indicating whether this widget is enabled. | |
bool | m_visible = true |
Stores the flag indicating whether this widget is visible. | |
Container * | m_parent = nullptr |
BackendGui * | m_parentGui = nullptr |
bool | m_mouseHover = false |
bool | m_mouseDown = false |
bool | m_focused = false |
bool | m_focusable = true |
std::weak_ptr< Widget > | m_navWidgetUp |
std::weak_ptr< Widget > | m_navWidgetDown |
std::weak_ptr< Widget > | m_navWidgetRight |
std::weak_ptr< Widget > | m_navWidgetLeft |
Duration | m_animationTimeElapsed |
bool | m_containerWidget = false |
Widget::Ptr | m_toolTip = nullptr |
aurora::CopiedPtr< WidgetRenderer > | m_renderer = nullptr |
std::vector< std::unique_ptr< priv::Animation > > | m_showAnimations |
Font | m_inheritedFont |
float | m_inheritedOpacity = 1 |
Any | m_userData |
Cursor::Type | m_mouseCursor = Cursor::Type::Arrow |
AutoLayout | m_autoLayout = AutoLayout::Manual |
bool | m_autoLayoutUpdateEnabled = true |
bool | m_ignoreMouseEvents = false |
Font | m_fontCached = Font::getGlobalFont() |
float | m_opacityCached = 1 |
bool | m_transparentTextureCached = false |
unsigned int | m_textSizeCached = 0 |
Protected Attributes inherited from tgui::DualScrollbarChildInterface | |
CopiedSharedPtr< ScrollbarChildWidget > | m_verticalScrollbar |
CopiedSharedPtr< ScrollbarChildWidget > | m_horizontalScrollbar |
ScrollbarAccessor | m_verticalScrollbarAccessor |
ScrollbarAccessor | m_horizontalScrollbarAccessor |
Additional Inherited Members | |
Protected Types inherited from tgui::Widget | |
using | SavingRenderersMap = std::map<const Widget*, std::pair<std::unique_ptr<DataIO::Node>, String>> |
using | LoadingRenderersMap = std::map<String, std::shared_ptr<RendererData>> |
List view widget.
When no columns are added, the list view acts like a ListBox with a few extra functionalities.
std::size_t tgui::ListView::addColumn | ( | const String & | text, |
float | width = 0, | ||
HorizontalAlignment | alignment = HorizontalAlignment::Left ) |
Adds a column.
text | The caption of the new column |
width | Width of the column. Set width to 0 to make it depend on the width of the column caption. |
alignment | The text alignment for all texts in the column |
std::size_t tgui::ListView::addItem | ( | const std::vector< String > & | item | ) |
Adds an item with values for multiple columns to the list.
item | Texts for each column |
Example usage:
std::size_t tgui::ListView::addItem | ( | const String & | text | ) |
Adds an item to the list.
text | The caption of the item you want to add |
This function only sets a value for the first column. To add an item with values for multiple columns, see the addItem(std::vector<tgui::String>) function.
void tgui::ListView::addMultipleItems | ( | const std::vector< std::vector< String > > & | items | ) |
Adds multiple items to the list.
items | List of items that should be passed to the addItem |
|
overridevirtual |
Called by the parent of the widget to check if keyPressed would process the event.
event | Key event that took place |
Reimplemented from tgui::Widget.
bool tgui::ListView::changeItem | ( | std::size_t | index, |
const std::vector< String > & | item ) |
Changes an item with values for multiple columns to the list.
index | Index of the item to update |
item | Texts for each column |
bool tgui::ListView::changeSubItem | ( | std::size_t | index, |
std::size_t | column, | ||
const String & | item ) |
Changes the caption of a single value in the item.
index | Index of the item to update |
column | Index of the column to change |
item | Texts for the given column for the given item |
|
nodiscardoverrideprotectedvirtual |
Makes a copy of the widget if you don't know its exact type.
This function should only be used when you don't know the type of the widget. If you know what kind of widget you are copying, you should use the copy function.
Implements tgui::Widget.
|
staticnodiscard |
Makes a copy of another list view.
listView | The other list view |
|
staticnodiscard |
Creates a new list view widget.
|
overridevirtual |
Draw the widget to a render target.
target | Render target to draw to |
states | Current render states |
Implements tgui::Widget.
|
nodiscard |
Returns whether the list view scrolls to the bottom when a new item is added.
|
nodiscard |
Returns the current text alignment within a column.
columnIndex | Index of the column to inspect |
|
nodiscard |
Returns whether the column width depends on the widest item added to that column.
index | Index of the column |
|
nodiscard |
Returns the amount of columns in the list view.
|
nodiscard |
Returns the original width of a column (the value passed to addColumn or the last setColumnWidth call)
index | Index of the column |
|
nodiscard |
Returns whether the column is expanded to fill the list view (if all columns fit inside the list view)
index | Index of the column |
|
nodiscard |
Returns the text of a column.
index | Index of the column |
|
nodiscard |
Returns the width of a column.
index | Index of the column |
|
nodiscard |
Returns the height of the header or 0 if no header row is shown.
|
nodiscard |
Returns whether the last column is expanded to fill the list view (if all columns fit inside the list view)
|
nodiscard |
Returns to which size all icons should be scaled.
By default the fixed icon size is set to (0,0) which doesn't scale the icons and lets each icon use the texture size.
|
nodiscard |
Returns the width of the grid lines.
|
nodiscard |
Returns the height of the header row.
|
nodiscard |
Returns the height of the separator between the header and the items.
|
nodiscard |
Returns the text size of the header caption.
|
nodiscard |
Returns whether the header is shown.
|
nodiscard |
Returns the maximum thumb position of the horizontal scrollbar.
|
nodiscard |
Returns when the horizontal scrollbar should be displayed.
|
nodiscard |
Returns the thumb position of the horizontal scrollbar.
|
nodiscard |
Gets the index of the item below the mouse cursor.
|
nodiscard |
Retrieves an item in the list.
index | The index of the item |
|
nodiscard |
Retrieves the value for a cell in the list.
rowIndex | The index of the row |
columnIndex | The index of the column |
|
nodiscard |
Returns the amount of items in the list view.
|
inlinenodiscard |
Returns user data stored in the item.
std::bad_cast | if the template type does not match the type inside the std::any variable passed in setItemData or when the index was too high (which acts as if you access an empty std::any variable). |
|
nodiscard |
Returns the height of the items in the list view.
|
nodiscard |
Gets the icon displayed in front of the item.
index | Index of the item |
|
nodiscard |
Retrieves the values of all columns for an item in the list.
index | The index of the item |
The returned list has the same length as the amount of columns.
|
nodiscard |
Returns a list of all column values for all items in the list view.
|
nodiscard |
Returns a list of the texts in the first column for all items in the list view.
|
nodiscard |
Returns multi selection of the items is allowed.
|
nodiscardoverridevirtual |
Returns the renderer, which gives access to functions that determine how the widget is displayed.
Reimplemented from tgui::Widget.
|
nodiscard |
Returns whether the user can resize the columns by dragging the border between columns.
Columns have a fixed width and are not resizable by default.
|
nodiscard |
Gets the index of the selected item.
|
nodiscard |
Gets the indices of the selected items.
|
nodiscard |
Returns the width of the column separator.
|
nodiscardoverridevirtual |
Reimplemented from tgui::Widget.
|
nodiscardoverridevirtual |
Returns the renderer, which gives access to functions that determine how the widget is displayed.
Reimplemented from tgui::Widget.
|
nodiscard |
Returns whether lines are drawn between items.
|
nodiscard |
Returns whether lines are drawn between items.
Retrieves a signal based on its name.
signalName | Name of the signal |
Exception | when the name does not match any signal |
Reimplemented from tgui::Widget.
|
nodiscard |
Returns the maximum thumb position of the vertical scrollbar.
|
nodiscard |
Returns when the vertical scrollbar should be displayed.
|
nodiscard |
Returns the thumb position of the vertical scrollbar.
void tgui::ListView::insertItem | ( | std::size_t | index, |
const std::vector< String > & | item ) |
Inserts an item into the list.
index | Index to insert the item at |
item | Texts for each column |
void tgui::ListView::insertItem | ( | std::size_t | index, |
const String & | text ) |
Inserts an item into the list.
index | Index to insert the item at |
text | The caption of the item you want to add |
void tgui::ListView::insertMultipleItems | ( | std::size_t | index, |
const std::vector< std::vector< String > > & | items ) |
Inserts multiple items into the list.
index | Index to insert the items at |
items | List of items that should be passed to the insertItem function |
|
nodiscardoverridevirtual |
Returns whether the mouse position (which is relative to the parent widget) lies on top of the widget.
Implements tgui::Widget.
|
overridevirtual |
Reimplemented from tgui::Widget.
|
overridevirtual |
Reimplemented from tgui::Widget.
|
overridevirtual |
Called by the parent when the left mouse button goes down on top of the widget.
pos | Mouse position in view coordinates relative to the parent widget |
Reimplemented from tgui::Widget.
|
overridevirtual |
Reimplemented from tgui::Widget.
|
overrideprotectedvirtual |
Loads the widget from a tree of nodes.
Reimplemented from tgui::Widget.
|
overrideprotectedvirtual |
This function is called when the mouse enters the widget.
Reimplemented from tgui::Widget.
|
overrideprotectedvirtual |
This function is called when the mouse leaves the widget.
Reimplemented from tgui::Widget.
|
overridevirtual |
Reimplemented from tgui::Widget.
|
overridevirtual |
Reimplemented from tgui::Widget.
bool tgui::ListView::removeItem | ( | std::size_t | index | ) |
Removes the item from the list view.
index | Index of the item in the list view |
|
overrideprotectedvirtual |
Function called when one of the properties of the renderer is changed.
property | Name of the property that was changed |
Reimplemented from tgui::Widget.
|
overridevirtual |
Reimplemented from tgui::Widget.
|
nodiscardoverrideprotectedvirtual |
Saves the widget as a tree node in order to save it to a file.
Reimplemented from tgui::Widget.
|
overrideprotectedvirtual |
Called when the policy of one of the scrollbars has been changed calling either getVerticalScrollbar()->setPolicy(...) or getHorizontalScrollbar()->setPolicy(...)
orientation | Vertical or Horizontal depending on which scrollbar triggered the callback |
Reimplemented from tgui::DualScrollbarChildInterface.
|
overridevirtual |
Called by the parent on scroll event (either from mouse wheel of from two finger scrolling on a touchscreen)
delta | Scroll offset (positive is up, negative is down). High-precision mice may use non-integral offsets. |
pos | Mouse position, or the initial position of the touch events |
touch | Was this a touch event or a mouse wheel scroll? |
Reimplemented from tgui::Widget.
void tgui::ListView::setAutoScroll | ( | bool | autoScroll | ) |
Changes whether the list view scrolls to the bottom when a new item is added.
autoScroll | Should list view scroll to the bottom when new items are added? |
Auto scrolling is enabled by default.
void tgui::ListView::setColumnAlignment | ( | std::size_t | columnIndex, |
HorizontalAlignment | alignment ) |
Changes the text alignment within a column.
columnIndex | Index of the column to change |
alignment | The text alignment for all texts in the column |
void tgui::ListView::setColumnAutoResize | ( | std::size_t | index, |
bool | autoResize ) |
Changes whether the column width depends on the widest item added to that column.
index | Index of the column to change |
autoResize | Should the column's width expand and shrink when the widest item in the column changes? |
If auto-resize is true then the width specified in addColumn and setColumnWidth will act as the minimum width. If the width was set to 0 then the minimum width is the width of the header caption.
If the user was allowed to resize columns (with setResizableColumns) then the auto-resize will be set to false again as soon as the user manually resizes the column.
void tgui::ListView::setColumnExpanded | ( | std::size_t | index, |
bool | expand ) |
Changes whether a column is expanded to fill the list view (if all columns fit inside the list view)
index | Index of the column to change |
expand | Should the column's width expand to make it fill the list view when the list view isn't full yet? |
If multiple columns are marked as expanded, the free remaining width will be divided between them.
If auto-resize is also set to true then the width determine by auto-resize is considered the minimum width of the column.
If the user was allowed to resize columns (with setResizableColumns) then the column will no longer be expanded after the user manually resizes the column. Note that the user can't resize the last column while at least one column is still marked as expanded.
void tgui::ListView::setColumnText | ( | std::size_t | index, |
const String & | text ) |
Changes the text of a column.
index | Index of the column to change |
text | Caption of the column |
void tgui::ListView::setColumnWidth | ( | std::size_t | index, |
float | width ) |
Changes the width of a column.
index | Index of the column to change |
width | Width of the column. Set width to 0 to make it depend on the width of the column caption. |
void tgui::ListView::setExpandLastColumn | ( | bool | expand | ) |
Changes whether the last column is expanded to fill the list view (if all columns fit inside the list view)
expand | Make the last column larger to make it fill the list view when it isn't full yet? |
void tgui::ListView::setFixedIconSize | ( | Vector2f | iconSize | ) |
Sets a size to which all icons should be scaled.
iconSize | Wanted size for all icons |
By default the fixed icon size is set to (0,0) which doesn't scale the icons and lets each icon use the texture size. By setting only the x or y component of the vector to 0, that dimension will be calculated to keep the icon ratio.
void tgui::ListView::setGridLinesWidth | ( | unsigned int | width | ) |
Changes the width of the grid lines.
width | Width of the grid lines |
void tgui::ListView::setHeaderHeight | ( | float | height | ) |
Changes the height of the header row.
height | Height of the header or 0 to make the header size depend on the row height |
void tgui::ListView::setHeaderSeparatorHeight | ( | unsigned int | height | ) |
Changes the height of the separator between the header and the items.
height | Height of the line below the header |
void tgui::ListView::setHeaderTextSize | ( | unsigned int | textSize | ) |
Changes the text size of the header caption.
textSize | The character size of the header text |
By default, header text size is the same as the text size of the items.
void tgui::ListView::setHeaderVisible | ( | bool | showHeader | ) |
Changes whether the header is shown.
showHeader | Whether the header containing the column names shoud be visible |
void tgui::ListView::setHorizontalScrollbarPolicy | ( | Scrollbar::Policy | policy | ) |
Changes when the horizontal scrollbar should be displayed.
policy | The policy for displaying the horizontal scrollbar |
void tgui::ListView::setHorizontalScrollbarValue | ( | unsigned int | value | ) |
Changes the thumb position of the horizontal scrollbar.
value | New value of the horizontal scrollbar |
void tgui::ListView::setItemData | ( | std::size_t | index, |
Any | data ) |
Store some user data with the item.
index | Index of the item |
data | User data to store |
Examples:
void tgui::ListView::setItemHeight | ( | unsigned int | itemHeight | ) |
Changes the height of the items in the list view.
itemHeight | The size of a single item in the list |
void tgui::ListView::setItemIcon | ( | std::size_t | index, |
const Texture & | texture ) |
Sets a small icon in front of the item.
index | Index of the item |
texture | Texture of the item icon |
void tgui::ListView::setMultiSelect | ( | bool | multiSelect | ) |
Allow multi selection of the items.
multiSelect | Whether several items can be selected |
void tgui::ListView::setResizableColumns | ( | bool | resizable | ) |
Changes whether the user can resize the columns by dragging the border between columns.
resizable | Can columns be resized by dragging their border? |
Columns have a fixed width and are not resizable by default.
void tgui::ListView::setSelectedItem | ( | std::size_t | index | ) |
Selects an item in the list view.
index | Index of the item in the list view |
void tgui::ListView::setSelectedItems | ( | const std::set< std::size_t > & | indices | ) |
Selects items in the list view.
indices | Indices of the items in the list view |
void tgui::ListView::setSeparatorWidth | ( | unsigned int | width | ) |
Changes the width of the column separator.
width | Width of the line separating the columns |
void tgui::ListView::setShowHorizontalGridLines | ( | bool | showGridLines | ) |
Changes whether lines are drawn between items.
showGridLines | Is there a horizontal line to separate items? |
Horizontal grid lines are hidden by default.
void tgui::ListView::setShowVerticalGridLines | ( | bool | showGridLines | ) |
Changes whether lines are drawn between columns.
showGridLines | Is there a vertical line to separate columns? |
Vertical grid lines are shown by default.
|
overridevirtual |
Changes the size of the list view.
size | The new size of the list view |
Reimplemented from tgui::Widget.
Changes the size of the widget.
width | Width of the widget |
height | Height of the widget |
void tgui::ListView::setVerticalScrollbarPolicy | ( | Scrollbar::Policy | policy | ) |
Changes when the vertical scrollbar should be displayed.
policy | The policy for displaying the vertical scrollbar |
void tgui::ListView::setVerticalScrollbarValue | ( | unsigned int | value | ) |
Changes the thumb position of the vertical scrollbar.
value | New value of the vertical scrollbar |
void tgui::ListView::sort | ( | std::size_t | index, |
const std::function< bool(const String &, const String &)> & | cmp ) |
Sort items.
index | The index of the column for sorting |
cmp | The comparator |
Example:
|
overrideprotectedvirtual |
Called when the text size is changed (either by setTextSize or via the renderer)
Reimplemented from tgui::Widget.
|
overrideprotectedvirtual |
Reimplemented from tgui::Widget.
SignalInt tgui::ListView::onItemSelect = {"ItemSelected"} |
An item was selected in the list view Optional parameter: selected item index (-1 when deselecting)
Note that when MultiSelect is true, this signal is triggered for every change to the selected items. The optional parameter will contain the lowest index in the selected items or -1 when none of the items are selected.