[haiku-commits] BRANCH waddlesplash-github.looncraz_rebase_backup [1a261f31745b] in src: servers/app kits/interface apps preferences/appearance kits/tracker

  • From: waddlesplash-github.looncraz_rebase_backup <community@xxxxxxxxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Mon, 4 Jan 2016 18:02:03 +0100 (CET)

added 85 changesets to branch 
'refs/remotes/waddlesplash-github/looncraz_rebase_backup'
old head: 0000000000000000000000000000000000000000
new head: 1a261f31745b941b36272bcb1e551884c5391645
overview: https://github.com/waddlesplash/haiku/compare/1a261f31745b

----------------------------------------------------------------------------

7f9368cae5ff: 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@xxxxxxxxx>

ef508c87fd56: LinkReceiver Fix
  
  LinkReceiver would spin endlessly when given a timeout value which prevented
  DelayedMessageSender from being operational.
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

faa44cebd29c: ControlLook Colors
  
  Enable better use of the proper colors, as well as overriding the
  assumed proper colors for labels.
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

61e6e26a5783: ColumnListView colors
  
  ColumnListView now responds to system color changes.
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

0885e593ebae: StatusBar colors
  
  Add fInternalFlags and a single flag to denote the use of custom colors.
  Have status bar use appropriate colors, either by adopting colors, or
  by using system standard colors.
  Live colors updates are also working.
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

94593b870a81: BAboutWindow colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

5d3c1b9d40a1: BAlert colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

c0b2b3f6f19d: BBox colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

f0c16064538b: BButton colors
  
  BButton now properly uses the B_CONTROL_BACKGROUND_COLOR instead of
  a darkened view color.
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

c45840589d7d: BControl colors
  
  This includes simple changes to common controls.
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

f7533417aaeb: AbstractSpinner colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

61d0f0bb2cee: Menu colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

f22072de1384: BListView colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

ced83ffc129f: BTabView colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

7f8ec9211936: Specialized Layout Views colors
  
  Views used by layout.
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

012fde40ab28: Colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

05b5892199c1: ToolTip colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

da2563634146: Chart colors and some font awareness
  
  Chart had horrible behavior with large fonts and many hardcoded colors.
  This helps this situation immensely.
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

e0d9a0170db5: Mail Deskbar Replicant colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

05470b1a0a66: Bluetooth Deskbar Replicant colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

f680537e83fc: Server UI colors
  
  Iterative changes, mostly.
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

0f620b343c2c: Time Preflet colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

0339d3551bb3: Screensaver preflet colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

0534320c08f0: Screen Preflet colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

1b7fde148eca: Network Preflet Colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

df7c738ca6ba: Mouse Preflet Colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

c67528ea6745: Media System Colors
  
  Preflet, replicant, and DefaultMediaTheme
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

6461fcea3b62: Mail Preflet Colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

3d3535252454: Locale Preflet Colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

9f5cc6fff151: Keymap colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

365004b374d9: Joysticks Preflet colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

3e51fd498284: Font Preflet colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

09e1d6e6d92f: FileTypes Preflet colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

f3a8604f4f9f: DataTranslation Preflet - and addons - colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

b328b4b493ed: Bluetooth Preflet colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

7b9a881bf889: Appearance Color Handling Update
  
  Use BMessage color support and new API.
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

90e8134e89c4: Print System Colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

8931df15825f: Tracker uses new API, Improved Font Awareness
  
  InfoWindow now uses the font size to determine the window size and
  placement of elements.  Also uses syste colors, including link
  colors.  Permissions view not font sensitive at this time.
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

ed7a06d31d0a: Mail kit colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

6404b7a4bd98: ToolBar Colors
  
  This was a bigger change than many others as BButton now defaults to using
  control background colors, and we can not do that here without the buttons
  not appearing as we desire (blending in with the toolbar).
  
  Using the control background color for the toolbar would be unacceptable.
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

48fd9f5aba0e: Shared UI element colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

6ceaefe5d6fc: Bluetooth Incoming Connection colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

f22a569034b3: /bin colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

7b6f38c1c00d: WebPositive Colors
  
  Use system colors, ensure that we don't rely on view having a default
  white background when using the layout API (DownloadProgressView)
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

1463205dd771: Terminal colors
  
  When resizing a window, we need to ensure the low color and the view color 
are the same,
  otherwise the drawing results will be unpleasant.
  
  Here, I decided to use the user Terminal colors rather than a system color.
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

c6eaecdadbcd: Switcher colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

e9249f8fb11a: Sudoku colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

e0b023c16243: StyledEdit colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

21d9b7ceb311: SoundRecorder colors
  
  I lack the hardware to fully adapt this program at this time.
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

73f52fa16e98: ShowImage colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

b7a2ec5d18e3: Screenshot window colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

0d97660bdea8: resedit colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

fa98ad271d39: Pulse colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

db89b295df25: ProcessController colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

f4d14203f86d: PowerStatus colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

65fde00f1dbe: PatchBay Colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

dcd9685f5e71: Pairs colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

d6af3f10fece: PackageInstaller colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

12c1c3fd1af3: OverlayImage app colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

e0eb25861720: Network Status Colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

1edebc863dd9: MediaPlayer colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

c753a993e2b4: Mail application colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

a50eb895a09e: Magnify app colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

062f035c588c: Login UI rework
  
  Improve placement with different font sizes, and use user colors.
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

996a99deb2dc: Install application colors
  
  Also better placement of text when official logo is absent.
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

66a0aa9ac262: Uninstaller colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

1c7678aa6453: Icon-o-Matic colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

19750eb0e3c3: HaikuDepot colors
  
  This application proved the most difficult to get to use system colors.
  It uses a specialized text handling system that does not expose the
  ability to change text or background colors at any point.
  
  After discussing at length with the original author it was discovered
  that the system is not working as originally intended and fixing it is
  beyond the scope of this commit. As such, I added the ability for this
  system to use color defined constants so that it can update with system
  color changes.  I also removed its use from the package list view, as
  there was no way to override the color choices to make the MarkupTextView
  fit in properly with list colors.  This, however, is a non issue as BTextView
  has every needed capability for the short description.
  
  In addition to using system colors and live updates, I took it upon myself
  to improve the legibility of the user ratings view.  A faint line now 
separates
  each rating, and the rating bars use the control mark color so that they stand
  out as something other than a drawing error (which is what I thought it was 
for
  a long time).
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

d2d2fa1e0245: FontDemo colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

76ef9417cda8: FirstBootPrompt colors and size
  
  Intelligently use font size to set the window size.
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

c1efa0536b8e: Expander colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

9405bd24e402: DriveSetup colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

c026852a0dc2: DiskProbe colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

b3f9e1a44243: Device app colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

26e40e9b26fd: Deskbar colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

8a132df386c6: DeskCalc colors
  
  Due to the button color logic, we use the rgb_color Brightness to determine
  the label colors.
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

73da93d053da: Debugger colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

c8d304f6ae23: CharacterMap colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

058870203b47: BootManager colors, size
  
  Use system colors, intelligently size window according to the font size.
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

6a4c5eb9d636: ActivityMonitor colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

53c2a09160ac: AboutSystem colors
  
  Use slightly different colors for heading text than for subheading text.
  Change uptime view from a BTextView to a BStringView.  This fixes the issue
  where the AboutWindow did not properly fit its contents.
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

fa19bf7f0600: Print server add-ons' colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

93e6e25fce03: Mail daemon addon colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

0be510e5774f: TeamMonitorWindow colors
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

1a261f31745b: AboutSystem text color bug fix
  
  Improper comparison from HasColor() in B_COLORS_UPDATED conditional resulted
  in text colors not updating when changed.
  
  Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

                                        [ looncraz <looncraz@xxxxxxxxxxxx> ]

----------------------------------------------------------------------------

336 files changed, 4774 insertions(+), 1620 deletions(-)
docs/user/app/Message.dox                        | 140 ++-
docs/user/interface/View.dox                     | 189 +++-
docs/user/interface/Window.dox                   |  18 +-
headers/os/app/AppDefs.h                         |   6 +-
headers/os/app/Message.h                         |  16 +
headers/os/interface/Box.h                       |   5 +-
headers/os/interface/Button.h                    |   5 +-
headers/os/interface/ChannelControl.h            |   5 +-
headers/os/interface/ChannelSlider.h             |   8 +-
headers/os/interface/CheckBox.h                  |   5 +-
headers/os/interface/ControlLook.h               |  18 +-
headers/os/interface/GraphicsDefs.h              |   9 +-
headers/os/interface/InterfaceDefs.h             |  10 +
headers/os/interface/LayoutBuilder.h             |  19 +-
headers/os/interface/ListView.h                  |   5 +-
headers/os/interface/MenuField.h                 |   8 +-
headers/os/interface/MultiChannelControl.h       |   5 +-
headers/os/interface/OptionControl.h             |   5 +-
headers/os/interface/OptionPopUp.h               |   7 +-
headers/os/interface/OutlineListView.h           |   5 +-
headers/os/interface/PictureButton.h             |   5 +-
headers/os/interface/RadioButton.h               |   5 +-
headers/os/interface/ScrollView.h                |   3 +-
headers/os/interface/Slider.h                    |   8 +-
headers/os/interface/SplitView.h                 |   3 +-
headers/os/interface/StatusBar.h                 |   5 +-
headers/os/interface/StringView.h                |   2 +-
headers/os/interface/TextControl.h               |   3 +-
headers/os/interface/View.h                      |  36 +-
headers/os/interface/Window.h                    |   2 +-
headers/private/app/ServerProtocol.h             |  11 +
headers/private/app/ServerProtocolStructs.h      |   4 +
headers/private/app/ServerReadOnlyMemory.h       |  10 +-
headers/private/interface/AbstractSpinner.h      |   2 +-
headers/private/interface/ColorTools.h           |  79 --
headers/private/interface/ColumnListView.h       |   7 +-
headers/private/interface/DecimalSpinner.h       |   2 +-
headers/private/interface/ViewPrivate.h          |  14 +-
headers/private/shared/CalendarView.h            |   3 +-
.../devices/keyboard/TeamMonitorWindow.cpp       |   6 +-
.../inbound_filters/match_header/ConfigView.cpp  |   2 +-
.../notifier/NotifierConfigView.cpp              |   2 +-
.../spam_filter/SpamFilterConfig.cpp             |   2 +-
.../outbound_filters/fortune/ConfigView.cpp      |   2 +-
.../print/drivers/pdf/source/DocInfoWindow.cpp   |   4 +-
.../print/drivers/pdf/source/FontsWindow.cpp     |   4 +-
.../transports/hp_jetdirect/SetupWindow.cpp      |   2 +-
src/add-ons/print/transports/ipp/IppSetupDlg.cpp |   2 +-
src/add-ons/print/transports/lpr/LprSetupDlg.cpp |   2 +-
src/add-ons/translators/bmp/BMPView.cpp          |   2 +-
src/add-ons/translators/exr/ConfigView.cpp       |   2 +-
src/add-ons/translators/gif/GIFView.cpp          |   2 +-
src/add-ons/translators/hpgs/ConfigView.cpp      |   2 +-
src/add-ons/translators/jpeg/JPEGTranslator.cpp  |   2 +-
.../translators/jpeg2000/JPEG2000Translator.cpp  |   2 +-
src/add-ons/translators/pcx/ConfigView.cpp       |   2 +-
src/add-ons/translators/png/PNGView.cpp          |   4 +-
src/add-ons/translators/ppm/PPMTranslator.cpp    |   2 +-
src/add-ons/translators/raw/ConfigView.cpp       |   2 +-
src/add-ons/translators/rtf/ConfigView.cpp       |   2 +-
src/add-ons/translators/sgi/SGIView.cpp          |   2 +-
src/add-ons/translators/stxt/STXTView.cpp        |   2 +-
src/add-ons/translators/tga/TGAView.cpp          |   2 +-
src/add-ons/translators/tiff/TIFFView.cpp        |   4 +-
src/add-ons/translators/webp/ConfigView.cpp      |   2 +-
.../translators/wonderbrush/WonderBrushView.cpp  |   2 +-
src/apps/aboutsystem/AboutSystem.cpp             |  74 +-
src/apps/aboutsystem/Jamfile                     |   2 +-
src/apps/activitymonitor/ActivityView.cpp        |   9 +-
src/apps/activitymonitor/ActivityWindow.cpp      |   3 +-
src/apps/activitymonitor/SettingsWindow.cpp      |   1 +
src/apps/bootmanager/BootManagerWindow.cpp       |   8 +-
src/apps/bootmanager/WizardPageView.cpp          |  20 +-
src/apps/charactermap/CharacterView.cpp          |  16 +-
.../gui/inspector_window/InspectorWindow.cpp     |   6 +-
.../gui/inspector_window/MemoryView.cpp          |   4 +-
.../utility_windows/ExpressionPromptWindow.cpp   |   2 +-
.../gui/utility_windows/WatchPromptWindow.cpp    |   2 +-
src/apps/deskbar/BarMenuBar.cpp                  |   2 +-
src/apps/deskbar/BarMenuTitle.cpp                |   2 +-
src/apps/deskbar/BarView.cpp                     |   2 +-
src/apps/deskbar/ExpandoMenuBar.cpp              |   2 +-
src/apps/deskbar/InlineScrollView.cpp            |   2 +-
src/apps/deskbar/StatusView.cpp                  |  11 +-
src/apps/deskbar/Switcher.cpp                    |  92 +-
src/apps/deskbar/TeamMenuItem.cpp                |  11 +-
src/apps/deskbar/TimeView.cpp                    |  10 +-
src/apps/deskbar/WindowMenuItem.cpp              |   2 +-
src/apps/deskcalc/CalcView.cpp                   |  17 +-
src/apps/devices/PropertyListPlain.cpp           |  26 +-
src/apps/devices/PropertyListPlain.h             |   3 +
src/apps/devices/ResourceUsageWindow.cpp         |   2 +-
src/apps/diskprobe/FindWindow.cpp                |   2 +-
src/apps/diskprobe/ProbeView.cpp                 |   6 +-
src/apps/diskprobe/TypeEditors.cpp               |  16 +-
src/apps/drivesetup/DiskView.cpp                 |  13 +-
src/apps/expander/PasswordAlert.cpp              |   4 +-
src/apps/firstbootprompt/BootPromptWindow.cpp    |  14 +-
src/apps/fontdemo/ControlView.cpp                |   2 +-
[ *** stats truncated: 237 lines dropped *** ]

############################################################################

Commit:      7f9368cae5ff96137d32a60ed2e86795421f8222
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:52:48 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:48:22 2016 UTC

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@xxxxxxxxx>

----------------------------------------------------------------------------

diff --git a/docs/user/app/Message.dox b/docs/user/app/Message.dox
index 6e1e28e..50f9e12 100644
--- a/docs/user/app/Message.dox
+++ b/docs/user/app/Message.dox
@@ -1078,6 +1078,7 @@
        \since BeOS R3
 */
 
+
 /*!
        \fn status_t BMessage::AddFloat(const char* name, float aFloat)
        \brief Convenience method to add a \c float to the label \a name.
@@ -1119,6 +1120,26 @@
 
 
 /*!
+       \fn status_t BMessage::AddColor(const char* name, rgb_color aColor)
+       \brief Convenience method to add a \c rgb_color to the label \a name.
+
+       This method calls AddData() with the \c B_RGB_32_BIT_TYPE \a type.
+
+       \param name The label to associate the data with.
+       \param aColor The value to store in the message.
+
+       \returns A status code, \c B_OK on success or an error code.
+
+       \see AddColor() for a more detailed overview of the inner workings.
+       \see FindColor()
+       \see GetColor()
+       \see ReplaceColor()
+
+       \since Haiku R1
+*/
+
+
+/*!
        \fn status_t BMessage::AddPointer(const char* name, const void* 
aPointer)
        \brief Convenience method to add a \c pointer to the label \a name.
 
@@ -1808,6 +1829,48 @@
 
 
 /*!
+       \fn status_t BMessage::FindColor(const char* name, rgb_color* value)
+       \brief Find a color with the label \a name.
+
+       This is an overloaded version of
+       FindColor(const char*, int32, rgb_color*) const
+       where the data is sought at \a index \c 0.
+
+       \param name The label to which the data is associated.
+       \param value The object in which the data should be copied.
+
+       \returns A status code, \c B_OK on success or an error code.
+       \retval B_OK The object now contains the requested data.
+       \retval B_NAME_NOT_FOUND There is no field with this \a name.
+
+       \since Haiku R1
+*/
+
+
+/*!
+       \fn status_t BMessage::FindColor(const char* name, int32 index,
+               rgb_color* value) const
+       \brief Find a color at the label \a name at an \a index.
+
+       This method looks for the data with the \c B_RGB_32_BIT_TYPE, and copies
+       it into a provided buffer.
+
+       \param name The label to which the data is associated.
+       \param index The index from which the data should be copied.
+       \param value The object in which the data should be copied.
+
+       \returns A status code, \c B_OK on success or an error code.
+       \retval B_OK The object now contains the requested data.
+       \retval B_BAD_INDEX The \a index does not exist.
+       \retval B_NAME_NOT_FOUND There is no field with this \a name.
+
+       \see FindColor(const char*, rgb_color*) const
+
+       \since BeOS R3
+*/
+
+
+/*!
        \fn status_t BMessage::FindPointer(const char* name, void** pointer) 
const
        \brief Find a pointer at the label \a name.
 
@@ -1849,7 +1912,7 @@
        \retval B_BAD_INDEX The \a index does not exist.
        \retval B_NAME_NOT_FOUND There is no field with this \a name.
 
-       \see FindPointer(const char*, double*) const
+       \see FindPointer(const char*, void*) const
 
        \since BeOS R3
 */
@@ -2570,6 +2633,49 @@
 
 
 /*!
+       \fn status_t BMessage::ReplaceColor(const char* name, rgb_color aColot)
+       \brief Replace a color at the label \a name.
+
+       This method is an overloaded method of
+       ReplaceColor(const char*, int32, rgb_color).
+       It replaces the data at \a index \c 0.
+
+       \param name The name associated with the data to replace.
+       \param aColor Where to store in the message.
+
+       \returns A status code, \c B_OK on success or an error code.
+       \retval B_OK The operation succeeded.
+       \retval B_NAME_NOT_FOUND There is no field with this \a name.
+
+       \since Haiku R1
+*/
+
+
+/*!
+       \fn status_t BMessage::ReplaceColor(const char* name, int32 index,
+               rgb_color aColor)
+       \brief Replace a rgb_color at the label \a name at a specified
+              \a index.
+
+       The data at the specified \a name and \a index will be replaced, if it
+       matches the \c B_RGB_32_BIT_TYPE.
+
+       \param name The name associated with the data to replace.
+       \param index The index in the array to replace.
+       \param aColor Where to store in the message.
+
+       \returns A status code, \c B_OK on success or an error code.
+       \retval B_OK The operation succeeded.
+       \retval B_BAD_INDEX The index was out of range.
+       \retval B_NAME_NOT_FOUND There is no field with this \a name.
+
+       \see ReplaceColor(const char*, rgb_color)
+
+       \since Haiku R1
+*/
+
+
+/*!
        \fn status_t BMessage::ReplacePointer(const char* name,
                const void* pointer)
        \brief Replace a pointer at the label \a name.
@@ -3514,6 +3620,38 @@ bool enabled = GetBool("enabled", false);
 
 
 /*!
+       \fn rgb_color BMessage::GetColor(const char* name, rgb_color 
defaultValue) const
+       \brief Return the rgb_color value from message with \a name, or
+              \a defaultValue if not found.
+
+       \param name The name of the item to retrieve.
+       \param defaultValue The value to use if the item specified by \a name
+              is not found.
+
+       \return The item with \a name, or \a defaultValue if not found.
+
+       \since Haiku R1
+*/
+
+
+/*!
+       \fn rgb_color BMessage::GetColor(const char* name, int32 index,
+               rgb_colorr defaultValue) const
+       \brief Return the rgb_color value from message with \a name and \a 
index, or
+              \a defaultValue if not found.
+
+       \param name The name of the item to retrieve.
+       \param index The index of the item to retrieve if there is more than 
one.
+       \param defaultValue The value to use if the item specified by \a name
+              is not found.
+
+       \return The item with \a name, or \a defaultValue if not found.
+
+       \since Haiku R1
+*/
+
+
+/*!
        \fn const char* BMessage::GetString(const char* name,
                const char* defaultValue) const
        \brief Return the string from message with \a name, or \a defaultValue 
if
diff --git a/docs/user/interface/View.dox b/docs/user/interface/View.dox
index 80f7767..6ae10e7 100644
--- a/docs/user/interface/View.dox
+++ b/docs/user/interface/View.dox
@@ -1,13 +1,14 @@
 /*
- * Copyright 2011-2014 Haiku, Inc. All rights reserved.
+ * Copyright 2011-2015 Haiku, Inc. All rights reserved.
  * Distributed under the terms of the MIT License.
  *
  * Authors:
  *             John Scipione, jscipione@xxxxxxxxx
+ *             Joseph Groover, looncraz@xxxxxxxxxxxx
  *
  * Corresponds to:
- *             headers/os/interface/View.h      hrev47274
- *             src/kits/interface/View.cpp      hrev47274
+ *             headers/os/interface/View.h      hrev497**
+ *             src/kits/interface/View.cpp      hrev497**
  */
 
 
@@ -524,6 +525,15 @@
 
 
 /*!
+       \var B_FOLLOW_LEFT_TOP
+       \brief The margins between the left and top sides of the view and the 
left
+              and top sides of its parent remain constant.
+
+       \since Haiku R1
+*/
+
+
+/*!
        \class BView
        \ingroup interface
        \ingroup libbe
@@ -596,12 +606,13 @@ if (Window()->LockLooper()) {
 
        Each view has a ViewColor() that fills the frame rectangle before the
        view does any drawing of its own. The default view color is white, you 
may
-       change the view color by calling SetViewColor(). A commonly used view 
color
-       is \c B_PANEL_BACKGROUND_COLOR which is a grey color used as the view 
color
-       of many Interface Kit classes. If you set the view color to
-       \c B_TRANSPARENT_COLOR then the Application Server won't erase the 
clipping
-       region of the view before updating, this should only be used if the view
-       erases itself by drawing on every pixel in the clipping region.
+       change the view color by calling SetViewColor() or, as of Haiku R1,
+       SetViewUIColor(). A commonly used view color is \c 
B_PANEL_BACKGROUND_COLOR
+       which is a user-defined color used as the view color of most 
applications.
+       If you set the view color to \c B_TRANSPARENT_COLOR then the 
Application Server
+       won't erase the clipping region of the view before updating, this 
should only
+       be used if the view erases itself by drawing on every pixel in the 
clipping
+       region.
 
        If you want to set the view color of a view to be the same as its 
parent you
        need to set it within the AttachedToWindow() method of the view like so:
@@ -614,6 +625,7 @@ SetViewColor(Parent()->ViewColor());
 */
 
 
+
 /*!
        \fn BView::BView(const char* name, uint32 flags, BLayout* layout)
        \brief Layout constructor.
@@ -2058,6 +2070,59 @@ SetViewColor(Parent()->ViewColor());
 
 
 /*!
+       \fn bool BView::HasDefaultColors() const
+       \brief Tests if the view has any colors set.
+
+       \return Boolean value, true if colors are not set.
+
+       \since Haiku R1
+*/
+
+
+/*!
+       \fn bool BView::HasSystemColors() const
+       \brief Tests if the view is using system "panel" colors.
+                  B_PANEL_BACKGROUND_COLOR for ViewUIColor()
+                  B_PANEL_BACKGROUND_COLOR for LowUIColor()
+                  B_PANEL_TEXT_COLOR for HighUIColor()
+
+       \return Boolean value, true if colors are as described.
+
+       \since Haiku R1
+*/
+
+
+/*!
+       \fn void BView::AdoptParentColors()
+       \brief Attempts to use the colors of any parent view.
+                  Will adopt view, low, and high colors.
+                  Should be called in AttachedToWindow() or AllAttached().
+
+       \since Haiku R1
+*/
+
+
+/*!
+       \fn void BView::AdoptSystemColors()
+       \brief Instructs view to use standard system "panel" colors.
+                  B_PANEL_BACKGROUND_COLOR for ViewUIColor()
+                  B_PANEL_BACKGROUND_COLOR for LowUIColor()
+                  B_PANEL_TEXT_COLOR for HighUIColor()
+
+       \since Haiku R1
+*/
+
+
+/*!
+       \fn void BView::AdoptViewColors(BView* view)
+       \brief Attempts to use the colors of a given view.
+                  Will adopt view, low, and high colors.
+
+       \since Haiku R1
+*/
+
+
+/*!
        \fn void BView::SetHighColor(rgb_color color)
        \brief Set the high color of the view.
 
@@ -2082,6 +2147,18 @@ SetViewColor(Parent()->ViewColor());
 
 
 /*!
+       \fn void BView::SetHighUIColor(color_which which, float tint)
+       \brief Set the high color of the view to a system constant.
+              The color will update live with user changes.
+
+       \param which The color_which constant to set.
+       \param tint Optional tint value to use.
+
+       \since Haiku R1
+*/
+
+
+/*!
        \fn rgb_color BView::HighColor() const
        \brief Return the current high color.
 
@@ -2095,6 +2172,20 @@ SetViewColor(Parent()->ViewColor());
 
 
 /*!
+       \fn color_which BView::HighUIColor(float* tint) const
+       \brief Return the current high color constant being used.
+
+       \param tint Optional float pointer in which to store the tint
+                               value used to modify the system color constant.
+       \return The current high color constant.
+
+       \sa SetHighUIColor(color_which, float)
+
+       \since Haiku R1
+*/
+
+
+/*!
        \fn void BView::SetLowColor(rgb_color color)
        \brief Set the low color of the view.
 
@@ -2118,6 +2209,18 @@ SetViewColor(Parent()->ViewColor());
 
 
 /*!
+       \fn void BView::SetLowUIColor(color_which which, float tint)
+       \brief Set the low color of the view to a system constant.
+              The color will update live with user changes.
+
+       \param which The color_which constant to set.
+       \param tint Optional tint value to use.
+
+       \since Haiku R1
+*/
+
+
+/*!
        \fn rgb_color BView::LowColor() const
        \brief Return the current low color.
 
@@ -2131,6 +2234,20 @@ SetViewColor(Parent()->ViewColor());
 
 
 /*!
+       \fn color_which BView::LowUIColor(float* tint) const
+       \brief Return the current low color constant being used.
+
+       \param tint Optional float pointer in which to store the tint
+                               value used to modify the system color constant.
+       \return The current low color constant.
+
+       \sa SetLowUIColor(color_which, float)
+
+       \since Haiku R1
+*/
+
+
+/*!
        \fn void BView::SetViewColor(rgb_color color)
        \brief Set the view color of the view.
 
@@ -2155,6 +2272,18 @@ SetViewColor(Parent()->ViewColor());
 
 
 /*!
+       \fn void BView::SetViewUIColor(color_which which, float tint)
+       \brief Set the view color of the view to a system constant.
+              The color will update live with user changes.
+
+       \param which The color_which constant to set.
+       \param tint Optional tint value to use.
+
+       \since Haiku R1
+*/
+
+
+/*!
        \fn rgb_color BView::ViewColor() const
        \brief Return the current view color.
 
@@ -2168,6 +2297,20 @@ SetViewColor(Parent()->ViewColor());
 
 
 /*!
+       \fn color_which BView::ViewUIColor(float* tint) const
+       \brief Return the current view color constant being used.
+
+       \param tint Optional float pointer in which to store the tint
+                               value used to modify the system color constant.
+       \return The current view color constant.
+
+       \sa SetViewUIColor(color_which, float)
+
+       \since Haiku R1
+*/
+
+
+/*!
        \fn void BView::ForceFontAliasing(bool enable)
        \brief Turn anti-aliasing on and off when printing.
 
@@ -3697,6 +3840,34 @@ SetViewColor(Parent()->ViewColor());
 
 
 /*!
+       \fn void BView::DelayedInvalidate(bigtime_t delay)
+       \brief Sends a message to App Server to redraw the entire view after
+              a certain, minimum, delay. Repeated calls to this method may be
+              merged, but the view is guaranteed to be redrawn after the delay
+              given in the first call of this method.
+
+       \param delay The time, in microseconds, to wait until redrawing the 
view.
+
+       \since Haiku R1
+*/
+
+
+/*!
+       \fn void BView::DelayedInvalidate(bigtime_t delay, BRect invalRect)
+       \brief Sends a message to App Server to redraw the portion of the view
+              specified by \a invalRect after a certain, minimum, delay.
+              Repeated calls to this method may be merged, but the invalidated
+              rect is guaranteed to be redrawn after the minimum delay given
+              by the first call of this method.
+
+       \param delay The time, in microseconds, to wait until redrawing the 
view.
+       \param invalRect The rectangular area of the view to redraw.
+
+       \since Haiku R1
+*/
+
+
+/*!
        \fn void BView::InvertRect(BRect rect)
        \brief Inverts the colors within \a rect.
 
diff --git a/docs/user/interface/Window.dox b/docs/user/interface/Window.dox
index 7efc81b..4d7653b 100644
--- a/docs/user/interface/Window.dox
+++ b/docs/user/interface/Window.dox
@@ -1,13 +1,14 @@
 /*
- * Copyright 2011-2014 Haiku, Inc. All rights reserved.
+ * Copyright 2011-2015 Haiku, Inc. All rights reserved.
  * Distributed under the terms of the MIT License.
  *
  * Authors:
  *             John Scipione, jscipione@xxxxxxxxx
+ *             Joseph Groover, looncraz@xxxxxxxxxxxx
  *
  * Corresponds to:
- *             headers/os/interface/Window.h    hrev45799
- *             src/kits/interface/Window.cpp    hrev45799
+ *             headers/os/interface/Window.h    hrev497**
+ *             src/kits/interface/Window.cpp    hrev497**
  */
 
 
@@ -1968,6 +1969,17 @@
 
 
 /*!
+       \fn bool BWindow::IsOffscreenWindow() const
+       \brief Tests if window is used for drawing into a BBitmap.
+              This is mostly used by the Interface Kit itself.
+
+       \return True if the window is used for drawing into a BBitmap.
+
+       \since Haiku R1
+*/
+
+
+/*!
        \fn void BWindow::Show()
        \brief Shows the window on screen, places it frontmost on the screen, 
adds
               the window to Deskbar's window list, and makes it the active 
window.
diff --git a/headers/os/app/AppDefs.h b/headers/os/app/AppDefs.h
index 0a70d8b..d48c585 100644
--- a/headers/os/app/AppDefs.h
+++ b/headers/os/app/AppDefs.h
@@ -67,10 +67,8 @@ enum {
        B_WORKSPACES_CHANGED            = '_WCG',
        B_WORKSPACE_ACTIVATED           = '_WAC',
        B_ZOOM                                          = '_WZM',
-       _COLORS_UPDATED                         = '_CLU',
-               // Currently internal-use only. Later, public as 
B_COLORS_UPDATED
-       _FONTS_UPDATED                          = '_FNU',
-               // Currently internal-use only. Later, public as B_FONTS_UPDATED
+       B_COLORS_UPDATED                        = '_CLU',
+       B_FONTS_UPDATED                         = '_FNU',
        _APP_MENU_                                      = '_AMN',
        _BROWSER_MENUS_                         = '_BRM',
        _MENU_EVENT_                            = '_MEV',
diff --git a/headers/os/app/Message.h b/headers/os/app/Message.h
index 7d7eab4..077da89 100644
--- a/headers/os/app/Message.h
+++ b/headers/os/app/Message.h
@@ -29,6 +29,7 @@ class BHandler;
 class BString;
 class BStringList;
 struct entry_ref;
+struct rgb_color;
 
 
 // Name lengths and Scripting specifiers
@@ -154,6 +155,7 @@ public:
                        status_t                        AddBool(const char* 
name, bool value);
                        status_t                        AddFloat(const char* 
name, float value);
                        status_t                        AddDouble(const char* 
name, double value);
+                       status_t                        AddColor(const char* 
name, rgb_color value);
                        status_t                        AddPointer(const char* 
name,
                                                                        const 
void* pointer);
                        status_t                        AddMessenger(const 
char* name,
@@ -241,6 +243,10 @@ public:
                                                                        double* 
value) const;
                        status_t                        FindDouble(const char* 
name, int32 index,
                                                                        double* 
value) const;
+                       status_t                        FindColor(const char* 
name,
+                                                                       
rgb_color* value) const;
+                       status_t                        FindColor(const char* 
name, int32 index,
+                                                                       
rgb_color* value) const;
                        status_t                        FindPointer(const char* 
name,
                                                                        void** 
pointer) const;
                        status_t                        FindPointer(const char* 
name, int32 index,
@@ -324,6 +330,10 @@ public:
                        status_t                        ReplaceDouble(const 
char* name, double value);
                        status_t                        ReplaceDouble(const 
char* name, int32 index,
                                                                        double 
value);
+                       status_t                        ReplaceColor(const 
char* name,
+                                                                       
rgb_color value);
+                       status_t                        ReplaceColor(const 
char* name, int32 index,
+                                                                       
rgb_color value);
                        status_t                        ReplacePointer(const 
char* name,
                                                                        const 
void* pointer);
                        status_t                        ReplacePointer(const 
char* name, int32 index,
@@ -379,6 +389,7 @@ public:
                        bool                            HasBool(const char* 
name, int32 n = 0) const;
                        bool                            HasFloat(const char* 
name, int32 n = 0) const;
                        bool                            HasDouble(const char* 
name, int32 n = 0) const;
+                       bool                            HasColor(const char* 
name, int32 n = 0) const;
                        bool                            HasPointer(const char* 
name, int32 n = 0) const;
                        bool                            HasMessenger(const 
char* name,
                                                                        int32 n 
= 0) const;
@@ -446,6 +457,10 @@ public:
                                                                        double 
defaultValue) const;
                        double                          GetDouble(const char* 
name, int32 index,
                                                                        double 
defaultValue) const;
+                       rgb_color                       GetColor(const char* 
name,
+                                                                       
rgb_color defaultValue) const;
+                       rgb_color                       GetColor(const char* 
name, int32 index,
+                                                                       
rgb_color defaultValue) const;
                        const char*                     GetString(const char* 
name,
                                                                        const 
char* defaultValue = NULL) const;
                        const char*                     GetString(const char* 
name, int32 index,
@@ -477,6 +492,7 @@ public:
                        status_t                        SetUInt32(const char* 
name, uint32 value);
                        status_t                        SetInt64(const char* 
name, int64 value);
                        status_t                        SetUInt64(const char* 
name, uint64 value);
+                       status_t                        SetColor(const char* 
name, rgb_color value);
                        status_t                        SetPointer(const char* 
name, const void* value);
                        status_t                        SetString(const char* 
name, const char* string);
                        status_t                        SetString(const char* 
name,
diff --git a/headers/os/interface/Box.h b/headers/os/interface/Box.h
index 37bdf88..a3020d3 100644
--- a/headers/os/interface/Box.h
+++ b/headers/os/interface/Box.h
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005-2013 Haiku, Inc. All Rights Reserved.
+ * Copyright 2005-2015 Haiku, Inc. All Rights Reserved.
  * Distributed under the terms of the MIT License.
  */
 #ifndef _BOX_H
@@ -12,8 +12,7 @@
 class BBox : public BView {
        public:
                                                        BBox(BRect frame, const 
char* name = NULL,
-                                                               uint32 
resizingMode = B_FOLLOW_LEFT
-                                                                       | 
B_FOLLOW_TOP,
+                                                               uint32 
resizingMode = B_FOLLOW_LEFT_TOP,
                                                                uint32 flags = 
B_WILL_DRAW | B_FRAME_EVENTS
                                                                        | 
B_NAVIGABLE_JUMP,
                                                                border_style 
border = B_FANCY_BORDER);
diff --git a/headers/os/interface/Button.h b/headers/os/interface/Button.h
index 703bb09..71dfac5 100644
--- a/headers/os/interface/Button.h
+++ b/headers/os/interface/Button.h
@@ -1,5 +1,5 @@
 /*
- * Copyright 2001-2014 Haiku, Inc. All rights reserved.
+ * Copyright 2001-2015 Haiku, Inc. All rights reserved.
  * Distributed under the terms of the MIT License.
  */
 #ifndef _BUTTON_H
@@ -20,8 +20,7 @@ public:
 public:
                                                                BButton(BRect 
frame, const char* name,
                                                                        const 
char* label, BMessage* message,
-                                                                       uint32 
resizingMode
-                                                                               
= B_FOLLOW_LEFT | B_FOLLOW_TOP,
+                                                                       uint32 
resizingMode = B_FOLLOW_LEFT_TOP,
                                                                        uint32 
flags = B_WILL_DRAW | B_NAVIGABLE
                                                                                
| B_FULL_UPDATE_ON_RESIZE); 
                                                                BButton(const 
char* name, const char* label,
diff --git a/headers/os/interface/ChannelControl.h 
b/headers/os/interface/ChannelControl.h
index 3f9e5c8..7df9cd9 100644
--- a/headers/os/interface/ChannelControl.h
+++ b/headers/os/interface/ChannelControl.h
@@ -1,5 +1,5 @@
 /*
- * Copyright 2008-2009, Haiku, Inc. All rights reserved.
+ * Copyright 2008-2015, Haiku, Inc. All rights reserved.
  * Distributed under the terms of the MIT License.
  */
 #ifndef _CHANNEL_CONTROL_H
@@ -18,8 +18,7 @@ public:
                                                                
BChannelControl(BRect frame, const char* name,
                                                                        const 
char* label, BMessage* model,
                                                                        int32 
channelCount = 1,
-                                                                       uint32 
resizingMode
-                                                                               
= B_FOLLOW_LEFT | B_FOLLOW_TOP,
+                                                                       uint32 
resizingMode = B_FOLLOW_LEFT_TOP,
                                                                        uint32 
flags = B_WILL_DRAW);
                                                                
BChannelControl(const char* name,
                                                                        const 
char* label, BMessage* model,
diff --git a/headers/os/interface/ChannelSlider.h 
b/headers/os/interface/ChannelSlider.h
index 8c3961b..5151ef1 100644
--- a/headers/os/interface/ChannelSlider.h
+++ b/headers/os/interface/ChannelSlider.h
@@ -1,5 +1,5 @@
 /*
- * Copyright 2009, Haiku, Inc. All rights reserved.
+ * Copyright 2009-2015, Haiku, Inc. All rights reserved.
  * Distributed under the terms of the MIT License.
  */
 #ifndef _CHANNEL_SLIDER_H
@@ -14,15 +14,13 @@ public:
                                                                
BChannelSlider(BRect area, const char* name,
                                                                        const 
char* label, BMessage* message,
                                                                        int32 
channels = 1,
-                                                                       uint32 
resizeMode
-                                                                               
= B_FOLLOW_LEFT | B_FOLLOW_TOP,
+                                                                       uint32 
resizeMode = B_FOLLOW_LEFT_TOP,
                                                                        uint32 
flags = B_WILL_DRAW);
                                                                
BChannelSlider(BRect area, const char* name,
                                                                        const 
char* label, BMessage* message,
                                                                        
orientation orientation,
                                                                        int32 
channels = 1,
-                                                                       uint32 
resizeMode
-                                                                               
= B_FOLLOW_LEFT | B_FOLLOW_TOP,
+                                                                       uint32 
resizeMode = B_FOLLOW_LEFT_TOP,
                                                                        uint32 
flags = B_WILL_DRAW);
                                                                
BChannelSlider(const char* name,
                                                                        const 
char* label, BMessage* message,
diff --git a/headers/os/interface/CheckBox.h b/headers/os/interface/CheckBox.h
index 674a701..056f034 100644
--- a/headers/os/interface/CheckBox.h
+++ b/headers/os/interface/CheckBox.h
@@ -1,5 +1,5 @@
 /*
- * Copyright 2001-2014 Haiku, Inc. All rights reserved.
+ * Copyright 2001-2015 Haiku, Inc. All rights reserved.
  * Distributed under the terms of the MIT License.
  */
 #ifndef _CHECK_BOX_H
@@ -13,8 +13,7 @@ class BCheckBox : public BControl {
 public:
                                                                BCheckBox(BRect 
frame, const char* name,
                                                                        const 
char* label, BMessage* message,
-                                                                       uint32 
resizingMode
-                                                                               
= B_FOLLOW_LEFT | B_FOLLOW_TOP,
+                                                                       uint32 
resizingMode = B_FOLLOW_LEFT_TOP,
                                                                        uint32 
flags = B_WILL_DRAW | B_NAVIGABLE);
                                                                BCheckBox(const 
char* name, const char* label,
                                                                        
BMessage* message, uint32 flags
diff --git a/headers/os/interface/ControlLook.h 
b/headers/os/interface/ControlLook.h
index 6de91e2..445f40b 100644
--- a/headers/os/interface/ControlLook.h
+++ b/headers/os/interface/ControlLook.h
@@ -1,5 +1,5 @@
 /*
- * Copyright 2009-2012, Haiku, Inc. All rights reserved.
+ * Copyright 2009-2015, Haiku, Inc. All rights reserved.
  * Distributed under the terms of the MIT License.
  */
 #ifndef _CONTROL_LOOK_H
@@ -85,6 +85,7 @@ public:
                B_PARTIALLY_ACTIVATED   = 1 << 7, // like B_ACTIVATED, but for 
tri-state
                B_FLAT                                  = 1 << 8, // flat look 
(e.g. button background)
                B_INVALID                               = 1 << 9, // invalid 
value, use B_FAILURE_COLOR
+               B_IS_CONTROL                    = 1 << 10, // use control colors
 
                B_BLEND_FRAME                   = 1 << 16,
        };
@@ -328,27 +329,32 @@ public:
 
        /*virtual*/     void                    DrawLabel(BView* view, const 
char* label,
                                                                        BRect 
rect, const BRect& updateRect,
-                                                                       const 
rgb_color& base, uint32 flags);
+                                                                       const 
rgb_color& base, uint32 flags,
+                                                                       const 
rgb_color* textColor = NULL);
        virtual void                            DrawLabel(BView* view, const 
char* label,
                                                                        BRect 
rect, const BRect& updateRect,
                                                                        const 
rgb_color& base, uint32 flags,
-                                                                       const 
BAlignment& alignment);
+                                                                       const 
BAlignment& alignment,
+                                                                       const 
rgb_color* textColor = NULL);
        // TODO: Would be nice to have a (non-virtual) version of this method
        // which takes an array of labels and locations. That would save some
        // setup with the view graphics state.
        /*virtual*/     void                    DrawLabel(BView* view, const 
char* label,
                                                                        const 
rgb_color& base, uint32 flags,
-                                                                       const 
BPoint& where);
+                                                                       const 
BPoint& where,
+                                                                       const 
rgb_color* textColor = NULL);
 
                        void                            DrawLabel(BView* view, 
const char* label,
                                                                        const 
BBitmap* icon, BRect rect,
                                                                        const 
BRect& updateRect,
-                                                                       const 
rgb_color& base, uint32 flags);
+                                                                       const 
rgb_color& base, uint32 flags,
+                                                                       const 
rgb_color* textColor = NULL);
        virtual void                            DrawLabel(BView* view, const 
char* label,
                                                                        const 
BBitmap* icon, BRect rect,
                                                                        const 
BRect& updateRect,
                                                                        const 
rgb_color& base, uint32 flags,
-                                                                       const 
BAlignment& alignment);
+                                                                       const 
BAlignment& alignment,
+                                                                       const 
rgb_color* textColor = NULL);
 
        virtual void                            GetFrameInsets(frame_type 
frameType,
                                                                        uint32 
flags, float& _left, float& _top,
diff --git a/headers/os/interface/GraphicsDefs.h 
b/headers/os/interface/GraphicsDefs.h
index 5e970c0..e98d6de 100644
--- a/headers/os/interface/GraphicsDefs.h
+++ b/headers/os/interface/GraphicsDefs.h
@@ -1,5 +1,5 @@
 /*
- * Copyright 2008-2012 Haiku, Inc. All rights reserved.
+ * Copyright 2008-2015 Haiku, Inc. All rights reserved.
  * Distributed under the terms of the MIT License.
  */
 #ifndef _GRAPHICS_DEFS_H
@@ -57,6 +57,8 @@ typedef struct rgb_color {
                return *this;
        }
 
+       int32 Brightness() const;
+
        inline bool
        operator==(const rgb_color& other) const
        {
@@ -88,6 +90,11 @@ make_color(uint8 red, uint8 green, uint8 blue, uint8 alpha = 
255)
 #endif
 
 
+rgb_color mix_color(rgb_color color1, rgb_color color2, uint8 amount);
+rgb_color blend_color(rgb_color color1, rgb_color color2, uint8 amount);
+rgb_color disable_color(rgb_color color, rgb_color background);
+
+
 extern const rgb_color         B_TRANSPARENT_COLOR;
 extern const uint8             B_TRANSPARENT_MAGIC_CMAP8;
 extern const uint16            B_TRANSPARENT_MAGIC_RGBA15;
diff --git a/headers/os/interface/InterfaceDefs.h 
b/headers/os/interface/InterfaceDefs.h
index edfe7fd..ed550fb 100644
--- a/headers/os/interface/InterfaceDefs.h
+++ b/headers/os/interface/InterfaceDefs.h
@@ -11,6 +11,7 @@
 
 
 class BBitmap;
+class BMessage;
 class BPoint;
 class BRect;
 
@@ -296,6 +297,7 @@ enum bitmap_drawing_options {
 // Default UI Colors
 
 enum color_which {
+       B_NO_COLOR = 0,
        B_PANEL_BACKGROUND_COLOR = 1,
        B_PANEL_TEXT_COLOR = 10,
        B_DOCUMENT_BACKGROUND_COLOR = 11,
@@ -310,6 +312,11 @@ enum color_which {
        B_SHINE_COLOR = 18,
        B_SHADOW_COLOR = 19,
 
+       B_LINK_TEXT_COLOR = 33,
+       B_LINK_HOVER_COLOR = 34,
+       B_LINK_VISITED_COLOR = 35,
+       B_LINK_ACTIVE_COLOR = 36,
+
        B_MENU_BACKGROUND_COLOR = 2,
        B_MENU_SELECTED_BACKGROUND_COLOR = 6,
        B_MENU_ITEM_TEXT_COLOR = 7,
@@ -463,7 +470,10 @@ void                       set_accept_first_click(bool 
acceptFirstClick);
 bool                   accept_first_click();
 
 rgb_color              ui_color(color_which which);
+const char*            ui_color_name(color_which which);
+color_which            which_ui_color(const char* name);
 void                   set_ui_color(const color_which& which, const rgb_color& 
color);
+void                   set_ui_colors(const BMessage* colors);
 rgb_color              tint_color(rgb_color color, float tint);
 
 extern "C" status_t _init_interface_kit_();
diff --git a/headers/os/interface/LayoutBuilder.h 
b/headers/os/interface/LayoutBuilder.h
index 1c54716..4ba372c 100644
--- a/headers/os/interface/LayoutBuilder.h
+++ b/headers/os/interface/LayoutBuilder.h
@@ -457,9 +457,7 @@ Group<ParentBuilder>::Group(BWindow* window, orientation 
orientation,
        fLayout(new BGroupLayout(orientation, spacing))
 {
        window->SetLayout(fLayout);
-
-       fLayout->Owner()->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));
-               // TODO: we get a white background if we don't do this
+       fLayout->Owner()->AdoptSystemColors();
 }
 
 
@@ -469,9 +467,11 @@ Group<ParentBuilder>::Group(BView* view, orientation 
orientation,
        :
        fLayout(new BGroupLayout(orientation, spacing))
 {
+
+       if (view->HasDefaultColors())
+               view->AdoptSystemColors();
+
        view->SetLayout(fLayout);
-       view->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));
-               // TODO: we get a white background if we don't do this
 }
 
 
@@ -796,9 +796,7 @@ Grid<ParentBuilder>::Grid(BWindow* window, float 
horizontalSpacing,
        fLayout(new BGridLayout(horizontalSpacing, verticalSpacing))
 {
        window->SetLayout(fLayout);
-
-       fLayout->Owner()->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));
-               // TODO: we get a white background if we don't do this
+       fLayout->Owner()->AdoptSystemColors();
 }
 
 
@@ -808,9 +806,10 @@ Grid<ParentBuilder>::Grid(BView* view, float 
horizontalSpacing,
        :
        fLayout(new BGridLayout(horizontalSpacing, verticalSpacing))
 {
+       if (view->HasDefaultColors())
+               view->AdoptSystemColors();
+
        view->SetLayout(fLayout);
-       view->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));
-               // TODO: we get a white background if we don't do this
 }
 
 
diff --git a/headers/os/interface/ListView.h b/headers/os/interface/ListView.h
index 311fa77..fe8a9af 100644
--- a/headers/os/interface/ListView.h
+++ b/headers/os/interface/ListView.h
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2013 Haiku, Inc. All rights reserved.
+ * Copyright 2002-2015 Haiku, Inc. All rights reserved.
  * Distributed under the terms of the MIT License.
  */
 #ifndef _LIST_VIEW_H
@@ -26,8 +26,7 @@ public:
                                                                BListView(BRect 
frame, const char* name,
                                                                        
list_view_type type
                                                                                
= B_SINGLE_SELECTION_LIST,
-                                                                       uint32 
resizeMask = B_FOLLOW_LEFT
-                                                                               
| B_FOLLOW_TOP,
+                                                                       uint32 
resizeMask = B_FOLLOW_LEFT_TOP,
                                                                        uint32 
flags = B_WILL_DRAW
                                                                                
| B_FRAME_EVENTS | B_NAVIGABLE);
                                                                BListView(const 
char* name,
diff --git a/headers/os/interface/MenuField.h b/headers/os/interface/MenuField.h
index bbc95ab..d605419 100644
--- a/headers/os/interface/MenuField.h
+++ b/headers/os/interface/MenuField.h
@@ -1,5 +1,5 @@
 /*
- * Copyright 2006-2013, Haiku, Inc. All rights reserved.
+ * Copyright 2006-2015, Haiku, Inc. All rights reserved.
  * Distributed under the terms of the MIT License.
  */
 #ifndef _MENU_FIELD_H
@@ -17,14 +17,12 @@ class BMenuField : public BView {
 public:
                                                                
BMenuField(BRect frame, const char* name,
                                                                        const 
char* label, BMenu* menu,
-                                                                       uint32 
resizingMode = B_FOLLOW_LEFT
-                                                                               
| B_FOLLOW_TOP,
+                                                                       uint32 
resizingMode = B_FOLLOW_LEFT_TOP,
                                                                        uint32 
flags = B_WILL_DRAW | B_NAVIGABLE);
                                                                
BMenuField(BRect frame, const char* name,
                                                                        const 
char* label, BMenu* menu,
                                                                        bool 
fixed_size,
-                                                                       uint32 
resizingMode = B_FOLLOW_LEFT
-                                                                               
| B_FOLLOW_TOP,
+                                                                       uint32 
resizingMode = B_FOLLOW_LEFT_TOP,
                                                                        uint32 
flags = B_WILL_DRAW | B_NAVIGABLE);
                                                                
BMenuField(const char* name,
                                                                        const 
char* label, BMenu* menu,
diff --git a/headers/os/interface/MultiChannelControl.h 
b/headers/os/interface/MultiChannelControl.h
index 49733d6..4f4aff0 100644
--- a/headers/os/interface/MultiChannelControl.h
+++ b/headers/os/interface/MultiChannelControl.h
@@ -1,5 +1,5 @@
 /*
- * Copyright 2009, Haiku, Inc. All rights reserved.
+ * Copyright 2015, Haiku, Inc. All rights reserved.
  * Distributed under the terms of the MIT License.
  */
 #ifndef _MULTI_CHANNEL_CONTROL_H
@@ -14,8 +14,7 @@ public:
                                                                
BMultiChannelControl(BRect frame,
                                                                        const 
char* name, const char* label,
                                                                        
BMessage* message, int32 channelCount = 1,
-                                                                       uint32 
resize = B_FOLLOW_LEFT
-                                                                               
| B_FOLLOW_TOP,
+                                                                       uint32 
resize = B_FOLLOW_LEFT_TOP,
                                                                        uint32 
flags = B_WILL_DRAW);
                                                                
BMultiChannelControl(BMessage* archive);
        virtual                                         ~BMultiChannelControl();
diff --git a/headers/os/interface/OptionControl.h 
b/headers/os/interface/OptionControl.h
index d038f5f..d5f28f3 100644
--- a/headers/os/interface/OptionControl.h
+++ b/headers/os/interface/OptionControl.h
@@ -1,5 +1,5 @@
 /*
- * Copyright 2001-2009, Haiku, Inc. All rights reserved.
+ * Copyright 2001-2015, Haiku, Inc. All rights reserved.
  * Distributed under the terms of the MIT License.
  */
 #ifndef _OPTION_CONTROL_H
@@ -18,8 +18,7 @@ class BOptionControl : public BControl {
 public:
                                                                
BOptionControl(BRect frame, const char* name,
                                                                        const 
char* label, BMessage* message,
-                                                                       uint32 
resizeMask = B_FOLLOW_LEFT
-                                                                               
| B_FOLLOW_TOP,
+                                                                       uint32 
resizeMask = B_FOLLOW_LEFT_TOP,
                                                                        uint32 
flags = B_WILL_DRAW);
                                                                
BOptionControl(const char* name,
                                                                        const 
char* label, BMessage* message,
diff --git a/headers/os/interface/OptionPopUp.h 
b/headers/os/interface/OptionPopUp.h
index 12110a7..2c6cc3d 100644
--- a/headers/os/interface/OptionPopUp.h
+++ b/headers/os/interface/OptionPopUp.h
@@ -1,5 +1,5 @@
 /*
- * Copyright 2001-2009, Haiku, Inc. All rights reserved.
+ * Copyright 2001-2015, Haiku, Inc. All rights reserved.
  * Distributed under the terms of the MIT License.
  */
 #ifndef _OPTION_POP_UP_H
@@ -16,13 +16,12 @@ class BOptionPopUp : public BOptionControl {
 public:
                                                                
BOptionPopUp(BRect frame, const char* name,
                                                                        const 
char* label, BMessage* message,
-                                                                       uint32 
resizeMask = B_FOLLOW_LEFT
-                                                                               
| B_FOLLOW_TOP,
+                                                                       uint32 
resizeMask = B_FOLLOW_LEFT_TOP,
                                                                        uint32 
flags = B_WILL_DRAW);
                                                                
BOptionPopUp(BRect frame, const char* name,
                                                                        const 
char* label,  BMessage* message,
                                                                        bool 
fixed, uint32 resizeMask
-                                                                               
= B_FOLLOW_LEFT | B_FOLLOW_TOP,
+                                                                               
= B_FOLLOW_LEFT_TOP,
                                                                        uint32 
flags = B_WILL_DRAW);
                                                                
BOptionPopUp(const char* name,
                                                                        const 
char* label, BMessage* message,
diff --git a/headers/os/interface/OutlineListView.h 
b/headers/os/interface/OutlineListView.h
index 2dc58ce..2d519da 100644
--- a/headers/os/interface/OutlineListView.h
+++ b/headers/os/interface/OutlineListView.h
@@ -1,5 +1,5 @@
 /*
- * Copyright 2006-2013, Haiku, Inc. All rights reserved.
+ * Copyright 2006-2015, Haiku, Inc. All rights reserved.
  * Distributed under the terms of the MIT License.
  */
 #ifndef _OUTLINE_LIST_VIEW_H
@@ -14,8 +14,7 @@ public:
                                                                
BOutlineListView(BRect frame, const char* name,
                                                                        
list_view_type type
                                                                                
= B_SINGLE_SELECTION_LIST,
-                                                                       uint32 
resizingMode
-                                                                               
= B_FOLLOW_LEFT | B_FOLLOW_TOP,
+                                                                       uint32 
resizingMode = B_FOLLOW_LEFT_TOP,
                                                                        uint32 
flags = B_WILL_DRAW
                                                                                
| B_FRAME_EVENTS | B_NAVIGABLE);
                                                                
BOutlineListView(const char* name,
diff --git a/headers/os/interface/PictureButton.h 
b/headers/os/interface/PictureButton.h
index 904ff46..0a21ea9 100644
--- a/headers/os/interface/PictureButton.h
+++ b/headers/os/interface/PictureButton.h
@@ -1,5 +1,5 @@
 /*
- * Copyright 2001-2008, Haiku, Inc. All rights reserved.
+ * Copyright 2001-2015, Haiku, Inc. All rights reserved.
  * Distributed under the terms of the MIT License.
  */
 #ifndef _PICTURE_BUTTON_H
@@ -22,8 +22,7 @@ public:
                                                                        
BPicture* off, BPicture* on,
                                                                        
BMessage* message,
                                                                        uint32 
behavior = B_ONE_STATE_BUTTON,
-                                                                       uint32 
resizingMode = B_FOLLOW_LEFT
-                                                                               
| B_FOLLOW_TOP,
+                                                                       uint32 
resizingMode = B_FOLLOW_LEFT_TOP,
                                                                        uint32 
flgs = B_WILL_DRAW | B_NAVIGABLE);
                                                                
BPictureButton(BMessage* archive);
 
diff --git a/headers/os/interface/RadioButton.h 
b/headers/os/interface/RadioButton.h
index 6a218db..a1cd200 100644
--- a/headers/os/interface/RadioButton.h
+++ b/headers/os/interface/RadioButton.h
@@ -1,5 +1,5 @@
 /*
- * Copyright 2001-2008, Haiku, Inc. All rights reserved.
+ * Copyright 2001-2015, Haiku, Inc. All rights reserved.
  * Distributed under the terms of the MIT License.
  */
 #ifndef        _RADIO_BUTTON_H
@@ -14,8 +14,7 @@ class BRadioButton : public BControl {
 public:
                                                                
BRadioButton(BRect frame, const char* name,
                                                                        const 
char* label, BMessage* message,
-                                                                       uint32 
resizingMode
-                                                                               
= B_FOLLOW_LEFT | B_FOLLOW_TOP,
+                                                                       uint32 
resizingMode = B_FOLLOW_LEFT_TOP,
                                                                        uint32 
flags = B_WILL_DRAW | B_NAVIGABLE);
                                                                
BRadioButton(const char* name,
                                                                        const 
char* label, BMessage* message,
diff --git a/headers/os/interface/ScrollView.h 
b/headers/os/interface/ScrollView.h
index 7abec2d..d90c7587 100644
--- a/headers/os/interface/ScrollView.h
+++ b/headers/os/interface/ScrollView.h
@@ -15,8 +15,7 @@
 class BScrollView : public BView {
 public:
                                                                
BScrollView(const char* name, BView* target,
-                                                                       uint32 
resizingMode
-                                                                               
= B_FOLLOW_LEFT | B_FOLLOW_TOP,
+                                                                       uint32 
resizingMode = B_FOLLOW_LEFT_TOP,
                                                                        uint32 
flags = 0, bool horizontal = false,
                                                                        bool 
vertical = false,
                                                                        
border_style border = B_FANCY_BORDER);
diff --git a/headers/os/interface/Slider.h b/headers/os/interface/Slider.h
index 42e8148..888bb8f 100644
--- a/headers/os/interface/Slider.h
+++ b/headers/os/interface/Slider.h
@@ -1,5 +1,5 @@
 /*
- * Copyright 2001-2013, Haiku, Inc. All rights reserved.
+ * Copyright 2001-2015, Haiku, Inc. All rights reserved.
  * Distributed under the terms of the MIT License.
  */
 #ifndef _SLIDER_H
@@ -30,8 +30,7 @@ public:
                                                                        const 
char* label, BMessage* message,
                                                                        int32 
minValue, int32 maxValue,
                                                                        
thumb_style thumbType = B_BLOCK_THUMB,
-                                                                       uint32 
resizingMode
-                                                                               
= B_FOLLOW_LEFT | B_FOLLOW_TOP,
+                                                                       uint32 
resizingMode = B_FOLLOW_LEFT_TOP,
                                                                        uint32 
flags = B_NAVIGABLE | B_WILL_DRAW
                                                                                
| B_FRAME_EVENTS);
 
@@ -40,8 +39,7 @@ public:
                                                                        int32 
minValue, int32 maxValue,
                                                                        
orientation posture,
                                                                        
thumb_style thumbType = B_BLOCK_THUMB,
-                                                                       uint32 
resizingMode
-                                                                               
= B_FOLLOW_LEFT | B_FOLLOW_TOP,
+                                                                       uint32 
resizingMode = B_FOLLOW_LEFT_TOP,
                                                                        uint32 
flags = B_NAVIGABLE | B_WILL_DRAW
                                                                                
| B_FRAME_EVENTS);
 
diff --git a/headers/os/interface/SplitView.h b/headers/os/interface/SplitView.h
index c4d3dd5..efa8a47 100644
--- a/headers/os/interface/SplitView.h
+++ b/headers/os/interface/SplitView.h
@@ -1,5 +1,5 @@
 /*
- * Copyright 2006-2010, Haiku, Inc. All rights reserved.
+ * Copyright 2006-2015, Haiku, Inc. All rights reserved.
  * Distributed under the terms of the MIT License.
  */
 #ifndef        _SPLIT_VIEW_H
@@ -61,6 +61,7 @@ public:
                        bool                            AddChild(int32 index, 
BLayoutItem* child,
                                                                        float 
weight);
 
+       virtual void                            AttachedToWindow();
        virtual void                            Draw(BRect updateRect);
        virtual void                            DrawAfterChildren(BRect 
updateRect);
        virtual void                            MouseDown(BPoint where);
diff --git a/headers/os/interface/StatusBar.h b/headers/os/interface/StatusBar.h
index 789f3a9..9f17da6 100644
--- a/headers/os/interface/StatusBar.h
+++ b/headers/os/interface/StatusBar.h
@@ -1,5 +1,5 @@
 /*
- * Copyright 2006-2009, Haiku, Inc. All rights reserved.
+ * Copyright 2006-2015, Haiku, Inc. All rights reserved.
  * Distributed under the terms of the MIT License.
  */
 #ifndef _STATUS_BAR_H
@@ -110,8 +110,9 @@ private:
                        float                           fTextDivider;
                        rgb_color                       fBarColor;
                        bool                            fCustomBarHeight;
+                       uint32                          fInternalFlags;
 
-                       uint32                          _reserved[5];
+                       uint32                          _reserved[4];
 };
 
 #endif // _STATUS_BAR_H
diff --git a/headers/os/interface/StringView.h 
b/headers/os/interface/StringView.h
index 820b41a..d75dfc2 100644
--- a/headers/os/interface/StringView.h
+++ b/headers/os/interface/StringView.h
@@ -13,7 +13,7 @@ class BStringView : public BView {
 public:
                                                                
BStringView(BRect frame, const char* name,
                                                                        const 
char* text, uint32 resizingMode
-                                                                               
= B_FOLLOW_LEFT | B_FOLLOW_TOP,
+                                                                               
= B_FOLLOW_LEFT_TOP,
                                                                        uint32 
flags = B_WILL_DRAW);
                                                                
BStringView(const char* name, const char* text,
                                                                        uint32 
flags = B_WILL_DRAW);
diff --git a/headers/os/interface/TextControl.h 
b/headers/os/interface/TextControl.h
index 49fd7b5..3c8792b 100644
--- a/headers/os/interface/TextControl.h
+++ b/headers/os/interface/TextControl.h
@@ -21,8 +21,7 @@ public:
                                                                
BTextControl(BRect frame, const char* name,
                                                                        const 
char* label, const char* initialText,
                                                                        
BMessage* message,
-                                                                       uint32 
resizeMask
-                                                                               
= B_FOLLOW_LEFT | B_FOLLOW_TOP,
+                                                                       uint32 
resizeMask = B_FOLLOW_LEFT_TOP,
                                                                        uint32 
flags = B_WILL_DRAW | B_NAVIGABLE);
                                                                
BTextControl(const char* name,
                                                                        const 
char* label, const char* initialText,
diff --git a/headers/os/interface/View.h b/headers/os/interface/View.h
index 84079e1..ddec3df 100644
--- a/headers/os/interface/View.h
+++ b/headers/os/interface/View.h
@@ -107,6 +107,7 @@ inline uint32 _rule_(uint32 r1, uint32 r2, uint32 r3, 
uint32 r4)
 #define B_FOLLOW_TOP_BOTTOM    _rule_(_VIEW_TOP_, 0, _VIEW_BOTTOM_, 0)
 #define B_FOLLOW_V_CENTER      _rule_(_VIEW_CENTER_, 0, _VIEW_CENTER_, 0)
 
+#define B_FOLLOW_LEFT_TOP      B_FOLLOW_TOP | B_FOLLOW_LEFT
 
 class BBitmap;
 class BCursor;
@@ -242,32 +243,38 @@ public:
                        void                            SetViewCursor(const 
BCursor* cursor,
                                                                        bool 
sync = true);
 
+                       bool                            HasDefaultColors() 
const;
+                       bool                            HasSystemColors() const;
+                       void                            AdoptParentColors();
+                       void                            AdoptSystemColors();
+                       void                            AdoptViewColors(BView* 
view);
+
        virtual void                            SetViewColor(rgb_color color);
                        void                            SetViewColor(uchar red, 
uchar green, uchar blue,
                                                                        uchar 
alpha = 255);
                        rgb_color                       ViewColor() const;
 
+                       void                            
SetViewUIColor(color_which which,
+                                                                       float 
tint = B_NO_TINT);
+                       color_which                     ViewUIColor(float* tint 
= NULL) const;
+
                        void                            SetViewBitmap(const 
BBitmap* bitmap,
                                                                        BRect 
srcRect, BRect dstRect,
-                                                                       uint32 
followFlags
-                                                                               
= B_FOLLOW_TOP | B_FOLLOW_LEFT,
+                                                                       uint32 
followFlags = B_FOLLOW_LEFT_TOP,
                                                                        uint32 
options = B_TILE_BITMAP);
                        void                            SetViewBitmap(const 
BBitmap* bitmap,
-                                                                       uint32 
followFlags
-                                                                               
= B_FOLLOW_TOP | B_FOLLOW_LEFT,
+                                                                       uint32 
followFlags = B_FOLLOW_LEFT_TOP,
                                                                        uint32 
options = B_TILE_BITMAP);
                        void                            ClearViewBitmap();
 
                        status_t                        SetViewOverlay(const 
BBitmap* overlay,
                                                                        BRect 
srcRect, BRect dstRect,
                                                                        
rgb_color* colorKey,
-                                                                       uint32 
followFlags
-                                                                               
= B_FOLLOW_TOP | B_FOLLOW_LEFT,
+                                                                       uint32 
followFlags = B_FOLLOW_LEFT_TOP,
                                                                        uint32 
options = 0);
                        status_t                        SetViewOverlay(const 
BBitmap* overlay,
                                                                        
rgb_color* colorKey,
-                                                                       uint32 
followFlags
-                                                                               
= B_FOLLOW_TOP | B_FOLLOW_LEFT,
+                                                                       uint32 
followFlags = B_FOLLOW_LEFT_TOP,
                                                                        uint32 
options = 0);
                        void                            ClearViewOverlay();
 
@@ -276,11 +283,19 @@ public:
                                                                        uchar 
alpha = 255);
                        rgb_color                       HighColor() const;
 
+                       void                            
SetHighUIColor(color_which which,
+                                                                       float 
tint = B_NO_TINT);
+                       color_which                     HighUIColor(float* tint 
= NULL) const;
+
        virtual void                            SetLowColor(rgb_color color);
                        void                            SetLowColor(uchar red, 
uchar green, uchar blue,
                                                                        uchar 
alpha = 255);
                        rgb_color                       LowColor() const;
 
+                       void                            
SetLowUIColor(color_which which,
+                                                                       float 
tint = B_NO_TINT);
+                       color_which                     LowUIColor(float* tint 
= NULL) const;
+
                        void                            SetLineMode(cap_mode 
lineCap,
                                                                        
join_mode lineJoin,
                                                                        float 
miterLimit = B_DEFAULT_MITER_LIMIT);
@@ -495,6 +510,9 @@ public:
                        void                            Invalidate(BRect 
invalRect);
                        void                            Invalidate(const 
BRegion* invalRegion);
                        void                            Invalidate();
+                       void                            
DelayedInvalidate(bigtime_t delay);
+                       void                            
DelayedInvalidate(bigtime_t delay,
+                                                                       BRect 
invalRect);
 
                        void                            SetDiskMode(char* 
filename, long offset);
 
@@ -691,9 +709,11 @@ private:
 
                        void                            _Activate(bool state);
                        void                            _Attach();
+                       void                            
_ColorsUpdated(BMessage* message);
                        void                            _Detach();
                        void                            _Draw(BRect 
screenUpdateRect);
                        void                            
_DrawAfterChildren(BRect screenUpdateRect);
+                       void                            
_FontsUpdated(BMessage*);
                        void                            _Pulse();
 
                        void                            _UpdateStateForRemove();
diff --git a/headers/os/interface/Window.h b/headers/os/interface/Window.h
index 586bfb7..c59a549 100644
--- a/headers/os/interface/Window.h
+++ b/headers/os/interface/Window.h
@@ -272,7 +272,7 @@ public:
 
                        void                            InvalidateLayout(bool 
descendants = false);
                        void                            Layout(bool force);
-
+                       bool                            IsOffscreenWindow() 
const;
 private:
        // FBC padding and forbidden methods
        virtual void                            _ReservedWindow2();
diff --git a/headers/private/app/ServerProtocol.h 
b/headers/private/app/ServerProtocol.h
index d5f42f0..73b0a7c 100644
--- a/headers/private/app/ServerProtocol.h
+++ b/headers/private/app/ServerProtocol.h
@@ -293,11 +293,18 @@ enum {
        AS_VIEW_SET_PEN_SIZE,
        AS_VIEW_GET_PEN_SIZE,
        AS_VIEW_SET_HIGH_COLOR,
+       AS_VIEW_SET_HIGH_UI_COLOR,
        AS_VIEW_SET_LOW_COLOR,
+       AS_VIEW_SET_LOW_UI_COLOR,
        AS_VIEW_SET_VIEW_COLOR,
+       AS_VIEW_SET_VIEW_UI_COLOR,
        AS_VIEW_GET_HIGH_COLOR,
+       AS_VIEW_GET_HIGH_UI_COLOR,
        AS_VIEW_GET_LOW_COLOR,
+       AS_VIEW_GET_LOW_UI_COLOR,
        AS_VIEW_GET_VIEW_COLOR,
+       AS_VIEW_GET_VIEW_UI_COLOR,
+
        AS_VIEW_PRINT_ALIASING,
        AS_VIEW_CLIP_TO_PICTURE,
        AS_VIEW_GET_CLIP_REGION,
@@ -314,6 +321,7 @@ enum {
        AS_VIEW_COPY_BITS,
        AS_VIEW_DRAW_PICTURE,
        AS_VIEW_INVALIDATE_RECT,
+       AS_VIEW_DELAYED_INVALIDATE_RECT,
        AS_VIEW_INVALIDATE_REGION,
        AS_VIEW_INVERT_RECT,
        AS_VIEW_MOVE_TO,
@@ -355,6 +363,9 @@ enum {
        AS_VIEW_CLIP_TO_RECT,
        AS_VIEW_CLIP_TO_SHAPE,
 
+       // Internal messages
+       AS_COLOR_MAP_UPDATED,
+
        AS_LAST_CODE
 };
 
diff --git a/headers/private/app/ServerProtocolStructs.h 
b/headers/private/app/ServerProtocolStructs.h
index 8eec0aa..ff98636 100644
--- a/headers/private/app/ServerProtocolStructs.h
+++ b/headers/private/app/ServerProtocolStructs.h
@@ -18,6 +18,10 @@ struct ViewSetStateInfo {
        float                                           penSize;
        rgb_color                                       highColor;
        rgb_color                                       lowColor;
+       color_which                                     whichHighColor;
+       color_which                                     whichLowColor;
+       float                                           whichHighColorTint;
+       float                                           whichLowColorTint;
        ::pattern                                       pattern;
        drawing_mode                            drawingMode;
        BPoint                                          origin;
diff --git a/headers/private/app/ServerReadOnlyMemory.h 
b/headers/private/app/ServerReadOnlyMemory.h
index 2384981..f62e3c0 100644
--- a/headers/private/app/ServerReadOnlyMemory.h
+++ b/headers/private/app/ServerReadOnlyMemory.h
@@ -13,11 +13,11 @@
 #include <InterfaceDefs.h>
 
 
-// Update this constant with the largest color constant excluding
-// B_SUCCESS_COLOR and B_FAILURE_COLOR.
-// If you add a constant with index greater than 100 you'll have to add
-// to the second operand.
-static const int32 kColorWhichCount = B_SCROLL_BAR_THUMB_COLOR + 3;
+// Update kColorWhichLastContinuous with the largest color constant which
+// leaves no gaps in the color_which integer values.
+static const int32 kColorWhichLastContinuous = B_LINK_ACTIVE_COLOR;
+static const int32 kColorWhichCount = kColorWhichLastContinuous + 3;
+       // + 1 for index-offset, + 2 for B_SUCCESS_COLOR, B_FAILURE_COLOR
 
 
 struct server_read_only_memory {
diff --git a/headers/private/interface/AbstractSpinner.h 
b/headers/private/interface/AbstractSpinner.h
index 9d961b1..e822299 100644
--- a/headers/private/interface/AbstractSpinner.h
+++ b/headers/private/interface/AbstractSpinner.h
@@ -39,7 +39,7 @@ class BAbstractSpinner : public BControl {
 public:
                                                                
BAbstractSpinner(BRect frame, const char* name,
                                                                        const 
char* label, BMessage* message,
-                                                                       uint32 
resizingMode = B_FOLLOW_LEFT | B_FOLLOW_TOP,
+                                                                       uint32 
resizingMode = B_FOLLOW_LEFT_TOP,
                                                                        uint32 
flags = B_WILL_DRAW | B_NAVIGABLE);
                                                                
BAbstractSpinner(const char* name, const char* label,
                                                                        
BMessage* message,
diff --git a/headers/private/interface/ColorTools.h 
b/headers/private/interface/ColorTools.h
deleted file mode 100644
index 8f7e78e..0000000
--- a/headers/private/interface/ColorTools.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
-Open Tracker License
-
-Terms and Conditions
-
-Copyright (c) 1991-2000, Be Incorporated. All rights reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
-of the Software, and to permit persons to whom the Software is furnished to do
-so, subject to the following conditions:
-
-The above copyright notice and this permission notice applies to all licensees
-and shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF TITLE, MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-BE INCORPORATED BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF, OR IN 
CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of Be Incorporated shall not be
-used in advertising or otherwise to promote the sale, use or other dealings in
-this Software without prior written authorization from Be Incorporated.
-
-Tracker(TM), Be(R), BeOS(R), and BeIA(TM) are trademarks or registered 
trademarks
-of Be Incorporated in the United States and other countries. Other brand 
product
-names are registered trademarks or trademarks of their respective holders.
-All rights reserved.
-*/
-
-/*******************************************************************************
-/
-/      File:                   ColorTools.h
-/
-/   Description:    Additional experimental color manipulation functions.
-/
-/      Copyright 2000, Be Incorporated, All Rights Reserved
-/
-*******************************************************************************/
-
-
-#ifndef _COLOR_TOOLS_H
-#define _COLOR_TOOLS_H
-
-#include <GraphicsDefs.h>
-
-#if B_BEOS_VERSION <= B_BEOS_VERSION_5
-
-namespace BExperimental {
-
-// Mix two colors together, ignoring their relative alpha channels.
-// If amount is 0, the result is color1; if 255, the result is color2;
-// if another value, it is somewhere in-between.  The resulting alpha
-// channel is mixed exactly like the other color channels.
-rgb_color mix_color(rgb_color color1, rgb_color color2, uint8 amount);
-
-// Blend two colors together, weighting by their relative alpha channels.
-// The resulting color is the same as mix_color(), except that the amount
-// used from color1 and color2's color channels is dependent on that color's
-// alpha channel.  For example, if color1.alpha is 0 and color2.alpha is
-// 255, the resulting red, green, and blue values will be the same as those
-// in color2, regardless of 'amount'.
-rgb_color blend_color(rgb_color color1, rgb_color color2, uint8 amount);
-
-// Return a color that is the disabled representation of 'color' when drawn
-// on a solid color 'background'.
-rgb_color disable_color(rgb_color color, rgb_color background);
-
-}      // namespace BExperimental
-
-using namespace BExperimental;
-
-#endif
-
-#endif
diff --git a/headers/private/interface/ColumnListView.h 
b/headers/private/interface/ColumnListView.h
index 76fd0bc..5cfdf13 100644
--- a/headers/private/interface/ColumnListView.h
+++ b/headers/private/interface/ColumnListView.h
@@ -63,10 +63,10 @@ class RecursiveOutlineIterator;
 
 }      // ns BPrivate
 
-class BField;
-class BRow;
 class BColumn;
 class BColumnListView;
+class BField;
+class BRow;
 
 enum LatchType {
        B_NO_LATCH                                      = 0,
@@ -353,6 +353,7 @@ public:
        // Appearance (NEW STYLE)
                        void                            
SetColor(ColumnListViewColor colorIndex,
                                                                        
rgb_color color);
+                       void                            ResetColors();
                        void                            
SetFont(ColumnListViewFont fontIndex,
                                                                        const 
BFont* font,
                                                                        uint32 
mask = B_FONT_ALL);
@@ -396,12 +397,14 @@ protected:
 
 private:
                        void                            _Init();
+                       void                            _UpdateColors();
                        void                            
_GetChildViewRects(const BRect& bounds,
                                                                        BRect& 
titleRect, BRect& outlineRect,
                                                                        BRect& 
vScrollBarRect,
                                                                        BRect& 
hScrollBarRect);
 
                        rgb_color                       
fColorList[B_COLOR_TOTAL];
+                       bool                            fCustomColors;
                        BPrivate::TitleView* fTitleView;
                        BPrivate::OutlineView* fOutlineView;
                        BList                           fColumns;
diff --git a/headers/private/interface/DecimalSpinner.h 
b/headers/private/interface/DecimalSpinner.h
index 46161c7..9c97367 100644
--- a/headers/private/interface/DecimalSpinner.h
+++ b/headers/private/interface/DecimalSpinner.h
@@ -16,7 +16,7 @@ class BDecimalSpinner : public BAbstractSpinner {
 public:
                                                                
BDecimalSpinner(BRect frame, const char* name,
                                                                        const 
char* label, BMessage* message,
-                                                                       uint32 
resizingMode = B_FOLLOW_LEFT | B_FOLLOW_TOP,
+                                                                       uint32 
resizingMode = B_FOLLOW_LEFT_TOP,
                                                                        uint32 
flags = B_WILL_DRAW | B_NAVIGABLE);
                                                                
BDecimalSpinner(const char* name, const char* label,
                                                                        
BMessage* message,
diff --git a/headers/private/interface/ViewPrivate.h 
b/headers/private/interface/ViewPrivate.h
index 7d642d7..676454a 100644
--- a/headers/private/interface/ViewPrivate.h
+++ b/headers/private/interface/ViewPrivate.h
@@ -42,8 +42,11 @@ enum {
        B_VIEW_PATTERN_BIT                      = 0x00020000,
        B_VIEW_TRANSFORM_BIT            = 0x00040000,
        B_VIEW_FILL_RULE_BIT            = 0x00080000,
+       B_VIEW_WHICH_VIEW_COLOR_BIT     = 0x00100000,
+       B_VIEW_WHICH_LOW_COLOR_BIT      = 0x00200000,
+       B_VIEW_WHICH_HIGH_COLOR_BIT     = 0x00400000,
 
-       B_VIEW_ALL_BITS                         = 0x000fffff,
+       B_VIEW_ALL_BITS                         = 0x00ffffff,
 
        // these used for archiving only
        B_VIEW_RESIZE_BIT                       = 0x00001000,
@@ -107,6 +110,15 @@ class ViewState {
 
                // This one is not affected by pop state/push state
                rgb_color                       view_color;
+               color_which                     which_view_color;
+               float                           which_view_color_tint;
+
+               // these are cached values
+               color_which                     which_low_color;
+               float                           which_low_color_tint;
+
+               color_which                     which_high_color;
+               float                           which_high_color_tint;
 
                ::pattern                       pattern;
 
diff --git a/headers/private/shared/CalendarView.h 
b/headers/private/shared/CalendarView.h
index b7f0dce..d48c991 100644
--- a/headers/private/shared/CalendarView.h
+++ b/headers/private/shared/CalendarView.h
@@ -26,8 +26,7 @@ namespace BPrivate {
 class BCalendarView : public BView, public BInvoker {
 public:
                                                                
BCalendarView(BRect frame, const char* name,
-                                                                       uint32 
resizeMask = B_FOLLOW_LEFT
-                                                                               
| B_FOLLOW_TOP,
+                                                                       uint32 
resizeMask = B_FOLLOW_LEFT_TOP,
                                                                        uint32 
flags = B_WILL_DRAW | B_FRAME_EVENTS
                                                                                
| B_NAVIGABLE);
 
diff --git a/src/kits/app/Application.cpp b/src/kits/app/Application.cpp
index c1c3f33..4de804b 100644
--- a/src/kits/app/Application.cpp
+++ b/src/kits/app/Application.cpp
@@ -1044,6 +1044,8 @@ BApplication::DispatchMessage(BMessage* message, 
BHandler* handler)
                return;
        }
 
+       message->PrintToStream();
+
        switch (message->what) {
                case B_ARGV_RECEIVED:
                        _ArgvReceived(message);
@@ -1102,6 +1104,23 @@ BApplication::DispatchMessage(BMessage* message, 
BHandler* handler)
                        break;
                }
 
+               case B_COLORS_UPDATED:
+               {
+                       AutoLocker<BLooperList> listLock(gLooperList);
+                       if (!listLock.IsLocked())
+                               break;
+
+                       BWindow* window = NULL;
+                       uint32 count = gLooperList.CountLoopers();
+                       for (uint32 index = 0; index < count; ++index) {
+                               window = 
dynamic_cast<BWindow*>(gLooperList.LooperAt(index));
+                               if (window == NULL || (window != NULL && 
window->fOffscreen))
+                                       continue;
+                               window->PostMessage(message);
+                       }
+                       break;
+               }
+
                case _SHOW_DRAG_HANDLES_:
                {
                        bool show;
diff --git a/src/kits/app/Message.cpp b/src/kits/app/Message.cpp
index d182493..eac16f4 100644
--- a/src/kits/app/Message.cpp
+++ b/src/kits/app/Message.cpp
@@ -22,6 +22,7 @@
 #include <AppMisc.h>
 #include <BlockCache.h>
 #include <Entry.h>
+#include <GraphicsDefs.h>
 #include <MessageQueue.h>
 #include <Messenger.h>
 #include <Path.h>
@@ -735,6 +736,14 @@ BMessage::_PrintToStream(const char* indent) const
                                        break;
                                }
 
+                               case B_RGB_32_BIT_TYPE:
+                               {
+                                       rgb_color* color = (rgb_color*)pointer;
+                                       printf("rgb_color(%u, %u, %u, %u)\n", 
color->red,
+                                               color->green, color->blue, 
color->alpha);
+                                       break;  
+                               }
+
                                default:
                                {
                                        printf("(type = '%.4s')(size = %ld)\n", 
(char*)&value,
@@ -2494,6 +2503,7 @@ DEFINE_FUNCTIONS(uint64, UInt64, B_UINT64_TYPE);
 DEFINE_FUNCTIONS(bool, Bool, B_BOOL_TYPE);
 DEFINE_FUNCTIONS(float, Float, B_FLOAT_TYPE);
 DEFINE_FUNCTIONS(double, Double, B_DOUBLE_TYPE);
+DEFINE_FUNCTIONS(rgb_color, Color, B_RGB_32_BIT_TYPE);
 
 #undef DEFINE_FUNCTIONS
 
@@ -2577,6 +2587,7 @@ DEFINE_SET_GET_FUNCTIONS(uint64, UInt64, B_UINT64_TYPE);
 DEFINE_SET_GET_FUNCTIONS(bool, Bool, B_BOOL_TYPE);
 DEFINE_SET_GET_FUNCTIONS(float, Float, B_FLOAT_TYPE);
 DEFINE_SET_GET_FUNCTIONS(double, Double, B_DOUBLE_TYPE);
+DEFINE_SET_GET_FUNCTIONS(rgb_color, Color, B_RGB_32_BIT_TYPE);
 
 #undef DEFINE_SET_GET_FUNCTION
 
diff --git a/src/kits/interface/ColorTools.cpp 
b/src/kits/interface/ColorTools.cpp
deleted file mode 100644
index e4aea31..0000000
--- a/src/kits/interface/ColorTools.cpp
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
-Open Tracker License
-
-Terms and Conditions
-
-Copyright (c) 1991-2000, Be Incorporated. All rights reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
-of the Software, and to permit persons to whom the Software is furnished to do
-so, subject to the following conditions:
-
-The above copyright notice and this permission notice applies to all licensees
-and shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF TITLE, MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-BE INCORPORATED BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF, OR IN 
CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of Be Incorporated shall not be
-used in advertising or otherwise to promote the sale, use or other dealings in
-this Software without prior written authorization from Be Incorporated.
-
-Tracker(TM), Be(R), BeOS(R), and BeIA(TM) are trademarks or registered 
trademarks
-of Be Incorporated in the United States and other countries. Other brand 
product
-names are registered trademarks or trademarks of their respective holders.
-All rights reserved.
-*/
-
-/*******************************************************************************
-/
-/      File:                   ColorTools.cpp
-/
-/   Description:    Additional experimental color manipulation functions.
-/
-/      Copyright 2000, Be Incorporated, All Rights Reserved
-/
-*******************************************************************************/
-
-#include "ColorTools.h"
-
-#if B_BEOS_VERSION <= B_BEOS_VERSION_MAUI
-
-namespace BExperimental {
-
-#if DEBUG
-#define DB_INLINE
-#else
-#define DB_INLINE inline
-#endif
-
-static DB_INLINE void mix_color_func(rgb_color* target, const rgb_color other, 
uint8 amount)
-{
-       target->red = (uint8)( 
((int16(other.red)-int16(target->red))*amount)/255
-                                                               + target->red );
-       target->green = (uint8)( 
((int16(other.green)-int16(target->green))*amount)/255
-                                                               + target->green 
);
-       target->blue = (uint8)( 
((int16(other.blue)-int16(target->blue))*amount)/255
-                                                               + target->blue 
);
-       target->alpha = (uint8)( 
((int16(other.alpha)-int16(target->alpha))*amount)/255
-                                                               + target->alpha 
);
-}
-
-static DB_INLINE void blend_color_func(rgb_color* target, const rgb_color 
other, uint8 amount)
-{
-       const uint8 alphaMix = (uint8)( 
((int16(other.alpha)-int16(255-target->alpha))*amount)/255
-                                                                       + 
(255-target->alpha) );
-       target->red = (uint8)( 
((int16(other.red)-int16(target->red))*alphaMix)/255
-                                                               + target->red );
-       target->green = (uint8)( 
((int16(other.green)-int16(target->green))*alphaMix)/255
-                                                               + target->green 
);
-       target->blue = (uint8)( 
((int16(other.blue)-int16(target->blue))*alphaMix)/255
-                                                               + target->blue 
);
-       target->alpha = (uint8)( 
((int16(other.alpha)-int16(target->alpha))*amount)/255
-                                                               + target->alpha 
);
-}
-
-static DB_INLINE void disable_color_func(rgb_color* target, const rgb_color 
background)
-{
-       blend_color_func(target, background, 255-70);
-}
-
-// --------------------------------------------------------------------------
-
-rgb_color mix_color(rgb_color color1, rgb_color color2, uint8 amount)
-{
-       mix_color_func(&color1, color2, amount);
-       return color1;
-}
-
-rgb_color blend_color(rgb_color color1, rgb_color color2, uint8 amount)
-{
-       blend_color_func(&color1, color2, amount);
-       return color1;
-}
-
-rgb_color disable_color(rgb_color color, rgb_color background)
-{
-       disable_color_func(&color, background);
-       return color;
-}
-
-}
-
-#endif
diff --git a/src/kits/interface/GraphicsDefs.cpp 
b/src/kits/interface/GraphicsDefs.cpp
index db59bd5..b40e395 100644
--- a/src/kits/interface/GraphicsDefs.cpp
+++ b/src/kits/interface/GraphicsDefs.cpp
@@ -1,5 +1,5 @@
 /*
- * Copyright 2001-2008, Haiku.
+ * Copyright 2001-2015, Haiku.
  * Distributed under the terms of the MIT License.
  *
  * Authors:
@@ -36,6 +36,58 @@ const uint32 B_TRANSPARENT_MAGIC_RGBA32_BIG = 0x77747700;
 const struct screen_id B_MAIN_SCREEN_ID = {0};
 
 
+// rgb_color
+int32
+rgb_color::Brightness() const
+{
+       return ((int32)red * 41 + (int32)green * 187 + (int32)blue * 28) >> 8;
+}
+
+
+// Mix two colors without respect for their alpha values
+rgb_color
+mix_color(rgb_color color1, rgb_color color2, uint8 amount)
+{
+       color1.red = (uint8)(((int16(color2.red) - int16(color1.red)) * amount)
+               / 255 + color1.red);
+       color1.green = (uint8)(((int16(color2.green) - int16(color1.green))
+               * amount) / 255 + color1.green);
+       color1.blue = (uint8)(((int16(color2.blue) - int16(color1.blue)) * 
amount)
+               / 255 + color1.blue );
+       color1.alpha = (uint8)(((int16(color2.alpha) - int16(color1.alpha))
+               * amount) / 255 + color1.alpha );
+
+       return color1;
+}
+
+
+// Mix two colors, respecting their alpha values.
+rgb_color
+blend_color(rgb_color color1, rgb_color color2, uint8 amount)
+{
+       const uint8 alphaMix = (uint8)(((int16(color2.alpha) - int16(255
+               - color1.alpha)) * amount) / 255 + (255 - color1.alpha));
+
+       color1.red = (uint8)(((int16(color2.red) - int16(color1.red)) * 
alphaMix)
+               / 255 + color1.red );
+       color1.green = (uint8)(((int16(color2.green) - int16(color1.green))
+               * alphaMix) / 255 + color1.green);
+       color1.blue = (uint8)(((int16(color2.blue) - int16(color1.blue))
+               * alphaMix) / 255 + color1.blue);
+       color1.alpha = (uint8)(((int16(color2.alpha) - int16(color1.alpha))
+               * amount) / 255 + color1.alpha);
+
+       return color1;
+}
+
+
+rgb_color
+disable_color(rgb_color color, rgb_color background)
+{
+       return mix_color(color, background, 185);
+}
+
+
 status_t
 get_pixel_size_for(color_space space, size_t *pixelChunk, size_t *rowAlignment,
        size_t *pixelsPerChunk)
diff --git a/src/kits/interface/InterfaceDefs.cpp 
b/src/kits/interface/InterfaceDefs.cpp
index 880f786..97017b3 100644
--- a/src/kits/interface/InterfaceDefs.cpp
+++ b/src/kits/interface/InterfaceDefs.cpp
@@ -8,6 +8,7 @@
  *             Axel Dörfler, axeld@xxxxxxxxxxxxxxxx
  *             Michael Lotz <mmlr@xxxxxxxx>
  *             Wim van der Meer <WPJvanderMeer@xxxxxxxxx>
+ *             Joseph Groover <looncraz@xxxxxxxxxxxx>
  */
 
 
@@ -39,6 +40,7 @@
 #include <ColorConversion.h>
 #include <DecorInfo.h>
 #include <DefaultColors.h>
+#include <DesktopLink.h>
 #include <InputServerTypes.h>
 #include <input_globals.h>
 #include <InterfacePrivate.h>
@@ -102,6 +104,10 @@ static const rgb_color _kDefaultColors[kColorWhichCount] = 
{
        {0, 0, 0, 255},                 // B_LIST_ITEM_TEXT_COLOR
        {0, 0, 0, 255},                 // B_LIST_SELECTED_ITEM_TEXT_COLOR
        {216, 216, 216, 255},   // B_SCROLL_BAR_THUMB_COLOR
+       {51, 102, 187, 255},    // B_LINK_TEXT_COLOR
+       {102, 152, 203, 255},   // B_LINK_HOVER_COLOR
+       {145, 112, 155, 255},   // B_LINK_VISITED_COLOR
+       {121, 142, 203, 255},   // B_LINK_ACTIVE_COLOR
        // 100...
        {46, 204, 64, 255},             // B_SUCCESS_COLOR
        {255, 65, 54, 255},             // B_FAILURE_COLOR
@@ -110,6 +116,50 @@ static const rgb_color _kDefaultColors[kColorWhichCount] = 
{
 const rgb_color* BPrivate::kDefaultColors = &_kDefaultColors[0];
 
 
+static const char* kColorNames[kColorWhichCount] = {
+       "B_PANEL_BACKGROUND_COLOR",
+       "B_MENU_BACKGROUND_COLOR",
+       "B_WINDOW_TAB_COLOR",
+       "B_KEYBOARD_NAVIGATION_COLOR",
+       "B_DESKTOP_COLOR",
+       "B_MENU_SELECTED_BACKGROUND_COLOR",
+       "B_MENU_ITEM_TEXT_COLOR",
+       "B_MENU_SELECTED_ITEM_TEXT_COLOR",
+       "B_MENU_SELECTED_BORDER_COLOR",
+       "B_PANEL_TEXT_COLOR",
+       "B_DOCUMENT_BACKGROUND_COLOR",
+       "B_DOCUMENT_TEXT_COLOR",
+       "B_CONTROL_BACKGROUND_COLOR",
+       "B_CONTROL_TEXT_COLOR",
+       "B_CONTROL_BORDER_COLOR",
+       "B_CONTROL_HIGHLIGHT_COLOR",
+       "B_NAVIGATION_PULSE_COLOR",
+       "B_SHINE_COLOR",
+       "B_SHADOW_COLOR",
+       "B_TOOLTIP_BACKGROUND_COLOR",
+       "B_TOOLTIP_TEXT_COLOR",
+       "B_WINDOW_TEXT_COLOR",
+       "B_WINDOW_INACTIVE_TAB_COLOR",
+       "B_WINDOW_INACTIVE_TEXT_COLOR",
+       "B_WINDOW_BORDER_COLOR",
+       "B_WINDOW_INACTIVE_BORDER_COLOR",
+       "B_CONTROL_MARK_COLOR",
+       "B_LIST_BACKGROUND_COLOR",
+       "B_LIST_SELECTED_BACKGROUND_COLOR",
+       "B_LIST_ITEM_TEXT_COLOR",
+       "B_LIST_SELECTED_ITEM_TEXT_COLOR",
+       "B_SCROLL_BAR_THUMB_COLOR",
+       "B_LINK_TEXT_COLOR",
+       "B_LINK_HOVER_COLOR",
+       "B_LINK_VISITED_COLOR",
+       "B_LINK_ACTIVE_COLOR",
+       // 100...
+       "B_SUCCESS_COLOR",
+       "B_FAILURE_COLOR",
+       NULL
+};
+
+
 namespace BPrivate {
 
 
@@ -1079,14 +1129,51 @@ ui_color(color_which which)
        if (be_app != NULL) {
                server_read_only_memory* shared
                        = BApplication::Private::ServerReadOnlyMemory();
-               if (shared != NULL)
+               if (shared != NULL) {
+                       // check for unset colors
+                       if (shared->colors[index] == B_TRANSPARENT_COLOR)
+                               shared->colors[index] = kDefaultColors[index];
+
                        return shared->colors[index];
+               }
        }
 
        return kDefaultColors[index];
 }
 
 
+const char*
+ui_color_name(color_which which)
+{
+       // Suppress warnings for B_NO_COLOR.
+       if (which == B_NO_COLOR)
+               return NULL;
+
+       int32 index = color_which_to_index(which);
+       if (index < 0 || index >= kColorWhichCount) {
+               fprintf(stderr, "ui_color_name(): unknown color_which %d\n", 
which);
+               return NULL;
+       }
+
+       return kColorNames[index];
+}
+
+
+color_which
+which_ui_color(const char* name)
+{
+       if (name == NULL)
+               return B_NO_COLOR;
+
+       for (int32 index = 0; index < kColorWhichCount; ++index) {
+               if (!strcmp(kColorNames[index], name))
+                       return index_to_color_which(index);
+       }
+
+       return B_NO_COLOR;
+}
+
+
 void
 set_ui_color(const color_which &which, const rgb_color &color)
 {
@@ -1096,7 +1183,10 @@ set_ui_color(const color_which &which, const rgb_color 
&color)
                return;
        }
 
-       BPrivate::AppServerLink link;
+       if (ui_color(which) == color)
+               return;
+
+       BPrivate::DesktopLink link;
        link.StartMessage(AS_SET_UI_COLOR);
        link.Attach<color_which>(which);
        link.Attach<rgb_color>(color);
@@ -1104,6 +1194,48 @@ set_ui_color(const color_which &which, const rgb_color 
&color)
 }
 
 
+void
+set_ui_colors(const BMessage* colors)
+{
+       if (colors == NULL)
+               return;
+
+       int32 count = 0;
+       int32 index = 0;
+       char* name = NULL;
+       type_code type;
+       rgb_color color;
+       color_which which = B_NO_COLOR;
+
+       BPrivate::DesktopLink desktop;
+       if (desktop.InitCheck() != B_OK)
+               return;
+
+       desktop.StartMessage(AS_SET_UI_COLORS);
+       desktop.Attach<bool>(false);
+
+       // Only colors with names that map to system colors will get through.
+       while (colors->GetInfo(B_RGB_32_BIT_TYPE, index, &name, &type) == B_OK) 
{
+
+               which = which_ui_color(name);
+               ++index;
+
+               if (which == B_NO_COLOR || colors->FindColor(name, &color) != 
B_OK)
+                       continue;
+
+               desktop.Attach<color_which>(which);
+               desktop.Attach<rgb_color>(color);
+               ++count;
+       }
+
+       if (count == 0)
+               return;
+
+       desktop.Attach<color_which>(B_NO_COLOR);
+       desktop.Flush();
+}
+
+
 rgb_color
 tint_color(rgb_color color, float tint)
 {
diff --git a/src/kits/interface/Jamfile b/src/kits/interface/Jamfile
index c02b07b..561005e 100644
--- a/src/kits/interface/Jamfile
+++ b/src/kits/interface/Jamfile
@@ -57,7 +57,6 @@ for architectureObject in [ MultiArchSubDirSetup ] {
                        CheckBox.cpp
                        ColorConversion.cpp
                        ColorControl.cpp
-                       ColorTools.cpp
                        Control.cpp
                        ControlLook.cpp
                        DecorInfo.cpp
diff --git a/src/kits/interface/View.cpp b/src/kits/interface/View.cpp
index 0a0f2b4..21b563f 100644
--- a/src/kits/interface/View.cpp
+++ b/src/kits/interface/View.cpp
@@ -8,6 +8,7 @@
  *             Adrian Oanca, adioanca@xxxxxxxxxxxxx
  *             Ingo Weinhold. ingo_weinhold@xxxxxx
  *             Julian Harnath, julian.harnath@xxxxxxxxxxxxxx
+ *             Joseph Groover, looncraz@xxxxxxxxxxxx
  */
 
 
@@ -141,6 +142,14 @@ ViewState::ViewState()
        high_color = (rgb_color){ 0, 0, 0, 255 };
        low_color = (rgb_color){ 255, 255, 255, 255 };
        view_color = low_color;
+       which_view_color = B_NO_COLOR;
+       which_view_color_tint = B_NO_TINT;
+
+       which_high_color = B_NO_COLOR;
+       which_high_color_tint = B_NO_TINT;
+
+       which_low_color = B_NO_COLOR;
+       which_low_color_tint = B_NO_TINT;
 
        pattern = B_SOLID_HIGH;
        drawing_mode = B_OP_COPY;
@@ -220,6 +229,10 @@ ViewState::UpdateServerState(BPrivate::PortLink &link)
        info.penSize = pen_size;
        info.highColor = high_color;
        info.lowColor = low_color;
+       info.whichHighColor = which_high_color;
+       info.whichLowColor = which_low_color;
+       info.whichHighColorTint = which_high_color_tint;
+       info.whichLowColorTint = which_low_color_tint;
        info.pattern = pattern;
        info.drawingMode = drawing_mode;
        info.origin = origin;
@@ -456,7 +469,7 @@ BView::BView(BMessage* archive)
                        | B_FONT_SHEAR | B_FONT_ROTATION);
        }
 
-       int32 color;
+       int32 color = 0;
        if (archive->FindInt32("_color", 0, &color) == B_OK)
                SetHighColor(get_rgb_color(color));
        if (archive->FindInt32("_color", 1, &color) == B_OK)
@@ -464,6 +477,29 @@ BView::BView(BMessage* archive)
        if (archive->FindInt32("_color", 2, &color) == B_OK)
                SetViewColor(get_rgb_color(color));
 
+       float tint = B_NO_TINT;
+       if (archive->FindInt32("_uicolor", 0, &color) == B_OK
+               && color != B_NO_COLOR) {
+               if (archive->FindFloat("_uitint", 0, &tint) != B_OK)
+                       tint = B_NO_TINT;
+
+               SetHighUIColor((color_which)color, tint);
+       }
+       if (archive->FindInt32("_uicolor", 1, &color) == B_OK
+               && color != B_NO_COLOR) {
+               if (archive->FindFloat("_uitint", 1, &tint) != B_OK)
+                       tint = B_NO_TINT;
+
+               SetLowUIColor((color_which)color, tint);
+       }
+       if (archive->FindInt32("_uicolor", 2, &color) == B_OK
+               && color != B_NO_COLOR) {
+               if (archive->FindFloat("_uitint", 2, &tint) != B_OK)
+                       tint = B_NO_TINT;
+
+               SetViewUIColor((color_which)color, tint);
+       }
+
        uint32 evMask;
        uint32 options;
        if (archive->FindInt32("_evmask", 0, (int32*)&evMask) == B_OK
@@ -595,6 +631,20 @@ BView::Archive(BMessage* data, bool deep) const
        if (ret == B_OK)
                ret = data->AddInt32("_color", get_uint32_color(ViewColor()));
 
+       if (ret == B_OK)
+               ret = data->AddInt32("_uicolor", (int32)HighUIColor());
+       if (ret == B_OK)
+               ret = data->AddInt32("_uicolor", (int32)LowUIColor());
+       if (ret == B_OK)
+               ret = data->AddInt32("_uicolor", (int32)ViewUIColor());
+
+       if (ret == B_OK)
+               ret = data->AddFloat("_uitint", fState->which_high_color_tint);
+       if (ret == B_OK)
+               ret = data->AddFloat("_uitint", fState->which_low_color_tint);
+       if (ret == B_OK)
+               ret = data->AddFloat("_uitint", fState->which_view_color_tint);
+
 //     NOTE: we do not use this flag any more
 //     if ( 1 ){
 //             ret = data->AddInt32("_dbuf", 1);
@@ -2304,6 +2354,8 @@ BView::PenSize() const
 void
 BView::SetHighColor(rgb_color color)
 {
+       SetHighUIColor(B_NO_COLOR);
+
        // are we up-to-date already?
        if (fState->IsValid(B_VIEW_HIGH_COLOR_BIT)
                && fState->high_color == color)
@@ -2346,8 +2398,72 @@ BView::HighColor() const
 
 
 void
+BView::SetHighUIColor(color_which which, float tint)
+{
+       if (fState->IsValid(B_VIEW_WHICH_HIGH_COLOR_BIT)
+               && fState->which_high_color == which
+               && fState->which_high_color_tint == tint)
+               return;
+
+       if (fOwner != NULL) {
+               _CheckLockAndSwitchCurrent();
+
+               fOwner->fLink->StartMessage(AS_VIEW_SET_HIGH_UI_COLOR);
+               fOwner->fLink->Attach<color_which>(which);
+               fOwner->fLink->Attach<float>(tint);
+
+               fState->valid_flags |= B_VIEW_WHICH_HIGH_COLOR_BIT;
+       }
+
+       fState->which_high_color = which;
+       fState->which_high_color_tint = tint;
+
+       if (which != B_NO_COLOR) {
+               fState->archiving_flags |= B_VIEW_WHICH_HIGH_COLOR_BIT;
+               fState->archiving_flags &= ~B_VIEW_HIGH_COLOR_BIT;
+               fState->valid_flags |= B_VIEW_HIGH_COLOR_BIT;
+
+               fState->high_color = tint_color(ui_color(which), tint);
+       } else {
+               fState->valid_flags &= ~B_VIEW_HIGH_COLOR_BIT;
+               fState->archiving_flags &= ~B_VIEW_WHICH_HIGH_COLOR_BIT;
+       }
+}
+
+
+color_which
+BView::HighUIColor(float* tint) const
+{
+       if (!fState->IsValid(B_VIEW_WHICH_HIGH_COLOR_BIT)
+               && fOwner != NULL) {
+               _CheckLockAndSwitchCurrent();
+
+               fOwner->fLink->StartMessage(AS_VIEW_GET_HIGH_UI_COLOR);
+
+               int32 code;
+               if (fOwner->fLink->FlushWithReply(code) == B_OK
+                       && code == B_OK) {
+                       
fOwner->fLink->Read<color_which>(&fState->which_high_color);
+                       
fOwner->fLink->Read<float>(&fState->which_high_color_tint);
+                       fOwner->fLink->Read<rgb_color>(&fState->high_color);
+
+                       fState->valid_flags |= B_VIEW_WHICH_HIGH_COLOR_BIT;
+                       fState->valid_flags |= B_VIEW_HIGH_COLOR_BIT;
+               }
+       }
+
+       if (tint != NULL)
+               *tint = fState->which_high_color_tint;
+
+       return fState->which_high_color;
+}
+
+
+void
 BView::SetLowColor(rgb_color color)
 {
+       SetLowUIColor(B_NO_COLOR);
+
        if (fState->IsValid(B_VIEW_LOW_COLOR_BIT)
                && fState->low_color == color)
                return;
@@ -2389,9 +2505,150 @@ BView::LowColor() const
 
 
 void
+BView::SetLowUIColor(color_which which, float tint)
+{
+       if (fState->IsValid(B_VIEW_WHICH_LOW_COLOR_BIT)
+               && fState->which_low_color == which
+               && fState->which_low_color_tint == tint)
+               return;
+
+       if (fOwner != NULL) {
+               _CheckLockAndSwitchCurrent();
+
+               fOwner->fLink->StartMessage(AS_VIEW_SET_LOW_UI_COLOR);
+               fOwner->fLink->Attach<color_which>(which);
+               fOwner->fLink->Attach<float>(tint);
+
+               fState->valid_flags |= B_VIEW_WHICH_LOW_COLOR_BIT;
+       }
+
+       fState->which_low_color = which;
+       fState->which_low_color_tint = tint;
+
+       if (which != B_NO_COLOR) {
+               fState->archiving_flags |= B_VIEW_WHICH_LOW_COLOR_BIT;
+               fState->archiving_flags &= ~B_VIEW_LOW_COLOR_BIT;
+               fState->valid_flags |= B_VIEW_LOW_COLOR_BIT;
+
+               fState->low_color = tint_color(ui_color(which), tint);
+       } else {
+               fState->valid_flags &= ~B_VIEW_LOW_COLOR_BIT;
+               fState->archiving_flags &= ~B_VIEW_WHICH_LOW_COLOR_BIT;
+       }
+}
+
+
+color_which
+BView::LowUIColor(float* tint) const
+{
+       if (!fState->IsValid(B_VIEW_WHICH_LOW_COLOR_BIT)
+               && fOwner != NULL) {
+               _CheckLockAndSwitchCurrent();
+
+               fOwner->fLink->StartMessage(AS_VIEW_GET_LOW_UI_COLOR);
+
+               int32 code;
+               if (fOwner->fLink->FlushWithReply(code) == B_OK
+                       && code == B_OK) {
+                       
fOwner->fLink->Read<color_which>(&fState->which_low_color);
+                       
fOwner->fLink->Read<float>(&fState->which_low_color_tint);
+                       fOwner->fLink->Read<rgb_color>(&fState->low_color);
+
+                       fState->valid_flags |= B_VIEW_WHICH_LOW_COLOR_BIT;
+                       fState->valid_flags |= B_VIEW_LOW_COLOR_BIT;
+               }
+       }
+
+       if (tint != NULL)
+               *tint = fState->which_low_color_tint;
+
+       return fState->which_low_color;
+}
+
+
+bool
+BView::HasDefaultColors() const
+{
+       // If we don't have any of these flags, then we have default colors
+       uint32 testMask = B_VIEW_VIEW_COLOR_BIT | B_VIEW_HIGH_COLOR_BIT
+               | B_VIEW_LOW_COLOR_BIT | B_VIEW_WHICH_VIEW_COLOR_BIT
+               | B_VIEW_WHICH_HIGH_COLOR_BIT | B_VIEW_WHICH_LOW_COLOR_BIT;
+
+       return (fState->archiving_flags & testMask) == 0;
+}
+
+
+bool
+BView::HasSystemColors() const
+{
+       return fState->which_view_color == B_PANEL_BACKGROUND_COLOR
+               && fState->which_high_color == B_PANEL_TEXT_COLOR
+               && fState->which_low_color == B_PANEL_BACKGROUND_COLOR
+               && fState->which_view_color_tint == B_NO_TINT
+               && fState->which_high_color_tint == B_NO_TINT
+               && fState->which_low_color_tint == B_NO_TINT;
+}
+
+
+void
+BView::AdoptParentColors()
+{
+       AdoptViewColors(Parent());
+}
+
+
+void
+BView::AdoptSystemColors()
+{
+       SetViewUIColor(B_PANEL_BACKGROUND_COLOR);
+       SetLowUIColor(B_PANEL_BACKGROUND_COLOR);
+       SetHighUIColor(B_PANEL_TEXT_COLOR);
+}
+
+
+void
+BView::AdoptViewColors(BView* view)
+{
+       if (view == NULL || !view->LockLooper())
+               return;
+
+       float tint = B_NO_TINT;
+       float viewTint = tint;
+       color_which viewWhich = view->ViewUIColor(&viewTint);
+
+       // View color
+       if (viewWhich != B_NO_COLOR)
+               SetViewUIColor(viewWhich, viewTint);
+       else
+               SetViewColor(view->ViewColor());
+
+       // Low color
+       color_which which = view->LowUIColor(&tint);
+       if (which != B_NO_COLOR)
+               SetLowUIColor(which, tint);
+       else if (viewWhich != B_NO_COLOR)
+               SetLowUIColor(viewWhich, viewTint);
+       else
+               SetLowColor(view->LowColor());
+
+       // High color
+       which = view->HighUIColor(&tint);
+       if (which != B_NO_COLOR)
+               SetHighUIColor(which, tint);
+       else
+               SetHighColor(view->HighColor());
+
+       view->UnlockLooper();
+}
+
+
+void
 BView::SetViewColor(rgb_color color)
 {
-       if (fState->IsValid(B_VIEW_VIEW_COLOR_BIT) && fState->view_color == 
color)
+       SetViewUIColor(B_NO_COLOR);
+
+       if (fState->IsValid(B_VIEW_VIEW_COLOR_BIT)
+               && fState->view_color == color)
                return;
 
        if (fOwner) {
@@ -2432,6 +2689,71 @@ BView::ViewColor() const
 
 
 void
+BView::SetViewUIColor(color_which which, float tint)
+{
+       if (fState->IsValid(B_VIEW_WHICH_VIEW_COLOR_BIT)
+               && fState->which_view_color == which
+               && fState->which_view_color_tint == tint)
+               return;
+
+       if (fOwner != NULL) {
+               _CheckLockAndSwitchCurrent();
+
+               fOwner->fLink->StartMessage(AS_VIEW_SET_VIEW_UI_COLOR);
+               fOwner->fLink->Attach<color_which>(which);
+               fOwner->fLink->Attach<float>(tint);
+
+               fState->valid_flags |= B_VIEW_WHICH_VIEW_COLOR_BIT;
+       }
+
+       fState->which_view_color = which;
+       fState->which_view_color_tint = tint;
+
+       if (which != B_NO_COLOR) {
+               fState->archiving_flags |= B_VIEW_WHICH_VIEW_COLOR_BIT;
+               fState->archiving_flags &= ~B_VIEW_VIEW_COLOR_BIT;
+               fState->valid_flags |= B_VIEW_VIEW_COLOR_BIT;
+
+               fState->view_color = tint_color(ui_color(which), tint);
+       } else {
+               fState->valid_flags &= ~B_VIEW_VIEW_COLOR_BIT;
+               fState->archiving_flags &= ~B_VIEW_WHICH_VIEW_COLOR_BIT;
+       }
+
+       if (!fState->IsValid(B_VIEW_WHICH_LOW_COLOR_BIT))
+               SetLowUIColor(which, tint);
+}
+
+
+color_which
+BView::ViewUIColor(float* tint) const
+{
+       if (!fState->IsValid(B_VIEW_WHICH_VIEW_COLOR_BIT)
+               && fOwner != NULL) {
+               _CheckLockAndSwitchCurrent();
+
+               fOwner->fLink->StartMessage(AS_VIEW_GET_VIEW_UI_COLOR);
+
+               int32 code;
+               if (fOwner->fLink->FlushWithReply(code) == B_OK
+                       && code == B_OK) {
+                       
fOwner->fLink->Read<color_which>(&fState->which_view_color);
+                       
fOwner->fLink->Read<float>(&fState->which_view_color_tint);
+                       fOwner->fLink->Read<rgb_color>(&fState->view_color);
+
+                       fState->valid_flags |= B_VIEW_WHICH_VIEW_COLOR_BIT;
+                       fState->valid_flags |= B_VIEW_VIEW_COLOR_BIT;
+               }
+       }
+
+       if (tint != NULL)
+               *tint = fState->which_view_color_tint;
+
+       return fState->which_view_color;
+}
+
+
+void
 BView::ForceFontAliasing(bool enable)
 {
        if (fState->IsValid(B_VIEW_FONT_ALIASING_BIT)
@@ -4100,6 +4422,35 @@ BView::Invalidate()
 
 
 void
+BView::DelayedInvalidate(bigtime_t delay)
+{
+       DelayedInvalidate(delay, Bounds());
+}
+
+
+void
+BView::DelayedInvalidate(bigtime_t delay, BRect invalRect)
+{
+       if (fOwner == NULL)
+               return;
+
+       invalRect.left = (int)invalRect.left;
+       invalRect.top = (int)invalRect.top;
+       invalRect.right = (int)invalRect.right;
+       invalRect.bottom = (int)invalRect.bottom;
+       if (!invalRect.IsValid())
+               return;
+
+       _CheckLockAndSwitchCurrent();
+
+       fOwner->fLink->StartMessage(AS_VIEW_DELAYED_INVALIDATE_RECT);
+       fOwner->fLink->Attach<bigtime_t>(system_time() + delay);
+       fOwner->fLink->Attach<BRect>(invalRect);
+       fOwner->fLink->Flush();
+}
+
+
+void
 BView::InvertRect(BRect rect)
 {
        if (fOwner) {
@@ -4598,6 +4949,11 @@ BView::MessageReceived(BMessage* message)
                                break;
                        }
 
+                       // prevent message repeats
+                       case B_COLORS_UPDATED:
+                       case B_FONTS_UPDATED:
+                               break;
+
                        default:
                                BHandler::MessageReceived(message);
                                break;

[ *** diff truncated: 3035 lines dropped *** ]


############################################################################

Commit:      ef508c87fd56cecb0b9e6ff3eb9ecaa629ce8ef6
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:52:50 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:48:25 2016 UTC

LinkReceiver Fix

LinkReceiver would spin endlessly when given a timeout value which prevented
DelayedMessageSender from being operational.

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      faa44cebd29c7b51752f38925beb3dc786404ddb
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:52:51 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:48:28 2016 UTC

ControlLook Colors

Enable better use of the proper colors, as well as overriding the
assumed proper colors for labels.

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      61e6e26a5783a029586f2b1c5604ade8cea612c6
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:52:53 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:48:30 2016 UTC

ColumnListView colors

ColumnListView now responds to system color changes.

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      0885e593ebae75094f1d0a540119b540a147333f
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:52:55 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:48:33 2016 UTC

StatusBar colors

Add fInternalFlags and a single flag to denote the use of custom colors.
Have status bar use appropriate colors, either by adopting colors, or
by using system standard colors.
Live colors updates are also working.

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      94593b870a813b7b0d56cfcc75486fad9f7def95
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:52:57 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:48:35 2016 UTC

BAboutWindow colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      5d3c1b9d40a1dc5f71f828fd70cb4c92b854a96b
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:52:59 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:48:38 2016 UTC

BAlert colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      c0b2b3f6f19d37aa62b9459b6627d3c8bac7f6a7
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:53:00 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:48:42 2016 UTC

BBox colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      f0c16064538b11f2615be1861ca9d17426e35f64
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:53:02 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:48:45 2016 UTC

BButton colors

BButton now properly uses the B_CONTROL_BACKGROUND_COLOR instead of
a darkened view color.

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      c45840589d7d30934410bfbb8c378f46734152aa
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:53:04 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:48:48 2016 UTC

BControl colors

This includes simple changes to common controls.

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      f7533417aaeb8504cac49864268dba443aa6d8b2
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:53:06 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:48:51 2016 UTC

AbstractSpinner colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      61d0f0bb2ceef1fa15c9eacff0e5a80d7c9c3c34
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:53:08 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:48:55 2016 UTC

Menu colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      f22072de1384d979ee94c59c0af7b145dfdd3a4e
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:53:10 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:48:58 2016 UTC

BListView colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      ced83ffc129fb321d5b06b41453822e1c0154986
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:53:12 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:49:00 2016 UTC

BTabView colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      7f8ec9211936fbd153721c15230c1a373925cea6
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:53:14 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:49:03 2016 UTC

Specialized Layout Views colors

Views used by layout.

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      012fde40ab2865bfa3556cdf078eb4e7a12ad36b
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:53:15 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:49:05 2016 UTC

Colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      05b5892199c191c41f3c9946f75292de67f3ec4b
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:53:17 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:49:07 2016 UTC

ToolTip colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      da256363414664c0ad699d73da76fbd0546d7032
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:53:19 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:49:10 2016 UTC

Chart colors and some font awareness

Chart had horrible behavior with large fonts and many hardcoded colors.
This helps this situation immensely.

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      e0d9a0170db5ca6873be19ee3b0738907a9cb3bc
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:53:24 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:52:26 2016 UTC

Mail Deskbar Replicant colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      05470b1a0a66839ff34d9f6cf0ae237ddfaa9fa2
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:53:26 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:52:28 2016 UTC

Bluetooth Deskbar Replicant colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      f680537e83fccb5232c9929e89c48dbeee69d46e
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:53:27 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:52:31 2016 UTC

Server UI colors

Iterative changes, mostly.

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      0f620b343c2c2bd3243e52b956ce13e33a774d10
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:53:30 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:52:34 2016 UTC

Time Preflet colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      0339d3551bb38791ec472a4131dcf9087f1dfa91
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:53:32 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:52:37 2016 UTC

Screensaver preflet colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      0534320c08f0e551eb203f006b7204920836a686
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:53:33 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:52:39 2016 UTC

Screen Preflet colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      1b7fde148ecafc898fbf9fb9de0ed6635601098f
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:53:35 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:52:42 2016 UTC

Network Preflet Colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      df7c738ca6ba9f64c8718cf7a548c663c7fb56bf
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:53:37 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:52:44 2016 UTC

Mouse Preflet Colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      c67528ea67454c5407dd16ed9e09af4424a0bc6b
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:53:39 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:52:47 2016 UTC

Media System Colors

Preflet, replicant, and DefaultMediaTheme

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      6461fcea3b6265d6cbb43e9c4642df1527f2ac77
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:53:41 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:52:49 2016 UTC

Mail Preflet Colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      3d3535252454dcb3f46974498dc1d96f08aec27e
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:53:43 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:52:51 2016 UTC

Locale Preflet Colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      9f5cc6fff151af1df8b5072a9dbaeb0bfa5607f3
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:53:44 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:52:54 2016 UTC

Keymap colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      365004b374d926ca8aba93e61acaefb0cfe08254
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:53:46 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:52:56 2016 UTC

Joysticks Preflet colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      3e51fd49828472d9bab8c2284ebf6d90f3b6630b
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:53:48 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:52:58 2016 UTC

Font Preflet colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      09e1d6e6d92ffedb0a96f23e22df784cbc9d7e3d
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:53:50 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:53:01 2016 UTC

FileTypes Preflet colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      f3a8604f4f9f88621bb0bbc84b1d07c72dfe28dc
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:53:53 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:53:06 2016 UTC

DataTranslation Preflet - and addons - colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      b328b4b493edc51becc5add3fbcde7288c91ab71
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:53:55 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:53:08 2016 UTC

Bluetooth Preflet colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      7b9a881bf889dc3848c859618164df6cb38f44bb
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:53:56 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:53:11 2016 UTC

Appearance Color Handling Update

Use BMessage color support and new API.

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      90e8134e89c46c7211a0912c148c09a6a798766a
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:53:58 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:53:14 2016 UTC

Print System Colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      8931df15825f63aada2f65daf549e13eff141233
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:54:01 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:53:16 2016 UTC

Tracker uses new API, Improved Font Awareness

InfoWindow now uses the font size to determine the window size and
placement of elements.  Also uses syste colors, including link
colors.  Permissions view not font sensitive at this time.

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      ed7a06d31d0a1ddae7b72aa36015d636f6d10562
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:54:03 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:53:19 2016 UTC

Mail kit colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      6404b7a4bd98ed43483ac924b38f39ff47edbb24
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:54:05 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:53:21 2016 UTC

ToolBar Colors

This was a bigger change than many others as BButton now defaults to using
control background colors, and we can not do that here without the buttons
not appearing as we desire (blending in with the toolbar).

Using the control background color for the toolbar would be unacceptable.

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      48fd9f5aba0e9d289d5748e13f5a2018077c7a28
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:54:07 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:53:23 2016 UTC

Shared UI element colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      6ceaefe5d6fce069ae69871219873025b3469f3f
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:54:08 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:53:25 2016 UTC

Bluetooth Incoming Connection colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      f22a569034b30e0389542d470c7fa18362092fea
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:54:10 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:53:28 2016 UTC

/bin colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      7b6f38c1c00d18172e29a922a03903af62eedf0f
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:54:12 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:53:30 2016 UTC

WebPositive Colors

Use system colors, ensure that we don't rely on view having a default
white background when using the layout API (DownloadProgressView)

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      1463205dd7710ab732b8343bcb060e72046bf929
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:54:14 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:53:32 2016 UTC

Terminal colors

When resizing a window, we need to ensure the low color and the view color are 
the same,
otherwise the drawing results will be unpleasant.

Here, I decided to use the user Terminal colors rather than a system color.

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      c6eaecdadbcddd026c3c8c08921078f1e67a40ee
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:54:16 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:53:35 2016 UTC

Switcher colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      e9249f8fb11a30d564c4a6179566ad6e469eda6e
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:54:17 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:53:37 2016 UTC

Sudoku colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      e0b023c16243082978f0fd348ec9bef35d106651
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:54:19 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:53:39 2016 UTC

StyledEdit colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      21d9b7ceb31170d43c29b4761a379d20d5a37139
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:54:21 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:53:42 2016 UTC

SoundRecorder colors

I lack the hardware to fully adapt this program at this time.

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      73f52fa16e9868ac43e0ba8bd47425346800a35a
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:54:23 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:53:44 2016 UTC

ShowImage colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      b7a2ec5d18e3829c2875203dd544cb5e3e1f2973
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:54:24 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:53:46 2016 UTC

Screenshot window colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      0d97660bdea8ee1493afd759482650c15f1ecabb
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:54:26 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:53:49 2016 UTC

resedit colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      fa98ad271d39e51b458b571c077e33d3b83c0ffc
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:54:28 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:53:51 2016 UTC

Pulse colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      db89b295df25d832d434defcbdbf885e9e9ad18b
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:54:30 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:53:54 2016 UTC

ProcessController colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      f4d14203f86d50f0095d056782796a26fc9bc095
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:54:32 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:53:56 2016 UTC

PowerStatus colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      65fde00f1dbe91c6e112b9e4c992339572390431
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:54:33 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:53:58 2016 UTC

PatchBay Colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      dcd9685f5e7137f5586efb0b4f6cba93d4fae0c9
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:54:35 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:54:00 2016 UTC

Pairs colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      d6af3f10fece74550b43a4e5af48f829a7e614ed
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:54:37 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:54:03 2016 UTC

PackageInstaller colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      12c1c3fd1af361a34234a309dae6f5700b188f2f
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:54:38 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:54:05 2016 UTC

OverlayImage app colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      e0eb2586172073bc82fe6e3fb52a2d114e89e484
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:54:40 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:54:07 2016 UTC

Network Status Colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      1edebc863dd9d3170605eb5737fc3ba3897c773f
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:54:42 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:54:10 2016 UTC

MediaPlayer colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      c753a993e2b4d37d40dc82bfa8ab4ada942168f4
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:54:44 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:54:12 2016 UTC

Mail application colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      a50eb895a09e286fc1e5be30c7bd9c93790b6728
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:54:46 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:54:14 2016 UTC

Magnify app colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      062f035c588c302ff6aab628074f247498463beb
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:54:47 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:54:17 2016 UTC

Login UI rework

Improve placement with different font sizes, and use user colors.

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      996a99deb2dcaa2e87b5623136b38be9896cf831
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:54:49 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:54:19 2016 UTC

Install application colors

Also better placement of text when official logo is absent.

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      66a0aa9ac262b571bd21804e3af956123d892c56
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:54:51 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:54:21 2016 UTC

Uninstaller colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      1c7678aa64539ebad9f81d8ef7973ca30a875329
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:54:53 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:54:25 2016 UTC

Icon-o-Matic colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      19750eb0e3c3f995b13c02f69405f8d9f8b03ff2
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:54:55 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:54:28 2016 UTC

HaikuDepot colors

This application proved the most difficult to get to use system colors.
It uses a specialized text handling system that does not expose the
ability to change text or background colors at any point.

After discussing at length with the original author it was discovered
that the system is not working as originally intended and fixing it is
beyond the scope of this commit. As such, I added the ability for this
system to use color defined constants so that it can update with system
color changes.  I also removed its use from the package list view, as
there was no way to override the color choices to make the MarkupTextView
fit in properly with list colors.  This, however, is a non issue as BTextView
has every needed capability for the short description.

In addition to using system colors and live updates, I took it upon myself
to improve the legibility of the user ratings view.  A faint line now separates
each rating, and the rating bars use the control mark color so that they stand
out as something other than a drawing error (which is what I thought it was for
a long time).

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      d2d2fa1e0245544673cd03b10900eab774aec6f5
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:54:57 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:54:31 2016 UTC

FontDemo colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      76ef9417cda8730ef7b6ade137a63187c8b86b28
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:54:59 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:54:33 2016 UTC

FirstBootPrompt colors and size

Intelligently use font size to set the window size.

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      c1efa0536b8ed98ce4fa1ab85e09afc8db3c3b4e
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:55:01 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:54:35 2016 UTC

Expander colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      9405bd24e402724b98c2574c8e8043a789575443
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:55:02 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:54:37 2016 UTC

DriveSetup colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      c026852a0dc28e77433d43ba381ba7eb8447ce28
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:55:04 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:54:40 2016 UTC

DiskProbe colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      b3f9e1a44243905afe4124cd0458c47bd87be887
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:55:06 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:54:42 2016 UTC

Device app colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      26e40e9b26fd2e38ab0df8b371a31fdea371838f
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:55:08 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:54:44 2016 UTC

Deskbar colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      8a132df386c64784843416ee24c0f445ea71da0d
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:55:10 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:54:46 2016 UTC

DeskCalc colors

Due to the button color logic, we use the rgb_color Brightness to determine
the label colors.

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      73da93d053da31acfd62e5f77bd815514f33841a
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:55:12 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:54:49 2016 UTC

Debugger colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      c8d304f6ae2348f772b52dc3450202a152e1e324
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:55:13 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:54:51 2016 UTC

CharacterMap colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      058870203b473beee1b3f14a8a4fda60cd273f42
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:55:15 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:54:53 2016 UTC

BootManager colors, size

Use system colors, intelligently size window according to the font size.

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      6a4c5eb9d63620864640c228b03f018ed6738bee
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:55:17 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:54:56 2016 UTC

ActivityMonitor colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      53c2a09160ac6e059d0a67d316e3f295fdfaae27
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:55:19 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:54:58 2016 UTC

AboutSystem colors

Use slightly different colors for heading text than for subheading text.
Change uptime view from a BTextView to a BStringView.  This fixes the issue
where the AboutWindow did not properly fit its contents.

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      fa19bf7f060041559710145d9b86f266e1b8b1a9
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:55:23 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:55:35 2016 UTC

Print server add-ons' colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      93e6e25fce037df72f6696aa61a6e3c250c346ed
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:55:25 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:55:38 2016 UTC

Mail daemon addon colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      0be510e5774f847be63f4d459038057d809838f3
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Thu Dec 10 18:55:26 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:55:40 2016 UTC

TeamMonitorWindow colors

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      1a261f31745b941b36272bcb1e551884c5391645
Author:      looncraz <looncraz@xxxxxxxxxxxx>
Date:        Fri Dec 11 00:00:01 2015 UTC
Committer:   Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Mon Jan  4 11:55:42 2016 UTC

AboutSystem text color bug fix

Improper comparison from HasColor() in B_COLORS_UPDATED conditional resulted
in text colors not updating when changed.

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

----------------------------------------------------------------------------


Other related posts:

  • » [haiku-commits] BRANCH waddlesplash-github.looncraz_rebase_backup [1a261f31745b] in src: servers/app kits/interface apps preferences/appearance kits/tracker - waddlesplash-github . looncraz_rebase_backup