#include "wx/artprov.h"
#include "wx/dcgraph.h"
#include "wx/overlay.h"
-
-#define wxTEST_GRAPHICS 1
+#include "wx/graphics.h"
+#include "wx/filename.h"
#define TEST_CAIRO_EVERYWHERE 0
-#if wxTEST_GRAPHICS
-#include "wx/graphics.h"
-#include "wx/dcgraph.h"
-#if wxUSE_GRAPHICS_CONTEXT == 0
-#undef wxTEST_GRAPHICS
-#define wxTEST_GRAPHICS 0
-#endif
-#else
-#undef wxUSE_GRAPHICS_CONTEXT
-#define wxUSE_GRAPHICS_CONTEXT 0
-#endif
-
// ----------------------------------------------------------------------------
-// ressources
+// resources
// ----------------------------------------------------------------------------
// the application icon
#include "mondrian.xpm"
#endif
-// ----------------------------------------------------------------------------
-// constants
-// ----------------------------------------------------------------------------
-
-// what do we show on screen (there are too many shapes to put them all on
-// screen simultaneously)
-enum ScreenToShow
-{
- Show_Default,
- Show_Text,
- Show_Lines,
- Show_Brushes,
- Show_Polygons,
- Show_Mask,
- Show_Mask_Stretch,
- Show_Ops,
- Show_Regions,
- Show_Circles,
- Show_Splines,
-#if wxUSE_GRAPHICS_CONTEXT
- Show_Alpha,
- Show_Graphics,
-#endif
- Show_Gradient,
- Show_Max
-};
-
// ----------------------------------------------------------------------------
// global variables
// ----------------------------------------------------------------------------
int m_backgroundMode;
int m_textureBackground;
- int m_mapMode;
+ wxMappingMode m_mapMode;
double m_xUserScale;
double m_yUserScale;
int m_xLogicalOrigin;
void OnMouseDown(wxMouseEvent &event);
void OnMouseUp(wxMouseEvent &event);
- void ToShow(ScreenToShow show) { m_show = show; Refresh(); }
+ void ToShow(int show) { m_show = show; Refresh(); }
// set or remove the clipping region
void Clip(bool clip) { m_clip = clip; Refresh(); }
private:
MyFrame *m_owner;
- ScreenToShow m_show;
+ int m_show;
wxBitmap m_smile_bmp;
wxIcon m_std_icon;
bool m_clip;
gs_bmp36 = new wxBitmap;
wxPathList pathList;
+ // special hack for Unix in-tree sample build, don't do this in real
+ // programs, use wxStandardPaths instead
+ pathList.Add(wxFileName(argv[0]).GetPath());
pathList.Add(_T("."));
pathList.Add(_T(".."));
pathList.Add(_T("../.."));
wxT("for this sample from the current or parent ")
wxT("directory, please copy them there."));
- // stop here
- DeleteBitmaps();
-
- return false;
+ // still continue, the sample can be used without images too if they're
+ // missing for whatever reason
}
- // ok, continue
return true;
}
wxHSCROLL | wxVSCROLL | wxNO_FULL_REPAINT_ON_RESIZE)
{
m_owner = parent;
- m_show = Show_Default;
+ m_show = File_ShowDefault;
m_smile_bmp = wxBitmap(smile_xpm);
m_std_icon = wxArtProvider::GetIcon(wxART_INFORMATION);
m_clip = false;
// test the logical function effect
wxCoord y = 150;
dc.SetLogicalFunction(wxINVERT);
- dc.DrawText( _T("There should be no text below"), 110, 150 );
+ // text drawing should ignore logical function
+ dc.DrawText( _T("There should be a text below"), 110, 150 );
dc.DrawRectangle( 110, y, 100, height );
- // twice drawn inverted should result in invisible
y += height;
- dc.DrawText( _T("Invisible text"), 110, y );
+ dc.DrawText( _T("Visible text"), 110, y );
dc.DrawRectangle( 110, y, 100, height );
- dc.DrawText( _T("Invisible text"), 110, y );
+ dc.DrawText( _T("Visible text"), 110, y );
dc.DrawRectangle( 110, y, 100, height );
dc.SetLogicalFunction(wxCOPY);
y += height;
dc.DrawRectangle( 110, y, 100, height );
- dc.DrawText( _T("Visible text"), 110, y );
+ dc.DrawText( _T("Another visible text"), 110, y );
}
static const struct
{
const wxChar *name;
- int rop;
+ wxRasterOperationMode rop;
} rasterOperations[] =
{
{ wxT("wxAND"), wxAND },
if ( !firstTime )
region.Offset(10, 10);
#endif
- dc.SetClippingRegion(region);
+ dc.SetDeviceClippingRegion(region);
dc.SetBrush( *wxGREY_BRUSH );
dc.DrawRectangle( x, y, 310, 310 );
switch ( m_show )
{
- case Show_Default:
+ case File_ShowDefault:
DrawDefault(dc);
break;
- case Show_Circles:
+ case File_ShowCircles:
DrawCircles(dc);
break;
- case Show_Splines:
+ case File_ShowSplines:
DrawSplines(dc);
break;
- case Show_Regions:
+ case File_ShowRegions:
DrawRegions(dc);
break;
- case Show_Text:
+ case File_ShowText:
DrawText(dc);
break;
- case Show_Lines:
+ case File_ShowLines:
DrawTestLines( 0, 100, 0, dc );
DrawTestLines( 0, 320, 1, dc );
DrawTestLines( 0, 540, 2, dc );
DrawTestLines( 0, 760, 6, dc );
break;
- case Show_Brushes:
+ case File_ShowBrushes:
DrawTestBrushes(dc);
break;
- case Show_Polygons:
+ case File_ShowPolygons:
DrawTestPoly(dc);
break;
- case Show_Mask:
+ case File_ShowMask:
DrawImages(dc, Draw_Normal);
break;
- case Show_Mask_Stretch:
+ case File_ShowMaskStretch:
DrawImages(dc, Draw_Stretch);
break;
- case Show_Ops:
+ case File_ShowOps:
DrawWithLogicalOps(dc);
break;
#if wxUSE_GRAPHICS_CONTEXT
- case Show_Alpha:
+ case File_ShowAlpha:
DrawAlpha(dc);
break;
- case Show_Graphics:
+ case File_ShowGraphics:
DrawGraphics(gdc.GetGraphicsContext());
break;
#endif
- case Show_Gradient:
+ case File_ShowGradients:
DrawGradients(dc);
break;
wxDCOverlay overlaydc( m_overlay, &dc );
overlaydc.Clear();
-#if __WXMAC__
+#ifdef __WXMAC__
dc.SetPen( *wxGREY_PEN );
dc.SetBrush( wxColour( 192,192,192,64 ) );
#else
{
if ( m_rubberBand )
{
+ ReleaseMouse();
{
wxClientDC dc( this );
PrepareDC( dc );
menuFile->Append(File_ShowPolygons, _T("&Polygons screen\tF5"));
menuFile->Append(File_ShowMask, _T("&Mask screen\tF6"));
menuFile->Append(File_ShowMaskStretch, _T("1/&2 scaled mask\tShift-F6"));
- menuFile->Append(File_ShowOps, _T("&ROP screen\tF7"));
+ menuFile->Append(File_ShowOps, _T("&Raster operations screen\tF7"));
menuFile->Append(File_ShowRegions, _T("Re&gions screen\tF8"));
menuFile->Append(File_ShowCircles, _T("&Circles screen\tF9"));
#if wxUSE_GRAPHICS_CONTEXT
menuFile->Append(File_ShowSplines, _T("&Splines screen\tF11"));
menuFile->Append(File_ShowGradients, _T("&Gradients screen\tF12"));
#if wxUSE_GRAPHICS_CONTEXT
- menuFile->Append(File_ShowGraphics, _T("&Graphics screen\tF13"));
+ menuFile->Append(File_ShowGraphics, _T("&Graphics screen"));
#endif
menuFile->AppendSeparator();
menuFile->AppendCheckItem(File_Clip, _T("&Clip\tCtrl-C"), _T("Clip/unclip drawing"));
void MyFrame::OnShow(wxCommandEvent& event)
{
- m_canvas->ToShow((ScreenToShow)(event.GetId() - MenuShow_First));
+ m_canvas->ToShow(event.GetId());
}
void MyFrame::OnOption(wxCommandEvent& event)