62 lines
1.9 KiB
C++
62 lines
1.9 KiB
C++
#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__
|