aboutsummaryrefslogtreecommitdiff
path: root/dw/ruler.cc
diff options
context:
space:
mode:
Diffstat (limited to 'dw/ruler.cc')
-rw-r--r--dw/ruler.cc41
1 files changed, 38 insertions, 3 deletions
diff --git a/dw/ruler.cc b/dw/ruler.cc
index 115dfaa5..ccf58baa 100644
--- a/dw/ruler.cc
+++ b/dw/ruler.cc
@@ -26,19 +26,54 @@
namespace dw {
+int Ruler::CLASS_ID = -1;
+
Ruler::Ruler ()
{
- setFlags (BLOCK_LEVEL);
- unsetFlags (HAS_CONTENTS);
+ DBG_OBJ_CREATE ("dw::Ruler");
+ registerName ("dw::Ruler", &CLASS_ID);
+}
+
+Ruler::~Ruler ()
+{
+ DBG_OBJ_DELETE ();
}
void Ruler::sizeRequestImpl (core::Requisition *requisition)
{
- requisition->width = getStyle()->boxDiffWidth ();
+ requisition->width =
+ lout::misc::max (getAvailWidth (true), getStyle()->boxDiffWidth ());
requisition->ascent = getStyle()->boxOffsetY ();
requisition->descent = getStyle()->boxRestHeight ();
}
+void Ruler::getExtremesImpl (core::Extremes *extremes)
+{
+ extremes->minWidth = extremes->maxWidth = getStyle()->boxDiffWidth ();
+ extremes->minWidthIntrinsic = extremes->minWidth;
+ extremes->maxWidthIntrinsic = extremes->maxWidth;
+ correctExtremes (extremes, false);
+ extremes->adjustmentWidth =
+ lout::misc::min (extremes->minWidthIntrinsic, extremes->minWidth);
+}
+
+bool Ruler::isBlockLevel ()
+{
+ return true;
+}
+
+void Ruler::containerSizeChangedForChildren ()
+{
+ DBG_OBJ_ENTER0 ("resize", 0, "containerSizeChangedForChildren");
+ // Nothing to do.
+ DBG_OBJ_LEAVE ();
+}
+
+bool Ruler::usesAvailWidth ()
+{
+ return true;
+}
+
void Ruler::draw (core::View *view, core::Rectangle *area)
{
drawWidgetBox (view, area, false);