#
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>
|
#
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>
|
#
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.
|
#
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.
|
#
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.
|
#
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).
|
#
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.
|
#
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
|
#
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
|
#
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
|
#
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
|
#
26e780c2 |
|
24-Jun-2010 |
Jérôme Duval <korli@users.berlios.de> |
* remove not anymore needed constant. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37245 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
|
#
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
|
#
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
|
#
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
|
#
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
|
#
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.
|
#
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.
|
#
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).
|
#
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.
|
#
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
|
#
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
|
#
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
|
#
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
|
#
26e780c256a308a9dd1b7145c41affa7ab9cff2e |
|
24-Jun-2010 |
Jérôme Duval <korli@users.berlios.de> |
* remove not anymore needed constant. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37245 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
|
#
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
|
#
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
|
#
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
|
#
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
|