From 6beb27d4a1043bcd3a4cf2b3250d2c2548760642 Mon Sep 17 00:00:00 2001 From: Rene Gollent Date: Wed, 16 Nov 2011 22:19:02 -0500 Subject: [PATCH] Add {Get,Set}ItemVisible() accessors and setters. --- headers/os/interface/SplitView.h | 3 +++ src/kits/interface/SplitLayout.cpp | 31 ++++++++++++++++++++++++++++++ src/kits/interface/SplitLayout.h | 3 +++ src/kits/interface/SplitView.cpp | 14 ++++++++++++++ 4 files changed, 51 insertions(+) diff --git a/headers/os/interface/SplitView.h b/headers/os/interface/SplitView.h index ecc680a851..3ca9d9642b 100644 --- a/headers/os/interface/SplitView.h +++ b/headers/os/interface/SplitView.h @@ -48,6 +48,9 @@ public: void SetCollapsible(int32 first, int32 last, bool collapsible); + bool GetItemVisible(int32 index) const; + void SetItemVisible(int32 index, bool visible); + // void AddChild(BView* child); void AddChild(BView* child, BView* sibling = NULL); bool AddChild(BView* child, float weight); diff --git a/src/kits/interface/SplitLayout.cpp b/src/kits/interface/SplitLayout.cpp index ac681b1a47..f2974f0235 100644 --- a/src/kits/interface/SplitLayout.cpp +++ b/src/kits/interface/SplitLayout.cpp @@ -465,6 +465,11 @@ BSplitLayout::SetItemWeight(BLayoutItem* item, float weight) bool BSplitLayout::GetCollapsible(int32 index) const { + if (index < 0) + index = 0; + if (index > CountItems()) + index = CountItems() - 1; + return _ItemLayoutInfo(ItemAt(index))->isCollapsible; } @@ -496,6 +501,32 @@ BSplitLayout::SetCollapsible(int32 first, int32 last, bool collapsible) } +bool +BSplitLayout::GetItemVisible(int32 index) const +{ + if (index < 0) + index = 0; + if (index > CountItems()) + index = CountItems() - 1; + + return _ItemLayoutInfo(ItemAt(index))->isVisible; +} + + +void +BSplitLayout::SetItemVisible(int32 index, bool visible) +{ + if (index < 0) + index = 0; + if (index > CountItems()) + index = CountItems() - 1; + + ItemAt(index)->SetVisible(visible); + + InvalidateLayout(true); +} + + BSize BSplitLayout::BaseMinSize() { diff --git a/src/kits/interface/SplitLayout.h b/src/kits/interface/SplitLayout.h index 28112e97f5..b58096114a 100644 --- a/src/kits/interface/SplitLayout.h +++ b/src/kits/interface/SplitLayout.h @@ -67,6 +67,9 @@ public: void SetCollapsible(int32 first, int32 last, bool collapsible); + bool GetItemVisible(int32 index) const; + void SetItemVisible(int32 index, bool visible); + virtual BSize BaseMinSize(); virtual BSize BaseMaxSize(); virtual BSize BasePreferredSize(); diff --git a/src/kits/interface/SplitView.cpp b/src/kits/interface/SplitView.cpp index eda916bcc0..77803f6cac 100644 --- a/src/kits/interface/SplitView.cpp +++ b/src/kits/interface/SplitView.cpp @@ -180,6 +180,20 @@ BSplitView::SetCollapsible(int32 first, int32 last, bool collapsible) } +bool +BSplitView::GetItemVisible(int32 index) const +{ + return fSplitLayout->GetItemVisible(index); +} + + +void +BSplitView::SetItemVisible(int32 index, bool visible) +{ + fSplitLayout->SetItemVisible(index, visible); +} + + void BSplitView::AddChild(BView* child, BView* sibling) {