Renamed _CheckSizeLimits() to UpdateSizeLimits() and made it public.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39495 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold 2010-11-19 11:38:45 +00:00
parent 39c1cc127a
commit 58bee54422
2 changed files with 27 additions and 18 deletions

View File

@ -204,6 +204,7 @@ public:
float minHeight, float maxHeight);
void GetSizeLimits(float* minWidth, float* maxWidth,
float* minHeight, float* maxHeight);
void UpdateSizeLimits();
status_t SetDecoratorSettings(const BMessage& settings);
status_t GetDecoratorSettings(BMessage* settings) const;
@ -350,8 +351,6 @@ private:
void _GetDecoratorSize(float* _borderWidth,
float* _tabHeight) const;
void _CheckSizeLimits();
private:
char* fTitle;
int32 _unused0;

View File

@ -1445,7 +1445,7 @@ FrameMoved(origin);
case B_LAYOUT_WINDOW:
{
_CheckSizeLimits();
UpdateSizeLimits();
// do the actual layout
fTopView->Layout(false);
@ -1560,6 +1560,30 @@ BWindow::GetSizeLimits(float* _minWidth, float* _maxWidth, float* _minHeight,
}
/*! Updates the window's size limits from the minimum and maximum sizes of its
top view.
Is a no-op, unless the \c B_AUTO_UPDATE_SIZE_LIMITS window flag is set.
The method is called automatically after a layout invalidation. Since it is
invoked asynchronously, calling this method manually is necessary, if it is
desired to adjust the limits (and as a possible side effect the window size)
earlier (e.g. before the first Show()).
*/
void
BWindow::UpdateSizeLimits()
{
if ((fFlags & B_AUTO_UPDATE_SIZE_LIMITS) != 0) {
// Get min/max constraints of the top view and enforce window
// size limits respectively.
BSize minSize = fTopView->MinSize();
BSize maxSize = fTopView->MaxSize();
SetSizeLimits(minSize.width, maxSize.width,
minSize.height, maxSize.height);
}
}
status_t
BWindow::SetDecoratorSettings(const BMessage& settings)
{
@ -2501,7 +2525,7 @@ void
BWindow::CenterIn(const BRect& rect)
{
// Set size limits now if needed
_CheckSizeLimits();
UpdateSizeLimits();
MoveTo(BLayoutUtils::AlignInFrame(rect, Size(),
BAlignment(B_ALIGN_HORIZONTAL_CENTER,
@ -3963,20 +3987,6 @@ BWindow::_GetDecoratorSize(float* _borderWidth, float* _tabHeight) const
}
void
BWindow::_CheckSizeLimits()
{
if (fFlags & B_AUTO_UPDATE_SIZE_LIMITS) {
// Get min/max constraints of the top view and enforce window
// size limits respectively.
BSize minSize = fTopView->MinSize();
BSize maxSize = fTopView->MaxSize();
SetSizeLimits(minSize.width, maxSize.width,
minSize.height, maxSize.height);
}
}
// #pragma mark - C++ binary compatibility kludge