ArcdpsExtension
 
Loading...
Searching...
No Matches
DemoTable.h
Go to the documentation of this file.
1#pragma once
2
3#include "../MainTable.h"
4#include "../MainWindow.h"
5#include "../../arcdps_structs.h"
6
7#include <functional>
8#include <imgui/imgui.h>
9#include <string>
10#include <vector>
11
12namespace ArcdpsExtension {
13 using std::string_literals::operator""s;
14
15 static const std::vector<MainTableColumn> tableColumns = {
16 {0, [] { return "Column1"s; }, [] { return nullptr; }, "0" },
17 {1, [] { return "Column2"s; }, [] { return nullptr; }, "0" },
18 {2, [] { return "Column3"s; }, [] { return nullptr; }, "1" },
19 {3, [] { return "Column4"s; }, [] { return nullptr; }, "1.1"},
20 };
21
25 struct Row {
26 std::string Column1;
27 std::string Column2;
28 std::string Column3;
29 std::string Column4;
30 std::string HoveredText;
31 };
32
33 static inline std::vector<Row> Rows = {
34 {"1Row1.1", "4Row1.2", "3Row1.3", "3Row1.4", "Row1 Hovered Text"},
35 {"2Row2.1", "3Row2.2", "5Row2.3", "1Row2.4", "Row2 Hovered Text"},
36 {"3Row3.1", "5Row3.2", "2Row3.3", "5Row3.4", "Row3 Hovered Text"},
37 {"4Row4.1", "2Row4.2", "1Row4.3", "4Row4.4", "Row4 Hovered Text"},
38 {"5Row5.1", "1Row5.2", "4Row5.3", "2Row5.4", "Row5 Hovered Text"},
39 };
40
41 class DemoTable : public MainTable<> {
42 public:
43 explicit DemoTable(MainWindow* pMainWindow) : MainTable<>(tableColumns, pMainWindow, MainTableFlags_SubWindow) {}
44
45 protected:
46 Alignment& getAlignment() override;
47 Alignment& getHeaderAlignment() override;
48 std::string getTableId() override;
49 int& getMaxDisplayed() override;
50 const char* getCategoryName(const std::string& pCat) override;
51 bool& getShowAlternatingBackground() override;
52 TableSettings& getTableSettings() override;
53 bool& getHighlightHoveredRows() override;
54 bool& getShowHeaderAsText() override;
55
56 void DrawRows(TableColumnIdx pFirstColumnIndex) override;
57 void Sort(const ImGuiTableColumnSortSpecs* mColumnSortSpecs) override;
58
59 private:
60 Alignment mAlignment = Alignment::Left;
61 Alignment mHeaderAlignment = Alignment::Left;
62 int mMaxDisplayed = 0;
63 bool mAlternatingBackground = false;
64 TableSettings mSettings;
65 bool mHighlightHoveredRows = true;
66 bool mShowHeaderAsText = false;
67 };
68} // namespace ArcdpsExtension
Alignment
Definition arcdps_structs.h:64
Definition DemoTable.h:41
int & getMaxDisplayed() override
Definition DemoTable.cpp:21
Alignment & getHeaderAlignment() override
Definition DemoTable.cpp:13
Alignment & getAlignment() override
Definition DemoTable.cpp:9
DemoTable(MainWindow *pMainWindow)
Definition DemoTable.h:43
void Sort(const ImGuiTableColumnSortSpecs *mColumnSortSpecs) override
Definition DemoTable.cpp:72
std::string getTableId() override
Definition DemoTable.cpp:17
bool & getHighlightHoveredRows() override
Definition DemoTable.cpp:39
bool & getShowHeaderAsText() override
Definition DemoTable.cpp:43
void DrawRows(TableColumnIdx pFirstColumnIndex) override
Definition DemoTable.cpp:47
TableSettings & getTableSettings() override
Definition DemoTable.cpp:35
const char * getCategoryName(const std::string &pCat) override
Definition DemoTable.cpp:25
bool & getShowAlternatingBackground() override
Definition DemoTable.cpp:31
Definition MainTable.h:128
Definition MainWindow.h:23
Definition ArcdpsExtension.h:10
@ MainTableFlags_SubWindow
Definition MainTable.h:91
ImS16 TableColumnIdx
Definition MainTable.h:41
Definition DemoTable.h:25
std::string Column1
Definition DemoTable.h:26
std::string Column4
Definition DemoTable.h:29
std::string HoveredText
Definition DemoTable.h:30
std::string Column2
Definition DemoTable.h:27
std::string Column3
Definition DemoTable.h:28