History log of /haiku/src/apps/deskbar/BarApp.h
Revision Date Author Comments
# fb885767 04-May-2023 John Scipione <jscipione@gmail.com>

Deskbar: Use hvif window icons & scale with font

Add vector rdefs for shown, hidden, shown switch
and hidden switch icons. Remove unused bitmap
resources. Add window switch vector icons to
artwork.

Create window icon cache in TBarApp and cache the
window icons based on font size.
Fixes memory leak in #18357.

Don't draw off-workspace lines in Switcher, use
switch icon for that instead. Fixes crash reported
in #18359. Position icon and window name better in
Switcher.

Put BarTeamInfo icon parameter last and make it
optional, the icon gets set by caching.

Enable team icon cache and window icon cache.

Fixes #14694

Deskbar: Scale Twitcher icons based on font size

Remove the point ctor parameter and deprecate the
switcherLoc setting by not using or setting it and
leaving it at its default value.

Center window on screen resolution change and
workspace change (as resolution may not match).

Fixes #17924

Change-Id: Ib63cc307f14cda397ffb66ea74091be59e6e5535
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6335
Reviewed-by: John Scipione <jscipione@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>


# 9da3977c 05-May-2023 John Scipione <jscipione@gmail.com>

Deskbar: Rename IconSize() to TeamIconSize()

Change-Id: Id536bacd60334cd167051a785e7fff819359aacf
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6412
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: John Scipione <jscipione@gmail.com>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>


# 69bbd7ad 05-May-2023 John Scipione <jscipione@gmail.com>

Deskbar: style fixes only

Change-Id: Ia5a94ded518a9b55aac94a69bcd393338bf90ebc
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6411
Reviewed-by: John Scipione <jscipione@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>


# 1e0308a8 25-Aug-2022 Augustin Cavalier <waddlesplash@gmail.com>

Deskbar: Use BControlLook::ComposeIconSize() and other metrics routines.

This gets Deskbar looking somewhat more like its usual self in HiDPI
environments. There are still some hardcoded sizes which need to be
refactored, however.


# 5fd3bc6d 03-Nov-2018 Axel Dörfler <axeld@pinc-software.de>

BDeskbar: Moved constants to shared header

* Instead of duplicating them in different files.


# fc23c097 26-Nov-2017 John Scipione <jscipione@gmail.com>

BDeskbar & Deskbar: export window bool settings to BDeskbar

Add methods to get and set "Always on top", "Auto raise", and "auto hide"
which are all booleans which control aspects of the Deskbar window to
BDeskbar.

Set the bool to the default value initially. Check if sending the
message succeeds, if so check the reply which also fills out the bool.
Don't check to see if reply succeeded because the bool will only be
overwritten if it did.

Follow the BDeskbar convention Is...() for getter, Set...() for setter
e.g IsAlwaysOnTop() is the getter, SetAlwaysOnTop() is the setter.

Define new message constants to call the newly created methods.
Follow BDeskbar convention: 'gtla' is used for getter, 'stla' for setter.
g/s for getter/setter, tla is an all-lowercase code unique to each
getter/setter pair.

Copy/paste these message constants into BarApp.h unchanged. Replace four
letter codes with imported message constants in BarApp.cpp and
BarWindow.cpp. Much nicer than using bare codes.

The new BDeskbar methods are all handled by TBarApp. The getters send
back a reply message containing the bool while the setters fall through
to existing setter cases.


# c0dc265c 19-Oct-2017 John Scipione <jscipione@gmail.com>

Deskbar & PowerStatus: Realign Replicants

Added a new message constant to Deskbar kRealignReplicants which
is called to realign replicant icons. Add routing so that if you knock on
Deskbar's front door (Application) it will get routed to the right view, in
this case the repliant tray that knows how to realign replicants.

Send a message with this newly created constant in PowerStatus when
the width changes because you turned the label on or off. This makes
it so that when you show or hide the battery percentage it will not overrun
the clock.

Realign Replicants is a common case.

Fixes the rest of #8641


# 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>


# 4f39c588 11-Jan-2016 Augustin Cavalier <waddlesplash@gmail.com>

Deskbar: Get rid of the "Restart Tracker" menu item.

Now that launch_daemon automatically restarts Tracker and Deskbar
when they crash, this is not needed anymore.


# 4e8fc451 19-Oct-2015 Axel Dörfler <axeld@pinc-software.de>

Deskbar: converted to BServer.


# c6b72ad6 06-Apr-2013 John Scipione <jscipione@gmail.com>

Tiny style fix, thanks Axel


# 542de916 06-Apr-2013 John Scipione <jscipione@gmail.com>

Add and use an _Init() method for BarTeamInfo


# 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.


# 43917ef2 08-Mar-2013 John Scipione <jscipione@gmail.com>

Refactor settings so that defaults get set in 1 place.

* Move desk_settings and clock_settings struct to a new header entitled
'BarSettings.h' so it can be included in BarApp.h and PreferencesWindow.h.
* Refactor desk_settings to only include used, or at least relevant settings,
some cruft had built up over time.
* Refactor the InitSettings() method, all the B_OK checking wasn't working so
I removed it. Defaults get set up to and if the corresponding setting is
found in the settings file it is replaced, else, it is not.
* Reorder the struct and code so it goes in the order that the settings appear:
applications, then recent items, then window settings.
* Simplify the preferences window revert and defaults code based on using the
prebuild desk_settings structs in BarApp instead of creating our own and
copying. All initial setup is in the constructor.


# cb422386 08-Mar-2013 John Scipione <jscipione@gmail.com>

Destroy prefs window on close once again


# cb0602cf 06-Mar-2013 John Scipione <jscipione@gmail.com>

Implement Revert and Default buttons in Deskbar prefs


# 3722e640 13-Feb-2013 John Scipione <jscipione@gmail.com>

Store and read show/hide clock setting on disk.

So that the setting will persist across reboots. This is a Deskbar
setting, not a "clock" setting. Theoretically someday if we make
it so you can replace the clock with a different clock widget we
still want to store whether or not to show the clock widget as a
Deskbar setting.
Fixes #9456


# c5d129a2 14-Jan-2013 John Scipione <jscipione@gmail.com>

Style changes only


# 31c0024d 07-Nov-2012 John Scipione <jscipione@gmail.com>

Add Deskbar clock settings to Time Preferences

* Added a new Clock tab to the Time preflet. Added Clock related
controls there. They all function by communicating with Deskbar.
* Put controls in a BBox controlled by the Show clock checkbox.
This more clearly shows that all the clock settings are dependent
on the show clock setting since it doesn't matter what your clock
settings are if you don't show the clock.
* Make revert work.
* Split clock settings into it's own file and struct.
* Re-add the time zone setting.
* Remove the clock settings from the Deskbar preference window, they
are in Time now.
* Make Locale preferences accepts B_LOCALE_CHANGED message, although
not used.


# a663e905 16-Jun-2012 Rene Gollent <anevilyak@gmail.com>

Fix #8640.

- Automatic whitespace cleanup.
- Remove no longer exposed show/hide time setting. The methodology for
saving it on exit was broken anyways, since it relied on the current
show/hide state of the time view, which would be hidden if the deskbar
was currently in Autohide mode.


# 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.


# f5be13ec 17-Apr-2012 John Scipione <jscipione@gmail.com>

Remove time zone clock option and Time preferences button.

* Nobody thought time zone was a particularly useful option to have
in the clock.
* You can still open Time preferences from Deskbar by right clicking
on the clock, but, since there isn't a big connection between
the clock settings in Deskbar and Time preferences anymore
this button isn't needed here.
* There are still 2 clock options, Show seconds, and Show day of week
and day of week is localized as well so this wasn't a total wash.


# 3cf2d117 14-Apr-2012 John Scipione <jscipione@gmail.com>

Change Time Format Options in Deskbar preferences.

Added two new methods to the Locale Kit in order to create a custom time
formats from a format string. One method is outputs into a char* array,
the other into a BString() and you can set the timezone.

These methods should be cleaned up, we only need 2, one to get
the time in a predefined style, the other to get a custom time format.
Also should probably do the same for dates and datetimes. But I'll let
this go for now.

I added myself to the Locale.cpp file. I retained the copyright instead
of assigning it to Haiku, Inc. because the file is under the OpenBeOS
license and I don't know what the concequences of copyright sharing are
for that license, unlike MIT.

These new methods are used to generate custom time formats in Deskbar.
Instead of using a set of Radio Buttons to choose between the predefined
time options I build my own by creating a format string and passing it
to the Locale Kit. The format string is generated from 3 checkboxes,
show seconds, show day of week, and show time zone. You can mix and match
between them choose any that you like. By default they are all off.

There are 3 new deskbar settings associated with these new options:
showSeconds, showDayOfWeek, and showTimeZone. timeFormat has gone away.

The time format string gets cached and updated only when Update() gets called
on the TimeView class.

In order to fit all the options in (there is 1 more than before) I had to
reduce the font size of the clock to 11pt when all options are turned on in
12 hour mode. For those with no imagination it looks like this:

http://imagebin.org/208162

Renamed "Open time preferences..." menuitem to "Time preferences...".
Renamed "Show Time" and "Hide Time" to "Show time" and "Hide time".

Other changes include refactoring the header files a bit. There were a lot
of headers included by header files uneccessarily. For instance BarWindow.h
now only includes <Window.h> and <Deskbar.h>. This change is mainly to
to speed up the compile time since it takes a while right now.

I copy the fBarView pointer from BarWindow in the BarApp constructor and then
use that throughout the file rather than getting the pointer from the window
each time by calling BarView(). BarView() is still available in the header
for other classes though.

I moved some message constants around since it was getting a bit jumbled.
Most of the messages related to settings are in PreferenceWindow.h.
fChangeState is moved to BarView.h since that is where the ChangeState()
function is and BarView.cpp uses that constant.

The time interval and format constants are in TimeView.h.

Make some methods public in their respective classes where it made sense.
The preference window methods to update dependent items are public, that
might get called from BarWindow when a message gets received at some point.

Also made ShowHideTime() and Time() public in StatusView.h. These methods
activate showing and hiding the clock and return the fTime clock object.
No reason they should be private.

I reindented the StatusView.h and PreferenceWindow.h headers to the standard
style. Question here, are the public: protected: and private: lines inside
of classes suppose to get indented 1 tab or not? I've seen both, the style
guide says no indent but 1 indent seems reasonable and looks pretty good.

Style fixes here and there. That's enough for one commit I think.


# 573f748c 09-Apr-2012 John Scipione <jscipione@gmail.com>

Add 12/24 hour and time formatting options to Deskbar.

* 12/24 hour settings come from and alter BLocale
* Time formats are short, medium, long. Short is default. Come from
Locale kit.
* Don't delete fClock (now fTime) when hiding, just hide and show
the view.
* BarView now has nothing to do with setting or keeping track of
time settings. This is all handled in TTimeView. TReplicantTray
is responsible for updating the replicant tray and doing showing
and hiding. TTimeView is responsible for drawing according to the
clock settings.
* Remove fShowInterval and fShowSeconds from BarView
* Remove ampmMode setting and replace it with timeFormat.
* Reset targets in DeskbarMenu.

Originally I was trying to solve a bug where the TTimeView
was relying on the Deskbar settings too much. The settings
should only by set on quit and accessed on startup or a crash can
cause Deskbar to be in an unusual state.

I realize that the timezone is not very helpful. I'd like to provide
the day of week in a short format instead, i.e. Wed for Wednesday or
similar based on your locale. Blame the Locale Kit for now allowing
me to be able to use a custom TimeFormat. Once a custom TimeFormats
becomes possible from the Locale Kit Deskbar can be updated to use
them.


# 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.


# e2700599 06-Jul-2011 Axel Dörfler <axeld@pinc-software.de>

* Applied a patch of x-ist that implements auto hide functionality with minor
coding style changes by myself.
* Thanks, and sorry for the long delay!


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


# 62a78b35 05-Mar-2011 Fredrik Holmqvist <fredrik.holmqvist@gmail.com>

Style cleanup patches by John Scipione from bug 7052. (Modified header to have consistent style).


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


# f4191361 07-Jul-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

Deskbar now uses a BMessage for storing its settings, instead of the old
raw file. Sorry, but You'll have to reconfigure your deskar to
accomodate this!


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


# 2f0eb7b1 02-Jul-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

* Introduce a new method in BCountry to get the first day of week (monday or sunday)
* Localize date in deskbar properly, and use the new API to show the calendar. The "show european date" checkbox is now gone.


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


# be8fa2fb 02-Jul-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

* Update all applications in tree to use the new localizing system
* Remove the old one from the locale librairy, with some cleanup
Known regressions :
* readonlybootprompt will no longer update the locale settings : the
method used messed with internal undocumented things
* external localized apps (webpositive for example) will not run
anymore.


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


# 3fc995d1 24-Jun-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

* Deskbar now uses localized time from locale kit. Thus the "24 hour
clock" setting is not needed anymore.
* The locale kit now provide a less complete 'full' time format : hour
minutes seconds, I don't think anyone cares much about the "UTC + 1" or
other similar stuff.


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


# ae7a6e3a 10-Apr-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

Patch by mt (ticket #5573) : localize deskbar. Thanks !


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


# 269b7706 10-Mar-2010 Jonas Sundström <jonas@kirilla.com>

Change message constant to not use all upper case, which is the system namespace. Thanks Ingo.

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


# f2a68969 10-Mar-2010 Jonas Sundström <jonas@kirilla.com>

Adding menu item Restart Tracker, to be shown when Tracker isn't running.

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


# 481a903a 30-Jan-2010 Philippe Saint-Pierre <stpere@gmail.com>

DeskBar: Adds a new setting (called ...Enabled) to determine if we show a particular Recent Menu.

* the previous behaviour was to consider it enabled if the count was above 0, and disabled otherwise.
* the new behaviour is to consider it disabled if the count is 0, but also allows to disable it by unchecking the box in the pref window, without setting the count to 0 (losing its value).

Fixes ticket #5007.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35355 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


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

Moving Deskbar options to a dedicated preferences window. Adding a preference application that simply tells Deskbar to open that window. Adjusting default settings Recent Folders from off to 10, and Auto-raise from on to off.

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


# b0a63e7a 17-Sep-2008 Stefano Ceccherini <stefano.ceccherini@gmail.com>

implemented BarTeamInfo copy constructor and used it in TBarApp::Subscribe(). Also cleaned up a bit the code in TBarApp destructor.

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


# dc69d5e2 14-Aug-2007 Axel Dörfler <axeld@pinc-software.de>

Added an auto-raise feature.


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


# f4a73641 03-Jan-2006 Axel Dörfler <axeld@pinc-software.de>

Imported current OpenTracker Deskbar: it can now start apps (and show the
"About Haiku" window) without having Tracker running.


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


# 7da06231 01-Jan-2006 Axel Dörfler <axeld@pinc-software.de>

Imported Deskbar from OpenTracker-current.


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


# 5fb214d4 17-Jul-2005 Stephan Aßmus <superstippi@gmx.de>

The Deskbar can now shutdown or reboot Haiku, but we should have a way to shutdown asynchronously, see TODO

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13712 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


# c6b72ad6e41811227a0852cebbd787f49a6ffea4 06-Apr-2013 John Scipione <jscipione@gmail.com>

Tiny style fix, thanks Axel


# 542de916c4beea64afae32c5bb1501223ea5bb4f 06-Apr-2013 John Scipione <jscipione@gmail.com>

Add and use an _Init() method for BarTeamInfo


# 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.


# 43917ef2e0654197d1d98dc0ed50095f6c813d7a 08-Mar-2013 John Scipione <jscipione@gmail.com>

Refactor settings so that defaults get set in 1 place.

* Move desk_settings and clock_settings struct to a new header entitled
'BarSettings.h' so it can be included in BarApp.h and PreferencesWindow.h.
* Refactor desk_settings to only include used, or at least relevant settings,
some cruft had built up over time.
* Refactor the InitSettings() method, all the B_OK checking wasn't working so
I removed it. Defaults get set up to and if the corresponding setting is
found in the settings file it is replaced, else, it is not.
* Reorder the struct and code so it goes in the order that the settings appear:
applications, then recent items, then window settings.
* Simplify the preferences window revert and defaults code based on using the
prebuild desk_settings structs in BarApp instead of creating our own and
copying. All initial setup is in the constructor.


# cb42238603639d60d3775a92b765715ef41edb97 08-Mar-2013 John Scipione <jscipione@gmail.com>

Destroy prefs window on close once again


# cb0602cf812bf04a72f60e4c4c76f6d8ca8b2f11 06-Mar-2013 John Scipione <jscipione@gmail.com>

Implement Revert and Default buttons in Deskbar prefs


# 3722e6400443ac3a57b255188898dab89a5a9aa4 13-Feb-2013 John Scipione <jscipione@gmail.com>

Store and read show/hide clock setting on disk.

So that the setting will persist across reboots. This is a Deskbar
setting, not a "clock" setting. Theoretically someday if we make
it so you can replace the clock with a different clock widget we
still want to store whether or not to show the clock widget as a
Deskbar setting.
Fixes #9456


# c5d129a27ae16c605e089a23158207d1f8532f00 14-Jan-2013 John Scipione <jscipione@gmail.com>

Style changes only


# 31c0024d1b271b0b671c77432cce0be483b366f0 07-Nov-2012 John Scipione <jscipione@gmail.com>

Add Deskbar clock settings to Time Preferences

* Added a new Clock tab to the Time preflet. Added Clock related
controls there. They all function by communicating with Deskbar.
* Put controls in a BBox controlled by the Show clock checkbox.
This more clearly shows that all the clock settings are dependent
on the show clock setting since it doesn't matter what your clock
settings are if you don't show the clock.
* Make revert work.
* Split clock settings into it's own file and struct.
* Re-add the time zone setting.
* Remove the clock settings from the Deskbar preference window, they
are in Time now.
* Make Locale preferences accepts B_LOCALE_CHANGED message, although
not used.


# a663e9050638c7470918bda00c4f260c30513990 16-Jun-2012 Rene Gollent <anevilyak@gmail.com>

Fix #8640.

- Automatic whitespace cleanup.
- Remove no longer exposed show/hide time setting. The methodology for
saving it on exit was broken anyways, since it relied on the current
show/hide state of the time view, which would be hidden if the deskbar
was currently in Autohide mode.


# 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.


# f5be13ecc7503a48a32b87995a78a2d0247ab401 17-Apr-2012 John Scipione <jscipione@gmail.com>

Remove time zone clock option and Time preferences button.

* Nobody thought time zone was a particularly useful option to have
in the clock.
* You can still open Time preferences from Deskbar by right clicking
on the clock, but, since there isn't a big connection between
the clock settings in Deskbar and Time preferences anymore
this button isn't needed here.
* There are still 2 clock options, Show seconds, and Show day of week
and day of week is localized as well so this wasn't a total wash.


# 3cf2d117e570356c8487e67a0e38b09b1639ab6c 14-Apr-2012 John Scipione <jscipione@gmail.com>

Change Time Format Options in Deskbar preferences.

Added two new methods to the Locale Kit in order to create a custom time
formats from a format string. One method is outputs into a char* array,
the other into a BString() and you can set the timezone.

These methods should be cleaned up, we only need 2, one to get
the time in a predefined style, the other to get a custom time format.
Also should probably do the same for dates and datetimes. But I'll let
this go for now.

I added myself to the Locale.cpp file. I retained the copyright instead
of assigning it to Haiku, Inc. because the file is under the OpenBeOS
license and I don't know what the concequences of copyright sharing are
for that license, unlike MIT.

These new methods are used to generate custom time formats in Deskbar.
Instead of using a set of Radio Buttons to choose between the predefined
time options I build my own by creating a format string and passing it
to the Locale Kit. The format string is generated from 3 checkboxes,
show seconds, show day of week, and show time zone. You can mix and match
between them choose any that you like. By default they are all off.

There are 3 new deskbar settings associated with these new options:
showSeconds, showDayOfWeek, and showTimeZone. timeFormat has gone away.

The time format string gets cached and updated only when Update() gets called
on the TimeView class.

In order to fit all the options in (there is 1 more than before) I had to
reduce the font size of the clock to 11pt when all options are turned on in
12 hour mode. For those with no imagination it looks like this:

http://imagebin.org/208162

Renamed "Open time preferences..." menuitem to "Time preferences...".
Renamed "Show Time" and "Hide Time" to "Show time" and "Hide time".

Other changes include refactoring the header files a bit. There were a lot
of headers included by header files uneccessarily. For instance BarWindow.h
now only includes <Window.h> and <Deskbar.h>. This change is mainly to
to speed up the compile time since it takes a while right now.

I copy the fBarView pointer from BarWindow in the BarApp constructor and then
use that throughout the file rather than getting the pointer from the window
each time by calling BarView(). BarView() is still available in the header
for other classes though.

I moved some message constants around since it was getting a bit jumbled.
Most of the messages related to settings are in PreferenceWindow.h.
fChangeState is moved to BarView.h since that is where the ChangeState()
function is and BarView.cpp uses that constant.

The time interval and format constants are in TimeView.h.

Make some methods public in their respective classes where it made sense.
The preference window methods to update dependent items are public, that
might get called from BarWindow when a message gets received at some point.

Also made ShowHideTime() and Time() public in StatusView.h. These methods
activate showing and hiding the clock and return the fTime clock object.
No reason they should be private.

I reindented the StatusView.h and PreferenceWindow.h headers to the standard
style. Question here, are the public: protected: and private: lines inside
of classes suppose to get indented 1 tab or not? I've seen both, the style
guide says no indent but 1 indent seems reasonable and looks pretty good.

Style fixes here and there. That's enough for one commit I think.


# 573f748c5f8fb7ed75beb0ceb7eb097d3ab0c038 09-Apr-2012 John Scipione <jscipione@gmail.com>

Add 12/24 hour and time formatting options to Deskbar.

* 12/24 hour settings come from and alter BLocale
* Time formats are short, medium, long. Short is default. Come from
Locale kit.
* Don't delete fClock (now fTime) when hiding, just hide and show
the view.
* BarView now has nothing to do with setting or keeping track of
time settings. This is all handled in TTimeView. TReplicantTray
is responsible for updating the replicant tray and doing showing
and hiding. TTimeView is responsible for drawing according to the
clock settings.
* Remove fShowInterval and fShowSeconds from BarView
* Remove ampmMode setting and replace it with timeFormat.
* Reset targets in DeskbarMenu.

Originally I was trying to solve a bug where the TTimeView
was relying on the Deskbar settings too much. The settings
should only by set on quit and accessed on startup or a crash can
cause Deskbar to be in an unusual state.

I realize that the timezone is not very helpful. I'd like to provide
the day of week in a short format instead, i.e. Wed for Wednesday or
similar based on your locale. Blame the Locale Kit for now allowing
me to be able to use a custom TimeFormat. Once a custom TimeFormats
becomes possible from the Locale Kit Deskbar can be updated to use
them.


# 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.


# e27005998f2cb3d61a7a95e97ff9b5bcbd3eadd6 06-Jul-2011 Axel Dörfler <axeld@pinc-software.de>

* Applied a patch of x-ist that implements auto hide functionality with minor
coding style changes by myself.
* Thanks, and sorry for the long delay!


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


# 62a78b3566dd7a8b72f48494f29447992958acef 05-Mar-2011 Fredrik Holmqvist <fredrik.holmqvist@gmail.com>

Style cleanup patches by John Scipione from bug 7052. (Modified header to have consistent style).


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


# f419136130da65fc3502ef7a889fa346b936593f 07-Jul-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

Deskbar now uses a BMessage for storing its settings, instead of the old
raw file. Sorry, but You'll have to reconfigure your deskar to
accomodate this!


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


# 2f0eb7b11e9cdb428b2da5bfaac25c9998b02e03 02-Jul-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

* Introduce a new method in BCountry to get the first day of week (monday or sunday)
* Localize date in deskbar properly, and use the new API to show the calendar. The "show european date" checkbox is now gone.


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


# be8fa2fb3088ab1921612b60f352dd9334b40b3d 02-Jul-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

* Update all applications in tree to use the new localizing system
* Remove the old one from the locale librairy, with some cleanup
Known regressions :
* readonlybootprompt will no longer update the locale settings : the
method used messed with internal undocumented things
* external localized apps (webpositive for example) will not run
anymore.


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


# 3fc995d101cdc6b31f12bb35f9681f4f16b8a408 24-Jun-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

* Deskbar now uses localized time from locale kit. Thus the "24 hour
clock" setting is not needed anymore.
* The locale kit now provide a less complete 'full' time format : hour
minutes seconds, I don't think anyone cares much about the "UTC + 1" or
other similar stuff.


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


# ae7a6e3a6ffcfb7ad151d684822cd0f2f5bc77af 10-Apr-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

Patch by mt (ticket #5573) : localize deskbar. Thanks !


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


# 269b77069d353f2ae5e5646977fe17ed2d422830 10-Mar-2010 Jonas Sundström <jonas@kirilla.com>

Change message constant to not use all upper case, which is the system namespace. Thanks Ingo.

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


# f2a68969a4a34d01f240d60c00e330f365d7f927 10-Mar-2010 Jonas Sundström <jonas@kirilla.com>

Adding menu item Restart Tracker, to be shown when Tracker isn't running.

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


# 481a903a81b32b77e6cc60c31c6b0e13b065c3fc 30-Jan-2010 Philippe Saint-Pierre <stpere@gmail.com>

DeskBar: Adds a new setting (called ...Enabled) to determine if we show a particular Recent Menu.

* the previous behaviour was to consider it enabled if the count was above 0, and disabled otherwise.
* the new behaviour is to consider it disabled if the count is 0, but also allows to disable it by unchecking the box in the pref window, without setting the count to 0 (losing its value).

Fixes ticket #5007.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35355 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


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

Moving Deskbar options to a dedicated preferences window. Adding a preference application that simply tells Deskbar to open that window. Adjusting default settings Recent Folders from off to 10, and Auto-raise from on to off.

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


# b0a63e7a2aa97a9fe2898761d335ebee8ab6b34b 17-Sep-2008 Stefano Ceccherini <stefano.ceccherini@gmail.com>

implemented BarTeamInfo copy constructor and used it in TBarApp::Subscribe(). Also cleaned up a bit the code in TBarApp destructor.

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


# dc69d5e23365ca14b8e8e2354a52dcae8b91f1c8 14-Aug-2007 Axel Dörfler <axeld@pinc-software.de>

Added an auto-raise feature.


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


# f4a73641e0bec45c55d16f2e86845be99d37cb8f 03-Jan-2006 Axel Dörfler <axeld@pinc-software.de>

Imported current OpenTracker Deskbar: it can now start apps (and show the
"About Haiku" window) without having Tracker running.


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


# 7da062312a13b77ed1aac63bdd67c44c44ad5824 01-Jan-2006 Axel Dörfler <axeld@pinc-software.de>

Imported Deskbar from OpenTracker-current.


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


# 5fb214d470602f7e5cddea0675b36a0ecd5b97af 17-Jul-2005 Stephan Aßmus <superstippi@gmx.de>

The Deskbar can now shutdown or reboot Haiku, but we should have a way to shutdown asynchronously, see TODO

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13712 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