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

Public Member Functions

void addControl (GAbstractControl c)
 
void addControl (GAbstractControl c, float x, float y)
 
void addControl (GAbstractControl c, float x, float y, float angle)
 
void addControl (int pos, GAbstractControl c)
 
void addControls (GAbstractControl... controls)
 
void addControls (int pos, GAbstractControl... controls)
 
void draw ()
 
boolean fitsScreen (GAlign align)
 
 GControlPalette (PApplet theApplet, GIcon g_icon, GAlign align, float x, float y)
 
void mouseEvent (MouseEvent event)
 
boolean remove (GAbstractControl c)
 
GAbstractControl remove (int idx)
 
void setAlign (GAlign align)
 
void setBorder (float weight, float radii)
 
void setPadding (int pad)
 
void setPrefAlign (GAlign align)
 
- 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

void adjustAlignment ()
 
boolean isValid (GAlign align)
 
void updateBuffer ()
 
void updateControlPositions ()
 
- 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 bdrCorner = 4
 
float bdrWeight = 1
 
boolean beingDragged = false
 
GAlign currAlign
 
GIcon icon
 
int padding = 3
 
GAlign prefAlign
 
float rH
 
boolean rVisible = false
 
float rW
 
float rX
 
float rY
 
- 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
 

Static Protected Attributes

static int PALETTE = 1
 
static int TAB = 0
 
- Static Protected Attributes inherited from g4p_controls.GAbstractControl
static float epsilon = 0.001f
 

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
 

Detailed Description

The control has a central tab (a GIcon or GAnimIcon) and when the mouse is over it one or more G4P controls will appear in a straight line radially from the tab, this is called the palette.
The palette can appear on any side of the tab (i.e. north, south east or west) and the user specifies the preferred alignment when the control is created.
The user can move the control by dragging the tab with the mouse.
The preferred alignment will always be used provided it fits on the screen, if it doesn't then the control will use the opposite alignment if that can be displayed fully.

This control was based on an idea by mala 2020

Author
Peter Lager

Constructor & Destructor Documentation

◆ GControlPalette()

g4p_controls.GControlPalette.GControlPalette ( PApplet  theApplet,
GIcon  g_icon,
GAlign  align,
float  x,
float  y 
)

Construct a control palette object.

Parameters
theAppletthe window responsible for drawing the control.
icona simple or animated icon for the tab
alignthe preferred direction of the palette
xthe tab horizontal position (uses icon centre)
ythe tab vertical position (uses icon centre)

Member Function Documentation

◆ addControl() [1/4]

void g4p_controls.GControlPalette.addControl ( GAbstractControl  c)

Attempts to add a control to the end of the palette. If the position is invalid then it is silently ignored.

Parameters
cthe control to add

Reimplemented from g4p_controls.GAbstractControl.

◆ addControl() [2/4]

void g4p_controls.GControlPalette.addControl ( GAbstractControl  c,
float  x,
float  y 
)

This method is ignored for GControlPalette

Reimplemented from g4p_controls.GAbstractControl.

◆ addControl() [3/4]

void g4p_controls.GControlPalette.addControl ( GAbstractControl  c,
float  x,
float  y,
float  angle 
)

This method is ignored for GControlPalette

Reimplemented from g4p_controls.GAbstractControl.

◆ addControl() [4/4]

void g4p_controls.GControlPalette.addControl ( int  pos,
GAbstractControl  c 
)

Attempts to insert a control at a given index position. If the position is invalid or the control is a duplicate then it is silently ignored.

Duplicates are ignored.

Parameters
posmust be ≥0 and ≤number of controls already present
cthe control to add

◆ addControls() [1/2]

void g4p_controls.GControlPalette.addControls ( GAbstractControl...  controls)

Attempts to add one or more controls to the end of the palette. If the position is invalid or the control is a duplicate then it is silently ignored.

Parameters
controlsthe controls to add
Returns
true if one of more controls have been added else false

Reimplemented from g4p_controls.GAbstractControl.

◆ addControls() [2/2]

void g4p_controls.GControlPalette.addControls ( int  pos,
GAbstractControl...  controls 
)

Attempts to add one or more controls to the end of the palette. If the position is invalid or the control is a duplicate then it is silently ignored.

Parameters
pos
controlsthe controls to add

◆ adjustAlignment()

void g4p_controls.GControlPalette.adjustAlignment ( )
protected

Will change the current alignment to the preferred alignment if it can be displayed fully on screen. If not it will attempt to use the opposite alignment.

◆ draw()

void g4p_controls.GControlPalette.draw ( )

Draw the icon and is the mouse is over it draw the palette..

Reimplemented from g4p_controls.GAbstractControl.

◆ fitsScreen()

boolean g4p_controls.GControlPalette.fitsScreen ( GAlign  align)

See if the control fits inside the window based if it's current alignment is the same as passed in the parameter.

Parameters
align
Returns

◆ isValid()

boolean g4p_controls.GControlPalette.isValid ( GAlign  align)
protected

Valid alignments are either NORTH, SOUTH, EAST or WEST

Parameters
alignthe alignment to test
Returns
true if valid alignment

◆ mouseEvent()

void g4p_controls.GControlPalette.mouseEvent ( MouseEvent  event)

Reimplemented from g4p_controls.GAbstractControl.

◆ remove() [1/2]

boolean g4p_controls.GControlPalette.remove ( GAbstractControl  c)

Removes a control from the palette. If successful the control will unlinked from the palette and made invisible but not disposed of.
If the control is no longer needed then use the

control.dispose()

method after removal.

Parameters
cthe control to remove
Returns

◆ remove() [2/2]

GAbstractControl g4p_controls.GControlPalette.remove ( int  idx)

Removes a control from the palette at a given index position. If successful the control will unlinked from the palette and made invisible but not disposed of.
If the control is no longer needed then use the

control.dispose()

method after removal.
The index will be 0 (zero) for the control nearest the tab no matter what alignment is in effect.

Parameters
idxthe control's index position
Returns
the removed control or null index position is non-existent

◆ setAlign()

void g4p_controls.GControlPalette.setAlign ( GAlign  align)

Set the current palette alignment. The preferred alignment is unchanged.

Parameters
alignthe current alignment to use.

◆ setBorder()

void g4p_controls.GControlPalette.setBorder ( float  weight,
float  radii 
)

Set the border weight and the corner radii to apply. The border must be at least 1 pixel so you can see the palette area limits. A radii value of 0 will result in square corners.

Parameters
weightmust be ≥1
radiimust be ≥0

◆ setPadding()

void g4p_controls.GControlPalette.setPadding ( int  pad)

Set the padding round each control. Default is 3

Parameters
padmust be ≥2

◆ setPrefAlign()

void g4p_controls.GControlPalette.setPrefAlign ( GAlign  align)

Set the preferred alignment for the palette.
If the palette does not fit the screen then it will not be shown until the control is moved to a position it can be seen.

Parameters
alignthe new preferred alignment

◆ updateBuffer()

void g4p_controls.GControlPalette.updateBuffer ( )
protected

Reimplemented from g4p_controls.GAbstractControl.

◆ updateControlPositions()

void g4p_controls.GControlPalette.updateControlPositions ( )
protected

Recalculate the control positions after a change of palette alignment or when a control is added to or removed from the palette.