aboutsummaryrefslogtreecommitdiff
path: root/dw/oofposabslikemgr.hh
diff options
context:
space:
mode:
Diffstat (limited to 'dw/oofposabslikemgr.hh')
-rw-r--r--dw/oofposabslikemgr.hh61
1 files changed, 61 insertions, 0 deletions
diff --git a/dw/oofposabslikemgr.hh b/dw/oofposabslikemgr.hh
new file mode 100644
index 00000000..f9e94a5d
--- /dev/null
+++ b/dw/oofposabslikemgr.hh
@@ -0,0 +1,61 @@
+#ifndef __DW_OOFPOSABSLIKEMGR_HH__
+#define __DW_OOFPOSABSLIKEMGR_HH__
+
+#include "oofpositionedmgr.hh"
+
+namespace dw {
+
+namespace oof {
+
+class OOFPosAbsLikeMgr: public OOFPositionedMgr
+{
+protected:
+ virtual int containerBoxOffsetX () = 0;
+ virtual int containerBoxOffsetY () = 0;
+ virtual int containerBoxRestWidth () = 0;
+ virtual int containerBoxRestHeight () = 0;
+
+ inline int containerBoxDiffWidth ()
+ { return containerBoxOffsetX () + containerBoxRestWidth (); }
+ inline int containerBoxDiffHeight ()
+ { return containerBoxOffsetY () + containerBoxRestHeight (); }
+
+ bool haveExtremesChanged ();
+
+ void sizeAllocateChildren ();
+
+ bool posXAbsolute (Child *child);
+ bool posYAbsolute (Child *child);
+
+ void calcPosAndSizeChildOfChild (Child *child, int refWidth, int refHeight,
+ int *xPtr, int *yPtr, int *widthPtr,
+ int *ascentPtr, int *descentPtr);
+ void calcHPosAndSizeChildOfChild (Child *child, int refWidth,
+ int origChildWidth, int *xPtr,
+ int *widthPtr);
+ void calcVPosAndSizeChildOfChild (Child *child, int refHeight,
+ int origChildAscent, int origChildDescent,
+ int *yPtr, int *ascentPtr,
+ int *descentPtr);
+
+
+public:
+ OOFPosAbsLikeMgr (OOFAwareWidget *container);
+ ~OOFPosAbsLikeMgr ();
+
+ void calcWidgetRefSize (core::Widget *widget, core::Requisition *size);
+
+ void getSize (core::Requisition *containerReq, int *oofWidth,
+ int *oofHeight);
+ void getExtremes (core::Extremes *containerExtr,
+ int *oofMinWidth, int *oofMaxWidth);
+
+ int getAvailWidthOfChild (core::Widget *child, bool forceValue);
+ int getAvailHeightOfChild (core::Widget *child, bool forceValue);
+};
+
+} // namespace oof
+
+} // namespace dw
+
+#endif // __DW_OOFPOSABSLIKEMGR_HH__