History log of /haiku/src/apps/deskbar/TimeView.cpp
Revision Date Author Comments
# 9f4bb0f5 26-Aug-2022 Augustin Cavalier <waddlesplash@gmail.com>

Deskbar: Compute more metrics instead of hardcoding them.


# f9b3a3b1 12-Aug-2020 John Scipione <jscipione@gmail.com>

Deskbar: Restore old mini-mode

... with the replicant tray below the menu bar.

Deskbar now has four modes:
1. vertical mini-mode (old mini-mode)
2. horizontal mini-mode (new mini-mode, was vertical)
3. vertical expando-mode (default)
4. horizonal expando-mode

Horizontal mini-mode gets the corner, then it switches to vertical
mini-mode above or below that, then to vertical expando-mode after
that. Horizontal expando mode is in center-screen top and bottom.

Clock vertical centering simplification.

Change-Id: I216008c20feb28f793693046792bbcfdf1e703e3
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3146
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# 97310aa7 17-May-2020 Augustin Cavalier <waddlesplash@gmail.com>

Deskbar: Fix build after last commit.

Change-Id: Ice721e56b9ff8bbdd01dde65933d6fa0c750823a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2728
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 54bff8ec 16-May-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

TimeView: fix direct messaging to another window

The window may be gone (if its B_QUIT_REQUESTED was called before the
main Deskbar window one), so we can't safely call Quit() on it. Instead,
just send a B_QUIT_REQUESTED through the BMessenger, which is a bit
safer.

Should fix #16026.

Change-Id: I4c99c3a7f994044c3c3f0c08b35ae451c3ff9ea7
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2721
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 0d2645e4 19-Nov-2019 John Scipione <jscipione@gmail.com>

Deskbar: New single line mini-mode

Mini-mode is when Deskbar is in the 4 corners with the application
menu tucked away into the leaf menu bar. This commit changes mini-
mode from putting the clock and replicants below the leaf menu to
attaching them to the side forming a single line.

The main advantage of this is that if Deskbar is in the top right
corner you can maximize a window without losing any access to
Deskbar or any screen real-estate. The other three corners lose screen
real-estate similar to horizontal mode.

Replace team icon with HVIF version kindly donated by meanwhile.
Scale icon size according to font size. Grow the vector rendered icon
size by 1px to match bitmap size. Add Team_Registrar icon to
data/artwork/icons. Tweak Team_Registrar icon to match the area of the
bitmap taken up by the bitmap icon so they will render at the same size.
The bitmap can be now NULL if an invalid icon is passed, handle this
case with an fInitStatus member in BarMenuTitle.

Switch order of leaf and team menus on the left side so that the
team menu is always on the screen edge. The team menu is more in
need of quick corner access than the leaf menu in this mode.

Adjust leaf menu position so that it continues to be cut-off while
allowing the team menu icon to display normally. Center vertically in
horizontal mode but it's still cut-off at 16x16. In vertical mode the
leaf continues to be cut-off at all font sizes. Constrain leaf bitmap
to its menu item frame as it can bleed out into the adjacent team menu
item at larger font sizes.

Grow team menu items to fit the widest label up to the max vertical
expando window width (currently 2x min) before truncating.
LegacyPackageInstaller now fits in the team menu. More on
LegacyPackageInstaller in horizontal mode below.

Update SetSizeLimits for mini-mode - no upper limit on height or width.

Switch to mini-mode using 1/4 screen left and right of screen instead
of using 1/6. Mini mode is now wider and this change makes switching
between mini mode and horizontal mode more reliable.
* Rename frame to screenFrame here for clarity.

Set menu bar height to window tab height in vertical mode. This is
so that when you maximize a window the tab size will match. The menu
bar height is also a few pixels taller (25px vs 21px) than it was in
vertical expando mode at the default 12px font size. The change was
made to match the tab height. 21px was the height of a window tab
on BeOS R5's default decorator.

Adjust the width of the team menu for larger icon sizes. If app
names are hidden limit to half of min width so the menu doesn't
appear too short. SetMaxContentSize to width, this fixes a bug where
the menu item wasn't quite the right size for the menu.

No longer truncate time in vertical mini mode because the time can now
expand itself horizontally without limit (within reason.)

Center replicants vertically in mini-mode based on tab height and max
replicant height. Simplify mini-mode menu width and position calculation.
Fix a bar menu bar placement bug when Deskbar starts hidden in mini-mode.

Fix numerous layout issues. Put replicant tray where it should be in all
modes and then start adjusting things. The Replicant tray is now where
it should be in all modes, any fiddling with replicant icon locations
now can be relegated solely to LocationForReplicant().

Implements bug #5876 step 1.

*** Other related Deskbar improvements also made in this commit ***

Implemented underflow in horizontal mode ExpandoMenuBar to make items
wider when you close a team to take up more of available space. Max item
width is currently set to 1.25x min width so that LegacyPackageInstaller
fits in horizontal mode as well. In team menu it make sense to calculate
the widest label but in horizontal mode it would not be very nice if
ARogueAppWithAVeryVeryLongAndAnnoyingName were to grow all of your team
menu items. 1.25x is a fair compromise that gets us some extra width but
not too much. ExpandoMenuBar will truncate items to minimum width to buy
some space before it turns on the scroll arrows. Eliminate
kMinMenuItemWidth, create convinience methods to calculate limits.

Add BarView pointer to TimeView. Ditch fVertical and SetOrientation
in TTimeView and get the information from BarView instead. This way
we don't have to keep the state in sync. Also pass BarView pointer to
TTeamMenu constructor and use it instead of getting the pointer in a
roundabout way from be_app.

Eliminate kMiniHeight constant, the mini-mode height is now based
on the height of a window tab which changes with be_bold_font size.
Limit maximum height of replicants by be_bold_font size as well.
Also limit team menu and leaf menu icon heights by be_bold_font size.

Eliminate TExpandoMenuBar::fVertical, use fBarView instead. Switch the
order of layout and barView in ctor so that barView can be optional.
Change the ctor vertical param to layout and use the passed-in menu_layout
to pass to BMenuBar only. Once TExpandoMenuBar has been constructed, use
fBarView from then on. In Deskbar the menu_layout can change via
BMenuPrivate::SetLayout, if we needed to know TExpandoMenuBar's menu_layout
for some reason, we can call Layout().

Maintain 2px border around replicants in vertical expando mode on all
sides. Maintain 2px border around replicants in horizontal mode, except for
at 16x16 reduce the border to 1px because we're really short on height.
Improve clock centering in vertical expando mode. Also improve clock
centering in mini-mode across all font sizes. Reduce clock height by 2px
so that it won't draw over the top and bottom borders in horizontal mode.

Refactor TBarView::PlaceTray(). The code is basically the same but the
method is now better layed out. Calculate resize dragger location based
on width setting. This is valid since it is only ever used in vertical
expando mode. Hide the resize control better by moving it off-screen
when not in use. Hide() alone was not enough.

Fix size and position of the drag region to prevent minor drawing glitches
that were occuring in horizontal and left vertical mode because the drag
region was not in quite the right size and place.

Call DrawDragger() from DrawAfterChildren() instead of Draw() (and set
B_DRAW_ON_CHILDREN flag) so that the dragger will always be drawn even if
there are other items on top. In theory this should not be needed but in
practice this fixes a few drawing glitches. Rename DrawDragRegion() to
private DrawDragger() method - the name was confusing and other classes
shouldn't be allowed to draw the dragger directly.

TDragRegion should be renamed to TStatusView since that's what it really is.
Then we should create a new TDragControl class based on TResizeControl that
is a child of TStatusView like everybody else. TDragControl would be
responsible for drawing itself and knowing where its bounds are. For now
DrawAfterChildren() will have to do.

Rework status tray border drawing. It is identical in vertical exando mode
and in the same spirit in horizontal mode just a little bit nicer looking.
Draw hilight on top, left, and bottom edges in horizontal mode. Draw hilight
on top, and left edges in mini-mode this creates the appearance of a shadow.
Best appreciated using Magnify.

May the following (Open Tracker License) code forever be memorialized in
this commit message:

void
TDragRegion::Draw(BRect updateRect)
{
rgb_color menuColor = ViewColor();
rgb_color hilite = tint_color(menuColor, B_DARKEN_1_TINT);
rgb_color ldark = tint_color(menuColor, 1.02);
rgb_color dark = tint_color(menuColor, B_DARKEN_2_TINT);
rgb_color vvdark = tint_color(menuColor, B_DARKEN_4_TINT);
rgb_color light = tint_color(menuColor, B_LIGHTEN_2_TINT);

BRect frame(Bounds());
BeginLineArray(4);

if (be_control_look != NULL) {
if (fBarView->Vertical()) {
AddLine(frame.LeftTop(), frame.RightTop(), dark);
AddLine(BPoint(frame.left, frame.top + 1),
BPoint(frame.right, frame.top + 1), ldark);
AddLine(frame.LeftBottom(), frame.RightBottom(), hilite);
} else if (fBarView->AcrossTop() || fBarView->AcrossBottom()) {
AddLine(frame.LeftTop(),
BPoint(frame.left, frame.bottom), dark);
AddLine(BPoint(frame.left + 1, frame.top + 1),
BPoint(frame.right - 1, frame.top + 1), light);
AddLine(BPoint(frame.right, frame.top + 2),
BPoint(frame.right, frame.bottom), hilite);
AddLine(BPoint(frame.left + 1, frame.bottom),
BPoint(frame.right - 1, frame.bottom), hilite);
}
} else {
if (fBarView->Vertical()) {
AddLine(frame.LeftTop(), frame.RightTop(), light);
AddLine(frame.LeftTop(), frame.LeftBottom(), light);
AddLine(frame.RightBottom(), frame.RightTop(), hilite);
} else if (fBarView->AcrossTop()) {
AddLine(BPoint(frame.left, frame.top + 1),
BPoint(frame.right - 1, frame.top + 1), light);
AddLine(frame.RightTop(), frame.RightBottom(), vvdark);
AddLine(BPoint(frame.right - 1, frame.top + 2),
BPoint(frame.right - 1, frame.bottom - 1), hilite);
AddLine(frame.LeftBottom(),
BPoint(frame.right - 1, frame.bottom), hilite);
} else if (fBarView->AcrossBottom()) {
AddLine(BPoint(frame.left, frame.top + 1), BPoint(frame.right - 1, frame.top + 1), light);
AddLine(frame.LeftBottom(), frame.RightBottom(), hilite);
AddLine(frame.RightTop(), frame.RightBottom(), vvdark);
AddLine(BPoint(frame.right - 1, frame.top + 1),
BPoint(frame.right - 1, frame.bottom - 1), hilite);
}
}

EndLineArray();
}

Refactor mode switching.

Change TDragRegion::SwitchModeForRect() to SwitchModeForRegion() and pass
in BRegion's instead of BRect's. Create a new CalculateRegions() method
which is called once at startup and again on ScreenChanged() instead of
calculating the rect's over and over again inside MouseMoved(). Simplify
calculations using BRegion's.

Get the screen_where parameter from the Window()'s CurrentMessage() instead
of converting the passed in where parameter to screen coordinates. This
makes mode switching work 100% better.

Restore full state, fix all issues, and disable it again.

Fix issue with the window not resizing itself correctly when hiding the
scroller arrows in vertical expando mode because Deskbar was using the
bottom value of a scrolled view rather than its height. We only need to
call CheckForScrolling() once before we resize the window. Consolidate all
the window resizing code into ExpandoMenuBar::SizeWindow(), call
CheckForScrolling() there one time, then resize the window and lay
everything out again.

Simplify expando menu bar background drawing. The only part of this
drawing code that was actually being shown was the part where it stroked a
vertical line like this:

rgb_color menuColor = ui_color(B_MENU_BACKGROUND_COLOR);
SetHighColor(tint_color(menuColor, 1.22));
StrokeLine(bounds.LeftTop(), bounds.LeftBottom());

The rest of the code was never seen. May the following code also be forever
memorialized in this commit message:

void
TExpandoMenuBar::DrawBackground(BRect updateRect)
{
if (Vertical())
return;

BRect bounds(Bounds());
rgb_color menuColor = ui_color(B_MENU_BACKGROUND_COLOR);
rgb_color hilite = tint_color(menuColor, B_DARKEN_1_TINT);
rgb_color vlight = tint_color(menuColor, B_LIGHTEN_2_TINT);

int32 count = CountItems() - 1;
if (count >= 0)
bounds.left = ItemAt(count)->Frame().right + 1;
else
bounds.left = 0;

if (be_control_look != NULL) {
SetHighColor(tint_color(menuColor, 1.22));
StrokeLine(bounds.LeftTop(), bounds.LeftBottom());
bounds.left++;
uint32 borders = BControlLook::B_TOP_BORDER
| BControlLook::B_BOTTOM_BORDER | BControlLook::B_RIGHT_BORDER;

be_control_look->DrawButtonBackground(this, bounds, bounds, menuColor,
0, borders);
} else {
SetHighColor(vlight);
StrokeLine(bounds.LeftTop(), bounds.RightTop());
StrokeLine(BPoint(bounds.left, bounds.top + 1), bounds.LeftBottom());
SetHighColor(hilite);
StrokeLine(BPoint(bounds.left + 1, bounds.bottom),
bounds.RightBottom());
}
}

Change-Id: Id9ddd60c997a785184208ba02938bee1416aeae9
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2253
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# 0c9e6791 18-Feb-2020 Augustin Cavalier <waddlesplash@gmail.com>

Deskbar: Fix build after merge.


# 15eb397e 19-Jul-2018 John Scipione <jscipione@gmail.com>

Deskbar: Adjust team menu items with font size.

The Deskbar team menu should look the same at 12pt but much better
at larger (and smaller) font sizes.

Determine team menu item height in TBarView instead of
TTeamMenuItem::GetContentSize() because it is needed earlier in the
process, and also call method in GetContentSize().

The clock is centered horizontally in the first replicant row and the
width can grow to push the replicant icons better at larger font sizes.

The replicant tray and clock go to the bottom in horizontal bottom mode
and go to the top in horizontal top mode for Fitt's Law convinience and
go in the center of the first row in vertical mode.

Grow horizontal team item widths with font size, and shrink them
down to 1/2 of full width to fit more, or 1/2 padding for icon-only.

In horizontal mode the menu item size increases so that you can fit
approximate the same amount of label text based on icon and font size.
hit the width limit the items shrink and the label gets truncated
(like before.)

Scale team menu with font size. Reduce to half width for hide labels.

Change-Id: I93ecc8acded274b994728e7247768455862e31c5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/345
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# dcf96757 18-Nov-2019 John Scipione <jscipione@gmail.com>

Deskbar: Improve auto-raise and auto-hide

Activate auto-raise on the screen edge inside the Deskbar window
frame. Set the event mask to B_POINTER_EVENTS when auto-raise or
auto-hide is on and set the event mask back to 0 when we turn off
auto-raise and auto-hide. Before this change you had to click a
window twice to get it to rise above of a raised Deskbar, with
this change you only have to click once to make the window rise
above Deskbar.

The auto-hide show and hide bounds are unchanged.

There was another bug where the window was not hiding correctly in
auto-hide mode when you moused over the status bar in horizontal
mode. This was happening because the where parameter of
TBarView::MouseMoved and TBarView::MouseDown was yielding
coordinates relative to the status tray when the mouse was over
the status tray and not the current view meaning that
TBarView::Frame().Contains(where) would return false over the
status tray. Inspecting the where parameter showed that the x-
coordinate was reset back to 0 when you mouse over the status tray.
To fix this issue I pulled the screen_where field out of
CurrentMessage() instead since this yields the correct value.

The calendar window input focus has been fixed in auto-raise mode
so that you can click on calendar even when it is above Deskbar.
You may also click a window on top of Deskbar in auto-raise mode
without the Deskbar window being raised.

Don't hide Deskbar when Calendar is showing in auto-hide mode.

Put comment inside else block inside { }.

Return from TBarView::MouseDown() calling ansestor method.

Quit fCalendarWindow on TimeView deconstructor if it exists (even if
it is not curently being shown.)

Fixes #8923 #14493

Change-Id: I7ed67fdbc30a93d2782b3ab6b6738b86ec5e4043
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1966
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# df4074fb 24-Nov-2018 Augustin Cavalier <waddlesplash@gmail.com>

Remove a lot of unused constants.

Spotted by Clang. No functional change intended.


# 1dd1976f 03-Jan-2018 John Scipione <jscipione@gmail.com>

Deskbar: update time width based on Deskbar orientation.

Fixes #8641

To fix this bug first I had to fix a long-standing todo:
TODO: SetOrientation never gets called, fix that when in vertical mode,
we want to limit the width so that it can't overlap the bevels in the
parent view.

I made TBarView a friend class of TReplicantTray and called
fReplicantTray->fTime->SetOrientation() when switching between
horizontal and vertical mode. I could have added a setter method
instead but I didn't feel like it was worth it.

SetOrientation calls ResizedToPreferred which calls GetPreferredSize,
which resizes the text width, then it calls CalculateTextPlacement
which places the time string correctly.

Removed GetCurrentTime invocation from GetPreferredSize since that
happens in Update already. Was added in
573f748c5f8fb7ed75beb0ceb7eb097d3ab0c038 originally.

Also need to call SetOrientation in TReplicantTray::AttachedToWindow
just after creating the TTime object in order for it to resize the
time view correctly on startup in horizontal mode. It needs to know
that it is horizontal so that it will expand to fit longer than
default time string.


# 8c82d0ed 21-Nov-2017 Adrien Destugues <pulkomandy@pulkomandy.tk>

DeskBar: cache time and date formats

Creating BDateTimeFormat and BDateFormat objects is a costly operation
(it loads locale data from ICU, etc). So, we should do it only once when
the format changes, instead of doing it each time we format a date
or time.


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

Deskbar: Position clock & replicants better

This fixes some subtle layout issues. The replicant icon
positions and clock position has been made more consistent
in both vertical mode, and horizontal mode.

There is a fixed amount of space between the last replicant
and the clock before it wraps to next row. This now works
at different font sizes.

Use matching 3px of space between the clock and the dragger
on one side and and between the replicant and the dragger
on the other side.

Reparent ResizeControl from ReplicantTray onto DragRegion and
readjust everything.


# a6be6c4d 13-Dec-2016 John Scipione <jscipione@gmail.com>

Deskbar: Minor functional changes

Use std::min() over min_c in TimeView.cpp
Check for NULL view before dereferencing
Return B_BAD_VALUE for bad inputs


# e4d65fe7 13-Dec-2016 John Scipione <jscipione@gmail.com>

Deskbar: Style fixes to StatusView
Deskbar: Minor style fixes in TimeView.cpp


# 220f79d8 16-Jan-2016 looncraz <looncraz@looncraz.net>

Deskbar TimeView Text Render Fix

Erroneous use of SetLowUIColor(ViewUIColor()) when the old API was more
appropriate resulted in the tint value being ignored which resulted in some
text rendering issues with certain color combinations and LCD subpixel aliasing.

Fixes ticket# 12596

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>


# cef0a7b2 05-Jan-2016 looncraz <looncraz@looncraz.net>

Deskbar: Correct StatusView colors following Set*UIColor merge.

Previous colors matched the menu background color, but should have been
darkened.

The tint value was not being updated for the SetViewUIColor call construction,
therefore the tint parameter was still B_NO_TINT.

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>


# 16c10517 09-Dec-2015 looncraz <looncraz@looncraz.net>

Deskbar: Convert to using Set*UIColor.

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
Patches 0076 from looncraz, unmodified.


# 0fc30d89 09-Apr-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

Deskbar: Sanitize the usage of BMessage

... especially for SendMessage and SendReply.
* Delete the item's message if AddItem does not return successfully.
* Fixes #11934.

Signed-off-by: Adrien Destugues <pulkomandy@gmail.com>


# 5d5ec05b 27-Oct-2014 Adrien Destugues <pulkomandy@gmail.com>

B*Format: make immutable and remove locking

The language and formatting conventions can now only be set when
creating the objects. This removed the needs for locking them when
formatting to avoid some other thread changing the format while it's
being used.

Adjust tests and DeskBar TimeView to the API changes.


# 30516603 07-Oct-2014 Adrien Destugues <pulkomandy@gmail.com>

Use BDateTimeFormat for deskbar clock

* don't try to cook a custom format by appending strings, and instead
let BDateTimeFormat decide on the appropriate format to use.


# 03b2550e 01-Oct-2014 Adrien Destugues <pulkomandy@gmail.com>

Move time formatting to BTimeformat.

* Harmonize API for all B*Format to take an output BString by reference
as the first parameter,
* Move the FormatTime methods from BLocale to BTimeFormat
* Adjust all callers for BTimeFormat, BTimeUnitFormat and
BDurationFormat.


# 0a925409 01-Oct-2014 Adrien Destugues <pulkomandy@gmail.com>

Adjust all BDateFormat callers again.


# 2a5e33a9 26-Sep-2014 Adrien Destugues <pulkomandy@gmail.com>

Move date formatting from BLocale to BDateFormat

* There is a little code duplication. This will be moved to BFormat once
the time and datetime formatting is also moved out of BLocale
* The way to create a BDateFormat from a BLocale is still open for
discussion. I'm undecided between making BDateFormat a member of
BLocale, or adding a BDateFormat(const BLocale&) constructor.
* Adjust all users of the API.


# b37d5096 24-Feb-2013 John Scipione <jscipione@gmail.com>

Remove this #include directive too


# 2a5c1f12 25-Feb-2013 John Scipione <jscipione@gmail.com>

Fix #9469 again in a better way.

Pass fTime into the IsHidden() method to check the hidden state from
the point of view of fTime which will ignore the hidden state. of the
window. Remove the Hide(), Show(), and IsHidden() overrides in
TimeView as they are no longer needed.

Thanks Stippi and Axel.


# ca00f398 23-Feb-2013 John Scipione <jscipione@gmail.com>

Fix Deskbar clock show/hide when Deskbar is hidden.

Bug #9469 happens because I set the showClock checkbox or not based on whether
or not the clock is currently hidden. This works most of the time, but if
Deskbar is hidden the clock is also considered to be hidden and that isn't what
I want in this case.

The solution is to override BView's Show(), Hide(), and IsHidden() methods
in TimeView to ignore whether or not the window is hidden when considering if
the clock is hidden.

The commit also deletes some no-longer-used private member variables of
TimeView.

Fixes #9469


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


# 793d00f9 23-Nov-2012 John Scipione <jscipione@gmail.com>

Remove obsolete time update checking code.

This was put into OpenDeskbar a long long time ago (2001):

http://opentracker.cvs.sourceforge.net/viewvc/opentracker/opentracker/deskbar/TimeView.cpp?r1=1.2&r2=1.3

However, this trick will no longer work because we use a localized
time string from the Locale Kit that might not have a ':' as a
time separator anymore. Also with day of week we don't know the
position of the time separator either.


# d59fcf50 16-Nov-2012 John Scipione <jscipione@gmail.com>

I meant fCurrentDateStr no fCurrentTimeStr


# ec469b21 16-Nov-2012 John Scipione <jscipione@gmail.com>

Refactor code from previous commit.

* Check if offset is actually an error code and attempt to compensate
At the very least don't use it as an offset (would be bad).
* Write to the output string directly instead of copying a temp string.
* Add a ToDo to check if day of week should go after time for locale
* Replace hardcoded 64 in GetCurrentDate().


# debbd7bd 16-Nov-2012 John Scipione <jscipione@gmail.com>

Update Deskbar Clock to use predefined time formats

... with day of week tacked on at the beginning.

This fixes #9143 by better allowing the Locale Kit to
format the time. It was localized before but now also
uses localized time separators.

There might be still a bug with day of week though,
depending on if day of week should go before or after
the time in your locale (It is hard coded to before).


# e19488b2 02-Aug-2012 Ryan Leavengood <leavengood@gmail.com>

Make Deskbar respect the menu text color settings.

Hard-coding black is bad, mmmkay?

This makes Deskbar usable on dark background with light text color schemes.


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


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

Remove Time Interval radio buttons from Deskbar Prefs.

* 12/24 hour clock is set from the Locale prefs only.
* Redirect B_LOCALE_CHANGED message to the replicant tray instead
of the time view and tell the replicant tray to update the time
instead of updating the time view directly. This is because there
was a bug where if the AM/PM marker grew the time view over the
replicant tray icons when switching from 24 hour to 12 hour clock
it wouldn't reflow the replicant tray icons like it should.
* Rename the replicant tray view from "Status" to "_replicant_tray_"
because BarApp uses FindView() to get the view by name and I'm
assuming that this method can have conflicts. Following the example
of the "_deskbar_tv_" naming convention.


# 546208a5 16-Apr-2012 Oliver Tappe <zooey@hirschkaefer.de>

More catalog-related cleanup.

* rename B_TRANSLATE_CONTEXT to B_TRANSLATION_CONTEXT and
B_TRANSLATE_WITH_CONTEXT to B_TRANSLATE_CONTEXT, squashing a TODO
* adjust all uses of both macros in Haiku's source tree
* use correct header guard for collecting/Catalog.h

The renamed macros require adjustments to all external applications
using catalogs.


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


# 9748fb4b 11-Apr-2012 John Scipione <jscipione@gmail.com>

Small tweak to time menu options in Deskbar

Change "Change time..." menu item in Deskbar clock contextual
menu to "Open time preferences..." because you can do a lot more
than just change the current time there.


# 2a2dc95a 09-Apr-2012 John Scipione <jscipione@gmail.com>

Update timeView popup menu


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


# e6874452 06-Apr-2012 John Scipione <jscipione@gmail.com>

Revert change to TimeView.cpp regarding
updating the tooltip. I committed it accidentally.


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


# f1574c74 05-Jun-2011 Ryan Leavengood <leavengood@gmail.com>

Update the Deskbar date tooltip properly. Previously it was not updated when
the date actually changed at midnight or if the date was changed in the Time
preferences and probably other cases.


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


# 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


# 1fc4ba42 24-Feb-2011 Jonas Sundström <jonas@kirilla.com>

CID 9835 UNINIT_CTOR - removing leftovers from 12/24 interval option
CID 8960 STRING_OVERFLOW
CID 6788, 6789 SECURE_CODING

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


# 25dc253d 22-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Merged weak-symbols branch.
* Fixed trivial merge conflict in src/system/libroot/posix/locale/nl_langinfo.cpp
* Fixed gcc 2 compilation of src/system/glue/init_term_dyn.c.


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


# 6fd2f4a0 23-Oct-2010 Oliver Tappe <zooey@hirschkaefer.de>

One more monster commit (sorry ...) concerning the Locale Kit:
* extracted new class BFormattingConventions from BCountry, which
manages the formatting conventions from a given locale and
allows to get/set the four different date/time formats supported
by ICU-locales as well as number and monetary formats
* overhauled the Locale preflet:
+ drop editing features for all formats, since I don't think
they do not make much sense to have in a prefs GUI - being
able to select from the existing locales should be good
enough. Please note that you can still change the formats
programmatically in an application.
+ renamed the 'Countries' tab to 'Formatting'
+ the locale formatting conventions list in the 'Formatting'
tab is now hierarchical for easier access (less scrolling)
+ fixed functionality of 'Revert' and 'Defaults' buttons
+ added support for using the month/day-names of your preferred
language during date formatting
* adjusted BLocale to ask BFormattingConventions for the current
formats when formatting dates and times and to offer 4
different format styles (full, long, medium and short).
* adjust all classes formatting dates/times to pick the
appropriate format style
* BLocaleRoster no longer directly archives/unarchives the
individual formatting conventions but delegates that to
BFormattingConventions


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


# ddd8552b 20-Oct-2010 Rene Gollent <anevilyak@gmail.com>

Style fix.



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


# 10cf5cce 20-Oct-2010 Rene Gollent <anevilyak@gmail.com>

Bring up Calendar immediately on left click instead of long click, since
there's no longer a need for the differentation. Clean up consequently
unused code. Thanks Axel!



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


# 9e9c8091 20-Oct-2010 Rene Gollent <anevilyak@gmail.com>

Remove the "Full Date" setting and associated madness with respect to
the deskbar's current orientation. Instead, we now always show the full
date, but as a tooltip rather than switching the timeview's display
based on a mouse click.



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


# b7f60965 30-Aug-2010 Oliver Tappe <zooey@hirschkaefer.de>

* removed all BLocale-related getters from BLocaleRoster - they're available
in BLocale (which is accessible via be_locale)
* adjusted all users accordingly


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


# 795ff7d3 16-Aug-2010 Oliver Tappe <zooey@hirschkaefer.de>

* removed some useless code and protect against localtime() possibly returning
NULL

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


# 5c3a3034 04-Aug-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

* Move the locale-related stuff away from BCountry to BLocale.
* Remove the be_locale global object and go through the be_locale_roster instead
* Rework the storage of data for the be_locale_roster, since BLocale already holds a BCountry and a BLanguage.


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


# 38ac8def 01-Aug-2010 Oliver Tappe <zooey@hirschkaefer.de>

Largish cleanup sweep concerning the Locale Kit (sorry it got so big):
* refactored private/mutable stuff out of LocaleRoster into MutableLocaleRoster
* moved management of Locale/Time settings file and broadcasting of any changes
out of preflets and into MutableLocaleRoster
* added proper sorting to the listviews of the Locale preflet
* the Time preflet no longer overlaps long timezone names into the actual time
* several fixes with respect to leaking ICU objects, esp. in BCountry
* the locale roster no longer passes out references to its own BCountry object,
but uses copies, instead - this makes locking superfluous, as the clients'
BCountry objects can no longer be changed by the setting a new default
country in the locale roster
* removed pretty useless POSIX-style symbol fetching from BCountry - if we
need that at all, it should live in the dedicated formatter classes
* adjusted readonlybootprompt, dstcheck and Deskbar to the changed Locale API
* refactored existing Time-formatter into TimeUnitFormat and DurationFormat
(the latter of which is now used by AboutSystem)
* added stubs for Date, DateTime and Time formatters
* lots of coding style fixes throughout the Locale Kit and the Locale and Time
preflets
This will probably break most external apps making use of the Locale Kit - it
does break WebPositive.


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


# ab58e877 22-Jul-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

* Notify the TimeView in Deskbar when a locale change occurs, so it can update its size.


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


# 5b128450 29-Jun-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

Some refactoring of the deskar localization code to be more effective.
There is a memory leak somewhere in deskbar, but it appears to be unrelated to the time localization change (stays even if clock is disabled), so I have no idea where it comes from.


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


# 4eb0cbb0 07-May-2010 Matt Madia <mattmadia@gmail.com>

Updated TR_CONTEXT to be B_TRANSLATE_CONTEXT, relating to #5408.


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


# 61863f2c 06-May-2010 Matt Madia <mattmadia@gmail.com>

Updated to use B_TRANSLATE* macros. relates to #5408.

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


# 7974d3dc 13-Jan-2010 Stephan Aßmus <superstippi@gmx.de>

Patch by Humdinger:
Updated Haiku apps to use sentence-case. What a huge undertaking...
The files where I had to apply the patch manually (for mysterious
reasons) have also gotten a whitespace cleanup. I've proof-read
everything so hopefully there should be no problems.

This should be the final part of #5169.


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


# c5c6248e 20-Oct-2009 Axel Dörfler <axeld@pinc-software.de>

* Got rid of the _SHOW_CALENDAR_MENU_ITEM, and _SHOW_CALENDAR_MENU_WINDOW
defines - it's always in, and I don't think it makes any sense to make this
an option (since it just uses a system widget).


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


# 361a3434 02-Sep-2008 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

* Delete longClickMessageRunner in destructor to avoid potential memory leak.
* Delete longClickMessageRunner after its message arrived, to shorten its lifetime.
* Moved creation and deletion of longClickMessageRunner into methods.


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


# 4a89dc95 02-Sep-2008 Alexandre Deckner <alex@zappotek.com>

- Don't leak the message given to BMessageRunner, thanks stippi!


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


# 57b26965 01-Sep-2008 Alexandre Deckner <alex@zappotek.com>

- Well, i told ya it was better with a BMessageRunner ;-P


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


# da88cf31 01-Sep-2008 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

Added menu item "Show Calendar ..." to time pop up menu.

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


# 77fa9c0b 31-Aug-2008 Alexandre Deckner <alex@zappotek.com>

* Rewrote long click mouse tracking. This avoids busy looping in TimeView::MouseDown and fixes
#591. The helper class could be reused for similar situations (ex: Tracker context menu and
drag detection). See the brief doc in the code. Comments welcomed!


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


# 3f9abddf 29-Aug-2008 Karsten Heimrich <host.haiku@gmx.de>

* Reuse calendar from shared to have a bitmore advanced panel
while holding down the mouse over the date area in Deskbar.

One probably needs to clean and rebuild Deskbar to get it...



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


# 157cd891 16-Jun-2008 Alexandre Deckner <alex@zappotek.com>

- Calculating the space left for deskbar replicants was broken. The TimeView could overlap on the left. This fixes #1408
- Placement of the time text was broken. With big fonts, the text was way too low. Using text bounding box now, it looks pretty and robust too.
- Fixed the height of the time view to the replicant height. The view has a fixed height now and can never overlap deskbar at the bottom (horizontal deskbar mode) or other replicant
below.


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


# e28ef85a 15-Mar-2008 Rene Gollent <anevilyak@gmail.com>

Unify the app signature used everywhere for the time prefs. This fixes dstcheck being unable to actually invoke the
time prefs if asked to adjust the clock.



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


# f12a404e 03-Nov-2006 Stephan Aßmus <superstippi@gmx.de>

* small simplification



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


# a5210ab1 11-Aug-2006 Axel Dörfler <axeld@pinc-software.de>

Imported files from OT-current:
* ExpandoMenuBar.cpp 1.18
* CalendarMenuItem.cpp 1.6
* WindowMenu.cpp 1.3
* TimeView.cpp 1.14
* StatusView.cpp 1.18
* BarWindow.cpp 1.8


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


# 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


# 0fc30d893468d504ba14cb3685ae45c1309290e3 09-Apr-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

Deskbar: Sanitize the usage of BMessage

... especially for SendMessage and SendReply.
* Delete the item's message if AddItem does not return successfully.
* Fixes #11934.

Signed-off-by: Adrien Destugues <pulkomandy@gmail.com>


# 5d5ec05b1df089eff03f04a7122ac7cf355c4f3e 27-Oct-2014 Adrien Destugues <pulkomandy@gmail.com>

B*Format: make immutable and remove locking

The language and formatting conventions can now only be set when
creating the objects. This removed the needs for locking them when
formatting to avoid some other thread changing the format while it's
being used.

Adjust tests and DeskBar TimeView to the API changes.


# 30516603620fc95f59246d70903ff1f51907d760 07-Oct-2014 Adrien Destugues <pulkomandy@gmail.com>

Use BDateTimeFormat for deskbar clock

* don't try to cook a custom format by appending strings, and instead
let BDateTimeFormat decide on the appropriate format to use.


# 03b2550ef1fba975beb15689659a4a5f38986aa0 01-Oct-2014 Adrien Destugues <pulkomandy@gmail.com>

Move time formatting to BTimeformat.

* Harmonize API for all B*Format to take an output BString by reference
as the first parameter,
* Move the FormatTime methods from BLocale to BTimeFormat
* Adjust all callers for BTimeFormat, BTimeUnitFormat and
BDurationFormat.


# 0a925409bc43bc95879729a8bf2cb611f9c9c2f2 01-Oct-2014 Adrien Destugues <pulkomandy@gmail.com>

Adjust all BDateFormat callers again.


# 2a5e33a98056c2b92d46a6c9aae6da808c8524b1 26-Sep-2014 Adrien Destugues <pulkomandy@gmail.com>

Move date formatting from BLocale to BDateFormat

* There is a little code duplication. This will be moved to BFormat once
the time and datetime formatting is also moved out of BLocale
* The way to create a BDateFormat from a BLocale is still open for
discussion. I'm undecided between making BDateFormat a member of
BLocale, or adding a BDateFormat(const BLocale&) constructor.
* Adjust all users of the API.


# b37d5096dccf849583d0ce61c891558687b4ede9 24-Feb-2013 John Scipione <jscipione@gmail.com>

Remove this #include directive too


# 2a5c1f12b9c0452aa1c701e235d0d745285f827a 25-Feb-2013 John Scipione <jscipione@gmail.com>

Fix #9469 again in a better way.

Pass fTime into the IsHidden() method to check the hidden state from
the point of view of fTime which will ignore the hidden state. of the
window. Remove the Hide(), Show(), and IsHidden() overrides in
TimeView as they are no longer needed.

Thanks Stippi and Axel.


# ca00f398da7f8cd19698205769fdf8cb6f2bde83 23-Feb-2013 John Scipione <jscipione@gmail.com>

Fix Deskbar clock show/hide when Deskbar is hidden.

Bug #9469 happens because I set the showClock checkbox or not based on whether
or not the clock is currently hidden. This works most of the time, but if
Deskbar is hidden the clock is also considered to be hidden and that isn't what
I want in this case.

The solution is to override BView's Show(), Hide(), and IsHidden() methods
in TimeView to ignore whether or not the window is hidden when considering if
the clock is hidden.

The commit also deletes some no-longer-used private member variables of
TimeView.

Fixes #9469


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


# 793d00f975eeb7360aa19af84f29fa36e3b2c14d 23-Nov-2012 John Scipione <jscipione@gmail.com>

Remove obsolete time update checking code.

This was put into OpenDeskbar a long long time ago (2001):

http://opentracker.cvs.sourceforge.net/viewvc/opentracker/opentracker/deskbar/TimeView.cpp?r1=1.2&r2=1.3

However, this trick will no longer work because we use a localized
time string from the Locale Kit that might not have a ':' as a
time separator anymore. Also with day of week we don't know the
position of the time separator either.


# d59fcf50e69dcb0a3ef76fa2422e2d8bdc93dd61 16-Nov-2012 John Scipione <jscipione@gmail.com>

I meant fCurrentDateStr no fCurrentTimeStr


# ec469b21a0d02bec481fcac04b15d7724b530ebc 16-Nov-2012 John Scipione <jscipione@gmail.com>

Refactor code from previous commit.

* Check if offset is actually an error code and attempt to compensate
At the very least don't use it as an offset (would be bad).
* Write to the output string directly instead of copying a temp string.
* Add a ToDo to check if day of week should go after time for locale
* Replace hardcoded 64 in GetCurrentDate().


# debbd7bd8a94b4a35d35e395f09d1eda39da6605 16-Nov-2012 John Scipione <jscipione@gmail.com>

Update Deskbar Clock to use predefined time formats

... with day of week tacked on at the beginning.

This fixes #9143 by better allowing the Locale Kit to
format the time. It was localized before but now also
uses localized time separators.

There might be still a bug with day of week though,
depending on if day of week should go before or after
the time in your locale (It is hard coded to before).


# e19488b2ccb0bfaf518e2c77180905996111a628 02-Aug-2012 Ryan Leavengood <leavengood@gmail.com>

Make Deskbar respect the menu text color settings.

Hard-coding black is bad, mmmkay?

This makes Deskbar usable on dark background with light text color schemes.


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


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

Remove Time Interval radio buttons from Deskbar Prefs.

* 12/24 hour clock is set from the Locale prefs only.
* Redirect B_LOCALE_CHANGED message to the replicant tray instead
of the time view and tell the replicant tray to update the time
instead of updating the time view directly. This is because there
was a bug where if the AM/PM marker grew the time view over the
replicant tray icons when switching from 24 hour to 12 hour clock
it wouldn't reflow the replicant tray icons like it should.
* Rename the replicant tray view from "Status" to "_replicant_tray_"
because BarApp uses FindView() to get the view by name and I'm
assuming that this method can have conflicts. Following the example
of the "_deskbar_tv_" naming convention.


# 546208a53940a26c6379c48a7854ade1a8250fc5 16-Apr-2012 Oliver Tappe <zooey@hirschkaefer.de>

More catalog-related cleanup.

* rename B_TRANSLATE_CONTEXT to B_TRANSLATION_CONTEXT and
B_TRANSLATE_WITH_CONTEXT to B_TRANSLATE_CONTEXT, squashing a TODO
* adjust all uses of both macros in Haiku's source tree
* use correct header guard for collecting/Catalog.h

The renamed macros require adjustments to all external applications
using catalogs.


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


# 9748fb4be73227276f4a89096e3acbe59255a2f0 11-Apr-2012 John Scipione <jscipione@gmail.com>

Small tweak to time menu options in Deskbar

Change "Change time..." menu item in Deskbar clock contextual
menu to "Open time preferences..." because you can do a lot more
than just change the current time there.


# 2a2dc95aa1f99080b0589186770f10ead41621a5 09-Apr-2012 John Scipione <jscipione@gmail.com>

Update timeView popup menu


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


# e6874452d06bc03c857c41216b73469491245832 06-Apr-2012 John Scipione <jscipione@gmail.com>

Revert change to TimeView.cpp regarding
updating the tooltip. I committed it accidentally.


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


# f1574c746cb2d0b90070c85b927d87edeee71c57 05-Jun-2011 Ryan Leavengood <leavengood@gmail.com>

Update the Deskbar date tooltip properly. Previously it was not updated when
the date actually changed at midnight or if the date was changed in the Time
preferences and probably other cases.


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


# 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


# 1fc4ba42c2506df02005e96813838992dcfcb7be 24-Feb-2011 Jonas Sundström <jonas@kirilla.com>

CID 9835 UNINIT_CTOR - removing leftovers from 12/24 interval option
CID 8960 STRING_OVERFLOW
CID 6788, 6789 SECURE_CODING

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


# 25dc253d6ab28ce204fa4de2d3e7a27d167fc817 22-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Merged weak-symbols branch.
* Fixed trivial merge conflict in src/system/libroot/posix/locale/nl_langinfo.cpp
* Fixed gcc 2 compilation of src/system/glue/init_term_dyn.c.


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


# 6fd2f4a0d14b45a316defe994e9790de062ff3ff 23-Oct-2010 Oliver Tappe <zooey@hirschkaefer.de>

One more monster commit (sorry ...) concerning the Locale Kit:
* extracted new class BFormattingConventions from BCountry, which
manages the formatting conventions from a given locale and
allows to get/set the four different date/time formats supported
by ICU-locales as well as number and monetary formats
* overhauled the Locale preflet:
+ drop editing features for all formats, since I don't think
they do not make much sense to have in a prefs GUI - being
able to select from the existing locales should be good
enough. Please note that you can still change the formats
programmatically in an application.
+ renamed the 'Countries' tab to 'Formatting'
+ the locale formatting conventions list in the 'Formatting'
tab is now hierarchical for easier access (less scrolling)
+ fixed functionality of 'Revert' and 'Defaults' buttons
+ added support for using the month/day-names of your preferred
language during date formatting
* adjusted BLocale to ask BFormattingConventions for the current
formats when formatting dates and times and to offer 4
different format styles (full, long, medium and short).
* adjust all classes formatting dates/times to pick the
appropriate format style
* BLocaleRoster no longer directly archives/unarchives the
individual formatting conventions but delegates that to
BFormattingConventions


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


# ddd8552b78eb94798ea7238e9c35221a15c4dbd5 20-Oct-2010 Rene Gollent <anevilyak@gmail.com>

Style fix.



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


# 10cf5ccec2581318ec86ff445d4aaf8e4c1d4636 20-Oct-2010 Rene Gollent <anevilyak@gmail.com>

Bring up Calendar immediately on left click instead of long click, since
there's no longer a need for the differentation. Clean up consequently
unused code. Thanks Axel!



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


# 9e9c8091e7ebc92a8808463b05dd4249ccb2f6d9 20-Oct-2010 Rene Gollent <anevilyak@gmail.com>

Remove the "Full Date" setting and associated madness with respect to
the deskbar's current orientation. Instead, we now always show the full
date, but as a tooltip rather than switching the timeview's display
based on a mouse click.



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


# b7f609650b9864f5f93ee235c1a095970f9df525 30-Aug-2010 Oliver Tappe <zooey@hirschkaefer.de>

* removed all BLocale-related getters from BLocaleRoster - they're available
in BLocale (which is accessible via be_locale)
* adjusted all users accordingly


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


# 795ff7d3d48356213a5988b682b0b3974719f8db 16-Aug-2010 Oliver Tappe <zooey@hirschkaefer.de>

* removed some useless code and protect against localtime() possibly returning
NULL

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


# 5c3a30348613821de032e50f1633e47dc732651f 04-Aug-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

* Move the locale-related stuff away from BCountry to BLocale.
* Remove the be_locale global object and go through the be_locale_roster instead
* Rework the storage of data for the be_locale_roster, since BLocale already holds a BCountry and a BLanguage.


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


# 38ac8def5a72de58d6ae4e82d8c4a6be1021e67e 01-Aug-2010 Oliver Tappe <zooey@hirschkaefer.de>

Largish cleanup sweep concerning the Locale Kit (sorry it got so big):
* refactored private/mutable stuff out of LocaleRoster into MutableLocaleRoster
* moved management of Locale/Time settings file and broadcasting of any changes
out of preflets and into MutableLocaleRoster
* added proper sorting to the listviews of the Locale preflet
* the Time preflet no longer overlaps long timezone names into the actual time
* several fixes with respect to leaking ICU objects, esp. in BCountry
* the locale roster no longer passes out references to its own BCountry object,
but uses copies, instead - this makes locking superfluous, as the clients'
BCountry objects can no longer be changed by the setting a new default
country in the locale roster
* removed pretty useless POSIX-style symbol fetching from BCountry - if we
need that at all, it should live in the dedicated formatter classes
* adjusted readonlybootprompt, dstcheck and Deskbar to the changed Locale API
* refactored existing Time-formatter into TimeUnitFormat and DurationFormat
(the latter of which is now used by AboutSystem)
* added stubs for Date, DateTime and Time formatters
* lots of coding style fixes throughout the Locale Kit and the Locale and Time
preflets
This will probably break most external apps making use of the Locale Kit - it
does break WebPositive.


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


# ab58e877e865ab3c955ccd77d23d9ba735622c18 22-Jul-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

* Notify the TimeView in Deskbar when a locale change occurs, so it can update its size.


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


# 5b12845050b248e5398618d2f24f197117967e29 29-Jun-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

Some refactoring of the deskar localization code to be more effective.
There is a memory leak somewhere in deskbar, but it appears to be unrelated to the time localization change (stays even if clock is disabled), so I have no idea where it comes from.


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


# 4eb0cbb044cf538f18c0d252934a5bcaa33bfd34 07-May-2010 Matt Madia <mattmadia@gmail.com>

Updated TR_CONTEXT to be B_TRANSLATE_CONTEXT, relating to #5408.


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


# 61863f2c44866b672437629037b377f723e288de 06-May-2010 Matt Madia <mattmadia@gmail.com>

Updated to use B_TRANSLATE* macros. relates to #5408.

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


# 7974d3dcf39ce78e5885b481eee12e561ad6e096 13-Jan-2010 Stephan Aßmus <superstippi@gmx.de>

Patch by Humdinger:
Updated Haiku apps to use sentence-case. What a huge undertaking...
The files where I had to apply the patch manually (for mysterious
reasons) have also gotten a whitespace cleanup. I've proof-read
everything so hopefully there should be no problems.

This should be the final part of #5169.


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


# c5c6248e3df8377f2e8db275359a518b31cc27cc 20-Oct-2009 Axel Dörfler <axeld@pinc-software.de>

* Got rid of the _SHOW_CALENDAR_MENU_ITEM, and _SHOW_CALENDAR_MENU_WINDOW
defines - it's always in, and I don't think it makes any sense to make this
an option (since it just uses a system widget).


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


# 361a3434b4411ee60cf22a91c29d2ff0d0ca2e79 02-Sep-2008 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

* Delete longClickMessageRunner in destructor to avoid potential memory leak.
* Delete longClickMessageRunner after its message arrived, to shorten its lifetime.
* Moved creation and deletion of longClickMessageRunner into methods.


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


# 4a89dc95cb40586a64d621a12b428c83416e2956 02-Sep-2008 Alexandre Deckner <alex@zappotek.com>

- Don't leak the message given to BMessageRunner, thanks stippi!


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


# 57b269650e81802dd306a225266f28cda4084f1c 01-Sep-2008 Alexandre Deckner <alex@zappotek.com>

- Well, i told ya it was better with a BMessageRunner ;-P


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


# da88cf3113f2addedddc78da617593df96382388 01-Sep-2008 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

Added menu item "Show Calendar ..." to time pop up menu.

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


# 77fa9c0b395a7b755c2dd494c5d367331b201278 31-Aug-2008 Alexandre Deckner <alex@zappotek.com>

* Rewrote long click mouse tracking. This avoids busy looping in TimeView::MouseDown and fixes
#591. The helper class could be reused for similar situations (ex: Tracker context menu and
drag detection). See the brief doc in the code. Comments welcomed!


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


# 3f9abddf33132d2e4c340b21cd5e8579f13113cc 29-Aug-2008 Karsten Heimrich <host.haiku@gmx.de>

* Reuse calendar from shared to have a bitmore advanced panel
while holding down the mouse over the date area in Deskbar.

One probably needs to clean and rebuild Deskbar to get it...



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


# 157cd8913e6173dae21b43aef5bfd5419d4a5f68 16-Jun-2008 Alexandre Deckner <alex@zappotek.com>

- Calculating the space left for deskbar replicants was broken. The TimeView could overlap on the left. This fixes #1408
- Placement of the time text was broken. With big fonts, the text was way too low. Using text bounding box now, it looks pretty and robust too.
- Fixed the height of the time view to the replicant height. The view has a fixed height now and can never overlap deskbar at the bottom (horizontal deskbar mode) or other replicant
below.


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


# e28ef85ab7cf943021316b98d869e94875d803a6 15-Mar-2008 Rene Gollent <anevilyak@gmail.com>

Unify the app signature used everywhere for the time prefs. This fixes dstcheck being unable to actually invoke the
time prefs if asked to adjust the clock.



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


# f12a404e8888b50e645057897adf70b089e1a90a 03-Nov-2006 Stephan Aßmus <superstippi@gmx.de>

* small simplification



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


# a5210ab17da5a6784a814bb69c59ba6bf5401432 11-Aug-2006 Axel Dörfler <axeld@pinc-software.de>

Imported files from OT-current:
* ExpandoMenuBar.cpp 1.18
* CalendarMenuItem.cpp 1.6
* WindowMenu.cpp 1.3
* TimeView.cpp 1.14
* StatusView.cpp 1.18
* BarWindow.cpp 1.8


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


# 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