--- --- TGUI: include/TGUI/Widgets/ListView.hpp Source File
TGUI  1.x-dev
Loading...
Searching...
No Matches
ListView.hpp
1
2//
3// TGUI - Texus' Graphical User Interface
4// Copyright (C) 2012-2024 Bruno Van de Velde (vdv_b@tgui.eu)
5//
6// This software is provided 'as-is', without any express or implied warranty.
7// In no event will the authors be held liable for any damages arising from the use of this software.
8//
9// Permission is granted to anyone to use this software for any purpose,
10// including commercial applications, and to alter it and redistribute it freely,
11// subject to the following restrictions:
12//
13// 1. The origin of this software must not be misrepresented;
14// you must not claim that you wrote the original software.
15// If you use this software in a product, an acknowledgment
16// in the product documentation would be appreciated but is not required.
17//
18// 2. Altered source versions must be plainly marked as such,
19// and must not be misrepresented as being the original software.
20//
21// 3. This notice may not be removed or altered from any source distribution.
22//
24
25#ifndef TGUI_LIST_VIEW_HPP
26#define TGUI_LIST_VIEW_HPP
27
28#include <TGUI/CopiedSharedPtr.hpp>
29#include <TGUI/Widgets/Scrollbar.hpp>
30#include <TGUI/Renderers/ListViewRenderer.hpp>
31#include <TGUI/Text.hpp>
32
33#if !TGUI_EXPERIMENTAL_USE_STD_MODULE
34 #include <set>
35 #include <limits>
36#endif
37
39
40TGUI_MODULE_EXPORT namespace tgui
41{
47 class TGUI_API ListView : public Widget
48 {
49 public:
50
51 using Ptr = std::shared_ptr<ListView>;
52 using ConstPtr = std::shared_ptr<const ListView>;
53
54 static constexpr const char StaticWidgetType[] = "ListView";
55
59 using ColumnAlignment TGUI_DEPRECATED("Use tgui::HorizontalAlignment instead") = HorizontalAlignment;
60
61 struct Item
62 {
63 std::vector<Text> texts;
64 Any data;
65 Sprite icon;
66 };
67
68 struct Column
69 {
70 float width = 0;
71 float designWidth = 0;
72 float widestItemWidth = 0;
73 std::size_t widestItemIndex = std::numeric_limits<std::size_t>::max();
74 Text text;
75 HorizontalAlignment alignment = HorizontalAlignment::Left;
76 bool autoResize = false;
77 bool expanded = false;
78 };
79
87 ListView(const char* typeName = StaticWidgetType, bool initRenderer = true);
88
93 TGUI_NODISCARD static ListView::Ptr create();
94
102 TGUI_NODISCARD static ListView::Ptr copy(const ListView::ConstPtr& listView);
103
108 TGUI_NODISCARD ListViewRenderer* getSharedRenderer() override;
109 TGUI_NODISCARD const ListViewRenderer* getSharedRenderer() const override;
110
116 TGUI_NODISCARD ListViewRenderer* getRenderer() override;
117
123 void setSize(const Layout2d& size) override;
124 using Widget::setSize;
125
135 std::size_t addColumn(const String& text, float width = 0, HorizontalAlignment alignment = HorizontalAlignment::Left);
136
143 void setColumnText(std::size_t index, const String& text);
144
152 TGUI_NODISCARD String getColumnText(std::size_t index) const;
153
160 void setColumnWidth(std::size_t index, float width);
161
174 TGUI_NODISCARD float getColumnWidth(std::size_t index) const;
175
187 TGUI_NODISCARD float getColumnDesignWidth(std::size_t index) const;
188
195 void setColumnAlignment(std::size_t columnIndex, HorizontalAlignment alignment);
196
204 TGUI_NODISCARD HorizontalAlignment getColumnAlignment(std::size_t columnIndex) const;
205
220 void setColumnAutoResize(std::size_t index, bool autoResize);
221
231 TGUI_NODISCARD bool getColumnAutoResize(std::size_t index) const;
232
249 void setColumnExpanded(std::size_t index, bool expand);
250
260 TGUI_NODISCARD bool getColumnExpanded(std::size_t index) const;
261
266
272 TGUI_NODISCARD std::size_t getColumnCount() const;
273
279 void setHeaderHeight(float height);
280
286 TGUI_NODISCARD float getHeaderHeight() const;
287
293 TGUI_NODISCARD float getCurrentHeaderHeight() const;
294
300 void setHeaderVisible(bool showHeader);
301
307 TGUI_NODISCARD bool getHeaderVisible() const;
308
319 std::size_t addItem(const String& text);
320
333 std::size_t addItem(const std::vector<String>& item);
334
340 void addMultipleItems(const std::vector<std::vector<String>>& items);
341
348 void insertItem(std::size_t index, const String& text);
349
356 void insertItem(std::size_t index, const std::vector<String>& item);
357
364 void insertMultipleItems(std::size_t index, const std::vector<std::vector<String>>& items);
365
374 bool changeItem(std::size_t index, const std::vector<String>& item);
375
385 bool changeSubItem(std::size_t index, std::size_t column, const String& item);
386
394 bool removeItem(std::size_t index);
395
400
406 void setSelectedItem(std::size_t index);
407
413 void setSelectedItems(const std::set<std::size_t>& indices);
414
419
425 TGUI_NODISCARD int getSelectedItemIndex() const;
426
432 TGUI_NODISCARD std::set<std::size_t> getSelectedItemIndices() const;
433
439 void setMultiSelect(bool multiSelect);
440
446 TGUI_NODISCARD bool getMultiSelect() const;
447
460 void setItemData(std::size_t index, Any data);
461
468 template <typename DataType>
469 TGUI_NODISCARD DataType getItemData(std::size_t index) const
470 {
471 if (index < m_items.size())
472 return AnyCast<DataType>(m_items[index].data);
473 else
474 throw std::bad_cast();
475 }
476
483 void setItemIcon(std::size_t index, const Texture& texture);
484
492 TGUI_NODISCARD Texture getItemIcon(std::size_t index) const;
493
499 TGUI_NODISCARD std::size_t getItemCount() const;
500
508 TGUI_NODISCARD String getItem(std::size_t index) const;
509
519 TGUI_NODISCARD std::vector<String> getItemRow(std::size_t index) const;
520
529 TGUI_NODISCARD String getItemCell(std::size_t rowIndex, std::size_t columnIndex) const;
530
536 TGUI_NODISCARD std::vector<String> getItems() const;
537
543 TGUI_NODISCARD std::vector<std::vector<String>> getItemRows() const;
544
556 void sort(std::size_t index, const std::function<bool(const String&, const String&)>& cmp);
557
563 void setItemHeight(unsigned int itemHeight);
564
570 TGUI_NODISCARD unsigned int getItemHeight() const;
571
579 void setHeaderTextSize(unsigned int textSize);
580
586 TGUI_NODISCARD unsigned int getHeaderTextSize() const;
587
593 void setSeparatorWidth(unsigned int width);
594
600 TGUI_NODISCARD unsigned int getSeparatorWidth() const;
601
607 void setHeaderSeparatorHeight(unsigned int height);
608
614 TGUI_NODISCARD unsigned int getHeaderSeparatorHeight() const;
615
621 void setGridLinesWidth(unsigned int width);
622
628 TGUI_NODISCARD unsigned int getGridLinesWidth() const;
629
637 void setAutoScroll(bool autoScroll);
638
644 TGUI_NODISCARD bool getAutoScroll() const;
645
653 void setShowVerticalGridLines(bool showGridLines);
654
660 TGUI_NODISCARD bool getShowVerticalGridLines() const;
661
669 void setShowHorizontalGridLines(bool showGridLines);
670
676 TGUI_NODISCARD bool getShowHorizontalGridLines() const;
677
685 TGUI_DEPRECATED("Use setColumnAutoExpanded and setColumnAutoResize instead") void setExpandLastColumn(bool expand);
686
694 TGUI_DEPRECATED("Use ColumnAutoExpanded and ColumnAutoResize setters and getters instead") TGUI_NODISCARD bool getExpandLastColumn() const;
695
700 void setVerticalScrollbarPolicy(Scrollbar::Policy policy);
701
706 TGUI_NODISCARD Scrollbar::Policy getVerticalScrollbarPolicy() const;
707
712 void setHorizontalScrollbarPolicy(Scrollbar::Policy policy);
713
718 TGUI_NODISCARD Scrollbar::Policy getHorizontalScrollbarPolicy() const;
719
725 void setVerticalScrollbarValue(unsigned int value);
726
732 TGUI_NODISCARD unsigned int getVerticalScrollbarValue() const;
733
741 TGUI_NODISCARD unsigned int getVerticalScrollbarMaxValue() const;
742
748 void setHorizontalScrollbarValue(unsigned int value);
749
755 TGUI_NODISCARD unsigned int getHorizontalScrollbarValue() const;
756
764 TGUI_NODISCARD unsigned int getHorizontalScrollbarMaxValue() const;
765
774 void setFixedIconSize(Vector2f iconSize);
775
783 TGUI_NODISCARD Vector2f getFixedIconSize() const;
784
792 void setResizableColumns(bool resizable);
793
801 TGUI_NODISCARD bool getResizableColumns() const;
802
807 TGUI_NODISCARD bool isMouseOnWidget(Vector2f pos) const override;
808
812 bool leftMousePressed(Vector2f pos) override;
813
817 void leftMouseReleased(Vector2f pos) override;
818
822 void rightMousePressed(Vector2f pos) override;
823
827 void mouseMoved(Vector2f pos) override;
828
832 bool scrolled(float delta, Vector2f pos, bool touch) override;
833
837 void mouseNoLongerOnWidget() override;
838
842 void leftMouseButtonNoLongerDown() override;
843
847 void keyPressed(const Event::KeyEvent& event) override;
848
858 bool canHandleKeyPress(const Event::KeyEvent& event) override;
859
866 void draw(BackendRenderTarget& target, RenderStates states) const override;
867
869 protected:
870
880 TGUI_NODISCARD Signal& getSignal(String signalName) override;
881
887 void rendererChanged(const String& property) override;
888
892 TGUI_NODISCARD std::unique_ptr<DataIO::Node> save(SavingRenderersMap& renderers) const override;
893
897 void load(const std::unique_ptr<DataIO::Node>& node, const LoadingRenderersMap& renderers) override;
898
902 void mouseEnteredWidget() override;
903
907 void mouseLeftWidget() override;
908
912 void updateTextSize() override;
913
915 // Returns the size without the borders
917 TGUI_NODISCARD Vector2f getInnerSize() const;
918
920 // Create a Text object for an item from the given caption, using the preset color, font, text size and opacity
922 TGUI_NODISCARD Text createText(const String& caption);
923
925 // Create a Text object for a header text from the given caption, using the preset color, font, text size and opacity
927 TGUI_NODISCARD Text createHeaderText(const String& caption);
928
930 // Changes the color of all Text objects in an item
932 virtual void setItemColor(std::size_t index, const Color& color);
933
935 // Calculate the width of the column based on its caption when no column width was provided
937 TGUI_NODISCARD float calculateAutoColumnWidth(const Text& text);
938
940 // Update the colors of the selected and hovered items
942 void updateSelectedAndhoveredItemColors();
943
945 // Update the color of all the items
947 void updateItemColors();
948
950 // Changes the color of all header texts
952 void updateHeaderTextsColor();
953
955 // Update on which item the mouse is standing
957 void updateHoveredItem(int item);
958
960 // Update which item is selected
962 void updateSelectedItem(int item);
963
965 // Selects multiple items when multi-select is on and the user selects an item while the shift key is held down
967 void selectRangeFromEvent(std::size_t item);
968
970 // Updates which item is the widest in the given column, by calculating the width of each item
972 bool updateWidestItemInColumn(std::size_t columnIndex);
973
975 // Updates which item is the widest in the given column, when only one item has changed in width
977 bool updateWidestItemInColumn(std::size_t columnIndex, std::size_t itemIndex);
978
980 // Updates which item is the widest in all columns, by calculating the width of each item
982 bool updateWidestItem();
983
985 // Updates which item is the widest in all columns, when only one item has changed in width
987 bool updateWidestItem(std::size_t itemIndex);
988
990 // This function needs to be called when items are inserted into the list. If the widest item for each column is located
991 // below the inserted item then it's index needs to be updated.
993 void incrementWidestItemIndices(std::size_t itemIndex);
994
996 // Recalculates the width of each column if they don't have a fixed width. For auto-resized columns, the widest item
997 // should have already been updated in each column before this function is called.
999 void updateColumnWidths();
1000
1002 // Returns whether at least one column potentially has its width expanded to fill the list view
1004 bool hasExpandedColumn() const;
1005
1007 // Add item to selected set
1009 void addSelectedItem(int item);
1010
1012 // Remove item from selected set
1014 void removeSelectedItem(std::size_t item);
1015
1017 // Update on which item the mouse is standing, given the current mouse position
1019 void updateHoveredItemByMousePos(Vector2f mousePos);
1020
1022 // Returns either the configured separator width or the width of vertical grid lines, whichever is larger.
1024 TGUI_NODISCARD unsigned int getTotalSeparatorWidth() const;
1025
1027 // Returns the total width an Item takes up at some column, assuming it will not be cut off by the column.
1029 TGUI_NODISCARD float getItemTotalWidth(const Item& item, std::size_t columnIndex) const;
1030
1032 // Found out which column is located below the mouse. The mouseLeft is relative to the widget position.
1033 // This function should only be called after checking that the mouse is positioned on top of the header.
1035 TGUI_NODISCARD int getColumnIndexBelowMouse(float mouseLeft);
1036
1038 // Returns whether the mouse is standing between two columns.
1039 // If true then columnIndex is set to the index of border below the mouse (1 is the border between first two columns).
1040 // If false then columnIndex remains unchanged.
1042 TGUI_NODISCARD bool findBorderBelowMouse(Vector2f pos, std::size_t& columnIndex) const;
1043
1045 // Recalculate the size and viewport size of the scrollbars
1047 void updateScrollbars();
1048
1050 // Recalculate the maximum value for the vertical scrollbar
1052 void updateVerticalScrollbarMaximum();
1053
1055 // Draw the header text for a single column
1057 void drawHeaderText(BackendRenderTarget& target, RenderStates states, float columnWidth, float headerHeight, std::size_t column) const;
1058
1060 // Draw the texts in a single column
1062 void drawColumn(BackendRenderTarget& target, RenderStates states, std::size_t firstItem, std::size_t lastItem, std::size_t column, float columnWidth) const;
1063
1065 // This function is called every frame with the time passed since the last frame.
1067 bool updateTime(Duration elapsedTime) override;
1068
1070 // Makes a copy of the widget
1072 TGUI_NODISCARD Widget::Ptr clone() const override;
1073
1075 public:
1076
1082 SignalInt onItemSelect = {"ItemSelected"};
1083
1084 SignalInt onDoubleClick = {"DoubleClicked"};
1085 SignalInt onRightClick = {"RightClicked"};
1086 SignalInt onHeaderClick = {"HeaderClicked"};
1087
1089 protected:
1090
1091 std::vector<Column> m_columns;
1092 std::vector<Item> m_items;
1093 std::set<std::size_t> m_selectedItems;
1094
1095 int m_hoveredItem = -1;
1096 int m_firstSelectedItemIndex = -1;
1097 int m_focusedItemIndex = -1;
1098
1099 float m_requestedHeaderHeight = 0;
1100 unsigned int m_itemHeight = 0;
1101 unsigned int m_headerTextSize = 0;
1102 unsigned int m_headerSeparatorHeight = 0;
1103 unsigned int m_separatorWidth = 1;
1104 unsigned int m_gridLinesWidth = 1;
1105 unsigned int m_iconCount = 0;
1106 float m_maxIconWidth = 0;
1107 float m_widestItemWidth = 0; // If there are no columns, this is the maximum width from all items
1108 std::size_t m_widestItemIndex = std::numeric_limits<std::size_t>::max(); // If there are no columns, this is the index of the item with the maximum width
1109 bool m_headerVisible = true;
1110 bool m_showHorizontalGridLines = false;
1111 bool m_showVerticalGridLines = true;
1112 bool m_expandLastColumn = false; // TGUI_NEXT: Remove this property
1113 bool m_multiSelect = false;
1114 bool m_resizableColumns = false;
1115 Vector2f m_fixedIconSize;
1116 Cursor::Type m_currentListViewMouseCursor = Cursor::Type::Arrow;
1117 std::size_t m_resizingColumn = 0;
1118 float m_resizingColumnLastMouseX = 0;
1119
1120 CopiedSharedPtr<ScrollbarChildWidget> m_horizontalScrollbar;
1121 CopiedSharedPtr<ScrollbarChildWidget> m_verticalScrollbar;
1122 Scrollbar::Policy m_verticalScrollbarPolicy = Scrollbar::Policy::Automatic;
1123 Scrollbar::Policy m_horizontalScrollbarPolicy = Scrollbar::Policy::Automatic;
1124
1125 int m_mouseOnHeaderIndex = -1; // If the left mouse is down, this contains the index of the column if the mouse went down on the header
1126 int m_possibleDoubleClick = false; // Will be set to true after the first click, but gets reset to false when the second click does not occur soon after
1127 bool m_autoScroll = true; // Should the list view scroll to the bottom when a new item is added?
1128
1129 Sprite m_spriteHeaderBackground;
1130 Sprite m_spriteBackground;
1131
1132 // Cached renderer properties
1133 Borders m_bordersCached;
1134 Borders m_paddingCached;
1135 Color m_borderColorCached;
1136 Color m_separatorColorCached;
1137 Color m_gridLinesColorCached;
1138 Color m_headerTextColorCached;
1139 Color m_headerBackgroundColorCached;
1140 Color m_backgroundColorCached;
1141 Color m_backgroundColorHoverCached;
1142 Color m_selectedBackgroundColorCached;
1143 Color m_selectedBackgroundColorHoverCached;
1144 Color m_textColorCached;
1145 Color m_textColorHoverCached;
1146 Color m_selectedTextColorCached;
1147 Color m_selectedTextColorHoverCached;
1148
1150 };
1151
1153}
1154
1156
1157#endif // TGUI_LIST_VIEW_HPP
Base class for render targets.
Definition BackendRenderTarget.hpp:46
Wrapper for colors.
Definition Color.hpp:73
Definition CopiedSharedPtr.hpp:42
Type
List of available cursors.
Definition Cursor.hpp:50
Wrapper for durations.
Definition Duration.hpp:55
Class to store the position or size of a widget.
Definition Layout.hpp:313
List view widget.
Definition ListView.hpp:48
TGUI_NODISCARD float getColumnWidth(std::size_t index) const
Returns the width of a column.
void setShowVerticalGridLines(bool showGridLines)
Changes whether lines are drawn between columns.
TGUI_NODISCARD unsigned int getGridLinesWidth() const
Returns the width of the grid lines.
TGUI_NODISCARD Texture getItemIcon(std::size_t index) const
Gets the icon displayed in front of the item.
void setSelectedItems(const std::set< std::size_t > &indices)
Selects items in the list view.
void setHeaderTextSize(unsigned int textSize)
Changes the text size of the header caption.
bool changeItem(std::size_t index, const std::vector< String > &item)
Changes an item with values for multiple columns to the list.
TGUI_NODISCARD String getItem(std::size_t index) const
Retrieves an item in the list.
TGUI_NODISCARD DataType getItemData(std::size_t index) const
Returns user data stored in the item.
Definition ListView.hpp:469
void removeAllItems()
Removes all items from the list.
TGUI_NODISCARD bool getShowVerticalGridLines() const
Returns whether lines are drawn between items.
void setColumnWidth(std::size_t index, float width)
Changes the width of a column.
TGUI_NODISCARD float getHeaderHeight() const
Returns the height of the header row.
void setSize(const Layout2d &size) override
Changes the size of the list view.
void setHeaderVisible(bool showHeader)
Changes whether the header is shown.
TGUI_NODISCARD unsigned int getHeaderTextSize() const
Returns the text size of the header caption.
void insertItem(std::size_t index, const String &text)
Inserts an item into the list.
TGUI_NODISCARD unsigned int getItemHeight() const
Returns the height of the items in the list view.
static TGUI_NODISCARD ListView::Ptr create()
Creates a new list view widget.
void setColumnText(std::size_t index, const String &text)
Changes the text of a column.
std::shared_ptr< ListView > Ptr
Shared widget pointer.
Definition ListView.hpp:51
TGUI_NODISCARD unsigned int getHeaderSeparatorHeight() const
Returns the height of the separator between the header and the items.
TGUI_NODISCARD std::size_t getColumnCount() const
Returns the amount of columns in the list view.
static TGUI_NODISCARD ListView::Ptr copy(const ListView::ConstPtr &listView)
Makes a copy of another list view.
void sort(std::size_t index, const std::function< bool(const String &, const String &)> &cmp)
Sort items.
std::size_t addColumn(const String &text, float width=0, HorizontalAlignment alignment=HorizontalAlignment::Left)
Adds a column.
TGUI_NODISCARD String getColumnText(std::size_t index) const
Returns the text of a column.
void insertMultipleItems(std::size_t index, const std::vector< std::vector< String > > &items)
Inserts multiple items into 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.
std::size_t addItem(const String &text)
Adds an item to the list.
void insertItem(std::size_t index, const std::vector< String > &item)
Inserts an item into the list.
void setItemIcon(std::size_t index, const Texture &texture)
Sets a small icon in front of the item.
TGUI_NODISCARD bool getAutoScroll() const
Returns whether the list view scrolls to the bottom when a new item is added.
TGUI_NODISCARD std::vector< std::vector< String > > getItemRows() const
Returns a list of all column values for all items in the list view.
TGUI_NODISCARD HorizontalAlignment getColumnAlignment(std::size_t columnIndex) const
Returns the current text alignment within a column.
TGUI_NODISCARD std::set< std::size_t > getSelectedItemIndices() const
Gets the indices of the selected items.
void setColumnAlignment(std::size_t columnIndex, HorizontalAlignment alignment)
Changes the text alignment within a column.
TGUI_NODISCARD int getSelectedItemIndex() const
Gets the index of the selected item.
TGUI_NODISCARD bool getMultiSelect() const
Returns multi selection of the items is allowed.
TGUI_NODISCARD bool getShowHorizontalGridLines() const
Returns whether lines are drawn between items.
void setHeaderHeight(float height)
Changes the height of the header row.
void setShowHorizontalGridLines(bool showGridLines)
Changes whether lines are drawn between items.
std::shared_ptr< const ListView > ConstPtr
Shared constant widget pointer.
Definition ListView.hpp:52
TGUI_NODISCARD bool getColumnAutoResize(std::size_t index) const
Returns whether the column width depends on the widest item added to that column.
void deselectItems()
Deselects the selected items.
void addMultipleItems(const std::vector< std::vector< String > > &items)
Adds multiple items to the list.
TGUI_NODISCARD 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...
TGUI_NODISCARD float getCurrentHeaderHeight() const
Returns the height of the header or 0 if no header row is shown.
void setAutoScroll(bool autoScroll)
Changes whether the list view scrolls to the bottom when a new item is added.
TGUI_NODISCARD float getColumnDesignWidth(std::size_t index) const
Returns the original width of a column (the value passed to addColumn or the last setColumnWidth call...
std::size_t addItem(const std::vector< String > &item)
Adds an item with values for multiple columns to the list.
TGUI_NODISCARD bool getHeaderVisible() const
Returns whether the header is shown.
void setItemHeight(unsigned int itemHeight)
Changes the height of the items in the list view.
void setSelectedItem(std::size_t index)
Selects an item in the list view.
void setSeparatorWidth(unsigned int width)
Changes the width of the column separator.
void setHeaderSeparatorHeight(unsigned int height)
Changes the height of the separator between the header and the items.
void setItemData(std::size_t index, Any data)
Store some user data with the item.
TGUI_NODISCARD unsigned int getSeparatorWidth() const
Returns the width of the column separator.
TGUI_NODISCARD ListViewRenderer * getSharedRenderer() override
Returns the renderer, which gives access to functions that determine how the widget is displayed.
TGUI_NODISCARD std::vector< String > getItems() const
Returns a list of the texts in the first column for all items in the list view.
void setMultiSelect(bool multiSelect)
Allow multi selection of the items.
void removeAllColumns()
Removes all columns.
TGUI_NODISCARD ListViewRenderer * getRenderer() override
Returns the renderer, which gives access to functions that determine how the widget is displayed.
TGUI_NODISCARD std::vector< String > getItemRow(std::size_t index) const
Retrieves the values of all columns for an item in the list.
bool removeItem(std::size_t index)
Removes the item from the list view.
TGUI_NODISCARD std::size_t getItemCount() const
Returns the amount of items in the list view.
void setColumnAutoResize(std::size_t index, bool autoResize)
Changes whether the column width depends on the widest item added to that column.
TGUI_NODISCARD String getItemCell(std::size_t rowIndex, std::size_t columnIndex) const
Retrieves the value for a cell in the list.
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)
void setGridLinesWidth(unsigned int width)
Changes the width of the grid lines.
Definition ListViewRenderer.hpp:35
Definition Outline.hpp:38
Scrollbar widget.
Definition Scrollbar.hpp:43
Policy
Defines when the scrollbar shows up.
Definition Scrollbar.hpp:53
Signal to which the user can subscribe to get callbacks from.
Definition Signal.hpp:61
Definition Sprite.hpp:47
Wrapper class to store strings.
Definition String.hpp:96
Backend-independent wrapper around the backend-specific text class.
Definition Text.hpp:48
Texture wrapper that internally reuses resources when multiple Texture objects are loaded from the sa...
Definition Texture.hpp:57
The parent class for every widget.
Definition Widget.hpp:83
Namespace that contains all TGUI functions and classes.
Definition AbsoluteOrRelativeValue.hpp:38
HorizontalAlignment
The horizontal alignment.
Definition Layout.hpp:61
Definition Event.hpp:38
Definition ListView.hpp:69
Definition ListView.hpp:62
States used for drawing.
Definition RenderStates.hpp:38