G4P versions and download
Download G4P from SourceForge
Version list with description of major changes.
(For more detail on version changes click here)
This is the first version to be compatible with Processing 3. Most sketches created with earlier versions will run unaltered with this version. Sketches that use of multiple G4P windows will have to be modified, look at the simple windows example sketch that comes with the library.
Processing 2 compatible versions below
This is the last version to be compatible with Processing 2.2.1 all futures releases will be for Processing 3
Fixes bug in GLabel constructor that cause null pointer exceptions on some machines.
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.
Bug fixes only.
Version 3.5 (Compatible with GUI Builder V2.5)
- New control for entering password (GPassword)
- Support for displaying UTF8 characters added to GTextField and GTextArea controls
- Improved text visibility for controls with transparent backround i.e. labels, sliders, radio buttons and checkboxes.
- GGroup objects allow controls to be grouped for common taska e.g. enabling, visibility, transparency and fading. Group actions can executed immediately or after a user defined delay.
- The height of labels, buttons, radio buttons and checkboxes can be changed to fit the text and icon.
The StyledString class has several bug fixes and enhancements. Also the text area and text field controls have been enhanced to simplify the application of text styling. If you are using the GUI Bilder tool with this library the tool, then it must be upgraded to V2.3.1 to be compatible.
A new control, the image toggle button has been added with this version (GUI Builder V2.3 has been upgraded to include the new control). Also the user can now set the font used by a GDropList control.
All earlier versions of G4P can be downloaded from GoogleCode
Version 3.2.5 - Fixes GDropList bug where the drop list appeared behind other components.
Version 3.2.4 - GTextField and GTextArea controls now fire events when they get/lose focus - see GEvent class documentation. Two new methods in G4P class provide a list of all open GWindow objects either as an array or ArrayList.Can now force GWindow closure with new forceClose() method. GDropList has been fixed (Issue 16).
Version 3.2.3 - User can now define the draggable area for GPanel controls. Also the library has been repackaged to work with 'Add Library' option of Processing 2.0b8
Version 3.2.2 - This fixes a bug that caused exceptions when the user tried to close a GWindow object using the close() method.
Version 3.2.1 - This fixes a bug that prevented custom slider images not being included in an applet exported with the new AppletMaker tool.
Version 3.2.0 - Two new controls, GSlider2D and GStick have been added to the library. The GTextField and GTextArea controls can now save/load their styled text to/from file, this includes any text selection will be saved and restored on loading. The GUI builder tool has also been updated (2.2.0) to work with this version.
Version 3.1.1 - Although there were some minor bug fixes and enhancements the biggest change is the addition of dialogs for colour selection, IO and message/option panes.
Version 3.1.0 - Incorporates a number of bug fixes and some changes made to be compatible with the new version (2.1.0) of the GUI builder tool The library has been now uses the new event model in Processing 2.0b7 so is no longer compatable with Processing 1.5.1
Version 3.0.0 - The library has been refactored from the ground up to consolidate the controls, provide more powerful controls and a more uniform approach to creating them. The library has been tested with Processing 2.0b6 and works with seemlessly with all three renderers (JAVA2D, P2D, P3D/OPENGL). The library is also compatible withProcessing V1.5.1 using JAVA2D, P2D and P3D.
Version 2.0.3 - This fixes a bug which prevented GTextField components responding to keyboard events. Has been tested against Processing V2.0b3
Version 2.0.2 - This version has fixed a couple of issues so that it works with the first beta release of Processing V2.0b1. Unfortunattely due to a bug in Processing attempting to edit text in a GTextField will crash the program. This is a known issue which should be fixed with the next beta release of Processing.
Version 2.0.1 - This version improves the handling of GUI components on multiple windows. It also resolves the issue of enabling/disabling controls on a GPanel - a new method setControlsEnabled can be used for this purpose. If you are using the GUI buider then you must use V2.0.1 of that tool. It has been tested and will work with the latest version (2.0a6) of Proccessing
Version 1.7.6 - Reinstates functionality in GWSlider lost in an ealrlier bug fix.
When clicking on the track of a cool slider (GWSlider) the thumb will move to that position taking into account any inertia. Also the thumb is highlighted when the mouse is over it.
Version 1.7.5 - Fixes bug in drawing order of GUI controls placed on GPanel and nested GPanel controls. The changes also fix a bug where GTextField objects on a GPanel object refused to release focus.
Version 1.7.4 - Improved handling of GPanel objects. Adds the method(s) G4P.setDrawOrder(...) which ensures that GPanel objects are drawn over controls in the main sketch. When a panel or a control gets focus the parent panel is automatically brought to the front. This can be done programmatically with the new bringToFront() method. The changes also fix a bug where GTextField objects on a GPanel object refused to release focus.
Version 1.7.3 - Fixes reported bug in GTextField when using setFocus() and then clicking and dragging outside the textfield area.
Version 1.7.2 - Additional methods added to GTimer that allow both the initial delay and interval times to be set. Previously the initial delay could only be set when the GTimer object was created.
Version 1.7.1 - Minor bug fix to GRoundControl so that isValueChaging() works correctly for knob controls. Thanks to Dmitri for finding the problem and its solution.
Version 1.7.0 - New control added the GKnob and GKnobOval these are extremely configurable - see the example that comes with the library. Controls no longer needed can be dispose of e.g
myButton.dispose(); // makes myButton unavailable; myButton = null; // garbage collection will eventually free its memory.
Textfield objects now fire an event when they lose focus and the mouse icon will change when moving over GWSlider controls (if mouse over option is enabled).
Version 1.6.5 - Minor update that enables the cursor colour in GTextField to be changed independently of the border colour. The colour of the cursor can be set with myTextField.localColor.txfCursor = color(r,g,b); and use txfBorder for the textfied border colour.
Version 1.6.4 - GWindows can now be closed under program control using the close() method. Also a bug fix for GWSlider - so it is now possible to test whether the slider is being dragged i.e. the value is changing at the GUI
Version 1.6.3 - GWindows can now choose to ignore the Window close icon. The method setBehaviourOnExit has been removed and replaced with the method setActionOnClose(int action) where action is either GWindow.KEEP_OPEN, GWindow.CLOSE_WINDOW or GWindow.EXIT_APP the default being KEEP_OPEN.
Version 1.6.2 - Buttons and labels now support both horizontal and vertical text positioning. Also a new method has been added to make G4P text clearer when using P2D and P3D. If you are using one of these renderers then inside the setup() method add the following code after the call to size(...) G4P.setTextMode(SCREEN);
Version 1.6.1 - the only change is to one of the examples the actual source library is unchanged
Version 1.6 - Now possible to use images as buttons.
Version 1.5.2 brings an enhanced GTextField component and a bug fix for GWSlider.
Version 1.5 & 1.5.1 include some cool sliders, a modified textfield component that supports multi-line text and simpler usage with the PeasyCam library.
For Java developers who wish to examine or modify the source code then it can be taken out from the GIT repository at SourceForge