File indexing completed on 2024-04-28 16:44:52

0001 /*
0002     SPDX-License-Identifier: GPL-2.0-only
0003     SPDX-FileCopyrightText: 1999-2001 Lubos Lunak <l.lunak@kde.org>
0004  */
0005 
0006 #ifndef CONDITIONS_H
0007 #define CONDITIONS_H
0008 
0009 #include "conditions/conditions_list_base.h"
0010 
0011 #include "action_data/action_data_group.h"
0012 #include "windows_handler.h"
0013 
0014 class KConfigGroup;
0015 
0016 namespace KHotKeys
0017 {
0018 class Condition;
0019 
0020 class Q_DECL_EXPORT Not_condition : public Condition_list_base
0021 {
0022     typedef Condition_list_base base;
0023 
0024 public:
0025     Not_condition(Condition_list_base *parent = nullptr);
0026     Not_condition(KConfigGroup &cfg_P, Condition_list_base *parent_P);
0027     bool match() const override;
0028     void cfg_write(KConfigGroup &cfg_P) const override;
0029     Not_condition *copy() const override;
0030     const QString description() const override;
0031     const Condition *condition() const;
0032     bool accepts_children() const override;
0033 };
0034 
0035 class Q_DECL_EXPORT And_condition : public Condition_list_base
0036 {
0037     typedef Condition_list_base base;
0038 
0039 public:
0040     And_condition(Condition_list_base *parent = nullptr);
0041     And_condition(KConfigGroup &cfg_P, Condition_list_base *parent_P);
0042     bool match() const override;
0043     void cfg_write(KConfigGroup &cfg_P) const override;
0044     And_condition *copy() const override;
0045     const QString description() const override;
0046 };
0047 
0048 class Q_DECL_EXPORT Or_condition : public Condition_list_base
0049 {
0050     typedef Condition_list_base base;
0051 
0052 public:
0053     Or_condition(Condition_list_base *parent = nullptr);
0054     Or_condition(KConfigGroup &cfg_P, Condition_list_base *parent_P);
0055     bool match() const override;
0056     void cfg_write(KConfigGroup &cfg_P) const override;
0057     Or_condition *copy() const override;
0058     const QString description() const override;
0059 };
0060 
0061 } // namespace KHotKeys
0062 
0063 #endif // #define CONDITIONS_H