De-virtualize BView::InvalidateLayout() and introduce LayoutInvalidated() hook, like BLayout.

This commit is contained in:
Alex Wilson
2011-10-28 14:16:43 -06:00
parent b38ea98f52
commit eee4243d35
29 changed files with 138 additions and 131 deletions
+2 -1
View File
@@ -71,7 +71,8 @@ class BBox : public BView {
virtual BSize MaxSize(); virtual BSize MaxSize();
virtual BSize PreferredSize(); virtual BSize PreferredSize();
virtual void InvalidateLayout(bool descendants = false); protected:
virtual void LayoutInvalidated(bool descendants = false);
virtual void DoLayout(); virtual void DoLayout();
private: private:
+3 -1
View File
@@ -63,13 +63,15 @@ public:
virtual status_t GetSupportedSuites(BMessage* message); virtual status_t GetSupportedSuites(BMessage* message);
virtual status_t Perform(perform_code d, void* arg); virtual status_t Perform(perform_code d, void* arg);
virtual void InvalidateLayout(bool descendants = false);
virtual BSize MinSize(); virtual BSize MinSize();
virtual BSize MaxSize(); virtual BSize MaxSize();
virtual BSize PreferredSize(); virtual BSize PreferredSize();
protected:
virtual void LayoutInvalidated(bool descendants = false);
private: private:
virtual void _ReservedButton1(); virtual void _ReservedButton1();
virtual void _ReservedButton2(); virtual void _ReservedButton2();
+3 -2
View File
@@ -52,8 +52,6 @@ public:
float* _height); float* _height);
virtual void ResizeToPreferred(); virtual void ResizeToPreferred();
virtual void InvalidateLayout(bool descendants = false);
virtual BSize MinSize(); virtual BSize MinSize();
virtual BSize MaxSize(); virtual BSize MaxSize();
virtual BSize PreferredSize(); virtual BSize PreferredSize();
@@ -70,6 +68,9 @@ public:
virtual status_t Perform(perform_code code, void* data); virtual status_t Perform(perform_code code, void* data);
protected:
virtual void LayoutInvalidated(bool descendants = false);
private: private:
// FBC padding // FBC padding
virtual void _ReservedCheckBox1(); virtual void _ReservedCheckBox1();
+2 -1
View File
@@ -41,7 +41,6 @@ public:
virtual BSize MinSize(); virtual BSize MinSize();
virtual BSize MaxSize(); virtual BSize MaxSize();
virtual BSize PreferredSize(); virtual BSize PreferredSize();
virtual void InvalidateLayout(bool descendants = false);
virtual void ResizeToPreferred(); virtual void ResizeToPreferred();
virtual void FrameMoved(BPoint newPosition); virtual void FrameMoved(BPoint newPosition);
virtual void FrameResized(float newWidth, float newHeight); virtual void FrameResized(float newWidth, float newHeight);
@@ -62,6 +61,8 @@ public:
virtual void SetFont(const BFont* font, virtual void SetFont(const BFont* font,
uint32 mask = B_FONT_ALL); uint32 mask = B_FONT_ALL);
protected:
virtual void LayoutInvalidated(bool descendants = false);
private: private:
// FBC padding and forbidden methods // FBC padding and forbidden methods
+2 -1
View File
@@ -548,10 +548,10 @@ public:
virtual void GetHeightForWidth(float width, float* min, virtual void GetHeightForWidth(float width, float* min,
float* max, float* preferred); float* max, float* preferred);
void InvalidateLayout(bool descendants = false);
virtual void SetLayout(BLayout* layout); virtual void SetLayout(BLayout* layout);
BLayout* GetLayout() const; BLayout* GetLayout() const;
virtual void InvalidateLayout(bool descendants = false);
void EnableLayoutInvalidation(); void EnableLayoutInvalidation();
void DisableLayoutInvalidation(); void DisableLayoutInvalidation();
bool IsLayoutValid() const; bool IsLayoutValid() const;
@@ -565,6 +565,7 @@ public:
class Private; class Private;
protected: protected:
virtual void LayoutInvalidated(bool descendants = false);
virtual void DoLayout(); virtual void DoLayout();
public: public:
@@ -19,7 +19,7 @@ enum {
PERFORM_CODE_HAS_HEIGHT_FOR_WIDTH = 1004, PERFORM_CODE_HAS_HEIGHT_FOR_WIDTH = 1004,
PERFORM_CODE_GET_HEIGHT_FOR_WIDTH = 1005, PERFORM_CODE_GET_HEIGHT_FOR_WIDTH = 1005,
PERFORM_CODE_SET_LAYOUT = 1006, PERFORM_CODE_SET_LAYOUT = 1006,
PERFORM_CODE_INVALIDATE_LAYOUT = 1007, PERFORM_CODE_LAYOUT_INVALIDATED = 1007,
PERFORM_CODE_DO_LAYOUT = 1008, PERFORM_CODE_DO_LAYOUT = 1008,
PERFORM_CODE_GET_TOOL_TIP_AT = 1009, PERFORM_CODE_GET_TOOL_TIP_AT = 1009,
@@ -41,7 +41,7 @@ struct perform_data_set_layout {
BLayout* layout; BLayout* layout;
}; };
struct perform_data_invalidate_layout { struct perform_data_layout_invalidated {
bool descendants; bool descendants;
}; };
+5 -6
View File
@@ -487,11 +487,11 @@ BBox::Perform(perform_code code, void* _data)
BBox::SetLayout(data->layout); BBox::SetLayout(data->layout);
return B_OK; return B_OK;
} }
case PERFORM_CODE_INVALIDATE_LAYOUT: case PERFORM_CODE_LAYOUT_INVALIDATED:
{ {
perform_data_invalidate_layout* data perform_data_layout_invalidated* data
= (perform_data_invalidate_layout*)_data; = (perform_data_layout_invalidated*)_data;
BBox::InvalidateLayout(data->descendants); BBox::LayoutInvalidated(data->descendants);
return B_OK; return B_OK;
} }
case PERFORM_CODE_DO_LAYOUT: case PERFORM_CODE_DO_LAYOUT:
@@ -537,10 +537,9 @@ BBox::PreferredSize()
void void
BBox::InvalidateLayout(bool descendants) BBox::LayoutInvalidated(bool descendants)
{ {
fLayoutData->valid = false; fLayoutData->valid = false;
BView::InvalidateLayout(descendants);
} }
+12 -14
View File
@@ -650,11 +650,11 @@ BButton::Perform(perform_code code, void* _data)
BButton::SetLayout(data->layout); BButton::SetLayout(data->layout);
return B_OK; return B_OK;
} }
case PERFORM_CODE_INVALIDATE_LAYOUT: case PERFORM_CODE_LAYOUT_INVALIDATED:
{ {
perform_data_invalidate_layout* data perform_data_layout_invalidated* data
= (perform_data_invalidate_layout*)_data; = (perform_data_layout_invalidated*)_data;
BButton::InvalidateLayout(data->descendants); BButton::LayoutInvalidated(data->descendants);
return B_OK; return B_OK;
} }
case PERFORM_CODE_DO_LAYOUT: case PERFORM_CODE_DO_LAYOUT:
@@ -668,16 +668,6 @@ BButton::Perform(perform_code code, void* _data)
} }
void
BButton::InvalidateLayout(bool descendants)
{
// invalidate cached preferred size
fPreferredSize.Set(-1, -1);
BControl::InvalidateLayout(descendants);
}
BSize BSize
BButton::MinSize() BButton::MinSize()
{ {
@@ -702,6 +692,14 @@ BButton::PreferredSize()
} }
void
BButton::LayoutInvalidated(bool descendants)
{
// invalidate cached preferred size
fPreferredSize.Set(-1, -1);
}
void BButton::_ReservedButton1() {} void BButton::_ReservedButton1() {}
void BButton::_ReservedButton2() {} void BButton::_ReservedButton2() {}
void BButton::_ReservedButton3() {} void BButton::_ReservedButton3() {}
+12 -14
View File
@@ -440,16 +440,6 @@ BCheckBox::ResizeToPreferred()
} }
void
BCheckBox::InvalidateLayout(bool descendants)
{
// invalidate cached preferred size
fPreferredSize.Set(B_SIZE_UNSET, B_SIZE_UNSET);
BControl::InvalidateLayout(descendants);
}
BSize BSize
BCheckBox::MinSize() BCheckBox::MinSize()
{ {
@@ -558,11 +548,11 @@ BCheckBox::Perform(perform_code code, void* _data)
BCheckBox::SetLayout(data->layout); BCheckBox::SetLayout(data->layout);
return B_OK; return B_OK;
} }
case PERFORM_CODE_INVALIDATE_LAYOUT: case PERFORM_CODE_LAYOUT_INVALIDATED:
{ {
perform_data_invalidate_layout* data perform_data_layout_invalidated* data
= (perform_data_invalidate_layout*)_data; = (perform_data_layout_invalidated*)_data;
BCheckBox::InvalidateLayout(data->descendants); BCheckBox::LayoutInvalidated(data->descendants);
return B_OK; return B_OK;
} }
case PERFORM_CODE_DO_LAYOUT: case PERFORM_CODE_DO_LAYOUT:
@@ -576,6 +566,14 @@ BCheckBox::Perform(perform_code code, void* _data)
} }
void
BCheckBox::LayoutInvalidated(bool descendants)
{
// invalidate cached preferred size
fPreferredSize.Set(B_SIZE_UNSET, B_SIZE_UNSET);
}
// #pragma mark - FBC padding // #pragma mark - FBC padding
+4 -4
View File
@@ -937,11 +937,11 @@ BColorControl::Perform(perform_code code, void* _data)
BColorControl::SetLayout(data->layout); BColorControl::SetLayout(data->layout);
return B_OK; return B_OK;
} }
case PERFORM_CODE_INVALIDATE_LAYOUT: case PERFORM_CODE_LAYOUT_INVALIDATED:
{ {
perform_data_invalidate_layout* data perform_data_layout_invalidated* data
= (perform_data_invalidate_layout*)_data; = (perform_data_layout_invalidated*)_data;
BColorControl::InvalidateLayout(data->descendants); BColorControl::LayoutInvalidated(data->descendants);
return B_OK; return B_OK;
} }
case PERFORM_CODE_DO_LAYOUT: case PERFORM_CODE_DO_LAYOUT:
+4 -4
View File
@@ -497,11 +497,11 @@ BControl::Perform(perform_code code, void* _data)
BControl::SetLayout(data->layout); BControl::SetLayout(data->layout);
return B_OK; return B_OK;
} }
case PERFORM_CODE_INVALIDATE_LAYOUT: case PERFORM_CODE_LAYOUT_INVALIDATED:
{ {
perform_data_invalidate_layout* data perform_data_layout_invalidated* data
= (perform_data_invalidate_layout*)_data; = (perform_data_layout_invalidated*)_data;
BControl::InvalidateLayout(data->descendants); BControl::LayoutInvalidated(data->descendants);
return B_OK; return B_OK;
} }
case PERFORM_CODE_DO_LAYOUT: case PERFORM_CODE_DO_LAYOUT:
+4 -4
View File
@@ -491,11 +491,11 @@ BDragger::Perform(perform_code code, void* _data)
BDragger::SetLayout(data->layout); BDragger::SetLayout(data->layout);
return B_OK; return B_OK;
} }
case PERFORM_CODE_INVALIDATE_LAYOUT: case PERFORM_CODE_LAYOUT_INVALIDATED:
{ {
perform_data_invalidate_layout* data perform_data_layout_invalidated* data
= (perform_data_invalidate_layout*)_data; = (perform_data_layout_invalidated*)_data;
BDragger::InvalidateLayout(data->descendants); BDragger::LayoutInvalidated(data->descendants);
return B_OK; return B_OK;
} }
case PERFORM_CODE_DO_LAYOUT: case PERFORM_CODE_DO_LAYOUT:
+4 -4
View File
@@ -1309,11 +1309,11 @@ BListView::Perform(perform_code code, void* _data)
BListView::SetLayout(data->layout); BListView::SetLayout(data->layout);
return B_OK; return B_OK;
} }
case PERFORM_CODE_INVALIDATE_LAYOUT: case PERFORM_CODE_LAYOUT_INVALIDATED:
{ {
perform_data_invalidate_layout* data perform_data_layout_invalidated* data
= (perform_data_invalidate_layout*)_data; = (perform_data_layout_invalidated*)_data;
BListView::InvalidateLayout(data->descendants); BListView::LayoutInvalidated(data->descendants);
return B_OK; return B_OK;
} }
case PERFORM_CODE_DO_LAYOUT: case PERFORM_CODE_DO_LAYOUT:
+4 -4
View File
@@ -1236,11 +1236,11 @@ BMenu::Perform(perform_code code, void* _data)
BMenu::SetLayout(data->layout); BMenu::SetLayout(data->layout);
return B_OK; return B_OK;
} }
case PERFORM_CODE_INVALIDATE_LAYOUT: case PERFORM_CODE_LAYOUT_INVALIDATED:
{ {
perform_data_invalidate_layout* data perform_data_layout_invalidated* data
= (perform_data_invalidate_layout*)_data; = (perform_data_layout_invalidated*)_data;
BMenu::InvalidateLayout(data->descendants); BMenu::LayoutInvalidated(data->descendants);
return B_OK; return B_OK;
} }
case PERFORM_CODE_DO_LAYOUT: case PERFORM_CODE_DO_LAYOUT:
+4 -4
View File
@@ -438,11 +438,11 @@ BMenuBar::Perform(perform_code code, void* _data)
BMenuBar::SetLayout(data->layout); BMenuBar::SetLayout(data->layout);
return B_OK; return B_OK;
} }
case PERFORM_CODE_INVALIDATE_LAYOUT: case PERFORM_CODE_LAYOUT_INVALIDATED:
{ {
perform_data_invalidate_layout* data perform_data_layout_invalidated* data
= (perform_data_invalidate_layout*)_data; = (perform_data_layout_invalidated*)_data;
BMenuBar::InvalidateLayout(data->descendants); BMenuBar::LayoutInvalidated(data->descendants);
return B_OK; return B_OK;
} }
case PERFORM_CODE_DO_LAYOUT: case PERFORM_CODE_DO_LAYOUT:
+4 -4
View File
@@ -872,11 +872,11 @@ BMenuField::Perform(perform_code code, void* _data)
BMenuField::SetLayout(data->layout); BMenuField::SetLayout(data->layout);
return B_OK; return B_OK;
} }
case PERFORM_CODE_INVALIDATE_LAYOUT: case PERFORM_CODE_LAYOUT_INVALIDATED:
{ {
perform_data_invalidate_layout* data perform_data_layout_invalidated* data
= (perform_data_invalidate_layout*)_data; = (perform_data_layout_invalidated*)_data;
BMenuField::InvalidateLayout(data->descendants); BMenuField::LayoutInvalidated(data->descendants);
return B_OK; return B_OK;
} }
case PERFORM_CODE_DO_LAYOUT: case PERFORM_CODE_DO_LAYOUT:
+4 -4
View File
@@ -555,11 +555,11 @@ BOutlineListView::Perform(perform_code code, void* _data)
BOutlineListView::SetLayout(data->layout); BOutlineListView::SetLayout(data->layout);
return B_OK; return B_OK;
} }
case PERFORM_CODE_INVALIDATE_LAYOUT: case PERFORM_CODE_LAYOUT_INVALIDATED:
{ {
perform_data_invalidate_layout* data perform_data_layout_invalidated* data
= (perform_data_invalidate_layout*)_data; = (perform_data_layout_invalidated*)_data;
BOutlineListView::InvalidateLayout(data->descendants); BOutlineListView::LayoutInvalidated(data->descendants);
return B_OK; return B_OK;
} }
case PERFORM_CODE_DO_LAYOUT: case PERFORM_CODE_DO_LAYOUT:
+4 -4
View File
@@ -458,11 +458,11 @@ BPictureButton::Perform(perform_code code, void* _data)
BPictureButton::SetLayout(data->layout); BPictureButton::SetLayout(data->layout);
return B_OK; return B_OK;
} }
case PERFORM_CODE_INVALIDATE_LAYOUT: case PERFORM_CODE_LAYOUT_INVALIDATED:
{ {
perform_data_invalidate_layout* data perform_data_layout_invalidated* data
= (perform_data_invalidate_layout*)_data; = (perform_data_layout_invalidated*)_data;
BPictureButton::InvalidateLayout(data->descendants); BPictureButton::LayoutInvalidated(data->descendants);
return B_OK; return B_OK;
} }
case PERFORM_CODE_DO_LAYOUT: case PERFORM_CODE_DO_LAYOUT:
+4 -4
View File
@@ -211,11 +211,11 @@ BPopUpMenu::Perform(perform_code code, void* _data)
BPopUpMenu::SetLayout(data->layout); BPopUpMenu::SetLayout(data->layout);
return B_OK; return B_OK;
} }
case PERFORM_CODE_INVALIDATE_LAYOUT: case PERFORM_CODE_LAYOUT_INVALIDATED:
{ {
perform_data_invalidate_layout* data perform_data_layout_invalidated* data
= (perform_data_invalidate_layout*)_data; = (perform_data_layout_invalidated*)_data;
BPopUpMenu::InvalidateLayout(data->descendants); BPopUpMenu::LayoutInvalidated(data->descendants);
return B_OK; return B_OK;
} }
case PERFORM_CODE_DO_LAYOUT: case PERFORM_CODE_DO_LAYOUT:
+4 -4
View File
@@ -541,11 +541,11 @@ BRadioButton::Perform(perform_code code, void* _data)
BRadioButton::SetLayout(data->layout); BRadioButton::SetLayout(data->layout);
return B_OK; return B_OK;
} }
case PERFORM_CODE_INVALIDATE_LAYOUT: case PERFORM_CODE_LAYOUT_INVALIDATED:
{ {
perform_data_invalidate_layout* data perform_data_layout_invalidated* data
= (perform_data_invalidate_layout*)_data; = (perform_data_layout_invalidated*)_data;
BRadioButton::InvalidateLayout(data->descendants); BRadioButton::LayoutInvalidated(data->descendants);
return B_OK; return B_OK;
} }
case PERFORM_CODE_DO_LAYOUT: case PERFORM_CODE_DO_LAYOUT:
+4 -4
View File
@@ -1282,11 +1282,11 @@ BScrollBar::Perform(perform_code code, void* _data)
BScrollBar::SetLayout(data->layout); BScrollBar::SetLayout(data->layout);
return B_OK; return B_OK;
} }
case PERFORM_CODE_INVALIDATE_LAYOUT: case PERFORM_CODE_LAYOUT_INVALIDATED:
{ {
perform_data_invalidate_layout* data perform_data_layout_invalidated* data
= (perform_data_invalidate_layout*)_data; = (perform_data_layout_invalidated*)_data;
BScrollBar::InvalidateLayout(data->descendants); BScrollBar::LayoutInvalidated(data->descendants);
return B_OK; return B_OK;
} }
case PERFORM_CODE_DO_LAYOUT: case PERFORM_CODE_DO_LAYOUT:
+4 -4
View File
@@ -650,11 +650,11 @@ BScrollView::Perform(perform_code code, void* _data)
BScrollView::SetLayout(data->layout); BScrollView::SetLayout(data->layout);
return B_OK; return B_OK;
} }
case PERFORM_CODE_INVALIDATE_LAYOUT: case PERFORM_CODE_LAYOUT_INVALIDATED:
{ {
perform_data_invalidate_layout* data perform_data_layout_invalidated* data
= (perform_data_invalidate_layout*)_data; = (perform_data_layout_invalidated*)_data;
BScrollView::InvalidateLayout(data->descendants); BScrollView::LayoutInvalidated(data->descendants);
return B_OK; return B_OK;
} }
case PERFORM_CODE_DO_LAYOUT: case PERFORM_CODE_DO_LAYOUT:
+4 -4
View File
@@ -333,11 +333,11 @@ BSlider::Perform(perform_code code, void* _data)
BSlider::SetLayout(data->layout); BSlider::SetLayout(data->layout);
return B_OK; return B_OK;
} }
case PERFORM_CODE_INVALIDATE_LAYOUT: case PERFORM_CODE_LAYOUT_INVALIDATED:
{ {
perform_data_invalidate_layout* data perform_data_layout_invalidated* data
= (perform_data_invalidate_layout*)_data; = (perform_data_layout_invalidated*)_data;
BSlider::InvalidateLayout(data->descendants); BSlider::LayoutInvalidated(data->descendants);
return B_OK; return B_OK;
} }
case PERFORM_CODE_DO_LAYOUT: case PERFORM_CODE_DO_LAYOUT:
+4 -4
View File
@@ -701,11 +701,11 @@ BStatusBar::Perform(perform_code code, void* _data)
BStatusBar::SetLayout(data->layout); BStatusBar::SetLayout(data->layout);
return B_OK; return B_OK;
} }
case PERFORM_CODE_INVALIDATE_LAYOUT: case PERFORM_CODE_LAYOUT_INVALIDATED:
{ {
perform_data_invalidate_layout* data perform_data_layout_invalidated* data
= (perform_data_invalidate_layout*)_data; = (perform_data_layout_invalidated*)_data;
BStatusBar::InvalidateLayout(data->descendants); BStatusBar::LayoutInvalidated(data->descendants);
return B_OK; return B_OK;
} }
case PERFORM_CODE_DO_LAYOUT: case PERFORM_CODE_DO_LAYOUT:
+12 -14
View File
@@ -185,16 +185,6 @@ BStringView::PreferredSize()
} }
void
BStringView::InvalidateLayout(bool descendants)
{
// invalidate cached preferred size
fPreferredSize.Set(-1, -1);
BView::InvalidateLayout(descendants);
}
void void
BStringView::ResizeToPreferred() BStringView::ResizeToPreferred()
{ {
@@ -359,6 +349,14 @@ BStringView::SetFont(const BFont* font, uint32 mask)
} }
void
BStringView::LayoutInvalidated(bool descendants)
{
// invalidate cached preferred size
fPreferredSize.Set(-1, -1);
}
// #pragma mark - // #pragma mark -
@@ -400,11 +398,11 @@ BStringView::Perform(perform_code code, void* _data)
BStringView::SetLayout(data->layout); BStringView::SetLayout(data->layout);
return B_OK; return B_OK;
} }
case PERFORM_CODE_INVALIDATE_LAYOUT: case PERFORM_CODE_LAYOUT_INVALIDATED:
{ {
perform_data_invalidate_layout* data perform_data_layout_invalidated* data
= (perform_data_invalidate_layout*)_data; = (perform_data_layout_invalidated*)_data;
BStringView::InvalidateLayout(data->descendants); BStringView::LayoutInvalidated(data->descendants);
return B_OK; return B_OK;
} }
case PERFORM_CODE_DO_LAYOUT: case PERFORM_CODE_DO_LAYOUT:
+4 -4
View File
@@ -965,11 +965,11 @@ BTextControl::Perform(perform_code code, void* _data)
BTextControl::SetLayout(data->layout); BTextControl::SetLayout(data->layout);
return B_OK; return B_OK;
} }
case PERFORM_CODE_INVALIDATE_LAYOUT: case PERFORM_CODE_LAYOUT_INVALIDATED:
{ {
perform_data_invalidate_layout* data perform_data_layout_invalidated* data
= (perform_data_invalidate_layout*)_data; = (perform_data_layout_invalidated*)_data;
BTextControl::InvalidateLayout(data->descendants); BTextControl::LayoutInvalidated(data->descendants);
return B_OK; return B_OK;
} }
case PERFORM_CODE_DO_LAYOUT: case PERFORM_CODE_DO_LAYOUT:
+4 -4
View File
@@ -1122,11 +1122,11 @@ BTextView::Perform(perform_code code, void* _data)
BTextView::SetLayout(data->layout); BTextView::SetLayout(data->layout);
return B_OK; return B_OK;
} }
case PERFORM_CODE_INVALIDATE_LAYOUT: case PERFORM_CODE_LAYOUT_INVALIDATED:
{ {
perform_data_invalidate_layout* data perform_data_layout_invalidated* data
= (perform_data_invalidate_layout*)_data; = (perform_data_layout_invalidated*)_data;
BTextView::InvalidateLayout(data->descendants); BTextView::LayoutInvalidated(data->descendants);
return B_OK; return B_OK;
} }
case PERFORM_CODE_DO_LAYOUT: case PERFORM_CODE_DO_LAYOUT:
+15 -7
View File
@@ -4481,11 +4481,11 @@ BView::Perform(perform_code code, void* _data)
BView::SetLayout(data->layout); BView::SetLayout(data->layout);
return B_OK; return B_OK;
} }
case PERFORM_CODE_INVALIDATE_LAYOUT: case PERFORM_CODE_LAYOUT_INVALIDATED:
{ {
perform_data_invalidate_layout* data perform_data_layout_invalidated* data
= (perform_data_invalidate_layout*)_data; = (perform_data_layout_invalidated*)_data;
BView::InvalidateLayout(data->descendants); BView::LayoutInvalidated(data->descendants);
return B_OK; return B_OK;
} }
case PERFORM_CODE_DO_LAYOUT: case PERFORM_CODE_DO_LAYOUT:
@@ -4697,6 +4697,7 @@ BView::InvalidateLayout(bool descendants)
fLayoutData->fLayoutValid = false; fLayoutData->fLayoutValid = false;
fLayoutData->fMinMaxValid = false; fLayoutData->fMinMaxValid = false;
LayoutInvalidated(descendants);
if (descendants) { if (descendants) {
for (BView* child = fFirstChild; for (BView* child = fFirstChild;
@@ -4790,6 +4791,13 @@ BView::Relayout()
} }
void
BView::LayoutInvalidated(bool descendants)
{
// hook method
}
void void
BView::DoLayout() BView::DoLayout()
{ {
@@ -5772,10 +5780,10 @@ _ReservedView8__5BView(BView* view, BLayout* layout)
extern "C" void extern "C" void
_ReservedView9__5BView(BView* view, bool descendants) _ReservedView9__5BView(BView* view, bool descendants)
{ {
// InvalidateLayout() // LayoutInvalidated()
perform_data_invalidate_layout data; perform_data_layout_invalidated data;
data.descendants = descendants; data.descendants = descendants;
view->Perform(PERFORM_CODE_INVALIDATE_LAYOUT, &data); view->Perform(PERFORM_CODE_LAYOUT_INVALIDATED, &data);
} }