History log of /haiku/headers/os/interface/ScrollBar.h
Revision Date Author Comments
# fe66a314 22-Jul-2018 waddlesplash <waddlesplash@gmail.com>

Revert "BScrollBar: Add lines and dots knob styles to scroll bar"

This reverts commit ec1b18c58ae632444200f7e1f952ddd2e31048fa.

This was not well enough reviewed, and it seems that at least some
consumers of the old API (e.g. WebPositive) need more than the new one provides.

Change-Id: Ie7ad1fc70dab889922424298661504b00f66d31d


# ec1b18c5 14-Jul-2018 John Scipione <jscipione@gmail.com>

BScrollBar: Add lines and dots knob styles to scroll bar

Fixes #9137

Move scroll bar drawing into HaikuControlLook

Added B_SCROLLABLE flag to BControlLook

Update FakeScrollBar in Appearance to also draw using HaikuControlLook.

Focus works on scroll bars again, used by FakeScrollBar... and probably
nowhere else.

Added private _ScrollingEnabled() convenience method to BScrollBar and
use it in a few places making.

Create ScrollBarPrivate.h header to share a couple of scroll bar related
enums with HaikuControlLook that come from BeOS Scroll Bar prefs.

Stuff arrow_direction enum into BScrollBar::Private as it has been
succeeded by a similar enum already present in BControlLook and is only
around now for BScrollBar::Private::DrawScrollBarButton.

Change-Id: Idc31ee41de091ba45ded2f0315a004af00143803


# 1f424632 11-Jun-2014 John Scipione <jscipione@gmail.com>

Style fixes to IK, focus on docs


# 1d09e9ce 29-Apr-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

BScrollbar: remove unused field.

* Nothing ever reads fTargetName in the scrollbar code, so remove the
field.
* Frees one reserved slot, and a little memory, as the target name was
copied with strdup.


# e724b26f 08-Jul-2013 John Scipione <jscipione@gmail.com>

Remove enum elaborated type specifier

...from orientation params. Elaborated type specifiers are not needed
for C++ code and removing them makes doxygen happy. Verified working
on both gcc2h and gcc4h builds.


# b5446310 04-Nov-2012 John Scipione <jscipione@gmail.com>

Remove the scroll bar knobs and corresponding setting


# dfa8cf8c 02-Nov-2012 John Scipione <jscipione@gmail.com>

Change SCROLL_KNOB_* constants to B_SCROLL_KNOB_*


# 4b5a6861 01-Nov-2012 John Scipione <jscipione@gmail.com>

Add the scrollbar constants enum to the header.

Also make some minor tweaks in ScrollBar.cpp


# 75a6d1db 26-Aug-2009 Stephan Aßmus <superstippi@gmx.de>

Optimized includes. For example, BeBuild.h is almost always already included
via SupportDefs.h.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32748 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 89208c77 27-Aug-2009 Stephan Aßmus <superstippi@gmx.de>

Finished unifying the Interface Kit headers:
* Fixed copyrights (puncuation and capitalization, removed authors from
headers)
* Updated indentation style
* Unified pointer/reference style
* Re-ordered some methods for better grouping where it could be done
(abd adopted source accordingly)
* Small coding style fixes here and there

No functional change intended.

+alphabranch


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32745 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2f86ba45 15-Feb-2009 Stephan Aßmus <superstippi@gmx.de>

Implemented a new look for the Haiku interface controls. It was
overheard that they looked too ninety-ish.
TODO: The code behind this is work in progress. The basic idea
is to extract all drawing code into a new class BControlLook,
of which there is a global instance be_control_look, instantiated
in InterfaceDefs.cpp. At the moment, all the old drawing code is
still there, and the usage of be_control_look is inside if-bodies
checking the instance against NULL. In another words, by not
instanitating be_control_look, you can revert back to the old look.
BControlLook's job is to provide reusable methods for drawing
certain types of frames, backgrounds and labels, so that application
developers can make controls that re-use the same drawing code
as built-in controls and adopt to changes made there. I have added
the notion of "borders". Each of the frame drawing methods can be
made to draw certain borders only, which is supposed to help when
controls shall visually attach. This feature is not fully explored
at all ATM.
TODO: Update BColumnListView header view and BStringItem text
spacing. Update other apps where it makes sense to use BControlLook.
For the moment, only Tracker and LaunchBox are updated. More...
NOTE: The new look is not very radically different, so that existing
apps do not immediately look too ugly or out of place.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29221 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 21bb6bd2 13-Sep-2008 Stephan Aßmus <superstippi@gmx.de>

* Update header indentation.
* Added BScrollBar::SetOrientation().
* Improved _DrawArrowButton() to have a good visual result even when the
scroll bar does not have the standard width or height.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27494 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1b047148 10-Sep-2008 Stephan Aßmus <superstippi@gmx.de>

Added layout friendly constructor (untested).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27407 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7bf5abf4 10-Sep-2008 Stephan Aßmus <superstippi@gmx.de>

Implemented BSize returning layout methods.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27406 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6a1d169c 06-Apr-2008 Stephan Aßmus <superstippi@gmx.de>

* Removed trailing spaces in ScrollBar.h
* It's not a good idea to archive fProportion as int32, seeing it's a float
on [0..1].
* Implemented archive constructor for BScrollBar. Untested.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24832 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2ee47d3f 17-Jul-2006 Axel Dörfler <axeld@pinc-software.de>

* Made B_V_SCROLL_BAR_WIDTH & B_H_SCROLL_BAR_HEIGHT float constants.
* Added a TODO to some stuff that probably shouldn't be in a public header.
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18174 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f4cee9d5 15-Nov-2005 Stephan Aßmus <superstippi@gmx.de>

fix the FBC problem, as Ingo pointed out, derived classes contain slots for all virtuals defined in the base class, therefor, it is ok to just define WindowActivated for BScrollBar. The only problem is that BScrollBar::WindowActivated() cannot be called from apps having overridden WindowActivated() in a BScrollBar subclass of their own.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14953 a95241bf-73f2-0310-859d-f6bbb57e9c96


# db3c2e1e 14-Nov-2005 Stephan Aßmus <superstippi@gmx.de>

* drawing is on the road to perfection
* uses another virtual to implement WindowActivated() and draw itself in
disabled look just like in R5
* fixed _ButtonRectFor() off by one errors
* tiny problems remain when clicking on the ScrollBar (it is shifted)
* the _ValueFor() might not be perfect


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14929 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4f34cedf 06-Nov-2005 Stephan Aßmus <superstippi@gmx.de>

also contains code and ideas from Stefano

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14737 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5083a8d5 06-Nov-2005 Stephan Aßmus <superstippi@gmx.de>

stunning improvements to drawing, completely removed flickering, only minor visual problems remain, maybe needs testing with regard to targeted views being removed or the scrollbar being removed etc

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14736 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7dc436d8 07-Jul-2005 Stephan Aßmus <superstippi@gmx.de>

usability improvements to scrollbar, sorry had no time to include all of Stefanos drawing code yet, other visual improvements

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13535 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 96f6ef63 03-Jul-2005 Stefano Ceccherini <stefano.ceccherini@gmail.com>

The bar and knob frame are now calculated. That way we god rid of some billions fPrivateData->fThumbFrame.OffsetBy() calls

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13410 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0ee76eaf 02-Jul-2005 Stefano Ceccherini <stefano.ceccherini@gmail.com>

More work on scrollbars. Some refactoring.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13402 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 267b7214 01-Jul-2005 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Started integration of new drawing code. Still so much work to do. Simplified some parts of the code. Scrollbars are broken in many ways, need refactoring

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13393 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1d95a5ff 30-May-2005 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Renamed the private BScrollBarPrivateData class to be an internal BScrollBar's class

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12916 a95241bf-73f2-0310-859d-f6bbb57e9c96


# da0209e2 08-Oct-2004 DarkWyrm <darkwyrm@gmail.com>

Some fixes and tweaks by Kevin Field


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9262 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f9f5f264 15-Nov-2003 DarkWyrm <darkwyrm@gmail.com>

Added OBOS header. I don't think there was anything else. :)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5386 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f5bf638f 03-Jun-2003 haydentech <haydentech@nowhere.fake>

gcc3-related fixes and general clean-up


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3406 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c1a8250f 30-Dec-2002 DarkWyrm <darkwyrm@gmail.com>

Checkin to accomodate client-based BScrollBar


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2321 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d734a8ce 23-Oct-2002 beveloper <beveloper@nowhere.fake>

some header files to be R5 compatible


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1617 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1f424632be5dcad5b81a23080eb205ab6471cd7b 11-Jun-2014 John Scipione <jscipione@gmail.com>

Style fixes to IK, focus on docs


# 1d09e9cee35bb74028ac9a23379b8419076bec1c 29-Apr-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

BScrollbar: remove unused field.

* Nothing ever reads fTargetName in the scrollbar code, so remove the
field.
* Frees one reserved slot, and a little memory, as the target name was
copied with strdup.


# e724b26f23ad0df100a47f8d913bcdb3d54267df 08-Jul-2013 John Scipione <jscipione@gmail.com>

Remove enum elaborated type specifier

...from orientation params. Elaborated type specifiers are not needed
for C++ code and removing them makes doxygen happy. Verified working
on both gcc2h and gcc4h builds.


# b5446310e961f84511a71964c4dca96ce6b7d2f9 04-Nov-2012 John Scipione <jscipione@gmail.com>

Remove the scroll bar knobs and corresponding setting


# dfa8cf8c05bd7173fa5f25170bc297757175daab 02-Nov-2012 John Scipione <jscipione@gmail.com>

Change SCROLL_KNOB_* constants to B_SCROLL_KNOB_*


# 4b5a6861f2752fef9d2e48b8d8ab0d92ac4dfa09 01-Nov-2012 John Scipione <jscipione@gmail.com>

Add the scrollbar constants enum to the header.

Also make some minor tweaks in ScrollBar.cpp


# 75a6d1db99fe8ea432c7ff8d80cfc095710d02f5 26-Aug-2009 Stephan Aßmus <superstippi@gmx.de>

Optimized includes. For example, BeBuild.h is almost always already included
via SupportDefs.h.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32748 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 89208c77f10235d43fda0c7b3fd6751db02cc12c 27-Aug-2009 Stephan Aßmus <superstippi@gmx.de>

Finished unifying the Interface Kit headers:
* Fixed copyrights (puncuation and capitalization, removed authors from
headers)
* Updated indentation style
* Unified pointer/reference style
* Re-ordered some methods for better grouping where it could be done
(abd adopted source accordingly)
* Small coding style fixes here and there

No functional change intended.

+alphabranch


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32745 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2f86ba45579bdc9648b232175f87edc62ab71b54 15-Feb-2009 Stephan Aßmus <superstippi@gmx.de>

Implemented a new look for the Haiku interface controls. It was
overheard that they looked too ninety-ish.
TODO: The code behind this is work in progress. The basic idea
is to extract all drawing code into a new class BControlLook,
of which there is a global instance be_control_look, instantiated
in InterfaceDefs.cpp. At the moment, all the old drawing code is
still there, and the usage of be_control_look is inside if-bodies
checking the instance against NULL. In another words, by not
instanitating be_control_look, you can revert back to the old look.
BControlLook's job is to provide reusable methods for drawing
certain types of frames, backgrounds and labels, so that application
developers can make controls that re-use the same drawing code
as built-in controls and adopt to changes made there. I have added
the notion of "borders". Each of the frame drawing methods can be
made to draw certain borders only, which is supposed to help when
controls shall visually attach. This feature is not fully explored
at all ATM.
TODO: Update BColumnListView header view and BStringItem text
spacing. Update other apps where it makes sense to use BControlLook.
For the moment, only Tracker and LaunchBox are updated. More...
NOTE: The new look is not very radically different, so that existing
apps do not immediately look too ugly or out of place.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29221 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 21bb6bd22b42b063faf25cb515e4be776462d3f6 13-Sep-2008 Stephan Aßmus <superstippi@gmx.de>

* Update header indentation.
* Added BScrollBar::SetOrientation().
* Improved _DrawArrowButton() to have a good visual result even when the
scroll bar does not have the standard width or height.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27494 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1b0471487a3e284e8bb35d19837084ee0246657f 10-Sep-2008 Stephan Aßmus <superstippi@gmx.de>

Added layout friendly constructor (untested).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27407 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7bf5abf4255abd43e4c6e82145b05682c99389ed 10-Sep-2008 Stephan Aßmus <superstippi@gmx.de>

Implemented BSize returning layout methods.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27406 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6a1d169c52c9378bb186c43b00c7c70e77eb85e3 06-Apr-2008 Stephan Aßmus <superstippi@gmx.de>

* Removed trailing spaces in ScrollBar.h
* It's not a good idea to archive fProportion as int32, seeing it's a float
on [0..1].
* Implemented archive constructor for BScrollBar. Untested.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24832 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2ee47d3ff9156b73c3648dc099c3a27f0c21c4c2 17-Jul-2006 Axel Dörfler <axeld@pinc-software.de>

* Made B_V_SCROLL_BAR_WIDTH & B_H_SCROLL_BAR_HEIGHT float constants.
* Added a TODO to some stuff that probably shouldn't be in a public header.
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18174 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f4cee9d5f5ad8024e2553c79764cb9cbcd6695be 15-Nov-2005 Stephan Aßmus <superstippi@gmx.de>

fix the FBC problem, as Ingo pointed out, derived classes contain slots for all virtuals defined in the base class, therefor, it is ok to just define WindowActivated for BScrollBar. The only problem is that BScrollBar::WindowActivated() cannot be called from apps having overridden WindowActivated() in a BScrollBar subclass of their own.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14953 a95241bf-73f2-0310-859d-f6bbb57e9c96


# db3c2e1e8e52e95556e076d655316efdb7a8e018 14-Nov-2005 Stephan Aßmus <superstippi@gmx.de>

* drawing is on the road to perfection
* uses another virtual to implement WindowActivated() and draw itself in
disabled look just like in R5
* fixed _ButtonRectFor() off by one errors
* tiny problems remain when clicking on the ScrollBar (it is shifted)
* the _ValueFor() might not be perfect


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14929 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4f34cedfbad472fd3379d0fc7a2b74c559f5def0 06-Nov-2005 Stephan Aßmus <superstippi@gmx.de>

also contains code and ideas from Stefano

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14737 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5083a8d56da4a8b1c9a613317df36458b725e3fd 06-Nov-2005 Stephan Aßmus <superstippi@gmx.de>

stunning improvements to drawing, completely removed flickering, only minor visual problems remain, maybe needs testing with regard to targeted views being removed or the scrollbar being removed etc

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14736 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7dc436d8ddced8bde596634efe25ae5ceb11b704 07-Jul-2005 Stephan Aßmus <superstippi@gmx.de>

usability improvements to scrollbar, sorry had no time to include all of Stefanos drawing code yet, other visual improvements

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13535 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 96f6ef632c3c84788da1425fd2d4c09cf5b6a55a 03-Jul-2005 Stefano Ceccherini <stefano.ceccherini@gmail.com>

The bar and knob frame are now calculated. That way we god rid of some billions fPrivateData->fThumbFrame.OffsetBy() calls

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13410 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0ee76eaf1223206dd9eba38492f807b0832ff115 02-Jul-2005 Stefano Ceccherini <stefano.ceccherini@gmail.com>

More work on scrollbars. Some refactoring.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13402 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 267b7214308a965043f861511d8b90a64eebd57a 01-Jul-2005 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Started integration of new drawing code. Still so much work to do. Simplified some parts of the code. Scrollbars are broken in many ways, need refactoring

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13393 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1d95a5ff3a323c0c64e7d0139ab39c4b422da4b8 30-May-2005 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Renamed the private BScrollBarPrivateData class to be an internal BScrollBar's class

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12916 a95241bf-73f2-0310-859d-f6bbb57e9c96


# da0209e2e43016eb56fdb0aeabaf3206939b12cd 08-Oct-2004 DarkWyrm <darkwyrm@gmail.com>

Some fixes and tweaks by Kevin Field


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9262 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f9f5f264735759321cd3eab08de5137a1b63e837 15-Nov-2003 DarkWyrm <darkwyrm@gmail.com>

Added OBOS header. I don't think there was anything else. :)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5386 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f5bf638f019efbd49e7ea02a1df3a715c4cfbeac 03-Jun-2003 haydentech <haydentech@nowhere.fake>

gcc3-related fixes and general clean-up


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3406 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c1a8250fd32a310b244022ebb3a5c664a4f95557 30-Dec-2002 DarkWyrm <darkwyrm@gmail.com>

Checkin to accomodate client-based BScrollBar


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2321 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d734a8ce5a83e48e17a2d0d6635090d48c5ad161 23-Oct-2002 beveloper <beveloper@nowhere.fake>

some header files to be R5 compatible


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1617 a95241bf-73f2-0310-859d-f6bbb57e9c96