Add test suite to check wxGraphicsMatrix operations

Implemented tests of some basic operations like Invert() and Concat().

See #17670.
This commit is contained in:
Artur Wieczorek 2016-09-18 23:09:44 +02:00
parent aa687ec86e
commit fb9cbc0879
11 changed files with 675 additions and 293 deletions

View File

@ -183,6 +183,7 @@ TEST_GUI_OBJECTS = \
test_gui_affinematrix.o \
test_gui_boundingbox.o \
test_gui_clippingbox.o \
test_gui_graphmatrix.o \
test_gui_config.o \
test_gui_bitmapcomboboxtest.o \
test_gui_bitmaptogglebuttontest.o \
@ -824,6 +825,9 @@ test_gui_boundingbox.o: $(srcdir)/graphics/boundingbox.cpp $(TEST_GUI_ODEP)
test_gui_clippingbox.o: $(srcdir)/graphics/clippingbox.cpp $(TEST_GUI_ODEP)
$(CXXC) -c -o $@ $(TEST_GUI_CXXFLAGS) $(srcdir)/graphics/clippingbox.cpp
test_gui_graphmatrix.o: $(srcdir)/graphics/graphmatrix.cpp $(TEST_GUI_ODEP)
$(CXXC) -c -o $@ $(TEST_GUI_CXXFLAGS) $(srcdir)/graphics/graphmatrix.cpp
test_gui_config.o: $(srcdir)/config/config.cpp $(TEST_GUI_ODEP)
$(CXXC) -c -o $@ $(TEST_GUI_CXXFLAGS) $(srcdir)/config/config.cpp

View File

@ -0,0 +1,350 @@
///////////////////////////////////////////////////////////////////////////////
// Name: tests/graphics/graphmatrix.cpp
// Purpose: Graphics matrix unit test
// Author: Artur Wieczorek
// Created: 2016-09-18
// Copyright: (c) 2016 wxWidgets development team
///////////////////////////////////////////////////////////////////////////////
// ----------------------------------------------------------------------------
// headers
// ----------------------------------------------------------------------------
#include "testprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#if wxUSE_GRAPHICS_CONTEXT
#include "wx/graphics.h"
#include "wx/dcmemory.h"
// ----------------------------------------------------------------------------
// Graphics matrix test classes
// ----------------------------------------------------------------------------
class GraphicsMatrixTestCaseBase : public CppUnit::TestCase
{
public:
GraphicsMatrixTestCaseBase()
{
m_bmp.Create(100, 100);
m_dc.SelectObject(m_bmp);
m_rend = NULL;
m_ctx = NULL;
}
~GraphicsMatrixTestCaseBase()
{
m_dc.SelectObject(wxNullBitmap);
m_bmp = wxNullBitmap;
}
virtual void setUp() wxOVERRIDE
{
wxASSERT( m_rend );
m_ctx = m_rend->CreateContext(m_dc);
}
virtual void tearDown() wxOVERRIDE
{
delete m_ctx;
m_ctx = NULL;
}
protected:
void InitState();
void InvertMatrix();
void Concat1();
void Concat2();
void Concat3();
wxGraphicsRenderer* m_rend;
private:
void CheckMatrix(const wxGraphicsMatrix& m,
double a, double b, double c, double d,
double tx, double ty);
wxBitmap m_bmp;
wxMemoryDC m_dc;
wxGraphicsContext* m_ctx;
wxDECLARE_NO_COPY_CLASS(GraphicsMatrixTestCaseBase);
};
// ========================
// wxGraphicsContext tests
// ========================
#ifdef __WXMSW__
// GDI+ and Direct2D are available only under MSW.
#if wxUSE_GRAPHICS_GDIPLUS
class GraphicsMatrixTestCaseGDIPlus : public GraphicsMatrixTestCaseBase
{
public:
GraphicsMatrixTestCaseGDIPlus()
{
m_rend = wxGraphicsRenderer::GetGDIPlusRenderer();
}
virtual ~GraphicsMatrixTestCaseGDIPlus()
{
}
private:
CPPUNIT_TEST_SUITE( GraphicsMatrixTestCaseGDIPlus );
CPPUNIT_TEST( InitState );
CPPUNIT_TEST( InvertMatrix );
CPPUNIT_TEST( Concat1 );
CPPUNIT_TEST( Concat2 );
CPPUNIT_TEST( Concat3 );
CPPUNIT_TEST_SUITE_END();
protected:
wxDECLARE_NO_COPY_CLASS(GraphicsMatrixTestCaseGDIPlus);
};
// register in the unnamed registry so that these tests are run by default
CPPUNIT_TEST_SUITE_REGISTRATION( GraphicsMatrixTestCaseGDIPlus );
// also include in it's own registry so that these tests can be run alone
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( GraphicsMatrixTestCaseGDIPlus, "GraphicsMatrixTestCaseGDIPlus" );
#endif // wxUSE_GRAPHICS_GDIPLUS
#if wxUSE_GRAPHICS_DIRECT2D
class GraphicsMatrixTestCaseDirect2D : public GraphicsMatrixTestCaseBase
{
public:
GraphicsMatrixTestCaseDirect2D()
{
m_rend = wxGraphicsRenderer::GetDirect2DRenderer();
}
virtual ~GraphicsMatrixTestCaseDirect2D()
{
}
private:
CPPUNIT_TEST_SUITE( GraphicsMatrixTestCaseDirect2D );
CPPUNIT_TEST( InitState );
CPPUNIT_TEST( InvertMatrix );
CPPUNIT_TEST( Concat1 );
CPPUNIT_TEST( Concat2 );
CPPUNIT_TEST( Concat3 );
CPPUNIT_TEST_SUITE_END();
protected:
wxDECLARE_NO_COPY_CLASS(GraphicsMatrixTestCaseDirect2D);
};
// register in the unnamed registry so that these tests are run by default
CPPUNIT_TEST_SUITE_REGISTRATION( GraphicsMatrixTestCaseDirect2D );
// also include in it's own registry so that these tests can be run alone
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( GraphicsMatrixTestCaseDirect2D, "GraphicsMatrixTestCaseDirect2D" );
#endif // wxUSE_GRAPHICS_DIRECT2D
#endif // __WXMSW__
#if wxUSE_CAIRO
class GraphicsMatrixTestCaseCairo : public GraphicsMatrixTestCaseBase
{
public:
GraphicsMatrixTestCaseCairo()
{
m_rend = wxGraphicsRenderer::GetCairoRenderer();
}
virtual ~GraphicsMatrixTestCaseCairo()
{
}
private:
CPPUNIT_TEST_SUITE( GraphicsMatrixTestCaseCairo );
CPPUNIT_TEST( InitState );
CPPUNIT_TEST( InvertMatrix );
CPPUNIT_TEST( Concat1 );
CPPUNIT_TEST( Concat2 );
CPPUNIT_TEST( Concat3 );
CPPUNIT_TEST_SUITE_END();
protected:
wxDECLARE_NO_COPY_CLASS(GraphicsMatrixTestCaseCairo);
};
// register in the unnamed registry so that these tests are run by default
CPPUNIT_TEST_SUITE_REGISTRATION( GraphicsMatrixTestCaseCairo );
// also include in it's own registry so that these tests can be run alone
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( GraphicsMatrixTestCaseCairo, "GraphicsMatrixTestCaseCairo" );
#endif // wxUSE_CAIRO
class GraphicsMatrixTestCaseDefault : public GraphicsMatrixTestCaseBase
{
public:
GraphicsMatrixTestCaseDefault()
{
m_rend = wxGraphicsRenderer::GetDefaultRenderer();
}
virtual ~GraphicsMatrixTestCaseDefault()
{
}
private:
CPPUNIT_TEST_SUITE( GraphicsMatrixTestCaseDefault );
CPPUNIT_TEST( InitState );
CPPUNIT_TEST( InvertMatrix );
CPPUNIT_TEST( Concat1 );
CPPUNIT_TEST( Concat2 );
CPPUNIT_TEST( Concat3 );
CPPUNIT_TEST_SUITE_END();
protected:
wxDECLARE_NO_COPY_CLASS(GraphicsMatrixTestCaseDefault);
};
// register in the unnamed registry so that these tests are run by default
CPPUNIT_TEST_SUITE_REGISTRATION( GraphicsMatrixTestCaseDefault );
// also include in it's own registry so that these tests can be run alone
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( GraphicsMatrixTestCaseDefault, "GraphicsMatrixTestCaseDefault" );
// ===== Implementation =====
static inline double RoundVal(double v)
{
wxString s = wxString::Format(wxS("%g"), v);
s.ToDouble(&v);
return v;
}
void GraphicsMatrixTestCaseBase::CheckMatrix(const wxGraphicsMatrix& m,
double a, double b, double c, double d,
double tx, double ty)
{
double cur_a, cur_b, cur_c, cur_d, cur_tx, cur_ty;
m.Get(&cur_a, &cur_b, &cur_c, &cur_d, &cur_tx, &cur_ty);
wxString msg;
if ( RoundVal(a) != RoundVal(cur_a) )
{
if ( !msg.empty() )
{
msg += wxS("\n- ");
}
msg += wxString::Format(wxS("Invalid m11 value: Actual: %g Expected: %g"),
cur_a, a );
}
if ( RoundVal(b) != RoundVal(cur_b) )
{
if ( !msg.empty() )
{
msg += wxS("\n- ");
}
msg += wxString::Format(wxS("Invalid m12 value: Actual: %g Expected: %g"),
cur_b, b );
}
if ( RoundVal(c) != RoundVal(cur_c) )
{
if ( !msg.empty() )
{
msg += wxS("\n- ");
}
msg += wxString::Format(wxS("Invalid m21 value: Actual: %g Expected: %g"),
cur_c, c );
}
if ( RoundVal(d) != RoundVal(cur_d) )
{
if ( !msg.empty() )
{
msg += wxS("\n- ");
}
msg += wxString::Format(wxS("Invalid m22 value: Actual: %g Expected: %g"),
cur_d, d );
}
if ( RoundVal(tx) != RoundVal(cur_tx) )
{
if ( !msg.empty() )
{
msg += wxS("\n- ");
}
msg += wxString::Format(wxS("Invalid tx value: Actual: %g Expected: %g"),
cur_tx, tx );
}
if ( RoundVal(ty) != RoundVal(cur_ty) )
{
if ( !msg.empty() )
{
msg += wxS("\n- ");
}
msg += wxString::Format(wxS("Invalid ty value: Actual: %g Expected: %g"),
cur_ty, ty );
}
if( !msg.empty() )
{
wxCharBuffer buffer = msg.ToUTF8();
CPPUNIT_FAIL( buffer.data() );
}
}
void GraphicsMatrixTestCaseBase::InitState()
{
wxGraphicsMatrix m = m_ctx->CreateMatrix();
CheckMatrix(m, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0);
}
void GraphicsMatrixTestCaseBase::InvertMatrix()
{
wxGraphicsMatrix m = m_ctx->CreateMatrix(2.0, 1.0, 1.0, 1.0, 1.0, 1.0);
m.Invert();
CheckMatrix(m, 1.0, -1.0, -1.0, 2.0, 0.0, -1.0);
}
void GraphicsMatrixTestCaseBase::Concat1()
{
wxGraphicsMatrix m1 = m_ctx->CreateMatrix(0.9, 0.4, -0.4, 0.9, 0.0, 0.0);
wxGraphicsMatrix m2 = m_ctx->CreateMatrix(1.0, 0.0, 0.0, 1.0, 3.0, 5.0);
m1.Concat(m2);
CheckMatrix(m1, 0.9, 0.4, -0.4, 0.9, 0.7, 5.7);
}
void GraphicsMatrixTestCaseBase::Concat2()
{
wxGraphicsMatrix m1 = m_ctx->CreateMatrix(0.9, 0.4, -0.4, 0.9, 0.0, 0.0);
wxGraphicsMatrix m2 = m_ctx->CreateMatrix(1.0, 0.0, 0.0, 1.0, 3.0, 5.0);
m2.Concat(m1);
CheckMatrix(m2, 0.9, 0.4, -0.4, 0.9, 3.0, 5.0);
}
void GraphicsMatrixTestCaseBase::Concat3()
{
wxGraphicsMatrix m1 = m_ctx->CreateMatrix(0.9, 0.4, -0.4, 0.9, 0.0, 0.0);
wxGraphicsMatrix m2 = m_ctx->CreateMatrix(1.0, 0.0, 0.0, 1.0, 3.0, 5.0);
wxGraphicsMatrix m = m1;
m.Concat(m2);
CheckMatrix(m, 0.9, 0.4, -0.4, 0.9, 0.7, 5.7);
}
#endif // wxUSE_GRAPHICS_CONTEXT

View File

@ -167,6 +167,7 @@ TEST_GUI_OBJECTS = \
$(OBJS)\test_gui_affinematrix.obj \
$(OBJS)\test_gui_boundingbox.obj \
$(OBJS)\test_gui_clippingbox.obj \
$(OBJS)\test_gui_graphmatrix.obj \
$(OBJS)\test_gui_config.obj \
$(OBJS)\test_gui_bitmapcomboboxtest.obj \
$(OBJS)\test_gui_bitmaptogglebuttontest.obj \
@ -860,6 +861,9 @@ $(OBJS)\test_gui_boundingbox.obj: .\graphics\boundingbox.cpp
$(OBJS)\test_gui_clippingbox.obj: .\graphics\clippingbox.cpp
$(CXX) -q -c -P -o$@ $(TEST_GUI_CXXFLAGS) .\graphics\clippingbox.cpp
$(OBJS)\test_gui_graphmatrix.obj: .\graphics\graphmatrix.cpp
$(CXX) -q -c -P -o$@ $(TEST_GUI_CXXFLAGS) .\graphics\graphmatrix.cpp
$(OBJS)\test_gui_config.obj: .\config\config.cpp
$(CXX) -q -c -P -o$@ $(TEST_GUI_CXXFLAGS) .\config\config.cpp

View File

@ -161,6 +161,7 @@ TEST_GUI_OBJECTS = \
$(OBJS)\test_gui_affinematrix.o \
$(OBJS)\test_gui_boundingbox.o \
$(OBJS)\test_gui_clippingbox.o \
$(OBJS)\test_gui_graphmatrix.o \
$(OBJS)\test_gui_config.o \
$(OBJS)\test_gui_bitmapcomboboxtest.o \
$(OBJS)\test_gui_bitmaptogglebuttontest.o \
@ -836,6 +837,9 @@ $(OBJS)\test_gui_boundingbox.o: ./graphics/boundingbox.cpp
$(OBJS)\test_gui_clippingbox.o: ./graphics/clippingbox.cpp
$(CXX) -c -o $@ $(TEST_GUI_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\test_gui_graphmatrix.o: ./graphics/graphmatrix.cpp
$(CXX) -c -o $@ $(TEST_GUI_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\test_gui_config.o: ./config/config.cpp
$(CXX) -c -o $@ $(TEST_GUI_CXXFLAGS) $(CPPDEPS) $<

View File

@ -171,6 +171,7 @@ TEST_GUI_OBJECTS = \
$(OBJS)\test_gui_affinematrix.obj \
$(OBJS)\test_gui_boundingbox.obj \
$(OBJS)\test_gui_clippingbox.obj \
$(OBJS)\test_gui_graphmatrix.obj \
$(OBJS)\test_gui_config.obj \
$(OBJS)\test_gui_bitmapcomboboxtest.obj \
$(OBJS)\test_gui_bitmaptogglebuttontest.obj \
@ -1037,6 +1038,9 @@ $(OBJS)\test_gui_boundingbox.obj: .\graphics\boundingbox.cpp
$(OBJS)\test_gui_clippingbox.obj: .\graphics\clippingbox.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\graphics\clippingbox.cpp
$(OBJS)\test_gui_graphmatrix.obj: .\graphics\graphmatrix.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\graphics\graphmatrix.cpp
$(OBJS)\test_gui_config.obj: .\config\config.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\config\config.cpp

View File

@ -181,6 +181,7 @@
graphics/affinematrix.cpp
graphics/boundingbox.cpp
graphics/clippingbox.cpp
graphics/graphmatrix.cpp
config/config.cpp
controls/bitmapcomboboxtest.cpp
controls/bitmaptogglebuttontest.cpp

View File

@ -529,6 +529,7 @@
<ClCompile Include="graphics\bitmap.cpp" />
<ClCompile Include="graphics\boundingbox.cpp" />
<ClCompile Include="graphics\clippingbox.cpp" />
<ClCompile Include="graphics\graphmatrix.cpp" />
<ClCompile Include="graphics\colour.cpp" />
<ClCompile Include="graphics\ellipsization.cpp" />
<ClCompile Include="graphics\measuring.cpp" />

View File

@ -1,293 +1,296 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="menu\accelentry.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="graphics\affinematrix.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="asserthelper.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="graphics\bitmap.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\bitmapcomboboxtest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\bitmaptogglebuttontest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\bookctrlbasetest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="graphics\boundingbox.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="sizers\boxsizer.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="sizers\gridsizer.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\buttontest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\checkboxtest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\checklistboxtest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\choicebooktest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\choicetest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="window\clientsize.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="events\clone.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="graphics\colour.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\comboboxtest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="config\config.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\dataviewctrltest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\datepickerctrltest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\dialogtest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="dummy.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="graphics\ellipsization.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="events\evtlooptest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="exec\exec.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="font\fonttest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\frametest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="misc\garbage.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\gaugetest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\gridtest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="misc\guifuncs.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\headerctrltest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\htmllboxtest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="html\htmlparser.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="html\htmlwindow.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\hyperlinkctrltest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="image\image.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\itemcontainertest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="events\keyboard.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\label.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\listbasetest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\listbooktest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\listboxtest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\listctrltest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\listviewtest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\markuptest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="graphics\measuring.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="menu\menu.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\notebooktest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\ownerdrawncomboboxtest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\pickerbasetest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\pickertest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="geometry\point.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="events\propagation.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\radioboxtest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\radiobuttontest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="image\rawbmp.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\rearrangelisttest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="geometry\rect.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="geometry\region.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\richtextctrltest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="misc\safearrayconverttest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\searchctrltest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="misc\selstoretest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="window\setsize.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="misc\settings.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\simplebooktest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="geometry\size.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\slidertest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="net\socket.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\spinctrldbltest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\spinctrltest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="test.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="testableframe.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\textctrltest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\textentrytest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\togglebuttontest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\toolbooktest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="toplevel\toplevel.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\treebooktest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\treectrltest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\treelistctrltest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="validators\valnum.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\virtlistctrltest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\webtest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\windowtest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="sizers\wrapsizer.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="xml\xrctest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="graphics\clippingbox.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\samples\sample.rc">
<Filter>Resource Files</Filter>
</ResourceCompile>
</ItemGroup>
</Project>
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="menu\accelentry.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="graphics\affinematrix.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="asserthelper.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="graphics\bitmap.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\bitmapcomboboxtest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\bitmaptogglebuttontest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\bookctrlbasetest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="graphics\boundingbox.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="sizers\boxsizer.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="sizers\gridsizer.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\buttontest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\checkboxtest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\checklistboxtest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\choicebooktest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\choicetest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="window\clientsize.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="events\clone.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="graphics\colour.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\comboboxtest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="config\config.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\dataviewctrltest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\datepickerctrltest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\dialogtest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="dummy.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="graphics\ellipsization.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="events\evtlooptest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="exec\exec.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="font\fonttest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\frametest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="misc\garbage.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\gaugetest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\gridtest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="misc\guifuncs.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\headerctrltest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\htmllboxtest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="html\htmlparser.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="html\htmlwindow.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\hyperlinkctrltest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="image\image.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\itemcontainertest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="events\keyboard.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\label.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\listbasetest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\listbooktest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\listboxtest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\listctrltest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\listviewtest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\markuptest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="graphics\measuring.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="menu\menu.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\notebooktest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\ownerdrawncomboboxtest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\pickerbasetest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\pickertest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="geometry\point.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="events\propagation.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\radioboxtest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\radiobuttontest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="image\rawbmp.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\rearrangelisttest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="geometry\rect.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="geometry\region.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\richtextctrltest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="misc\safearrayconverttest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\searchctrltest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="misc\selstoretest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="window\setsize.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="misc\settings.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\simplebooktest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="geometry\size.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\slidertest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="net\socket.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\spinctrldbltest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\spinctrltest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="test.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="testableframe.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\textctrltest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\textentrytest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\togglebuttontest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\toolbooktest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="toplevel\toplevel.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\treebooktest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\treectrltest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\treelistctrltest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="validators\valnum.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\virtlistctrltest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\webtest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="controls\windowtest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="sizers\wrapsizer.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="xml\xrctest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="graphics\clippingbox.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="graphics\graphmatrix.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\samples\sample.rc">
<Filter>Resource Files</Filter>
</ResourceCompile>
</ItemGroup>
</Project>

View File

@ -412,6 +412,9 @@
<File
RelativePath=".\controls\gaugetest.cpp">
</File>
<File
RelativePath=".\graphics\graphmatrix.cpp">
</File>
<File
RelativePath=".\sizers\gridsizer.cpp">
</File>

View File

@ -1018,6 +1018,10 @@
RelativePath=".\controls\gaugetest.cpp"
>
</File>
<File
RelativePath=".\graphics\graphmatrix.cpp"
>
</File>
<File
RelativePath=".\sizers\gridsizer.cpp"
>

View File

@ -990,6 +990,10 @@
RelativePath=".\controls\gaugetest.cpp"
>
</File>
<File
RelativePath=".\graphics\graphmatrix.cpp"
>
</File>
<File
RelativePath=".\sizers\gridsizer.cpp"
>