Date: Sat, 30 Nov 2024 23:50:24 +0000
Subject: [PATCH] deploy:
iPlug2/iPlug2@3d6a38d4da84d1ac04c26d6fc6246ac5ef8f180f
---
_i_controls_8cpp_source.html | 2324 ++++++++++---------
_i_controls_8h.html | 2 +-
_i_controls_8h_source.html | 1293 +++++------
_i_v_tabbed_pages_control_8h_source.html | 2 +-
class_i_b_button_control.html | 10 +-
class_i_b_knob_control.html | 12 +-
class_i_b_knob_rotater_control.html | 10 +-
class_i_b_meter_control.html | 22 +-
class_i_b_slider_control.html | 18 +-
class_i_b_switch_control.html | 14 +-
class_i_b_text_control.html | 20 +-
class_i_bitmap.html | 8 +-
class_i_bitmap_base.html | 4 +-
class_i_byte_stream.html | 2 +-
class_i_control.html | 38 +-
class_i_graphics.html | 46 +-
class_i_knob_control_base.html | 4 +-
class_i_param.html | 4 +-
class_i_s_v_g_button_control.html | 16 +-
class_i_s_v_g_knob_control.html | 8 +-
class_i_s_v_g_slider_control.html | 18 +-
class_i_s_v_g_switch_control.html | 8 +-
class_i_s_v_g_toggle_control.html | 20 +-
class_i_slider_control_base.html | 4 +-
class_i_v_color_swatch_control.html | 26 +-
class_i_v_group_control.html | 42 +-
class_i_v_knob_control-members.html | 415 ++--
class_i_v_knob_control.html | 100 +-
class_i_v_menu_button_control.html | 2 +-
class_i_v_panel_control.html | 16 +-
class_i_v_plot_control.html | 34 +-
class_i_v_radio_button_control.html | 8 +-
class_i_v_range_slider_control.html | 38 +-
class_i_v_slide_switch_control-members.html | 4 +-
class_i_v_slide_switch_control.html | 60 +-
class_i_v_slider_control.html | 56 +-
class_i_v_tab_switch_control.html | 16 +-
class_i_v_track_control_base.html | 8 +-
class_i_v_x_y_pad_control.html | 36 +-
class_i_vector_base.html | 20 +-
functions_func_i.html | 7 +-
functions_i.html | 3 +-
group___i_plug_utilities.html | 4 +-
search/all_8.js | 36 +-
search/functions_8.js | 13 +-
struct_i_r_e_c_t.html | 38 +-
struct_i_s_v_g.html | 4 +-
47 files changed, 2499 insertions(+), 2394 deletions(-)
diff --git a/_i_controls_8cpp_source.html b/_i_controls_8cpp_source.html
index aef058bc..82af5f1b 100644
--- a/_i_controls_8cpp_source.html
+++ b/_i_controls_8cpp_source.html
@@ -270,7 +270,7 @@
- 192IVSlideSwitchControl::IVSlideSwitchControl(
const IRECT& bounds,
int paramIdx,
const char* label,
const IVStyle& style,
bool valueInButton, EDirection direction)
+
194, mDirection(direction)
@@ -292,7 +292,7 @@
- 214IVSlideSwitchControl::IVSlideSwitchControl(
const IRECT& bounds, IActionFunction aF,
const char* label,
const IVStyle& style,
bool valueInButton, EDirection direction,
int numStates,
int initialState)
+
215:
IVSwitchControl(bounds, nullptr, label, style, numStates, valueInButton)
216, mDirection(direction)
@@ -737,1142 +737,1147 @@
656 IRECT knobHandleBounds = mWidgetBounds.
GetCentredInside((widgetRadius - mTrackToHandleDistance) * 2.f );
657 const float angle = mAngle1 + (
static_cast<float>(
GetValue()) * (mAngle2 - mAngle1));
658 DrawIndicatorTrack(g, angle, cx, cy, widgetRadius);
-
+ 659 DrawHandle(g, knobHandleBounds);
660 DrawPointer(g, angle, cx, cy, knobHandleBounds.
W() / 2.f);
- 663void IVKnobControl::DrawIndicatorTrack(
IGraphics& g,
float angle,
float cx,
float cy,
float radius)
+
- 665 if (mTrackSize > 0.f)
-
- 667 g.
DrawArc(
GetColor(kX1), cx, cy, radius, angle >= mAnchorAngle ? mAnchorAngle : mAnchorAngle - (mAnchorAngle - angle), angle >= mAnchorAngle ? angle : mAnchorAngle, &mBlend, mTrackSize);
-
-
-
- 671void IVKnobControl::DrawPointer(
IGraphics& g,
float angle,
float cx,
float cy,
float radius)
-
- 673 g.
DrawRadialLine(
GetColor(kFR), cx, cy, angle, mInnerPointerFrac * radius, mOuterPointerFrac * radius, &mBlend, mPointerThickness);
+
+
+
+ 668void IVKnobControl::DrawIndicatorTrack(
IGraphics& g,
float angle,
float cx,
float cy,
float radius)
+
+ 670 if (mTrackSize > 0.f)
+
+ 672 g.
DrawArc(
GetColor(kX1), cx, cy, radius, angle >= mAnchorAngle ? mAnchorAngle : mAnchorAngle - (mAnchorAngle - angle), angle >= mAnchorAngle ? angle : mAnchorAngle, &mBlend, mTrackSize);
+
-
+ 676void IVKnobControl::DrawPointer(
IGraphics& g,
float angle,
float cx,
float cy,
float radius)
- 678 if(mStyle.showValue && mValueBounds.
Contains(x, y))
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 707 if(mStyle.showValue && !mDisablePrompt)
- 708 mValueMouseOver = mValueBounds.
Contains(x,y);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 729 return mWidgetBounds.
Contains(x, y);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 750 if(!mLabelStr.GetLength())
- 751 mLabelStr.Set(pParam->
GetName());
-
-
-
- 755IVSliderControl::IVSliderControl(
const IRECT& bounds,
int paramIdx,
const char* label,
const IVStyle& style,
bool valueIsEditable, EDirection dir,
double gearing,
float handleSize,
float trackSize,
bool handleInsideTrack,
float handleXOffset,
float handleYOffset)
-
-
- 758, mHandleInsideTrack(handleInsideTrack)
- 759, mHandleXOffset(handleXOffset)
- 760, mHandleYOffset(handleYOffset)
-
-
- 763 mText = style.valueText;
- 764 mHideCursorOnDrag = style.hideCursor;
- 765 mShape = EVShape::Ellipse;
- 766 mTrackSize = trackSize;
-
-
-
- 770IVSliderControl::IVSliderControl(
const IRECT& bounds, IActionFunction aF,
const char* label,
const IVStyle& style,
bool valueIsEditable, EDirection dir,
double gearing,
float handleSize,
float trackSize,
bool handleInsideTrack,
float handleXOffset,
float handleYOffset)
-
-
- 773, mHandleInsideTrack(handleInsideTrack)
- 774, mHandleXOffset(handleXOffset)
- 775, mHandleYOffset(handleYOffset)
-
-
- 778 mText = style.valueText;
- 779 mHideCursorOnDrag = style.hideCursor;
- 780 mShape = EVShape::Ellipse;
- 781 mTrackSize = trackSize;
-
-
-
-
-
-
-
-
-
-
-
- 793void IVSliderControl::DrawTrack(
IGraphics& g,
const IRECT& filledArea)
-
- 795 const float extra = mHandleInsideTrack ? mHandleSize : 0.f;
- 796 const IRECT adjustedTrackBounds = mDirection == EDirection::Vertical ? mTrackBounds.
GetVPadded(extra) : mTrackBounds.
GetHPadded(extra);
- 797 const IRECT adjustedFillBounds = mDirection == EDirection::Vertical ? filledArea.
GetVPadded(extra) : filledArea.
GetHPadded(extra);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 812 DrawTrack(g, filledTrack);
-
-
-
- 816 const float offset = (mStyle.drawShadows && mShape != EVShape::Ellipse ) ? mStyle.shadowOffset * 0.5f : 0.f;
-
- 818 if(mDirection == EDirection::Vertical)
-
- 820 cx = filledTrack.
MW() + offset;
-
-
-
+ 678 g.
DrawRadialLine(
GetColor(kFR), cx, cy, angle, mInnerPointerFrac * radius, mOuterPointerFrac * radius, &mBlend, mPointerThickness);
+
+
+
+
+ 683 if(mStyle.showValue && mValueBounds.
Contains(x, y))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 712 if(mStyle.showValue && !mDisablePrompt)
+ 713 mValueMouseOver = mValueBounds.
Contains(x,y);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 734 return mWidgetBounds.
Contains(x, y);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 755 if(!mLabelStr.GetLength())
+ 756 mLabelStr.Set(pParam->
GetName());
+
+
+
+ 760IVSliderControl::IVSliderControl(
const IRECT& bounds,
int paramIdx,
const char* label,
const IVStyle& style,
bool valueIsEditable, EDirection dir,
double gearing,
float handleSize,
float trackSize,
bool handleInsideTrack,
float handleXOffset,
float handleYOffset)
+
+
+ 763, mHandleInsideTrack(handleInsideTrack)
+ 764, mHandleXOffset(handleXOffset)
+ 765, mHandleYOffset(handleYOffset)
+
+
+ 768 mText = style.valueText;
+ 769 mHideCursorOnDrag = style.hideCursor;
+ 770 mShape = EVShape::Ellipse;
+ 771 mTrackSize = trackSize;
+
+
+
+ 775IVSliderControl::IVSliderControl(
const IRECT& bounds, IActionFunction aF,
const char* label,
const IVStyle& style,
bool valueIsEditable, EDirection dir,
double gearing,
float handleSize,
float trackSize,
bool handleInsideTrack,
float handleXOffset,
float handleYOffset)
+
+
+ 778, mHandleInsideTrack(handleInsideTrack)
+ 779, mHandleXOffset(handleXOffset)
+ 780, mHandleYOffset(handleYOffset)
+
+
+ 783 mText = style.valueText;
+ 784 mHideCursorOnDrag = style.hideCursor;
+ 785 mShape = EVShape::Ellipse;
+ 786 mTrackSize = trackSize;
+
+
+
+
+
+
+
+
+
+
+
+ 798void IVSliderControl::DrawTrack(
IGraphics& g,
const IRECT& filledArea)
+
+ 800 const float extra = mHandleInsideTrack ? mHandleSize : 0.f;
+ 801 const IRECT adjustedTrackBounds = mDirection == EDirection::Vertical ? mTrackBounds.
GetVPadded(extra) : mTrackBounds.
GetHPadded(extra);
+ 802 const IRECT adjustedFillBounds = mDirection == EDirection::Vertical ? filledArea.
GetVPadded(extra) : filledArea.
GetHPadded(extra);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 817 DrawTrack(g, filledTrack);
+
+
+
+ 821 const float offset = (mStyle.drawShadows && mShape != EVShape::Ellipse ) ? mStyle.shadowOffset * 0.5f : 0.f;
+
+ 823 if(mDirection == EDirection::Vertical)
-
- 826 cy = filledTrack.
MH() + offset;
+ 825 cx = filledTrack.
MW() + offset;
+
-
- 829 if(mHandleSize > 0.f)
-
- 831 DrawHandle(g, {cx+mHandleXOffset-mHandleSize, cy+mHandleYOffset-mHandleSize, cx+mHandleXOffset+mHandleSize, cy+mHandleYOffset+mHandleSize});
+
+
+
+ 831 cy = filledTrack.
MH() + offset;
-
-
- 835void IVSliderControl::DrawHandle(
IGraphics& g,
const IRECT& bounds)
-
-
+
+ 834 if(mHandleSize > 0.f)
+
+ 836 DrawHandle(g, {cx+mHandleXOffset-mHandleSize, cy+mHandleYOffset-mHandleSize, cx+mHandleXOffset+mHandleSize, cy+mHandleYOffset+mHandleSize});
+
-
+ 840void IVSliderControl::DrawHandle(
IGraphics& g,
const IRECT& bounds)
- 842 if(mStyle.showValue && mValueBounds.
Contains(x, y))
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 869 if(mStyle.showValue && !mDisablePrompt)
- 870 mValueMouseOver = mValueBounds.
Contains(x,y);
-
-
-
-
-
-
-
-
-
- 880 if(mDirection == EDirection::Vertical)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 898 return mWidgetBounds.
Contains(x, y);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 917 if(!mLabelStr.GetLength())
- 918 mLabelStr.Set(pParam->
GetName());
-
-
-
-
-
- 924IVRangeSliderControl::IVRangeSliderControl(
const IRECT& bounds,
const std::initializer_list<int>& params,
const char* label,
const IVStyle& style, EDirection dir,
bool onlyHandle,
float handleSize,
float trackSize)
-
- 926, mHandleSize(handleSize)
-
- 928 mTrackSize = trackSize;
-
-
-
+
+
+
+
+
+ 847 if(mStyle.showValue && mValueBounds.
Contains(x, y))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 874 if(mStyle.showValue && !mDisablePrompt)
+ 875 mValueMouseOver = mValueBounds.
Contains(x,y);
+
+
+
+
+
+
+
+
+
+ 885 if(mDirection == EDirection::Vertical)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 903 return mWidgetBounds.
Contains(x, y);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 922 if(!mLabelStr.GetLength())
+ 923 mLabelStr.Set(pParam->
GetName());
+
+
+
+
+
+ 929IVRangeSliderControl::IVRangeSliderControl(
const IRECT& bounds,
const std::initializer_list<int>& params,
const char* label,
const IVStyle& style, EDirection dir,
bool onlyHandle,
float handleSize,
float trackSize)
+
+ 931, mHandleSize(handleSize)
-
-
-
-
-
-
- 939void IVRangeSliderControl::MakeTrackRects(
const IRECT& bounds)
-
- 941 for (
int ch = 0; ch <
NVals(); ch++)
-
- 943 if(mDirection == EDirection::Vertical)
-
-
-
-
-
-
- 950void IVRangeSliderControl::DrawTrack(
IGraphics& g,
const IRECT& r,
int chIdx)
-
- 952 bool thisTrack = mMouseOverHandle == chIdx;
-
-
- 955 if(mDirection == EDirection::Horizontal)
- 956 angle = chIdx % 2 ? 180.f : 0.f;
-
- 958 angle = chIdx % 2 ? 270.f : 90.f;
-
-
-
-
- 963IRECT IVRangeSliderControl::GetHandleBounds(
int trackIdx)
-
- 965 IRECT filledTrack = mTrackBounds.Get()[trackIdx].FracRect(mDirection, (
float)
GetValue(trackIdx));
-
- 967 const float offset = (mStyle.drawShadows && mShape != EVShape::Ellipse ) ? mStyle.shadowOffset * 0.5f : 0.f;
- 968 if(mDirection == EDirection::Vertical)
-
- 970 cx = filledTrack.
MW() + offset;
-
-
-
- 974 return IRECT(cx+mTrackSize, cy-mHandleSize, cx+(2.f*mHandleSize)+mTrackSize, cy+mHandleSize);
-
- 976 return IRECT(cx-(2.f*mHandleSize), cy-mHandleSize, cx, cy+mHandleSize);
-
-
-
-
- 981 cy = filledTrack.
MH() + offset;
-
-
- 984 return IRECT(cx-mHandleSize, cy-(2.f*mHandleSize), cx+mHandleSize, cy);
-
- 986 return IRECT(cx-mHandleSize, cy+mTrackSize, cx+mHandleSize, cy+(2.f*mHandleSize)+mTrackSize);
-
-
-
-
-
- 992 IRECT r = mTrackBounds.Get()[0];
-
- 994 DrawTrackBackground(g, r, 0);
-
- 996 for(
int i=0;i<
NVals()-1;i++)
-
- 998 IRECT filled1 = mTrackBounds.Get()[i].FracRect(mDirection, (
float)
GetValue(i));
- 999 IRECT filled2 = mTrackBounds.Get()[i+1].FracRect(mDirection, (
float)
GetValue(i+1));
-
- 1001 if(mDirection == EDirection::Vertical)
- 1002 g.
FillRect(
GetColor(kX1),
IRECT(filled1.L, filled1.T < filled2.T ? filled1.T : filled2.T, filled1.R, filled1.T > filled2.T ? filled1.T : filled2.T), &mBlend);
-
- 1004 g.
FillRect(
GetColor(kX1),
IRECT(filled1.R < filled2.R ? filled1.R : filled2.R, filled1.T, filled1.R > filled2.R ? filled1.R : filled2.R, filled1.B), &mBlend);
-
-
- 1007 if(mStyle.drawFrame && mDrawTrackFrame)
-
-
-
-
-
-
-
-
-
-
- 1018 for(
int i=0;i<
NVals();i++)
-
- 1020 bounds = GetHandleBounds(i);
-
-
-
-
-
-
-
- 1028 mMouseOverHandle = hitHandle;
-
-
-
-
-
-
-
- 1036 mMouseIsDown =
true;
-
-
-
-
-
- 1042 if(mMouseOverHandle == -1)
-
-
- 1045 auto minClip = mMouseOverHandle == 0 ? 0. :
GetValue(mMouseOverHandle-1);
- 1046 auto maxClip = mMouseOverHandle ==
NVals()-1 ? 1. :
GetValue(mMouseOverHandle+1);
- 1047 SnapToMouse(x, y, mDirection, mWidgetBounds, mMouseOverHandle, minClip, maxClip);
-
-
-
- 1051IVXYPadControl::IVXYPadControl(
const IRECT& bounds,
const std::initializer_list<int>& params,
const char* label,
const IVStyle& style,
float handleRadius,
bool trackClipsHandle,
bool drawCross)
-
-
- 1054, mHandleRadius(handleRadius)
- 1055, mTrackClipsHandle(trackClipsHandle)
- 1056, mDrawCross(drawCross)
-
- 1058 mShape = EVShape::Ellipse;
-
-
-
-
-
-
-
-
- 1067 if(mStyle.drawFrame)
-
-
-
-
-
-
-
-
-
- 1077 const IRECT trackBounds = mWidgetBounds.
GetPadded(mTrackClipsHandle ? 0 : -mHandleRadius);
-
- 1079 const float xpos =
static_cast<float>(
GetValue(0)) * trackBounds.
W();
- 1080 const float ypos =
static_cast<float>(
GetValue(1)) * trackBounds.
H();
- 1081 const IRECT handleBounds =
IRECT(trackBounds.L + xpos-mHandleRadius, trackBounds.B - ypos-mHandleRadius, trackBounds.L + xpos+mHandleRadius, trackBounds.B -ypos+mHandleRadius);
-
- 1083 DrawHandle(g, trackBounds, handleBounds);
-
-
- 1086void IVXYPadControl::DrawHandle(
IGraphics& g,
const IRECT& trackBounds,
const IRECT& handleBounds)
-
- 1088 if (mTrackClipsHandle)
-
-
-
-
-
- 1094void IVXYPadControl::DrawTrack(
IGraphics& g)
-
-
-
-
-
-
-
-
-
-
-
- 1106 if (mStyle.hideCursor)
-
-
-
-
-
-
-
- 1114 if (mStyle.hideCursor)
-
+ 933 mTrackSize = trackSize;
+
+
+
+
+
+
+
+
+
+
+ 944void IVRangeSliderControl::MakeTrackRects(
const IRECT& bounds)
+
+ 946 for (
int ch = 0; ch <
NVals(); ch++)
+
+ 948 if(mDirection == EDirection::Vertical)
+
+
+
+
+
+
+ 955void IVRangeSliderControl::DrawTrack(
IGraphics& g,
const IRECT& r,
int chIdx)
+
+ 957 bool thisTrack = mMouseOverHandle == chIdx;
+
+
+ 960 if(mDirection == EDirection::Horizontal)
+ 961 angle = chIdx % 2 ? 180.f : 0.f;
+
+ 963 angle = chIdx % 2 ? 270.f : 90.f;
+
+
+
+
+ 968IRECT IVRangeSliderControl::GetHandleBounds(
int trackIdx)
+
+ 970 IRECT filledTrack = mTrackBounds.Get()[trackIdx].FracRect(mDirection, (
float)
GetValue(trackIdx));
+
+ 972 const float offset = (mStyle.drawShadows && mShape != EVShape::Ellipse ) ? mStyle.shadowOffset * 0.5f : 0.f;
+ 973 if(mDirection == EDirection::Vertical)
+
+ 975 cx = filledTrack.
MW() + offset;
+
+
+
+ 979 return IRECT(cx+mTrackSize, cy-mHandleSize, cx+(2.f*mHandleSize)+mTrackSize, cy+mHandleSize);
+
+ 981 return IRECT(cx-(2.f*mHandleSize), cy-mHandleSize, cx, cy+mHandleSize);
+
+
+
+
+ 986 cy = filledTrack.
MH() + offset;
+
+
+ 989 return IRECT(cx-mHandleSize, cy-(2.f*mHandleSize), cx+mHandleSize, cy);
+
+ 991 return IRECT(cx-mHandleSize, cy+mTrackSize, cx+mHandleSize, cy+(2.f*mHandleSize)+mTrackSize);
+
+
+
+
+
+ 997 IRECT r = mTrackBounds.Get()[0];
+
+ 999 DrawTrackBackground(g, r, 0);
+
+ 1001 for(
int i=0;i<
NVals()-1;i++)
+
+ 1003 IRECT filled1 = mTrackBounds.Get()[i].FracRect(mDirection, (
float)
GetValue(i));
+ 1004 IRECT filled2 = mTrackBounds.Get()[i+1].FracRect(mDirection, (
float)
GetValue(i+1));
+
+ 1006 if(mDirection == EDirection::Vertical)
+ 1007 g.
FillRect(
GetColor(kX1),
IRECT(filled1.L, filled1.T < filled2.T ? filled1.T : filled2.T, filled1.R, filled1.T > filled2.T ? filled1.T : filled2.T), &mBlend);
+
+ 1009 g.
FillRect(
GetColor(kX1),
IRECT(filled1.R < filled2.R ? filled1.R : filled2.R, filled1.T, filled1.R > filled2.R ? filled1.R : filled2.R, filled1.B), &mBlend);
+
+
+ 1012 if(mStyle.drawFrame && mDrawTrackFrame)
+
+
+
+
+
+
+
+
+
+
+ 1023 for(
int i=0;i<
NVals();i++)
+
+ 1025 bounds = GetHandleBounds(i);
+
+
+
+
+
+
+
+ 1033 mMouseOverHandle = hitHandle;
+
+
+
+
+
+
+
+ 1041 mMouseIsDown =
true;
+
+
+
+
+
+ 1047 if(mMouseOverHandle == -1)
+
+
+ 1050 auto minClip = mMouseOverHandle == 0 ? 0. :
GetValue(mMouseOverHandle-1);
+ 1051 auto maxClip = mMouseOverHandle ==
NVals()-1 ? 1. :
GetValue(mMouseOverHandle+1);
+ 1052 SnapToMouse(x, y, mDirection, mWidgetBounds, mMouseOverHandle, minClip, maxClip);
+
+
+
+ 1056IVXYPadControl::IVXYPadControl(
const IRECT& bounds,
const std::initializer_list<int>& params,
const char* label,
const IVStyle& style,
float handleRadius,
bool trackClipsHandle,
bool drawCross)
+
+
+ 1059, mHandleRadius(handleRadius)
+ 1060, mTrackClipsHandle(trackClipsHandle)
+ 1061, mDrawCross(drawCross)
+
+ 1063 mShape = EVShape::Ellipse;
+
+
+
+
+
+
+
+
+ 1072 if(mStyle.drawFrame)
+
+
+
+
+
+
+
+
+
+ 1082 const IRECT trackBounds = mWidgetBounds.
GetPadded(mTrackClipsHandle ? 0 : -mHandleRadius);
+
+ 1084 const float xpos =
static_cast<float>(
GetValue(0)) * trackBounds.
W();
+ 1085 const float ypos =
static_cast<float>(
GetValue(1)) * trackBounds.
H();
+ 1086 const IRECT handleBounds =
IRECT(trackBounds.L + xpos-mHandleRadius, trackBounds.B - ypos-mHandleRadius, trackBounds.L + xpos+mHandleRadius, trackBounds.B -ypos+mHandleRadius);
+
+ 1088 DrawHandle(g, trackBounds, handleBounds);
+
+
+ 1091void IVXYPadControl::DrawHandle(
IGraphics& g,
const IRECT& trackBounds,
const IRECT& handleBounds)
+
+ 1093 if (mTrackClipsHandle)
+
+
+
+
+
+ 1099void IVXYPadControl::DrawTrack(
IGraphics& g)
+
+
+
+
+
+
+
+
+
+
+
+ 1111 if (mStyle.hideCursor)
+
+
+
+
-
-
-
-
-
-
-
- 1124 float xn = (x - mRECT.L) / mRECT.
W();
- 1125 float yn = 1.f - ((y - mRECT.T) / mRECT.
H());
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1142, mUseLayer(useLayer)
-
- 1144 mPoints.resize(numPoints);
-
-
-
- 1148 for(
auto plot : plots)
-
-
-
-
-
-
-
-
-
+
+
+ 1119 if (mStyle.hideCursor)
+
+
+
+
+
+
+
+
+
+ 1129 float xn = (x - mRECT.L) / mRECT.
W();
+ 1130 float yn = 1.f - ((y - mRECT.T) / mRECT.
H());
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1147, mUseLayer(useLayer)
+
+ 1149 mPoints.resize(numPoints);
+
+
+
+ 1153 for(
auto plot : plots)
+
+
+
+
- 1159 float hdiv = mWidgetBounds.
W() /
static_cast<float>(mHorizontalDivisions);
- 1160 float vdiv = mWidgetBounds.
H() /
static_cast<float>(mVerticalDivisions + 2);
-
-
+
+
+
+
- 1164 auto drawFunc = [&](){
-
-
- 1167 for (
int p=0; p<mPlots.size(); p++)
-
- 1169 for (
int i=0; i<mPoints.size(); i++)
-
- 1171 auto v = mPlots[p].func((
static_cast<float>(i)/
static_cast<float>(mPoints.size() - 1)));
- 1172 v = (v - mMin) / (mMax-mMin);
- 1173 mPoints[i] =
static_cast<float>(v);
-
-
- 1176 g.
DrawData(mPlots[p].color, plotsRECT, mPoints.data(),
static_cast<int>(mPoints.size()),
nullptr, &mBlend, mTrackSize);
-
-
- 1179 if (mStyle.drawFrame)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1206 mPlots.push_back({color, func});
-
-
- 1209 mLayer->Invalidate();
-
-
-
-
-
-
- 1216, mLabelOffset(labelOffset)
-
-
- 1219 mIgnoreMouse =
true;
-
-
-
-
-
- 1225, mGroupName(groupName)
-
-
-
-
-
-
- 1232 mIgnoreMouse =
true;
-
-
-
-
- 1237 if(mGroupName.GetLength())
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1255 const float ft = mStyle.frameThickness;
- 1256 const float hft = ft/2.f;
-
-
-
-
-
- 1262 auto labelR = mLabelBounds.
Empty() ? mRECT.
MW() : mLabelBounds.R;
- 1263 auto labelL = mLabelBounds.
Empty() ? mRECT.
MW() : mLabelBounds.L;
-
- 1265 for(
int i=0; i < nPaths; i++)
-
- 1267 const float offset = i == 0 ? 0.f : mStyle.shadowOffset;
-
-
- 1270 g.
PathArc(b.R - cr - hft - offset, b.T + cr + hft - offset, cr, 0.f, 90.f);
- 1271 g.
PathArc(b.R - cr - hft - offset, b.B - cr - hft - offset, cr, 90.f, 180.f);
- 1272 g.
PathArc(b.L + cr + hft - offset, b.B - cr - hft - offset, cr, 180.f, 270.f);
- 1273 g.
PathArc(b.L + cr + hft - offset, b.T + cr + hft - offset, cr, 270.f, 360.f);
-
-
-
-
-
-
-
-
- 1282 mLabelBounds.
HPad(mLabelPadding);
- 1283 mWidgetBounds.
Offset(0, -(mLabelBounds.
H()/2.f) - (mStyle.frameThickness/2.f), 0, 0);
-
- 1285 mLabelBounds.
Translate(mRECT.L - mLabelBounds.L + mStyle.frameThickness + mLabelOffset + cr, 0.f);
-
-
-
-
-
- 1291 mGroupName.Set(groupName);
-
-
-
- 1295 float halfLabelHeight = mLabelBounds.
H()/2.f;
-
- 1297 mRECT = unionRect.
GetPadded(padL, padT, padR, padB);
-
-
-
-
- 1302IVColorSwatchControl::IVColorSwatchControl(
const IRECT& bounds,
const char* label, ColorChosenFunc func,
const IVStyle& style, ECellLayout layout,
- 1303 const std::initializer_list<EVColor>& colorIDs,
const std::initializer_list<const char*>& labelsForIDs)
-
-
- 1306, mColorChosenFunc(func)
-
- 1308, mColorIdForCells(colorIDs)
-
- 1310 assert(colorIDs.size() == labelsForIDs.size());
-
-
- 1313 mCellRects.Resize(
static_cast<int>(mColorIdForCells.size()));
- 1314 mText.mAlign = mStyle.valueText.mAlign = EAlign::Far;
-
- 1316 for (
int i=0;i<colorIDs.size();i++)
-
- 1318 mLabels.Add(
new WDL_String(labelsForIDs.begin()[i]));
-
-
-
-
-
-
-
-
-
-
-
- 1330 for (
int i=0; i< mColorIdForCells.size(); i++)
-
- 1332 WDL_String* pStr = mLabels.Get(i);
- 1333 IRECT r = mCellRects.Get()[i];
-
-
- 1336 g.
DrawRect(i == mCellOver ? COLOR_GRAY : COLOR_DARK_GRAY, buttonBounds.
GetPadded(0.5f), &mBlend);
-
- 1338 if(pStr->GetLength())
-
-
-
-
-
-
-
-
-
-
-
- 1350 if(mLayout == ECellLayout::kGrid)
-
-
-
-
- 1355 else if (mLayout == ECellLayout::kHorizontal)
+ 1164 float hdiv = mWidgetBounds.
W() /
static_cast<float>(mHorizontalDivisions);
+ 1165 float vdiv = mWidgetBounds.
H() /
static_cast<float>(mVerticalDivisions + 2);
+
+
+
+ 1169 auto drawFunc = [&](){
+
+
+ 1172 for (
int p=0; p<mPlots.size(); p++)
+
+ 1174 for (
int i=0; i<mPoints.size(); i++)
+
+ 1176 auto v = mPlots[p].func((
static_cast<float>(i)/
static_cast<float>(mPoints.size() - 1)));
+ 1177 v = (v - mMin) / (mMax-mMin);
+ 1178 mPoints[i] =
static_cast<float>(v);
+
+
+ 1181 g.
DrawData(mPlots[p].color, plotsRECT, mPoints.data(),
static_cast<int>(mPoints.size()),
nullptr, &mBlend, mTrackSize);
+
+
+ 1184 if (mStyle.drawFrame)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1211 mPlots.push_back({color, func});
+
+
+ 1214 mLayer->Invalidate();
+
+
+
+
+
+
+ 1221, mLabelOffset(labelOffset)
+
+
+ 1224 mIgnoreMouse =
true;
+
+
+
+
+
+ 1230, mGroupName(groupName)
+
+
+
+
+
+
+ 1237 mIgnoreMouse =
true;
+
+
+
+
+ 1242 if(mGroupName.GetLength())
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1260 const float ft = mStyle.frameThickness;
+ 1261 const float hft = ft/2.f;
+
+
+
+
+
+ 1267 auto labelR = mLabelBounds.
Empty() ? mRECT.
MW() : mLabelBounds.R;
+ 1268 auto labelL = mLabelBounds.
Empty() ? mRECT.
MW() : mLabelBounds.L;
+
+ 1270 for(
int i=0; i < nPaths; i++)
+
+ 1272 const float offset = i == 0 ? 0.f : mStyle.shadowOffset;
+
+
+ 1275 g.
PathArc(b.R - cr - hft - offset, b.T + cr + hft - offset, cr, 0.f, 90.f);
+ 1276 g.
PathArc(b.R - cr - hft - offset, b.B - cr - hft - offset, cr, 90.f, 180.f);
+ 1277 g.
PathArc(b.L + cr + hft - offset, b.B - cr - hft - offset, cr, 180.f, 270.f);
+ 1278 g.
PathArc(b.L + cr + hft - offset, b.T + cr + hft - offset, cr, 270.f, 360.f);
+
+
+
+
+
+
+
+
+ 1287 mLabelBounds.
HPad(mLabelPadding);
+ 1288 mWidgetBounds.
Offset(0, -(mLabelBounds.
H()/2.f) - (mStyle.frameThickness/2.f), 0, 0);
+
+ 1290 mLabelBounds.
Translate(mRECT.L - mLabelBounds.L + mStyle.frameThickness + mLabelOffset + cr, 0.f);
+
+
+
+
+
+ 1296 mGroupName.Set(groupName);
+
+
+
+ 1300 float halfLabelHeight = mLabelBounds.
H()/2.f;
+
+ 1302 mRECT = unionRect.
GetPadded(padL, padT, padR, padB);
+
+
+
+
+ 1307IVColorSwatchControl::IVColorSwatchControl(
const IRECT& bounds,
const char* label, ColorChosenFunc func,
const IVStyle& style, ECellLayout layout,
+ 1308 const std::initializer_list<EVColor>& colorIDs,
const std::initializer_list<const char*>& labelsForIDs)
+
+
+ 1311, mColorChosenFunc(func)
+
+ 1313, mColorIdForCells(colorIDs)
+
+ 1315 assert(colorIDs.size() == labelsForIDs.size());
+
+
+ 1318 mCellRects.Resize(
static_cast<int>(mColorIdForCells.size()));
+ 1319 mText.mAlign = mStyle.valueText.mAlign = EAlign::Far;
+
+ 1321 for (
int i=0;i<colorIDs.size();i++)
+
+ 1323 mLabels.Add(
new WDL_String(labelsForIDs.begin()[i]));
+
+
+
+
+
+
+
+
+
+
+
+ 1335 for (
int i=0; i< mColorIdForCells.size(); i++)
+
+ 1337 WDL_String* pStr = mLabels.Get(i);
+ 1338 IRECT r = mCellRects.Get()[i];
+
+
+ 1341 g.
DrawRect(i == mCellOver ? COLOR_GRAY : COLOR_DARK_GRAY, buttonBounds.
GetPadded(0.5f), &mBlend);
+
+ 1343 if(pStr->GetLength())
+
+
+
+
+
+
+
+
+
+
+
+ 1355 if(mLayout == ECellLayout::kGrid)
-
- 1358 columns =
static_cast<int>(mColorIdForCells.size());
+
+
- 1360 else if (mLayout == ECellLayout::kVertical)
+ 1360 else if (mLayout == ECellLayout::kHorizontal)
- 1362 rows =
static_cast<int>(mColorIdForCells.size());
-
+
+ 1363 columns =
static_cast<int>(mColorIdForCells.size());
-
- 1366 for (
int i=0; i< mColorIdForCells.size(); i++)
-
-
+ 1365 else if (mLayout == ECellLayout::kVertical)
+
+ 1367 rows =
static_cast<int>(mColorIdForCells.size());
+
-
-
-
-
-
-
- 1376 for (
int i=0; i<mColorIdForCells.size(); i++)
-
- 1378 if(mCellRects.Get()[i].Contains(x, y))
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1400 for (
int i=0; i<mColorIdForCells.size(); i++)
-
- 1402 if(mCellRects.Get()[i].Contains(x, y))
-
-
-
-
-
-
- 1409 if(cellClicked > -1)
-
- 1411 EVColor vColorClicked = mColorIdForCells[cellClicked];
-
-
-
- 1415 if(mColorChosenFunc)
- 1416 mColorChosenFunc(cellClicked, result);
-
-
-
-
- 1421#pragma mark - SVG CONTROLS
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1436, mColorReplacement(colorReplacement)
-
-
-
-
-
- 1442 IColor* pOnColorFill =
nullptr;
- 1443 IColor* pOffColorFill =
nullptr;
- 1444 IColor* pOnColorStroke =
nullptr;
- 1445 IColor* pOffColorStroke =
nullptr;
-
- 1447 switch (mColorReplacement) {
-
- 1449 case EColorReplacement::None:
-
- 1451 case EColorReplacement::Fill:
- 1452 pOnColorFill =
mMouseIsOver ? &mColors[3] : &mColors[1];
- 1453 pOffColorFill =
mMouseIsOver ? &mColors[2] : &mColors[0];
-
- 1455 case EColorReplacement::Stroke:
- 1456 pOnColorStroke =
mMouseIsOver ? &mColors[3] : &mColors[1];
- 1457 pOffColorStroke =
mMouseIsOver ? &mColors[2] : &mColors[0];
-
-
-
-
- 1462 g.
DrawSVG(mOnSVG, mRECT, &mBlend, pOnColorStroke, pOnColorFill);
-
- 1464 g.
DrawSVG(mOffSVG, mRECT, &mBlend, pOffColorStroke, pOffColorFill);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1486, mColorReplacement(colorReplacement)
-
-
-
-
-
-
-
-
- 1495, mColorReplacement(colorReplacement)
-
-
-
-
-
- 1501 IColor* pOnColorFill =
nullptr;
- 1502 IColor* pOffColorFill =
nullptr;
- 1503 IColor* pOnColorStroke =
nullptr;
- 1504 IColor* pOffColorStroke =
nullptr;
-
- 1506 switch (mColorReplacement) {
- 1507 case EColorReplacement::None:
-
- 1509 case EColorReplacement::Fill:
- 1510 pOnColorFill =
mMouseIsOver ? &mColors[3] : &mColors[1];
- 1511 pOffColorFill =
mMouseIsOver ? &mColors[2] : &mColors[0];
-
- 1513 case EColorReplacement::Stroke:
- 1514 pOnColorStroke =
mMouseIsOver ? &mColors[3] : &mColors[1];
- 1515 pOffColorStroke =
mMouseIsOver ? &mColors[2] : &mColors[0];
-
-
-
-
- 1520 g.
DrawSVG(mOnSVG, mRECT, &mBlend, pOnColorStroke, pOnColorFill);
-
- 1522 g.
DrawSVG(mOffSVG, mRECT, &mBlend, pOffColorStroke, pOffColorFill);
-
-
- 1525ISVGKnobControl::ISVGKnobControl(
const IRECT& bounds,
const ISVG& svg,
int paramIdx)
-
-
-
-
-
-
-
-
+
+ 1371 for (
int i=0; i< mColorIdForCells.size(); i++)
+
+
+
+
+
+
+
+
+
+ 1381 for (
int i=0; i<mColorIdForCells.size(); i++)
+
+ 1383 if(mCellRects.Get()[i].Contains(x, y))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1405 for (
int i=0; i<mColorIdForCells.size(); i++)
+
+ 1407 if(mCellRects.Get()[i].Contains(x, y))
+
+
+
+
+
+
+ 1414 if(cellClicked > -1)
+
+ 1416 EVColor vColorClicked = mColorIdForCells[cellClicked];
+
+
+
+ 1420 if(mColorChosenFunc)
+ 1421 mColorChosenFunc(cellClicked, result);
+
+
+
+
+ 1426#pragma mark - SVG CONTROLS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1441, mColorReplacement(colorReplacement)
+
+
+
+
+
+ 1447 IColor* pOnColorFill =
nullptr;
+ 1448 IColor* pOffColorFill =
nullptr;
+ 1449 IColor* pOnColorStroke =
nullptr;
+ 1450 IColor* pOffColorStroke =
nullptr;
+
+ 1452 switch (mColorReplacement) {
+
+ 1454 case EColorReplacement::None:
+
+ 1456 case EColorReplacement::Fill:
+ 1457 pOnColorFill =
mMouseIsOver ? &mColors[3] : &mColors[1];
+ 1458 pOffColorFill =
mMouseIsOver ? &mColors[2] : &mColors[0];
+
+ 1460 case EColorReplacement::Stroke:
+ 1461 pOnColorStroke =
mMouseIsOver ? &mColors[3] : &mColors[1];
+ 1462 pOffColorStroke =
mMouseIsOver ? &mColors[2] : &mColors[0];
+
+
+
+
+ 1467 g.
DrawSVG(mOnSVG, mRECT, &mBlend, pOnColorStroke, pOnColorFill);
+
+ 1469 g.
DrawSVG(mOffSVG, mRECT, &mBlend, pOffColorStroke, pOffColorFill);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1491, mColorReplacement(colorReplacement)
+
+
+
+
+
+
+
+
+ 1500, mColorReplacement(colorReplacement)
+
+
+
+
+
+ 1506 IColor* pOnColorFill =
nullptr;
+ 1507 IColor* pOffColorFill =
nullptr;
+ 1508 IColor* pOnColorStroke =
nullptr;
+ 1509 IColor* pOffColorStroke =
nullptr;
+
+ 1511 switch (mColorReplacement) {
+ 1512 case EColorReplacement::None:
+
+ 1514 case EColorReplacement::Fill:
+ 1515 pOnColorFill =
mMouseIsOver ? &mColors[3] : &mColors[1];
+ 1516 pOffColorFill =
mMouseIsOver ? &mColors[2] : &mColors[0];
+
+ 1518 case EColorReplacement::Stroke:
+ 1519 pOnColorStroke =
mMouseIsOver ? &mColors[3] : &mColors[1];
+ 1520 pOffColorStroke =
mMouseIsOver ? &mColors[2] : &mColors[0];
+
+
+
+
+ 1525 g.
DrawSVG(mOnSVG, mRECT, &mBlend, pOnColorStroke, pOnColorFill);
+
+ 1527 g.
DrawSVG(mOffSVG, mRECT, &mBlend, pOffColorStroke, pOffColorFill);
+
+
+ 1530ISVGKnobControl::ISVGKnobControl(
const IRECT& bounds,
const ISVG& svg,
int paramIdx)
+
+
+
- 1536void ISVGKnobControl::SetSVG(
ISVG& svg)
+
-
-
-
-
-
-
-
-
-
-
-
-
- 1550 g.
DrawSVG(mSVGs[GetSelectedIdx()], mRECT, &mBlend);
+
+
+
+ 1541void ISVGKnobControl::SetSVG(
ISVG& svg)
+
+
+
+
+
+
+
+
+
-
-
- 1555, mHandleSVG(handleSVG)
- 1556, mTrackSVG(trackSVG)
-
-
-
-
-
- 1562 g.
DrawSVG(mTrackSVG, mTrackSVGBounds, &mBlend);
-
-
-
-
-
- 1568 auto trackAspectRatio = mTrackSVG.
W() / mTrackSVG.
H();
- 1569 auto handleAspectRatio = mHandleSVG.
W() / mHandleSVG.
H();
- 1570 auto handleOverTrackHeight = mHandleSVG.
H() / mTrackSVG.
H();
-
- 1572 IRECT handleBoundsAtMidPoint;
-
- 1574 if (mDirection == EDirection::Vertical)
-
-
-
- 1578 handleBoundsAtMidPoint = mRECT.
GetCentredInside(mRECT.
H() * handleAspectRatio * handleOverTrackHeight, mRECT.
H() * handleOverTrackHeight);
- 1579 mHandleBoundsAtMax = { handleBoundsAtMidPoint.L, mTrackSVGBounds.T, handleBoundsAtMidPoint.R, mTrackSVGBounds.T + handleBoundsAtMidPoint.
H() };
- 1580 mTrackBounds = mTrackSVGBounds.
GetPadded(0, -handleBoundsAtMidPoint.
H(), 0, 0);
-
-
-
-
- 1585 auto handleHeight = mTrackSVGBounds.
H() * handleOverTrackHeight;
- 1586 handleBoundsAtMidPoint = mRECT.
GetCentredInside(handleHeight * handleAspectRatio, handleHeight);
- 1587 auto halfHeight = handleBoundsAtMidPoint.
H() / 2.f;
- 1588 mHandleBoundsAtMax = { mTrackSVGBounds.R - handleBoundsAtMidPoint.
W(), mTrackSVGBounds.
MH() - halfHeight, mTrackSVGBounds.R, mTrackSVGBounds.
MH() + halfHeight };
- 1589 mTrackBounds = mTrackSVGBounds.
GetPadded(-handleBoundsAtMidPoint.
W(), 0, 0, 0);
-
-
-
-
-
- 1595IRECT ISVGSliderControl::GetHandleBounds(
double value)
const
-
-
-
+
+
+ 1555 g.
DrawSVG(mSVGs[GetSelectedIdx()], mRECT, &mBlend);
+
+
+
+
+ 1560, mHandleSVG(handleSVG)
+ 1561, mTrackSVG(trackSVG)
+
+
+
+
+
+ 1567 g.
DrawSVG(mTrackSVG, mTrackSVGBounds, &mBlend);
+
+
+
+
+
+ 1573 auto trackAspectRatio = mTrackSVG.
W() / mTrackSVG.
H();
+ 1574 auto handleAspectRatio = mHandleSVG.
W() / mHandleSVG.
H();
+ 1575 auto handleOverTrackHeight = mHandleSVG.
H() / mTrackSVG.
H();
+
+ 1577 IRECT handleBoundsAtMidPoint;
+
+ 1579 if (mDirection == EDirection::Vertical)
+
+
+
+ 1583 handleBoundsAtMidPoint = mRECT.
GetCentredInside(mRECT.
H() * handleAspectRatio * handleOverTrackHeight, mRECT.
H() * handleOverTrackHeight);
+ 1584 mHandleBoundsAtMax = { handleBoundsAtMidPoint.L, mTrackSVGBounds.T, handleBoundsAtMidPoint.R, mTrackSVGBounds.T + handleBoundsAtMidPoint.
H() };
+ 1585 mTrackBounds = mTrackSVGBounds.
GetPadded(0, -handleBoundsAtMidPoint.
H(), 0, 0);
+
+
+
+
+ 1590 auto handleHeight = mTrackSVGBounds.
H() * handleOverTrackHeight;
+ 1591 handleBoundsAtMidPoint = mRECT.
GetCentredInside(handleHeight * handleAspectRatio, handleHeight);
+ 1592 auto halfHeight = handleBoundsAtMidPoint.
H() / 2.f;
+ 1593 mHandleBoundsAtMax = { mTrackSVGBounds.R - handleBoundsAtMidPoint.
W(), mTrackSVGBounds.
MH() - halfHeight, mTrackSVGBounds.R, mTrackSVGBounds.
MH() + halfHeight };
+ 1594 mTrackBounds = mTrackSVGBounds.
GetPadded(-handleBoundsAtMidPoint.
W(), 0, 0, 0);
+
+
+
+
- 1600 IRECT r = mHandleBoundsAtMax;
-
- 1602 if (mDirection == EDirection::Vertical)
-
- 1604 float offs = (1.f - (float) value) * mTrackBounds.
H();
-
-
-
-
-
- 1610 float offs = (1.f - (float) value) * mTrackBounds.
W();
-
-
-
-
-
-
-
- 1618#pragma mark - BITMAP CONTROLS
+ 1600IRECT ISVGSliderControl::GetHandleBounds(
double value)
const
+
+
+
+
+ 1605 IRECT r = mHandleBoundsAtMax;
+
+ 1607 if (mDirection == EDirection::Vertical)
+
+ 1609 float offs = (1.f - (float) value) * mTrackBounds.
H();
+
+
+
+
+
+ 1615 float offs = (1.f - (float) value) * mTrackBounds.
W();
+
+
+
- 1620IBButtonControl::IBButtonControl(
float x,
float y,
const IBitmap& bitmap, IActionFunction aF)
-
-
-
- 1624 AttachIControl(
this);
-
-
- 1627IBButtonControl::IBButtonControl(
const IRECT& bounds,
const IBitmap& bitmap, IActionFunction aF)
-
-
-
- 1631 AttachIControl(
this);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ 1623#pragma mark - BITMAP CONTROLS
+
+ 1625IBButtonControl::IBButtonControl(
float x,
float y,
const IBitmap& bitmap, IActionFunction aF)
+
+
+
+ 1629 AttachIControl(
this);
+
+
+ 1632IBButtonControl::IBButtonControl(
const IRECT& bounds,
const IBitmap& bitmap, IActionFunction aF)
+
+
+
+ 1636 AttachIControl(
this);
+
+
+
+
+
+
+
+
+
+
+
+
- 1650 if (mBitmap.
N() > 1)
-
-
-
-
-
-
-
-
-
-
- 1661IBSliderControl::IBSliderControl(
float x,
float y,
float trackLength,
const IBitmap& handleBitmap,
const IBitmap& trackBitmap,
int paramIdx, EDirection dir,
double gearing)
-
- 1663 dir == EDirection::Vertical ? handleBitmap.W() : trackLength,
- 1664 dir == EDirection::Vertical ? trackLength : handleBitmap.H()),
- 1665 paramIdx, dir, gearing,
- 1666 float(dir == EDirection::Vertical ? handleBitmap.H() : handleBitmap.W()))
-
- 1668, mTrackBitmap(trackBitmap)
-
-
-
-
- 1673IBSliderControl::IBSliderControl(
const IRECT& bounds,
const IBitmap& handleBitmap,
const IBitmap& trackBitmap,
int paramIdx, EDirection dir,
double gearing)
- 1674:
ISliderControlBase(bounds, paramIdx, dir, gearing, float(dir == EDirection::Vertical ? handleBitmap.H() : handleBitmap.W()))
-
- 1676, mTrackBitmap(trackBitmap)
-
-
-
-
-
+
+
+
+
+
+ 1655 if (mBitmap.
N() > 1)
+
+
+
+
+
+
+
+
+
+
+ 1666IBSliderControl::IBSliderControl(
float x,
float y,
float trackLength,
const IBitmap& handleBitmap,
const IBitmap& trackBitmap,
int paramIdx, EDirection dir,
double gearing)
+
+ 1668 dir == EDirection::Vertical ? handleBitmap.W() : trackLength,
+ 1669 dir == EDirection::Vertical ? trackLength : handleBitmap.H()),
+ 1670 paramIdx, dir, gearing,
+ 1671 float(dir == EDirection::Vertical ? handleBitmap.H() : handleBitmap.W()))
+
+ 1673, mTrackBitmap(trackBitmap)
+
+
+
+
+ 1678IBSliderControl::IBSliderControl(
const IRECT& bounds,
const IBitmap& handleBitmap,
const IBitmap& trackBitmap,
int paramIdx, EDirection dir,
double gearing)
+ 1679:
ISliderControlBase(bounds, paramIdx, dir, gearing, float(dir == EDirection::Vertical ? handleBitmap.H() : handleBitmap.W()))
+
+ 1681, mTrackBitmap(trackBitmap)
-
-
-
- 1686 g.
DrawBitmap(mBitmap, GetHandleBounds(), 1, &mBlend);
-
-
- 1689IRECT IBSliderControl::GetHandleBounds(
double value)
const
-
-
-
-
- 1694 IRECT r(mTrackBounds.L, mTrackBounds.T, mBitmap);
-
- 1696 if (mDirection == EDirection::Vertical)
- 1697 r.
Translate(0.f, (1.f -
static_cast<float>(value)) * (mTrackBounds.
H() -
static_cast<float>(mBitmap.
H())));
-
- 1699 r.
Translate(
static_cast<float>(value) * (mTrackBounds.
W() -
static_cast<float>(mBitmap.
W())), 0.f);
-
-
-
-
-
-
- 1706 if (mDirection == EDirection::Vertical)
-
-
-
-
-
- 1712 const float halfWidth =
static_cast<float>(mBitmap.
W()) / 2.f;
-
-
-
-
-
-
-
-
-
- 1722 const float halfHeight =
static_cast<float>(mBitmap.
H()) / 2.f;
-
-
-
-
-
-
-
-
-
- 1732 const double angle = -130.0 +
GetValue() * 260.0;
-
-
-
- 1736IBTextControl::IBTextControl(
const IRECT& bounds,
const IBitmap& bitmap,
const IText& text,
const char* str,
int charWidth,
int charHeight,
int charOffset,
bool multiLine,
bool vCenter, EBlend blend)
-
-
- 1739, mCharWidth(charWidth)
- 1740, mCharHeight(charHeight)
- 1741, mCharOffset(charOffset)
- 1742, mMultiLine(multiLine)
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+ 1691 g.
DrawBitmap(mBitmap, GetHandleBounds(), 1, &mBlend);
+
+
+ 1694IRECT IBSliderControl::GetHandleBounds(
double value)
const
+
+
+
+
+ 1699 IRECT r(mTrackBounds.L, mTrackBounds.T, mBitmap);
+
+ 1701 if (mDirection == EDirection::Vertical)
+ 1702 r.
Translate(0.f, (1.f -
static_cast<float>(value)) * (mTrackBounds.
H() -
static_cast<float>(mBitmap.
H())));
+
+ 1704 r.
Translate(
static_cast<float>(value) * (mTrackBounds.
W() -
static_cast<float>(mBitmap.
W())), 0.f);
+
+
+
+
+
+
+ 1711 if (mDirection == EDirection::Vertical)
+
+
+
+
+
+ 1717 const float halfWidth =
static_cast<float>(mBitmap.
W()) / 2.f;
+
+
+
+
+
+
+
+
+
+ 1727 const float halfHeight =
static_cast<float>(mBitmap.
H()) / 2.f;
+
+
+
+
+
+
+
+
+
+ 1737 const double angle = -130.0 +
GetValue() * 260.0;
+
+
+
+ 1741IBTextControl::IBTextControl(
const IRECT& bounds,
const IBitmap& bitmap,
const IText& text,
const char* str,
int charWidth,
int charHeight,
int charOffset,
bool multiLine,
bool vCenter, EBlend blend)
+
+
+ 1744, mCharWidth(charWidth)
+ 1745, mCharHeight(charHeight)
+ 1746, mCharOffset(charOffset)
+ 1747, mMultiLine(multiLine)
+
- 1750 g.
DrawBitmapedText(mBitmap, mRECT, mText, &mBlend, mStr.Get(), mVCentre, mMultiLine, mCharWidth, mCharHeight, mCharOffset);
+
-
+
-
-
-
-
-
-
- 1761 pos = stream.
Get(&d, pos);
-
- 1763 if (mResponse == EResponse::Log)
-
- 1765 auto lowPointAbs = std::fabs(mLowRangeDB);
- 1766 auto rangeDB = std::fabs(mHighRangeDB - mLowRangeDB);
- 1767 for (
auto c = d.chanOffset; c < (d.chanOffset + d.nChans); c++)
-
- 1769 auto avg = d.vals[c].second;
-
- 1771 auto linearPos = (ampValue + lowPointAbs)/rangeDB;
-
-
-
-
-
- 1777 for (
auto c = d.chanOffset; c < (d.chanOffset + d.nChans); c++)
-
- 1779 auto avg = d.vals[c].second;
-
-
-
-
-
-
-
+ 1755 g.
DrawBitmapedText(mBitmap, mRECT, mText, &mBlend, mStr.Get(), mVCentre, mMultiLine, mCharWidth, mCharHeight, mCharOffset);
+
+
+
+
+
+
+
+
+
+
+ 1766 pos = stream.
Get(&d, pos);
+
+ 1768 if (mResponse == EResponse::Log)
+
+ 1770 auto lowPointAbs = std::fabs(mLowRangeDB);
+ 1771 auto rangeDB = std::fabs(mHighRangeDB - mLowRangeDB);
+ 1772 for (
auto c = d.chanOffset; c < (d.chanOffset + d.nChans); c++)
+
+ 1774 auto avg = d.vals[c].second;
+
+ 1776 auto linearPos = (ampValue + lowPointAbs)/rangeDB;
+
+
+
+
+
+ 1782 for (
auto c = d.chanOffset; c < (d.chanOffset + d.nChans); c++)
+
+ 1784 auto avg = d.vals[c].second;
+
+
+
+
+
+
+
A collection of IControls for common UI widgets, such as knobs, sliders, switches.
-void Draw(IGraphics &g) override
Draw the control to the graphics context.
-void OnMsgFromDelegate(int msgTag, int dataSize, const void *pData) override
Implement to receive messages sent to the control, see IEditorDelegate:SendControlMsgFromDelegate()
-void OnResize() override
Called when IControl is constructed or resized using SetRect().
-void Draw(IGraphics &g) override
Draw the control to the graphics context.
-IBSwitchControl(float x, float y, const IBitmap &bitmap, int paramIdx=kNoParameter)
Constructs a bitmap switch control.
-void OnMouseDown(float x, float y, const IMouseMod &mod) override
Implement this method to respond to a mouse down event on this control.
-void Draw(IGraphics &g) override
Draw the control to the graphics context.
+void Draw(IGraphics &g) override
Draw the control to the graphics context.
+void OnMsgFromDelegate(int msgTag, int dataSize, const void *pData) override
Implement to receive messages sent to the control, see IEditorDelegate:SendControlMsgFromDelegate()
+void OnResize() override
Called when IControl is constructed or resized using SetRect().
+void Draw(IGraphics &g) override
Draw the control to the graphics context.
+IBSwitchControl(float x, float y, const IBitmap &bitmap, int paramIdx=kNoParameter)
Constructs a bitmap switch control.
+void OnMouseDown(float x, float y, const IMouseMod &mod) override
Implement this method to respond to a mouse down event on this control.
+void Draw(IGraphics &g) override
Draw the control to the graphics context.
A base interface to be combined with IControl for bitmap-based controls "IBControls",...
void AttachIControl(IControl *pControl)
Call in the constructor of your IBControl to link the IBitmapBase and IControl.
User-facing bitmap abstraction that you use to manage bitmap data, independant of draw class/platform...
@@ -1947,16 +1952,16 @@
const char * GetName() const
Returns the parameter's name.
void GetDisplayWithLabel(WDL_String &display, bool withDisplayText=true) const
Fills the WDL_String the value of the parameter along with the label, e.g.
-
-
-void Draw(IGraphics &g) override
Draw the control to the graphics context.
-void Draw(IGraphics &g) override
Draw the control to the graphics context.
-void OnResize() override
Called when IControl is constructed or resized using SetRect().
-ISVGSliderControl(const IRECT &bounds, const ISVG &handleSvg, const ISVG &trackSVG, int paramIdx=kNoParameter, EDirection dir=EDirection::Vertical, double gearing=DEFAULT_GEARING)
Constructs an ISVGSliderControl.
-void Draw(IGraphics &g) override
Draw the control to the graphics context.
-ISVGSwitchControl(const IRECT &bounds, const std::initializer_list< ISVG > &svgs, int paramIdx=kNoParameter, IActionFunction aF=nullptr)
Constructs a SVG switch control.
-void Draw(IGraphics &g) override
Draw the control to the graphics context.
-ISVGToggleControl(const IRECT &bounds, IActionFunction aF, const ISVG &offImage, const ISVG &onImage)
Constructs an SVG button control, with an action function.
+
+
+void Draw(IGraphics &g) override
Draw the control to the graphics context.
+void Draw(IGraphics &g) override
Draw the control to the graphics context.
+void OnResize() override
Called when IControl is constructed or resized using SetRect().
+ISVGSliderControl(const IRECT &bounds, const ISVG &handleSvg, const ISVG &trackSVG, int paramIdx=kNoParameter, EDirection dir=EDirection::Vertical, double gearing=DEFAULT_GEARING)
Constructs an ISVGSliderControl.
+void Draw(IGraphics &g) override
Draw the control to the graphics context.
+ISVGSwitchControl(const IRECT &bounds, const std::initializer_list< ISVG > &svgs, int paramIdx=kNoParameter, IActionFunction aF=nullptr)
Constructs a SVG switch control.
+void Draw(IGraphics &g) override
Draw the control to the graphics context.
+ISVGToggleControl(const IRECT &bounds, IActionFunction aF, const ISVG &offImage, const ISVG &onImage)
Constructs an SVG button control, with an action function.
ISender is a utility class which can be used to defer data from the realtime audio processing and sen...
A base class for slider/fader controls, to handle mouse action and Sender.
void OnMouseDown(float x, float y, const IMouseMod &mod) override
Implement this method to respond to a mouse down event on this control.
@@ -1970,62 +1975,63 @@
-void OnMouseOut() override
Implement this method to respond to a mouseout event on this control.
-void OnResize() override
Called when IControl is constructed or resized using SetRect().
-void Draw(IGraphics &g) override
Draw the control to the graphics context.
-void OnMouseDown(float x, float y, const IMouseMod &mod) override
Implement this method to respond to a mouse down event on this control.
-void DrawWidget(IGraphics &g) override
Draw the IVControl main widget (override)
-void OnMouseOver(float x, float y, const IMouseMod &mod) override
Implement this method to respond to a mouseover event on this control.
-void Draw(IGraphics &g) override
Draw the control to the graphics context.
-void DrawWidget(IGraphics &g) override
Draw the IVControl main widget (override)
-void OnInit() override
Called just prior to when the control is attached, after its delegate and graphics member variable se...
-IVGroupControl(const IRECT &bounds, const char *label="", float labelOffset=10.f, const IVStyle &style=DEFAULT_STYLE, IContainerBase::AttachFunc attachFunc=nullptr, IContainerBase::ResizeFunc resizeFunc=nullptr)
Construct the group control.
-void SetBoundsBasedOnGroup(const char *groupName, float padL, float padT, float padR, float padB)
Set the bounds of the group control based on the area occupied by the controls in a particular group.
-void OnResize() override
Called when IControl is constructed or resized using SetRect().
-void OnInit() override
Called just prior to when the control is attached, after its delegate and graphics member variable se...
+void OnMouseOut() override
Implement this method to respond to a mouseout event on this control.
+void OnResize() override
Called when IControl is constructed or resized using SetRect().
+void Draw(IGraphics &g) override
Draw the control to the graphics context.
+void OnMouseDown(float x, float y, const IMouseMod &mod) override
Implement this method to respond to a mouse down event on this control.
+void DrawWidget(IGraphics &g) override
Draw the IVControl main widget (override)
+void OnMouseOver(float x, float y, const IMouseMod &mod) override
Implement this method to respond to a mouseover event on this control.
+void Draw(IGraphics &g) override
Draw the control to the graphics context.
+void DrawWidget(IGraphics &g) override
Draw the IVControl main widget (override)
+void OnInit() override
Called just prior to when the control is attached, after its delegate and graphics member variable se...
+IVGroupControl(const IRECT &bounds, const char *label="", float labelOffset=10.f, const IVStyle &style=DEFAULT_STYLE, IContainerBase::AttachFunc attachFunc=nullptr, IContainerBase::ResizeFunc resizeFunc=nullptr)
Construct the group control.
+void SetBoundsBasedOnGroup(const char *groupName, float padL, float padT, float padR, float padB)
Set the bounds of the group control based on the area occupied by the controls in a particular group.
+void OnResize() override
Called when IControl is constructed or resized using SetRect().
+void OnInit() override
Called just prior to when the control is attached, after its delegate and graphics member variable se...
void Draw(IGraphics &g) override
Draw the control to the graphics context.
-void OnMouseOver(float x, float y, const IMouseMod &mod) override
Implement this method to respond to a mouseover event on this control.
-bool IsHit(float x, float y) const override
Hit test the control.
-void OnResize() override
Called when IControl is constructed or resized using SetRect().
+void OnMouseOver(float x, float y, const IMouseMod &mod) override
Implement this method to respond to a mouseover event on this control.
+bool IsHit(float x, float y) const override
Hit test the control.
+void OnResize() override
Called when IControl is constructed or resized using SetRect().
virtual void DrawWidget(IGraphics &g) override
Draw the IVControl main widget (override)
-void OnMouseDblClick(float x, float y, const IMouseMod &mod) override
Implement this method to respond to a mouse double click event on this control.
-void OnMouseUp(float x, float y, const IMouseMod &mod) override
Implement this method to respond to a mouse up event on this control.
+void OnMouseDblClick(float x, float y, const IMouseMod &mod) override
Implement this method to respond to a mouse double click event on this control.
+void OnMouseUp(float x, float y, const IMouseMod &mod) override
Implement this method to respond to a mouse up event on this control.
virtual IRECT GetKnobDragBounds() override
Get the area for which mouse deltas will be used to calculate the amount dragging changes the control...
-void OnMouseDown(float x, float y, const IMouseMod &mod) override
Implement this method to respond to a mouse down event on this control.
-void SetDirty(bool push, int valIdx=kNoValIdx) override
Mark the control as dirty, i.e.
+void OnMouseDown(float x, float y, const IMouseMod &mod) override
Implement this method to respond to a mouse down event on this control.
+void SetDirty(bool push, int valIdx=kNoValIdx) override
Mark the control as dirty, i.e.
void Draw(IGraphics &g) override
Draw the control to the graphics context.
-void Draw(IGraphics &g) override
Draw the control to the graphics context.
-void OnResize() override
Called when IControl is constructed or resized using SetRect().
-void AddPlotFunc(const IColor &color, const IPlotFunc &func)
add a new function to the plot
-IVPlotControl(const IRECT &bounds, const std::initializer_list< Plot > &funcs, int numPoints, const char *label="", const IVStyle &style=DEFAULT_STYLE, float min=-1., float max=1., bool useLayer=false)
Constructs an IVPlotControl.
-std::function< double(double)> IPlotFunc
IVPlotControl passes values between 0 and 1 to this object, that are the plot normalized x values.
+void Draw(IGraphics &g) override
Draw the control to the graphics context.
+void OnResize() override
Called when IControl is constructed or resized using SetRect().
+void AddPlotFunc(const IColor &color, const IPlotFunc &func)
add a new function to the plot
+IVPlotControl(const IRECT &bounds, const std::initializer_list< Plot > &funcs, int numPoints, const char *label="", const IVStyle &style=DEFAULT_STYLE, float min=-1., float max=1., bool useLayer=false)
Constructs an IVPlotControl.
+std::function< double(double)> IPlotFunc
IVPlotControl passes values between 0 and 1 to this object, that are the plot normalized x values.
-void OnMouseOver(float x, float y, const IMouseMod &mod) override
Implement this method to respond to a mouseover event on this control.
-void OnMouseDrag(float x, float y, float dX, float dY, const IMouseMod &mod) override
Implement this method to respond to a mouse drag event on this control.
-void OnMouseDown(float x, float y, const IMouseMod &mod) override
Implement this method to respond to a mouse down event on this control.
-void Draw(IGraphics &g) override
Draw the control to the graphics context.
-void DrawWidget(IGraphics &g) override
Draw the IVControl main widget (override)
+void OnMouseOver(float x, float y, const IMouseMod &mod) override
Implement this method to respond to a mouseover event on this control.
+void OnMouseDrag(float x, float y, float dX, float dY, const IMouseMod &mod) override
Implement this method to respond to a mouse drag event on this control.
+void OnMouseDown(float x, float y, const IMouseMod &mod) override
Implement this method to respond to a mouse down event on this control.
+void Draw(IGraphics &g) override
Draw the control to the graphics context.
+void DrawWidget(IGraphics &g) override
Draw the IVControl main widget (override)
+IVSlideSwitchControl(const IRECT &bounds, int paramIdx=kNoParameter, const char *label="", const IVStyle &style=DEFAULT_STYLE, bool valueInButton=false, EDirection direction=EDirection::Horizontal)
Construct a new IVSlideSwitchControl, with a parameter.
virtual void DrawWidget(IGraphics &g) override
Draw the IVControl main widget (override)
void SetDirty(bool push, int valIdx=kNoValIdx) override
Mark the control as dirty, i.e.
void Draw(IGraphics &g) override
Draw the control to the graphics context.
void OnResize() override
Called when IControl is constructed or resized using SetRect().
-void OnResize() override
Called when IControl is constructed or resized using SetRect().
-void OnMouseOver(float x, float y, const IMouseMod &mod) override
Implement this method to respond to a mouseover event on this control.
-void SetDirty(bool push, int valIdx=kNoValIdx) override
Mark the control as dirty, i.e.
-void OnMouseUp(float x, float y, const IMouseMod &mod) override
Implement this method to respond to a mouse up event on this control.
-void OnMouseDown(float x, float y, const IMouseMod &mod) override
Implement this method to respond to a mouse down event on this control.
-void OnMouseDblClick(float x, float y, const IMouseMod &mod) override
Implement this method to respond to a mouse double click event on this control.
-virtual void DrawWidget(IGraphics &g) override
Draw the IVControl main widget (override)
-bool IsHit(float x, float y) const override
Hit test the control.
-void OnInit() override
Called just prior to when the control is attached, after its delegate and graphics member variable se...
-void Draw(IGraphics &g) override
Draw the control to the graphics context.
+void OnResize() override
Called when IControl is constructed or resized using SetRect().
+void OnMouseOver(float x, float y, const IMouseMod &mod) override
Implement this method to respond to a mouseover event on this control.
+void SetDirty(bool push, int valIdx=kNoValIdx) override
Mark the control as dirty, i.e.
+void OnMouseUp(float x, float y, const IMouseMod &mod) override
Implement this method to respond to a mouse up event on this control.
+void OnMouseDown(float x, float y, const IMouseMod &mod) override
Implement this method to respond to a mouse down event on this control.
+void OnMouseDblClick(float x, float y, const IMouseMod &mod) override
Implement this method to respond to a mouse double click event on this control.
+virtual void DrawWidget(IGraphics &g) override
Draw the IVControl main widget (override)
+bool IsHit(float x, float y) const override
Hit test the control.
+void OnInit() override
Called just prior to when the control is attached, after its delegate and graphics member variable se...
+void Draw(IGraphics &g) override
Draw the control to the graphics context.
void OnInit() override
Called just prior to when the control is attached, after its delegate and graphics member variable se...
bool IsHit(float x, float y) const override
Hit test the control.
@@ -2033,7 +2039,7 @@
void SetDirty(bool push, int valIdx=kNoValIdx) override
Mark the control as dirty, i.e.
void OnResize() override
Called when IControl is constructed or resized using SetRect().
void Draw(IGraphics &g) override
Draw the control to the graphics context.
-A vector "tab" multi switch control.
+A vector "tab" multi switch control.
void OnResize() override
Called when IControl is constructed or resized using SetRect().
virtual bool IsHit(float x, float y) const override
Hit test the control.
void OnMouseDown(float x, float y, const IMouseMod &mod) override
Implement this method to respond to a mouse down event on this control.
@@ -2050,12 +2056,12 @@
void OnMouseOver(float x, float y, const IMouseMod &mod) override
Implement this method to respond to a mouseover event on this control.
void DrawWidget(IGraphics &g) override
Draw the IVControl main widget (override)
virtual void DrawBackground(IGraphics &g, const IRECT &r) override
Draw the IVControl background (usually transparent)
-void OnMouseDown(float x, float y, const IMouseMod &mod) override
Implement this method to respond to a mouse down event on this control.
-void DrawWidget(IGraphics &g) override
Draw the IVControl main widget (override)
-void OnMouseDrag(float x, float y, float dX, float dY, const IMouseMod &mod) override
Implement this method to respond to a mouse drag event on this control.
-void OnResize() override
Called when IControl is constructed or resized using SetRect().
-void Draw(IGraphics &g) override
Draw the control to the graphics context.
-void OnMouseUp(float x, float y, const IMouseMod &mod) override
Implement this method to respond to a mouse up event on this control.
+void OnMouseDown(float x, float y, const IMouseMod &mod) override
Implement this method to respond to a mouse down event on this control.
+void DrawWidget(IGraphics &g) override
Draw the IVControl main widget (override)
+void OnMouseDrag(float x, float y, float dX, float dY, const IMouseMod &mod) override
Implement this method to respond to a mouse drag event on this control.
+void OnResize() override
Called when IControl is constructed or resized using SetRect().
+void Draw(IGraphics &g) override
Draw the control to the graphics context.
+void OnMouseUp(float x, float y, const IMouseMod &mod) override
Implement this method to respond to a mouse up event on this control.
A base interface to be combined with IControl for vectorial controls "IVControls",...
virtual void DrawPressableShape(IGraphics &g, EVShape shape, const IRECT &bounds, bool pressed, bool mouseOver, bool disabled)
Call one of the DrawPressableShape methods.
void SetColor(EVColor colorIdx, const IColor &color)
Set one of the IVColors that style the IVControl.
diff --git a/_i_controls_8h.html b/_i_controls_8h.html
index 7134fefc..e6c96f84 100644
--- a/_i_controls_8h.html
+++ b/_i_controls_8h.html
@@ -222,7 +222,7 @@