Two buttons at the end to the entry and key bindings (Esc and Enter). They are visible only when there are changes.
The icons appear only when the field is focused and the content is changed since it gained focus.
When hitting escape revert and select all the text.
gtk.ComboxBox
* We miss accept/cancel functionality. Probably patch gtk to allow to replace the entry in the combo box with sugar.Entry.
sugar.SearchEntry
* Use sugar.Entry
* Search button on the left. Clicking should focus the entry.
* Cancel button (Esc) on the right, always visible when there is text in the entry. Clicking it will clear the text and focus the textfield.
* Activate button (Enter) on the right displayed when the content of the text field changed from the last focus or activation.
* While activating:
the Activate button becomes a Spinner.
clicking the close button also cancel the search.
* When activation is completed:
The spinner goes away.
We *don't* clear the entry but we select the text.
* Search can either be incremental or on activation. For incremental there is no Accept button. start_spinning and stop_spinning to control the spin icon. start would only spin for an amount of time decided by the widget itself (and documented).
* The suggestions list is provided by the application. Need to figure out which api to use, either model or signal based.
* Default implementation of suggestions which automatically save the latest searches.
* Make it match the visual design, hopefully just theme changes
sugar.ToolItem
* Optional label, either text or icon
* Used for example to have a label near a SpinButton. Clicking on the label should focus the spin button.
gtk.ProgressBar
* Make it match the visual design, hopefully just theme changes.
* For determinate progress bars should we always pulse to show that there is activity (power consumption? necessary feedback?)
* Do not use text inside the progress bar
sugar.Spinner
* pulse() call to keep it running with a timeout
* stop()
gtk.Range (or sugar.Slider?)
* Property to show the fill in white color, probably default on.
* Draw the discrete steps.
* For colored sliders, subclass gtk.Range and add a gradient.
sugar.LevelIndicator
* Set the number of blocks
* Set the level as percentage
* Property for discrete or not
* We can probably use a GtkAdjustment for most of the above.Rollovers
gtk.TextView
gtk.ScrolledWindow
* Theme it to match the visual.
sugar.ScrolledWindow
* Support for markers. Line as default and optional support for other shapes (star for bookmarks, circles for xos...). Generic way of add marks and keep them updated (observer?)