]> git.saurik.com Git - wxWidgets.git/commitdiff
move ScrollWindow() implementation to the base class and call private DoScrollHorz...
authorVadim Zeitlin <vadim@wxwidgets.org>
Fri, 5 Dec 2008 22:43:37 +0000 (22:43 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Fri, 5 Dec 2008 22:43:37 +0000 (22:43 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57135 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/headerctrl.h
include/wx/msw/headerctrl.h
src/common/headerctrlcmn.cpp
src/msw/headerctrl.cpp

index 7a4441611e108b656d452b25cf0e9263c5dbe983..3d0773f097322ae79625e56977b5d5abd22849d6 100644 (file)
@@ -141,12 +141,18 @@ public:
     // the user doesn't need to TAB to this control
     virtual bool AcceptsFocusFromKeyboard() const { return false; }
 
+    // this method is only overridden in order to synchronize the control with
+    // the main window when it is scrolled, the derived class must implement
+    // DoScrollHorz()
+    virtual void ScrollWindow(int dx, int dy, const wxRect *rect = NULL);
+
 private:
     virtual unsigned int DoGetCount() const = 0;
     virtual void DoInsert(const wxHeaderColumn& col, unsigned int idx) = 0;
     virtual void DoDelete(unsigned int idx) = 0;
     virtual void DoShowColumn(unsigned int idx, bool show) = 0;
     virtual void DoShowSortIndicator(unsigned int idx, int sortOrder) = 0;
+    virtual void DoScrollHorz(int dx) = 0;
 
     // this window doesn't look nice with the border so don't use it by default
     virtual wxBorder GetDefaultBorder() const { return wxBORDER_NONE; }
index 8a2c388417665bcbaf04ea7fc063d21a50d87dbb..1f3ee6d4e06fac73d36f4dcd7244696ca74147eb 100644 (file)
@@ -47,10 +47,6 @@ public:
     virtual ~wxHeaderCtrl();
 
 
-    // this method is only overridden in order to synchronize the control with
-    // the main window when it is scrolled
-    virtual void ScrollWindow(int dx, int dy, const wxRect *rect = NULL);
-
 private:
     // implement base class pure virtuals
     virtual unsigned int DoGetCount() const;
@@ -58,6 +54,7 @@ private:
     virtual void DoDelete(unsigned int idx);
     virtual void DoShowColumn(unsigned int idx, bool show);
     virtual void DoShowSortIndicator(unsigned int idx, int sortOrder);
+    virtual void DoScrollHorz(int dx);
 
     // override wxWindow methods which must be implemented by a new control
     virtual wxSize DoGetBestSize() const;
index 8afffa59a08d0dac7876e9b8e1f3a6d01b4c3c31..80ada16bc813ec8fd72464fa0b6a5af6ddf19f15 100644 (file)
@@ -42,3 +42,18 @@ void wxHeaderCtrlBase::DeleteAllColumns()
 }
 
 
+void wxHeaderCtrlBase::ScrollWindow(int dx,
+                                    int WXUNUSED_UNLESS_DEBUG(dy),
+                                    const wxRect * WXUNUSED_UNLESS_DEBUG(rect))
+
+{
+    // this doesn't make sense at all
+    wxASSERT_MSG( !dy, "header window can't be scrolled vertically" );
+
+    // this would actually be nice to support for "frozen" headers but it isn't
+    // supported currently
+    wxASSERT_MSG( !rect, "header window can't be scrolled partially" );
+
+    DoScrollHorz(dx);
+}
+
index 6330b225e1e9f3e0efc8434df9ca9e74ce3aaa6e..5d141a49cbdd27876f6aa1cbf137d4e07a4f3405 100644 (file)
@@ -90,22 +90,14 @@ wxHeaderCtrl::~wxHeaderCtrl()
 // wxHeaderCtrl scrolling
 // ----------------------------------------------------------------------------
 
-// as the native control doesn't support offsetting its contents, we use a hack
-// here to make it appear correctly when the parent is scrolled: instead of
-// scrolling or repainting we simply move the control window itself
-void wxHeaderCtrl::ScrollWindow(int dx,
-                                int WXUNUSED_UNLESS_DEBUG(dy),
-                                const wxRect * WXUNUSED_UNLESS_DEBUG(rect))
+void wxHeaderCtrl::DoScrollHorz(int dx)
 {
-    // this doesn't make sense at all
-    wxASSERT_MSG( !dy, "header window can't be scrolled vertically" );
-
-    // this would actually be nice to support for "frozen" headers
-    wxASSERT_MSG( !rect, "header window can't be scrolled partially" );
-
-    // offset the window by the scroll increment to the left and increment its
-    // width to still extend to the right boundary to compensate for it (notice
-    // that dx is negative when scrolling to the right)
+    // as the native control doesn't support offsetting its contents, we use a
+    // hack here to make it appear correctly when the parent is scrolled:
+    // instead of scrolling or repainting we simply move the control window
+    // itself: to be precise, offset it by the scroll increment to the left and
+    // increment its width to still extend to the right boundary to compensate
+    // for it (notice that dx is negative when scrolling to the right)
     SetSize(GetPosition().x + dx, -1, GetSize().x - dx, -1, wxSIZE_USE_EXISTING);
 }