Fixes
This commit is contained in:
@ -21,7 +21,12 @@
|
||||
#include <Vendor/imgui/imgui.h>
|
||||
#include <Vendor/IconsFontAwesome7.h>
|
||||
|
||||
#include <SDL3/SDL.h>
|
||||
|
||||
#include <filesystem>
|
||||
|
||||
namespace ia::iae
|
||||
{
|
||||
|
||||
namespace fs = std::filesystem;
|
||||
using Path = std::filesystem::path;
|
||||
}
|
||||
@ -32,6 +32,8 @@ namespace ia::iae
|
||||
|
||||
public:
|
||||
VOID LoadProject(IN CONST String &directory);
|
||||
|
||||
VOID OpenAsset(IN Path path);
|
||||
|
||||
public:
|
||||
CONST Project *GetActiveProject() CONST
|
||||
|
||||
@ -17,6 +17,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <Base.hpp>
|
||||
#include <Vendor/imgui/imgui_internal.h>
|
||||
|
||||
namespace ia::iae
|
||||
{
|
||||
|
||||
@ -20,11 +20,36 @@
|
||||
|
||||
namespace ia::iae
|
||||
{
|
||||
class View_Main : public IView
|
||||
class TabContainer
|
||||
{
|
||||
public:
|
||||
TabContainer();
|
||||
|
||||
VOID Initialize();
|
||||
VOID Terminate();
|
||||
VOID Render();
|
||||
VOID Draw(IN ImVec2 position, IN ImVec2 size);
|
||||
VOID Update();
|
||||
VOID ProcessEvent(IN SDL_Event *event);
|
||||
|
||||
template<typename ViewType> INLINE VOID AddTab(IN CONST String &name);
|
||||
IView *GetTab(IN CONST String &name);
|
||||
VOID RemoveTab(IN CONST String &name);
|
||||
|
||||
VOID ChangeActiveTab(IN PCCHAR name);
|
||||
|
||||
private:
|
||||
CONST String m_tabBarID;
|
||||
CONST String m_containerID;
|
||||
PCCHAR m_activeTabName{};
|
||||
PCCHAR m_pendingActiveTabName{};
|
||||
Map<String, IView *> m_tabViews;
|
||||
|
||||
private:
|
||||
VOID AddTab(IN CONST String &name, IN IView *view);
|
||||
};
|
||||
|
||||
template<typename ViewType> VOID TabContainer::AddTab(IN CONST String &name)
|
||||
{
|
||||
AddTab(name, new ViewType());
|
||||
}
|
||||
} // namespace ia::iae
|
||||
@ -22,11 +22,42 @@ namespace ia::iae
|
||||
{
|
||||
class UI
|
||||
{
|
||||
public:
|
||||
public:
|
||||
STATIC VOID PadX(IN FLOAT32 v = 5.0f);
|
||||
STATIC VOID PadY(IN FLOAT32 v = 5.0f);
|
||||
|
||||
STATIC VOID AlignCursorLeft(IN CONST ImRect &rect);
|
||||
STATIC VOID AlignCursorRight(IN CONST ImRect &rect, IN FLOAT32 width);
|
||||
STATIC VOID AlignCursorTop(IN CONST ImRect &rect);
|
||||
STATIC VOID AlignCursorBottom(IN CONST ImRect &rect, IN FLOAT32 height);
|
||||
STATIC VOID AlignCursorHCenter(IN CONST ImRect &rect, IN FLOAT32 width);
|
||||
STATIC VOID AlignCursorVCenter(IN CONST ImRect &rect, IN FLOAT32 height);
|
||||
|
||||
public:
|
||||
STATIC VOID FocusAssetView();
|
||||
|
||||
STATIC class View_Asset *GetAssetView();
|
||||
|
||||
STATIC class IView *GetFocusedView()
|
||||
{
|
||||
return s_focusedView;
|
||||
}
|
||||
|
||||
private:
|
||||
STATIC class IView *s_focusedView;
|
||||
|
||||
private:
|
||||
STATIC VOID Initialize();
|
||||
STATIC VOID Terminate();
|
||||
|
||||
STATIC VOID Update();
|
||||
STATIC VOID Draw();
|
||||
STATIC VOID Update();
|
||||
|
||||
STATIC VOID ProcessEvent(IN SDL_Event *event);
|
||||
|
||||
friend class Editor;
|
||||
|
||||
private:
|
||||
STATIC VOID DrawMenuBar();
|
||||
};
|
||||
}
|
||||
} // namespace ia::iae
|
||||
|
||||
@ -22,9 +22,20 @@ namespace ia::iae
|
||||
{
|
||||
class View_Asset : public IView
|
||||
{
|
||||
public:
|
||||
VOID Open(IN Path path);
|
||||
VOID Close();
|
||||
|
||||
public:
|
||||
VOID Initialize();
|
||||
VOID Terminate();
|
||||
VOID Render();
|
||||
VOID Update();
|
||||
|
||||
protected:
|
||||
VOID OnEvent(IN SDL_Event *event);
|
||||
|
||||
private:
|
||||
Path m_assetPath{};
|
||||
};
|
||||
}
|
||||
} // namespace ia::iae
|
||||
@ -37,6 +37,10 @@ namespace ia::iae
|
||||
VOID Initialize();
|
||||
VOID Terminate();
|
||||
VOID Render();
|
||||
VOID Update();
|
||||
|
||||
protected:
|
||||
VOID OnEvent(IN SDL_Event *event);
|
||||
|
||||
private:
|
||||
VOID ChangeCurrentOpenDirectory(IN CONST std::filesystem::path &path);
|
||||
|
||||
@ -26,5 +26,9 @@ namespace ia::iae
|
||||
VOID Initialize();
|
||||
VOID Terminate();
|
||||
VOID Render();
|
||||
VOID Update();
|
||||
|
||||
protected:
|
||||
VOID OnEvent(IN SDL_Event *event);
|
||||
};
|
||||
}
|
||||
@ -16,29 +16,25 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <UI/Base.hpp>
|
||||
#include <UI/UI.hpp>
|
||||
|
||||
namespace ia::iae
|
||||
{
|
||||
class IView
|
||||
{
|
||||
protected:
|
||||
PURE_VIRTUAL(VOID OnEvent(IN SDL_Event *event));
|
||||
|
||||
public:
|
||||
PURE_VIRTUAL(VOID Initialize());
|
||||
PURE_VIRTUAL(VOID Terminate());
|
||||
PURE_VIRTUAL(VOID Render());
|
||||
PURE_VIRTUAL(VOID Update());
|
||||
|
||||
public:
|
||||
VOID SetIcon(IN PCCHAR icon)
|
||||
{
|
||||
m_icon = icon;
|
||||
m_iconAndName = BuildString(m_icon, " ", m_name);
|
||||
}
|
||||
|
||||
VOID SetName(IN CONST String &name)
|
||||
{
|
||||
m_name = name;
|
||||
m_iconAndName = m_icon ? BuildString(m_icon, " ", m_name) : m_name;
|
||||
}
|
||||
VOID SetIcon(IN PCCHAR icon);
|
||||
VOID SetName(IN CONST String &name);
|
||||
VIRTUAL VOID ProcessEvent(IN SDL_Event *event);
|
||||
|
||||
public:
|
||||
CONST String &Name() CONST
|
||||
@ -66,14 +62,21 @@ namespace ia::iae
|
||||
String m_name{};
|
||||
PCCHAR m_icon{};
|
||||
String m_iconAndName{};
|
||||
|
||||
public:
|
||||
VIRTUAL ~IView()
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
VOID IView::PreRender()
|
||||
{
|
||||
m_extent = ImGui::GetWindowSize();
|
||||
ImGui::BeginChild("##");
|
||||
}
|
||||
|
||||
VOID IView::PostRender()
|
||||
{
|
||||
ImGui::EndChild();
|
||||
}
|
||||
} // namespace ia::iae
|
||||
|
||||
@ -26,5 +26,9 @@ namespace ia::iae
|
||||
VOID Initialize();
|
||||
VOID Terminate();
|
||||
VOID Render();
|
||||
VOID Update();
|
||||
|
||||
protected:
|
||||
VOID OnEvent(IN SDL_Event *event);
|
||||
};
|
||||
}
|
||||
@ -26,5 +26,9 @@ namespace ia::iae
|
||||
VOID Initialize();
|
||||
VOID Terminate();
|
||||
VOID Render();
|
||||
VOID Update();
|
||||
|
||||
protected:
|
||||
VOID OnEvent(IN SDL_Event *event);
|
||||
};
|
||||
}
|
||||
@ -26,5 +26,9 @@ namespace ia::iae
|
||||
VOID Initialize();
|
||||
VOID Terminate();
|
||||
VOID Render();
|
||||
VOID Update();
|
||||
|
||||
protected:
|
||||
VOID OnEvent(IN SDL_Event *event);
|
||||
};
|
||||
}
|
||||
@ -26,5 +26,18 @@ namespace ia::iae
|
||||
VOID Initialize();
|
||||
VOID Terminate();
|
||||
VOID Render();
|
||||
VOID Update();
|
||||
|
||||
protected:
|
||||
VOID OnEvent(IN SDL_Event *event);
|
||||
|
||||
public:
|
||||
VOID ProcessEvent(IN SDL_Event *event)
|
||||
{
|
||||
OnEvent(event);
|
||||
}
|
||||
|
||||
private:
|
||||
class RDC_Texture* m_gamePreviewTexture;
|
||||
};
|
||||
}
|
||||
} // namespace ia::iae
|
||||
Reference in New Issue
Block a user