]> sigrok.org Git - pulseview.git/blame - pv/view/rowitem.cpp
RowItem: Split appart visual and layout v offsets
[pulseview.git] / pv / view / rowitem.cpp
CommitLineData
23935421
JH
1/*
2 * This file is part of the PulseView project.
3 *
4 * Copyright (C) 2013 Joel Holdsworth <joel@airwebreathe.org.uk>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19 */
20
21#include <assert.h>
22
23#include "view.h"
24
25#include "rowitem.h"
26
27namespace pv {
28namespace view {
29
30RowItem::RowItem() :
eae6e30a 31 _owner(NULL),
be9e7b4b
JH
32 _layout_v_offset(0),
33 _visual_v_offset(0)
23935421
JH
34{
35}
36
be9e7b4b 37int RowItem::layout_v_offset() const
23935421 38{
be9e7b4b 39 return _layout_v_offset;
23935421
JH
40}
41
be9e7b4b 42void RowItem::set_layout_v_offset(int v_offset)
23935421 43{
be9e7b4b
JH
44 if (_layout_v_offset == v_offset)
45 return;
46
47 _layout_v_offset = v_offset;
48}
49
50int RowItem::visual_v_offset() const
51{
52 return _visual_v_offset;
53}
54
55void RowItem::set_visual_v_offset(int v_offset)
56{
57 _visual_v_offset = v_offset;
58}
59
60void RowItem::force_to_v_offset(int v_offset)
61{
62 _layout_v_offset = _visual_v_offset = v_offset;
23935421
JH
63}
64
bd9a1f17
JH
65RowItemOwner* RowItem::owner() const
66{
67 return _owner;
68}
69
eae6e30a 70void RowItem::set_owner(RowItemOwner *owner)
23935421 71{
be9e7b4b
JH
72 assert(_owner || owner);
73
74 if (_owner)
75 _visual_v_offset += _owner->owner_v_offset();
eae6e30a 76 _owner = owner;
be9e7b4b
JH
77 if (_owner)
78 _visual_v_offset -= _owner->owner_v_offset();
23935421
JH
79}
80
be9e7b4b 81int RowItem::get_visual_y() const
23935421 82{
eae6e30a 83 assert(_owner);
be9e7b4b 84 return _visual_v_offset + _owner->owner_v_offset();
23935421
JH
85}
86
0dda6fe5
JH
87QPoint RowItem::point() const
88{
be9e7b4b 89 return QPoint(0, visual_v_offset());
0dda6fe5
JH
90}
91
23935421
JH
92void RowItem::paint_back(QPainter &p, int left, int right)
93{
94 (void)p;
95 (void)left;
96 (void)right;
97}
98
99void RowItem::paint_mid(QPainter &p, int left, int right)
100{
101 (void)p;
102 (void)left;
103 (void)right;
104}
105
106void RowItem::paint_fore(QPainter &p, int left, int right)
107{
108 (void)p;
109 (void)left;
110 (void)right;
111}
112
113void RowItem::hover_point_changed()
114{
115}
116
117} // namespace view
118} // namespace pv