Elaztek Developer Hub
Blamite Game Engine - Keystone  00367.02.08.23.1815.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 
53  bool override_icon = false;
54  std::string custom_icon_group = "";
55  std::string custom_icon_id = "";
56 
57  std::string file_path = "";
58  std::string document_context = "";
59 
67 
74 
80  virtual void OnThemeChange(BlamEditorTheme* new_theme) {};
81 
85  void Show();
86 
90  void UpdateDefaultIcon();
91 
99  virtual bool ConfirmClose() { return true; }
100 
104  virtual void FlagAsModified() {};
105 
111  virtual bool Close();
112 
120  virtual bool Close(bool force_close);
121 
125  virtual void Save() {};
126 
130  virtual void SaveAs() {};
131 
132  virtual void OnFocused() {};
133 
134  virtual void OnUnfocused() {};
135 };
136 
137 class BlamEditorDocumentSubWindow : public QMdiSubWindow
138 {
139 public:
141 
142  BlamEditorDocumentSubWindow(QWidget* parent = nullptr) : QMdiSubWindow(parent) {}
143 
144  void closeEvent(QCloseEvent* closeEvent);
145 };
146 
152 class BlamEditorDocumentWidget : public QWidget
153 {
154 public:
156 
157  BlamEditorDocumentWidget(QWidget* parent = nullptr) : QWidget(parent) {}
158 };
159 
161 {
166 
171 
179  KEYSTONE BlamConfigurationFile* GetDocumentTypeConfiguration(BlamEditorDocumentType type);
180 
186  KEYSTONE std::map<BlamEditorDocumentType, BlamConfigurationFile*> GetDocumentTypeConfigurations();
187 }
BlamEditorDocument::custom_icon_id
std::string custom_icon_id
The resource ID of the custom icon. Only used when override_icon is true.
Definition: BlamEditorDocument.h:55
BlamEditorDocument::GetDocumentType
BlamEditorDocumentType GetDocumentType()
Retrieves the type of this document.
Definition: BlamEditorDocument.cpp:16
BlamEditorDocument::parent_window
BlamEditorWindow * parent_window
The parent window that owns this document.
Definition: BlamEditorDocument.h:46
BlamEditorDocument::file_path
std::string file_path
The path to the file associated with this document.
Definition: BlamEditorDocument.h:57
BlamEditorDocumentType::GameWindow
@ GameWindow
BlamEditorDocumentWidget::document
BlamEditorDocument * document
The document associated with this widget.
Definition: BlamEditorDocument.h:155
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
BlamEditorDocument::ConfirmClose
virtual bool ConfirmClose()
Called immediately before closing a document.
Definition: BlamEditorDocument.h:99
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:10
BlamEditorDocument::UpdateDefaultIcon
void UpdateDefaultIcon()
Updates the document's icon.
Definition: BlamEditorDocument.cpp:114
BlamEditorDocumentWidget::BlamEditorDocumentWidget
BlamEditorDocumentWidget(QWidget *parent=nullptr)
Definition: BlamEditorDocument.h:157
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:140
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:130
BlamEditorDocument::FlagAsModified
virtual void FlagAsModified()
Flags the document as being modified.
Definition: BlamEditorDocument.h:104
BlamEditorDocumentWidget
Class acting as a simple interface to allow for easy retrieval of the active document.
Definition: BlamEditorDocument.h:152
BlamEditorDocument::OnUnfocused
virtual void OnUnfocused()
Definition: BlamEditorDocument.h:134
BlamEditorDocumentSubWindow::BlamEditorDocumentSubWindow
BlamEditorDocumentSubWindow(QWidget *parent=nullptr)
Definition: BlamEditorDocument.h:142
BlamEditorDocument::document_context
std::string document_context
The context of this document. Will generally be a project or tag folder.
Definition: BlamEditorDocument.h:58
BlamEditorDocument::Save
virtual void Save()
Attempts to save the document, replacing the original file.
Definition: BlamEditorDocument.h:125
BlamEditorDocument
Interface class that any types of editor documents inherit from.
Definition: BlamEditorDocument.h:36
BlamEditorDocument::custom_icon_group
std::string custom_icon_group
The resource group containing the custom icon name. Only used when override_icon is true.
Definition: BlamEditorDocument.h:54
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:80
BlamEditorDocument::Show
void Show()
Shows the document within the parent window.
Definition: BlamEditorDocument.cpp:21
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:48
BlamEditorDocumentType::Unspecified
@ Unspecified
Indicates the document type is unspecified or invalid.
BlamEditorDocumentSubWindow::closeEvent
void closeEvent(QCloseEvent *closeEvent)
Definition: BlamEditorDocumentSubWindow.cpp:5
KEYSTONE
#define KEYSTONE
Definition: BlamEditorDocument.h:11
BlamEditorDocumentSubWindow
Definition: BlamEditorDocument.h:137
BlamEditorDocument::Close
virtual bool Close()
Closes the document and releases any resources being used by it.
Definition: BlamEditorDocument.cpp:77
BlamKeystone::EditorData
Namespace contianing functions for accessing common editor data.
Definition: BlamEditorDocument.h:160
BlamEditorDocument::override_icon
bool override_icon
Whether or not this document uses a custom icon other than the application default.
Definition: BlamEditorDocument.h:53
BlamEditorDocument::OnFocused
virtual void OnFocused()
Definition: BlamEditorDocument.h:132
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