31 const auto interval =
slider.getInterval();
33 return interval != 0.0 ? interval
34 :
slider.getRange().getLength() * 0.01;
156 void setRange (
double newMin,
double newMax,
double newInt)
191 static_cast<double> (
valueMax.getValue()),
205 if (
static_cast<double> (
currentValue.getValue()) != newValue)
226 if (allowNudgingOfOtherValues && newValue >
static_cast<double> (
valueMax.getValue()))
229 newValue =
jmin (
static_cast<double> (
valueMax.getValue()), newValue);
260 if (allowNudgingOfOtherValues && newValue <
static_cast<double> (
valueMin.getValue()))
263 newValue =
jmax (
static_cast<double> (
valueMin.getValue()), newValue);
290 if (newMaxValue < newMinValue)
291 std::swap (newMaxValue, newMinValue);
330 owner.valueChanged();
349 if (
owner.onValueChange !=
nullptr)
350 owner.onValueChange();
358 owner.startedDragging();
366 if (
owner.onDragStart !=
nullptr)
372 owner.stoppedDragging();
381 if (
owner.onDragEnd !=
nullptr)
424 if (newValue !=
static_cast<double> (
currentValue.getValue()))
439 if (newValue !=
valueBox->getText())
460 pos =
owner.valueToProportionOfLength (
value);
465 jassert (pos >= 0 && pos <= 1.0);
471 if (
style != newStyle)
476 owner.lookAndFeelChanged();
477 owner.invalidateAccessibilityHandler();
482 double offset,
bool userCanPressKeyToSwapMode,
497 owner.lookAndFeelChanged();
503 int textEntryBoxWidth,
504 int textEntryBoxHeight)
517 owner.lookAndFeelChanged();
539 valueBox->hideEditor (discardCurrentEditorContents);
541 if (discardCurrentEditorContents)
561 if (
valueBox->isEditable() != shouldBeEditable)
562 valueBox->setEditable (shouldBeEditable);
577 valueBox->setWantsKeyboardFocus (
false);
601 auto setupButton = [&] (
Button&
b,
bool isIncrement)
603 owner.addAndMakeVisible (
b);
607 b.addMouseListener (&
owner,
false);
609 b.setRepeatSpeed (300, 100, 20);
612 b.setAccessible (
false);
633 m.setLookAndFeel (&
owner.getLookAndFeel());
645 m.addSubMenu (
TRANS (
"Rotary mode"), rotaryMenu);
658 case 1:
slider->setVelocityBasedMode (!
slider->getVelocityBasedMode());
break;
672 auto mousePos =
isVertical() ?
e.position.y :
e.position.x;
679 return maxPosDistance <= minPosDistance ? 2 : 1;
681 if (normalPosDistance >= minPosDistance && maxPosDistance >= minPosDistance)
684 if (normalPosDistance >= maxPosDistance)
694 auto dx =
e.position.x - (float)
sliderRect.getCentreX();
697 if (dx * dx +
dy *
dy > 25.0f)
699 auto angle = std::atan2 ((
double) dx, (
double) -
dy);
704 if (
rotaryParams.stopAtEnd &&
e.mouseWasDraggedSinceMouseDown())
780 newPos = 1.0 - newPos;
784 :
jlimit (0.0, 1.0, newPos);
790 bool hasHorizontalStyle =
800 auto speed =
jlimit (0.0, maxSpeed, (
double) std::abs (mouseDiff));
818 :
jlimit (0.0, 1.0, newPos);
821 e.source.enableUnboundedMouseMovement (
true,
false);
833 if (
owner.isEnabled())
895 if (
e.getDistanceFromDragStart() < 10 || !
e.mouseWasDraggedSinceMouseDown())
926 if (
e.mods.isShiftDown())
936 if (
e.mods.isShiftDown())
948 if (
owner.isEnabled()
986 if (
owner.isMouseOver (
true))
1004 if (
key.getModifiers().isAnyModifierKeyDown())
1009 if (
auto* accessibility =
owner.getAccessibilityHandler())
1010 if (
auto* valueInterface = accessibility->getValueInterface())
1011 return valueInterface->getRange().getInterval();
1016 const auto valueChange = [&]
1027 if (valueChange == 0.0)
1091 return normRange.interval * wheelAmount;
1093 auto proportionDelta = wheelAmount * 0.15;
1094 auto currentPos =
owner.valueToProportionOfLength (
value);
1095 auto newPos = currentPos + proportionDelta;
1097 :
jlimit (0.0, 1.0, newPos);
1098 return owner.proportionOfLengthToValue (newPos) -
value;
1124 auto newValue =
value +
jmax (
normRange.interval, std::abs (delta)) * (delta < 0 ? -1.0 : 1.0);
1153 if (ms.isUnboundedMouseMovementEnabled())
1155 ms.enableUnboundedMouseMovement (
false);
1164 mousePos = ms.getLastMouseDownPosition();
1167 -
owner.valueToProportionOfLength (pos)));
1171 else mousePos +=
Point<float> (delta / -2.0f, delta / 2.0f);
1173 mousePos =
owner.getScreenBounds().reduced (4).toFloat().getConstrainedPoint (mousePos);
1198 jassert (sliderPos >= 0 && sliderPos <= 1.0f);
1220 g.drawRect (0, 0,
owner.getWidth(),
owner.getHeight(), 1);
1232 valueBox->setBounds (layout.textBoxBounds);
1256 buttonRect.expand (-2, 0);
1258 buttonRect.expand (0, -2);
1264 decButton->setBounds (buttonRect.removeFromLeft (buttonRect.getWidth() / 2));
1270 decButton->setBounds (buttonRect.removeFromBottom (buttonRect.getHeight() / 2));
1346 if (
owner.pimpl !=
nullptr)
1360 h = (
int) (
font.getHeight() * 1.6f);
1373 owner.pimpl->popupDisplay.reset();
1391 return jmin (std::abs (a1 - a2),
1436 pimpl->registerListeners();
1452 jassert (
p.startAngleRadians >= 0 &&
p.endAngleRadians >= 0);
1466 return pimpl->rotaryParams;
1477 double offset,
bool userCanPressKeyToSwapMode,
1484 pimpl->setVelocityModeParameters (sensitivity, threshold, offset,
1485 userCanPressKeyToSwapMode, modifierToSwapModes);
1493 pimpl->normRange.skew = factor;
1494 pimpl->normRange.symmetricSkew = symmetricSkew;
1499 pimpl->normRange.setSkewForCentre (sliderValueToShowAtMidPoint);
1506 jassert (distanceForFullScaleDrag > 0);
1508 pimpl->pixelsForFullDragExtent = distanceForFullScaleDrag;
1519 pimpl->setTextBoxStyle (newPosition, isReadOnly, textEntryBoxWidth, textEntryBoxHeight);
1529 pimpl->sendChangeOnlyOnRelease = onlyNotifyOnRelease;
1537 pimpl->showPopupOnDrag = showOnDrag;
1538 pimpl->showPopupOnHover = showOnHover;
1540 pimpl->popupHoverTimeout = hoverTimeout;
1567 pimpl->setValue (newValue, notification);
1575 pimpl->setMinValue (newValue, notification, allowNudgingOfOtherValues);
1580 pimpl->setMaxValue (newValue, notification, allowNudgingOfOtherValues);
1585 pimpl->setMinAndMaxValues (newMinValue, newMaxValue, notification);
1590 pimpl->doubleClickToValue = isDoubleClickEnabled;
1591 pimpl->doubleClickReturnValue = valueToSetOnDoubleClick;
1592 pimpl->singleClickModifiers = mods;
1600 pimpl->updateText();
1605 pimpl->setTextValueSuffix (suffix);
1610 return pimpl->textSuffix;
1615 auto getText = [
this] (
double val)
1631 auto t =
text.trimStart();
1639 while (
t.startsWithChar (
'+'))
1640 t =
t.substring (1).trimStart();
1642 return t.initialSectionContainingOnly (
"0123456789.,-")
1648 return pimpl->normRange.convertFrom0to1 (proportion);
1653 return pimpl->normRange.convertTo0to1 (
value);
1658 return attemptedValue;
1665 pimpl->numDecimalPlaces = decimalPlacesToDisplay;
1710 pimpl->modifierKeysChanged (modifiers);
1722 pimpl->mouseDoubleClick();
1799 return std::make_unique<SliderAccessibilityHandler> (*
this);
Type jmin(const Type a, const Type b)
Definition MathsFunctions.h:60
Type jmax(const Type a, const Type b)
Definition MathsFunctions.h:48
#define noexcept
Definition DistrhoDefines.h:72
Definition juce_AccessibilityActions.h:73
AccessibilityHandler(Component &componentToWrap, AccessibilityRole accessibilityRole, AccessibilityActions actions={}, Interfaces interfaces={})
Definition juce_AccessibilityHandler.cpp:55
Definition juce_AccessibilityValueInterface.h:84
Definition juce_AccessibilityValueInterface.h:46
void triggerAsyncUpdate()
Definition juce_AsyncUpdater.cpp:62
void cancelPendingUpdate() noexcept
Definition juce_AsyncUpdater.cpp:74
AsyncUpdater()
Definition juce_AsyncUpdater.cpp:44
BubbleComponent()
Definition juce_BubbleComponent.cpp:29
void setPosition(Component *componentToPointTo, int distanceFromTarget=15, int arrowLength=10)
Definition juce_BubbleComponent.cpp:57
void setAllowedPlacement(int newPlacement)
Definition juce_BubbleComponent.cpp:51
Definition juce_Component.h:2331
bool shouldBailOut() const noexcept
Definition juce_Component.cpp:3252
void setLookAndFeel(LookAndFeel *newLookAndFeel)
Definition juce_Component.cpp:2182
void setTransform(const AffineTransform &transform)
Definition juce_Component.cpp:1341
void setRepaintsOnMouseActivity(bool shouldRepaint) noexcept
Definition juce_Component.cpp:1881
static float JUCE_CALLTYPE getApproximateScaleFactorForComponent(const Component *targetComponent)
Definition juce_Component.cpp:1383
FocusChangeType
Definition juce_Component.h:1890
void setAlwaysOnTop(bool shouldStayOnTop)
Definition juce_Component.cpp:1074
void repaint()
Definition juce_Component.cpp:1917
Component() noexcept
Definition juce_Component.cpp:517
bool isOnDesktop() const noexcept
Definition juce_Component.cpp:796
void setWantsKeyboardFocus(bool wantsFocus) noexcept
Definition juce_Component.cpp:2842
void mouseWheelMove(const MouseEvent &event, const MouseWheelDetails &wheel) override
Definition juce_Component.cpp:2303
bool isEnabled() const noexcept
Definition juce_Component.cpp:3104
LookAndFeel & getLookAndFeel() const noexcept
Definition juce_Component.cpp:2173
@ windowIsTemporary
Definition juce_ComponentPeer.h:52
@ windowIgnoresKeyPresses
Definition juce_ComponentPeer.h:71
@ windowIgnoresMouseClicks
Definition juce_ComponentPeer.h:54
static Desktop &JUCE_CALLTYPE getInstance()
Definition juce_Desktop.cpp:50
Definition juce_Font.h:42
Definition juce_GraphicsContext.h:45
@ centred
Definition juce_Justification.h:138
Definition juce_KeyPress.h:40
static const int upKey
Definition juce_KeyPress.h:198
static const int rightKey
Definition juce_KeyPress.h:201
static const int downKey
Definition juce_KeyPress.h:199
static const int leftKey
Definition juce_KeyPress.h:200
Definition juce_ListenerList.h:70
Definition juce_LookAndFeel.h:108
static ModalComponentManager::Callback * forComponent(void(*functionToCall)(int, ComponentType *), ComponentType *component)
Definition juce_ModalComponentManager.h:276
Definition juce_ModifierKeys.h:41
bool testFlags(int flagsToTest) const noexcept
Definition juce_ModifierKeys.h:182
Flags
Definition juce_ModifierKeys.h:116
@ ctrlAltCommandModifiers
Definition juce_ModifierKeys.h:161
@ ParentCursor
Definition juce_MouseCursor.h:45
Definition juce_MouseEvent.h:39
Definition juce_NormalisableRange.h:40
Definition juce_Point.h:42
Definition juce_Range.h:40
constexpr ValueType getStart() const noexcept
Definition juce_Range.h:80
constexpr ValueType getEnd() const noexcept
Definition juce_Range.h:86
Definition juce_Rectangle.h:67
Definition juce_Slider.h:556
Definition juce_Slider.cpp:40
double getValue() const
Definition juce_Slider.cpp:169
void setVelocityModeParameters(double sensitivity, int threshold, double offset, bool userCanPressKeyToSwapMode, ModifierKeys::Flags newModifierToSwapModes)
Definition juce_Slider.cpp:481
double getMouseWheelDelta(double value, double wheelAmount)
Definition juce_Slider.cpp:1088
void setMinAndMaxValues(double newMinValue, double newMaxValue, NotificationType notification)
Definition juce_Slider.cpp:284
void updatePopupDisplay(double valueToShow)
Definition juce_Slider.cpp:1065
void incrementOrDecrement(double delta)
Definition juce_Slider.cpp:385
void setRange(double newMin, double newMax, double newInt)
Definition juce_Slider.cpp:156
Point< float > mousePosWhenLastDragged
Definition juce_Slider.cpp:1291
static double smallestAngleBetween(double a1, double a2) noexcept
Definition juce_Slider.cpp:1389
int popupHoverTimeout
Definition juce_Slider.cpp:1320
void lookAndFeelChanged(LookAndFeel &lf)
Definition juce_Slider.cpp:566
std::unique_ptr< PopupDisplayComponent > popupDisplay
Definition juce_Slider.cpp:1385
bool scrollWheelEnabled
Definition juce_Slider.cpp:1317
std::unique_ptr< Label > valueBox
Definition juce_Slider.cpp:1325
std::unique_ptr< Button > incButton
Definition juce_Slider.cpp:1326
double getMinValue() const
Definition juce_Slider.cpp:308
void setValue(double newValue, NotificationType notification)
Definition juce_Slider.cpp:178
bool useDragEvents
Definition juce_Slider.cpp:1315
Value currentValue
Definition juce_Slider.cpp:1283
void setMaxValue(double newValue, NotificationType notification, bool allowNudgingOfOtherValues)
Definition juce_Slider.cpp:250
bool sendChangeOnlyOnRelease
Definition juce_Slider.cpp:1311
Component * parentForPopupDisplay
Definition juce_Slider.cpp:1386
void handleAsyncUpdate() override
Definition juce_Slider.cpp:339
void showPopupMenu()
Definition juce_Slider.cpp:630
std::unique_ptr< Button > decButton
Definition juce_Slider.cpp:1326
void mouseDoubleClick()
Definition juce_Slider.cpp:1079
void mouseExit()
Definition juce_Slider.cpp:997
bool keyPressed(const KeyPress &key)
Definition juce_Slider.cpp:1002
void updateText()
Definition juce_Slider.cpp:433
Value valueMax
Definition juce_Slider.cpp:1283
double valueWhenLastDragged
Definition juce_Slider.cpp:1287
ModifierKeys singleClickModifiers
Definition juce_Slider.cpp:1323
Point< float > mouseDragStartPos
Definition juce_Slider.cpp:1291
void restoreMouseIfHidden()
Definition juce_Slider.cpp:1149
void handleVelocityDrag(const MouseEvent &e)
Definition juce_Slider.cpp:788
void setTextBoxIsEditable(bool shouldBeEditable)
Definition juce_Slider.cpp:521
RotaryParameters rotaryParams
Definition juce_Slider.cpp:1290
double lastValueMin
Definition juce_Slider.cpp:1284
void registerListeners()
Definition juce_Slider.cpp:61
bool userKeyOverridesVelocity
Definition juce_Slider.cpp:1309
bool incDecDragged
Definition juce_Slider.cpp:1316
void handleRotaryDrag(const MouseEvent &e)
Definition juce_Slider.cpp:692
double lastPopupDismissal
Definition juce_Slider.cpp:1321
bool canDoubleClickToValue() const
Definition juce_Slider.cpp:1071
bool isThreeValue() const noexcept
Definition juce_Slider.cpp:104
void setTextValueSuffix(const String &suffix)
Definition juce_Slider.cpp:546
bool isBar() const noexcept
Definition juce_Slider.cpp:92
void textChanged()
Definition juce_Slider.cpp:420
double constrainedValue(double value) const
Definition juce_Slider.cpp:444
Value valueMin
Definition juce_Slider.cpp:1283
double lastValueMax
Definition juce_Slider.cpp:1284
void resizeIncDecButtons()
Definition juce_Slider.cpp:1251
double velocityModeOffset
Definition juce_Slider.cpp:1288
bool doubleClickToValue
Definition juce_Slider.cpp:1307
int sliderBeingDragged
Definition juce_Slider.cpp:1293
double velocityModeSensitivity
Definition juce_Slider.cpp:1288
void valueChanged(Value &value) override
Definition juce_Slider.cpp:403
Time lastMouseWheelTime
Definition juce_Slider.cpp:1295
bool isHorizontal() const noexcept
Definition juce_Slider.cpp:68
void setMinValue(double newValue, NotificationType notification, bool allowNudgingOfOtherValues)
Definition juce_Slider.cpp:216
String textSuffix
Definition juce_Slider.cpp:1300
void sendDragStart()
Definition juce_Slider.cpp:356
void resized(LookAndFeel &lf)
Definition juce_Slider.cpp:1226
double minMaxDiff
Definition juce_Slider.cpp:1288
void handleAbsoluteDrag(const MouseEvent &e)
Definition juce_Slider.cpp:740
bool isVertical() const noexcept
Definition juce_Slider.cpp:76
bool isAbsoluteDragMode(ModifierKeys mods) const
Definition juce_Slider.cpp:1144
NormalisableRange< double > normRange
Definition juce_Slider.cpp:1285
int velocityModeThreshold
Definition juce_Slider.cpp:1289
ListenerList< Slider::Listener > listeners
Definition juce_Slider.cpp:1282
double doubleClickReturnValue
Definition juce_Slider.cpp:1286
void setIncDecButtonsMode(IncDecButtonMode mode)
Definition juce_Slider.cpp:492
int textBoxHeight
Definition juce_Slider.cpp:1302
bool snapsToMousePos
Definition juce_Slider.cpp:1318
static void sliderMenuCallback(int result, Slider *slider)
Definition juce_Slider.cpp:652
int getThumbIndexAt(const MouseEvent &e)
Definition juce_Slider.cpp:668
bool editableText
Definition juce_Slider.cpp:1306
bool showPopupOnDrag
Definition juce_Slider.cpp:1312
Rectangle< int > sliderRect
Definition juce_Slider.cpp:1296
void mouseDrag(const MouseEvent &e)
Definition juce_Slider.cpp:879
bool isTwoValue() const noexcept
Definition juce_Slider.cpp:98
int pixelsForFullDragExtent
Definition juce_Slider.cpp:1294
bool incDecDragDirectionIsHorizontal() const noexcept
Definition juce_Slider.cpp:110
bool showPopupOnHover
Definition juce_Slider.cpp:1313
void modifierKeysChanged(const ModifierKeys &modifiers)
Definition juce_Slider.cpp:1138
void updateRange()
Definition juce_Slider.cpp:125
double lastAngle
Definition juce_Slider.cpp:1287
ModifierKeys::Flags modifierToSwapModes
Definition juce_Slider.cpp:1304
TextEntryBoxPosition textBoxPos
Definition juce_Slider.cpp:1299
IncDecButtonMode incDecButtonMode
Definition juce_Slider.cpp:1303
bool isVelocityBased
Definition juce_Slider.cpp:1308
int sliderRegionStart
Definition juce_Slider.cpp:1292
SliderStyle style
Definition juce_Slider.cpp:1280
~Pimpl() override
Definition juce_Slider.cpp:52
void setNormalisableRange(NormalisableRange< double > newRange)
Definition juce_Slider.cpp:163
std::unique_ptr< ScopedDragNotification > currentDrag
Definition juce_Slider.cpp:1297
int sliderRegionSize
Definition juce_Slider.cpp:1292
void paint(Graphics &g, LookAndFeel &lf)
Definition juce_Slider.cpp:1191
void mouseUp()
Definition juce_Slider.cpp:946
double getMaxValue() const
Definition juce_Slider.cpp:317
Pimpl(Slider &s, SliderStyle sliderStyle, TextEntryBoxPosition textBoxPosition)
Definition juce_Slider.cpp:42
int textBoxWidth
Definition juce_Slider.cpp:1302
void mouseDown(const MouseEvent &e)
Definition juce_Slider.cpp:825
double valueOnMouseDown
Definition juce_Slider.cpp:1287
Slider & owner
Definition juce_Slider.cpp:1279
void triggerChangeMessage(NotificationType notification)
Definition juce_Slider.cpp:326
void updateTextBoxEnablement()
Definition juce_Slider.cpp:555
bool isRotary() const noexcept
Definition juce_Slider.cpp:84
bool menuEnabled
Definition juce_Slider.cpp:1314
void hideTextBox(bool discardCurrentEditorContents)
Definition juce_Slider.cpp:535
double lastCurrentValue
Definition juce_Slider.cpp:1284
void setTextBoxStyle(TextEntryBoxPosition newPosition, bool isReadOnly, int textEntryBoxWidth, int textEntryBoxHeight)
Definition juce_Slider.cpp:501
int numDecimalPlaces
Definition juce_Slider.cpp:1301
float getLinearSliderPos(double value) const
Definition juce_Slider.cpp:449
float getPositionOfValue(double value) const
Definition juce_Slider.cpp:116
void mouseMove()
Definition juce_Slider.cpp:975
bool mouseWheelMove(const MouseEvent &e, const MouseWheelDetails &wheel)
Definition juce_Slider.cpp:1101
void showTextBox()
Definition juce_Slider.cpp:527
void setSliderStyle(SliderStyle newStyle)
Definition juce_Slider.cpp:469
void sendDragEnd()
Definition juce_Slider.cpp:370
void showPopupDisplay()
Definition juce_Slider.cpp:1034
bool incDecButtonsSideBySide
Definition juce_Slider.cpp:1310
Definition juce_Slider.h:898
~ScopedDragNotification()
Definition juce_Slider.cpp:1404
Slider & sliderBeingDragged
Definition juce_Slider.h:904
ScopedDragNotification(Slider &)
Definition juce_Slider.cpp:1398
Definition juce_Slider.cpp:1748
double getCurrentValue() const override
Definition juce_Slider.cpp:1758
const bool useMaxValue
Definition juce_Slider.cpp:1785
Slider & slider
Definition juce_Slider.cpp:1784
ValueInterface(Slider &sliderToWrap)
Definition juce_Slider.cpp:1750
String getCurrentValueAsString() const override
Definition juce_Slider.cpp:1774
void setValueAsString(const String &newValue) override
Definition juce_Slider.cpp:1775
void setValue(double newValue) override
Definition juce_Slider.cpp:1764
bool isReadOnly() const override
Definition juce_Slider.cpp:1756
AccessibleValueRange getRange() const override
Definition juce_Slider.cpp:1777
SliderAccessibilityHandler(Slider &sliderToWrap)
Definition juce_Slider.cpp:1735
Slider & slider
Definition juce_Slider.cpp:1791
String getHelp() const override
Definition juce_Slider.cpp:1744
Definition juce_Slider.h:54
int getVelocityThreshold() const noexcept
Definition juce_Slider.cpp:1472
void setSliderStyle(SliderStyle newStyle)
Definition juce_Slider.cpp:1447
DragMode
Definition juce_Slider.h:106
@ notDragging
Definition juce_Slider.h:107
@ velocityDrag
Definition juce_Slider.h:109
@ absoluteDrag
Definition juce_Slider.h:108
void setPopupDisplayEnabled(bool shouldShowOnMouseDrag, bool shouldShowOnMouseHover, Component *parentComponentToUse, int hoverTimeout=2000)
Definition juce_Slider.cpp:1535
int getTextBoxWidth() const noexcept
Definition juce_Slider.cpp:1514
double getMinimum() const noexcept
Definition juce_Slider.cpp:1553
double getVelocityOffset() const noexcept
Definition juce_Slider.cpp:1474
void setMaxValue(double newValue, NotificationType notification=sendNotificationAsync, bool allowNudgingOfOtherValues=false)
Definition juce_Slider.cpp:1578
void setMinAndMaxValues(double newMinValue, double newMaxValue, NotificationType notification=sendNotificationAsync)
Definition juce_Slider.cpp:1583
bool isRotary() const noexcept
Definition juce_Slider.cpp:1682
double getMaxValue() const
Definition juce_Slider.cpp:1571
virtual String getTextFromValue(double value)
Definition juce_Slider.cpp:1613
void addListener(Listener *listener)
Definition juce_Slider.cpp:1442
Value & getMaxValueObject() noexcept
Definition juce_Slider.cpp:1563
void setDoubleClickReturnValue(bool shouldDoubleClickBeEnabled, double valueToSetOnDoubleClick, ModifierKeys singleClickModifiers=ModifierKeys::altModifier)
Definition juce_Slider.cpp:1588
float getPositionOfValue(double value) const
Definition juce_Slider.cpp:1687
void focusOfChildComponentChanged(FocusChangeType) override
Definition juce_Slider.cpp:1693
IncDecButtonMode
Definition juce_Slider.h:291
@ incDecButtonsDraggable_AutoDirection
Definition juce_Slider.h:293
@ incDecButtonsDraggable_Horizontal
Definition juce_Slider.h:294
@ incDecButtonsNotDraggable
Definition juce_Slider.h:292
bool getSliderSnapsToMousePosition() const noexcept
Definition juce_Slider.cpp:1532
void setRotaryParameters(RotaryParameters newParameters) noexcept
Definition juce_Slider.cpp:1449
void setVelocityModeParameters(double sensitivity=1.0, int threshold=1, double offset=0.0, bool userCanPressKeyToSwapMode=true, ModifierKeys::Flags modifiersToSwapModes=ModifierKeys::ctrlAltCommandModifiers)
Definition juce_Slider.cpp:1476
virtual double valueToProportionOfLength(double value)
Definition juce_Slider.cpp:1651
std::function< String(double)> textFromValueFunction
Definition juce_Slider.h:611
bool getVelocityBasedMode() const noexcept
Definition juce_Slider.cpp:1470
std::unique_ptr< Pimpl > pimpl
Definition juce_Slider.h:1015
double getDoubleClickReturnValue() const noexcept
Definition juce_Slider.cpp:1595
Range< double > getRange() const noexcept
Definition juce_Slider.cpp:1551
void setSkewFactor(double factor, bool symmetricSkew=false)
Definition juce_Slider.cpp:1491
virtual double proportionOfLengthToValue(double proportion)
Definition juce_Slider.cpp:1646
int getMouseDragSensitivity() const noexcept
Definition juce_Slider.cpp:1502
void colourChanged() override
Definition juce_Slider.cpp:1546
void setTextBoxIsEditable(bool shouldBeEditable)
Definition juce_Slider.cpp:1523
void mouseDrag(const MouseEvent &) override
Definition juce_Slider.cpp:1713
void setScrollWheelEnabled(bool enabled)
Definition juce_Slider.cpp:1677
void setChangeNotificationOnlyOnRelease(bool onlyNotifyOnRelease)
Definition juce_Slider.cpp:1527
double getSkewFactor() const noexcept
Definition juce_Slider.cpp:1488
void hideTextBox(bool discardCurrentEditorContents)
Definition juce_Slider.cpp:1525
void lookAndFeelChanged() override
Definition juce_Slider.cpp:1547
String getTextValueSuffix() const
Definition juce_Slider.cpp:1608
virtual double snapValue(double attemptedValue, DragMode dragMode)
Definition juce_Slider.cpp:1656
bool isDoubleClickReturnEnabled() const noexcept
Definition juce_Slider.cpp:1596
bool getVelocityModeIsSwappable() const noexcept
Definition juce_Slider.cpp:1471
void setIncDecButtonsMode(IncDecButtonMode mode)
Definition juce_Slider.cpp:1511
double getInterval() const noexcept
Definition juce_Slider.cpp:1554
void mouseMove(const MouseEvent &) override
Definition juce_Slider.cpp:1697
void setVelocityBasedMode(bool isVelocityBased)
Definition juce_Slider.cpp:1469
double getMaximum() const noexcept
Definition juce_Slider.cpp:1552
Component * getCurrentPopupDisplay() const noexcept
Definition juce_Slider.cpp:1543
void mouseExit(const MouseEvent &) override
Definition juce_Slider.cpp:1698
double getValue() const
Definition juce_Slider.cpp:1560
void showTextBox()
Definition juce_Slider.cpp:1524
void resized() override
Definition juce_Slider.cpp:1691
~Slider() override
Definition juce_Slider.cpp:1439
bool isHorizontal() const noexcept
Definition juce_Slider.cpp:1680
SliderStyle
Definition juce_Slider.h:62
@ LinearBarVertical
Definition juce_Slider.h:66
@ IncDecButtons
Definition juce_Slider.h:75
@ ThreeValueHorizontal
Definition juce_Slider.h:82
@ TwoValueHorizontal
Definition juce_Slider.h:77
@ Rotary
Definition juce_Slider.h:67
@ LinearBar
Definition juce_Slider.h:65
@ LinearHorizontal
Definition juce_Slider.h:63
@ RotaryVerticalDrag
Definition juce_Slider.h:71
@ LinearVertical
Definition juce_Slider.h:64
@ RotaryHorizontalDrag
Definition juce_Slider.h:69
@ ThreeValueVertical
Definition juce_Slider.h:85
@ RotaryHorizontalVerticalDrag
Definition juce_Slider.h:73
@ TwoValueVertical
Definition juce_Slider.h:79
double getMinValue() const
Definition juce_Slider.cpp:1570
void mouseDoubleClick(const MouseEvent &) override
Definition juce_Slider.cpp:1719
bool keyPressed(const KeyPress &) override
Definition juce_Slider.cpp:1705
bool isSymmetricSkew() const noexcept
Definition juce_Slider.cpp:1489
void mouseDown(const MouseEvent &) override
Definition juce_Slider.cpp:1695
Value & getMinValueObject() noexcept
Definition juce_Slider.cpp:1562
void enablementChanged() override
Definition juce_Slider.cpp:1548
bool isThreeValue() const noexcept
Definition juce_Slider.cpp:1685
bool isVertical() const noexcept
Definition juce_Slider.cpp:1681
int getTextBoxHeight() const noexcept
Definition juce_Slider.cpp:1515
bool isScrollWheelEnabled() const noexcept
Definition juce_Slider.cpp:1679
void removeListener(Listener *listener)
Definition juce_Slider.cpp:1443
void mouseUp(const MouseEvent &) override
Definition juce_Slider.cpp:1696
void setNumDecimalPlacesToDisplay(int decimalPlacesToDisplay)
Definition juce_Slider.cpp:1663
void modifierKeysChanged(const ModifierKeys &) override
Definition juce_Slider.cpp:1707
std::function< double(const String &)> valueFromTextFunction
Definition juce_Slider.h:608
virtual void stoppedDragging()
Definition juce_Slider.cpp:1672
bool isBar() const noexcept
Definition juce_Slider.cpp:1683
void setPopupMenuEnabled(bool menuEnabled)
Definition juce_Slider.cpp:1676
virtual void valueChanged()
Definition juce_Slider.cpp:1673
bool isTextBoxEditable() const noexcept
Definition juce_Slider.cpp:1522
void setMinValue(double newValue, NotificationType notification=sendNotificationAsync, bool allowNudgingOfOtherValues=false)
Definition juce_Slider.cpp:1573
@ textBoxOutlineColourId
Definition juce_Slider.h:876
TextEntryBoxPosition getTextBoxPosition() const noexcept
Definition juce_Slider.cpp:1513
void setTextBoxStyle(TextEntryBoxPosition newPosition, bool isReadOnly, int textEntryBoxWidth, int textEntryBoxHeight)
Definition juce_Slider.cpp:1517
RotaryParameters getRotaryParameters() const noexcept
Definition juce_Slider.cpp:1464
virtual double getValueFromText(const String &text)
Definition juce_Slider.cpp:1629
void setValue(double newValue, NotificationType notification=sendNotificationAsync)
Definition juce_Slider.cpp:1565
int getThumbBeingDragged() const noexcept
Definition juce_Slider.cpp:1670
void setSkewFactorFromMidPoint(double sliderValueToShowAtMidPoint)
Definition juce_Slider.cpp:1497
Value & getValueObject() noexcept
Definition juce_Slider.cpp:1561
std::unique_ptr< AccessibilityHandler > createAccessibilityHandler() override
Definition juce_Slider.cpp:1797
virtual void startedDragging()
Definition juce_Slider.cpp:1671
void paint(Graphics &) override
Definition juce_Slider.cpp:1690
void init(SliderStyle, TextEntryBoxPosition)
Definition juce_Slider.cpp:1426
Slider()
Definition juce_Slider.cpp:1411
void setTextValueSuffix(const String &suffix)
Definition juce_Slider.cpp:1603
void setSliderSnapsToMousePosition(bool shouldSnapToMouse)
Definition juce_Slider.cpp:1533
TextEntryBoxPosition
Definition juce_Slider.h:94
@ TextBoxRight
Definition juce_Slider.h:97
@ NoTextBox
Definition juce_Slider.h:95
@ TextBoxLeft
Definition juce_Slider.h:96
void mouseWheelMove(const MouseEvent &, const MouseWheelDetails &) override
Definition juce_Slider.cpp:1725
double getVelocitySensitivity() const noexcept
Definition juce_Slider.cpp:1473
SliderStyle getSliderStyle() const noexcept
Definition juce_Slider.cpp:1446
int getNumDecimalPlacesToDisplay() const noexcept
Definition juce_Slider.cpp:1661
void setRange(double newMinimum, double newMaximum, double newInterval=0)
Definition juce_Slider.cpp:1556
void setMouseDragSensitivity(int distanceForFullScaleDrag)
Definition juce_Slider.cpp:1504
bool isTwoValue() const noexcept
Definition juce_Slider.cpp:1684
void updateText()
Definition juce_Slider.cpp:1598
void setNormalisableRange(NormalisableRange< double > newNormalisableRange)
Definition juce_Slider.cpp:1558
void mouseEnter(const MouseEvent &) override
Definition juce_Slider.cpp:1702
Definition juce_String.h:53
Definition juce_Time.h:37
static double getMillisecondCounterHiRes() noexcept
Definition juce_linux_SystemStats.cpp:334
void stopTimer() noexcept
Definition juce_Timer.cpp:357
Timer() noexcept
Definition juce_Timer.cpp:316
Definition juce_Value.h:139
Definition juce_Value.h:51
* e
Definition inflate.c:1404
UINT_D64 w
Definition inflate.c:942
int * l
Definition inflate.c:1579
unsigned * m
Definition inflate.c:1559
struct huft * t
Definition inflate.c:943
register unsigned k
Definition inflate.c:946
unsigned v[N_MAX]
Definition inflate.c:1584
int g
Definition inflate.c:1573
unsigned s
Definition inflate.c:1555
static PuglViewHint int value
Definition pugl.h:1708
static const char * name
Definition pugl.h:1582
static uintptr_t parent
Definition pugl.h:1644
int val
Definition jpeglib.h:956
#define TRANS(stringLiteral)
Definition juce_LocalisedStrings.h:208
Definition carla_juce.cpp:31
constexpr Type jmin(Type a, Type b)
Definition juce_MathsFunctions.h:106
constexpr Type jmax(Type a, Type b)
Definition juce_MathsFunctions.h:94
Type jlimit(Type lowerLimit, Type upperLimit, Type valueToConstrain) noexcept
Definition juce_MathsFunctions.h:262
@ valueChanged
Definition juce_AccessibilityEvent.h:44
NotificationType
Definition juce_NotificationType.h:32
@ sendNotificationAsync
Definition juce_NotificationType.h:36
@ sendNotificationSync
Definition juce_NotificationType.h:35
@ dontSendNotification
Definition juce_NotificationType.h:33
static double getStepSize(const Slider &slider)
Definition juce_Slider.cpp:29
int roundToInt(const FloatType value) noexcept
Definition juce_MathsFunctions.h:465
AccessibilityRole
Definition juce_AccessibilityRole.h:37
@ slider
Definition juce_AccessibilityRole.h:43
@ tooltip
Definition juce_AccessibilityRole.h:65
Definition juce_Uuid.h:141
png_uint_32 length
Definition png.c:2247
png_structrp int mode
Definition png.h:1139
Definition juce_AccessibilityHandler.h:49
static constexpr FloatType twoPi
Definition juce_MathsFunctions.h:385
static constexpr FloatType pi
Definition juce_MathsFunctions.h:382
Definition juce_MouseEvent.h:392
bool isReversed
Definition juce_MouseEvent.h:415
float deltaY
Definition juce_MouseEvent.h:410
float deltaX
Definition juce_MouseEvent.h:401
virtual Button * createSliderButton(Slider &, bool isIncrement)=0
virtual SliderLayout getSliderLayout(Slider &)=0
virtual void drawLinearSlider(Graphics &, int x, int y, int width, int height, float sliderPos, float minSliderPos, float maxSliderPos, const Slider::SliderStyle, Slider &)=0
virtual ImageEffectFilter * getSliderEffect(Slider &)=0
virtual Label * createSliderTextBox(Slider &)=0
virtual void drawRotarySlider(Graphics &, int x, int y, int width, int height, float sliderPosProportional, float rotaryStartAngle, float rotaryEndAngle, Slider &)=0
Definition juce_Slider.h:145
const char * text
Definition swell-functions.h:167
uch * p
Definition crypt.c:594
ZCONST char * key
Definition crypt.c:587
uch h[RAND_HEAD_LEN]
Definition crypt.c:459
void handler(int signal)
Definition fileio.c:1632
int result
Definition process.c:1455
typedef int(UZ_EXP MsgFn)()
dy
Definition zipinfo.c:2288
#define const
Definition zconf.h:137