X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b1d4dd7add411ebff1ce4a8d1d992e0e43ee26b1..daebb84bff054d3833baca58a5dc506de56c64a1:/src/generic/sashwin.cpp diff --git a/src/generic/sashwin.cpp b/src/generic/sashwin.cpp index 0975bde05b..b9e554da14 100644 --- a/src/generic/sashwin.cpp +++ b/src/generic/sashwin.cpp @@ -8,13 +8,9 @@ // Created: 01/02/97 // RCS-ID: $Id$ // Copyright: (c) Julian Smart -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "sashwin.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -30,10 +26,12 @@ #include "wx/settings.h" #endif -#include +#include "wx/math.h" + #include #include "wx/dcscreen.h" +#include "wx/dcclient.h" #include "wx/sashwin.h" #include "wx/laywin.h" @@ -46,7 +44,7 @@ BEGIN_EVENT_TABLE(wxSashWindow, wxWindow) EVT_PAINT(wxSashWindow::OnPaint) EVT_SIZE(wxSashWindow::OnSize) EVT_MOUSE_EVENTS(wxSashWindow::OnMouseEvent) -#ifdef __WXMSW__ +#if defined( __WXMSW__ ) || defined( __WXMAC__) EVT_SET_CURSOR(wxSashWindow::OnSetCursor) #endif // wxMSW @@ -80,7 +78,7 @@ void wxSashWindow::Init() m_maximumPaneSizeY = 10000; m_sashCursorWE = new wxCursor(wxCURSOR_SIZEWE); m_sashCursorNS = new wxCursor(wxCURSOR_SIZENS); - m_mouseCaptured = FALSE; + m_mouseCaptured = false; m_currentCursor = NULL; // Eventually, we'll respond to colour change messages @@ -97,7 +95,7 @@ void wxSashWindow::OnPaint(wxPaintEvent& WXUNUSED(event)) void wxSashWindow::OnMouseEvent(wxMouseEvent& event) { - wxCoord x, y; + wxCoord x = 0, y = 0; event.GetPosition(&x, &y); wxSashEdgePosition sashHit = SashHitTest(x, y); @@ -105,7 +103,7 @@ void wxSashWindow::OnMouseEvent(wxMouseEvent& event) if (event.LeftDown()) { CaptureMouse(); - m_mouseCaptured = TRUE; + m_mouseCaptured = true; if ( sashHit != wxSASH_NONE ) { @@ -154,7 +152,7 @@ void wxSashWindow::OnMouseEvent(wxMouseEvent& event) // Wasn't a proper drag if (m_mouseCaptured) ReleaseMouse(); - m_mouseCaptured = FALSE; + m_mouseCaptured = false; wxScreenDC::EndDrawingOnTop(); m_dragMode = wxSASH_DRAG_NONE; @@ -166,7 +164,7 @@ void wxSashWindow::OnMouseEvent(wxMouseEvent& event) m_dragMode = wxSASH_DRAG_NONE; if (m_mouseCaptured) ReleaseMouse(); - m_mouseCaptured = FALSE; + m_mouseCaptured = false; // Erase old tracker DrawSashTracker(m_draggingEdge, m_oldX, m_oldY); @@ -187,8 +185,8 @@ void wxSashWindow::OnMouseEvent(wxMouseEvent& event) wxSashDragStatus status = wxSASH_STATUS_OK; // the new height and width of the window - if -1, it didn't change - int newHeight = -1, - newWidth = -1; + int newHeight = wxDefaultCoord, + newWidth = wxDefaultCoord; // NB: x and y may be negative and they're relative to the sash window // upper left corner, while xp and yp are expressed in the parent @@ -253,7 +251,7 @@ void wxSashWindow::OnMouseEvent(wxMouseEvent& event) break; } - if ( newHeight == -1 ) + if ( newHeight == wxDefaultCoord ) { // didn't change newHeight = h; @@ -265,7 +263,7 @@ void wxSashWindow::OnMouseEvent(wxMouseEvent& event) newHeight = wxMin(newHeight, m_maximumPaneSizeY); } - if ( newWidth == -1 ) + if ( newWidth == wxDefaultCoord ) { // didn't change newWidth = w; @@ -279,17 +277,17 @@ void wxSashWindow::OnMouseEvent(wxMouseEvent& event) dragRect = wxRect(x, y, newWidth, newHeight); - wxSashEvent event(GetId(), edge); - event.SetEventObject(this); - event.SetDragStatus(status); - event.SetDragRect(dragRect); - GetEventHandler()->ProcessEvent(event); + wxSashEvent eventSash(GetId(), edge); + eventSash.SetEventObject(this); + eventSash.SetDragStatus(status); + eventSash.SetDragRect(dragRect); + GetEventHandler()->ProcessEvent(eventSash); } else if ( event.LeftUp() ) { if (m_mouseCaptured) ReleaseMouse(); - m_mouseCaptured = FALSE; + m_mouseCaptured = false; } else if (event.Moving() && !event.Dragging()) { @@ -483,16 +481,14 @@ void wxSashWindow::DrawSash(wxSashEdgePosition edge, wxDC& dc) wxPen darkShadowPen(m_darkShadowColour, 1, wxSOLID); wxPen lightShadowPen(m_lightShadowColour, 1, wxSOLID); wxPen hilightPen(m_hilightColour, 1, wxSOLID); - wxPen blackPen(wxColour(0, 0, 0), 1, wxSOLID); - wxPen whitePen(wxColour(255, 255, 255), 1, wxSOLID); + wxColour blackClr(0, 0, 0); + wxColour whiteClr(255, 255, 255); + wxPen blackPen(blackClr, 1, wxSOLID); + wxPen whitePen(whiteClr, 1, wxSOLID); if ( edge == wxSASH_LEFT || edge == wxSASH_RIGHT ) { - int sashPosition = 0; - if (edge == wxSASH_LEFT) - sashPosition = 0; - else - sashPosition = w - GetEdgeMargin(edge); + int sashPosition = (edge == wxSASH_LEFT) ? 0 : ( w - GetEdgeMargin(edge) ); dc.SetPen(facePen); dc.SetBrush(faceBrush); @@ -518,11 +514,7 @@ void wxSashWindow::DrawSash(wxSashEdgePosition edge, wxDC& dc) } else // top or bottom { - int sashPosition = 0; - if (edge == wxSASH_TOP) - sashPosition = 0; - else - sashPosition = h - GetEdgeMargin(edge); + int sashPosition = (edge == wxSASH_TOP) ? 0 : ( h - GetEdgeMargin(edge) ); dc.SetPen(facePen); dc.SetBrush(faceBrush); @@ -678,19 +670,11 @@ void wxSashWindow::SizeWindows() void wxSashWindow::InitColours() { // Shadow colours -#ifndef __WIN16__ m_faceColour = wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE); m_mediumShadowColour = wxSystemSettings::GetColour(wxSYS_COLOUR_3DSHADOW); m_darkShadowColour = wxSystemSettings::GetColour(wxSYS_COLOUR_3DDKSHADOW); m_lightShadowColour = wxSystemSettings::GetColour(wxSYS_COLOUR_3DLIGHT); m_hilightColour = wxSystemSettings::GetColour(wxSYS_COLOUR_3DHILIGHT); -#else - m_faceColour = *(wxTheColourDatabase->FindColour("LIGHT GREY")); - m_mediumShadowColour = *(wxTheColourDatabase->FindColour("GREY")); - m_darkShadowColour = *(wxTheColourDatabase->FindColour("BLACK")); - m_lightShadowColour = *(wxTheColourDatabase->FindColour("LIGHT GREY")); - m_hilightColour = *(wxTheColourDatabase->FindColour("WHITE")); -#endif } void wxSashWindow::SetSashVisible(wxSashEdgePosition edge, bool sash) @@ -702,7 +686,7 @@ void wxSashWindow::SetSashVisible(wxSashEdgePosition edge, bool sash) m_sashes[edge].m_margin = 0; } -#ifdef __WXMSW__ +#if defined( __WXMSW__ ) || defined( __WXMAC__) // this is currently called (and needed) under MSW only... void wxSashWindow::OnSetCursor(wxSetCursorEvent& event)