History log of /haiku/src/apps/deskbar/TeamMenu.cpp
Revision Date Author Comments
# c2507fb8 22-Aug-2016 John Scipione <jscipione@gmail.com>

Deskbar: get default collator from BLocale

...using BLocale::Default()->GetCollator(&collator)

Thanks waddlesplash


# bd6dcb36 22-Aug-2016 0xffea <0xffea@gmail.com>

Deskbar: item sorting is not locale-sensitive

Fix using a global BCollator defined in BarApp.

Called static CompareByName() method in TTeamMenu instead of
duplicating code, made method public.

This comes from a patch by 0xffea for GSoC 2014.

A locale aware version of NaturalCompare in WindowMenuItem.cpp
is still needed.

Fixes #7712

Signed-off-by: John Scipione <jscipione@gmail.com>


# b49e806d 30-Mar-2015 Axel Dörfler <axeld@pinc-software.de>

Deskbar: minor style cleanup.


# 5737994f 19-Feb-2015 John Scipione <jscipione@gmail.com>

Deskbar: Compare Tracker sig case-insensitively


# 072c2dcd 19-Feb-2015 John Scipione <jscipione@gmail.com>

Deskbar: Add some pragma statements


# 18bcf77a 06-Jan-2014 John Scipione <jscipione@gmail.com>

Deskbar: Don’t save fHasLabel and fVertical

in the TTeamMenuItem, get it from the parent or settings instead.


# f68c6875 19-Feb-2015 John Scipione <jscipione@gmail.com>

Deskbar: Style fix, check for NULL explicitly


# 3aeed660 07-Aug-2014 Jérôme Duval <jerome.duval@gmail.com>

include strings.h where appriopriate...

instead or additionally to string.h, in preparation for functions move.
* moves str[n]casecmp() functions and others to strings.h.
* strings.h doesn't include string.h anymore.
* this solves #10949


# 30e6af93 17-Apr-2013 John Scipione <jscipione@gmail.com>

Eliminate background app and Deskbar app checks

This is a follow up on the fix for #9632.

Now that the group list in Deskbar never deals with background apps or the Deskbar app itself we can simplify the code by eliminating the checks, especially in Switcher.cpp (Twitcher).

Checking for background apps and Deskbar has also been eliminated from TExpandoMenuBar and TTeamMenu. The single point of entry for these checks is in TBarApp::AddTeam().

In Switcher.cpp remove OKToUse() since the list is assumed to contain only valid entries. TSwitchManager::CountVisibleGroups() also got removed because all groups are visible. TSwitchManager::_FindNextValidApp(), TSwitchManager::QuitApp(), TIconView::ItemAtPoint(), TIconView::ScrollTo(), and TIconView::FrameOf() all got simplified significantly.


# d6d8b95a 14-Apr-2013 John Scipione <jscipione@gmail.com>

Set the TeamMenuItems to a more reasonable width in mini mode


# 0af37cd3 14-Apr-2013 John Scipione <jscipione@gmail.com>

NULL check


# 004175c0 14-Apr-2013 John Scipione <jscipione@gmail.com>

Eliminate unused DrawBackground method and restyle header


# 01f35d10 14-Apr-2013 John Scipione <jscipione@gmail.com>

Style fixes to TeamMenu


# 4ae3e542 14-Apr-2013 John Scipione <jscipione@gmail.com>

Fix a bug where the Deskbar menu was incorrectly sized in horizontal mode

Actually, the Deskbar menu was sized correctly but the separator item was not,
so, I've replaced the separator item with a new TSeparatorItem class that is derived
from BSeparatorItem but does it's own drawing. This neatly avoids the bug since
the TSeperatorItem doesn't need to be resized explicitly.

Also, there were some instances of AddSeperatorItem (with an e) that I renamed to
AddSeparatorItem (with an a). I also eliminated includes in the header which means
I added them in some cpp files where they were needed.


# e13f5676 27-Mar-2013 John Scipione <jscipione@gmail.com>

Cache app icons in BarInfo to make them load faster.

This turns an IO bound problem into a CPU bound problem. In my testing this
speeds up icon resizing dramatically although the CPU is quickly pegged at
100% trying to redraw the Deskbar if you whip the icon size slider back and
forth with a dozen or so apps open and soon the CPU can't keep up and Deskbar
lags behind.


# 1cd61330 02-May-2012 John Scipione <jscipione@gmail.com>

Style fixes including reordering #include's in Deskbar

* Reorder includes according to the Style Guide.
* Whitespace changes, mostly making sure there are 2 newlines
between things and making sure there is 1 newline at the end of
each file.
* Make end of header files all in the style of
#endif\t/* _HEADER_GAURD_H_ */
* The one change that is not purely style is to #include <Path.h>
in DeskbarUtils.h instead of DeskbarUtils.cpp because it is used
to define entry_ref for the AddRefsToDeskbarMenu() prototype.


# 2ce9bab8 27-Jun-2011 John Scipione <jscipione@gmail.com>

Fisher Price Deskbar icon support

Implements the feature described in #7132
Also fixes #2387 (menu items too big in horizontal mode when font size > 12)

Adds a slider to Deskbar preferences which allows you to resize your Deskbar
team icons from 16x16 to 96x96. The default is 16x16. This works both in vertical
and horizontal mode.

In vertical mode when icon sizes are greater than 32x32 the label moves
underneath the icon where there is more room. In horizontal mode the width of
the menu item increases to make room for the icon while keeping room for the
label the same. As many applications are added the labels are truncated as usual.

This patch also adds a checkbox to the Deskbar preferences to hide application
names to make more room for icons if you wish. It doesn't make a lot of sense
at 16x16 but does >32x32.

If the kResizeTeamIcons message gets dropped, don't resize to current value,
just do nothing. This fixes a bug where sometimes the slider wouldn't trigger
a resize. Fix a spelling error in a comment. Take out a redundant paren pair.


# 323b6546 21-Nov-2011 Oliver Tappe <zooey@hirschkaefer.de>

Filtered flat import of Oliver's svn package management branch

Bring the changes that aren't package management related and the ones
that are but don't take effect as long as they are ignored by the build
system into the master.

Summary of changes:
* Introduce private header <directories.h> with constants for a good
deal of paths that should usually be retrieved via find_directory().
* Replace hard-coded paths by using find_directory() or the
<directories.h> constants (e.g. in drivers and the kernel).
* Add find_directory() constants needed for package management.
* Add __HAIKU_ABI_NAME and B_HAIKU_ABI_NAME macros.
* src/apps/deskbar: BeMenu.* -> DeskbarMenu.*,
DeskBarUtils.* -> DeskbarUtils.*
* Change deskbar menu settings directory from ~/config/be to
~/config/settings/deskbar.
* Other smaller cleanups, changes, and fixes.


# 7eb3210e 05-Nov-2011 John Scipione <jscipione@gmail.com>

Sort application windows in Deskbar in 'natural' order yielding this:

window 1
window 2
window 3
window 4
window 5
window 6
window 7
window 8
window 9
window 10
window 11

Instead of this:

window 1
window 10
window 11
window 2
window 3
window 4
window 5
window 6
window 7
window 8
window 9

The natural order comparison method used in Deskbar is the same method used
to sort file names in natural order in Tracker.

Also when comparing window titles to their corresponding window menu item
labels use the FullTitle() method instead of the Label() method because the
label might get truncated.

Fixes #7774

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


# 3dfd9cb9 16-Jun-2011 Oliver Tappe <zooey@hirschkaefer.de>

Flat commit of all changes from package-management branch in svn


# 1687edd0 06-Mar-2011 Fredrik Holmqvist <fredrik.holmqvist@gmail.com>

Final set of style cleanup patches by John Scipione as part of #7052.


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


# 71bd3ba5 30-Sep-2009 Jonas Sundström <jonas@kirilla.com>

Removing ifdefs and code for non-Haiku build targets. Partial clean-up. Enforcing the 80-char limit, renaming constants, newline at end of file.

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


# 290c9039 29-Sep-2009 Jonas Sundström <jonas@kirilla.com>

Partial clean-up. Asterisks and k-prefix constants.

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


# 4446e07a 23-Jan-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Use BMenu::RemoveItems() instead of looping... I hope I caught all
occurrences.


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


# 915af8b1 20-Jan-2006 Axel Dörfler <axeld@pinc-software.de>

Imported ExpandoMenuBar 1.16 and TeamMenu.cpp 1.5 from the OpenTracker repository:
* fixes for the Deskbar running without any other apps.


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


# 41281cf3 22-May-2005 Axel Dörfler <axeld@pinc-software.de>

Added Tracker and Deskbar from OpenTracker-current to the repository.
They both build fine.


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


# b49e806d3d560677f968daf1758d01cd791a1ba8 30-Mar-2015 Axel Dörfler <axeld@pinc-software.de>

Deskbar: minor style cleanup.


# 5737994f8fa7150947ceae5d17b5b5e2c777009c 19-Feb-2015 John Scipione <jscipione@gmail.com>

Deskbar: Compare Tracker sig case-insensitively


# 072c2dcde2955c2503b240cf7561da38ad50f536 19-Feb-2015 John Scipione <jscipione@gmail.com>

Deskbar: Add some pragma statements


# 18bcf77ab08a66f3820fa608a124b199742a0070 06-Jan-2014 John Scipione <jscipione@gmail.com>

Deskbar: Don’t save fHasLabel and fVertical

in the TTeamMenuItem, get it from the parent or settings instead.


# f68c687536b681ca7a81d19a66956f6369956957 19-Feb-2015 John Scipione <jscipione@gmail.com>

Deskbar: Style fix, check for NULL explicitly


# 3aeed6607cd07762c0e709633c012b3a632dbad9 07-Aug-2014 Jérôme Duval <jerome.duval@gmail.com>

include strings.h where appriopriate...

instead or additionally to string.h, in preparation for functions move.
* moves str[n]casecmp() functions and others to strings.h.
* strings.h doesn't include string.h anymore.
* this solves #10949


# 30e6af93e4ae245281e73a10e5ffcbd94ce38dc8 17-Apr-2013 John Scipione <jscipione@gmail.com>

Eliminate background app and Deskbar app checks

This is a follow up on the fix for #9632.

Now that the group list in Deskbar never deals with background apps or the Deskbar app itself we can simplify the code by eliminating the checks, especially in Switcher.cpp (Twitcher).

Checking for background apps and Deskbar has also been eliminated from TExpandoMenuBar and TTeamMenu. The single point of entry for these checks is in TBarApp::AddTeam().

In Switcher.cpp remove OKToUse() since the list is assumed to contain only valid entries. TSwitchManager::CountVisibleGroups() also got removed because all groups are visible. TSwitchManager::_FindNextValidApp(), TSwitchManager::QuitApp(), TIconView::ItemAtPoint(), TIconView::ScrollTo(), and TIconView::FrameOf() all got simplified significantly.


# d6d8b95a6d8201eb308dd884633a3e3dbb214196 14-Apr-2013 John Scipione <jscipione@gmail.com>

Set the TeamMenuItems to a more reasonable width in mini mode


# 0af37cd3bc5a256b60099d6412d2b5f4492d49c7 14-Apr-2013 John Scipione <jscipione@gmail.com>

NULL check


# 004175c0d93fd0ef416396bc5efabe73af864eb3 14-Apr-2013 John Scipione <jscipione@gmail.com>

Eliminate unused DrawBackground method and restyle header


# 01f35d103ff2a09e9e1daced8452940cc9a94685 14-Apr-2013 John Scipione <jscipione@gmail.com>

Style fixes to TeamMenu


# 4ae3e5421d4009205c273ec076bdcb5e1f21f936 14-Apr-2013 John Scipione <jscipione@gmail.com>

Fix a bug where the Deskbar menu was incorrectly sized in horizontal mode

Actually, the Deskbar menu was sized correctly but the separator item was not,
so, I've replaced the separator item with a new TSeparatorItem class that is derived
from BSeparatorItem but does it's own drawing. This neatly avoids the bug since
the TSeperatorItem doesn't need to be resized explicitly.

Also, there were some instances of AddSeperatorItem (with an e) that I renamed to
AddSeparatorItem (with an a). I also eliminated includes in the header which means
I added them in some cpp files where they were needed.


# e13f5676a08f505497aafbd491f398760b237e87 27-Mar-2013 John Scipione <jscipione@gmail.com>

Cache app icons in BarInfo to make them load faster.

This turns an IO bound problem into a CPU bound problem. In my testing this
speeds up icon resizing dramatically although the CPU is quickly pegged at
100% trying to redraw the Deskbar if you whip the icon size slider back and
forth with a dozen or so apps open and soon the CPU can't keep up and Deskbar
lags behind.


# 1cd61330ecd8257551d58f204332d00145c855ec 02-May-2012 John Scipione <jscipione@gmail.com>

Style fixes including reordering #include's in Deskbar

* Reorder includes according to the Style Guide.
* Whitespace changes, mostly making sure there are 2 newlines
between things and making sure there is 1 newline at the end of
each file.
* Make end of header files all in the style of
#endif\t/* _HEADER_GAURD_H_ */
* The one change that is not purely style is to #include <Path.h>
in DeskbarUtils.h instead of DeskbarUtils.cpp because it is used
to define entry_ref for the AddRefsToDeskbarMenu() prototype.


# 2ce9bab873e024bb515a95faf384df62b88bbb8c 27-Jun-2011 John Scipione <jscipione@gmail.com>

Fisher Price Deskbar icon support

Implements the feature described in #7132
Also fixes #2387 (menu items too big in horizontal mode when font size > 12)

Adds a slider to Deskbar preferences which allows you to resize your Deskbar
team icons from 16x16 to 96x96. The default is 16x16. This works both in vertical
and horizontal mode.

In vertical mode when icon sizes are greater than 32x32 the label moves
underneath the icon where there is more room. In horizontal mode the width of
the menu item increases to make room for the icon while keeping room for the
label the same. As many applications are added the labels are truncated as usual.

This patch also adds a checkbox to the Deskbar preferences to hide application
names to make more room for icons if you wish. It doesn't make a lot of sense
at 16x16 but does >32x32.

If the kResizeTeamIcons message gets dropped, don't resize to current value,
just do nothing. This fixes a bug where sometimes the slider wouldn't trigger
a resize. Fix a spelling error in a comment. Take out a redundant paren pair.


# 323b65468e5836bb27a5e373b14027d902349437 21-Nov-2011 Oliver Tappe <zooey@hirschkaefer.de>

Filtered flat import of Oliver's svn package management branch

Bring the changes that aren't package management related and the ones
that are but don't take effect as long as they are ignored by the build
system into the master.

Summary of changes:
* Introduce private header <directories.h> with constants for a good
deal of paths that should usually be retrieved via find_directory().
* Replace hard-coded paths by using find_directory() or the
<directories.h> constants (e.g. in drivers and the kernel).
* Add find_directory() constants needed for package management.
* Add __HAIKU_ABI_NAME and B_HAIKU_ABI_NAME macros.
* src/apps/deskbar: BeMenu.* -> DeskbarMenu.*,
DeskBarUtils.* -> DeskbarUtils.*
* Change deskbar menu settings directory from ~/config/be to
~/config/settings/deskbar.
* Other smaller cleanups, changes, and fixes.


# 7eb3210e8f56c924148b23f129dbdc3f2670d828 05-Nov-2011 John Scipione <jscipione@gmail.com>

Sort application windows in Deskbar in 'natural' order yielding this:

window 1
window 2
window 3
window 4
window 5
window 6
window 7
window 8
window 9
window 10
window 11

Instead of this:

window 1
window 10
window 11
window 2
window 3
window 4
window 5
window 6
window 7
window 8
window 9

The natural order comparison method used in Deskbar is the same method used
to sort file names in natural order in Tracker.

Also when comparing window titles to their corresponding window menu item
labels use the FullTitle() method instead of the Label() method because the
label might get truncated.

Fixes #7774

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


# 3dfd9cb95ce45f59160d50975210bc55e3fc0709 16-Jun-2011 Oliver Tappe <zooey@hirschkaefer.de>

Flat commit of all changes from package-management branch in svn


# 1687edd0fde594cd6f7c88f58a264c4787b4327d 06-Mar-2011 Fredrik Holmqvist <fredrik.holmqvist@gmail.com>

Final set of style cleanup patches by John Scipione as part of #7052.


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


# 71bd3ba59c06b130115c3ddd44457d8f9dd78997 30-Sep-2009 Jonas Sundström <jonas@kirilla.com>

Removing ifdefs and code for non-Haiku build targets. Partial clean-up. Enforcing the 80-char limit, renaming constants, newline at end of file.

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


# 290c903985a449fa86c501366b6fcddf7f55b46a 29-Sep-2009 Jonas Sundström <jonas@kirilla.com>

Partial clean-up. Asterisks and k-prefix constants.

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


# 4446e07ae9dd2e256bb46cde35f05890515a1f70 23-Jan-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Use BMenu::RemoveItems() instead of looping... I hope I caught all
occurrences.


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


# 915af8b17a1a7a0edc1b12c5984f21a3da9b8b65 20-Jan-2006 Axel Dörfler <axeld@pinc-software.de>

Imported ExpandoMenuBar 1.16 and TeamMenu.cpp 1.5 from the OpenTracker repository:
* fixes for the Deskbar running without any other apps.


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


# 41281cf362916855e6eb9ad1d728d919863a1e81 22-May-2005 Axel Dörfler <axeld@pinc-software.de>

Added Tracker and Deskbar from OpenTracker-current to the repository.
They both build fine.


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