2016-14-04 Andreas Schlegel mostly bug fixes, see github issues removed all PVector references, variables, and functions using processing.core.PVector 2015-08-02 Andreas Schlegel changes see github change log 2015-03-29 Andreas Schlegel * src controlP5.ScrollabelList: fixing ArrayOutOfBounds error as reported on github under issue 3 https://github.com/sojamo/controlp5/issues/3 2014-09-08 Andreas Schlegel * src main.java.src2.main.java.controlP5.controlp5.Icon: adding Icon class, acts like a button; can be used with images and font-icons from "Font Awesome". * src main.java.src2.main.java.controlP5.controlp5.controlp5.Button: when theButton acts as a switch (setSwitch(true)), the corresponding method inside a sketch should use type boolean as argument instead of float; a java.lang.IllegalArgumentException will be thrown in case of a float argument 2014-08-28 Andreas Schlegel * src main.java.src2.main.java.controlP5.controlp5.controlp5.Background: adding Background class, a convenience class for grouping controllers with the top bar disabled by default. 2014-07-21 Andreas Schlegel * src main.java.src2.main.java.controlP5.controlp5.Textfield: making use of a graphics buffer now, simplifies cursor position calculation and prevents from throwing an ArrayIndexOutOfBoundsException which could occasionally happen with previous versions. 2014-07-17 Andreas Schlegel * version 2.2.1 * removing PVector dependencies * removing all deprecated methods * src main.java.src2.main.java.controlP5.controlp5.ListBox, main.java.src2.main.java.controlP5.controlp5.controlp5.DropdownList: Due to changes to and deprecation of DropdownList and ListBox, both share the same source code as ScrollableList. Consequently some functionality got lost though this should be marginal. In case of any issues occuring due to these changes, please inform the author. In any case use ScrollableList instead of DropdownList and ListBox. The major benefit of using a ScrollableList is that an item is now of type Map and therefore is not limited (as it was the case before) to the implementation of a ListBoxItem and hence is more flexible as data container. Do note that ListBox, DropdownList and ScrollableList do extend Controller, not ControllerGroup 2014-04-27 Andreas Schlegel * version 2.1.6 * preparing for next release. * src main.java.src2.main.java.controlP5.controlp5.ListBox, main.java.src2.main.java.controlP5.controlp5.controlp5.DropdownList: deprecated, use ScrollableList instead. * src main.java.src2.main.java.controlP5.controlp5.controlp5.ControlP5Legacy: repository of functions only kept for backwards compatibility but it is not encouraged to use the anymore. Use ControlP5Base instead. * src main.java.src2.main.java.controlP5.controlp5.Controller: adding onEnter, onLeave, onDrag, onStartDrag, onEndDrag, onWheel, onMove, onClick, onPress, onDoublePress, onRelease, onReleaseOutside, onChange to register callbacks for specific events. This is not implemented for classes extending ControllerGroup. 2013-01-23 Andreas Schlegel * version 2.1.5 * src main.java.src2.main.java.controlP5.controlp5.controlp5.ControllerProperties: removing XML format. adding JSON format, JSON format will be the default format instead of the Java Serialization format. 2012-09-22 Andreas Schlegel * version 2.1.3 * src main.java.src2.main.java.controlP5.controlp5.ListBox: now extends Controller instead of ControlGroup. 2012-09-09 Andreas Schlegel * version 2.1.0 * starting processingjs implementation. - many controllers will be included: completed: Bang, Button, CheckBox, ColorPalette, Group, Knob, Label, ListBox, DropdownList, Numberbox, RadioButton, Range, Slider, Slider2D, Tab, Textfield, Toggle under construction: Canvas, Chart, ColorPicker, ControllerView, FrameRate, Matrix, Textarea pending: ButtonBar, Pointer, TickMark, Tooltip some will be missed: MutiList, Textlabel and more will be missed: CColor, ControlBehavior, ControllerProperties, ControllerStyle, ControlTimer, ControlWindow - the BitFont from the Java version will not be ported over to js and the default fontsize will be set to 10 - The automatic binding of functions and variables with the js version did not work as smooth as expected. Currently only automatic function detection and binding is available. But then why not variables? See my request here: https://processing-js.lighthouseapp.com/projects/41284/tickets/1972-feature-request-access-sketch-global-variables-from-library * src main.java.src2.main.java.controlP5.controlp5.controlp5.Slider2D: changed size of cursor, changed color handling * src main.java.src2.main.java.controlP5.controlp5.controlp5.Button: alignment of caption label changed to CENTER,CENTER * adding PGraphics support instead of only rendering into PApplet directly * fixing Annotation issue addressed here https://forum.processing.org/topic/controlp5-annotations-24-8-2012#25080000002597047 2012-12-23 Andreas Schlegel * version 2.0.4 * src main.java.src2.main.java.controlP5.controlp5.Textfield.java,main.java.src2.main.java.controlP5.controlp5.ListBox.java, main.java.src2.main.java.controlP5.controlp5.controlp5.DropdownList.java,main.java.src2.main.java.controlP5.controlp5.ControlWindow.java main.java.src2.main.java.controlP5.controlp5.ControlP5Base.java: adjusting to processing's KeyEvent final variable name changes see issue 69 https://code.google.com/p/controlp5/issues/detail?id=69 (thanks jeff) * src main.java.src2.main.java.controlP5.controlp5.Textfield.java: reimplemented password mode (thanks jeff) 2012-10-19 Andreas Schlegel * version 2.0.3 * src main.java.src2.main.java.controlP5.controlp5.Controller.java: Automatic (PApplet) field recognition for Slider, Knob, Numberbox, Toggle adjusted. 2012-09-17 Andreas Schlegel * version 2.0.2 * major changes to controlP5's font handling. the BitFontRenderer has been removed and the BitFont class has been introduced. BitFont extends PFont and is the replacement for rendering controlP5's bitfont as a pfont. this makes font handling way more easier and stable. if this has caused any font rendering flaws, let me know. * src controlP5.BitFontRenderer.java: removed * src main.java.src2.main.java.controlP5.controlp5.BitFont.java: added, see above. 2012-09-07 Andreas Schlegel * version 2.0.1 * processing 2.0, time to make some changes, major revision in progress. The goal should be to make 2.0+ desktop and android compatible, for that java.awt dependencies will be removed. starting to remove deprecated methods, fields and classes * removing all java.awt dependencies. with each ControlP5 instance there will only be 1 ControlWindow since separate windows/frames have been removed due to their java.awt dependency. There will be an example of how to make your own separate Frame when in desktop mode. * versions starting with 2.0.1 will not be backwards compatible with 1.5.1 and earlier from this version onwards Android is supported * src main.java.src2.main.java.controlP5.controlp5.Println.java: new class added a console logger that captures the System.out stream and displays it using a Textarea * src main.java.src2.main.java.controlP5.controlp5.controlp5.FrameRate.java: new class added a Textlabel that displays the current or average framerate based on update interval * src controlP5.BitFontRenderer.java: using Base64 encoded bitfont source instead of loading gif textures * src main.java.src2.main.java.controlP5.controlp5.controlp5.Knob.java: adding value label, ARC is default view now. * src main.java.src2.main.java.controlP5.controlp5.controlp5.Matrix.java: adding play(), pause(), stop(), isPlaying(), trigger(int) * src main.java.src2.main.java.controlP5.controlp5.Controller.java: all ControllerSprite references (previously deprecated) have been removed * src controlP5.ControllerSprite.java: removed * src controlP5.ControlP5IOHandler.java: obsolete, removed, all static method transfered to main.java.src2.main.java.controlP5.controlp5.controlp5.CP.java which will handle static method * src controlP5.ControlWindowKeyListener.java: obsolete, removed * src controlP5.PAppletWindow.java: obsolete, removed, currently there is no support for separate frames other than the main window due to removing java.awt dependencies * src main.java.src2.main.java.controlP5.controlp5.ControlWindow.java: removed mouseWheelMoved(MouseWheelEvent e) due to removal of java.awt dependencies how to use an extra window, see example extra/ControlP5frame * src controlP5.ControlWindowKeyHandler.java: obsolete, removed, now handled by controlP5/ControlWindow.java * src controlP5.CRect.java: obsolete, removed, was only used by MultiList and MultiListButton - replaced with int array. * src controlP5.ControlCanvas.java: obsolete, removed, use main.java.src2.main.java.controlP5.controlp5.Canvas.java instead. 2012-09-07 Andreas Schlegel * version 1.5.1 * This version will be the last version that is stable and fully compatible with processing 1.5.1 due to major changes in the processing 2.0 version, future releases of controlp5 will only be compatible with the processing 2.0 and higher versions. The next controlp5 release will continue with version 2.0.1 2012-08-25 Andreas Schlegel * version 0.7.6 * src main.java.src2.main.java.controlP5.controlp5.Textfield.java: fixing special character issue with e.g. �,�,�,�, etc. backspace, left arrow, right arrow now respond when pressed longer added isFocus() implemented issue 56 http://code.google.com/p/controlp5/issues/detail?id=56 , thanks jeff * src main.java.src2.main.java.controlP5.controlp5.controlp5.ControllerAutomator.java: fixed annotation mapping for methods added list support for methods * src main.java.src2.main.java.controlP5.controlp5.CColor.java: removing alpha masking * src main.java.src2.main.java.controlP5.controlp5.controlp5.MultiList.java: Conflict with moving a Multilist from one to another tab removed field _myChildren. MultiListButtons are now store in the Controller's sublements filed. * src main.java.src2.main.java.controlP5.controlp5.controlp5.ControllerInterface.java: adding getArrayValue(int), setArrayValue(int, float), setArrayValue(float[]); * src main.java.src2.main.java.controlP5.controlp5.controlp5.ControlP5.java: adding setBroadcast(boolean) to disable/enable broadcasting of value changes. 2012-05-30 Andreas Schlegel * version 0.7.5 * src main.java.src2.main.java.controlP5.controlp5.Controller.java: adding empty methods onPress(), onClick(), onRelease(), onReleaseOutside(), onScroll(int),onMove(),onDrag() for input access when extending a controller. * adding convenience constructor to Controllers, convenient when extending a Controller. * adding example use/ControlP5extendController 2012-05-18 Andreas Schlegel * version 0.7.3 * src main.java.src2.main.java.controlP5.controlp5.ControlEvent.java: adding getArrayValue(int), returns a float value for a given index, does not check for ArrayIndexOutOfBounds * src main.java.src2.main.java.controlP5.controlp5.Slider.java: issue 47 http://code.google.com/p/controlp5/issues/detail?id=47 fixed * src main.java.src2.main.java.controlP5.controlp5.controlp5.CheckBox.java, main.java.src2.main.java.controlP5.controlp5.RadioButton.java: issue 41 http://code.google.com/p/controlp5/issues/detail?id=41 fixed * src main.java.src2.main.java.controlP5.controlp5.controlp5.Chart.java: implemented * src main.java.src2.main.java.controlP5.controlp5.ControlFont.java: issue 46 http://code.google.com/p/controlp5/issues/detail?id=46 fixed * src main.java.src2.main.java.controlP5.controlp5.ControlWindow.java: sketches using controlP5 running in the browser as Applet did not work anymore, fixed * src main.java.src2.main.java.controlP5.controlp5.ColorPicker.java: missing implementation reported in http://forum.processing.org/topic/controlp5-how-to-receive-colorpicker-controlevents fixed ColorPicker example has been modified accordingly * src main.java.src2.main.java.controlP5.controlp5.Textfield.java: issue 44 http://code.google.com/p/controlp5/issues/detail?id=44 fixed * src controlP5.ControlWindowKeyHandler.java: issue 49 http://code.google.com/p/controlp5/issues/detail?id=49 fixed, keys boolean array size increased to 525 due to windows key issue 2012-01-15 Andreas Schlegel * version 0.7.0 * src main.java.src2.main.java.controlP5.controlp5.controlp5.ControllerInterface.java, main.java.src2.main.java.controlP5.controlp5.Controller.java,main.java.src2.main.java.controlP5.controlp5.ControllerGroup.java: adding generic type declaration for object specific method chaining (fluent interface) * src main.java.src2.main.java.controlP5.controlp5.RadioButton.java: changed return type for methods addItem from Toggle to RadioButton changed return type for methods setImage from PImage to RadioButton 2011-10-14 Andreas Schlegel * version 0.6.9 * src main.java.src2.main.java.controlP5.controlp5.controlp5.Textarea.java: included isScrollable() to adapt to ListBox 2011-10-13 Andreas Schlegel * version 0.6.8 * src main.java.src2.main.java.controlP5.controlp5.ControllerGroup.java, main.java.src2.main.java.controlP5.controlp5.Controller.java: making addition to isVisible() to check if the parent element is invisible in which case the child element will return false as well although the visible state might be true. this fixes an issue with mousewheel scroll being active for an invisible child controller. The mouseoverlist handling was updated as well. * src main.java.src2.main.java.controlP5.controlp5.Slider.java: Slider will only broadcast when there is a change in value when pressed * src main.java.src2.main.java.controlP5.controlp5.ControlWindow.java: mouseWheelMoved() now only updates the first item in the mouseoverlist and then exits the loop 2011-10-12 Andreas Schlegel * version 0.6.7 * examples reorganized and grouped into 3 categories, controllers, use, extra 2011-10-07 Andreas Schlegel * version 0.6.6 * src controlP5/Textarea.java: scrollbar pixel offset fixed, setPosition update fixed. 2011-09-22 Andreas Schlegel * version 0.6.5 * src controlP5/ControlWindow.java: adding removeMouseOverFor() to remove controllers from the mouseoverlist. Called when a controller or group is removed. Necessary when a controller/group is removed when clicked or hovered by the mouse. 2011-09-20 Andreas Schlegel * version 0.6.4 * src controlP5/Textfield.java: adding support for PFont * javadoc, new design 2011-08-27 Andreas Schlegel * version 0.6.3 * src controlP5/ListBox.java, controlP5/DropdownList.java: adding mouseover support. * src controlP5/ControlP5.java: adding enableMouseWheel(), disableMouseWheel(), isMouseWheel() by default the mouse wheel is active for Slider, Knob, Numberbox, ListBox and DropdownList. The MouseWheelListener is handled by each ControlWindow individually. * src controlP5/ControlWindow.java: adding getFrame() to access the frame object of a ControlWindow. 2011-08-25 Andreas Schlegel * version 0.6.2 * src controlP5/ControlP5.java: removing static from the papplet field, this had consequences for some internal calls to papplet but do not affect any publicly available methods or constructors except the Label class which requires a controlP5 instances as it's constructor's first parameter. * src controlP5/ControlP5.java: field keyHandler is now non-static * src controlP5/Label.java: adding a ControlP5 parameter to all Label constructors due to changes made to field controlP5.papplet * src controlP5/Textlabel.java: Constructors with the first parameter of type Component have been deprecated and replaced with constructors using a reference to ControlP5 as first parameter. if this affects your programs, please make changes accordingly. 2011-08-20 Andreas Schlegel * version 0.6.1 * ongoing internal code refactoring, adding getter and setter methods for existing methods (which are deprecated accordingly) * reference cleanup * preparing for release * src controlP5/ControllerSprite.java: deprecated * src controlP5/ControlCanvas.java: deprecated, use ControlWindowCanvas instead * Names of controllers now follows the OSC address pattern specs, use controlP5.printControllerMap() to see the changed address space. This has been added to controlP5 since controllers now can be directly linked to custom objects and not only to the instance of the main program. http://opensoundcontrol.org/spec-1_0-examples (OSC Address Parts not included) 2011-06-25 Andreas Schlegel * version 0.6.0 * adding Annotation support, very much inspired by cp5magic by Karsten Schmidt (toxi) see the ControlP5annotation example for further details * src controlP5/ControllerAutomator.java: for internal use only, handles the reflection for the annotation implementation * src controlP5/FieldChangedListener.java: for internal use only, listens for changes of variables linked to controllers (needs to be anabled, disabled by default) * src controlP5/ScrollList.java: ScrollList removed, use ListBox. * src controlP5/ControllerGroup.java: moveTo(Tab) changed according to issue http://code.google.com/p/controlp5/issues/detail?id=15 * src controlP5/ListBox.java,controlP5/DropdownList.java: adding mousewheel support. * src controlP5/CallbackEvent.java, controlP5/CallbackListener.java: adding new callback event and listener for controller actions such as enter, leave, pressed, released, releasedoutside. how to use see the ControlP5callback example * src controlP5/Radio.java: removed, has been deprecated. Use RadioButton or CheckBox instead. * src controlP5/ControlWindow.Pointer.java: adding a pointer class which can be used as replacement for mouse activity. To make use of the Pointer, disable the mouse first and then set coordinates and events such as released and pressed from your program to control controllers. see example ControlP5pointer 2011-05-08 Andreas Schlegel * version 0.5.9 * src controlP5/ControllerInterface.java: adding method float[] arrayValue() * src controlP5/ListBox.java: adding addItems(String[]), which allows to add a string array to a ListBox or a DropdownList automatically resulting in a list of listBoxItems * src controlP5/ControlEvent.java: adding method isFrom(String) and isFrom(ControllerInterface) to identify the origin of a Control Event 2011-05-08 Andreas Schlegel * version 0.5.8 * src controlP5/ListBox.java: Scrollbar (when visible) is now included inside the dimensions of a listbox (and its derivatives). * src controlP5/Textfield.java: Frame which surrounds a textfield is back again after being removed in version 0.5.7. * src controlP5/ListBox.java, controlP5/DropdownList.java: adding key support. up and down arrows can be used to scroll listbox or dropdownList, up and down, use shift+up/down for faster scrolling, use alt+up/down to jump to the top or bottom. * shuffle 2011-02-14 Andreas Schlegel * version 0.5.7 * src controlP5/Controller.java, controlP5/ControllerGroup.java: toString now prints out Type, name and value instead of all details including position, etc. detailed information can now be accessed through method info(). * src controlP5/Controller.java, controlP5/ControllerGroup.java: adding method info() print out details such as position, visibility, label, id, etc. of a Controller or ControllerGroup. * src controlP5/ListBox.java: adding ControlListeners to ListBox, will also be inherited by DropdownList. * src controlP5/ControlWindowKeyHandler.java: Key combination ALT-L and ALT-S have been removed. ControlP5 setups cant be saved at this point anymore. But ControllerProperties have been introduced instead to save properties for single controllers - how to use ControllerProperties see the examples and source code of controlP5/ControllerProperties.java and controlP5/ControllerProperty.java * src controlP5/Textfield.java: Introducing a new text-cursor. Frame which surrounds a textfield has been removed. * src controlP5/Slider.java, Slider2D.java, controlP5/Knob.java, controlP5/Numberbox.java: adding shuffle() command, when called, a random value will be set for the controller. * src controlP5/Knob.java: Caption Label was missing, now back. * controlP5/Slider2D.java: absolute, relative positioning issue resolved. see http://forum.processing.org/topic/three-problems-i-m-having-with-controlp5 * src controlP5/ControlP5IOHandler.java: Loading and saving controllers in xml format has been removed due to incompletness. Alternatively ControllerProperties are introduced with this release, see below for more details. * src controlP5/ControlWindow.java: Adding setPositionOfTabs() to change the origin of the tab bar. Use controlP5.window().setPositionOfTabs(PVector) or controlP5.window().setPositionOfTabs(int,int) * src controlP5/ControlP5Base.java: Adding saveProperties(String) and loadProperties(String) to save and load serialized controller properties inside a file. The range of controllers implementing save/load properties is yet limited to Slider, Knob, Numberbox, Toggle, Checkbox, RadioButton, Textlabel, Matrix,Range, textarea, ListBox, Dropdown, colorPicker. Properties are currently saved in the java serialization format but xml and possibily json alternatives are being worked out. * src controlP5/ControllerProperty.java: Adding controller property. Controllers can register properties which can be saved in a serialized format. * src controlP5/Matrix.java: Adding setMode(int), please refer to to the documentation which constants to use - cells can be activated by row, column, many-per-row-and-colum * src controlP5/CColor.java: Fields changed from protected to private, use setter and getter to change color values. CColor is serializable so that instances can be saved as properties. * src controlP5/Accordion.java: Adding new class Accordion, an Accordion allows similar behavior as a common UI accordion, here it combines ControlGroups where one or no group can be active at a time. * src controlP5/CVector3f.java: Removed. Replaced with processing.core.PVector. * src controlP5/ControlP5.java: Removing setFilePath(), setUrlPath(), urlPath(), filePath() * src controlP5/ControlP5XMLElement.java, ControlP5/ControlP5XMLParseException: removed. * src controlP5/ControlP5.java: Adding convenience method window() which returns the controlWindow of the sketch, before one had to use window(PApplet) 2010-11-07 Andreas Schlegel * version 0.5.6 * src/controlP5/ListBox.java: adding updateListBoxItems() to update color changes. adding scoll() calls to color related methods to update color changes for currently active listBox buttons. * src/controlP5/ListBox.java: adding item(Controller) to access a ListBoxItem by it's Button reference. * src/controlP5/ControlWindow.java: use isMouseOver(Controller), getMouseOverList() to check if the mouse is inside a specific controller. This does not work for groups, only for controllers. 2010-10-07 Andreas Schlegel * version 0.5.5 * src/controlP5/ControlP5.java: enableShortcuts() and disableShortcuts() were interchanged, fixed now. 2010-09-30 Andreas Schlegel * version 0.5.4 * src/controlP5/RadioButton.java: adding setNoneSelectedAllowed(true/false) default is true. http://forum.processing.org/topic/controlp5-radiobutton-strange-behaviour * src/controlP5/DropdownList.java: renaming PulldownMenu to DropdownList. * src/controlP5/Range.java setMin() and setMax() bug fixed. * src/controlP5/ControlBroadcaster.java: adding addListner(), removeListener(), getListener() any object that implements ControlListener can register with the ControlBroadcaster to receive ControlEvents broadcasted. * src/controlP5/BitFontRenderer.java: fixed ArrayIndexOutOfBoundsException only characters between ASCII 32 and 127 are supported. * src/controlP5/ControlP5.java: disabled clear() call (called from within dispose()) when in applet mode. Reason: all controllers will be cleared due to dispose call when switching tabs. Fix required. * src/controlP5/Button.java: colorForeground and colorActive are reveresed due to adding an active state to buttons when clicked. Rollovers no display colorForeground, clicked buttons will display colorActive. This also affects ListBoxItems. 2010-08-18 Andreas Schlegel * version 0.5.3 * src/controlP5/ListBox.java: adding clear(). clears a ListBox in order to re-filling list. * src/controlP5/ListBox.java: changing behavior of a ListBox-Button. a ListBox-button is clicked, it will call the Button's onLeave() and setIsInside(false) function to solve problem addressed here: http://forum.processing.org/topic/controlp5-listbox-loses-mouseclicks * src/controlP5/ListBox.java: 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 * Controller: adding lock(), unlock(), isLock(), setMoveable(), isMoveable(), isUserInteraction(), setUserInteraction() * Controller: adding plugTo(), unplugFrom() (if this causes any problems or error message, please report) * ControlP5: adding java.util.logging.Logger for logging error, debug, info messages - wrapped in ControlP5.error(), ControlP5.warning(), ControlP5.info(), ControlP5.debug() * ControlP5: added registerDispose() * ControlP5: adding setMoveable() and isMoveable() to disable/enable controllers to be moved around. * ControlP5: adding disableShortcuts(), enableShortcuts() instead of disableKeys() and enableKeys() * ControlP5: deprecating lock(), unlock(), disableKeys(), enableKeys() * 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(). * ControlWindow: adding setUndecorated(), isUndecorated(), toggleUndecorated() * 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. 0.4.4 * ControlWindow: imageMode CENTER/CORNER issue fixed. 0.4.3 * Controller.isInside is private now. use setIsInside(true/false) and getIsInside() to access this boolean field. * trying to solve the problem of overlapping described here: http://processing.org/discourse/yabb2/YaBB.pl?num=1259885420/0#0 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); myTab.addDrawable(myTextlabel);