Use new JUCE button callback stuff
This commit is contained in:
parent
64ad16f8cb
commit
96a88e8016
@ -25,19 +25,19 @@ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|||||||
extern String g_plugintitle;
|
extern String g_plugintitle;
|
||||||
|
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
PaulstretchpluginAudioProcessorEditor::PaulstretchpluginAudioProcessorEditor (PaulstretchpluginAudioProcessor& p)
|
PaulstretchpluginAudioProcessorEditor::PaulstretchpluginAudioProcessorEditor(PaulstretchpluginAudioProcessor& p)
|
||||||
: AudioProcessorEditor (&p),
|
: AudioProcessorEditor(&p),
|
||||||
m_wavecomponent(p.m_afm),
|
m_wavecomponent(p.m_afm),
|
||||||
processor (p)
|
processor(p)
|
||||||
|
|
||||||
{
|
{
|
||||||
addAndMakeVisible(&m_import_button);
|
addAndMakeVisible(&m_import_button);
|
||||||
m_import_button.setButtonText("Import file...");
|
m_import_button.setButtonText("Import file...");
|
||||||
attachCallback(m_import_button, [this]() { chooseFile(); });
|
m_import_button.onClick = [this]() { chooseFile(); };
|
||||||
|
|
||||||
addAndMakeVisible(&m_settings_button);
|
addAndMakeVisible(&m_settings_button);
|
||||||
m_settings_button.setButtonText("Settings...");
|
m_settings_button.setButtonText("Settings...");
|
||||||
attachCallback(m_settings_button, [this]() { showSettingsMenu(); });
|
m_settings_button.onClick = [this]() { showSettingsMenu(); };
|
||||||
|
|
||||||
addAndMakeVisible(&m_info_label);
|
addAndMakeVisible(&m_info_label);
|
||||||
m_info_label.setJustificationType(Justification::centredRight);
|
m_info_label.setJustificationType(Justification::centredRight);
|
||||||
|
@ -40,34 +40,6 @@ private:
|
|||||||
double m_elapsed = 0.0;
|
double m_elapsed = 0.0;
|
||||||
};
|
};
|
||||||
|
|
||||||
inline void attachCallback(Button& button, std::function<void()> callback)
|
|
||||||
{
|
|
||||||
struct ButtonCallback : public Button::Listener,
|
|
||||||
private ComponentListener
|
|
||||||
{
|
|
||||||
ButtonCallback(Button& b, std::function<void()> f) : target(b), fn(f)
|
|
||||||
{
|
|
||||||
target.addListener(this);
|
|
||||||
target.addComponentListener(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
~ButtonCallback()
|
|
||||||
{
|
|
||||||
target.removeListener(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
void componentBeingDeleted(Component&) override { delete this; }
|
|
||||||
void buttonClicked(Button*) override { fn(); }
|
|
||||||
|
|
||||||
Button& target;
|
|
||||||
std::function<void()> fn;
|
|
||||||
|
|
||||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(ButtonCallback)
|
|
||||||
};
|
|
||||||
|
|
||||||
new ButtonCallback(button, callback);
|
|
||||||
}
|
|
||||||
|
|
||||||
class MySlider : public Slider
|
class MySlider : public Slider
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
Loading…
Reference in New Issue
Block a user