ui/winui/table.h

branch
newapi
changeset 218
d06e7e8e53e1
parent 215
1bd5534c395d
child 221
a82d9beaa94a
--- a/ui/winui/table.h	Sat Oct 14 10:01:22 2023 +0200
+++ b/ui/winui/table.h	Sat Oct 14 10:55:11 2023 +0200
@@ -33,6 +33,7 @@
 
 #include "../ui/container.h"
 
+
 typedef struct UiTableColumn {
 	winrt::Microsoft::UI::Xaml::Controls::Button header;
 
@@ -45,14 +46,20 @@
 	winrt::Microsoft::UI::Xaml::Media::SolidColorBrush highlightBrush;
 	winrt::Microsoft::UI::Xaml::Media::SolidColorBrush selectedBrush;
 	winrt::Microsoft::UI::Xaml::Media::SolidColorBrush selectedBorderBrush;
+	UiObject* obj;
+	ui_callback onactivate;
+	void* onactivatedata;
+	ui_callback onselection;
+	void* onselectiondata;
 	UiModel* model = nullptr;
 	std::vector<UiTableColumn> header;
 	ui_getvaluefunc getvalue = nullptr;
 	int maxrows = 0;
 	int lastSelection = 0;
+	ULONG64 lastPointerPress = 0;
 	std::vector<int> selection;
 
-	UiTable(winrt::Microsoft::UI::Xaml::Controls::ScrollViewer scrollW, winrt::Microsoft::UI::Xaml::Controls::Grid grid);
+	UiTable(UiObject *obj, winrt::Microsoft::UI::Xaml::Controls::ScrollViewer scrollW, winrt::Microsoft::UI::Xaml::Controls::Grid grid);
 
 	~UiTable();
 	
@@ -69,6 +76,8 @@
 	bool is_row_selected(int row);
 
 	void remove_from_selection(int row);
+
+	void call_handler(ui_callback cb, void *cbdata);
 } UiTable;
 
 extern "C" void ui_table_update(UiList * list, int i);

mercurial