diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2017-01-20 12:08:58 +0100 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2017-01-24 22:45:22 +0100 |
commit | d1c1d8df614672b00a9835ae04566b12d21be697 (patch) | |
tree | 7e79d4081e64bc013c18cc8f4d7ec8656eb0ecff /libs/canvas/canvas | |
parent | f2c31a3098addc1ef2731e4db7132a821302bbc4 (diff) |
add basic data members and methods for adding an explicit size allocation for Canvas::Item
Diffstat (limited to 'libs/canvas/canvas')
-rw-r--r-- | libs/canvas/canvas/item.h | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/libs/canvas/canvas/item.h b/libs/canvas/canvas/item.h index 517b4401ba..a480ec38a1 100644 --- a/libs/canvas/canvas/item.h +++ b/libs/canvas/canvas/item.h @@ -136,7 +136,18 @@ public: ScrollGroup* scroll_parent() const { return _scroll_parent; } - Rect bounding_box () const; + /* item implementations can override this if they need to */ + virtual Rect size_request() const { return bounding_box (true); } + void size_allocate (Rect const&); + + /** bounding box is the public API to get the size of the item. + If @param for_own_purposes is false, then it will return the + allocated bounding box (if there is one) in preference to the + one that would naturally be computed by the item. + */ + Rect bounding_box (bool for_own_purposes = false) const; + Rect allocation() const { return _allocation; } + Coord height() const; Coord width() const; @@ -281,6 +292,7 @@ protected: mutable Rect _bounding_box; /** true if _bounding_box might be out of date, false if its definitely not */ mutable bool _bounding_box_dirty; + Rect _allocation; /* XXX: this is a bit grubby */ std::map<std::string, void *> _data; |