OpenLexocad  28.0
Application.h
Go to the documentation of this file.
1 #pragma once
2 
3 
4 
8 #include <Base/String.h>
10 
11 #include <memory>
12 
13 class QApplication;
14 
15 namespace App
16 {
17 class Application;
18 }
19 
20 namespace OpenLxApp
21 {
22 class Document;
23 class ApplicationP;
24 
25 struct LX_OPENLXAPP_EXPORT LoadPlugins
26 {
28  {
29  ElementExtension = true;
30  ElementExtensionGui = true;
31  VPFreeExport = false;
32  CdwkVariant = false;
33  CdwkVariantGui = false;
34  }
35 
41 };
42 
49 class LX_OPENLXAPP_EXPORT Application
50 {
51 public:
53  ~Application(void);
54 
55  static Application* getInstance(void);
56  static void release();
58  std::shared_ptr<Document> newDocument(const Base::String& name = L"");
60  std::shared_ptr<Document> newVariantTransferDocument(const Base::String& name = L"");
62  void closeDocument(std::shared_ptr<Document> doc, bool forceClose = false);
66  std::shared_ptr<Document> getActiveDocument(bool createIfNeeded = false);
74  static void initQt(int argc, char* argv[]);
76  static void initQt();
78  static void setPluginsToLoad(const LoadPlugins& lp);
80  static LoadPlugins s_lp;
81 
82 private:
83  static Application* _instance;
84  ApplicationP* _pimpl;
85  static QApplication* s_qapp;
86 };
87 } // namespace OpenLxApp
OpenLxApp
Definition: ActiveScript.h:10
OpenLxApp::LoadPlugins::CdwkVariant
bool CdwkVariant
Definition: Application.h:39
OpenLxApp::Application::getActiveScript
ActiveScript getActiveScript() const
Returns the active script.
OpenLxApp::LoadPlugins::ElementExtensionGui
bool ElementExtensionGui
Definition: Application.h:37
OpenLxApp::Application::closeAllDocuments
void closeAllDocuments()
Closes all documents.
OpenLxApp::Application::Application
Application()
OpenLxApp::Application::s_lp
static LoadPlugins s_lp
Definition: Application.h:80
OpenLxApp::Application::closeDocument
void closeDocument(std::shared_ptr< Document > doc, bool forceClose=false)
Closes the document.
OpenLxApp::Application::setAlternativeLookupPath
void setAlternativeLookupPath(const Base::String &path)
Sets an alternative path to look for dlls and other application files.
OpenLxApp::LoadPlugins::CdwkVariantGui
bool CdwkVariantGui
Definition: Application.h:40
OpenLxApp::Application
The one and only Application.
Definition: Application.h:50
OpenLxApp::ActiveScript
The 'ActiveScript' is the script that is currently been executed ( the script's 'main' function is ca...
Definition: ActiveScript.h:21
OpenLxApp::LoadPlugins::VPFreeExport
bool VPFreeExport
Definition: Application.h:38
OpenLxApp::Application::setPluginsToLoad
static void setPluginsToLoad(const LoadPlugins &lp)
Sets which plugins should be loaded at startup.
OpenLxApp::Application::getActiveDocument
std::shared_ptr< Document > getActiveDocument(bool createIfNeeded=false)
Returns the active document. Creates a new one it createIfNeeded = true.
OpenLxApp::Application::getInstance
static Application * getInstance(void)
OpenLxApp::Application::closeApplication
void closeApplication()
Closes the application.
OpenLxApp::LoadPlugins::ElementExtension
bool ElementExtension
Definition: Application.h:36
String.h
OpenLxApp::Application::~Application
~Application(void)
OpenLxApp::Application::initQt
static void initQt(int argc, char *argv[])
Creates a QApplication.
OpenLxApp::Application::release
static void release()
OpenLxApp::Application::newVariantTransferDocument
std::shared_ptr< Document > newVariantTransferDocument(const Base::String &name=L"")
Creates a new VariantTransferDocument.
Base::String
A Utf-16 (windows) or ucs4 (unix) encoded string class.
Definition: String.h:18
OpenLxApp::Application::newDocument
std::shared_ptr< Document > newDocument(const Base::String &name=L"")
Creates a new document.
OpenLxApp::LoadPlugins::LoadPlugins
LoadPlugins()
Definition: Application.h:27
OpenLxApp::LoadPlugins
Definition: Application.h:26
ActiveScript.h
OpenLxApp::Application::initQt
static void initQt()
Creates a QApplication.