Elaztek Developer Hub
Blamite Game Engine - Keystone  00344.11.30.21.1210.blamite
A library that enables the use of Qt in Blamite's editing tools.
BlamEditorDocument.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <qwidget.h>
4 #include <qmdisubwindow.h>
5 #include <string>
6 #include <Strings/components/settings/config/config.h>
7 
9 
10 #ifndef KEYSTONE
11 #define KEYSTONE
12 #endif
13 
14 class BlamEditorWindow;
16 
24 {
25  Tag,
26  GameWindow,
28 };
29 
37 {
38 private:
43 
44 public:
45 
47 
48  std::string document_title = "document";
50  bool loaded = true;
51  bool modified = false;
52 
60 
67 
73  virtual void OnThemeChange(BlamEditorTheme* new_theme) {};
74 
78  void Show();
79 
83  virtual void Close();
84 
88  virtual void Save() {};
89 
93  virtual void SaveAs() {};
94 
95  virtual void OnFocused() {};
96 
97  virtual void OnUnfocused() {};
98 };
99 
100 class BlamEditorDocumentSubWindow : public QMdiSubWindow
101 {
102 public:
104 
105  BlamEditorDocumentSubWindow(QWidget* parent = nullptr) : QMdiSubWindow(parent) {}
106 
107  void closeEvent(QCloseEvent* closeEvent)
108  {
109  if (document)
110  {
111  document->Close();
112  }
113 
114  QMdiSubWindow::closeEvent(closeEvent);
115  }
116 };
117 
123 class BlamEditorDocumentWidget : public QWidget
124 {
125 public:
127 
128  BlamEditorDocumentWidget(QWidget* parent = nullptr) : QWidget(parent) {}
129 };
130 
132 {
137 
142 
150  KEYSTONE BlamConfigurationFile* GetDocumentTypeConfiguration(BlamEditorDocumentType type);
151 
157  KEYSTONE std::map<BlamEditorDocumentType, BlamConfigurationFile*> GetDocumentTypeConfigurations();
158 }
BlamEditorDocument::GetDocumentType
BlamEditorDocumentType GetDocumentType()
Retrieves the type of this document.
Definition: BlamEditorDocument.cpp:15
BlamEditorDocument::parent_window
BlamEditorWindow * parent_window
The parent window that owns this document.
Definition: BlamEditorDocument.h:46
BlamEditorDocumentType::GameWindow
@ GameWindow
BlamEditorDocumentWidget::document
BlamEditorDocument * document
The document associated with this widget.
Definition: BlamEditorDocument.h:126
BlamEditorDocumentType
BlamEditorDocumentType
Enumerator containing all possible editor document types.
Definition: BlamEditorDocument.h:23
BlamEditorDocument::document_title
std::string document_title
The title of this document.
Definition: BlamEditorDocument.h:48
themes.h
BlamKeystone::EditorData::UnloadDocumentConfigurations
KEYSTONE void UnloadDocumentConfigurations()
Unloads all document type configurations.
Definition: document_config.cpp:90
BlamEditorTheme
Class representing a Blamite Editor Theme.
Definition: themes.h:47
BlamEditorDocument::BlamEditorDocument
BlamEditorDocument(BlamEditorWindow *_window, BlamEditorDocumentType doctype)
Constructs a new BlamEditorDocument.
Definition: BlamEditorDocument.cpp:9
BlamEditorDocumentWidget::BlamEditorDocumentWidget
BlamEditorDocumentWidget(QWidget *parent=nullptr)
Definition: BlamEditorDocument.h:128
BlamEditorDocument::modified
bool modified
Whether or not the document has been modified.
Definition: BlamEditorDocument.h:51
BlamEditorDocumentType::Tag
@ Tag
Indicates the document represents a tag file.
BlamEditorDocumentSubWindow::document
BlamEditorDocument * document
The document associated with this widget.
Definition: BlamEditorDocument.h:103
BlamKeystone::EditorData::LoadDocumentConfigurations
KEYSTONE void LoadDocumentConfigurations()
Loads all document type configurations.
Definition: document_config.cpp:83
BlamEditorDocument::SaveAs
virtual void SaveAs()
Attempts to save the document, prompting the user to save as a new file.
Definition: BlamEditorDocument.h:93
BlamEditorDocumentWidget
Class acting as a simple interface to allow for easy retrieval of the active document.
Definition: BlamEditorDocument.h:123
BlamEditorDocument::OnUnfocused
virtual void OnUnfocused()
Definition: BlamEditorDocument.h:97
BlamEditorDocumentSubWindow::BlamEditorDocumentSubWindow
BlamEditorDocumentSubWindow(QWidget *parent=nullptr)
Definition: BlamEditorDocument.h:105
BlamEditorDocument::Close
virtual void Close()
Closes the document and releases any resources being used by it.
Definition: BlamEditorDocument.cpp:99
BlamEditorDocument::Save
virtual void Save()
Attempts to save the document, replacing the original file.
Definition: BlamEditorDocument.h:88
BlamEditorDocument
Interface class that any types of editor documents inherit from.
Definition: BlamEditorDocument.h:36
BlamKeystone::EditorData::GetDocumentTypeConfigurations
KEYSTONE std::map< BlamEditorDocumentType, BlamConfigurationFile * > GetDocumentTypeConfigurations()
Retrieves the list of loaded document type configuration files.
Definition: document_config.cpp:116
BlamEditorDocument::OnThemeChange
virtual void OnThemeChange(BlamEditorTheme *new_theme)
Called when the active theme is changed.
Definition: BlamEditorDocument.h:73
BlamEditorDocument::Show
void Show()
Shows the document within the parent window.
Definition: BlamEditorDocument.cpp:20
BlamEditorDocument::loaded
bool loaded
Whether or not the document was able to be successfully loaded.
Definition: BlamEditorDocument.h:50
BlamEditorWindow
Interface class that all main editing tool windows inherit from.
Definition: BlamEditorWindow.h:47
BlamEditorDocumentType::Unspecified
@ Unspecified
Indicates the document type is unspecified or invalid.
BlamEditorDocumentSubWindow::closeEvent
void closeEvent(QCloseEvent *closeEvent)
Definition: BlamEditorDocument.h:107
KEYSTONE
#define KEYSTONE
Definition: BlamEditorDocument.h:11
BlamEditorDocumentSubWindow
Definition: BlamEditorDocument.h:100
BlamKeystone::EditorData
Namespace contianing functions for accessing common editor data.
Definition: BlamEditorDocument.h:131
BlamEditorDocument::OnFocused
virtual void OnFocused()
Definition: BlamEditorDocument.h:95
BlamEditorDocument::ui
BlamEditorDocumentWidget * ui
The GUI widget associated with this document.
Definition: BlamEditorDocument.h:49
BlamKeystone::EditorData::GetDocumentTypeConfiguration
KEYSTONE BlamConfigurationFile * GetDocumentTypeConfiguration(BlamEditorDocumentType type)
Attempts to locate the configuration file for the specified document type.
Definition: document_config.cpp:106