WSF
Plugin.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2018 Infoscitex, a DCS Company. All rights reserved.
7//
8// The use, dissemination or disclosure of data in this file is subject to
9// limitation or restriction. See accompanying README and LICENSE for details.
10// ****************************************************************************
11#ifndef PLUGIN_HPP
12#define PLUGIN_HPP
13
14#include <QObject>
15class UtCalendar;
16#include "Environment.hpp"
17#include "ViExport.hpp"
18#include "WkfPlugin.hpp"
19
20namespace wizard
21{
22template<class PClass>
23class PluginT : public PClass
24{
25 static_assert(std::is_base_of<wkf::Plugin, PClass>::value,
26 "Template argument to wizard::PluginT must be a subclass of wkf::Plugin");
27
28 using ThisClass = PluginT<PClass>;
29
30public:
31 PluginT(const QString& aPluginName, const size_t aUniqueId)
32 : PClass(aPluginName, aUniqueId)
33 {
34 QObject::connect(&wizEnv, &Environment::MarginClick, this, &PluginT::MarginClick);
40 }
41 ~PluginT() override = default;
42
43 virtual void MarginClick(Qt::MouseButton aButton, const QString& aSourcePath, size_t aLineNumber) {}
44 virtual void MarginDraw(const QString& aSourcePath, QPainter& aPainter, const QMap<size_t, QPoint>& aVisibleLineMap)
45 {
46 }
47 virtual void GetHighlightLines(const QString& aSourcePath, QList<size_t>& aList) {}
48 virtual void FocusedCopy() {}
49 virtual void PlatformUpdated(const QString& aPlatformName) {}
50 virtual void PlatformDeleted(const QString& aPlatformName) {}
51
52private:
53};
55} // namespace wizard
56
57#endif // PLUGIN_HPP
#define wizEnv
Definition Environment.hpp:29
void MarginDrawRequest(const QString &aSourcePath, QPainter &aPainter, const QMap< size_t, QPoint > &aVisibleLineMap)
void MarginClick(Qt::MouseButton aButton, const QString &aSourcePtr, size_t aLineNumber)
void HighlightLinesRequest(const QString &aSourcePath, QList< size_t > &aLineList)
void PlatformUpdated(const QString &aPlatformName)
void PlatformDeleted(const QString &aPlatformName)
Definition Plugin.hpp:24
virtual void PlatformDeleted(const QString &aPlatformName)
Definition Plugin.hpp:50
~PluginT() override=default
virtual void FocusedCopy()
Definition Plugin.hpp:48
virtual void MarginDraw(const QString &aSourcePath, QPainter &aPainter, const QMap< size_t, QPoint > &aVisibleLineMap)
Definition Plugin.hpp:44
virtual void PlatformUpdated(const QString &aPlatformName)
Definition Plugin.hpp:49
virtual void GetHighlightLines(const QString &aSourcePath, QList< size_t > &aList)
Definition Plugin.hpp:47
PluginT(const QString &aPluginName, const size_t aUniqueId)
Definition Plugin.hpp:31
virtual void MarginClick(Qt::MouseButton aButton, const QString &aSourcePath, size_t aLineNumber)
Definition Plugin.hpp:43
Definition Runner.hpp:22
PluginT< wkf::Plugin > Plugin
Definition Plugin.hpp:54
Copyrights Multiple, All Rights Reserved