* 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 <http://www.gnu.org/licenses/>.
*/
-#ifndef PULSEVIEW_PV_VIEW_HEADER_H
-#define PULSEVIEW_PV_VIEW_HEADER_H
+#ifndef PULSEVIEW_PV_VIEWS_TRACEVIEW_HEADER_HPP
+#define PULSEVIEW_PV_VIEWS_TRACEVIEW_HEADER_HPP
#include <list>
#include <memory>
#include "marginwidget.hpp"
+using std::shared_ptr;
+using std::vector;
+
namespace pv {
-namespace view {
+namespace views {
+namespace TraceView {
-class RowItem;
+class TraceTreeItem;
class View;
+class ViewItem;
class Header : public MarginWidget
{
QSize sizeHint() const;
+ /**
+ * The extended area that the header widget would like to be sized to.
+ * @remarks This area is the area specified by sizeHint, extended by
+ * the area to overlap the viewport.
+ */
+ QSize extended_size_hint() const;
+
/**
* The horizontal offset, relative to the left edge of the widget,
* where the arrows of the trace labels end.
static const int BaselineOffset;
private:
- std::shared_ptr<pv::view::RowItem> get_mouse_over_row_item(
- const QPoint &pt);
-
- void clear_selection();
+ /**
+ * Gets the row items.
+ */
+ vector< shared_ptr<ViewItem> > items();
- void show_popup(const std::shared_ptr<RowItem> &item);
+ /**
+ * Gets the first view item which has a label that contains @c pt .
+ * @param pt the point to search with.
+ * @return the view item that has been found, or and empty
+ * @c shared_ptr if no item was found.
+ */
+ shared_ptr<ViewItem> get_mouse_over_item(const QPoint &pt);
private:
void paintEvent(QPaintEvent *event);
private:
- void mouseLeftPressEvent(QMouseEvent *event);
- void mousePressEvent(QMouseEvent * event);
-
- void mouseLeftReleaseEvent(QMouseEvent *event);
- void mouseReleaseEvent(QMouseEvent *event);
-
- void mouseMoveEvent(QMouseEvent *event);
-
- void leaveEvent(QEvent *event);
-
void contextMenuEvent(QContextMenuEvent *event);
- void keyPressEvent(QKeyEvent *e);
+ void keyPressEvent(QKeyEvent *event);
private Q_SLOTS:
- void on_signals_moved();
-
void on_group();
void on_ungroup();
-
-Q_SIGNALS:
- void signals_moved();
-
-private:
- QPoint mouse_point_;
- QPoint mouse_down_point_;
- std::shared_ptr<RowItem> mouse_down_item_;
- bool dragging_;
};
-} // namespace view
+} // namespace TraceView
+} // namespace views
} // namespace pv
-#endif // PULSEVIEW_PV_VIEW_HEADER_H
+#endif // PULSEVIEW_PV_VIEWS_TRACEVIEW_HEADER_HPP