diff -r 64ded9f6a6c6 -r 6606616eca9f ui/qt/toolkit.h --- a/ui/qt/toolkit.h Tue Feb 25 21:11:00 2025 +0100 +++ b/ui/qt/toolkit.h Sat Apr 05 16:46:11 2025 +0200 @@ -35,20 +35,62 @@ #include +class UiEventWrapper; + +typedef void (*ui_prepare_event_func)(UiEvent *event, UiEventWrapper *wrapper); + class UiEventWrapper : public QObject { Q_OBJECT UiObject *obj; ui_callback callback; void *userdata; - + public: + UiVar *var; + + void *customdata1 = nullptr; + void *customdata2 = nullptr; + int customvalue1 = 0; + int customvalue2 = 0; + + ui_prepare_event_func prepare_event = nullptr; + UiEventWrapper(UiObject *obj, ui_callback f, void *userdata); public slots: void slot(); + void destroy(); }; +class UiAction; + +typedef void (*ui_prepare_action_event_func)(UiEvent *event, UiAction *action); + +class UiAction : public QAction { + Q_OBJECT + + UiObject *obj; + ui_callback callback; + void *userdata; + +public: + UiVar *var; + + ui_prepare_action_event_func prepare_event = nullptr; + void *customdata1 = nullptr; + void *customdata2 = nullptr; + int customvalue1 = 0; + int customvalue2 = 0; + + UiAction(UiObject *obj, QString &label, ui_callback f, void *userdata); + ~UiAction(); + +private slots: + void trigger(); +}; + +void ui_action_enable(UiAction *action, int enable); #endif /* TOOLKIT_H */