// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-// ============================================================================
-// declarations
-// ============================================================================
-
-// ---------------------------------------------------------------------------
-// headers
-// ---------------------------------------------------------------------------
-
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#pragma hdrstop
#endif
+#if wxUSE_GRAPHICS_CONTEXT
+
#include "wx/graphics.h"
#ifndef WX_PRECOMP
#include "wx/icon.h"
#include "wx/bitmap.h"
#include "wx/dcmemory.h"
+ #include "wx/region.h"
#endif
-#if wxUSE_GRAPHICS_CONTEXT
-
#if !defined(wxMAC_USE_CORE_GRAPHICS_BLEND_MODES)
#define wxMAC_USE_CORE_GRAPHICS_BLEND_MODES 0
#endif
// constants
//-----------------------------------------------------------------------------
-const double RAD2DEG = 180.0 / M_PI;
-const short kEmulatedMode = -1;
-const short kUnsupportedMode = -2;
+static const double RAD2DEG = 180.0 / M_PI;
//-----------------------------------------------------------------------------
// Local functions
//-----------------------------------------------------------------------------
-static inline double dmin(double a, double b)
-{
- return a < b ? a : b;
-}
-static inline double dmax(double a, double b)
-{
- return a > b ? a : b;
-}
-
static inline double DegToRad(double deg)
{
return (deg * M_PI) / 180.0;
}
-static inline double RadToDeg(double deg)
-{
- return (deg * 180.0) / M_PI;
-}
+//-----------------------------------------------------------------------------
wxPoint2DDouble wxGraphicsPath::GetCurrentPoint()
{
PushState();
Translate( x , y );
- double fw = w / radius;
- double fh = h / radius;
-
path->MoveToPoint(w, h / 2);
path->AddArcToPoint(w, h, w / 2, h, radius);
path->AddArcToPoint(0, h, 0, h / 2, radius);
wxASSERT(n > 1);
wxGraphicsPath* path = CreatePath();
path->MoveToPoint(points[0].m_x, points[0].m_y) ;
- for ( int i = 1 ; i < n; ++i)
+ for ( size_t i = 1 ; i < n; ++i)
path->AddLineToPoint( points[i].m_x, points[i].m_y );
StrokePath( path );
delete path;
wxASSERT(n > 1);
wxGraphicsPath* path = CreatePath();
path->MoveToPoint(points[0].m_x, points[0].m_y) ;
- for ( int i = 1 ; i < n; ++i)
+ for ( size_t i = 1 ; i < n; ++i)
path->AddLineToPoint( points[i].m_x, points[i].m_y );
DrawPath( path , fillStyle);
delete path;
{
wxASSERT(n > 0);
wxGraphicsPath* path = CreatePath();
- for ( int i = 0 ; i < n; ++i)
+ for ( size_t i = 0 ; i < n; ++i)
{
path->MoveToPoint(beginPoints[i].m_x, beginPoints[i].m_y) ;
path->AddLineToPoint( endPoints[i].m_x, endPoints[i].m_y );
m_ok = true;
if ( dc.GetFont().Ok())
m_graphicContext->SetFont(dc.GetFont());
+ if ( dc.GetPen().Ok())
+ m_graphicContext->SetPen(dc.GetPen());
+ if ( dc.GetBrush().Ok())
+ m_graphicContext->SetBrush(dc.GetBrush());
+ m_graphicContext->SetTextColor(dc.GetTextForeground());
}
void wxGCDC::Init()
delete m_graphicContext;
}
-void wxGCDC::DoDrawBitmap( const wxBitmap &bmp, wxCoord x, wxCoord y, bool useMask )
+void wxGCDC::DoDrawBitmap( const wxBitmap &bmp, wxCoord x, wxCoord y, bool WXUNUSED(useMask) )
{
wxCHECK_RET( Ok(), wxT("wxGCDC(cg)::DoDrawBitmap - invalid DC") );
wxCHECK_RET( bmp.Ok(), wxT("wxGCDC(cg)::DoDrawBitmap - invalid bitmap") );
m_graphicContext->DrawIcon( icon , xx, yy, ww, hh );
}
-void wxGCDC::DoSetClippingRegion( wxCoord x, wxCoord y, wxCoord width, wxCoord height )
+void wxGCDC::DoSetClippingRegion( wxCoord WXUNUSED(x), wxCoord WXUNUSED(y), wxCoord WXUNUSED(width), wxCoord WXUNUSED(height) )
{
// TODO Clipping
#if 0
SetPen( pen );
}
-void wxGCDC::SetPalette( const wxPalette& palette )
-{}
+void wxGCDC::SetPalette( const wxPalette& WXUNUSED(palette) )
+{
+
+}
void wxGCDC::SetBackgroundMode( int mode )
{
}
-extern bool wxDoFloodFill(wxDC *dc, wxCoord x, wxCoord y,
- const wxColour & col, int style);
-
-bool wxGCDC::DoFloodFill(wxCoord x, wxCoord y,
- const wxColour& col, int style)
+bool wxGCDC::DoFloodFill(wxCoord WXUNUSED(x), wxCoord WXUNUSED(y),
+ const wxColour& WXUNUSED(col), int WXUNUSED(style))
{
- // return wxDoFloodFill(this, x, y, col, style);
return false;
}
-bool wxGCDC::DoGetPixel( wxCoord x, wxCoord y, wxColour *col ) const
+bool wxGCDC::DoGetPixel( wxCoord WXUNUSED(x), wxCoord WXUNUSED(y), wxColour *WXUNUSED(col) ) const
{
// wxCHECK_MSG( 0 , false, wxT("wxGCDC(cg)::DoGetPixel - not implemented") );
return false;
m_graphicContext->StrokePath( path );
delete path;
}
-#endif
+#endif // wxUSE_SPLINES
void wxGCDC::DoDrawPolygon( int n, wxPoint points[],
wxCoord xoffset, wxCoord yoffset,
}
bool wxGCDC::DoBlit(
- wxCoord xdest, wxCoord ydest, wxCoord width, wxCoord height,
- wxDC *source, wxCoord xsrc, wxCoord ysrc, int logical_func , bool useMask,
- wxCoord xsrcMask, wxCoord ysrcMask )
+ wxCoord WXUNUSED(xdest), wxCoord WXUNUSED(ydest), wxCoord WXUNUSED(width), wxCoord WXUNUSED(height),
+ wxDC *source, wxCoord WXUNUSED(xsrc), wxCoord WXUNUSED(ysrc), int logical_func , bool WXUNUSED(useMask),
+ wxCoord WXUNUSED(xsrcMask), wxCoord WXUNUSED(ysrcMask) )
{
wxCHECK_MSG( Ok(), false, wxT("wxGCDC(cg)::DoBlit - invalid DC") );
wxCHECK_MSG( source->Ok(), false, wxT("wxGCDC(cg)::DoBlit - invalid source DC") );
if ( logical_func == wxNO_OP )
return true;
+#if 0
if (xsrcMask == -1 && ysrcMask == -1)
{
xsrcMask = xsrc;
wxMemoryDC* memdc = dynamic_cast<wxMemoryDC*>(source);
if ( memdc && logical_func == wxCOPY )
{
-#if 0
wxBitmap blit = memdc->GetSelectedObject();
wxASSERT_MSG( blit.Ok() , wxT("Invalid bitmap for blitting") );
{
m_graphicContext->DrawBitmap( blit, xxdest , yydest , wwdest , hhdest );
}
-#endif
}
else
wxFAIL_MSG( wxT("Blitting is only supported from bitmap contexts") );
return false;
}
+#endif
- return true;
+ return false;
}
void wxGCDC::DoDrawRotatedText(const wxString& str, wxCoord x, wxCoord y,
{
wxCHECK_RET( Ok(), wxT("wxGCDC(cg)::DoGetTextExtent - invalid DC") );
- wxFont formerFont = m_font;
if ( theFont )
{
m_graphicContext->SetFont( *theFont );
wxDCBase::DoDrawCheckMark(x,y,width,height);
}
-#endif
-
+#endif // wxUSE_GRAPHICS_CONTEXT