9 m_background = Drawable::createFromImageData(KrotosBinaryData::XYPad_Background_png,
10 KrotosBinaryData::XYPad_Background_pngSize);
48 m_puckBounds = Rectangle<float>(0.f, 0.f,
static_cast<float>(puckDrawDiameter),
49 static_cast<float>(puckDrawDiameter))
74 float minOpacity = 0.0f;
77 Colour crosshairColor = Colours::white;
79 g.setColour(crosshairColor);
107 float cornerRadius = 1.0f;
110 Path roundedRectPath;
113 roundedRectPath.addRoundedRectangle(xStart, yStart, squareSize, squareSize, cornerRadius);
122 float minOpacity,
float maxOpacity)
124 float steps = std::max(std::abs(endX - startX), std::abs(endY - startY));
125 float xStep = (endX - startX) / steps;
126 float yStep = (endY - startY) / steps;
128 float opacityStep = (maxOpacity - minOpacity) / steps;
130 for (
int i = 0; i < steps; ++i)
132 float xStart = startX + i * xStep;
133 float yStart = startY + i * yStep;
134 float xEnd = startX + (i + 1) * xStep;
135 float yEnd = startY + (i + 1) * yStep;
137 float opacity = maxOpacity - i * opacityStep;
138 g.setOpacity(opacity);
140 g.drawLine(xStart, yStart, xEnd, yEnd, lineWidth);
177 auto clampedOffsetPos =
183 clampedOffsetPos.setY(1.0f - clampedOffsetPos.getY());
201 float distanceToPuck =
event.position.getDistanceFrom(puckCenter);
203 bool isMouseOverPuck = distanceToPuck <= puckRadius;
207 Point<float> mousePosition =
event.position;
230 bool isMouseOverCrosshair =
231 horizontalTopLine.contains(mousePosition) || horizontalBottomLine.contains(mousePosition) ||
232 verticalLeftLine.contains(mousePosition) || verticalRightLine.contains(mousePosition);
243 Button::mouseDrag(event);
253 setMouseCursor(MouseCursor::NoCursor);
256 Button::mouseDown(event);
266 setMouseCursor(MouseCursor::NormalCursor);
268 Button::mouseUp(event);
276 m_twoZoneMask = Drawable::createFromImageData(data, numBytes);
280 RangedAudioParameter& clickParam,
281 RangedAudioParameter& toggleParam,
XYButton& xy,
283 : m_xyButton(xy), m_xAttachment(xParam, [this](float x) {
setXValue(x); }),
284 m_yAttachment(yParam, [
this](
float y) { setYValue(y); }), m_clickAttachment(clickParam, {}),
285 m_toggleAttachment(toggleParam, [
this](
float x) { setToggleValue(x); })
289 m_xyButton.dragStarted = [
this] {
290 m_xAttachment.beginGesture();
291 m_yAttachment.beginGesture();
292 if (m_xyButton.getToggleValue())
294 m_clickAttachment.setValueAsCompleteGesture(1.0f);
298 m_xyButton.dragEnded = [
this] {
299 m_xAttachment.endGesture();
300 m_yAttachment.endGesture();
301 if (m_xyButton.getToggleValue())
303 m_clickAttachment.setValueAsCompleteGesture(0.0f);
307 m_xyButton.puckPositionChanged = [
this](Point<float> p) {
308 if (!m_ignoreCallbacks)
310 m_xAttachment.setValueAsPartOfGesture(p.getX());
311 m_yAttachment.setValueAsPartOfGesture(p.getY());
Definition AirAbsorptionFilter.cpp:2