From: Mark Johnson <mrj@le...> - 2003-08-18 21:25:51
recently, while trying to view the output of several edge detectors in
the same window in a coherent manner, it came to my attention that
there's currently no good way to show/hide large sets of soviews, or
even to be able to quickly alter the style associated with a large set
of soviews while still maintaining individual highlighting.
to that end, i altered vgui_displaybase and added a map structure to
match string descriptors to structs containing vectors of soviews as well
as boolean values to indicate show/hide status and style override, and a
pointer to a vgui_style object for the overriding style. this map exists in
addition to the standard all-encompassing vector of soviews.
so now, in the altered vgui_displaybase, it's possible for an
application to query the vgui_displaybase_tableau for a list of strings
that indicate the present soview groupings. that list can be presented
to a user in a dialog so that a user could show/hide groups of soviews
or 'false-color' some outputs to differentiate them on-screen.
the altered vgui_displaybase_tableau is completely backward-compatible
with all existing code -- the add function just becomes add( vgui_soview
* obj , vcl_string which = "default" ) so that any unspecified adds just
get added to a generic grouping.
so my basic question is... would this addition to
vgui_displaybase_tableau be a welcomed changed? or is the solution of
having a map with strings as keys seem like too much of a 'hack' to be
incorporated at such a low level? if the latter seems true, does anyone
have any alternate suggestions for a way that the above goals can be
accomplished? and please note that adding and removing ~20,000 soviews
from a tableau to show/hide those objects is not an option just do to