haiku/docs/user/interface
looncraz 7f9368cae5 Set*UIColor, etc.
The inseparable changes necessary to support live color updating across the
system in a sane, safe, and performant manner.

BView gains:

HasSystemColors()
HasDefaultColors()
AdoptSystemColors()
AdoptParentColors()
AdoptViewColor(BView*)
SetViewUIColor(color_which, float tint)
SetHighUIColor(...
SetLowUIColor(...
ViewUIColor(float* tint)
HighUIColor(...
LowUIColor(...
DelayedInvalidate()

BWindow gains a simple helper method:
IsOffscreenWindow()

BMessage gains:

AddColor()
FindColor()
GetColor()
HasColor()            * allegedly this API is deprecated, but I implemented it anyway
ReplaceColor()
SetColor()

Previous private ColorTools methods are made public and moved into GraphicsDefs:

mix_color, blend_color, disable_color

These are fully compatible with BeOS dan0 R5.1 methods and are just code cleanup
of BeOS example code under the OpenTracker license.

In addition, four new colors are created:
B_LINK_TEXT_COLOR
B_LINK_HOVER_COLOR
B_LINK_ACTIVE_COLOR
B_LINK_VISITED_COLOR

These changes are documented in their proper user documentation files.

In addition, due to a history rewrite, B_FOLLOW_LEFT_TOP has been defined and
used in lieu of B_FOLLOW_TOP | B_FOLLOW_LEFT and is included in this commit.

On the app_server side, the following has changed:

Add DelayedMessage - a system by which messages can be sent at a scheduled time,
and can also be merged according to set rules.  A single thread is used to service the
message queue and multiple recipients can be set for each message.
Desktop gains the ability to add message ports to a DelayedMessage so that
said messages can target either all applications or all windows, as needed.

Desktop maintains a BMessage which is used to queue up all pending color changes
and the delayed messaging system is used to enact these changes after a short
period of time has passed.  This prevents abuse and allows the system to merge
repeated set_ui_color events into one event for client applications, improving
performance drastically.

In addition, B_COLORS_UPDATED is sent to the BApplication, which forwards the message
to each BWindow.  This is done to improve performance over having the app_server
independently informing each window.

Decorator changes are live now, which required some reworking.

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
2016-01-04 06:48:22 -05:00
..
images Add documentation for BRadioButton. 2014-05-28 14:20:59 -04:00
_interface_intro.dox Remove trailing . from titles 2015-01-27 19:15:11 -05:00
_layout_intro.dox Haiku Book: Make the layout introduction somewhat more professional. 2015-03-25 11:47:29 -04:00
AbstractLayout.dox IK documentation update 2014-06-13 17:44:22 -04:00
Alert.dox docs/user: BAlert: Fix incorrect ::TextView() docs. 2015-08-26 14:42:11 -04:00
Bitmap.dox IK documentation update 2014-06-13 17:44:22 -04:00
Box.dox IK documentation update 2014-06-13 17:44:22 -04:00
Button.dox IK documentation update 2014-06-13 17:44:22 -04:00
CheckBox.dox IK documentation update 2014-06-13 17:44:22 -04:00
ColorControl.dox IK documentation update 2014-06-13 17:44:22 -04:00
Control.dox IK documentation update 2014-06-13 17:44:22 -04:00
Dragger.dox IK documentation update 2014-06-13 17:44:22 -04:00
Font.dox Haiku Book: fix some typos. 2015-02-11 19:04:38 -05:00
GraphicsDefs.dox IK documentation update 2014-06-13 17:44:22 -04:00
GridLayout.dox IK documentation update 2014-06-13 17:44:22 -04:00
GroupLayout.dox IK documentation update 2014-06-13 17:44:22 -04:00
IconUtils.dox IK documentation update 2014-06-13 17:44:22 -04:00
InterfaceDefs.dox Some more small documentation fixes 2014-12-19 19:58:14 -05:00
layout_tips.dox Big docs cleanup. 2013-02-07 02:01:19 -05:00
Layout.dox Fix some typos and whitespace in BLayout docs. 2015-04-15 00:30:55 +02:00
LayoutBuilder.dox LayoutBuilder: document C++ method chaining behavior 2015-01-07 17:29:35 +01:00
LayoutBuilder.Group.dox IK documentation update 2014-06-13 17:44:22 -04:00
LayoutItem.dox LayoutItem: better documentation for SetExplicitMinSize. 2014-12-15 10:46:11 +01:00
ListItem.dox IK documentation update 2014-06-13 17:44:22 -04:00
ListView.dox IK documentation update 2014-06-13 17:44:22 -04:00
Menu.dox IK documentation update 2014-06-13 17:44:22 -04:00
MenuBar.dox IK documentation update 2014-06-13 17:44:22 -04:00
MenuField.dox IK documentation update 2014-06-13 17:44:22 -04:00
MenuItem.dox IK documentation update 2014-06-13 17:44:22 -04:00
OptionPopUp.dox Fix a few errors in the nascent BOptionPopUp docs 2014-12-15 21:14:47 -05:00
OutlineListView.dox IK documentation update 2014-06-13 17:44:22 -04:00
Picture.dox IK documentation update 2014-06-13 17:44:22 -04:00
PictureButton.dox IK documentation update 2014-06-13 17:44:22 -04:00
Point.dox IK documentation update 2014-06-13 17:44:22 -04:00
Polygon.dox IK documentation update 2014-06-13 17:44:22 -04:00
PopUpMenu.dox IK documentation update 2014-06-13 17:44:22 -04:00
RadioButton.dox IK documentation update 2014-06-13 17:44:22 -04:00
Rect.dox IK documentation update 2014-06-13 17:44:22 -04:00
Region.dox BRegion: add ScaleBy(BSize) and user documentation. 2014-06-19 19:23:31 +02:00
Screen.dox IK documentation update 2014-06-13 17:44:22 -04:00
ScrollBar.dox IK documentation update 2014-06-13 17:44:22 -04:00
ScrollView.dox Fix typo: on => one 2015-07-07 16:22:27 -07:00
SeparatorItem.dox IK documentation update 2014-06-13 17:44:22 -04:00
Shape.dox Add newline to end of BShape docs 2014-07-14 19:16:06 -04:00
Size.dox BSize docs: fix description of B_SIZE_UNSET. 2015-01-07 15:34:49 +01:00
StringItem.dox IK documentation update 2014-06-13 17:44:22 -04:00
StringView.dox Update BView and BStringView docs 2014-12-05 20:35:40 -05:00
TabView.dox docs/user: TabView: Fix erroneous descriptions of Select() and Deselect(). 2015-07-14 11:26:39 -04:00
TextControl.dox Some more small documentation fixes 2014-12-19 19:58:14 -05:00
TextView.dox IK documentation update 2014-06-13 17:44:22 -04:00
ToolTip.dox Update BToolTip class docs, added credit. 2015-01-02 18:15:25 -05:00
TwoDimensionalLayout.dox IK documentation update 2014-06-13 17:44:22 -04:00
View.dox Set*UIColor, etc. 2016-01-04 06:48:22 -05:00
Window.dox Set*UIColor, etc. 2016-01-04 06:48:22 -05:00