X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e946566e73a57c20de8705732638ee78bfb87a33..6f026b5b63fe7ccb025e84509886f74772b9df13:/src/generic/headerctrlg.cpp diff --git a/src/generic/headerctrlg.cpp b/src/generic/headerctrlg.cpp index 4c70667487..6dcccfdce8 100644 --- a/src/generic/headerctrlg.cpp +++ b/src/generic/headerctrlg.cpp @@ -3,7 +3,6 @@ // Purpose: generic wxHeaderCtrl implementation // Author: Vadim Zeitlin // Created: 2008-12-03 -// RCS-ID: $Id$ // Copyright: (c) 2008 Vadim Zeitlin // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// @@ -39,8 +38,6 @@ namespace { -const unsigned NO_SORT = (unsigned)-1; - const unsigned COL_NONE = (unsigned)-1; } // anonymous namespace @@ -182,7 +179,7 @@ unsigned int wxHeaderCtrl::FindColumnAtPoint(int x, bool *onSeparator) const pos += col.GetWidth(); - // if the column is resizeable, check if we're approximatively over the + // if the column is resizable, check if we're approximatively over the // line separating it from the next column // // TODO: don't hardcode sensitivity @@ -258,26 +255,14 @@ void wxHeaderCtrl::ClearMarkers() dcover.Clear(); } -void wxHeaderCtrl::UpdateResizingMarker(int xPhysical) -{ - wxClientDC dc(this); - - wxDCOverlay dcover(m_overlay, &dc); - dcover.Clear(); - - // unfortunately drawing the marker over the parent window doesn't work as - // it's usually covered by another window (the main control view) so just - // draw the marker over the header itself, even if it makes it not very - // useful - dc.SetPen(*wxLIGHT_GREY_PEN); - dc.DrawLine(xPhysical, 0, xPhysical, GetClientSize().y); -} - void wxHeaderCtrl::EndDragging() { - ClearMarkers(); - - m_overlay.Reset(); + // We currently only use markers for reordering, not for resizing + if (IsReordering()) + { + ClearMarkers(); + m_overlay.Reset(); + } // don't use the special dragging cursor any more SetCursor(wxNullCursor); @@ -292,7 +277,7 @@ void wxHeaderCtrl::CancelDragging() unsigned int& col = IsResizing() ? m_colBeingResized : m_colBeingReordered; - wxHeaderCtrlEvent event(wxEVT_COMMAND_HEADER_DRAGGING_CANCELLED, GetId()); + wxHeaderCtrlEvent event(wxEVT_HEADER_DRAGGING_CANCELLED, GetId()); event.SetEventObject(this); event.SetColumn(col); @@ -317,8 +302,8 @@ int wxHeaderCtrl::ConstrainByMinWidth(unsigned int col, int& xPhysical) void wxHeaderCtrl::StartOrContinueResizing(unsigned int col, int xPhysical) { - wxHeaderCtrlEvent event(IsResizing() ? wxEVT_COMMAND_HEADER_RESIZING - : wxEVT_COMMAND_HEADER_BEGIN_RESIZE, + wxHeaderCtrlEvent event(IsResizing() ? wxEVT_HEADER_RESIZING + : wxEVT_HEADER_BEGIN_RESIZE, GetId()); event.SetEventObject(this); event.SetColumn(col); @@ -344,8 +329,6 @@ void wxHeaderCtrl::StartOrContinueResizing(unsigned int col, int xPhysical) } //else: we had already done the above when we started - // This results in ugly flicker - // UpdateResizingMarker(xPhysical); } } @@ -357,7 +340,7 @@ void wxHeaderCtrl::EndResizing(int xPhysical) ReleaseMouse(); - wxHeaderCtrlEvent event(wxEVT_COMMAND_HEADER_END_RESIZE, GetId()); + wxHeaderCtrlEvent event(wxEVT_HEADER_END_RESIZE, GetId()); event.SetEventObject(this); event.SetColumn(m_colBeingResized); event.SetWidth(ConstrainByMinWidth(m_colBeingResized, xPhysical)); @@ -398,7 +381,7 @@ void wxHeaderCtrl::UpdateReorderingMarker(int xPhysical) void wxHeaderCtrl::StartReordering(unsigned int col, int xPhysical) { - wxHeaderCtrlEvent event(wxEVT_COMMAND_HEADER_BEGIN_REORDER, GetId()); + wxHeaderCtrlEvent event(wxEVT_HEADER_BEGIN_REORDER, GetId()); event.SetEventObject(this); event.SetColumn(col); @@ -437,7 +420,7 @@ bool wxHeaderCtrl::EndReordering(int xPhysical) if ( colNew != colOld ) { - wxHeaderCtrlEvent event(wxEVT_COMMAND_HEADER_END_REORDER, GetId()); + wxHeaderCtrlEvent event(wxEVT_HEADER_END_REORDER, GetId()); event.SetEventObject(this); event.SetColumn(colOld); @@ -496,7 +479,7 @@ void wxHeaderCtrl::OnPaint(wxPaintEvent& WXUNUSED(event)) { int w, h; GetClientSize(&w, &h); - + #ifdef __WXGTK__ // int vw; // GetVirtualSize(&vw, NULL); @@ -542,7 +525,7 @@ void wxHeaderCtrl::OnPaint(wxPaintEvent& WXUNUSED(event)) { state = wxCONTROL_DISABLED; } - + if (i == 0) state |= wxCONTROL_SPECIAL; @@ -550,7 +533,7 @@ void wxHeaderCtrl::OnPaint(wxPaintEvent& WXUNUSED(event)) params.m_labelText = col.GetTitle(); params.m_labelBitmap = col.GetBitmap(); params.m_labelAlignment = col.GetAlignment(); - + #ifdef __WXGTK__ if (i == count-1) { @@ -696,23 +679,23 @@ void wxHeaderCtrl::OnMouse(wxMouseEvent& mevent) // treat left double clicks on separator specially if ( onSeparator && dblclk ) { - evtType = wxEVT_COMMAND_HEADER_SEPARATOR_DCLICK; + evtType = wxEVT_HEADER_SEPARATOR_DCLICK; } else // not double click on separator { - evtType = click ? wxEVT_COMMAND_HEADER_CLICK - : wxEVT_COMMAND_HEADER_DCLICK; + evtType = click ? wxEVT_HEADER_CLICK + : wxEVT_HEADER_DCLICK; } break; case wxMOUSE_BTN_RIGHT: - evtType = click ? wxEVT_COMMAND_HEADER_RIGHT_CLICK - : wxEVT_COMMAND_HEADER_RIGHT_DCLICK; + evtType = click ? wxEVT_HEADER_RIGHT_CLICK + : wxEVT_HEADER_RIGHT_DCLICK; break; case wxMOUSE_BTN_MIDDLE: - evtType = click ? wxEVT_COMMAND_HEADER_MIDDLE_CLICK - : wxEVT_COMMAND_HEADER_MIDDLE_DCLICK; + evtType = click ? wxEVT_HEADER_MIDDLE_CLICK + : wxEVT_HEADER_MIDDLE_DCLICK; break; default: