UIKnob

Undocumented in source.
class UIKnob : UIElement , IParameterListener {}

Constructors

this
this(UIContext context, Parameter param)
Undocumented in source.

Destructor

~this
~this()
Undocumented in source.

Members

Functions

clearCrosspoints
void clearCrosspoints()
Undocumented in source. Be warned that the author may not have intended to support it.
containsPoint
bool containsPoint(int x, int y)
Undocumented in source. Be warned that the author may not have intended to support it.
drawKnob
void drawKnob(ImageRef!RGBA diffuseMap, ImageRef!L16 depthMap, ImageRef!RGBA materialMap, box2i[] dirtyRects)
Undocumented in source. Be warned that the author may not have intended to support it.
drawTrail
void drawTrail(ImageRef!RGBA diffuseMap, ImageRef!L16 depthMap, ImageRef!RGBA materialMap, box2i[] dirtyRects)
Undocumented in source. Be warned that the author may not have intended to support it.
getBaseAngle
float getBaseAngle()

Max angle of the trail, fit for aaFillSector.

getCenter
vec2f getCenter()
Undocumented in source. Be warned that the author may not have intended to support it.
getMaxAngle
float getMaxAngle()

Min angle of the trail, fit for aaFillSector.

getMinAngle
float getMinAngle()

Min angle of the trail, fit for aaFillSector.

getRadius
float getRadius()
Undocumented in source. Be warned that the author may not have intended to support it.
getSubsquare
box2i getSubsquare()
getValueAngle
float getValueAngle()

Angle of the trail, fit for aaFillSector.

onAnimate
void onAnimate(double dt, double time)
Undocumented in source. Be warned that the author may not have intended to support it.
onBeginDrag
void onBeginDrag()
Undocumented in source. Be warned that the author may not have intended to support it.
onBeginParameterEdit
void onBeginParameterEdit(Parameter sender)
Undocumented in source. Be warned that the author may not have intended to support it.
onBeginParameterHover
void onBeginParameterHover(Parameter sender)
Undocumented in source. Be warned that the author may not have intended to support it.
onDrawPBR
void onDrawPBR(ImageRef!RGBA diffuseMap, ImageRef!L16 depthMap, ImageRef!RGBA materialMap, box2i[] dirtyRects)
Undocumented in source. Be warned that the author may not have intended to support it.
onEndParameterEdit
void onEndParameterEdit(Parameter sender)
Undocumented in source. Be warned that the author may not have intended to support it.
onEndParameterHover
void onEndParameterHover(Parameter sender)
Undocumented in source. Be warned that the author may not have intended to support it.
onMouseClick
Click onMouseClick(int x, int y, int button, bool isDoubleClick, MouseState mstate)
Undocumented in source. Be warned that the author may not have intended to support it.
onMouseDrag
void onMouseDrag(int x, int y, int dx, int dy, MouseState mstate)
Undocumented in source. Be warned that the author may not have intended to support it.
onMouseEnter
void onMouseEnter()
Undocumented in source. Be warned that the author may not have intended to support it.
onMouseExit
void onMouseExit()
Undocumented in source. Be warned that the author may not have intended to support it.
onMouseMove
void onMouseMove(int x, int y, int dx, int dy, MouseState mstate)
Undocumented in source. Be warned that the author may not have intended to support it.
onParameterChanged
void onParameterChanged(Parameter sender)
Undocumented in source. Be warned that the author may not have intended to support it.
onStopDrag
void onStopDrag()
Undocumented in source. Be warned that the author may not have intended to support it.
roundParamValue
double roundParamValue(double normalizedValue, MouseState mstate)

Override this to round the parameter normalized value to some particular values. For example for a special drag movement with right-click or control-click. Default does nothing.

Manifest constants

defaultSensivity
enum defaultSensivity;
Undocumented in source.

Static functions

angleConvert
float angleConvert(float angle)

Exists because public angle properties are given in a different referential, where 0 is at the top

Variables

LEDDepth
ushort LEDDepth;
Undocumented in source.
LEDDiffuseLit
RGBA LEDDiffuseLit;
Undocumented in source.
LEDDiffuseUnlit
RGBA LEDDiffuseUnlit;
Undocumented in source.
LEDDistanceFromCenter
float LEDDistanceFromCenter;
Undocumented in source.
LEDDistanceFromCenterDragged
float LEDDistanceFromCenterDragged;
Undocumented in source.
LEDMaterial
RGBA LEDMaterial;
Undocumented in source.
LEDRadiusMax
float LEDRadiusMax;
Undocumented in source.
LEDRadiusMin
float LEDRadiusMin;
Undocumented in source.
_displacementInHeightDebt
double _displacementInHeightDebt;
Undocumented in source.
_mousePosOnLast0Cross
float _mousePosOnLast0Cross;
Undocumented in source.
_mousePosOnLast1Cross
float _mousePosOnLast1Cross;
Undocumented in source.
_normalizedValueWhileDragging
float _normalizedValueWhileDragging;
Undocumented in source.
_param
Parameter _param;

The parameter this knob is linked with.

_pushedAnimation
float _pushedAnimation;
Undocumented in source.
_shouldBeHighlighted
bool _shouldBeHighlighted;
Undocumented in source.
animationTimeConstant
float animationTimeConstant;
Undocumented in source.
emissive
ubyte emissive;
Undocumented in source.
emissiveDragged
ubyte emissiveDragged;
Undocumented in source.
emissiveHovered
ubyte emissiveHovered;
Undocumented in source.
hasAlternateTrail
bool hasAlternateTrail;
Undocumented in source.
hasTrail
bool hasTrail;
Undocumented in source.
knobDiffuse
RGBA knobDiffuse;
Undocumented in source.
knobMaterial
RGBA knobMaterial;
Undocumented in source.
knobRadius
float knobRadius;
Undocumented in source.
litTrailDiffuse
RGBA litTrailDiffuse;
Undocumented in source.
litTrailDiffuseAlt
RGBA litTrailDiffuseAlt;
Undocumented in source.
numLEDs
int numLEDs;
Undocumented in source.
sensivity
float sensivity;

Sensivity: given a mouse movement in 100th of the height of the knob, how much should the normalized parameter change.

style
KnobStyle style;
Undocumented in source.
trailBaseAngle
float trailBaseAngle;
Undocumented in source.
trailMaxAngle
float trailMaxAngle;
Undocumented in source.
trailMinAngle
float trailMinAngle;
Undocumented in source.
trailOffsetX
float trailOffsetX;
Undocumented in source.
trailOffsetY
float trailOffsetY;
Undocumented in source.
trailRadiusMax
float trailRadiusMax;
Undocumented in source.
trailRadiusMin
float trailRadiusMin;
Undocumented in source.
unlitTrailDiffuse
RGBA unlitTrailDiffuse;
Undocumented in source.

Inherited Members

From UIElement

~this
~this()
Undocumented in source.
setId
void setId(const(char)[] identifier)

Set this element ID. All UIElement can have a string as unique identifier, similar to HTML. There is a maximum of 63 characters for this id though. This ID is supposed to be unique. If it isn't, a search by ID will return null. Chrome rules applies: can't contain any space characters.

getId
const(char)[] getId()

Get this element ID. All UIElement can have a string as unique identifier, similar to HTML. Returns the empty string "" if there is no ID. Note: this return an interior slice, and could be invalidated if the ID is reassigned.

id
const(char)[] id()
void id(const(char)[] identifier)

Properties to access this element ID.

hasId
bool hasId()
getElementById
UIElement getElementById(const(char)* id)

Search subtree for an UIElement with ID id. Undefined Behaviour if ID are not unique.

renderRaw
void renderRaw(ImageRef!RGBA rawMap, box2i[] areasToUpdate)

This method is called for each item in the drawlist that was visible and has a dirty Raw layer. This is called after compositing, starting from the buffer output by the Compositor.

renderPBR
void renderPBR(ImageRef!RGBA diffuseMap, ImageRef!L16 depthMap, ImageRef!RGBA materialMap, box2i[] areasToUpdate)
reflow
void reflow()

The goal of this method is to update positions of childrens. It is called whenever _position changes.

position
box2i position()
position
void position(box2i p)

Changes the position of the element. This calls reflow if that position has changed. IMPORTANT: As of today you are not allowed to assign a position outside the extent of the window. This is purely a Dplug limitation.

position
void position(box2f p)

Changes the position of the element. This calls reflow if that position has changed. Note: Widget coordinates are always integer coordinates. The input rectangle is rounded to nearest integer.

child
UIElement child(int n)
addChild
void addChild(UIElement element)

Adds an UIElement The addChild method is mandatory. Such a child MUST be created through dplug.core.nogc.mallocEmplace. Note: to display a newly added widget, use position setter.

removeChild
void removeChild(UIElement element)

Removes a child (but does not destroy it, you take back the ownership of it). Useful for creating dynamic UI's. MAYDO: there are restrictions for where this is allowed. Find them.

onMouseClick
Click onMouseClick(int x, int y, int button, bool isDoubleClick, MouseState mstate)

onMouseClick is called for every new click, whether or not you are in a dragging operation. This function is meant to be overriden.

onMouseWheel
bool onMouseWheel(int x, int y, int wheelDeltaX, int wheelDeltaY, MouseState mstate)

Mouse wheel was turned. This function is meant to be overriden. It should return true if the wheel is handled.

onMouseMove
void onMouseMove(int x, int y, int dx, int dy, MouseState mstate)

Called when mouse move over this Element. This function is meant to be overriden.

onBeginDrag
void onBeginDrag()

Called when clicked with left/middle/right button This function is meant to be overriden. Between onBeginDrag and onStopDrag, isDragged will return true.

onMouseDrag
void onMouseDrag(int x, int y, int dx, int dy, MouseState mstate)

Called when mouse drag this Element. This function is meant to be overriden.

onStopDrag
void onStopDrag()

Called once a dragging operation is finished. This function is meant to be overriden. Between onBeginDrag and onStopDrag, isDragged will return true.

onMouseEnter
void onMouseEnter()

Called when mouse enter this Element. This function is meant to be overriden. Between onMouseEnter and onMouseExit, isMouseOver will return true.

onMouseExit
void onMouseExit()

Called when mouse enter this Element. This function is meant to be overriden. Between onMouseEnter and onMouseExit, isMouseOver will return true.

onFocusEnter
void onFocusEnter()

Called when this Element is clicked and get the "focus" (ie. keyboard focus). This function is meant to be overriden.

onFocusExit
void onFocusExit()

Called when focus is lost because another Element was clicked. This widget then loose the "focus" (ie. keyboard focus). This function is meant to be overriden.

onKeyDown
bool onKeyDown(Key key)

Called when a key is pressed. This event bubbles down-up until being processed. Return true if treating the message.

onKeyUp
bool onKeyUp(Key key)

Called when a key is pressed. This event bubbles down-up until being processed. Return true if treating the message.

contains
bool contains(int x, int y)

Check if given point is within the widget. Override this to disambiguate clicks and mouse-over between widgets that would otherwise partially overlap.

mouseClick
bool mouseClick(int x, int y, int button, bool isDoubleClick, MouseState mstate)
Undocumented in source. Be warned that the author may not have intended to support it.
mouseRelease
void mouseRelease(int x, int y, int button, MouseState mstate)
Undocumented in source. Be warned that the author may not have intended to support it.
mouseWheel
bool mouseWheel(int x, int y, int wheelDeltaX, int wheelDeltaY, MouseState mstate)
Undocumented in source. Be warned that the author may not have intended to support it.
mouseMove
bool mouseMove(int x, int y, int dx, int dy, MouseState mstate, bool alreadyFoundMouseOver)
Undocumented in source. Be warned that the author may not have intended to support it.
keyDown
bool keyDown(Key key)
Undocumented in source. Be warned that the author may not have intended to support it.
keyUp
bool keyUp(Key key)
Undocumented in source. Be warned that the author may not have intended to support it.
animate
void animate(double dt, double time)
Undocumented in source. Be warned that the author may not have intended to support it.
context
UIContext context()
Undocumented in source. Be warned that the author may not have intended to support it.
isVisible
bool isVisible()

A widget is "visible" when it has a true visibility flag, and its parent is itself visible.

visibility
bool visibility()

Get visibility flag of the widget. A widget might still be invisible, if one of its parent is not visible.

visibility
void visibility(bool visible)

Change visibility flag of the widget. This show and hide all children of this UIElement, regardless of their position on screen, invalidating their graphics if need be much like a position change.

zOrder
int zOrder()
Undocumented in source. Be warned that the author may not have intended to support it.
setZOrder
alias setZOrder = zOrder
Undocumented in source.
zOrder
void zOrder(int zOrder)
Undocumented in source. Be warned that the author may not have intended to support it.
setDirtyWhole
void setDirtyWhole(UILayer layer)

Mark this element as wholly dirty.

setDirty
void setDirty(box2i rect, UILayer layer)

Mark a part of the element dirty. This part must be a subrect of its _position.

parent
UIElement parent()
topLevelParent
UIElement topLevelParent()
isMouseOver
bool isMouseOver()
isDragged
bool isDragged()
Undocumented in source. Be warned that the author may not have intended to support it.
isFocused
bool isFocused()
Undocumented in source. Be warned that the author may not have intended to support it.
drawsToPBR
bool drawsToPBR()
Undocumented in source. Be warned that the author may not have intended to support it.
drawsToRaw
bool drawsToRaw()
Undocumented in source. Be warned that the author may not have intended to support it.
isAnimated
bool isAnimated()
Undocumented in source. Be warned that the author may not have intended to support it.
isDrawAloneRaw
bool isDrawAloneRaw()
Undocumented in source. Be warned that the author may not have intended to support it.
isDrawAlonePBR
bool isDrawAlonePBR()
Undocumented in source. Be warned that the author may not have intended to support it.
getDrawLists
void getDrawLists(Vec!UIElement listRaw, Vec!UIElement listPBR)

Appends the Elements that should be drawn, in order. You should empty it before calling this function. Everything visible get into the draw list, but that doesn't mean they will get drawn if they don't overlap with a dirty area.

cursorWhenDragged
MouseCursor cursorWhenDragged()
Undocumented in source. Be warned that the author may not have intended to support it.
setCursorWhenDragged
void setCursorWhenDragged(MouseCursor mouseCursor)
Undocumented in source. Be warned that the author may not have intended to support it.
cursorWhenMouseOver
MouseCursor cursorWhenMouseOver()
Undocumented in source. Be warned that the author may not have intended to support it.
setCursorWhenMouseOver
void setCursorWhenMouseOver(MouseCursor mouseCursor)
Undocumented in source. Be warned that the author may not have intended to support it.
getUserPointer
void* getUserPointer(int pointerID)

Get a user pointer. Allow dplug:gui extensions.

setUserPointer
void setUserPointer(int pointerID, void* userPointer)

Set a user pointer. Allow dplug:gui extensions.

onDrawRaw
void onDrawRaw(ImageRef!RGBA rawMap, box2i[] dirtyRects)

Raw layer draw method. This gives you 1 surface cropped by _position for drawing. Note that you are not forced to draw to the surfaces at all.

onDrawPBR
void onDrawPBR(ImageRef!RGBA diffuseMap, ImageRef!L16 depthMap, ImageRef!RGBA materialMap, box2i[] dirtyRects)

PBR layer draw method. This gives you 3 surfaces cropped by _position for drawing. Note that you are not forced to draw all to the surfaces at all, in which case the below UIElement will be displayed.

onAnimate
void onAnimate(double dt, double time)

Called periodically for every UIElement. Override this to create animations. Using setDirty there allows to redraw an element continuously (like a meter or an animated object). Warning: Summing dt will not lead to a time that increase like time. time can go backwards if the window was reopen. time is guaranteed to increase as fast as system time but is not synced to audio time.

_parent
UIElement _parent;

Parent element. Following this chain gets to the root element.

_position
box2i _position;

Position is the graphical extent of the element, or something larger. An UIElement is not allowed though to draw further than its _position. For efficiency it's best to keep _position as small as feasible. This is an absolute "world" positioning data, that doesn't depend on the parent's position.

_children
Vec!UIElement _children;

The list of children UI elements.

_flags
immutable(uint) _flags;

Flags, for now immutable

_zOrder
int _zOrder;

Higher z-order = above other UIElement. By default, every UIElement have the same z-order. Because the sort is stable, tree traversal order is the default order (depth first). The children added last with addChild is considered above its siblings if you don't have legacyZOrder.

From IParameterListener

onParameterChanged
void onParameterChanged(Parameter sender)

A parameter value was changed, from the UI or the host (automation).

onBeginParameterEdit
void onBeginParameterEdit(Parameter sender)

A parameter value _starts_ being changed due to an UI element.

onEndParameterEdit
void onEndParameterEdit(Parameter sender)

Called when a parameter value _stops_ being changed.

onBeginParameterHover
void onBeginParameterHover(Parameter sender)
onEndParameterHover
void onEndParameterHover(Parameter sender)

Called when a widget that can changes this parameter is mouseover, and wants to signal that to the listeners.

Meta