1 | #include <algorithm> |
---|---|
2 | #include "cell_group.hpp" |
3 | |
4 | void |
5 | CellGroup:: |
6 | pre_paint(void) |
7 | { |
8 | PainterWidget *p; |
9 | p = parent(); |
10 | |
11 | if (p != nullptr) |
12 | { |
13 | CellGroup *q; |
14 | q = static_cast<CellGroup*>(p); |
15 | m_skip_drawing = q->m_skip_drawing |
16 | || (q->m_bb_against_parent_min.x() > m_bb_max.x()) |
17 | || (q->m_bb_against_parent_max.x() < m_bb_min.x()) |
18 | || (q->m_bb_against_parent_min.y() > m_bb_max.y()) |
19 | || (q->m_bb_against_parent_max.y() < m_bb_min.y()); |
20 | |
21 | m_bb_against_parent_min.x() = std::max(m_bb_min.x(), q->m_bb_against_parent_min.x()); |
22 | m_bb_against_parent_min.y() = std::max(m_bb_min.y(), q->m_bb_against_parent_min.y()); |
23 | m_bb_against_parent_max.x() = std::min(m_bb_max.x(), q->m_bb_against_parent_max.x()); |
24 | m_bb_against_parent_max.y() = std::min(m_bb_max.y(), q->m_bb_against_parent_max.y()); |
25 | } |
26 | else |
27 | { |
28 | m_skip_drawing = false; |
29 | m_bb_against_parent_min = m_bb_min; |
30 | m_bb_against_parent_max = m_bb_max; |
31 | } |
32 | } |
33 |