Warning, file /graphics/glaxnimate/src/core/model/visitor.hpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /*
0002  * SPDX-FileCopyrightText: 2019-2023 Mattia Basaglia <dev@dragon.best>
0003  *
0004  * SPDX-License-Identifier: GPL-3.0-or-later
0005  */
0006 
0007 #pragma once
0008 #include <QtGlobal>
0009 
0010 namespace glaxnimate::model {
0011 
0012 class Document;
0013 class Composition;
0014 class DocumentNode;
0015 
0016 class Visitor
0017 {
0018 public:
0019     virtual ~Visitor() {}
0020 
0021     void visit(model::Document* doc, model::Composition* main, bool skip_locked = false);
0022     void visit(model::DocumentNode* node, bool skip_locked = false);
0023 
0024 private:
0025     virtual void on_visit(model::DocumentNode* node) = 0;
0026     virtual void on_visit_end(model::DocumentNode* node) { Q_UNUSED(node) }
0027     virtual void on_visit_document(model::Document* document, model::Composition* main) { Q_UNUSED(document) Q_UNUSED(main) }
0028     virtual void on_visit_document_end(model::Document* document, model::Composition* main) { Q_UNUSED(document) Q_UNUSED(main) }
0029 };
0030 
0031 } // namespace glaxnimate::model