Skip to content

Commit

Permalink
Minor improvements & fixes
Browse files Browse the repository at this point in the history
- Extended API
- Fixed inconsistent namespace name
  • Loading branch information
SShikhali committed Mar 8, 2024
1 parent d9a4b13 commit de65bd2
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 14 deletions.
9 changes: 9 additions & 0 deletions imgui_node_editor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2753,6 +2753,15 @@ ed::NodeSettings* ed::Settings::FindNode(NodeId id)
return nullptr;
}

const ed::NodeSettings* ed::Settings::FindNode(NodeId id) const
{
for (auto& settings : m_Nodes)
if (settings.m_ID == id)
return &settings;

return nullptr;
}

void ed::Settings::RemoveNode(NodeId id)
{
auto node = FindNode(id);
Expand Down
16 changes: 9 additions & 7 deletions imgui_node_editor.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,10 @@
namespace ax {
namespace NodeEditor {

namespace Detail {
//------------------------------------------------------------------------------
struct EditorContext;
}

//------------------------------------------------------------------------------
struct NodeId;
Expand Down Expand Up @@ -281,16 +285,14 @@ struct Style
};


//------------------------------------------------------------------------------
struct EditorContext;


//------------------------------------------------------------------------------
IMGUI_NODE_EDITOR_API void SetCurrentEditor(EditorContext* ctx);
IMGUI_NODE_EDITOR_API EditorContext* GetCurrentEditor();
IMGUI_NODE_EDITOR_API EditorContext* CreateEditor(const Config* config = nullptr);
IMGUI_NODE_EDITOR_API void DestroyEditor(EditorContext* ctx);
IMGUI_NODE_EDITOR_API const Config& GetConfig(EditorContext* ctx = nullptr);
IMGUI_NODE_EDITOR_API void SetCurrentEditor(Detail::EditorContext* ctx);
IMGUI_NODE_EDITOR_API Detail::EditorContext* GetCurrentEditor();
IMGUI_NODE_EDITOR_API Detail::EditorContext* CreateEditor(const Config* config = nullptr);
IMGUI_NODE_EDITOR_API void DestroyEditor(Detail::EditorContext* ctx);
IMGUI_NODE_EDITOR_API const Config& GetConfig(Detail::EditorContext* ctx = nullptr);

IMGUI_NODE_EDITOR_API Style& GetStyle();
IMGUI_NODE_EDITOR_API const char* GetStyleColorName(StyleColor colorIndex);
Expand Down
14 changes: 7 additions & 7 deletions imgui_node_editor_api.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,12 +44,12 @@ static int BuildIdList(C& container, I* list, int listSize, F&& accept)


//------------------------------------------------------------------------------
ax::NodeEditor::EditorContext* ax::NodeEditor::CreateEditor(const Config* config)
ax::NodeEditor::Detail::EditorContext* ax::NodeEditor::CreateEditor(const Config* config)
{
return reinterpret_cast<ax::NodeEditor::EditorContext*>(new ax::NodeEditor::Detail::EditorContext(config));
return reinterpret_cast<ax::NodeEditor::Detail::EditorContext*>(new ax::NodeEditor::Detail::EditorContext(config));
}

void ax::NodeEditor::DestroyEditor(EditorContext* ctx)
void ax::NodeEditor::DestroyEditor(Detail::EditorContext* ctx)
{
auto lastContext = GetCurrentEditor();

Expand All @@ -65,7 +65,7 @@ void ax::NodeEditor::DestroyEditor(EditorContext* ctx)
SetCurrentEditor(lastContext);
}

const ax::NodeEditor::Config& ax::NodeEditor::GetConfig(EditorContext* ctx)
const ax::NodeEditor::Config& ax::NodeEditor::GetConfig(Detail::EditorContext* ctx)
{
if (ctx == nullptr)
ctx = GetCurrentEditor();
Expand All @@ -83,14 +83,14 @@ const ax::NodeEditor::Config& ax::NodeEditor::GetConfig(EditorContext* ctx)
}
}

void ax::NodeEditor::SetCurrentEditor(EditorContext* ctx)
void ax::NodeEditor::SetCurrentEditor(Detail::EditorContext* ctx)
{
s_Editor = reinterpret_cast<ax::NodeEditor::Detail::EditorContext*>(ctx);
}

ax::NodeEditor::EditorContext* ax::NodeEditor::GetCurrentEditor()
ax::NodeEditor::Detail::EditorContext* ax::NodeEditor::GetCurrentEditor()
{
return reinterpret_cast<ax::NodeEditor::EditorContext*>(s_Editor);
return reinterpret_cast<ax::NodeEditor::Detail::EditorContext*>(s_Editor);
}

ax::NodeEditor::Style& ax::NodeEditor::GetStyle()
Expand Down
5 changes: 5 additions & 0 deletions imgui_node_editor_internal.h
Original file line number Diff line number Diff line change
Expand Up @@ -546,6 +546,7 @@ struct Settings

NodeSettings* AddNode(NodeId id);
NodeSettings* FindNode(NodeId id);
const NodeSettings* FindNode(NodeId id) const;
void RemoveNode(NodeId id);

void ClearDirty(Node* node = nullptr);
Expand Down Expand Up @@ -1473,6 +1474,10 @@ struct EditorContext

ImDrawList* GetDrawList() { return m_DrawList; }

const Settings& GetSettings() const { return m_Settings; }
void SetViewScroll(ImVec2 scroll) { m_Settings.m_ViewScroll = scroll; }
void SetViewZoom(float zoom) { m_Settings.m_ViewZoom = zoom; }

private:
void LoadSettings();
void SaveSettings();
Expand Down

0 comments on commit de65bd2

Please sign in to comment.