]> sigrok.org Git - pulseview.git/blobdiff - pv/view/tracetreeitemowner.hpp
Change namespace for the trace view and implement ViewBase
[pulseview.git] / pv / view / tracetreeitemowner.hpp
index 905746d6c5f956ab2787886efcb4b14ccfeea5a1..b5f1a3ad7124ac45cc994e752581ae959917eace 100644 (file)
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
  */
 
-#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 <memory>
-#include <vector>
-
-#include "rowitemiterator.hpp"
+#include "viewitemowner.hpp"
+#include "tracetreeitem.hpp"
 
 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<TraceTreeItem> > item_list;
-       typedef RowItemIterator<TraceTreeItemOwner, TraceTreeItem> iterator;
-       typedef RowItemIterator<const TraceTreeItemOwner, TraceTreeItem> 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 +67,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;
+       std::vector< std::shared_ptr<TraceTreeItem> >
+       trace_tree_child_items() const;
 
        /**
         * Clears the list of child items.
@@ -95,40 +90,7 @@ public:
         */
        void remove_child_item(std::shared_ptr<TraceTreeItem> item);
 
-       /**
-        * Returns a depth-first iterator at the beginning of the child TraceTreeItem
-        * tree.
-        */
-       iterator begin();
-
-       /**
-        * 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<class T>
-       std::set< std::shared_ptr<T> > list_by_type();
+       virtual void restack_items();
 
        /**
         * Computes the vertical extents of the contents of this row item owner.
@@ -136,18 +98,22 @@ public:
         */
        std::pair<int, int> 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