Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 14 additions & 11 deletions plugin/Source/ClickableLabel.cpp
Original file line number Diff line number Diff line change
@@ -1,15 +1,18 @@
#include "ClickableLabel.h"

sfzero::ClickableLabel::ClickableLabel(const String &componentName, const String &labelText) : Label(componentName, labelText) {}
void sfzero::ClickableLabel::addClickListener(ClickListener *listener) { clickListeners.add(listener); }
void sfzero::ClickableLabel::removeClickListener(ClickListener *listener) { clickListeners.remove(listener); }
void sfzero::ClickableLabel::mouseUp(const MouseEvent &e)
namespace sfzero_plugin
{
bool goodClick = e.mouseWasClicked() && contains(e.getPosition()) && !e.mods.isPopupMenu();

if (goodClick)
{
BailOutChecker checker(this);
clickListeners.callChecked(checker, &ClickListener::labelClicked, this);
}
ClickableLabel::ClickableLabel(const String &componentName, const String &labelText) : Label(componentName, labelText) {}
void ClickableLabel::addClickListener(ClickListener *listener) { clickListeners.add(listener); }
void ClickableLabel::removeClickListener(ClickListener *listener) { clickListeners.remove(listener); }
void ClickableLabel::mouseUp(const MouseEvent &e)
{
bool goodClick = e.mouseWasClicked() && contains(e.getPosition()) && !e.mods.isPopupMenu();

if (goodClick)
{
BailOutChecker checker(this);
clickListeners.callChecked(checker, &ClickListener::labelClicked, this);
}
}
}
43 changes: 21 additions & 22 deletions plugin/Source/ClickableLabel.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,29 +3,28 @@

#include "JuceHeader.h"

namespace sfzero
namespace sfzero_plugin
{

class ClickableLabel : public Label
{
public:
ClickableLabel(const String &componentName = String::empty, const String &labelText = String::empty);

class JUCE_API ClickListener
{
public:
virtual ~ClickListener() {}
virtual void labelClicked(Label *clickedLabel) = 0;
};

void addClickListener(ClickListener *listener);
void removeClickListener(ClickListener *listener);

protected:
ListenerList<ClickListener> clickListeners;

void mouseUp(const MouseEvent &e) override;
};
class ClickableLabel : public Label
{
public:
ClickableLabel(const String &componentName = String::empty, const String &labelText = String::empty);

class JUCE_API ClickListener
{
public:
virtual ~ClickListener() {}
virtual void labelClicked(Label *clickedLabel) = 0;
};

void addClickListener(ClickListener *listener);
void removeClickListener(ClickListener *listener);

protected:
ListenerList<ClickListener> clickListeners;

void mouseUp(const MouseEvent &e) override;
};
}


Expand Down
Loading