aboutsummaryrefslogtreecommitdiff
path: root/dw/ruler.cc
diff options
context:
space:
mode:
Diffstat (limited to 'dw/ruler.cc')
-rw-r--r--dw/ruler.cc30
1 files changed, 27 insertions, 3 deletions
diff --git a/dw/ruler.cc b/dw/ruler.cc
index 115dfaa5..3fdbfb6d 100644
--- a/dw/ruler.cc
+++ b/dw/ruler.cc
@@ -28,17 +28,41 @@ namespace dw {
Ruler::Ruler ()
{
- setFlags (BLOCK_LEVEL);
- unsetFlags (HAS_CONTENTS);
}
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);
+}
+
+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);