History log of /haiku/src/apps/deskbar/InlineScrollView.h
Revision Date Author Comments
# deaae5fc 07-Jan-2014 John Scipione <jscipione@gmail.com>

Deskbar: Persist ExpandoMenuBar

Add private BMenu::_SetMenuLayout() method. Set TExpandoMenuBar
as a friend class in BMenu to call this method. A little hacky,
but, this keeps SetMenuLayout() from being exposed as part of
the public API.

Don't destroy and rebuild the ExpandoMenuBar when switching from
horizontal to vertical mode. Instead build the TExpandoMenuBar
when the application starts and then switch it from B_ITEMS_IN_ROW
to B_ITEMS_IN_COLUMNS by using the newly added _SetMenuLayout()
method.

When we resize from vertical to horizontal, recalc the max
menu item widths, this resizes the application menu items so
that they take up the right amount of space.

Since we no longer destroy the menu bar we no longer have to
save whether menu items are expanded or not in a separate list.
Instead we can store that information in directly in
TExpandoMenuBar. This removes a lot of code.

Fixes #9350


# d6f6b835 26-Oct-2012 John Scipione <jscipione@gmail.com>

Draw a nice menu background on the inline scroll view and when scroll faster when you push control/option/command and click the little arrow button.


# c07e6ff2 26-Oct-2012 John Scipione <jscipione@gmail.com>

Make horizontal scrolling work in Deskbar

* Split the Leaf menu and seperator into their own menubar.
* I got rid of a lot of special cases for horizontal in the
ExpandoMenuBar class because now the menubar contains the same
items as in vertical mode. However, it also means that the dreaded
<none> bug also affects horizontal mode.
* Make the application menubar resize itself even in horizontal mode.
This means that the view background shows through so I'm going to have
to fix this up.
* Calculate when to add the scroll arrows and how much to allow the user
to scroll by for horizontal. CheckItemSizes() got a big refactoring.
* Rework the InlineScrollView class a bit. It no longer requires you to
specify the begin and end limits on construction because it can
calculate them instead. It also no longer depends on the screen at all,
this means this class can be extened to be used more generally and in
more places.


# e6d8c22a 26-Jul-2012 John Scipione <jscipione@gmail.com>

WIP: Add support for horizontal scrolling.


# 255853fe 25-Jul-2012 John Scipione <jscipione@gmail.com>

Add left and right Scrollers and also an orientation parameter. Set the limit based on the view bottom and not the window bottom.


# 32f840b7 25-Jul-2012 John Scipione <jscipione@gmail.com>

Rename ScrollArrowView to InlineScrollView

InlineScrollView takes a BView instead of a BMenu as well, and it
no longer has flags to do drawing respond to frame changes since
this view does neither of those things.


# deaae5fc20b5cf44115441d34a1e33436df885b2 07-Jan-2014 John Scipione <jscipione@gmail.com>

Deskbar: Persist ExpandoMenuBar

Add private BMenu::_SetMenuLayout() method. Set TExpandoMenuBar
as a friend class in BMenu to call this method. A little hacky,
but, this keeps SetMenuLayout() from being exposed as part of
the public API.

Don't destroy and rebuild the ExpandoMenuBar when switching from
horizontal to vertical mode. Instead build the TExpandoMenuBar
when the application starts and then switch it from B_ITEMS_IN_ROW
to B_ITEMS_IN_COLUMNS by using the newly added _SetMenuLayout()
method.

When we resize from vertical to horizontal, recalc the max
menu item widths, this resizes the application menu items so
that they take up the right amount of space.

Since we no longer destroy the menu bar we no longer have to
save whether menu items are expanded or not in a separate list.
Instead we can store that information in directly in
TExpandoMenuBar. This removes a lot of code.

Fixes #9350


# d6f6b835adcb34abfca03207f272614373f38bb1 26-Oct-2012 John Scipione <jscipione@gmail.com>

Draw a nice menu background on the inline scroll view and when scroll faster when you push control/option/command and click the little arrow button.


# c07e6ff292cbe19ab758ce8bcb6c5cde38a3e662 26-Oct-2012 John Scipione <jscipione@gmail.com>

Make horizontal scrolling work in Deskbar

* Split the Leaf menu and seperator into their own menubar.
* I got rid of a lot of special cases for horizontal in the
ExpandoMenuBar class because now the menubar contains the same
items as in vertical mode. However, it also means that the dreaded
<none> bug also affects horizontal mode.
* Make the application menubar resize itself even in horizontal mode.
This means that the view background shows through so I'm going to have
to fix this up.
* Calculate when to add the scroll arrows and how much to allow the user
to scroll by for horizontal. CheckItemSizes() got a big refactoring.
* Rework the InlineScrollView class a bit. It no longer requires you to
specify the begin and end limits on construction because it can
calculate them instead. It also no longer depends on the screen at all,
this means this class can be extened to be used more generally and in
more places.


# e6d8c22a7d78f0e47be55db2338083ada4766b2a 26-Jul-2012 John Scipione <jscipione@gmail.com>

WIP: Add support for horizontal scrolling.


# 255853fe1593130db397b0923d0c82f1c2924557 25-Jul-2012 John Scipione <jscipione@gmail.com>

Add left and right Scrollers and also an orientation parameter. Set the limit based on the view bottom and not the window bottom.


# 32f840b7684012009c47338da6e00a202388126b 25-Jul-2012 John Scipione <jscipione@gmail.com>

Rename ScrollArrowView to InlineScrollView

InlineScrollView takes a BView instead of a BMenu as well, and it
no longer has flags to do drawing respond to frame changes since
this view does neither of those things.