* add glyphicons reference to controlp5.Icon.java http://glyphicons.com
* add useiconic to controlp5.Icon.java https://useiconic.com/open
2014-05-29 Andreas Schlegel
* distinguish between left,center, right mouse click events http://forum.processing.org/two/discussion/5422/controlp5-mousepressed-only-if-mousebutton-left-
2014-04-22 Andreas Schlegel
* javascript version on hold; it is unclear which project processing.js or p5.js will become the default js framework for processing
2013-09-09 Andreas Schlegel
* javascript version
* textinput on android
* color picker used for clicks-and-strokes
* rendering into pgraphics
* add colorwheel
* add ControlFrame with customizable render access
* spacer / separator
2011-03-24 Andreas Schlegel
* finish info to toString conversion
* implement plugTo for ControllerGroups
* BitFontRenderer addBitFont is broken, see the ControlP5bitFont example,
the font is cut off at the bottom, probably something wrong with
the label's PImage height.
2010-08-07 Andreas Schlegel
* fix ControlWindowCanvas.pre(), doesnt work anymore.
2010-07-25 Andreas Schlegel
* Android support, current version conflicts with android java (ControlWindow, PAppletWindow, using Toolkit when loading bit-font, KeyEvents, etc.)
* CColor: alpha handling
* Chart: finish. a chart graph controller to display line, bar, pie and histogram charts.
2010-04-02 Andreas Schlegel
* BitFontRenderer: \n is recognized as a not-supported-character. fix!
* general: processingjs port
* Knob: implement new version of knob
* Textfield: implement new version of textfield
* TextArea: implement new version of TextArea
* Label: implement modifications so that text rendering for P3D works properly
* picking: use an image and color-coding for picking controllers instead mouse-coordinates against rectangular boxes.
- moveTo does not work for only a String which would stanbd for the name of a tab
- controlP5.window(this).activateTab("myTab");
controlP5.tab("myTab").mousePressed();
* ControlGroup, set Width of bar. the + - toggle is not updated visually.
* Text -Field, -Label, -Area: customize font
* textarea: when changing the font of the valueLabel, the scrollbar is not updated / does not show even it is required. current hack is: myTextarea.setHeight(myTextarea.valueLabel().height());
* textarea: automatically updating the scrollbar whensetting text with setText() see email from martin froehlich 16.january 2009
* save and load does not work for some controllers.
* loading and saving
* multilist, range, matrix dont load from xml file.
* colorstyle does not save and load.
* labels dont save properly, background color is not saved.
* matrix needs to be redone. develop whole new concept for matrix / synthesizer.
* multitouch support
* controlWindow: add feedback when closing window. see email from henri 5 january 2009
* controllerStyle: see email from johnny rodgers 30 november 2008
* range: see email from hartmut bohnacker 27 november 2008
* textfield: see email from henri 14 october 2008
* save and open file dialog: see email from henri 12 october 2008
* ControlBroadcaster suggestions: see email from aaron mayers 2 october 2008
* pushmatrix / popMatrix : see email from florian 6 june 2008
Lib.pre() { /*other code */ pushMatrix(); }
PApplet.draw() { ... }
Lib.draw() { popMatrix(); /* the lib code, untransformed */ }
DONE
* (done) add setArrayValue to Controller class.
* (done, implemented with TickMark) Slider: snap
* (done) add id() method to ControlEvent
* (done, fixed) fix save/load. saving twice and loading again results in empty.
* (done) add setTitle to ControlWindow http://processing.org/discourse/yabb2/YaBB.pl?num=1245762312/0#0
* (done, now ListBox) redo ScrollList so that it becomes a controller? change the button management of a scrollList.
adding actAsPulldownMenu() to enable/disable pulldown
functionality for a ListBox.
* src/controlP5/PulldownMenu.java:
new Controller, extends ListBox, acts as a pulldown-menu.
2010-08-03 Andreas Schlegel
* version 0.5.2
* Slider2D: a new Controller, 2D slider control.
* Button, Bang, Toggle, : setImage() defines an image for DEFAULT,OVER,ACTIVE,HIGHLIGHT mode.
* Button, Bang, Toggle, : setImages() defines an image for DEFAULT,OVER,ACTIVE,HIGHLIGHT mode.
* Button: adding setSwitch() in order to use a button as a switch (makes toggle obsolete)
* Button: adding booleanValue() returns true or false, useful in case a button is set to be a switch.
* Button: adding setOn() setOff(), useful when button is a switch.
* Toggle: changing default look to ControlP5.SWITCH, an on/off look for toggles. use toggle.setMode(ControlP5.DEFAULT) to reset to the old default look.
* ControllerDisplay: adding interface ControllerDisplay to enable custom displays for a controller.
* Controller: setImage, allows to replace the default look of a controller with an image (PImage).
* Controller: setDisplay allows custom displays for controller. the custom display is called from within a controller's draw function. A custom Display implements interface ControllerDisplay
* ControlWindow: adding begin() and end(). this allows to move controllers automatically to the main window or a separate controlWindow.
* Toggle: adding setValue(boolean)
* Matrix: mouseReleasedOutside error fixed.
* ControlWindow: window is now properly removed when closed, thanks henri.
* TextLabel: adding setControlFont()
* Knob: all new.
2010-04-04 Andreas Schlegel
* version 0.5.1
* ControlP5: lock() and unlock() are working again.
* ControlEvent: added function id() to make access to the id of controller, group, tab, etc. easier
* ControlEvent: added function type() for easier distinguishing between the type of Controller the event was triggered from, returns ControlEvent.UNDEFINED, ControlEvent.CONTROLLER, ControlEvent.TAB, ControlEvent.GROUP
* ListBoxItem: adding ListBoxItem to make changes to each item of a listBox especially the color settings of a listBoxItem.
* CColor: now with getter and setter functions, supports changing the value of the alpha channel.
* ControlWindow: adding begin() and end(). this allows to move controllers automatically to the main window or a separate controlWindow.
* ControllerGroup: adding enableCollapse(), disableCollapse(), isCollapse() to enable/disable the collapsing and opening of a controllerGroup e.g. listBox.
2010-03-26 Andreas Schlegel
* version 0.5.0
* making transition to 1.5+, no more java 1.4 support.
* compiling against processing 1.1
* ControlP5: added disableKeys() and enableKeys(), suggested in the discourse. disables and enables keyEvents such as hide/show with ALT-h.
* Toggle: when inactive, the color refers to colorBackground instead of colorForeground now.
* ControlFont: smooth related functions have been disabled and deprecated due to processing 1.1 changes.
* Slider: use alignValueLabel() to position the value label of a slider on TOP, CENTER, or BOTTOM
* example ControlP5quick: new, ControlP5quick shows how to quickly add Controllers with auto-arrangement.
2010-02-16 Andreas Schlegel
* version 0.4.7
* Slider: adding TickMarks and replacing steps with snapToTickMarks().
* ControllerSprite: sprites are now clone-able and state management has been improved, thanks to c.a. church. http://processing.org/discourse/yabb2/YaBB.pl?num=1265905257
* Controller: adding getSprite()
* BitFontRenderer: adding warning for character that are not supported by the BitFontRenderer.
2010-02-06 Andreas Schlegel
* version 0.4.6
* ControlWindow: imageMode was not set back to CENTER/CORNER correctly, now fixed.
0.4.5
* ControllerGroup: adding moveTo(String). will move ControllerGroups such as e.g. Textarea to another tab.
yet not successful, but loops managing the mouseEvents have been reversed from i++ to i--
* CheckBox,RadioButton: adding activateAll, activate, deactivate, getState to CheckBox and RadioButton to be able to control individual items by code.
* CheckBox: adding toggle() to CheckBox to be able to toggle individual items of a checkBox.
* CheckBox,RadioButton: adding setItemHeight(), setItemWidth() to radioButton and checkBox
* Toggle: adding toggle()
0.4.2
-
0.4.1
* Controller: added changeValue() to change the float value of a controller without broadcasting its change as a event.
* Numberbox: added setMultiplier() and multiplier() to customize the value sensitivity.
* Toggle: setLabelVisible() is now working.
* ControlWindow: adding setTitle, showCoordinates, hideCoordinates to ControlWindow. only applies to controlWindows of type PAppletWindow (external window).
* adding Matrix.set
* Controller: Controller.isInside() is public now
* added ControlFont. does not support textarea and textfield yet.
(note: take a look at subversion changelog generator http://ch.tudelft.nl/~arthur/svn2cl/)
0.3.15
* Texfield: textfield scrolls to the left if text is larger than display area.
* Knob: knob setValue issue solved.
* BitFontRenderer: removed getWidth(String theText, int theFontIndex)
is now getWidth(String theText, Label theLabel);
removed getWidth(String theText, int theFontIndex, int theLength))
is now getWidth(String theText, Label theLabel, int theLength));
0.3.14
* ScrollList: adding void hideScrollbar()
adding void showScrollbar()
adding void showScrollbar()
adding void scroll(float)
adding boolean isScrollbarVisible()
* Textarea: adding void hideScrollbar()
adding void showScrollbar()
adding void showScrollbar()
adding void scroll(float)
adding boolean isScrollbarVisible()
* Textfield: textinput now works from a controlWindow
* Label: adding adjust() to fix the cutting off of Labels when changing fonts.
use e.g. mySlider.captionLabel().setFont(ControlP5.grixel).adjust();
0.3.13
* Textfield: adding setAutoClear(true/false) prevents the textfield to be cleared after pressing RETURN.
adding clear(), clears the current textline
adding keepFocus(true/false)
adding getTextList()
adding setAutoClear(true/false)
adding isAutoClear()
adding submit()
0.3.12
* Radio: if deactiveAll is set before the first button is added, the first button will not trigger an event.
* ControlGroup: added method getBackgroundHeight() to get the height of a group's background that has been set before.
* Textfield: fixed bug with clearing the variable myTextline too early.
0.3.11
* Textfield: added method setText to Textfield
* Range: made corrections to Range, _myUnit was not set properly. now fixed. Range remains experimental.
0.3.10
* fixed little issues with setColor, again.
* removed decimal point when setDecimalPrecision(0)
0.3.9
* Range: defaultValue for min shows correct value now.
* Radio: added deactivateAll()
* TextLabel: added setWidth, setHeight
* setColor -Label(), -Active(), -Value(), -Foreground(), -Background(): issues resolved and tested for slider, range, button, knob, sliderlist, multilist, toggle, radio
* Controller: added method setDecimalPrecision(int theNum) to set the decimal precision for floats when displayed as valueLabel. the precision does not apply to the returned float value.
Controller.captionLabel().set("txt") is fixed.
* ControlP5: controlP5.setAutoDraw(true/false) issue is fixed.
* ControlWindow: controlWindow.post() has been deleted.
* Knob: issue with minimum value has been resolved.
how to move a textlabel that has been created with "new" to a tab other than the default:
Tab myTab = controlP5.addTab("new");
Textlabel myTextlabel = new Textlabel(this,"a single textlabel.",20,100,400,200,0xffff0000,ControlP5.synt24);
<p>ControlP5 (<ahref="http://www.sojamo.de/libraries/controlP5"target="_blank">www.sojamo.de/libraries/controlP5</a>) is a library written by Andreas Schlegel for the programming environment <ahref="http://www.processing.org"target="_blank">processing</a>. ControlP5 is a GUI and controller library for processing that can be used in authoring, application mode. Controllers including Sliders, Buttons, Toggles, Knobs, Textfields, RadioButtons, Checkboxes amongst others can be easily added to a processing sketch and can be arranged in separate control windows, or can be organized in tabs or groups. The controlP5 source code repository is available on github at <ahref="http://github.com/sojamo/controlp5"target="_blank">github.com/sojamo/controlp5</a>.
</p>
<h1>Javascript</h1>
<p>Currently there is no javascript version of ControlP5, though I had started implementing a slimmed down version for processing.js but since it is currently unclear which javascript version, processing.js or p5.js, will become the default js version of processing, controlP5.js is on hold.</p>