This commit is contained in:
@ -126,9 +126,8 @@ static ox::Error convertStudioConfigV1ToStudioConfigV2(
|
|||||||
using StudioConfig = StudioConfigV2;
|
using StudioConfig = StudioConfigV2;
|
||||||
|
|
||||||
|
|
||||||
StudioUI::StudioUI(turbine::Context &ctx, ox::StringParam projectDataDir) noexcept:
|
StudioUI::StudioUI(turbine::Context &tctx, ox::StringParam projectDataDir) noexcept:
|
||||||
m_sctx{*this, ctx},
|
m_sctx{*this, tctx},
|
||||||
m_tctx{ctx},
|
|
||||||
m_projectDataDir{std::move(projectDataDir)} {
|
m_projectDataDir{std::move(projectDataDir)} {
|
||||||
{
|
{
|
||||||
ImFontConfig fontCfg;
|
ImFontConfig fontCfg;
|
||||||
@ -139,7 +138,7 @@ StudioUI::StudioUI(turbine::Context &ctx, ox::StringParam projectDataDir) noexce
|
|||||||
// but AddFontFromMemoryTTF requires a mutable buffer.
|
// but AddFontFromMemoryTTF requires a mutable buffer.
|
||||||
// However, setting fontCfg.FontDataOwnedByAtlas ensures
|
// However, setting fontCfg.FontDataOwnedByAtlas ensures
|
||||||
// that it will still be treated as const.
|
// that it will still be treated as const.
|
||||||
// ImGui documentation recognize that this is a bad design,
|
// ImGui documentation recognizes that this is a bad design,
|
||||||
// and hopefully it will change at some point.
|
// and hopefully it will change at some point.
|
||||||
io.Fonts->AddFontFromMemoryTTF(const_cast<uint8_t*>(font.data()), static_cast<int>(font.size()), 13, &fontCfg);
|
io.Fonts->AddFontFromMemoryTTF(const_cast<uint8_t*>(font.data()), static_cast<int>(font.size()), 13, &fontCfg);
|
||||||
}
|
}
|
||||||
@ -357,7 +356,6 @@ void StudioUI::drawTabs() noexcept {
|
|||||||
}
|
}
|
||||||
if (m_closeActiveTab) [[unlikely]] {
|
if (m_closeActiveTab) [[unlikely]] {
|
||||||
ImGui::SetTabItemClosed(e->itemDisplayName().c_str());
|
ImGui::SetTabItemClosed(e->itemDisplayName().c_str());
|
||||||
|
|
||||||
} else if (open) [[likely]] {
|
} else if (open) [[likely]] {
|
||||||
e->draw(m_sctx);
|
e->draw(m_sctx);
|
||||||
}
|
}
|
||||||
|
@ -25,12 +25,12 @@
|
|||||||
|
|
||||||
namespace studio {
|
namespace studio {
|
||||||
|
|
||||||
class StudioUI: public ox::SignalHandler {
|
class StudioUI final: public ox::SignalHandler {
|
||||||
friend class StudioUIDrawer;
|
friend class StudioUIDrawer;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Context m_sctx;
|
Context m_sctx;
|
||||||
turbine::Context &m_tctx;
|
turbine::Context &m_tctx{m_sctx.tctx};
|
||||||
ox::String m_projectDataDir;
|
ox::String m_projectDataDir;
|
||||||
ox::UPtr<Project> m_project;
|
ox::UPtr<Project> m_project;
|
||||||
TaskRunner m_taskRunner;
|
TaskRunner m_taskRunner;
|
||||||
@ -83,7 +83,7 @@ class StudioUI: public ox::SignalHandler {
|
|||||||
ox::Optional<NavAction> m_navAction;
|
ox::Optional<NavAction> m_navAction;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit StudioUI(turbine::Context &ctx, ox::StringParam projectDataDir) noexcept;
|
explicit StudioUI(turbine::Context &tctx, ox::StringParam projectDataDir) noexcept;
|
||||||
|
|
||||||
void handleKeyEvent(turbine::Key, bool down) noexcept;
|
void handleKeyEvent(turbine::Key, bool down) noexcept;
|
||||||
|
|
||||||
|
@ -15,11 +15,14 @@ namespace studio {
|
|||||||
class StudioUI;
|
class StudioUI;
|
||||||
|
|
||||||
struct Context {
|
struct Context {
|
||||||
StudioUI &ui;
|
public:
|
||||||
Project *project = nullptr;
|
friend StudioUI;
|
||||||
turbine::Context &tctx;
|
StudioUI &ui;
|
||||||
Context(StudioUI &pUi, turbine::Context &pTctx) noexcept:
|
Project *project = nullptr;
|
||||||
ui(pUi), tctx(pTctx) {}
|
turbine::Context &tctx;
|
||||||
|
protected:
|
||||||
|
Context(StudioUI &pUi, turbine::Context &pTctx) noexcept:
|
||||||
|
ui{pUi}, tctx{pTctx} {}
|
||||||
};
|
};
|
||||||
|
|
||||||
[[nodiscard]]
|
[[nodiscard]]
|
||||||
@ -27,6 +30,11 @@ inline keel::Context &keelCtx(Context &ctx) noexcept {
|
|||||||
return keelCtx(ctx.tctx);
|
return keelCtx(ctx.tctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[[nodiscard]]
|
||||||
|
inline keel::Context const &keelCtx(Context const &ctx) noexcept {
|
||||||
|
return keelCtx(ctx.tctx);
|
||||||
|
}
|
||||||
|
|
||||||
void navigateTo(Context &ctx, ox::StringParam filePath, ox::StringParam navArgs = "") noexcept;
|
void navigateTo(Context &ctx, ox::StringParam filePath, ox::StringParam navArgs = "") noexcept;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user