Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

153 lines (102 sloc) 5.66 kb
0.2.3, 14.10.2010
* Add a dispose event. Injecting into another parent triggers disposal first.
* Make it really remove nested events.
* Dont use wrapper anymore
* Add increment/decrement methods to slider
* Sane scrollbars & resizable and them working together. Todo: Hold scrollbar increment button to repeadetly scroll the content. For fucks sake, it's been a long time.
Good things here is that we try not to double-render the widget when hitting boundaries, rather than we try to precalculate values and render the ones already affected by limits.
* New cool drawing feature: Layer offsets. You can specify now any layer on the widget to have offsets in pixels or percents (calculated from widgets height & widget). Small but VERY expressive feature.
* New layer presets like ART.Layer.Fill.Background && ART.Layer.Fill.Background.Offset.
* Widget can now build layout without parent assigned. Used for building scrollbars at the moment
* Cleanups
0.2.2, 7.10.2010
* Fully remanaged fast arrays of various styles and properties. All things ART.ComplexStyles, ART.Styles.Element, ART.Styles.More, Widget.Ignore.Events and other guys become Widget.[Styles|Events|Attributes|States].[Ignore|Paint|Complex].
* Added a way to set events for specific value of state :) And a whole new cool way of stacking event definitions together. Here is a not very useful example to get the idea:
new Class({
Includes: [
options: {
events: {
enabled: { //only applied when the widget is enabled, removed when disabled
element: {
click: 'execute' //do action
hovered: { //nesting in action. only applied when element is enabled and hovered
mousemove: 'releaseUnicorns'
disabled: {
element: {
click: 'pulsate' //friendly way to show that the thing is disabled
pulsate: function() {},
releaseUnicorns: function() {}
You can make your own state-specific event groups by extending LSD.States.Evevnts.[Positive|Negative]
* Added a way to make state set real attribute on change instead of only pseudo class with emulation. Used for disabled state to set a corresponding attribute for element to stop taking focus and other things
* Made actions into class definition. Now you can add your own actions just like events or layers:
new Class({
Extends: ART.Widget,
options: {
actions: {
explode: {
enable: function() {
//will fire when widget is enabled and in dom
disable: function() {
//will fire when element is disabled, sometimes before enable
//if widget is disabled from the start. so if you want to detach
//events on some objects, make sure it exists in the first time
if (this.drag) this.drag.detach() //not this.getDrag().detach()
//optional below
uses: ['#handle'], //wait for widget (any selectors in array) before enable
lazy: false, //an option to not enable/disable from the start,
//when true, means you have to manually
// this.addAction(this.options.actions.explode)
run: false, //when true doesnt wait for widget to be injected into dom. enables right away.
events: 'explode' //will [add|remove]Events(
* Removed outerclick from the codebase for good. Goodbye, buggy friend.
* Removed retain event definition from all the widgets and put into a focus trait. Because almost everything needs it. For the cases when you dont need it, just put a "delete" on top of the initialize function.
The above code is actually used in Menu trait.
* Going further splitting states and traits. Now State goes into its own object, then Stateful array then is [State, Trait], like this:
LSD.Trait.Item.State = Class.Stateful({
selected: ['select', 'unselect']
LSD.Trait.Item.Stateful = [
Gives ability to include state only. Useful for including focus/blur state without focus trait logic.
* Revamped slider and touchable trait so they get disabled correctly. Right now, if the slider starts disabled, nothing gets attached at all. Thanks to new action system.
* Widget now fires enable event by default on initialization
* Relicensed under Public domain (
* When trying to initialize a trait from class tag, try to use .Stateful sub-class first.
* Use the new object storages
* Use new enabled event subgroups
* Use new Mixin.Focus.State, LSD.Mixin.Touchable.Stateful, Mixin.Focus.Stateful
* Add getElements/getElement methods to DOM trait that use Slick. Use those methods in Radio widget to locate widgets with the same name
* Rewor input range to avoid creating slider object on initialization. Saves a few extra function calls for disabled ranges. Need a way to set value when its disabled though and position the thumb.
* Remove all retain event definitions from widget. They are now inherited from Focus trait
* Make Draggable and Resizable trait use new actions with 'uses' calls to wait for handles. Very handy and cool.
* Hoverable got greatly simplified because of action system.
* Active & Focused states are no longer in a base widget! :) Built ins right now are: hidden, disabled, built & attached. Two latter are internal and are not reflected with changing class or adding pseudo
* Relicensed under Public domain (
Jump to Line
Something went wrong with that request. Please try again.