Widget states rethought


Not having a clue on implementation and guessing there would be all
kinds of problems with backwards compatibility and/or migration ...

I now think there should be a clear split between the state of
interaction, the state of the model represented by each widget in
question and finally the input focus system.

2 sets of mutually exclusive states of interaction:
* Outside
* Inside (Hover)

* Button down
* Button up
* Double-click (a state that would need artificial duration, but could
be useful to provide feedback to the user)
* Drag

All clickable widgets should support at least the first 4.

All except Outside and Hover could exist per pointer button, but this
would break exclusion and with the possible exception of screencasts, I
wouldn't know what it would be good for.

State of widget model:

State of input focus:
* Focused/Unfocused
* Normal/Default

Hmm, Sensitive/Insensitive doesn't quite fit elsewhere. It's the global

The reason to have all this would be to enable themes to be more
responsiveness and do things developers didn't think of before. Like
striking through a button if the user dragged away from it to cancel the

Thorsten Wilms

thorwil's design for free software:

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]