X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d275c7eb8420c81e97a8b308c60c27d9856b58f9..431a3edc641e379b8f5d6010220250017e99a3ff:/src/msw/pen.cpp diff --git a/src/msw/pen.cpp b/src/msw/pen.cpp index e15f066eda..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) @@ -67,14 +68,10 @@ wxPenRefData::~wxPenRefData() wxPen::wxPen() { - if (wxThePenList) - wxThePenList->AddPen(this); } wxPen::~wxPen() { - if (wxThePenList) - wxThePenList->RemovePen(this); } // Should implement Create @@ -117,8 +114,6 @@ wxPen::wxPen(const wxColour& col, int Width, int Style) #endif RealizeResource(); - if ( wxThePenList ) - wxThePenList->AddPen(this); } wxPen::wxPen(const wxBitmap& stipple, int Width) @@ -137,8 +132,6 @@ wxPen::wxPen(const wxBitmap& stipple, int Width) RealizeResource(); - if (wxThePenList) - wxThePenList->AddPen(this); } bool wxPen::RealizeResource() @@ -148,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 && @@ -227,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 @@ -240,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 { @@ -281,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; @@ -300,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 @@ -401,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; }