diff options
author | Sebastian Geerken <devnull@localhost> | 2016-04-23 12:36:04 +0200 |
---|---|---|
committer | Sebastian Geerken <devnull@localhost> | 2016-04-23 12:36:04 +0200 |
commit | cd616fc93a5adb072d282f7afbdbe4b057f9d6fc (patch) | |
tree | 8073831411ce59ce6ca9dc430bb7506d0ba18467 /dw/ui.cc | |
parent | eb40226852118f6b24b594c307a6e12b369ceb04 (diff) |
GROWS: new options allowDecreaseWidth and allowDecreaseHeight for size correction.
Diffstat (limited to 'dw/ui.cc')
-rw-r--r-- | dw/ui.cc | 27 |
1 files changed, 19 insertions, 8 deletions
@@ -78,9 +78,13 @@ int Embed::getAvailHeightOfChild (Widget *child, bool forceValue) void Embed::correctRequisitionOfChild (Widget *child, Requisition *requisition, - void (*splitHeightFun) (int, int*, int*)) + void (*splitHeightFun) (int, int*, int*), + bool allowDecreaseWidth, + bool allowDecreaseHeight) { - resource->correctRequisitionOfChild (child, requisition, splitHeightFun); + resource->correctRequisitionOfChild (child, requisition, splitHeightFun, + allowDecreaseWidth, + allowDecreaseHeight); } void Embed::correctExtremesOfChild (Widget *child, Extremes *extremes, @@ -244,7 +248,9 @@ int Resource::getAvailHeightOfChild (Widget *child, bool forceValue) void Resource::correctRequisitionOfChild (Widget *child, Requisition *requisition, void (*splitHeightFun) (int, int*, - int*)) + int*), + bool allowDecreaseWidth, + bool allowDecreaseHeight) { // Only used when the resource contains other dillo widgets. misc::notImplemented ("Resource::correctRequisitionOfChild"); @@ -416,7 +422,9 @@ int ComplexButtonResource::getAvailHeightOfChild (Widget *child, void ComplexButtonResource::correctRequisitionOfChild (Widget *child, Requisition *requisition, void (*splitHeightFun) - (int, int*, int*)) + (int, int*, int*), + bool allowDecreaseWidth, + bool allowDecreaseHeight) { // Similar to Widget::correctRequisitionOfChild, but for percentage // the relief has to be considered. @@ -428,15 +436,18 @@ void ComplexButtonResource::correctRequisitionOfChild (Widget *child, - getEmbed()->boxDiffWidth () - 2 * reliefXThickness (), 0); - requisition->width = + int newWidth = child->applyPerWidth (baseWidth, child->getStyle()->width); + requisition->width = allowDecreaseWidth ? + newWidth : misc::max (requisition->width, newWidth); } } else - getEmbed()->correctReqWidthOfChildNoRec (child, requisition); + getEmbed()->correctReqWidthOfChildNoRec (child, requisition, + allowDecreaseWidth); // TODO Percentage heights are ignored again. - getEmbed()->correctReqHeightOfChildNoRec (child, requisition, - splitHeightFun); + getEmbed()->correctReqHeightOfChildNoRec(child, requisition, + splitHeightFun, allowDecreaseWidth); } |