File indexing completed on 2024-04-28 16:44:51
0001 #ifndef ACTION_DATA_VISITOR_H 0002 #define ACTION_DATA_VISITOR_H 0003 /** 0004 * SPDX-FileCopyrightText: 2009 Michael Jansen <kde@michael-jansen.biz> 0005 * 0006 * SPDX-License-Identifier: LGPL-2.0-or-later 0007 */ 0008 0009 namespace KHotKeys 0010 { 0011 class ActionData; 0012 class ActionDataBase; 0013 class ActionDataGroup; 0014 class Generic_action_data; 0015 class MenuEntryShortcutActionData; 0016 class SimpleActionData; 0017 template<typename T, typename A> class SimpleActionDataHelper; 0018 0019 /** 0020 * @author Michael Jansen <kde@michael-jansen.biz> 0021 */ 0022 class ActionDataVisitor 0023 { 0024 public: 0025 ActionDataVisitor(); 0026 0027 virtual ~ActionDataVisitor(); 0028 0029 virtual void visitActionDataBase(ActionDataBase *base); 0030 0031 virtual void visitActionData(ActionData *base) = 0; 0032 0033 virtual void visitActionDataGroup(ActionDataGroup *group) = 0; 0034 0035 virtual void visitGenericActionData(Generic_action_data *data) = 0; 0036 0037 virtual void visitMenuentryShortcutActionData(MenuEntryShortcutActionData *data) = 0; 0038 0039 virtual void visitSimpleActionData(SimpleActionData *data) = 0; 0040 0041 }; // ActionDataVisitor 0042 0043 /** 0044 * @author Michael Jansen <kde@michael-jansen.biz> 0045 */ 0046 class ActionDataConstVisitor 0047 { 0048 public: 0049 ActionDataConstVisitor(); 0050 0051 virtual ~ActionDataConstVisitor(); 0052 0053 virtual void visitActionDataBase(const ActionDataBase *base); 0054 0055 virtual void visitActionData(const ActionData *base) = 0; 0056 0057 virtual void visitActionDataGroup(const ActionDataGroup *group) = 0; 0058 0059 virtual void visitGenericActionData(const Generic_action_data *data) = 0; 0060 0061 virtual void visitMenuentryShortcutActionData(const MenuEntryShortcutActionData *data) = 0; 0062 0063 virtual void visitSimpleActionData(const SimpleActionData *data) = 0; 0064 0065 template<typename T, typename A> KHotKeys::ActionDataBase *visitSimpleActionDataHelper(const KHotKeys::SimpleActionDataHelper<T, A> *object); 0066 0067 private: 0068 }; // ActionDataConstVisitor 0069 0070 } // KHotKeys 0071 0072 #endif /* ACTION_DATA_VISITOR_H */