G4P (GUI for Processing) 4.3.9
A set of GUI controls for your Processing sketch.
Loading...
Searching...
No Matches
g4p_controls.GKnob Class Reference
Inheritance diagram for g4p_controls.GKnob:

Public Member Functions

void draw ()
 
float getSensitivity ()
 
int getTurnMode ()
 
 GKnob (PApplet theApplet, float p0, float p1, float p2, float p3, float gripAmount)
 
boolean isIncludeOverBezel ()
 
boolean isOverArcOnly ()
 
boolean isShowArcOnly ()
 
boolean isShowTrack ()
 
void mouseEvent (MouseEvent event)
 
void setArcPolicy (boolean over_arc_only, boolean draw_arc_only, boolean overfullsize)
 
void setGripAmount (float gripAmount)
 
void setIncludeOverBezel (boolean overBezel)
 
void setOverArcOnly (boolean arcOnly)
 
void setSensitivity (float sensitivity)
 
void setShowArcOnly (boolean arcOnly)
 
void setShowTrack (boolean showTrack)
 
void setTurnMode (int mode)
 
void setTurnRange (float start, float end)
 
void setValue (float v)
 
- Public Member Functions inherited from g4p_controls.GValueControl
float getEasing ()
 
float getEndLimit ()
 
int getNbrTicks ()
 
int getPrecision ()
 
float getStartLimit ()
 
String getUnit ()
 
float getValueF ()
 
int getValueI ()
 
String getValueS ()
 
int getValueType ()
 
 GValueControl (PApplet theApplet, float p0, float p1, float p2, float p3)
 
boolean isShowLimits ()
 
boolean isShowTicks ()
 
boolean isShowValue ()
 
boolean isStickToTicks ()
 
void pre ()
 
void setEasing (float easeBy)
 
void setLimits (float initValue, float start, float end)
 
void setLimits (float start, float end)
 
void setLimits (int initValue, int start, int end)
 
void setLimits (int start, int end)
 
void setNbrTicks (int noOfTicks)
 
void setNumberFormat (int numberFormat)
 
void setNumberFormat (int numberFormat, int precision)
 
void setNumberFormat (int numberFormat, int precision, String unit)
 
void setPrecision (int nd)
 
void setShowDecor (boolean opaque, boolean ticks, boolean value, boolean limits)
 
void setShowLimits (boolean showLimits)
 
void setShowTicks (boolean showTicks)
 
void setShowValue (boolean showValue)
 
void setStickToTicks (boolean stickToTicks)
 
void setUnits (String units)
 
void setValue (float v)
 
- Public Member Functions inherited from g4p_controls.GAbstractControl
void addControl (GAbstractControl c)
 
void addControl (GAbstractControl c, float x, float y)
 
void addControl (GAbstractControl c, float x, float y, float angle)
 
void addControls (GAbstractControl... controls)
 
void addEventHandler (Object obj, String methodName)
 
void dispose ()
 
void draw ()
 
void forceBufferUpdate ()
 
 GAbstractControl (PApplet theApplet)
 
 GAbstractControl (PApplet theApplet, float p0, float p1)
 
 GAbstractControl (PApplet theApplet, float p0, float p1, float p2, float p3)
 
int getAlpha ()
 
int getCursorOver ()
 
float getCX ()
 
float getCY ()
 
float getHeight ()
 
int getLocalColorScheme ()
 
PApplet getPApplet ()
 
GAbstractControl getParent ()
 
PGraphics getSnapshot ()
 
GToolTip getTip ()
 
float getWidth ()
 
float getX ()
 
float getY ()
 
boolean hasFocus ()
 
boolean isDragging ()
 
boolean isEnabled ()
 
boolean isOpaque ()
 
boolean isVisible ()
 
void keyEvent (KeyEvent e)
 
void mouseEvent (MouseEvent event)
 
void moveTo (float px, float py)
 
void moveTo (float px, float py, GControlMode mode)
 
void post ()
 
void pre ()
 
void removeTip ()
 
boolean saveSnapshot ()
 
boolean saveSnapshot (String filename)
 
void setAlpha (int alpha)
 
void setAlpha (int alpha, boolean includeChildren)
 
void setCursorOver (int cursorOver)
 
void setEnabled (boolean enable)
 
void setFocus (boolean focus)
 
void setLocalColor (int colorNo, int color)
 
void setLocalColorScheme (int cs)
 
void setLocalColorScheme (int cs, boolean includeChildren)
 
void setOpaque (boolean opaque)
 
void setRotation (float angle)
 
void setRotation (float angle, GControlMode mode)
 
void setTip (GToolTip tt, float dx, float dy)
 
void setTip (GToolTip tt, GAlign ax, GAlign ay, float gap)
 
void setTip (String text, float dx, float dy)
 
void setTip (String text, GAlign ax, GAlign ay, float gap)
 
void setTipDisplayTime (long msecs)
 
void setTipHorz (boolean level)
 
void setTipText (String text)
 
void setVisible (boolean visible)
 
String toString ()
 

Protected Member Functions

float calcAngletoValue (float a)
 
float calcRealAngleFromXY (float px, float py)
 
void calculateHotSpot ()
 
float constrain360 (float a)
 
float constrainToTurnRange (float a)
 
float getAngleFromUser (float px, float py)
 
boolean isInTurnRange (float a)
 
float scaleValueToAngle (float v)
 
void updateBuffer ()
 
- Protected Member Functions inherited from g4p_controls.GValueControl
float calcParametricTarget (float pt)
 
float findNearestTickValueTo (float p)
 
String getNumericDisplayString (float number)
 
void setEpsilon ()
 
void updateDueToValueChanging ()
 
- Protected Member Functions inherited from g4p_controls.GAbstractControl
void addControlImpl (GAbstractControl c, float x, float y, float angle)
 
void addToParent (GAbstractControl p)
 
void calcTransformedOrigin (float px, float py)
 
void createEventHandler (Object handlerObj, String methodName, Class[] param_classes, String[] param_names)
 
void drawChildren ()
 
void fireEvent (Object... objects)
 
int focusObjectZ ()
 
PGraphics getBuffer ()
 
int getCurrHotSpot ()
 
AffineTransform getTransform (AffineTransform aff)
 
void hideTip ()
 
boolean isAvailable ()
 
boolean isDisplayable (int ascii)
 
boolean isSuitableForGroupControl (GAbstractControl control)
 
void loseFocus (GAbstractControl grabber)
 
void makeBuffer ()
 
void manageToolTip ()
 
void resize (int w, int h)
 
void setAvailable (boolean avail)
 
void setTextRenderingHints (Graphics2D g2d, int hint)
 
void setZ (int parentZ)
 
void showTip ()
 
void takeFocus ()
 
void updateBuffer ()
 
int whichHotSpot (float px, float py)
 

Protected Attributes

float angleTarget
 
float bezelRadius
 
float bezelWidth
 
boolean drawArcOnly = false
 
float endAng = 70
 
float gripRadius
 
float lastAngleTarget
 
float lastMouseAngle
 
int mode = CTRL_HORIZONTAL
 
float mouseAngle
 
boolean mouseOverArcOnly = false
 
boolean overIncludesBezel = true
 
float sensitivity = 1.0f
 
boolean showTrack = true
 
float startAng = 110
 
float startMouseX
 
float startMouseY
 
- Protected Attributes inherited from g4p_controls.GValueControl
float easing = 1.0f
 
float endLimit = 1
 
boolean limitsInvalid = true
 
int nbrTicks = 2
 
float offset
 
float parametricPos = 0.5f
 
float parametricTarget = 0.5f
 
int precision = 2
 
boolean showLimits = false
 
boolean showTicks = false
 
boolean showValue = false
 
StyledString ssEndLimit
 
StyledString ssStartLimit
 
StyledString ssValue
 
float startLimit = 0
 
boolean stickToTicks = false
 
String unit = ""
 
boolean valueInvalid = true
 
int valueType = DECIMAL
 
float wheelDelta = WHEEL_DELTA
 
- Protected Attributes inherited from g4p_controls.GAbstractControl
boolean allowChildren = true
 
boolean allowToolTips = true
 
int alphaLevel = G4P.globalAlpha
 
PGraphicsJava2D buffer = null
 
boolean bufferInvalid = true
 
LinkedList< GAbstractControlchildren = null
 
int currSpot = -1
 
int cursorOver = HAND
 
float cx
 
float cy
 
boolean dragging = false
 
Method eventHandlerMethod = null
 
String eventHandlerMethodName
 
Object eventHandlerObject = null
 
float halfHeight
 
float halfWidth
 
float height
 
HotSpot[] hotspots = null
 
int lastSpot = -1
 
int localColorScheme = G4P.globalColorScheme
 
boolean opaque = false
 
float ox
 
float oy
 
Color[] palette = null
 
GAbstractControl parent = null
 
int registeredMethods = 0
 
float rotAngle
 
double[] temp = new double[2]
 
GToolTip tip = null
 
float width
 
PApplet winApp
 
float x
 
float y
 
int z = Z_STICKY
 

Additional Inherited Members

- Public Attributes inherited from g4p_controls.GAbstractControl
String tag = ""
 
int tagNo
 
- Public Attributes inherited from g4p_controls.GConstants
int ALPHA_BLOCK = 128
 
int ALPHA_PICK = 48
 
TextAttribute BACKGROUND = TextAttribute.BACKGROUND
 
int BLUE_SCHEME = 6
 
int BOLD = Font.BOLD
 
int CANCEL = JOptionPane.CANCEL_OPTION
 
int CLOSE_WINDOW = 0x00000f02
 
int CLOSED = JOptionPane.CLOSED_OPTION
 
int CTRL_ANGULAR = 0x00000501
 
int CTRL_HORIZONTAL = 0x00000502
 
int CTRL_VERTICAL = 0x00000503
 
int CYAN_SCHEME = 5
 
int DECIMAL = 1
 
char END = java.awt.event.KeyEvent.VK_END
 
int ERROR_MESSAGE = JOptionPane.ERROR_MESSAGE
 
int EXIT_APP = 0x00000f01
 
int EXPONENT = 2
 
TextAttribute FAMILY = TextAttribute.FAMILY
 
TextAttribute FOREGROUND = TextAttribute.FOREGROUND
 
int FORWARD = 1
 
int GOLD_SCHEME = 7
 
int GREEN_SCHEME = 1
 
int HIDE_WINDOW = 0x00000f04
 
char HOME = java.awt.event.KeyEvent.VK_HOME
 
int INFO_MESSAGE = JOptionPane.INFORMATION_MESSAGE
 
int INTEGER = 0
 
int ITALIC = Font.ITALIC
 
int KEEP_OPEN = 0x00000f03
 
int NO = JOptionPane.NO_OPTION
 
int OK = JOptionPane.OK_OPTION
 
int OK_CANCEL = JOptionPane.OK_CANCEL_OPTION
 
int ORANGE_SCHEME = 4
 
int ORIENT_LEFT = -1
 
int ORIENT_RIGHT = 1
 
int ORIENT_TRACK = 0
 
int PLAIN = Font.PLAIN
 
int PLAIN_MESSAGE = JOptionPane.PLAIN_MESSAGE
 
TextAttribute POSTURE = TextAttribute.POSTURE
 
Float POSTURE_OBLIQUE = new Float(0.20f)
 
Float POSTURE_REGULAR = new Float(0.0f)
 
int PURPLE_SCHEME = 3
 
int QUERY_MESSAGE = JOptionPane.QUESTION_MESSAGE
 
int RED_SCHEME = 0
 
int REVERSE = -1
 
int SCHEME_10 = 10
 
int SCHEME_11 = 11
 
int SCHEME_12 = 12
 
int SCHEME_13 = 13
 
int SCHEME_14 = 14
 
int SCHEME_15 = 15
 
int SCHEME_8 = 8
 
int SCHEME_9 = 9
 
int SCROLLBARS_AUTOHIDE = 0x1000
 
int SCROLLBARS_BOTH = 0x0003
 
int SCROLLBARS_HORIZONTAL_ONLY = 0x0002
 
int SCROLLBARS_NONE = 0x0000
 
int SCROLLBARS_VERTICAL_ONLY = 0x0001
 
TextAttribute SIZE = TextAttribute.SIZE
 
TextAttribute STRIKETHROUGH = TextAttribute.STRIKETHROUGH
 
Boolean STRIKETHROUGH_OFF = new Boolean(false)
 
Boolean STRIKETHROUGH_ON = new Boolean(true)
 
TextAttribute SUPERSCRIPT = TextAttribute.SUPERSCRIPT
 
Integer SUPERSCRIPT_OFF = new Integer(0)
 
Integer SUPERSCRIPT_SUB = new Integer(-1)
 
Integer SUPERSCRIPT_SUPER = new Integer(1)
 
int UNDEFINED = Integer.MAX_VALUE
 
int USER_COL_SCHEME = 0x00010102
 
int WARN_MESSAGE = JOptionPane.WARNING_MESSAGE
 
TextAttribute WEIGHT = TextAttribute.WEIGHT
 
Float WEIGHT_BOLD = new Float(2.0f)
 
Float WEIGHT_DEMIBOLD = new Float(1.75f)
 
Float WEIGHT_DEMILIGHT = new Float(0.875f)
 
Float WEIGHT_EXTRA_LIGHT = new Float(0.5f)
 
Float WEIGHT_EXTRABOLD = new Float(2.5f)
 
Float WEIGHT_HEAVY = new Float(2.25f)
 
Float WEIGHT_LIGHT = new Float(0.75f)
 
Float WEIGHT_MEDIUM = new Float(1.5f)
 
Float WEIGHT_REGULAR = new Float(1.0f)
 
Float WEIGHT_SEMIBOLD = new Float(1.25f)
 
Float WEIGHT_ULTRABOLD = new Float(2.75f)
 
TextAttribute WIDTH = TextAttribute.WIDTH
 
Float WIDTH_CONDENSED = new Float(0.75f)
 
Float WIDTH_EXTENDED = new Float(1.5f)
 
Float WIDTH_REGULAR = new Float(1.0f)
 
Float WIDTH_SEMI_CONDENSED = new Float(0.875f)
 
Float WIDTH_SEMI_EXTENDED = new Float(1.25f)
 
int X4 = 1
 
int X8 = 2
 
int YELLOW_SCHEME = 2
 
int YES = JOptionPane.YES_OPTION
 
int YES_NO = JOptionPane.YES_NO_OPTION
 
int YES_NO_CANCEL = JOptionPane.YES_NO_CANCEL_OPTION
 
- Static Protected Attributes inherited from g4p_controls.GAbstractControl
static float epsilon = 0.001f
 

Detailed Description

The provides an extremely configurable GUI knob controller. GKnob inherits from GValueControl so you should read the documentation for that class as it also applies to GKnob.

Configurable options
Knob size but it must be circular
Start and end of rotation arc.
Bezel width with tick marks
User defined value limits (i.e. the range of values returned

Range of values associated with rotating the knob
Rotation is controlled by mouse movement - 3 modes available
(a) angular - drag round knob center
(b) horizontal - drag left or right
(c) vertical - drag up or down
User can specify mouse sensitivity for modes (b) and (c) Use can specify easing to give smoother rotation

Note: Angles are measured clockwise starting in the positive x direction i.e.

        270
         |
   180 --+-- 0
         |
         90
Author
Peter Lager

Constructor & Destructor Documentation

◆ GKnob()

g4p_controls.GKnob.GKnob ( PApplet  theApplet,
float  p0,
float  p1,
float  p2,
float  p3,
float  gripAmount 
)

Will create the a circular knob control that fits the rectangle define by the values passed as parameters.
The knob has two zones the outer bezel and the inner gripper. The radius of the outer bezel is calculated from

bezel radius = min(width, height)/2 - 2


The radius of the inner griper radius is calculated from the bezel radius and the last parameter.

grip radius = bezel radiius * gripAmount


The gripAmount should be in te range 0.0 to 1.0 inclusive. The actual value will be constrained to that range.

Parameters
theAppletthe main sketch or GWindow control for this control
p0x position based on control mode
p1y position based on control mode
p2x position or width based on control mode
p3y position or height based on control mode
gripAmountmust be ≥0.0 and ≤1.0

Member Function Documentation

◆ calcAngletoValue()

float g4p_controls.GKnob.calcAngletoValue ( float  a)
protected

Calculates the knob angle based on the normalised value.

Parameters
a

◆ calcRealAngleFromXY()

float g4p_controls.GKnob.calcRealAngleFromXY ( float  px,
float  py 
)
protected

Calculate the angle to the knob centre making sure it is in the range 0-360

Parameters
px
py
Returns
the angle from the knob centre to the specified point.

◆ constrain360()

float g4p_controls.GKnob.constrain360 ( float  a)
protected

Accept an angle and constrain it to the range 0-360

Parameters
a
Returns
the constrained angle

◆ constrainToTurnRange()

float g4p_controls.GKnob.constrainToTurnRange ( float  a)
protected

Accept an angle and constrain it to the knob angle range.

Parameters
a
Returns
the constrained angle

◆ draw()

void g4p_controls.GKnob.draw ( )

Reimplemented from g4p_controls.GAbstractControl.

◆ getAngleFromUser()

float g4p_controls.GKnob.getAngleFromUser ( float  px,
float  py 
)
protected

Calculates the 'angle' from the current mouse position based on the type of 'controller' set.

Parameters
pxthe distance from the knob centre in the x direction
pythe distance from the knob centre in the y direction
Returns
the unconstrained angle

◆ getSensitivity()

float g4p_controls.GKnob.getSensitivity ( )

This gets the sensitivity to be used in modes CTRL_HORIZONTAL and CTRL_VERTICAL

Returns
the sensitivity

◆ getTurnMode()

int g4p_controls.GKnob.getTurnMode ( )

Get the current mouse controller mode possible values are
GKnob.CTRL_ANGULAR or GKnob.CTRL_HORIZONTAL) orGKnob.CTRL_VERTICAL

Returns
the mode

◆ isIncludeOverBezel()

boolean g4p_controls.GKnob.isIncludeOverBezel ( )

Is the bezel included when considering when the mouse is over.

Returns
true if included.

◆ isInTurnRange()

boolean g4p_controls.GKnob.isInTurnRange ( float  a)
protected

Determines whether an angle is within the knob rotation range.

Parameters
athe angle in degrees
Returns
true is angle is within rotation range else false

◆ isOverArcOnly()

boolean g4p_controls.GKnob.isOverArcOnly ( )

Does the mouse only respond when over the arc?

Returns
true = yes

◆ isShowArcOnly()

boolean g4p_controls.GKnob.isShowArcOnly ( )

Are we showing arc only?

Returns
true = yes

◆ isShowTrack()

boolean g4p_controls.GKnob.isShowTrack ( )
Returns
true if the value track bar is visible else false.

◆ mouseEvent()

void g4p_controls.GKnob.mouseEvent ( MouseEvent  event)

Reimplemented from g4p_controls.GAbstractControl.

◆ scaleValueToAngle()

float g4p_controls.GKnob.scaleValueToAngle ( float  v)
protected

For a particular normalised value calculate the angle (degrees)

Parameters
v
Returns
the needle angle for the given value

◆ setArcPolicy()

void g4p_controls.GKnob.setArcPolicy ( boolean  over_arc_only,
boolean  draw_arc_only,
boolean  overfullsize 
)

Convenience method to set both the show and the mouse over arc only properties for this knob

Parameters
over_arc_onlymouse over arc only?
draw_arc_onlydraw arc only?
overfullsizeinclude bezel in mouse over calculations?

◆ setGripAmount()

void g4p_controls.GKnob.setGripAmount ( float  gripAmount)

The radius of the inner griper radius is calculated from the bezel radius and the parameter gripAmount using

grip radius = bezel radiius * gripAmount


The gripAmount should be in te range 0.0 to 1.0 inclusive. The actual value will be constrained to that range.

Parameters
gripAmountmust be ≥0.0 and ≤1.0

◆ setIncludeOverBezel()

void g4p_controls.GKnob.setIncludeOverBezel ( boolean  overBezel)

Whether to include the bezel when deciding when the mouse is over.

Parameters
overBezeltrue if bezel inclded.

◆ setOverArcOnly()

void g4p_controls.GKnob.setOverArcOnly ( boolean  arcOnly)

Decides when the knob will respond to the mouse buttons. If set to true it will only respond when over the arc made by the start and end angles. If false it will be the full circle.

Parameters
arcOnlydetermines which part of the control responds to the mouse

◆ setSensitivity()

void g4p_controls.GKnob.setSensitivity ( float  sensitivity)

This gets the sensitivity to be used in modes CTRL_HORIZONTAL and CTRL_VERTICAL
A value of 1 is 1 degree per pixel and a value of 2 is 2 degrees per pixel.

Parameters
sensitivitythe sensitivity to set

◆ setShowArcOnly()

void g4p_controls.GKnob.setShowArcOnly ( boolean  arcOnly)

This will decide whether the knob is draw as a full circle or as an arc.

Parameters
arcOnlytrue for arc only

◆ setShowTrack()

void g4p_controls.GKnob.setShowTrack ( boolean  showTrack)

Whether or not to show the circular progress bar.

Parameters
showTracktrue for visible

◆ setTurnMode()

void g4p_controls.GKnob.setTurnMode ( int  mode)

Set the mouse control mode to use, acceptable values are
GKnob.CTRL_ANGULAR or GKnob.CTRL_HORIZONTAL) orGKnob.CTRL_VERTICAL any other value will be ignored.

Parameters
modethe mode to set

◆ setTurnRange()

void g4p_controls.GKnob.setTurnRange ( float  start,
float  end 
)

Set the limits for the range of valid rotation angles for the knob.

Parameters
startthe range start angle in degrees
endthe range end angle in degrees

◆ setValue()

void g4p_controls.GKnob.setValue ( float  v)

Set the value for the slider.
The user must ensure that the value is valid for the slider range.

Parameters
vthe new value to be used.

Reimplemented from g4p_controls.GValueControl.

◆ updateBuffer()

void g4p_controls.GKnob.updateBuffer ( )
protected

Reimplemented from g4p_controls.GAbstractControl.