[haiku-commits] r33587 - in haiku/trunk: headers/private/interface src/kits/interface

  • From: ingo_weinhold@xxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Thu, 15 Oct 2009 06:31:42 +0200 (CEST)

Author: bonefish
Date: 2009-10-15 06:31:42 +0200 (Thu, 15 Oct 2009)
New Revision: 33587
Changeset: http://dev.haiku-os.org/changeset/33587/haiku

Modified:
   haiku/trunk/headers/private/interface/ColumnListView.h
   haiku/trunk/src/kits/interface/ColumnListView.cpp
Log:
Added ColumnAt(BPoint) version.


Modified: haiku/trunk/headers/private/interface/ColumnListView.h
===================================================================
--- haiku/trunk/headers/private/interface/ColumnListView.h      2009-10-14 
12:51:19 UTC (rev 33586)
+++ haiku/trunk/headers/private/interface/ColumnListView.h      2009-10-15 
04:31:42 UTC (rev 33587)
@@ -297,6 +297,7 @@
                        void                            RemoveColumn(BColumn* 
column);
                        int32                           CountColumns() const;
                        BColumn*                        ColumnAt(int32 index) 
const;
+                       BColumn*                        ColumnAt(BPoint point) 
const;
                        void                            
SetColumnVisible(BColumn* column,
                                                                        bool 
isVisible);
                        void                            SetColumnVisible(int32, 
bool);

Modified: haiku/trunk/src/kits/interface/ColumnListView.cpp
===================================================================
--- haiku/trunk/src/kits/interface/ColumnListView.cpp   2009-10-14 12:51:19 UTC 
(rev 33586)
+++ haiku/trunk/src/kits/interface/ColumnListView.cpp   2009-10-15 04:31:42 UTC 
(rev 33587)
@@ -1118,6 +1118,26 @@
 }
 
 
+BColumn*
+BColumnListView::ColumnAt(BPoint point) const
+{
+       float left = MAX(kLeftMargin, LatchWidth());
+
+       for (int i = 0; BColumn* column = (BColumn*)fColumns.ItemAt(i); i++) {
+               if (!column->IsVisible())
+                       continue;
+
+               float right = left + column->Width();
+               if (point.x >= left && point.x <= right)
+                       return column;
+
+               left = right + 1;
+       }
+
+       return NULL;
+}
+
+
 void
 BColumnListView::SetColumnVisible(BColumn* column, bool visible)
 {


Other related posts:

  • » [haiku-commits] r33587 - in haiku/trunk: headers/private/interface src/kits/interface - ingo_weinhold