1 /**************************************************************************** 2 ** 3 ** Copyright (C) 2016 The Qt Company Ltd. 4 ** Contact: https://www.qt.io/licensing/ 5 ** 6 ** This file is part of the tools applications of the Qt Toolkit. 7 ** 8 ** $QT_BEGIN_LICENSE:GPL-EXCEPT$ 9 ** Commercial License Usage 10 ** Licensees holding valid commercial Qt licenses may use this file in 11 ** accordance with the commercial license agreement provided with the 12 ** Software or, alternatively, in accordance with the terms contained in 13 ** a written agreement between you and The Qt Company. For licensing terms 14 ** and conditions see https://www.qt.io/terms-conditions. For further 15 ** information use the contact form at https://www.qt.io/contact-us. 16 ** 17 ** GNU General Public License Usage 18 ** Alternatively, this file may be used under the terms of the GNU 19 ** General Public License version 3 as published by the Free Software 20 ** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT 21 ** included in the packaging of this file. Please review the following 22 ** information to ensure the GNU General Public License requirements will 23 ** be met: https://www.gnu.org/licenses/gpl-3.0.html. 24 ** 25 ** $QT_END_LICENSE$ 26 ** 27 ****************************************************************************/ 28 29 #ifndef TREEWALKER_H 30 #define TREEWALKER_H 31 32 #include <qvector.h> 33 34 QT_BEGIN_NAMESPACE 35 36 class DomUI; 37 class DomLayoutDefault; 38 class DomLayoutFunction; 39 class DomTabStops; 40 class DomLayout; 41 class DomLayoutItem; 42 class DomWidget; 43 class DomSpacer; 44 class DomColor; 45 class DomColorGroup; 46 class DomPalette; 47 class DomFont; 48 class DomPoint; 49 class DomRect; 50 class DomSizePolicy; 51 class DomSize; 52 class DomDate; 53 class DomTime; 54 class DomDateTime; 55 class DomProperty; 56 class DomCustomWidgets; 57 class DomCustomWidget; 58 class DomAction; 59 class DomActionGroup; 60 class DomActionRef; 61 class DomImages; 62 class DomImage; 63 class DomItem; 64 class DomIncludes; 65 class DomInclude; 66 class DomString; 67 class DomResourcePixmap; 68 class DomResources; 69 class DomResource; 70 class DomConnections; 71 class DomConnection; 72 class DomConnectionHints; 73 class DomConnectionHint; 74 class DomScript; 75 class DomButtonGroups; 76 class DomButtonGroup; 77 78 struct TreeWalker 79 { 80 Q_DISABLE_COPY_MOVE(TreeWalker) 81 82 TreeWalker() = default; 83 inline virtual ~TreeWalker() = default; 84 85 virtual void acceptUI(DomUI *ui); 86 virtual void acceptLayoutDefault(DomLayoutDefault *layoutDefault); 87 virtual void acceptLayoutFunction(DomLayoutFunction *layoutFunction); 88 virtual void acceptTabStops(DomTabStops *tabStops); 89 virtual void acceptCustomWidgets(DomCustomWidgets *customWidgets); 90 virtual void acceptCustomWidget(DomCustomWidget *customWidget); 91 virtual void acceptLayout(DomLayout *layout); 92 virtual void acceptLayoutItem(DomLayoutItem *layoutItem); 93 virtual void acceptWidget(DomWidget *widget); 94 virtual void acceptSpacer(DomSpacer *spacer); 95 virtual void acceptColor(DomColor *color); 96 virtual void acceptColorGroup(DomColorGroup *colorGroup); 97 virtual void acceptPalette(DomPalette *palette); 98 virtual void acceptFont(DomFont *font); 99 virtual void acceptPoint(DomPoint *point); 100 virtual void acceptRect(DomRect *rect); 101 virtual void acceptSizePolicy(DomSizePolicy *sizePolicy); 102 virtual void acceptSize(DomSize *size); 103 virtual void acceptDate(DomDate *date); 104 virtual void acceptTime(DomTime *time); 105 virtual void acceptDateTime(DomDateTime *dateTime); 106 virtual void acceptProperty(DomProperty *property); 107 using DomWidgets = QVector<DomWidget *>; 108 virtual void acceptIncludes(DomIncludes *includes); 109 virtual void acceptInclude(DomInclude *incl); 110 virtual void acceptAction(DomAction *action); 111 virtual void acceptActionGroup(DomActionGroup *actionGroup); 112 virtual void acceptActionRef(DomActionRef *actionRef); 113 virtual void acceptConnections(DomConnections *connections); 114 virtual void acceptConnection(DomConnection *connection); 115 virtual void acceptConnectionHints(DomConnectionHints *connectionHints); 116 virtual void acceptConnectionHint(DomConnectionHint *connectionHint); 117 virtual void acceptButtonGroups(const DomButtonGroups *buttonGroups); 118 virtual void acceptButtonGroup(const DomButtonGroup *buttonGroup); 119 }; 120 121 QT_END_NAMESPACE 122 123 #endif // TREEWALKER_H 124