]> sigrok.org Git - pulseview.git/blame - pv/view/rowitem.cpp
RowItemOwner: Replaced parent notification scheme
[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;
32218d3e
JH
48
49 if (_owner)
50 _owner->extents_changed(false, true);
be9e7b4b
JH
51}
52
53int RowItem::visual_v_offset() const
54{
55 return _visual_v_offset;
56}
57
58void RowItem::set_visual_v_offset(int v_offset)
59{
60 _visual_v_offset = v_offset;
32218d3e
JH
61
62 if (_owner)
63 _owner->appearance_changed(true, true);
be9e7b4b
JH
64}
65
66void RowItem::force_to_v_offset(int v_offset)
67{
68 _layout_v_offset = _visual_v_offset = v_offset;
23935421
JH
69}
70
bd9a1f17
JH
71RowItemOwner* RowItem::owner() const
72{
73 return _owner;
74}
75
eae6e30a 76void RowItem::set_owner(RowItemOwner *owner)
23935421 77{
be9e7b4b
JH
78 assert(_owner || owner);
79
80 if (_owner)
81 _visual_v_offset += _owner->owner_v_offset();
eae6e30a 82 _owner = owner;
be9e7b4b
JH
83 if (_owner)
84 _visual_v_offset -= _owner->owner_v_offset();
23935421
JH
85}
86
be9e7b4b 87int RowItem::get_visual_y() const
23935421 88{
eae6e30a 89 assert(_owner);
be9e7b4b 90 return _visual_v_offset + _owner->owner_v_offset();
23935421
JH
91}
92
0dda6fe5
JH
93QPoint RowItem::point() const
94{
be9e7b4b 95 return QPoint(0, visual_v_offset());
0dda6fe5
JH
96}
97
23935421
JH
98void RowItem::paint_back(QPainter &p, int left, int right)
99{
100 (void)p;
101 (void)left;
102 (void)right;
103}
104
105void RowItem::paint_mid(QPainter &p, int left, int right)
106{
107 (void)p;
108 (void)left;
109 (void)right;
110}
111
112void RowItem::paint_fore(QPainter &p, int left, int right)
113{
114 (void)p;
115 (void)left;
116 (void)right;
117}
118
119void RowItem::hover_point_changed()
120{
121}
122
123} // namespace view
124} // namespace pv