X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Fview%2Ftracetreeitemowner.hpp;h=92aae37f5590b12a5080083c2f3dbba73815106a;hb=12ea3616767553ee0a615f14bbcb8ec614589e34;hp=4c0043f66dd9b7b51bad1e188fe7d30297e9ed59;hpb=a7dafb5c5f6ba13cf3aaa63ca491f0100e3b1153;p=pulseview.git
diff --git a/pv/view/tracetreeitemowner.hpp b/pv/view/tracetreeitemowner.hpp
index 4c0043f..92aae37 100644
--- a/pv/view/tracetreeitemowner.hpp
+++ b/pv/view/tracetreeitemowner.hpp
@@ -14,56 +14,53 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ * along with this program; if not, see .
*/
-#ifndef PULSEVIEW_PV_VIEW_TRACETREEITEMOWNER_HPP
-#define PULSEVIEW_PV_VIEW_TRACETREEITEMOWNER_HPP
+#ifndef PULSEVIEW_PV_VIEWS_TRACEVIEW_TRACETREEITEMOWNER_HPP
+#define PULSEVIEW_PV_VIEWS_TRACEVIEW_TRACETREEITEMOWNER_HPP
-#include
-#include
+#include "viewitemowner.hpp"
+#include "tracetreeitem.hpp"
-#include "rowitemiterator.hpp"
+using std::pair;
+using std::shared_ptr;
+using std::vector;
namespace pv {
class Session;
-namespace view {
+namespace views {
+namespace TraceView {
class TraceTreeItem;
class View;
-class TraceTreeItemOwner
+class TraceTreeItemOwner : public ViewItemOwner
{
-public:
- typedef std::vector< std::shared_ptr > item_list;
- typedef RowItemIterator iterator;
- typedef RowItemIterator const_iterator;
-
public:
/**
- * Returns the session of the onwer.
+ * Returns the view of the owner.
*/
- virtual pv::Session& session() = 0;
+ virtual View* view() = 0;
/**
- * Returns the session of the owner.
+ * Returns the view of the owner.
*/
- virtual const pv::Session& session() const = 0;
+ virtual const View* view() const = 0;
+
+ virtual int owner_visual_v_offset() const = 0;
/**
- * Returns the view of the owner.
+ * Returns the session of the owner.
*/
- virtual pv::view::View* view() = 0;
+ virtual Session& session() = 0;
/**
- * Returns the view of the owner.
+ * Returns the session of the owner.
*/
- virtual const pv::view::View* view() const = 0;
-
- virtual int owner_visual_v_offset() const = 0;
+ virtual const Session& session() const = 0;
/**
* Returns the number of nested parents that this row item owner has.
@@ -73,12 +70,13 @@ public:
/**
* Returns a list of row items owned by this object.
*/
- virtual item_list& child_items();
+ virtual const item_list& child_items() const;
/**
* Returns a list of row items owned by this object.
*/
- virtual const item_list& child_items() const;
+ vector< shared_ptr >
+ trace_tree_child_items() const;
/**
* Clears the list of child items.
@@ -88,75 +86,37 @@ public:
/**
* Adds a child item to this object.
*/
- void add_child_item(std::shared_ptr item);
+ void add_child_item(shared_ptr item);
/**
* Removes a child item from this object.
*/
- void remove_child_item(std::shared_ptr item);
-
- /**
- * Returns a depth-first iterator at the beginning of the child TraceTreeItem
- * tree.
- */
- iterator begin();
+ void remove_child_item(shared_ptr item);
- /**
- * Returns a depth-first iterator at the end of the child TraceTreeItem tree.
- */
- iterator end();
-
- /**
- * Returns a constant depth-first iterator at the beginning of the
- * child TraceTreeItem tree.
- */
- const_iterator begin() const;
-
- /**
- * Returns a constant depth-first iterator at the end of the child
- * TraceTreeItem tree.
- */
- const_iterator end() const;
-
- /**
- * Makes a list of row item owners of all the row items that are
- * decendants of this item.
- */
- std::set< TraceTreeItemOwner* > list_row_item_owners();
-
- /**
- * Creates a list of decendant signals filtered by type.
- */
- template
- std::set< std::shared_ptr > list_by_type() {
- std::set< std::shared_ptr > items;
- for (const auto &r : *this) {
- std::shared_ptr p = std::dynamic_pointer_cast(r);
- if (p)
- items.insert(p);
- }
-
- return items;
- }
+ virtual void restack_items();
/**
* Computes the vertical extents of the contents of this row item owner.
* @return A pair containing the minimum and maximum y-values.
*/
- std::pair v_extents() const;
+ pair v_extents() const;
- virtual void restack_items();
+ /*
+ * Reassigns background color states to all its children, thereby
+ * providing them with alternating backgrounds.
+ * @param next_bgcolour_state First brightness state to use.
+ * @return The next brightness state to use.
+ */
+ bool reassign_bgcolour_states(bool next_bgcolour_state);
public:
virtual void row_item_appearance_changed(bool label, bool content) = 0;
virtual void extents_changed(bool horz, bool vert) = 0;
-
-private:
- item_list items_;
};
-} // view
-} // pv
+} // namespace TraceView
+} // namespace views
+} // namespace pv
-#endif // PULSEVIEW_PV_VIEW_TRACETREEITEMOWNER_HPP
+#endif // PULSEVIEW_PV_VIEWS_TRACEVIEW_TRACETREEITEMOWNER_HPP