Skip to content

Commit

Permalink
Add appliesToEventInput arg to Button and Knob setEnabled
Browse files Browse the repository at this point in the history
Signed-off-by: falkTX <[email protected]>
  • Loading branch information
falkTX committed Feb 3, 2025
1 parent 6b3d1da commit 53454d7
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 13 deletions.
4 changes: 2 additions & 2 deletions dgl/EventHandlers.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ class ButtonEventHandler
void setCheckable(bool checkable) noexcept;

bool isEnabled() const noexcept;
void setEnabled(bool enabled) noexcept;
void setEnabled(bool enabled, bool appliesToEventInput = true) noexcept;

Point<double> getLastClickPosition() const noexcept;
Point<double> getLastMotionPosition() const noexcept;
Expand Down Expand Up @@ -125,7 +125,7 @@ class KnobEventHandler
virtual ~KnobEventHandler();

bool isEnabled() const noexcept;
void setEnabled(bool enabled) noexcept;
void setEnabled(bool enabled, bool appliesToEventInput = true) noexcept;

// if setStep(1) has been called before, this returns true
bool isInteger() const noexcept;
Expand Down
34 changes: 23 additions & 11 deletions dgl/src/EventHandlers.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ struct ButtonEventHandler::PrivateData {
bool checkable;
bool checked;
bool enabled;
bool enabledInput;

Point<double> lastClickPos;
Point<double> lastMotionPos;
Expand All @@ -46,12 +47,13 @@ struct ButtonEventHandler::PrivateData {
checkable(false),
checked(false),
enabled(true),
enabledInput(true),
lastClickPos(0, 0),
lastMotionPos(0, 0) {}

bool mouseEvent(const Widget::MouseEvent& ev)
{
if (! enabled)
if (! enabledInput)
return false;

lastClickPos = ev.pos;
Expand Down Expand Up @@ -103,7 +105,7 @@ struct ButtonEventHandler::PrivateData {

bool motionEvent(const Widget::MotionEvent& ev)
{
if (! enabled)
if (! enabledInput)
return false;

// keep pressed
Expand Down Expand Up @@ -179,8 +181,11 @@ struct ButtonEventHandler::PrivateData {
}
}

void setEnabled(const bool enabled2) noexcept
void setEnabled(const bool enabled2, const bool appliesToEventInput) noexcept
{
if (appliesToEventInput)
enabledInput = enabled2;

if (enabled == enabled2)
return;

Expand Down Expand Up @@ -248,9 +253,9 @@ bool ButtonEventHandler::isEnabled() const noexcept
return pData->enabled;
}

void ButtonEventHandler::setEnabled(const bool enabled) noexcept
void ButtonEventHandler::setEnabled(const bool enabled, const bool appliesToEventInput) noexcept
{
pData->setEnabled(enabled);
pData->setEnabled(enabled, appliesToEventInput);
}

Point<double> ButtonEventHandler::getLastClickPosition() const noexcept
Expand Down Expand Up @@ -318,6 +323,7 @@ struct KnobEventHandler::PrivateData {
float valueDef;
float valueTmp;
bool enabled;
bool enabledInput;
bool usingDefault;
bool usingLog;
Orientation orientation;
Expand All @@ -339,6 +345,7 @@ struct KnobEventHandler::PrivateData {
valueDef(value),
valueTmp(value),
enabled(true),
enabledInput(true),
usingDefault(false),
usingLog(false),
orientation(Vertical),
Expand All @@ -359,6 +366,7 @@ struct KnobEventHandler::PrivateData {
valueDef(other->valueDef),
valueTmp(value),
enabled(other->enabled),
enabledInput(other->enabledInput),
usingDefault(other->usingDefault),
usingLog(other->usingLog),
orientation(other->orientation),
Expand All @@ -378,6 +386,7 @@ struct KnobEventHandler::PrivateData {
valueDef = other->valueDef;
valueTmp = value;
enabled = other->enabled;
enabledInput = other->enabledInput;
usingDefault = other->usingDefault;
usingLog = other->usingLog;
orientation = other->orientation;
Expand All @@ -403,7 +412,7 @@ struct KnobEventHandler::PrivateData {

bool mouseEvent(const Widget::MouseEvent& ev, const double scaleFactor)
{
if (! enabled)
if (! enabledInput)
return false;

if (ev.button != 1)
Expand Down Expand Up @@ -459,7 +468,7 @@ struct KnobEventHandler::PrivateData {

bool motionEvent(const Widget::MotionEvent& ev, const double scaleFactor)
{
if (! enabled)
if (! enabledInput)
return false;

if ((state & kKnobStateDragging) == 0x0)
Expand Down Expand Up @@ -547,7 +556,7 @@ struct KnobEventHandler::PrivateData {

bool scrollEvent(const Widget::ScrollEvent& ev)
{
if (! enabled)
if (! enabledInput)
return false;

if (! widget->contains(ev.pos))
Expand Down Expand Up @@ -590,8 +599,11 @@ struct KnobEventHandler::PrivateData {
return ((usingLog ? invlogscale(value) : value) - minimum) / diff;
}

void setEnabled(const bool enabled2) noexcept
void setEnabled(const bool enabled2, const bool appliesToEventInput) noexcept
{
if (appliesToEventInput)
enabledInput = enabled2;

if (enabled == enabled2)
return;

Expand Down Expand Up @@ -671,9 +683,9 @@ bool KnobEventHandler::isEnabled() const noexcept
return pData->enabled;
}

void KnobEventHandler::setEnabled(const bool enabled) noexcept
void KnobEventHandler::setEnabled(const bool enabled, const bool appliesToEventInput) noexcept
{
pData->setEnabled(enabled);
pData->setEnabled(enabled, appliesToEventInput);
}

bool KnobEventHandler::isInteger() const noexcept
Expand Down

0 comments on commit 53454d7

Please sign in to comment.