G4P changes incorporated into version

4.3.8 (47)
Fixes bug in GSpinner


4.3.7 (46)
GPanel and sliders did not release focus correctly bug - fixed

Fixed issue when controls added to a collapsed  GPanel being available.
 
 
4.3.6 (45)
GViewListener did not respond to mouse wheel events - fixed

GTextField nows checks for numeric validity when using setText and setNumeric methods.

G4P.selectInput now uses default folder if a start folder is not specified (used to throw NPE).

select??? methods will now add an "All Files" filter by default.

select??? methods only work in JAVA2D mode - warning added to G4P API docs and example


V4.3.5 (44)
GKnob can now accept negative sensitivities so the angle change will depend on the mouse drag direction when using CTRL_VERTICAL and CTRL_HORIZONTAL modes.

GWindows have a 'HIDE_WINDOW' option when attempting to close a secondary window using 'red cross' or other OS specific window closing button.

Fixes bug in GDropLost where insertItem(...) and addItem(...) did not do anything.


V4.3.4 (43)
Fixes bug which prevented transferring the focus from controls on a GPanel to a controls on another window.

Some corrections to G4P documentation re. dialog message constants.


V4.3.3 (42)
New GControlPalette and GSpinner controls

GTextField now includes validation for number input.

GImageToggleButtons can now be set opaque where the icon has transparent areas


V4.3.2 (41)
Removes warning message when using StyledString in GUI Builder

Fixes bug where controls were resized when resizing P3D surface (ticket 37)


V4.3.1 (40)
Fixes bug that stopped loading of user color palette image.


V4.3.0 (39)
PRESSED, RELEASED and CLICKED mouse events are generated by sliders when they have focus.

Global font face, style and size can be set for display, input and slider fonts separately. See G4P.set????Font(...) methods

Message constants used in dialogs have changed. See the example sketch, G4P_Dialogs for details


V4.2.3 (38)
Includes a fix for a Processing bug that prevented text editing in text controls when using OpenGL (Processing issue 4654)


V4.2.2 (37)
Methods added to GViewListener to get / set the mouse wheel sensitivity

Fixes bug when trying to get a snapshot of a GView or GViewPeasyCam control

setAlpha(...) now works with GGroup control

fixes bug when removing a listener from a GView or GViewPeasyCam control


V4.2.1 (36)
Fixes bug in GPanel when tab size did not change when the font changed (Ticket 32)

Mouse PRESSED and RELEASED methods for buttons have been re-instated.


V4.2.0 (35)
New control, GView that encapsulates a visual 2D/3D canvas that responds to Processing mouse events using the GViewListener class. This replaces GSketchPad

New control, GViewPeasyCam encapsulates a visual 3D canvas controlled by a PeasyCam object.

GSketchPad controls have been removed (replaced by GView controls)

Mouse PRESSED and RELEASED methods for buttons have been removed.

The mouse pointer changing as it passes over different controls is turned off by default due to bug in Processing (Issue 5712)


V4.1.5 (34)
Bug fixes and visual enhancement to GDropList making it easier to use on small screens.


V4.1.4 (33)
Fixes bug in StyledString that throws exception when text with multiple consecutive newline characters are in the text to set (ticket 24)


Fixes bug in GTextArea where the text does not scroll to the end when appending text. (ticket 25)

V4.1.3 (32)
The select file dialog boxes now support option to specify starting folder. (Ticket 21)

The select colour dialog now supports optional start colour. (Ticket 21)

fixes bug in GTextField when trying to set the text and the control already has focus and selected text. (Ticket 22)


V4.1.2 (31)
fixes bug caused by a Processing issue introduced with 3.3.1 (https://github.com/processing/processing/issues/5026)

bug fixes for tickets 17 and 18 - black text and file dialog box issues.


V4.1.1 (30)
fixes bug in GPanel setCollapsed(true) when the panel background is still visible and when panels are nested.

Fixes bug in GCheckbox that made the control invisible if set false before the buffer is first drawn.

Fixes bug in GGroup where setVisible(boolean) did not work

Fixes bug in GGroup when fading duration <= 0

Fixes bug in GWindow that meant windows created using GUI Builder could not find the close window handler.


V4.1 (29)
There is now greater control of the positioning of the icon and the ability to create animated icons for GButton, GLabel, GCheckbox and GOption. See the guides at http://lagers.org.uk/g4p/guides/g01-overview.html for more details.


V4.0.5 (28)
Fixes bug in GTextField where the scrolling text didn't keep up with a rapid typing rate or when a block of test was pasted in. (Ticket 13)


V4.0.4 (27)
Fixes bug in GTextArea when text is cleared and the control has focus (Ticket 12)

GTextArea now fires GEvent.ENTERED event when the Return / Enter key is typed (Ticket 11)

Sliders, knobs and scrollbars now respond to the mouse wheel (Ticket 10)


V4.0.3 (26)
Scrollbars improved visually

GButton controls now have rounded corners

Bug fix for displaying prompt text in GTextField and GTextArea controls

Methods added to GCScheme for setting, changing and saving colours and palettes (schemes)

Fixes bug in getSnapshot

saveSnapshot methods added.


V4.0.2 (25)
Bug fix for setFont(...)


V4.0.1 (24)
Seamless support for use with Peasycam added.

GWindow methods added: setVisible, getVisible, isVisible , setAlwaysOnTop, setLocation and getLocation

Window closing code changed


V4.0 (23)
Major update for Processing V3, it will not work with previous versions of Processing.

GPassord control no longer supports horizontal scroll bars, it didn't make sense use max password size instead. 

GTextField and GTextArea the deprecated methods setDefaultText and getDefaultText have been removed use set/getPromptText instead.

Major overhaul of multiple window support. Now uses the factory pattern to get instances of GWindow i.e. window = GWindow.getWindow(...) instead of window = new GWindow(...)
No longer possible to create 'undecorated' frames.


V3.5.4 (22)
This is the last version of G4P to be compatible with Processing 2. All future versions will be for Processing 3. The source code is the same as 3.5.3 the changes are so that G4P plays nicely with PS3.


V3.5.3 (21)
Bug fixes errors when using GLabel in GWindow controls with GUI Builder

V3.5.2 (20)
Bug fixes for GTextField and GTextArea controls. My thanks to kowalski5233 for not only finding and reporting the problems, but also in testing the bug fixes prior to this release.


V3.5.1 (19)
Fixes bug in GPanel constructor without text parameter

Fixes bug that alters font metrics in text controls on first use of setText

Fixes bug in GTextField and GTextArea gains focus from mouse press and the text is a single space it will be selected and so replaced on first keypress.


V3.5 (18)
New control for entering password (GPassword)

Support for displaying UTF8 characters added to GTextField and GTextArea controls

Improved text rendering for controls with transparent background i.e. labels, sliders, radio buttons and checkboxes.

GGroup objects allow controls to be grouped for common tasks e.g. enabling, visibility, transparency and fading. Group actions can executed immediately to after a user defined delay.

GTextField & GTextArea - the setDefaultText method has been deprecated in favour of the setPromptText to make its purpose clearer.

GTextArea - addStyle(...) methods added to set the text style of part or all of a display line. 

GTextArea - insertText(...) methods added to insert text at a specified display line number/character position or at the current caret position.
 
GTextArea - getCaretPos(...) methods added to retrieve the current caret position. 

GImageToggleButton - the stateValue methods have been deprecated in favour of setState(...) and getState() methods.

GDropList - it is now possible to remove, insert and add items to the control at runtime.

GLabel, GButtom, GOption and GCheckbox - new method setHeightToFit() to change the controls height so it just surrounds the text and icon.
