summaryrefslogtreecommitdiffstats
path: root/src/qmlandroid/view/qqmlandroidmenuitem_p.h
blob: 42f658c3af6a7ce89aee0d1d81ec3f528a41666b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#ifndef QQMLANDROIDMENUITEM_P_H
#define QQMLANDROIDMENUITEM_P_H

#include "qqmlandroidcontextual_p.h"

QT_BEGIN_NAMESPACE

class QQmlAndroidView;

class QQmlAndroidMenuItem : public QQmlAndroidContextual
{
    Q_OBJECT
    Q_PROPERTY(QString title READ title WRITE setTitle NOTIFY titleChanged)
    Q_PROPERTY(bool enabled READ isEnabled WRITE setEnabled NOTIFY enabledChanged)
    Q_PROPERTY(bool visible READ isVisible WRITE setVisible NOTIFY visibleChanged)
    Q_PROPERTY(bool checkable READ isCheckable WRITE setCheckable NOTIFY checkableChanged)
    Q_PROPERTY(bool checked READ isChecked WRITE setChecked NOTIFY checkedChanged)
    Q_PROPERTY(int showAs READ showAs WRITE setShowAs NOTIFY showAsChanged)
    Q_PROPERTY(QQmlAndroidView *actionView READ actionView WRITE setActionView NOTIFY actionViewChanged)
    Q_ENUMS(ShowAs)

public:
    explicit QQmlAndroidMenuItem(QObject *parent = 0);

    QString title() const;
    void setTitle(const QString &title);

    bool isEnabled() const;
    void setEnabled(bool enabled);

    bool isVisible() const;
    void setVisible(bool visible);

    bool isCheckable() const;
    void setCheckable(bool checkable);

    bool isChecked() const;
    void setChecked(bool checked);

    enum ShowAs {
        SHOW_AS_ACTION_NEVER = 0,
        SHOW_AS_ACTION_IF_ROOM = 1,
        SHOW_AS_ACTION_ALWAYS = 2,
        SHOW_AS_ACTION_WITH_TEXT = 4,
        SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW = 8
    };

    int showAs() const;
    void setShowAs(int showAs);

    QQmlAndroidView *actionView() const;
    void setActionView(QQmlAndroidView *view);

Q_SIGNALS:
    void click();
    void titleChanged();
    void enabledChanged();
    void visibleChanged();
    void checkableChanged();
    void checkedChanged();
    void showAsChanged();
    void actionViewChanged();

protected:
    QAndroidJniObject onCreate() Q_DECL_OVERRIDE;
    void onInflate(QAndroidJniObject &instance) Q_DECL_OVERRIDE;

    static void onRegisterNativeMethods(jobject item);
    static bool onClick(JNIEnv *env, jobject object, jlong instance);
    static bool onMenuItemActionCollapse(JNIEnv *env, jobject object, jlong instance);
    static bool onMenuItemActionExpand(JNIEnv *env, jobject object, jlong instance);

    void objectChange(ObjectChange change) Q_DECL_OVERRIDE;

private Q_SLOTS:
    void updateActionView();

private:
    QString m_title;
    bool m_enabled;
    bool m_visible;
    bool m_checkable;
    bool m_checked;
    int m_showAs;
    QQmlAndroidView *m_actionView;
};

QT_END_NAMESPACE

#endif // QQMLANDROIDMENUITEM_P_H