diff options
Diffstat (limited to 'dw/ruler.cc')
-rw-r--r-- | dw/ruler.cc | 41 |
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); |