string_for_size uses KiB, etc., and so when the two are combined (e.g.
pkgman's progress display), it looked especially strange to have two
different units.
The ICU class is named MessageFormat, but on Haiku, it sounds too much
like something related to BMessage (which it isn't in the slightest)
and not part of the Locale system. It works almost entirely with BStrings,
so naming it BStringFormat makes much more sense.
OK'ed by PulkoMandy and Humdinger.
Only using the keyboard navigation colour to indicate the current day isn't that
nice in all situations. When using custom system colours, like white on blue
for selected items, it can become barely readable.
Now we
* use bold type face for 'today',
* tint 'today's background (lighten for dark, darken for bright bgColor),
* use B_LIST_SELECTED_BACKGROUND_COLOR and B_LIST_SELECTED_ITEM_TEXT_COLOR
for the selected day,
* keyboard navigation colour only for the frame and text when doing keyboard
navigation
Fixes#13714
* Use BDateFormat::GetDayName() to fetch weekday names.
* Use appropriate symbol width(Mon, Mo, M) depending on the frame width.
* Provide functionality to update day name header in case of locale
preferences change.
Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
More background work for later performance improvements.
This change generalizes the parsing of meta-data from
JSON streams as similarly structured meta-data is
anticipated to be carried in other payloads. Unit tests
have also been implemented to provide coverage on this
new functionality.
Changing the year in Calendar View does not remove the highlighting from
previous highlighted day.
Changing the system date to a date in a different month(different from
the month currently set in calendar view) does not remove the highlighting
from currently highlighted day.
The disabled day number text belonging to the next month (month after
the one currently selected) gets wrongly highlighted while attempting
to highlight the day number text belonging to the current month.
Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
ticket : #13605
* Issue: In BCalendarView presently, there is no notion of a current date
and the current date is not highlighted. So in the deskbar tray calendar
which uses BCalendarView, we cannot know the current date once we change
the selected day.
* Fix: Make BCalendarView accept pulse messages, check for system date
with every pulse message and update the current date accordingly.
Highlight the current date by rendering its day number text in a
different color.
Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
ticket : #13592
The non-locale aware version is kept in src/build/libshared for use on
the host system and in packagefs (kernel add-on). In both cases, ICU is
not available.
Fixes#8192
This change will introduce a streaming parser capability to Haiku. The
existing functionality of writing the JSON data to a BMessage in-memory
model is retained. The new parser implements a SAX-style listener based
interface where the listener accepts parse events. Unit tests have been
supplied for the JSON parser as well.
Update all in-tree consumers of the BJson API to match. Also added
const-qualifiers to the BString versions of the API, and added the leading
"_" to the header guards.
As found on http://seriot.ch/parsing_json.php -- anything using the API
presently with valid JSON should have no troubles, but more valid JSON
that previously didn't work now does (e.g. JSON with root array nodes, not
root map nodes), and invalid JSON that silently succeeded before now fails.
Not all the bad cases from that testsuite now fail, and not all of the good
ones pass, but the few that remain are odd things that wouldn't map well to
the BMessage API (e.g. root string nodes, etc.) or are other behaviors that
make sense to leave as they are for compatibility reasons.
Approximation for n >= 1000
Factorial
Actual Value (truncated)
Approximation
1000!
4.0238726007709377354370243392300398571937E2567
4.0238726007709377354370243392307 E2567
10000!
2.8462596809170545189064132121198688901480E35659
2.8462596809170545189064132121197 E35659
100000!
2.824229407960347874293421578024535518477E456573
2.824229407960347874293421578024 E456573
Close enough!
- As suggested by Ingo, add libshared.a to the architecture name map.
This allows it to be linked by its short name like other frequently
used libraries.
- Adjust all Jamfiles referencing the lib accordingly.
* Added a function CopyMailFolderAttributes() that copies the attribute
layout from the text/x-email default query folder.
* This using the new CopyAttributes() method in libshared that is pretty
much a copy of a similar method from copyattr. However, I did not
replace the latter, as that one allows for more fine grained error
reporting (and attribute filtering).
* Closes ticket #3498.
This was a bigger change than many others as BButton now defaults to using
control background colors, and we can not do that here without the buttons
not appearing as we desire (blending in with the toolbar).
Using the control background color for the toolbar would be unacceptable.
Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
Patch 0041 from looncraz, unmodified.
For defining the text that appears alongside the icon.
This function really has too many parameters; we probably should break
it out into a BAction class...
* You can now add arbitrarily named fields to the message as well,
without having them all specified in the template.
* Also added a missing converter method that is called when there
are no values to add, and implemented all methods in the base
class, so that you only have to implement the methods you actually
need.
* _AddParameter() would ignore all BMessage::Add*() errors.
* _ConvertFromDriverParameter() would ignore most intermediate error,
but would fail badly over some incorrect settings file.
* Also, it checked for the parent value for each parameter, which
doesn't make any sense, but would add as often as there are
parameters -- which also may be none, in which case the value
got ignored.
* You can now optionally specify a converter that does the actual
message to settings conversion, and vice versa.
* This allows for more sophisticated and custom conversions.
"BToolBar" matches the current convention ("BStatusBar", "BMenuBar", etc.)
I've no idea what I was thinking when I renamed this before...
Also adjust all users of BToolBar (Tracker and ShowImage).
We would show "1Mbps" for 1.0 to 1.9 actual speed, which made this not
so helpful. Instead, switch to Mbps when reaching 10000 Kbps. So we show
"1000 Kbps" or 1900Kbps" in the mentionned situation, and up to "9999
Kbps" (note this is still only 4 digits, so it stays readable). We then
switch to "10 Mbps", which is still only withing 12% of the actual speed
(but better than the previous error of up to 50%).
Fixes#11821.
Also use uppercase for the SI prefixes as it should be, and use %d
instead of %f for the bps rating as it is an integer.
I already made this patch in Heidi's clone of BToolbar. Adding it here
allows me to drop Heidi's version altogether.
I also relicensed the header file at the permission of Stephan. The .cpp
file still lists him as author and copyright holder.
Signed-off-by: Jessica Hamilton <jessica.l.hamilton@gmail.com>
* Let the jamfile set HAVE_DEFAULT_GEOLOCATION_SERVICE_KEY if the
header that is supposed to contain it is found in src/kits/shared
(which isn't the case for normal builds).
* In case HAVE_DEFAULT_GEOLOCATION_SERVICE_KEY is set, include the
corresponding header and activate Mozilla's geolocation service with
the key defined in that header.
This procedure should enable buildbot to create nightly images without
exposing the private service key.
* BDate setters don't perform any validation, use with caution.
* BCalendarView setters do perform validation checks, and will adjust
the day so it fits the requested month or year.
* Add tests for the BCalendarView setters.
* 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.