haiku/headers/os
John Scipione 1482b250a7 IK: Update scroll bars for alternative control look
Scroll bars should look and work identically to before on
HaikuControlLook.

Add DrawScrollBarButton() and DrawScrollBarThumb() and
DrawScrollBarBorder() methods. These methods are used to draw scroll
bars in a generic way so that they can be drawn differently by alternative
control look's (e.g. BeControlLook). Also it gives us back drawing of
scroll bar knobs.  However the knob setting is not exposed in the
interface in this commit.

These methods are in addition to the 2 existing DrawScrollBarBackground()
methods that draw the scroll bar background. One draws the area above and
below the thumb and the other is called by the first to actually draw the
area.

The rest of the drawing besides the backgrounds was being done in
BScrollBar before. To draw the scroll bar arrows and thumb we were recyling
other ControlLook methods, while this worked well enough on HaikuControlLook
it wasn't flexible enough for alternative control looks.

DrawScrollBarButton() is used to draw the four scroll buttons and is
typically (so far) used in combination with DrawArrowShape().

DrawScrollBarThumb() draws the scroll bar thumb.

DrawScrollBarBorder() draws a 1px border around the entire scroll bar,
potentially B_KEYBOARD_NAVIGATION_COLOR if focused (although this is
feature not currently used.)

Draw unscrollable scroll bars as if they were disabled including the
buttons with their arrow shapes, background, and thumb.

Add FBC backwords compatibility macros in ControlLook.cpp

Change-Id: I9237c5ce45d17d674785111d51de951e5686306b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/351
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-04-11 16:57:54 +00:00
..
add-ons Tracker: Allow add-ons to dynamically extend popup menu. 2018-07-19 14:00:48 +00:00
app RosterPrivate: add IsShutDownInProgress() 2019-12-21 20:32:31 +00:00
arch arm64: Add more headers for code compilation 2019-09-01 03:02:49 +00:00
be_apps be_apps/ServicesDaemon: Remove. 2016-07-29 18:41:30 -04:00
bluetooth bluetooth: ioctls always pass size on Haiku. 2018-11-18 14:42:09 -05:00
device Revert r42812. As pointed by Michael, one can use 2011-10-24 21:02:14 +00:00
drivers acpi: add ACPI_DEVICE_HANDLE_ITEM 2020-04-10 11:25:39 +00:00
game More build fixes. 2020-01-25 21:35:34 +01:00
interface IK: Update scroll bars for alternative control look 2020-04-11 16:57:54 +00:00
kernel arm64: Add more headers for code compilation 2019-09-01 03:02:49 +00:00
locale BCountry: add SetTo and InitCheck. 2019-12-02 12:32:15 +00:00
mail Migrate the BMailComponent docs to the Haiku Book. 2017-12-25 19:43:51 -05:00
media PVS V522: null pointer dereferences 2019-07-16 20:44:32 +00:00
midi Fix clang warning "mismatched-tags" 2020-03-23 01:30:23 +00:00
midi2 style cleanup 2006-09-21 13:04:59 +00:00
net Adapt all consumers of HashSet and HashMap to the slightly-different APIs. 2019-02-15 00:34:36 +00:00
package HaikuDepot: Set package state when loading single package 2019-08-08 07:09:35 +00:00
storage Remove Spurious B_BEOS_DATA_DIRECTORY 2017-05-08 22:17:53 +02:00
support PVS V591: non void functions must return something 2019-07-17 01:57:50 +00:00
translation TranslationErrors.h: document as deprecated. 2019-04-15 20:45:19 +02:00
AppKit.h added these master include files for better R5 compatibility when compiling 2002-10-23 13:48:14 +00:00
Be.h Patch by Jorma Karvonen: Add LocaleKit.h header and also add it to Be.h. Thanks! 2010-05-16 16:07:55 +00:00
BeBuild.h BeBuild: set default visibility for _EXPORT 2020-01-30 00:32:32 +00:00
DeviceKit.h added these master include files for better R5 compatibility when compiling 2002-10-23 13:48:14 +00:00
GameKit.h added these master include files for better R5 compatibility when compiling 2002-10-23 13:48:14 +00:00
InterfaceKit.h added these master include files for better R5 compatibility when compiling 2002-10-23 13:48:14 +00:00
KernelKit.h added these master include files for better R5 compatibility when compiling 2002-10-23 13:48:14 +00:00
LocaleKit.h Remove even more Locale Kit cruft. 2017-07-30 14:46:41 -04:00
MailKit.h added these master include files for better R5 compatibility when compiling 2002-10-23 13:48:14 +00:00
MediaKit.h Make BMediaRecorder public 2017-01-10 21:34:20 +01:00
MidiKit.h added these master include files for better R5 compatibility when compiling 2002-10-23 13:48:14 +00:00
NetKit.h * Rewrote NetKit.h, and added the libnetapi headers. 2008-06-24 09:03:44 +00:00
NetworkKit.h Added the new headers to the NetworkKit.h all-in-one header. 2010-10-27 14:16:19 +00:00
StorageKit.h StorageKit.h still included the Alias.h header file I removed with the previous commit. 2007-07-06 12:52:01 +00:00
SupportKit.h added these master include files for better R5 compatibility when compiling 2002-10-23 13:48:14 +00:00
TranslationKit.h added these master include files for better R5 compatibility when compiling 2002-10-23 13:48:14 +00:00