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