1 | /* |
2 | This file is part of the KDE libraries |
3 | SPDX-FileCopyrightText: 1999 Reginald Stadlbauer <reggie@kde.org> |
4 | SPDX-FileCopyrightText: 1999 Simon Hausmann <hausmann@kde.org> |
5 | SPDX-FileCopyrightText: 2000 Nicolas Hadacek <haadcek@kde.org> |
6 | SPDX-FileCopyrightText: 2000 Kurt Granroth <granroth@kde.org> |
7 | SPDX-FileCopyrightText: 2000 Michael Koch <koch@kde.org> |
8 | SPDX-FileCopyrightText: 2001 Holger Freyther <freyther@kde.org> |
9 | SPDX-FileCopyrightText: 2002 Ellis Whitehead <ellis@kde.org> |
10 | SPDX-FileCopyrightText: 2003 Andras Mantia <amantia@kde.org> |
11 | SPDX-FileCopyrightText: 2005-2006 Hamish Rodda <rodda@kde.org> |
12 | |
13 | SPDX-License-Identifier: LGPL-2.0-only |
14 | */ |
15 | |
16 | #ifndef KTOGGLEACTION_H |
17 | #define KTOGGLEACTION_H |
18 | |
19 | #include <QAction> |
20 | #include <memory> |
21 | |
22 | #include <kwidgetsaddons_export.h> |
23 | |
24 | class KGuiItem; |
25 | class KToggleActionPrivate; |
26 | |
27 | /** |
28 | * @class KToggleAction ktoggleaction.h KToggleAction |
29 | * |
30 | * @short Checkbox like action. |
31 | * |
32 | * This action provides two states: checked or not. |
33 | * |
34 | */ |
35 | class KWIDGETSADDONS_EXPORT KToggleAction : public QAction |
36 | { |
37 | Q_OBJECT |
38 | |
39 | public: |
40 | /** |
41 | * Constructs an action with the specified parent. |
42 | * |
43 | * @param parent The action's parent object. |
44 | */ |
45 | explicit KToggleAction(QObject *parent); |
46 | |
47 | /** |
48 | * Constructs an action with text; a shortcut may be specified by |
49 | * the ampersand character (e.g.\ "&Option" creates a shortcut with key \e O ) |
50 | * |
51 | * This is the most common QAction used when you do not have a |
52 | * corresponding icon (note that it won't appear in the current version |
53 | * of the "Edit ToolBar" dialog, because an action needs an icon to be |
54 | * plugged in a toolbar...). |
55 | * |
56 | * @param text The text that will be displayed. |
57 | * @param parent The action's parent object. |
58 | */ |
59 | KToggleAction(const QString &text, QObject *parent); |
60 | |
61 | /** |
62 | * Constructs an action with text and an icon; a shortcut may be specified by |
63 | * the ampersand character (e.g.\ "&Option" creates a shortcut with key \e O ) |
64 | * |
65 | * This is the other common QAction used. Use it when you |
66 | * \e do have a corresponding icon. |
67 | * |
68 | * @param icon The icon to display. |
69 | * @param text The text that will be displayed. |
70 | * @param parent The action's parent object. |
71 | */ |
72 | KToggleAction(const QIcon &icon, const QString &text, QObject *parent); |
73 | |
74 | /** |
75 | * Destructor |
76 | */ |
77 | ~KToggleAction() override; |
78 | |
79 | /** |
80 | * Defines the text (and icon, tooltip, whatsthis) that should be displayed |
81 | * instead of the normal text, when the action is checked. |
82 | * Note that this does <em>not</em> replace the check box in front of the |
83 | * menu. So you should not use it to replace the text "Show <foo>" with |
84 | * "Hide <foo>", for example. |
85 | * |
86 | * If hasIcon(), the icon is kept for the 'checked state', unless |
87 | * @p checkedItem defines an icon explicitly. Same thing for tooltip and whatsthis. |
88 | */ |
89 | void setCheckedState(const KGuiItem &checkedItem); |
90 | |
91 | protected Q_SLOTS: |
92 | virtual void slotToggled(bool checked); |
93 | |
94 | protected: |
95 | KWIDGETSADDONS_NO_EXPORT KToggleAction(KToggleActionPrivate &dd, QObject *parent); |
96 | |
97 | protected: |
98 | std::unique_ptr<class KToggleActionPrivate> const d_ptr; |
99 | |
100 | private: |
101 | Q_DECLARE_PRIVATE(KToggleAction) |
102 | }; |
103 | |
104 | #endif |
105 | |