G4P changes incorporated into version 4.3.9 (48) New feature - tool tips for G4P controls that respond to mouse input. GTextBase and GTextIconBase source code re-factored to correct allocation of responsibilities between these classes. 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.