TGUI  1.1
Loading...
Searching...
No Matches
ListView.hpp
1
2//
3// TGUI - Texus' Graphical User Interface
4// Copyright (C) 2012-2023 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 enum class ColumnAlignment
60 {
61 Left,
62 Center,
63 Right
64 };
65
66 struct Item
67 {
68 std::vector<Text> texts;
69 Any data;
70 Sprite icon;
71 };
72
73 struct Column
74 {
75 float width = 0;
76 float designWidth = 0;
77 float widestItemWidth = 0;
78 std::size_t widestItemIndex = std::numeric_limits<std::size_t>::max();
79 Text text;
80 ColumnAlignment alignment = ColumnAlignment::Left;
81 bool autoResize = false;
82 bool expanded = false;
83 };
84
92 ListView(const char* typeName = StaticWidgetType, bool initRenderer = true);
93
98 TGUI_NODISCARD static ListView::Ptr create();
99
107 TGUI_NODISCARD static ListView::Ptr copy(const ListView::ConstPtr& listView);
108
113 TGUI_NODISCARD ListViewRenderer* getSharedRenderer() override;
114 TGUI_NODISCARD const ListViewRenderer* getSharedRenderer() const override;
115
121 TGUI_NODISCARD ListViewRenderer* getRenderer() override;
122
128 void setSize(const Layout2d& size) override;
129 using Widget::setSize;
130
140 std::size_t addColumn(const String& text, float width = 0, ColumnAlignment alignment = ColumnAlignment::Left);
141
148 void setColumnText(std::size_t index, const String& text);
149
157 TGUI_NODISCARD String getColumnText(std::size_t index) const;
158
165 void setColumnWidth(std::size_t index, float width);
166
179 TGUI_NODISCARD float getColumnWidth(std::size_t index) const;
180
190 TGUI_NODISCARD float getColumnDesignWidth(std::size_t index) const;
191
198 void setColumnAlignment(std::size_t columnIndex, ColumnAlignment alignment);
199
207 TGUI_NODISCARD ColumnAlignment getColumnAlignment(std::size_t columnIndex) const;
208
223 void setColumnAutoResize(std::size_t index, bool autoResize);
224
234 TGUI_NODISCARD bool getColumnAutoResize(std::size_t index) const;
235
252 void setColumnExpanded(std::size_t index, bool expand);
253
263 TGUI_NODISCARD bool getColumnExpanded(std::size_t index) const;
264
269
275 TGUI_NODISCARD std::size_t getColumnCount() const;
276
282 void setHeaderHeight(float height);
283
289 TGUI_NODISCARD float getHeaderHeight() const;
290
296 TGUI_NODISCARD float getCurrentHeaderHeight() const;
297
303 void setHeaderVisible(bool showHeader);
304
310 TGUI_NODISCARD bool getHeaderVisible() const;
311
322 std::size_t addItem(const String& text);
323
336 std::size_t addItem(const std::vector<String>& item);
337
343 void addMultipleItems(const std::vector<std::vector<String>>& items);
344
351 void insertItem(std::size_t index, const String& text);
352
359 void insertItem(std::size_t index, const std::vector<String>& item);
360
367 void insertMultipleItems(std::size_t index, const std::vector<std::vector<String>>& items);
368
377 bool changeItem(std::size_t index, const std::vector<String>& item);
378
388 bool changeSubItem(std::size_t index, std::size_t column, const String& item);
389
397 bool removeItem(std::size_t index);
398
403
409 void setSelectedItem(std::size_t index);
410
416 void setSelectedItems(const std::set<std::size_t>& indices);
417
422
429
435 TGUI_NODISCARD std::set<std::size_t> getSelectedItemIndices() const;
436
442 void setMultiSelect(bool multiSelect);
443
449 TGUI_NODISCARD bool getMultiSelect() const;
450
463 void setItemData(std::size_t index, Any data);
464
471 template <typename DataType>
472 TGUI_NODISCARD DataType getItemData(std::size_t index) const
473 {
474 if (index < m_items.size())
475 return AnyCast<DataType>(m_items[index].data);
476 else
477 throw std::bad_cast();
478 }
479
486 void setItemIcon(std::size_t index, const Texture& texture);
487
495 TGUI_NODISCARD Texture getItemIcon(std::size_t index) const;
496
502 TGUI_NODISCARD std::size_t getItemCount() const;
503
511 TGUI_NODISCARD String getItem(std::size_t index) const;
512
522 TGUI_NODISCARD std::vector<String> getItemRow(std::size_t index) const;
523
532 TGUI_NODISCARD String getItemCell(std::size_t rowIndex, std::size_t columnIndex) const;
533
539 TGUI_NODISCARD std::vector<String> getItems() const;
540
546 TGUI_NODISCARD std::vector<std::vector<String>> getItemRows() const;
547
559 void sort(std::size_t index, const std::function<bool(const String&, const String&)>& cmp);
560
566 void setItemHeight(unsigned int itemHeight);
567
573 TGUI_NODISCARD unsigned int getItemHeight() const;
574
582 void setHeaderTextSize(unsigned int textSize);
583
589 TGUI_NODISCARD unsigned int getHeaderTextSize() const;
590
596 void setSeparatorWidth(unsigned int width);
597
603 TGUI_NODISCARD unsigned int getSeparatorWidth() const;
604
610 void setHeaderSeparatorHeight(unsigned int height);
611
617 TGUI_NODISCARD unsigned int getHeaderSeparatorHeight() const;
618
624 void setGridLinesWidth(unsigned int width);
625
631 TGUI_NODISCARD unsigned int getGridLinesWidth() const;
632
640 void setAutoScroll(bool autoScroll);
641
647 TGUI_NODISCARD bool getAutoScroll() const;
648
656 void setShowVerticalGridLines(bool showGridLines);
657
663 TGUI_NODISCARD bool getShowVerticalGridLines() const;
664
672 void setShowHorizontalGridLines(bool showGridLines);
673
679 TGUI_NODISCARD bool getShowHorizontalGridLines() const;
680
686 TGUI_DEPRECATED("Use setColumnAutoExpanded and setColumnAutoResize instead") void setExpandLastColumn(bool expand);
687
693 TGUI_DEPRECATED("Use ColumnAutoExpanded and ColumnAutoResize setters and getters instead") TGUI_NODISCARD bool getExpandLastColumn() const;
694
699 void setVerticalScrollbarPolicy(Scrollbar::Policy policy);
700
705 TGUI_NODISCARD Scrollbar::Policy getVerticalScrollbarPolicy() const;
706
711 void setHorizontalScrollbarPolicy(Scrollbar::Policy policy);
712
717 TGUI_NODISCARD Scrollbar::Policy getHorizontalScrollbarPolicy() const;
718
724 void setVerticalScrollbarValue(unsigned int value);
725
731 TGUI_NODISCARD unsigned int getVerticalScrollbarValue() const;
732
738 void setHorizontalScrollbarValue(unsigned int value);
739
745 TGUI_NODISCARD unsigned int getHorizontalScrollbarValue() const;
746
755 void setFixedIconSize(Vector2f iconSize);
756
764 TGUI_NODISCARD Vector2f getFixedIconSize() const;
765
773 void setResizableColumns(bool resizable);
774
782 TGUI_NODISCARD bool getResizableColumns() const;
783
788 TGUI_NODISCARD bool isMouseOnWidget(Vector2f pos) const override;
789
793 bool leftMousePressed(Vector2f pos) override;
794
798 void leftMouseReleased(Vector2f pos) override;
799
803 void rightMousePressed(Vector2f pos) override;
804
808 void mouseMoved(Vector2f pos) override;
809
813 bool scrolled(float delta, Vector2f pos, bool touch) override;
814
818 void mouseNoLongerOnWidget() override;
819
823 void leftMouseButtonNoLongerDown() override;
824
828 void keyPressed(const Event::KeyEvent& event) override;
829
839 bool canHandleKeyPress(const Event::KeyEvent& event) override;
840
847 void draw(BackendRenderTarget& target, RenderStates states) const override;
848
850 protected:
851
861 TGUI_NODISCARD Signal& getSignal(String signalName) override;
862
868 void rendererChanged(const String& property) override;
869
873 TGUI_NODISCARD std::unique_ptr<DataIO::Node> save(SavingRenderersMap& renderers) const override;
874
878 void load(const std::unique_ptr<DataIO::Node>& node, const LoadingRenderersMap& renderers) override;
879
883 void mouseEnteredWidget() override;
884
888 void mouseLeftWidget() override;
889
893 void updateTextSize() override;
894
896 // Returns the size without the borders
898 TGUI_NODISCARD Vector2f getInnerSize() const;
899
901 // Create a Text object for an item from the given caption, using the preset color, font, text size and opacity
903 TGUI_NODISCARD Text createText(const String& caption);
904
906 // Create a Text object for a header text from the given caption, using the preset color, font, text size and opacity
908 TGUI_NODISCARD Text createHeaderText(const String& caption);
909
911 // Changes the color of all Text objects in an item
913 virtual void setItemColor(std::size_t index, const Color& color);
914
916 // Calculate the width of the column based on its caption when no column width was provided
918 TGUI_NODISCARD float calculateAutoColumnWidth(const Text& text);
919
921 // Update the colors of the selected and hovered items
923 void updateSelectedAndhoveredItemColors();
924
926 // Update the color of all the items
928 void updateItemColors();
929
931 // Changes the color of all header texts
933 void updateHeaderTextsColor();
934
936 // Update on which item the mouse is standing
938 void updateHoveredItem(int item);
939
941 // Update which item is selected
943 void updateSelectedItem(int item);
944
946 // Selects multiple items when multi-select is on and the user selects an item while the shift key is held down
948 void selectRangeFromEvent(std::size_t item);
949
951 // Updates which item is the widest in the given column, by calculating the width of each item
953 bool updateWidestItemInColumn(std::size_t columnIndex);
954
956 // Updates which item is the widest in the given column, when only one item has changed in width
958 bool updateWidestItemInColumn(std::size_t columnIndex, std::size_t itemIndex);
959
961 // Updates which item is the widest in all columns, by calculating the width of each item
963 bool updateWidestItem();
964
966 // Updates which item is the widest in all columns, when only one item has changed in width
968 bool updateWidestItem(std::size_t itemIndex);
969
971 // This function needs to be called when items are inserted into the list. If the widest item for each column is located
972 // below the inserted item then it's index needs to be updated.
974 void incrementWidestItemIndices(std::size_t itemIndex);
975
977 // Recalculates the width of each column if they don't have a fixed width. For auto-resized columns, the widest item
978 // should have already been updated in each column before this function is called.
980 void updateColumnWidths();
981
983 // Returns whether at least one column potentially has its width expanded to fill the list view
985 bool hasExpandedColumn() const;
986
988 // Add item to selected set
990 void addSelectedItem(int item);
991
993 // Remove item from selected set
995 void removeSelectedItem(std::size_t item);
996
998 // Update on which item the mouse is standing, given the current mouse position
1000 void updateHoveredItemByMousePos(Vector2f mousePos);
1001
1003 // Returns either the configured separator width or the width of vertical grid lines, whichever is larger.
1005 TGUI_NODISCARD unsigned int getTotalSeparatorWidth() const;
1006
1008 // Returns the total width an Item takes up at some column, assuming it will not be cut off by the column.
1010 TGUI_NODISCARD float getItemTotalWidth(const Item& item, std::size_t columnIndex) const;
1011
1013 // Found out which column is located below the mouse. The mouseLeft is relative to the widget position.
1014 // This function should only be called after checking that the mouse is positioned on top of the header.
1016 TGUI_NODISCARD int getColumnIndexBelowMouse(float mouseLeft);
1017
1019 // Returns whether the mouse is standing between two columns.
1020 // If true then columnIndex is set to the index of border below the mouse (1 is the border between first two columns).
1021 // If false then columnIndex remains unchanged.
1023 TGUI_NODISCARD bool findBorderBelowMouse(Vector2f pos, std::size_t& columnIndex) const;
1024
1026 // Recalculate the size and viewport size of the scrollbars
1028 void updateScrollbars();
1029
1031 // Recalculate the maximum value for the vertical scrollbar
1033 void updateVerticalScrollbarMaximum();
1034
1036 // Draw the header text for a single column
1038 void drawHeaderText(BackendRenderTarget& target, RenderStates states, float columnWidth, float headerHeight, std::size_t column) const;
1039
1041 // Draw the texts in a single column
1043 void drawColumn(BackendRenderTarget& target, RenderStates states, std::size_t firstItem, std::size_t lastItem, std::size_t column, float columnWidth) const;
1044
1046 // This function is called every frame with the time passed since the last frame.
1048 bool updateTime(Duration elapsedTime) override;
1049
1051 // Makes a copy of the widget
1053 TGUI_NODISCARD Widget::Ptr clone() const override;
1054
1056 public:
1057
1063 SignalInt onItemSelect = {"ItemSelected"};
1064
1065 SignalInt onDoubleClick = {"DoubleClicked"};
1066 SignalInt onRightClick = {"RightClicked"};
1067 SignalInt onHeaderClick = {"HeaderClicked"};
1068
1070 protected:
1071
1072 std::vector<Column> m_columns;
1073 std::vector<Item> m_items;
1074 std::set<std::size_t> m_selectedItems;
1075
1076 int m_hoveredItem = -1;
1077 int m_firstSelectedItemIndex = -1;
1078 int m_focusedItemIndex = -1;
1079
1080 float m_requestedHeaderHeight = 0;
1081 unsigned int m_itemHeight = 0;
1082 unsigned int m_headerTextSize = 0;
1083 unsigned int m_headerSeparatorHeight = 0;
1084 unsigned int m_separatorWidth = 1;
1085 unsigned int m_gridLinesWidth = 1;
1086 unsigned int m_iconCount = 0;
1087 float m_maxIconWidth = 0;
1088 float m_widestItemWidth = 0; // If there are no columns, this is the maximum width from all items
1089 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
1090 bool m_headerVisible = true;
1091 bool m_showHorizontalGridLines = false;
1092 bool m_showVerticalGridLines = true;
1093 bool m_expandLastColumn = false; // TGUI_NEXT: Remove this property
1094 bool m_multiSelect = false;
1095 bool m_resizableColumns = false;
1096 Vector2f m_fixedIconSize;
1097 Cursor::Type m_currentListViewMouseCursor = Cursor::Type::Arrow;
1098 std::size_t m_resizingColumn = 0;
1099 float m_resizingColumnLastMouseX = 0;
1100
1101 CopiedSharedPtr<ScrollbarChildWidget> m_horizontalScrollbar;
1102 CopiedSharedPtr<ScrollbarChildWidget> m_verticalScrollbar;
1103 Scrollbar::Policy m_verticalScrollbarPolicy = Scrollbar::Policy::Automatic;
1104 Scrollbar::Policy m_horizontalScrollbarPolicy = Scrollbar::Policy::Automatic;
1105
1106 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
1107 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
1108 bool m_autoScroll = true; // Should the list view scroll to the bottom when a new item is added?
1109
1110 Sprite m_spriteHeaderBackground;
1111 Sprite m_spriteBackground;
1112
1113 // Cached renderer properties
1114 Borders m_bordersCached;
1115 Borders m_paddingCached;
1116 Color m_borderColorCached;
1117 Color m_separatorColorCached;
1118 Color m_gridLinesColorCached;
1119 Color m_headerTextColorCached;
1120 Color m_headerBackgroundColorCached;
1121 Color m_backgroundColorCached;
1122 Color m_backgroundColorHoverCached;
1123 Color m_selectedBackgroundColorCached;
1124 Color m_selectedBackgroundColorHoverCached;
1125 Color m_textColorCached;
1126 Color m_textColorHoverCached;
1127 Color m_selectedTextColorCached;
1128 Color m_selectedTextColorHoverCached;
1129
1131 };
1132
1134}
1135
1137
1138#endif // TGUI_LIST_VIEW_HPP
Base class for render targets.
Definition BackendRenderTarget.hpp:48
Wrapper for colors.
Definition Color.hpp:72
Definition CopiedSharedPtr.hpp:45
Type
List of available cursors.
Definition Cursor.hpp:51
Wrapper for durations.
Definition Duration.hpp:56
Class to store the position or size of a widget.
Definition Layout.hpp:305
Definition ListViewRenderer.hpp:37
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.
std::size_t addColumn(const String &text, float width=0, ColumnAlignment alignment=ColumnAlignment::Left)
Adds a column.
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:472
void removeAllItems()
Removes all items from the list.
void setColumnAlignment(std::size_t columnIndex, ColumnAlignment alignment)
Changes the text alignment within a column.
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.
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.
int getSelectedItemIndex() const
Gets the index of the selected 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 std::set< std::size_t > getSelectedItemIndices() const
Gets the indices of the selected items.
ColumnAlignment
The text alignment for all texts within a column.
Definition ListView.hpp:60
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 is expanded to fill the list view (if all columns fit inside the list view...
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 ColumnAlignment getColumnAlignment(std::size_t columnIndex) const
Returns the current text alignment within a column.
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 Outline.hpp:39
Scrollbar widget.
Definition Scrollbar.hpp:45
Policy
Defines when the scrollbar shows up.
Definition Scrollbar.hpp:56
Signal to which the user can subscribe to get callbacks from.
Definition Signal.hpp:62
Definition Sprite.hpp:48
Wrapper class to store strings.
Definition String.hpp:101
Backend-independent wrapper around the backend-specific text class.
Definition Text.hpp:50
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:84
Namespace that contains all TGUI functions and classes.
Definition AbsoluteOrRelativeValue.hpp:39
Definition Event.hpp:39
Definition ListView.hpp:74
Definition ListView.hpp:67
States used for drawing.
Definition RenderStates.hpp:39