X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;ds=sidebyside;f=pv%2Fview%2Ftracetreeitemowner.hpp;h=6beae5e9003efc94ce080b0280af807a7f73c585;hb=143d322d0c92ea5c2cc51facc37b68787362c244;hp=b26b1e7e46d3e81846f96fb5b2682e19c48f857a;hpb=4800cf9a4b346ec4553234aa1a3e10bf783bf965;p=pulseview.git
diff --git a/pv/view/tracetreeitemowner.hpp b/pv/view/tracetreeitemowner.hpp
index b26b1e7..6beae5e 100644
--- a/pv/view/tracetreeitemowner.hpp
+++ b/pv/view/tracetreeitemowner.hpp
@@ -14,56 +14,49 @@
* 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 "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 > 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 +66,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 >
+ trace_tree_child_items() const;
/**
* Clears the list of child items.
@@ -95,43 +89,7 @@ public:
*/
void remove_child_item(std::shared_ptr 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;
-
- /**
- * Creates a list of decendant signals filtered by type.
- */
- template
- std::vector< std::shared_ptr > list_by_type() {
- std::vector< std::shared_ptr > items;
- for (const auto &r : *this) {
- std::shared_ptr p = std::dynamic_pointer_cast(r);
- if (p)
- items.push_back(p);
- }
-
- return items;
- }
+ virtual void restack_items();
/**
* Computes the vertical extents of the contents of this row item owner.
@@ -139,18 +97,22 @@ public:
*/
std::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