[haiku-commits] haiku: hrev44366 - src/kits/interface headers/private/interface

  • From: anevilyak@xxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Sat, 21 Jul 2012 01:35:40 +0200 (CEST)

hrev44366 adds 1 changeset to branch 'master'
old head: cb1f2e6525cd8c221a6b4571674d288858a394d4
new head: 902a98ad8340bbbef72bf98b6096ed091abf08f1

----------------------------------------------------------------------------

902a98a: Fix #8753.
  
  - Store whether or not the use of the horizontal scrollbar is desired
    on the class itself. If the CLV was set to use the horizontal scrollbar,
    and then asked to lay itself out while hidden, it would incorrectly assume
    the horizontal scrollbar wasn't in use, and consequently repositioned its
    views such that the horizontal scrollbar and outline view overlapped.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

----------------------------------------------------------------------------

Revision:    hrev44366
Commit:      902a98ad8340bbbef72bf98b6096ed091abf08f1
URL:         http://cgit.haiku-os.org/haiku/commit/?id=902a98a
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Fri Jul 20 23:32:04 2012 UTC

Ticket:      https://dev.haiku-os.org/ticket/8753

----------------------------------------------------------------------------

2 files changed, 20 insertions(+), 19 deletions(-)
headers/private/interface/ColumnListView.h |    4 +--
src/kits/interface/ColumnListView.cpp      |   35 ++++++++++++------------

----------------------------------------------------------------------------

diff --git a/headers/private/interface/ColumnListView.h 
b/headers/private/interface/ColumnListView.h
index 33773ac..2acbbdb 100644
--- a/headers/private/interface/ColumnListView.h
+++ b/headers/private/interface/ColumnListView.h
@@ -385,9 +385,8 @@ protected:
        virtual void                            DoLayout();
 
 private:
-                       void                            _Init(bool 
showHorizontalScrollbar);
+                       void                            _Init();
                        void                            
_GetChildViewRects(const BRect& bounds,
-                                                                       bool 
showHorizontalScrollBar,
                                                                        BRect& 
titleRect, BRect& outlineRect,
                                                                        BRect& 
vScrollBarRect,
                                                                        BRect& 
hScrollBarRect);
@@ -404,6 +403,7 @@ private:
                        bool                            fSortingEnabled;
                        float                           fLatchWidth;
                        border_style            fBorderStyle;
+                       bool                            
fShowingHorizontalScrollBar;
 };
 
 #endif // _COLUMN_LIST_VIEW_H
diff --git a/src/kits/interface/ColumnListView.cpp 
b/src/kits/interface/ColumnListView.cpp
index b31cf0c..c89e772 100644
--- a/src/kits/interface/ColumnListView.cpp
+++ b/src/kits/interface/ColumnListView.cpp
@@ -728,9 +728,10 @@ BColumnListView::BColumnListView(BRect rect, const char* 
name,
        fSelectionMessage(NULL),
        fSortingEnabled(true),
        fLatchWidth(kLatchWidth),
-       fBorderStyle(border)
+       fBorderStyle(border),
+       fShowingHorizontalScrollBar(showHorizontalScrollbar)
 {
-       _Init(showHorizontalScrollbar);
+       _Init();
 }
 
 
@@ -742,9 +743,10 @@ BColumnListView::BColumnListView(const char* name, uint32 
flags,
        fSelectionMessage(NULL),
        fSortingEnabled(true),
        fLatchWidth(kLatchWidth),
-       fBorderStyle(border)
+       fBorderStyle(border),
+       fShowingHorizontalScrollBar(showHorizontalScrollbar)
 {
-       _Init(showHorizontalScrollbar);
+       _Init();
 }
 
 
@@ -1857,8 +1859,8 @@ BColumnListView::PreferredSize()
                BRect outlineRect;
                BRect vScrollBarRect;
                BRect hScrollBarRect;
-               _GetChildViewRects(Bounds(), !fHorizontalScrollBar->IsHidden(),
-                       titleRect, outlineRect, vScrollBarRect, hScrollBarRect);
+               _GetChildViewRects(Bounds(), titleRect, outlineRect, 
vScrollBarRect,
+                       hScrollBarRect);
                // Start with the extra width for border and scrollbars etc.
                size.width = titleRect.left - Bounds().left;
                size.width += Bounds().right - titleRect.right;
@@ -1901,8 +1903,8 @@ BColumnListView::DoLayout()
        BRect outlineRect;
        BRect vScrollBarRect;
        BRect hScrollBarRect;
-       _GetChildViewRects(Bounds(), !fHorizontalScrollBar->IsHidden(),
-               titleRect, outlineRect, vScrollBarRect, hScrollBarRect);
+       _GetChildViewRects(Bounds(), titleRect, outlineRect, vScrollBarRect,
+               hScrollBarRect);
 
        fTitleView->MoveTo(titleRect.LeftTop());
        fTitleView->ResizeTo(titleRect.Width(), titleRect.Height());
@@ -1923,7 +1925,7 @@ BColumnListView::DoLayout()
 
 
 void
-BColumnListView::_Init(bool showHorizontalScrollbar)
+BColumnListView::_Init()
 {
        SetViewColor(B_TRANSPARENT_32_BIT);
 
@@ -1940,8 +1942,8 @@ BColumnListView::_Init(bool showHorizontalScrollbar)
        BRect outlineRect;
        BRect vScrollBarRect;
        BRect hScrollBarRect;
-       _GetChildViewRects(bounds, showHorizontalScrollbar, titleRect, 
outlineRect,
-               vScrollBarRect, hScrollBarRect);
+       _GetChildViewRects(bounds, titleRect, outlineRect, vScrollBarRect,
+               hScrollBarRect);
 
        fOutlineView = new OutlineView(outlineRect, &fColumns, &fSortColumns, 
this);
        AddChild(fOutlineView);
@@ -1959,7 +1961,7 @@ BColumnListView::_Init(bool showHorizontalScrollbar)
                "horizontal_scroll_bar", fTitleView, 0.0, bounds.Width(), 
B_HORIZONTAL);
        AddChild(fHorizontalScrollBar);
 
-       if (!showHorizontalScrollbar)
+       if (!fShowingHorizontalScrollBar)
                fHorizontalScrollBar->Hide();
 
        fOutlineView->FixScrollBar(true);
@@ -1967,9 +1969,8 @@ BColumnListView::_Init(bool showHorizontalScrollbar)
 
 
 void
-BColumnListView::_GetChildViewRects(const BRect& bounds,
-       bool showHorizontalScrollbar, BRect& titleRect, BRect& outlineRect,
-       BRect& vScrollBarRect, BRect& hScrollBarRect)
+BColumnListView::_GetChildViewRects(const BRect& bounds, BRect& titleRect,
+       BRect& outlineRect, BRect& vScrollBarRect, BRect& hScrollBarRect)
 {
        titleRect = bounds;
        titleRect.bottom = titleRect.top + kTitleHeight;
@@ -1980,7 +1981,7 @@ BColumnListView::_GetChildViewRects(const BRect& bounds,
        outlineRect = bounds;
        outlineRect.top = titleRect.bottom + 1.0;
        outlineRect.right -= B_V_SCROLL_BAR_WIDTH;
-       if (showHorizontalScrollbar)
+       if (fShowingHorizontalScrollBar)
                outlineRect.bottom -= B_H_SCROLL_BAR_HEIGHT;
 
        vScrollBarRect = bounds;
@@ -1989,7 +1990,7 @@ BColumnListView::_GetChildViewRects(const BRect& bounds,
 #endif
 
        vScrollBarRect.left = vScrollBarRect.right - B_V_SCROLL_BAR_WIDTH;
-       if (showHorizontalScrollbar)
+       if (fShowingHorizontalScrollBar)
                vScrollBarRect.bottom -= B_H_SCROLL_BAR_HEIGHT;
 
        hScrollBarRect = bounds;


Other related posts:

  • » [haiku-commits] haiku: hrev44366 - src/kits/interface headers/private/interface - anevilyak