Rapicorn - Experimental UI Toolkit - Source Code
13.07.0
|
00001 // Licensed GNU LGPL v3 or later: http://www.gnu.org/licenses/lgpl.html 00002 #ifndef __RAPICORN_ARRANGEMENT_IMPL_HH__ 00003 #define __RAPICORN_ARRANGEMENT_IMPL_HH__ 00004 00005 #include <ui/arrangement.hh> 00006 #include <ui/container.hh> 00007 00008 namespace Rapicorn { 00009 00010 class ArrangementImpl : public virtual MultiContainerImpl, public virtual Arrangement { 00011 Point origin_; 00012 float origin_hanchor_; 00013 float origin_vanchor_; 00014 Rect child_area_; 00015 public: 00016 explicit ArrangementImpl (); 00017 virtual ~ArrangementImpl (); 00018 virtual double xorigin () const { return origin_.x; } 00019 virtual void xorigin (double v) { origin_.x = v; invalidate(); } 00020 virtual double yorigin () const { return origin_.y; } 00021 virtual void yorigin (double v) { origin_.y = v; invalidate(); } 00022 virtual float origin_hanchor () const { return origin_hanchor_; } 00023 virtual void origin_hanchor (float align) { origin_hanchor_ = align; invalidate(); } 00024 virtual float origin_vanchor () const { return origin_vanchor_; } 00025 virtual void origin_vanchor (float align) { origin_vanchor_ = align; invalidate(); } 00026 virtual Rect child_area (); 00027 protected: 00028 virtual void size_request (Requisition &requisition); 00029 virtual void size_allocate (Allocation area, bool changed); 00030 Allocation local_child_allocation (WidgetImpl &child, 00031 double width, 00032 double height); 00033 }; 00034 00035 } // Rapicorn 00036 00037 #endif /* __RAPICORN_ARRANGEMENT_IMPL_HH__ */