X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fview%2Ftracetreeitemowner.hpp;h=cfe7bf7b5f5cf0d69ec4acb2faeb61055743092c;hp=b26b1e7e46d3e81846f96fb5b2682e19c48f857a;hb=33094993339188a3baef302fb09eff6bf6bb6779;hpb=4800cf9a4b346ec4553234aa1a3e10bf783bf965 diff --git a/pv/view/tracetreeitemowner.hpp b/pv/view/tracetreeitemowner.hpp index b26b1e7e..cfe7bf7b 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,12 @@ 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,69 +85,29 @@ 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); + void remove_child_item(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. * @return A pair containing the minimum and maximum y-values. */ - std::pair v_extents() const; - - virtual void restack_items(); + pair v_extents() const; 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