BeOS didn't support transparent views. As documented in the Be Book,
SetViewColor(B_TRANSPARENT_COLOR) only effect is to not fill the
invalidated areas with the view color before calling Draw() (it avoids
flickering, especially when combined with B_FULL_UPDATE_ON_RESIZE).
A previous change made B_TRANSPARENT_COLOR actually make the view
transparent (that is, additionally to the above, the underlying view is
drawn before the transparent children), but it creates compatibility
issues.
In order to keep the API compatible with BeOS, the new behavior is now
enabled explicitly using the B_TRANSPARENT_VIEW flag. This also opens
for future developments like allowing a view color with an alpha
channel (not supported yet).
Adjust programs that require transparent views.
Fixes#15744, #15745.
Helps with #15645.
Change-Id: I529574ea23db0a23579521b263bc8d572775e35a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2275
Reviewed-by: Adrien Destugues <[email protected]>
The computation of the graph width could overflow leading to an absurdly
high count of lines to be drawn. This would freeze with BShape trying to
realloc the array to bigger and bigger sizes as lines were added to it
(by increment of 256, but still), or trigerred a bad_alloc in
BeginLineArray which allocates them upfront after I converted the code
to use that (it is more appropriate).
Add sanity checks to avoid the overflow, now you can have hundreds of
graphs without problems (much more than I can fit on my screen anyway,
which I think is good enough).
Fixes#6841.
BAboutWindow returned false in QuitRequested in order to hide instead of closing.
Not only this keeps a BLooper running for a rarely used window, but it also
prevents quitting an application in the window was not destroyed first.
* Remove aforementioned QuitRequested method,
* Add a static GetWindow method that returns the existing about window, if there
is one, or creates one if there is not. A boolean can be set to tell the caller
what happened,
* Adjust all callers to use that new method, instead of managing the window themselves.
Pass the BHandler object that opened the about window to BAboutWindow.
When the window closes, send a kAboutWindowClosed message back to the
handler. This allows the handler to set the variable to NULL.
Implement the new about dialog constructor in all apps that use it.
Remove the old constructor. This now works reliably for all cases I
tested without crashing and does the right thing on close. The setup
and teardown is a bit more complicated than I wanted though.
Unfortunately this seems to be necessary when not using a BAlert.
Fetching the app icon does not work reliably yet. This is because for
replicants the app may not be running. I may have to pass the icon in
instead of grabbing it from the signature.
* 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.
* Rather than duplicating the decision taking logic involving wheter or not to draw
the outline or glow in every replicant, update be_control_look to make it more
generic.
* The Monitoring of the background preferences is now only done in Tracker (where it
was already being done).
* Add a BControlLook::B_IGNORE_OUTLINE flag to avoid this new behaviour.
* Remove that said logic from ActivityMonitor and use be_control_look.
* Use the ignore flag in DeskCalc to avoid the outline in its case.
Should fix#7716, #7291.
derived classes. This is now used for storing and restoring DataSources
in/from the ActivityView archive. Fixes replicant restoration after
switching the preferred system language.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41027 a95241bf-73f2-0310-859d-f6bbb57e9c96
ugly big color indicators.
BTW, I noticed that the ActivityView is not really using layout management at
all. But with the incomplete archiving features, this probably wouldn't work
too well anyway.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35850 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Add a 2px bottom padding when used as a replicant, to account for possible
outline. (Thanks stippi!)
* Fix style violation (Thanks Axel!)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35092 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Use the "Icon Label Outline" setting to improve readability
* It is using the same algorithm as Tracker to outline and glow the text,
and determine the color of the text.
Implements enhancement suggestion #5105.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35084 a95241bf-73f2-0310-859d-f6bbb57e9c96
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
fixes bug #3985.
* This happened as ViewHistory::Update() can obviously be called before the
view is really layouted. Therefore it now restricts the view size to 16384.
* Since the Update() happens in Draw(), it looks like this is actually a problem
of our layout engine (as the size is computed via BView::Frame()).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30967 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Fall back to a shorter legend label when the room is too small (before
truncating).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30001 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Fixed drawing problem when adding a new source, and the draw happened before
a new value came in.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29951 a95241bf-73f2-0310-859d-f6bbb57e9c96
to be interpolated everytime. This class also makes sure that the values are
always from the same offsets, so the flickering is gone.
* Need to use SetMouseEventMask() or else the mouse up will be ignored when
changing the resolution via dragging the mouse.
* Fixed a bug that prevented the DataHistory data interpolation from working
correctly.
* The refresh threads are now working at B_URGENT_DISPLAY_PRIORITY, making the
view updates much more stable with less jitter.
* Removed the draw refresh, and have it always be the same as the value
refresh.
* Added lower refresh intervals (25, and 75 ms).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29950 a95241bf-73f2-0310-859d-f6bbb57e9c96
irritated me when drawing BShapes. Those are always offseted by the current
pen location (to be compatible with BeOS). On first draw, it worked ok, on
subsequent draws, no shape to be seen. Now I've noticed that ActivityMonitor
does not draw it's offscreen view when placed on the Desktop. This seems to
be the same issue. The BView is archiving a wrong penlocation. I've looked
a bit around for the actual problem, but until I can find it, this patch fixes
the replicant mode of ActivityMonitor.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29757 a95241bf-73f2-0310-859d-f6bbb57e9c96
though.
* Shortened the time interval defaults to 250 ms; the drawing updates are made
every 500 ms - this still seems to have only little influence on CPU load over
here (YMMV).
* The resolution/scale change is now applied to all views, not just the current.
* Changed the pen size of the chart to 1.5.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29497 a95241bf-73f2-0310-859d-f6bbb57e9c96
intended before.
* Also found a bug in the scales that prevented them from working.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27962 a95241bf-73f2-0310-859d-f6bbb57e9c96
called with the window lock held, so it's not a good idea to wait for a
thread that may also lock the window. Now, it no longer does that, but just
sends a B_INVALIDATE message instead of calling Invalidate() directly.
* This closes bug #2737.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27599 a95241bf-73f2-0310-859d-f6bbb57e9c96
doesn't match exactly one data item (before, it would have returned the
value of the closest but earlier value).
* This almost removes the effect that the older values seem to change with
every refresh (because the time did not always match exactly)).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26429 a95241bf-73f2-0310-859d-f6bbb57e9c96
that is added to the window is a networking monitor, all later views default
to CPU usage again.
* DataSources can now share a single adaptive scale, so that they become
comparable in a single view.
* The networking in/out sources are now using this feature.
* DataHistory::ValueAt() now uses binary search to find the right data_item;
this also fixes bug #2140, and makes it possible to change the refresh rate
(which is not yet implemented, though).
* Zooming the timeline now also works by clicking the first mouse button and
dragging the mouse around (instead of only via the scroll wheel, in case you
hadn't noticed yet :-)).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26409 a95241bf-73f2-0310-859d-f6bbb57e9c96
box, added a new method _LegendColorFrameAt() that returns that area, and
is also used when drawing it.
* Fixed changing the history background color; it accidently changed the color
of the wrong view. This fixes bug #2115.
* If the history gets too dark, it will now lighten up the scale, instead of
drawing it even darker.
* Changing the color of a data source now immediately redraws the colored box,
too.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25097 a95241bf-73f2-0310-859d-f6bbb57e9c96
replicant.
* Implemented storing and restoring the color of the data sources.
* Minor style fixes.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25046 a95241bf-73f2-0310-859d-f6bbb57e9c96