wxWidgets/tests/controls/pickertest.cpp
Vadim Zeitlin 399371921f Add font colour support to wxFontPickerCtrl.
Currently this is only really implemented under Windows, just as the colour
support in wxFontDialog, but make the API available under all platforms for
consistency.

Closes .

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76160 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-03-18 17:23:13 +00:00

218 lines
6.0 KiB
C++

///////////////////////////////////////////////////////////////////////////////
// Name: tests/controls/pickertest.cpp
// Purpose: Tests for various wxPickerBase based classes
// Author: Steven Lamerton
// Created: 2010-08-07
// Copyright: (c) 2010 Steven Lamerton
///////////////////////////////////////////////////////////////////////////////
#include "testprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WX_PRECOMP
#include "wx/app.h"
#endif // WX_PRECOMP
#include "wx/clrpicker.h"
#include "wx/filepicker.h"
#include "wx/fontpicker.h"
#include "pickerbasetest.h"
#include "asserthelper.h"
#if wxUSE_COLOURPICKERCTRL
class ColourPickerCtrlTestCase : public PickerBaseTestCase,
public CppUnit::TestCase
{
public:
ColourPickerCtrlTestCase() { }
virtual void setUp();
virtual void tearDown();
private:
virtual wxPickerBase *GetBase() const { return m_colour; }
CPPUNIT_TEST_SUITE( ColourPickerCtrlTestCase );
wxPICKER_BASE_TESTS();
CPPUNIT_TEST_SUITE_END();
wxColourPickerCtrl *m_colour;
DECLARE_NO_COPY_CLASS(ColourPickerCtrlTestCase)
};
// register in the unnamed registry so that these tests are run by default
CPPUNIT_TEST_SUITE_REGISTRATION( ColourPickerCtrlTestCase );
// also include in its own registry so that these tests can be run alone
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( ColourPickerCtrlTestCase,
"ColourPickerCtrlTestCase" );
void ColourPickerCtrlTestCase::setUp()
{
m_colour = new wxColourPickerCtrl(wxTheApp->GetTopWindow(), wxID_ANY,
*wxBLACK, wxDefaultPosition,
wxDefaultSize, wxCLRP_USE_TEXTCTRL);
}
void ColourPickerCtrlTestCase::tearDown()
{
wxDELETE(m_colour);
}
#endif //wxUSE_COLOURPICKERCTRL
#if wxUSE_DIRPICKERCTRL
class DirPickerCtrlTestCase : public PickerBaseTestCase,
public CppUnit::TestCase
{
public:
DirPickerCtrlTestCase() { }
virtual void setUp();
virtual void tearDown();
private:
virtual wxPickerBase *GetBase() const { return m_dir; }
CPPUNIT_TEST_SUITE( DirPickerCtrlTestCase );
wxPICKER_BASE_TESTS();
CPPUNIT_TEST_SUITE_END();
wxDirPickerCtrl *m_dir;
DECLARE_NO_COPY_CLASS(DirPickerCtrlTestCase)
};
// register in the unnamed registry so that these tests are run by default
CPPUNIT_TEST_SUITE_REGISTRATION( DirPickerCtrlTestCase );
// also include in its own registry so that these tests can be run alone
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( DirPickerCtrlTestCase,
"DirPickerCtrlTestCase" );
void DirPickerCtrlTestCase::setUp()
{
m_dir = new wxDirPickerCtrl(wxTheApp->GetTopWindow(), wxID_ANY,
wxEmptyString, wxDirSelectorPromptStr,
wxDefaultPosition, wxDefaultSize,
wxDIRP_USE_TEXTCTRL);
}
void DirPickerCtrlTestCase::tearDown()
{
wxDELETE(m_dir);
}
#endif //wxUSE_DIRPICKERCTRL
#if wxUSE_FILEPICKERCTRL
class FilePickerCtrlTestCase : public PickerBaseTestCase,
public CppUnit::TestCase
{
public:
FilePickerCtrlTestCase() { }
virtual void setUp();
virtual void tearDown();
private:
virtual wxPickerBase *GetBase() const { return m_file; }
CPPUNIT_TEST_SUITE( FilePickerCtrlTestCase );
wxPICKER_BASE_TESTS();
CPPUNIT_TEST_SUITE_END();
wxFilePickerCtrl *m_file;
DECLARE_NO_COPY_CLASS(FilePickerCtrlTestCase)
};
// register in the unnamed registry so that these tests are run by default
CPPUNIT_TEST_SUITE_REGISTRATION( FilePickerCtrlTestCase );
// also include in its own registry so that these tests can be run alone
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( FilePickerCtrlTestCase,
"FilePickerCtrlTestCase" );
void FilePickerCtrlTestCase::setUp()
{
m_file = new wxFilePickerCtrl(wxTheApp->GetTopWindow(), wxID_ANY,
wxEmptyString, wxFileSelectorPromptStr,
wxFileSelectorDefaultWildcardStr,
wxDefaultPosition, wxDefaultSize,
wxFLP_USE_TEXTCTRL);
}
void FilePickerCtrlTestCase::tearDown()
{
wxDELETE(m_file);
}
#endif //wxUSE_FILEPICKERCTRL
#if wxUSE_FONTPICKERCTRL
class FontPickerCtrlTestCase : public PickerBaseTestCase,
public CppUnit::TestCase
{
public:
FontPickerCtrlTestCase() { }
virtual void setUp();
virtual void tearDown();
private:
virtual wxPickerBase *GetBase() const { return m_font; }
CPPUNIT_TEST_SUITE( FontPickerCtrlTestCase );
wxPICKER_BASE_TESTS();
CPPUNIT_TEST( ColourSelection );
CPPUNIT_TEST_SUITE_END();
void ColourSelection();
wxFontPickerCtrl *m_font;
DECLARE_NO_COPY_CLASS(FontPickerCtrlTestCase)
};
// register in the unnamed registry so that these tests are run by default
CPPUNIT_TEST_SUITE_REGISTRATION( FontPickerCtrlTestCase );
// also include in its own registry so that these tests can be run alone
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( FontPickerCtrlTestCase,
"FontPickerCtrlTestCase" );
void FontPickerCtrlTestCase::setUp()
{
m_font = new wxFontPickerCtrl(wxTheApp->GetTopWindow(), wxID_ANY,
wxNullFont, wxDefaultPosition, wxDefaultSize,
wxFNTP_USE_TEXTCTRL);
}
void FontPickerCtrlTestCase::tearDown()
{
wxDELETE(m_font);
}
void FontPickerCtrlTestCase::ColourSelection()
{
wxColour selectedColour(0xFF4269UL);
CPPUNIT_ASSERT_EQUAL_MESSAGE("Default font picker color must be black",
m_font->GetSelectedColour(), wxColour(*wxBLACK));
m_font->SetSelectedColour(selectedColour);
CPPUNIT_ASSERT_EQUAL_MESSAGE("Font picker did not react to color selection",
m_font->GetSelectedColour(), selectedColour);
}
#endif //wxUSE_FONTPICKERCTRL