Commit Graph
59 Commits
Author SHA1 Message Date
Adrien Destugues a22fff485c ActivityMonitor: fix non-i18n-friendly string
Fixes #16008
2020-05-11 17:27:49 +02:00
X512 47102c0742 Interface Kit: introduce B_TRANSPARENT_BACKGROUND flag
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]>
2020-04-16 00:59:37 +00:00
X512 cc0226fad0 ActivityMonitor: remove double buffering and custom background drawing
Part of #15623.

Change-Id: Id6b7c13623e66d5b88ffc48766a5fe5ec4099b64
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2133
Reviewed-by: Stephan Aßmus <[email protected]>
2020-01-19 18:27:55 +00:00
Murai Takashi b08627f310 Fix catching polymorphic type by value
Replace catching polymorphic type std::bad_alloc 'by value'
with 'by reference'.
Pointed by gcc8
2018-05-16 13:49:46 +00:00
Janus 7f07c303ab ActivityMonitor: use checkmark for "Show legend" label
* Fixes #11259.
2016-11-15 18:21:47 +01:00
looncraz fa19dd4470 apps: Convert to using Set*UIColor.
Signed-off-by: Augustin Cavalier <[email protected]>
Patches 0045-0075, 0077-0087 from looncraz, unmodified.
2016-01-04 07:33:09 -05:00
Axel Dörfler 27231d807a ActivityMonitor: changed full legend width behavior.
* Only use the full width if there is only a single item, otherwise
  I think it's more confusing than helpful.
2015-01-23 21:00:36 +01:00
Adrien Destugues 6df2c16cc9 ActivityMonitor: allow legend to use full width...
...for the last item when an odd number of items is used in a graph.

Fixes #7262.
2014-12-22 13:46:28 +01:00
Adrien Destugues 4c581823cd Style fix. 2014-11-26 13:18:48 +01:00
Adrien Destugues 52051a08de ActivityMonitor: catch the exception
Having the app abort because of an uncaught exception when out of memory
is not user friendly. Just stop drawing the graphs if that ever happens.
2014-11-26 12:24:05 +01:00
Adrien Destugues 3f57b13504 ActivityMonitor: don't draw graph with negative width.
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.
2014-11-26 12:16:57 +01:00
Adrien Destugues df2257de36 Make BAboutWindow movable again.
Also fix build, forgot some files in previous commit.
2013-05-01 13:07:29 +02:00
Adrien Destugues fd19c7366d Fix BAboutWindow lifecycle
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.
2013-04-30 21:50:24 +02:00
John Scipione 7fe8b2bf2a Also lock fAboutWindow before Quit()ting in other apps 2012-12-17 16:46:41 -05:00
John Scipione 80d7bf83bd Add authors back. 2012-11-12 23:57:33 -05:00
John Scipione 97a814061e Instead of destroying the BAboutWindow object on close, Hide() it, then on the destructor of the calling window call Quit() explicitly to destroy it. 2012-11-12 23:57:30 -05:00
John Scipione 12a9a71db6 Use a quit bool in B_ABOUT_REQUESTED to indicate that the about window has quit instead of using kAboutWindowClosed message. This prevents message signature clashes. 2012-11-12 23:57:27 -05:00
John Scipione 3fdab58446 Set the about window object to NULL on close or quit.
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.
2012-11-12 23:57:26 -05:00
John Scipione 5b0cd98792 WIP: Create the about dialog once, hide and show, Quit() when object is destroyed. 2012-11-12 23:57:25 -05:00
Oliver Tappe 546208a539 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.
2012-04-16 21:31:22 +02:00
Philippe Saint-Pierre d63b75faf8 Outline of labels/strings drawn to desktop
* 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.
2012-02-22 19:06:22 -05:00
Stephan Aßmus d1901581f4 Introduced DataSource::InternalName(), which must be implemented by all
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
2011-03-19 16:38:30 +00:00
Philippe Houdoin 4840a72fa7 Localized, part of a GCI task (thanks protonux)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39767 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-12-08 18:10:09 +00:00
Axel Dörfler be3f9645a7 * Make sure that the per CPU data sources are inserted in the correct order
(ie. starting with the first CPU).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39424 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-14 11:27:24 +00:00
Stephan Aßmus 9bd81dbeac Subtract the dragger size more consequently from the legend frame, fixing the
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
2010-03-14 10:10:59 +00:00
Philippe Saint-Pierre 005e1e3073 ActivityMonitor: Add a 7px margin (when necessary) to the legend to avoid having the dragger overlaps the labels.
Fixing ticket #3319.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35353 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-31 01:03:43 +00:00
Philippe Saint-Pierre e45d83a9c8 ActivityMonitor: Style violation fixed. Thanks Axel!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35101 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-16 16:38:12 +00:00
Philippe Saint-Pierre fbb82a6282 ActivityMonitor :
* 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
2010-01-15 23:23:22 +00:00
Philippe Saint-Pierre bb7cffd0d1 ActivityMonitor (when used as replicant) :
* 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
2010-01-15 03:08:18 +00:00
Stephan Aßmus 7974d3dcf3 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
2010-01-13 14:33:35 +00:00
Axel Dörfler 2c604c0df5 * CircularBuffer is now save to use even if the buffer allocation failed. This
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
2009-06-05 08:20:43 +00:00
Stephan Aßmus ed1b27536b * Some beautification, mostly for when the replicant is embedded on the Desktop.
* 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
2009-04-07 16:09:00 +00:00
Alexandre Deckner eee6f40b8b * Archive/Unarchive refresh interval
* Minor style fix


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29976 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-04-06 20:30:21 +00:00
Rene Gollent cce423c203 gcc4 build fix.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29968 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-04-06 15:21:57 +00:00
Axel Dörfler 7d33b63d40 * Fixed removing a per CPU source.
* 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
2009-04-05 21:22:14 +00:00
Axel Dörfler 8e26f38727 * Added a ViewHistory class that stores the current values, so they don't have
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
2009-04-05 21:05:50 +00:00
Stephan Aßmus 4e78d3bc78 Something is fishy with the pen location and graphics states. At first, this
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
2009-03-28 18:05:16 +00:00
Axel Dörfler 1bb87bd0b1 * Added a settings window - right now, you can only change the time interval,
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
2009-03-13 20:19:10 +00:00
François Revol acef747411 Comment out debug output.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29491 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-13 16:50:47 +00:00
Axel Dörfler 230e325926 * The network usage data sources are now actually using a single scale as
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
2008-10-10 23:20:59 +00:00
Axel Dörfler 4ce1e1d2e4 * Fixed a possible deadlock on quit: ActivityView::DetachedFromWindow() is
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
2008-09-17 18:01:37 +00:00
Axel Dörfler d421644512 * Offloaded the data source retrieval into another thread for more accuracy.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26434 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-15 17:10:52 +00:00
Axel Dörfler 84e23a5d08 * DataHistory::ValueAt() now interpolates between two values in case the time
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
2008-07-15 15:55:28 +00:00
Axel Dörfler 51591198d6 * Now use two views when starting (one memory, one CPU usage). The third view
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
2008-07-14 17:29:02 +00:00
Axel Dörfler 1201d52e6c * Color drops for the data source color are now only accepted on the colored
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
2008-04-22 15:14:51 +00:00
Axel Dörfler 9c89c45059 * Allow color drops to change the legend background color only for the
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
2008-04-19 13:11:19 +00:00
François Revol 9173ac083b Don't use the drop offset, much better now, it goes where the mouse is.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25032 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-18 21:18:26 +00:00
François Revol 5f2f72a288 Accepts drops on legends.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25030 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-18 17:30:00 +00:00
François Revol 79cbd22649 Colors should be archived correctly now, at least for replicants.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25029 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-18 16:42:10 +00:00
François Revol c28f8ea349 Now reacts to color drops. Tested with Zeta prefs and ArtPaint palette.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25028 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-18 16:09:27 +00:00