Skip to content

Commit

Permalink
Implement cyclone [coll] dialog close message
Browse files Browse the repository at this point in the history
  • Loading branch information
timothyschoen committed Jan 29, 2025
1 parent f86f7bc commit 38b510b
Show file tree
Hide file tree
Showing 5 changed files with 14 additions and 1 deletion.
2 changes: 1 addition & 1 deletion Libraries/pure-data
Submodule pure-data updated 1 files
+8 −1 src/s_inter.c
6 changes: 6 additions & 0 deletions Source/Pd/Instance.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -340,6 +340,11 @@ void Instance::initialisePd(String& pdlua_version)
static_cast<Instance*>(instance)->addTextToTextEditor(ptr, text);
break;
}
case hash("cyclone_editor_close"): {
auto const ptr = reinterpret_cast<uint64_t>(argv->a_w.w_gpointer);
static_cast<Instance*>(instance)->hideTextEditorDialog(ptr);
break;
}
case hash("coll_check_open"): {
auto const ptr = reinterpret_cast<uint64_t>(argv->a_w.w_gpointer);
bool const open = static_cast<bool>(atom_getfloat(argv + 1));
Expand All @@ -350,6 +355,7 @@ void Instance::initialisePd(String& pdlua_version)
SETFLOAT(&atoms[1], open);

pd_typedmess(reinterpret_cast<t_pd*>(ptr), gensym("_is_opened"), 2, atoms.data());
break;
}
}
};
Expand Down
1 change: 1 addition & 0 deletions Source/Pd/Instance.h
Original file line number Diff line number Diff line change
Expand Up @@ -218,6 +218,7 @@ class Instance : public AsyncUpdater {
void sendTypedMessage(void* object, char const* msg, SmallArray<Atom> const& list) const;

virtual void addTextToTextEditor(uint64_t ptr, SmallString const& text) = 0;
virtual void hideTextEditorDialog(uint64_t ptr) = 0;
virtual void showTextEditorDialog(uint64_t ptr, Rectangle<int> bounds, SmallString const& title) = 0;
virtual bool isTextEditorDialogShown(uint64_t ptr) = 0;

Expand Down
5 changes: 5 additions & 0 deletions Source/PluginProcessor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1567,6 +1567,11 @@ bool PluginProcessor::isTextEditorDialogShown(uint64_t const ptr)
return textEditorDialogs.count(ptr) && textEditorDialogs[ptr]->isVisible();
}

void PluginProcessor::hideTextEditorDialog(uint64_t ptr)
{
textEditorDialogs.erase(ptr);
}

void PluginProcessor::showTextEditorDialog(uint64_t ptr, Rectangle<int> bounds, SmallString const& title)
{
static std::unique_ptr<Dialog> saveDialog = nullptr;
Expand Down
1 change: 1 addition & 0 deletions Source/PluginProcessor.h
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@ class PluginProcessor final : public AudioProcessor
void receiveSysMessage(SmallString const& selector, SmallArray<pd::Atom> const& list) override;

void addTextToTextEditor(uint64_t ptr, SmallString const& text) override;
void hideTextEditorDialog(uint64_t ptr) override;
void showTextEditorDialog(uint64_t ptr, Rectangle<int> bounds, SmallString const& title) override;
bool isTextEditorDialogShown(uint64_t ptr) override;

Expand Down

0 comments on commit 38b510b

Please sign in to comment.