History log of /haiku/src/apps/activitymonitor/ActivityView.cpp
Revision Date Author Comments
# 0f2661cc 24-Dec-2021 Adrien Destugues <pulkomandy@pulkomandy.tk>

Partially revert "ActivityMonitor: remove double buffering and custom background drawing"

This partially reverts commit cc0226fad05a6796f50723554c10b1bbd02de7b1.

This commit caused high CPU usage in app_server. The double buffering in
ActivityMonitor is not to avoid flickering, it allows to draw just a few
pixels of the the curves at each update, and reuse most of the bitmap
from the previous run.

Removing this means all the curves are fully redrawn at each update,
resulting in higher CPU usage (one core at 30% on my machine with 5
different graphs).

Keep the part of the changes removing code for custom background
drawing. B_TRANSPARENT_VIEW flag can be used instead.

Change-Id: Ie3438ca634c934f3e96ce5f7ad71ce7b3a435013
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4833
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Axel Dörfler <axeld@pinc-software.de>


# a22fff48 11-May-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

ActivityMonitor: fix non-i18n-friendly string

Fixes #16008


# 47102c07 24-Feb-2020 X512 <danger_mail@list.ru>

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 <pulkomandy@gmail.com>


# cc0226fa 16-Jan-2020 X512 <danger_mail@list.ru>

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 <superstippi@gmx.de>


# b08627f3 04-May-2018 Murai Takashi <tmurai01@gmail.com>

Fix catching polymorphic type by value

Replace catching polymorphic type std::bad_alloc 'by value'
with 'by reference'.
Pointed by gcc8


# 7f07c303 15-Nov-2016 Janus <janus2@ymail.com>

ActivityMonitor: use checkmark for "Show legend" label

* Fixes #11259.


# fa19dd44 10-Dec-2015 looncraz <looncraz@looncraz.net>

apps: Convert to using Set*UIColor.

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
Patches 0045-0075, 0077-0087 from looncraz, unmodified.


# 27231d80 21-Jan-2015 Axel Dörfler <axeld@pinc-software.de>

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.


# 6df2c16c 22-Dec-2014 Adrien Destugues <pulkomandy@gmail.com>

ActivityMonitor: allow legend to use full width...

...for the last item when an odd number of items is used in a graph.

Fixes #7262.


# 4c581823 26-Nov-2014 Adrien Destugues <pulkomandy@gmail.com>

Style fix.


# 52051a08 25-Nov-2014 Adrien Destugues <pulkomandy@gmail.com>

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.


# 3f57b135 25-Nov-2014 Adrien Destugues <pulkomandy@gmail.com>

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.


# df2257de 01-May-2013 Adrien Destugues <pulkomandy@gmail.com>

Make BAboutWindow movable again.

Also fix build, forgot some files in previous commit.


# fd19c736 30-Apr-2013 Adrien Destugues <pulkomandy@gmail.com>

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.


# 7fe8b2bf 17-Dec-2012 John Scipione <jscipione@gmail.com>

Also lock fAboutWindow before Quit()ting in other apps


# 80d7bf83 18-Aug-2012 John Scipione <jscipione@gmail.com>

Add authors back.


# 97a81406 18-Aug-2012 John Scipione <jscipione@gmail.com>

Instead of destroying the BAboutWindow object on close, Hide() it, then on the destructor of the calling window call Quit() explicitly to destroy it.


# 12a9a71d 18-Aug-2012 John Scipione <jscipione@gmail.com>

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.


# 3fdab584 18-Aug-2012 John Scipione <jscipione@gmail.com>

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.


# 5b0cd987 17-Aug-2012 John Scipione <jscipione@gmail.com>

WIP: Create the about dialog once, hide and show, Quit() when object is destroyed.


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


# d63b75fa 22-Feb-2012 Philippe Saint-Pierre <stpere@gmail.com>

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.


# d1901581 19-Mar-2011 Stephan Aßmus <superstippi@gmx.de>

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


# 4840a72f 08-Dec-2010 Philippe Houdoin <philippe.houdoin@gmail.com>

Localized, part of a GCI task (thanks protonux)


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


# be3f9645 14-Nov-2010 Axel Dörfler <axeld@pinc-software.de>

* 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


# 9bd81dbe 14-Mar-2010 Stephan Aßmus <superstippi@gmx.de>

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


# 005e1e30 30-Jan-2010 Philippe Saint-Pierre <stpere@gmail.com>

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


# e45d83a9 16-Jan-2010 Philippe Saint-Pierre <stpere@gmail.com>

ActivityMonitor: Style violation fixed. Thanks Axel!


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


# fbb82a62 15-Jan-2010 Philippe Saint-Pierre <stpere@gmail.com>

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


# bb7cffd0 14-Jan-2010 Philippe Saint-Pierre <stpere@gmail.com>

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


# 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


# 2c604c0d 05-Jun-2009 Axel Dörfler <axeld@pinc-software.de>

* 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


# ed1b2753 07-Apr-2009 Stephan Aßmus <superstippi@gmx.de>

* 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


# eee6f40b 06-Apr-2009 Alexandre Deckner <alex@zappotek.com>

* Archive/Unarchive refresh interval
* Minor style fix


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


# cce423c2 06-Apr-2009 Rene Gollent <anevilyak@gmail.com>

gcc4 build fix.


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


# 7d33b63d 05-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* 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


# 8e26f387 05-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* 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


# 4e78d3bc 28-Mar-2009 Stephan Aßmus <superstippi@gmx.de>

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


# 1bb87bd0 13-Mar-2009 Axel Dörfler <axeld@pinc-software.de>

* 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


# acef7474 13-Mar-2009 François Revol <revol@free.fr>

Comment out debug output.


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


# 230e3259 10-Oct-2008 Axel Dörfler <axeld@pinc-software.de>

* 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


# 4ce1e1d2 17-Sep-2008 Axel Dörfler <axeld@pinc-software.de>

* 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


# d4216445 15-Jul-2008 Axel Dörfler <axeld@pinc-software.de>

* 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


# 84e23a5d 15-Jul-2008 Axel Dörfler <axeld@pinc-software.de>

* 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


# 51591198 14-Jul-2008 Axel Dörfler <axeld@pinc-software.de>

* 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


# 1201d52e 22-Apr-2008 Axel Dörfler <axeld@pinc-software.de>

* 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


# 9c89c450 19-Apr-2008 Axel Dörfler <axeld@pinc-software.de>

* 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


# 9173ac08 18-Apr-2008 François Revol <revol@free.fr>

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


# 5f2f72a2 18-Apr-2008 François Revol <revol@free.fr>

Accepts drops on legends.


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


# 79cbd226 18-Apr-2008 François Revol <revol@free.fr>

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


# c28f8ea3 18-Apr-2008 François Revol <revol@free.fr>

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


# 3f315b26 18-Apr-2008 Axel Dörfler <axeld@pinc-software.de>

* Moved the "Remove View" functionality into the popup menu of the ActivityView


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


# dc1ffc79 18-Apr-2008 François Revol <revol@free.fr>

- fix BeOS build (it's getting nasty)
- add a media node count data source. Yes I do have work to do instead :P


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


# 43eda1cd 17-Apr-2008 Axel Dörfler <axeld@pinc-software.de>

* Each DataSoure now has a "primary" indicator - this is used to separate
more important DataSources from less important ones.
* Made the popup less crowded based on that info.


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


# 065e8de0 17-Apr-2008 Axel Dörfler <axeld@pinc-software.de>

* Improved layout of the activity views: each view now has separate layout
items for the history and the legend, causing the history parts of all
views to be of equal size if used (which ActivityWindow now does, of course).


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


# 6f6ba875 18-Apr-2008 Axel Dörfler <axeld@pinc-software.de>

* Amazing: François writes almost style compliant code! :-)
* Minor cleanup - I haven't written SystemInfoHandler, François did.


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


# 74158bb4 17-Apr-2008 François Revol <revol@free.fr>

- introduced a SystemInfoHandler class used to watch for stuff when polling isn't needed.
- used it to add a count of running apps (not exactly the same as teams).


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


# cbd4bc95 17-Apr-2008 François Revol <revol@free.fr>

Made ActivityMonitor buildable under BeOS (at least BONE).
This is only temporary, to help test adding data sources, so the gross #ifdef __HAIKU__ are intentional to keep BeOS-only code (without layout support) trackable. It is not fully functional but sufficient for testing and will go away later.


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


# 3a4a2141 13-Apr-2008 Axel Dörfler <axeld@pinc-software.de>

Some more work on the ActivityMonitor:
* Added legend.
* Added network receiving/sending DataSource.
* Now uses the new layout engine.
* Added support for per CPU DataSources, and added a per CPU CPU usage
DataSource.
* The DataSources can now be turned on and off via popup menu.
* You can now add more than one view to the window.
* The DataSources of the ActivityViews are now remembered.
* Now uses an offscreen bitmap to reduce flicker (it should now no longer
flicker with accelerated graphics).


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


# 18d3e65e 06-Apr-2008 Axel Dörfler <axeld@pinc-software.de>

* The beginnings of an activity monitor application. Very bare and feature-less
right now, but it's already working (and shows that we better compute our
system_info::cached_pages field directly).
* I am not sure if we want to keep this app here, merge it with
ProcessController, or have it as a separate (3rdparty) app. Opinions welcome.


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


# 27231d807a1b3a179b8456630fb4b16a24dd701c 21-Jan-2015 Axel Dörfler <axeld@pinc-software.de>

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.


# 6df2c16cc92a5c999bd2c2747590c93c645f2ca6 22-Dec-2014 Adrien Destugues <pulkomandy@gmail.com>

ActivityMonitor: allow legend to use full width...

...for the last item when an odd number of items is used in a graph.

Fixes #7262.


# 4c581823cd14a684fac87d58b207767ba8475e5b 26-Nov-2014 Adrien Destugues <pulkomandy@gmail.com>

Style fix.


# 52051a08de77167c20ba73f499646e90b6466f63 25-Nov-2014 Adrien Destugues <pulkomandy@gmail.com>

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.


# 3f57b13504ec30f19ec617feac42f1f69736967b 25-Nov-2014 Adrien Destugues <pulkomandy@gmail.com>

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.


# df2257de36ed24b46ea52c5b301d9d3861297e1b 01-May-2013 Adrien Destugues <pulkomandy@gmail.com>

Make BAboutWindow movable again.

Also fix build, forgot some files in previous commit.


# fd19c7366df2134106131c370c99c3ed7f38757f 30-Apr-2013 Adrien Destugues <pulkomandy@gmail.com>

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.


# 7fe8b2bf2a3e4b1c258ec9a4ec748f71d8a9e226 17-Dec-2012 John Scipione <jscipione@gmail.com>

Also lock fAboutWindow before Quit()ting in other apps


# 80d7bf83bdaf85b1676816ccdbd2c60f2a72c167 18-Aug-2012 John Scipione <jscipione@gmail.com>

Add authors back.


# 97a814061e5b6fc26fbfedf2efb859ec2bcf87a1 18-Aug-2012 John Scipione <jscipione@gmail.com>

Instead of destroying the BAboutWindow object on close, Hide() it, then on the destructor of the calling window call Quit() explicitly to destroy it.


# 12a9a71db61beed2755d9916f454a61500613630 18-Aug-2012 John Scipione <jscipione@gmail.com>

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.


# 3fdab584468f3b71e8a1ecc4238ed6699cfe78cd 18-Aug-2012 John Scipione <jscipione@gmail.com>

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.


# 5b0cd98792de98b6ef3f40c432f0971ca6a5d405 17-Aug-2012 John Scipione <jscipione@gmail.com>

WIP: Create the about dialog once, hide and show, Quit() when object is destroyed.


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


# d63b75faf848697b07bfad9b71899e6caf9ab5bc 22-Feb-2012 Philippe Saint-Pierre <stpere@gmail.com>

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.


# d1901581f44663de3630b1be0d2c3b221c4b4d81 19-Mar-2011 Stephan Aßmus <superstippi@gmx.de>

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


# 4840a72fa71f80b8db50990f04b9901da16de08d 08-Dec-2010 Philippe Houdoin <philippe.houdoin@gmail.com>

Localized, part of a GCI task (thanks protonux)


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


# be3f9645a7e9141cb8cb3f7e4aa950464ddfce7f 14-Nov-2010 Axel Dörfler <axeld@pinc-software.de>

* 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


# 9bd81dbeac06afd2e923b061544f0e7129ceb8fe 14-Mar-2010 Stephan Aßmus <superstippi@gmx.de>

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


# 005e1e3073fd64a5af2b35a839b10efefc5a490a 30-Jan-2010 Philippe Saint-Pierre <stpere@gmail.com>

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


# e45d83a9c8efa0981998ca091d7930858d3cb99f 16-Jan-2010 Philippe Saint-Pierre <stpere@gmail.com>

ActivityMonitor: Style violation fixed. Thanks Axel!


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


# fbb82a62825e0c757a388f747c0ba7ade0610b4a 15-Jan-2010 Philippe Saint-Pierre <stpere@gmail.com>

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


# bb7cffd0d19375d3bde01a3628f5a31a0b33aeda 14-Jan-2010 Philippe Saint-Pierre <stpere@gmail.com>

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


# 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


# 2c604c0df5eabe4a71c1a6ef0654924f9f5e1ec7 05-Jun-2009 Axel Dörfler <axeld@pinc-software.de>

* 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


# ed1b27536bc03e0a594e114846d84c5b32cb0fb7 07-Apr-2009 Stephan Aßmus <superstippi@gmx.de>

* 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


# eee6f40b8bc0f5ced0d141628559625bb51b881f 06-Apr-2009 Alexandre Deckner <alex@zappotek.com>

* Archive/Unarchive refresh interval
* Minor style fix


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


# cce423c2034c9579c481c29738d5846a1f8f5561 06-Apr-2009 Rene Gollent <anevilyak@gmail.com>

gcc4 build fix.


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


# 7d33b63d40cb8ecbce52a065698e3b7131e0a77c 05-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* 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


# 8e26f38727f01b9130d72f2877a7391ddafc06f1 05-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* 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


# 4e78d3bc787d0f36f7a4c10dbb521b8514d563b2 28-Mar-2009 Stephan Aßmus <superstippi@gmx.de>

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


# 1bb87bd0b16cfc690abe9a3a492ff8a755f1eced 13-Mar-2009 Axel Dörfler <axeld@pinc-software.de>

* 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


# acef74741190ca20955169f7ebee045903e06750 13-Mar-2009 François Revol <revol@free.fr>

Comment out debug output.


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


# 230e32592636776ac911283b85f5e17ed2f7375c 10-Oct-2008 Axel Dörfler <axeld@pinc-software.de>

* 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


# 4ce1e1d2e4650c4ba697fd90946c38652735ede1 17-Sep-2008 Axel Dörfler <axeld@pinc-software.de>

* 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


# d421644512b9c7572f8f636f56a5589ab247858c 15-Jul-2008 Axel Dörfler <axeld@pinc-software.de>

* 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


# 84e23a5d08cdd9ec51b2dcf7aed3eb6ec8c3d685 15-Jul-2008 Axel Dörfler <axeld@pinc-software.de>

* 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


# 51591198d6bef95aae6948b6d2c879c549141648 14-Jul-2008 Axel Dörfler <axeld@pinc-software.de>

* 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


# 1201d52e6cf4fb8b7bd0a3362cb3c16fa904c037 22-Apr-2008 Axel Dörfler <axeld@pinc-software.de>

* 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


# 9c89c45059340c777c79071489172d889e7238d3 19-Apr-2008 Axel Dörfler <axeld@pinc-software.de>

* 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


# 9173ac083bfa10a1ff222450bf428da7545c0fc9 18-Apr-2008 François Revol <revol@free.fr>

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


# 5f2f72a2884e6b9ca9f1715edfe5218b520ee6af 18-Apr-2008 François Revol <revol@free.fr>

Accepts drops on legends.


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


# 79cbd22649c4df291efbc1bc89b59b3a9dbf504e 18-Apr-2008 François Revol <revol@free.fr>

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


# c28f8ea349ddd0e5b6cb9891bbb97f7bc9216965 18-Apr-2008 François Revol <revol@free.fr>

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


# 3f315b26d22f01ec0752cd634817252c268454f7 18-Apr-2008 Axel Dörfler <axeld@pinc-software.de>

* Moved the "Remove View" functionality into the popup menu of the ActivityView


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


# dc1ffc79efc4e89a886c17a1b70ec308b77361d3 18-Apr-2008 François Revol <revol@free.fr>

- fix BeOS build (it's getting nasty)
- add a media node count data source. Yes I do have work to do instead :P


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


# 43eda1cd8f591b46ae6fbe9e009d1126034defbf 17-Apr-2008 Axel Dörfler <axeld@pinc-software.de>

* Each DataSoure now has a "primary" indicator - this is used to separate
more important DataSources from less important ones.
* Made the popup less crowded based on that info.


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


# 065e8de0d5ffd72d355f2f800b88e8bc12b7c19d 17-Apr-2008 Axel Dörfler <axeld@pinc-software.de>

* Improved layout of the activity views: each view now has separate layout
items for the history and the legend, causing the history parts of all
views to be of equal size if used (which ActivityWindow now does, of course).


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


# 6f6ba87580e5a06ad8b4e9eb3e509426351fa77a 18-Apr-2008 Axel Dörfler <axeld@pinc-software.de>

* Amazing: François writes almost style compliant code! :-)
* Minor cleanup - I haven't written SystemInfoHandler, François did.


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


# 74158bb474dca9b4236178b7c48224979244c142 17-Apr-2008 François Revol <revol@free.fr>

- introduced a SystemInfoHandler class used to watch for stuff when polling isn't needed.
- used it to add a count of running apps (not exactly the same as teams).


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


# cbd4bc95732d8effec986f41fd877beec55cf19b 17-Apr-2008 François Revol <revol@free.fr>

Made ActivityMonitor buildable under BeOS (at least BONE).
This is only temporary, to help test adding data sources, so the gross #ifdef __HAIKU__ are intentional to keep BeOS-only code (without layout support) trackable. It is not fully functional but sufficient for testing and will go away later.


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


# 3a4a214197712d83f79b1f035937ada3d486dbea 13-Apr-2008 Axel Dörfler <axeld@pinc-software.de>

Some more work on the ActivityMonitor:
* Added legend.
* Added network receiving/sending DataSource.
* Now uses the new layout engine.
* Added support for per CPU DataSources, and added a per CPU CPU usage
DataSource.
* The DataSources can now be turned on and off via popup menu.
* You can now add more than one view to the window.
* The DataSources of the ActivityViews are now remembered.
* Now uses an offscreen bitmap to reduce flicker (it should now no longer
flicker with accelerated graphics).


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


# 18d3e65ebdb42c4a1a7e2963101de48107b930f1 06-Apr-2008 Axel Dörfler <axeld@pinc-software.de>

* The beginnings of an activity monitor application. Very bare and feature-less
right now, but it's already working (and shows that we better compute our
system_info::cached_pages field directly).
* I am not sure if we want to keep this app here, merge it with
ProcessController, or have it as a separate (3rdparty) app. Opinions welcome.


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