VEX Engine
Retro looking game engine made in vulkan mostly because i wanted to understand it better.
Loading...
Searching...
No Matches
EditorMenuBar.hpp
Go to the documentation of this file.
1
6
7#pragma once
8
9#include <imgui.h>
10#include <imgui_internal.h>
11#include <memory>
12
14#include "Engine.hpp"
15
16#include "EditorWindow.hpp"
17
18namespace vex { class Editor; }
19
22public:
28 EditorMenuBar(vex::ImGUIWrapper& imGUIWrapper, vex::Editor& editor) : m_ImGUIWrapper(imGUIWrapper), m_editor(editor) {};
29 ~EditorMenuBar() {};
30
32 void DrawBar();
33
35 void OpenScene();
36
38 void OpenEditorSettings();
39
42
45
47 void SaveSceneAs();
48
54 void RunBuild(bool isDebug, bool runAfter = false);
55
57 void BuildDist();
58
60 void NewScene();
61private:
64 std::string GetProjectName();
65 vex::ImGUIWrapper& m_ImGUIWrapper;
66 vex::Editor& m_editor;
67 std::vector<std::shared_ptr<BasicEditorWindow>> m_Windows;
68};
Defines a simple structure for a basic, detachable editor window using ImGUI.
Contains main Engine class.
This file defines ImGUIWrapper class.
ImGUI component responsible for drawing the main editor menu bar and handling its actions.
void DrawBar()
Draws the main menu bar and processes user input.
void RunBuild(bool isDebug, bool runAfter=false)
Executes the project build process.
void OpenProjectSettings()
Opens the project settings window/menu.
void OpenProjectSelector()
Opens the project selector window.
void SaveSceneAs()
Saves the current scene to a new file path.
void NewScene()
Copies empty scene to assets folders and opens it.
void OpenEditorSettings()
Opens the editor settings window/menu.
void BuildDist()
Builds the project distribution package.
void OpenScene()
Handles the logic for opening an existing scene file.
std::string GetProjectName()
Retrieves the name of the current project.
EditorMenuBar(vex::ImGUIWrapper &imGUIWrapper, vex::Editor &editor)
Constructs the EditorMenuBar.
The main Editor class, inheriting from Engine and providing editor-specific functionality and UI.
Definition Editor.hpp:32
This class provides an interface template for ImGui Implementation. Every backend should implement th...