ui/qt/menu.h

changeset 103
6606616eca9f
parent 0
2483f517c562
--- a/ui/qt/menu.h	Tue Feb 25 21:11:00 2025 +0100
+++ b/ui/qt/menu.h	Sat Apr 05 16:46:11 2025 +0200
@@ -30,105 +30,34 @@
 #define	MENU_H
 
 #include "../ui/menu.h"
-#include <ucx/list.h>
+#include "../common/menu.h"
+
+#include "toolkit.h"
 
 #include <QMainWindow>
 #include <QMenu>
 #include <QMenuBar>
 #include <QContextMenuEvent>
 
-class UiMenuItemI {
-public:
-    virtual void addTo(UiObject *obj, QMenuBar *menubar, QMenu *menu) = 0;
-};
-
-class UiMenu : public UiMenuItemI {
-public:
-    
-    UcxList *items;
-    char *label;
-    
-    UiMenu(char *label);
-    
-    void addMenuItem(UiMenuItemI *item);
-    
-    virtual void addTo(UiObject *obj, QMenuBar *menubar, QMenu *menu);
-};
-
-class UiMenuItem : public UiMenuItemI {
-    char *label;
-    ui_callback callback;
-    void *userdata;
-    UcxList *groups;
-    bool checkable = false;
-    
-public:
-    UiMenuItem(char *label, ui_callback f, void *userdata);
-    void addGroup(int group);
-    void setCheckable(bool c);
-    
-    virtual void addTo(UiObject *obj, QMenuBar *menubar, QMenu *menu);
-};
-
-class UiStMenuItem : public UiMenuItemI {
-    char *stockid;
-    ui_callback callback;
-    void *userdata;
-    UcxList *groups;
-    
-public:
-    UiStMenuItem(char *stockid, ui_callback f, void *userdata);
-    void addGroup(int group);
-    
-    virtual void addTo(UiObject *obj, QMenuBar *menubar, QMenu *menu);
-};
-
-class UiMenuSeparator : public UiMenuItemI {
-public:
-    virtual void addTo(UiObject *obj, QMenuBar *menubar, QMenu *menu);
-};
-
-class UiCheckItemNV : public UiMenuItemI {
-    char *label;
-    char *varname;
-    
-public:
-    UiCheckItemNV(char *label, char *varname);
-    virtual void addTo(UiObject *obj, QMenuBar *menubar, QMenu *menu);
-};
-
-
-class UiAction : public QAction {
-    Q_OBJECT
-    
-    UiObject *obj;
-    ui_callback callback;
-    void *userdata;
-    
-public:
-    UiAction(UiObject *obj, QString &label, ui_callback f, void *userdata);
-
-private slots:
-    void trigger();
-};
-
 void ui_add_menus(UiObject *obj, QMainWindow *window);
 
-extern "C" int ui_checkitem_get(UiInteger *i);
-extern "C" void ui_checkitem_set(UiInteger *i, int value);
+typedef void(*ui_menu_add_f)(QMenu*, int, UiMenuItemI*, UiObject*);
 
-class UiContextMenuHandler : public QObject {
-    Q_OBJECT
-    
-    QWidget *widget;
-    QMenu *menu;
-    
-public:
-    UiContextMenuHandler(QWidget *widget, QMenu *menu);
-    
-public slots:
-    void contextMenuEvent(const QPoint & pos);
-};
+void add_menu_widget(QMenu *parent, int i, UiMenuItemI *item, UiObject *obj);
+void add_menuitem_widget(QMenu *parent, int i, UiMenuItemI *item, UiObject *obj);
+void add_menuseparator_widget(QMenu *parent, int i, UiMenuItemI *item, UiObject *obj);
+void add_checkitem_widget(QMenu *parent, int i, UiMenuItemI *item, UiObject *obj);
+void add_radioitem_widget(QMenu *parent, int index, UiMenuItemI *item, UiObject *obj);
+void add_checkitemnv_widget(QMenu *parent, int i, UiMenuItemI *item, UiObject *obj);
+void add_menuitem_list_widget(QMenu *parent, int i, UiMenuItemI *item, UiObject *obj);
+
+void ui_checkableaction_prepare_event(UiEvent *event, UiAction *action);
+int64_t ui_checkableaction_get(UiInteger *value);
+void ui_checkableaction_set(UiInteger *value, int64_t i);
+
+void ui_actiongroup_prepare_event(UiEvent *event, UiAction *action);
+int64_t ui_actiongroup_get(UiInteger *value);
+void ui_actiongroup_set(UiInteger *value, int64_t i);
 
 #endif	/* MENU_H */
 

mercurial