--- 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);