X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7ecb8b06ade47981aa828a3f7fb4278f822456d3..63effd42eaaea3594e18fd7b91372842107978cf:/src/msw/pen.cpp diff --git a/src/msw/pen.cpp b/src/msw/pen.cpp index 599d747603..618860ecdb 100644 --- a/src/msw/pen.cpp +++ b/src/msw/pen.cpp @@ -5,11 +5,11 @@ // Modified by: // Created: 04/01/98 // RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license +// Copyright: (c) Julian Smart +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma implementation "pen.h" #endif @@ -30,7 +30,8 @@ #endif #include "wx/msw/private.h" -#include "assert.h" + +static int wx2msPenStyle(int wx_style); IMPLEMENT_DYNAMIC_CLASS(wxPen, wxGDIObject) @@ -140,16 +141,15 @@ bool wxPen::RealizeResource() if (M_PENDATA->m_style==wxTRANSPARENT) { M_PENDATA->m_hPen = (WXHPEN) ::GetStockObject(NULL_PEN); - return TRUE; + return true; } - COLORREF ms_colour = 0; - ms_colour = M_PENDATA->m_colour.GetPixel(); + COLORREF ms_colour = M_PENDATA->m_colour.GetPixel(); // Join style, Cap style, Pen Stippling only on Win32. // Currently no time to find equivalent on Win3.1, sorry // [if such equiv exist!!] -#if defined(__WIN32__) && !defined(__WXMICROWIN__) +#if defined(__WIN32__) && !defined(__WXMICROWIN__) && !defined(__WXWINCE__) if (M_PENDATA->m_join==wxJOIN_ROUND && M_PENDATA->m_cap==wxCAP_ROUND && M_PENDATA->m_style!=wxUSER_DASH && @@ -219,7 +219,7 @@ bool wxPen::RealizeResource() default: logb.lbStyle = BS_SOLID; #ifdef __WXDEBUG__ - // this should be unnecessary (it's unused) but suppresses the Purigy + // this should be unnecessary (it's unused) but suppresses the Purify // messages about uninitialized memory read logb.lbHatch = 0; #endif @@ -232,8 +232,9 @@ bool wxPen::RealizeResource() if (M_PENDATA->m_style==wxUSER_DASH && M_PENDATA->m_nbDash && M_PENDATA->m_dash) { real_dash = new wxMSWDash[M_PENDATA->m_nbDash]; + int rw = M_PENDATA->m_width > 1 ? M_PENDATA->m_width : 1; for ( int i = 0; i < M_PENDATA->m_nbDash; i++ ) - real_dash[i] = M_PENDATA->m_dash[i] * M_PENDATA->m_width; + real_dash[i] = M_PENDATA->m_dash[i] * rw; } else { @@ -273,12 +274,12 @@ bool wxPen::RealizeResource() if (M_PENDATA->m_hPen==0) wxError("Cannot create pen","Internal error") ; #endif - return TRUE; + return true; } - return FALSE; + return false; } -WXHANDLE wxPen::GetResourceHandle() +WXHANDLE wxPen::GetResourceHandle() const { if ( !M_PENDATA ) return 0; @@ -292,9 +293,9 @@ bool wxPen::FreeResource(bool WXUNUSED(force)) { DeleteObject((HPEN) M_PENDATA->m_hPen); M_PENDATA->m_hPen = 0; - return TRUE; + return true; } - else return FALSE; + else return false; } bool wxPen::IsFree() const @@ -393,46 +394,29 @@ void wxPen::SetCap(int Cap) int wx2msPenStyle(int wx_style) { - int cstyle; +#if !defined(__WXMICROWIN__) && !defined(__WXWINCE__) switch (wx_style) { -#if !defined(__WXMICROWIN__) - case wxDOT: - cstyle = PS_DOT; - break; - - case wxDOT_DASH: - cstyle = PS_DASHDOT; - break; - - case wxSHORT_DASH: - case wxLONG_DASH: - cstyle = PS_DASH; - break; - - case wxTRANSPARENT: - cstyle = PS_NULL; - break; -#endif + case wxDOT: + return PS_DOT; - case wxUSER_DASH: -#if !defined(__WXMICROWIN__) -#ifdef __WIN32__ - // Win32s doesn't have PS_USERSTYLE - if (wxGetOsVersion()==wxWINDOWS_NT || wxGetOsVersion()==wxWIN95) - cstyle = PS_USERSTYLE; - else - cstyle = PS_DOT; // We must make a choice... This is mine! + case wxDOT_DASH: + return PS_DASHDOT; + + case wxSHORT_DASH: + case wxLONG_DASH: + return PS_DASH; + + case wxTRANSPARENT: + return PS_NULL; + + case wxUSER_DASH: + // if (wxGetOsVersion()==wxWINDOWS_NT || wxGetOsVersion()==wxWIN95) + return PS_USERSTYLE; + } #else - cstyle = PS_DASH; -#endif + wxUnusedVar(wx_style); #endif - break; - case wxSOLID: - default: - cstyle = PS_SOLID; - break; - } - return cstyle; + return PS_SOLID; }