/* GWEN Copyright (c) 2011 Facepunch Studios See license in Gwen.h */ #pragma once #ifndef GWEN_UNITTEST_UNITTEST_H #define GWEN_UNITTEST_UNITTEST_H #include "Gwen/Gwen.h" #include "Gwen/Align.h" #include "Gwen/Utility.h" #include "Gwen/Controls/WindowControl.h" #include "Gwen/Controls/TabControl.h" #include "Gwen/Controls/ListBox.h" class UnitTest; class GUnit : public Gwen::Controls::Base { public: GWEN_CONTROL_INLINE(GUnit, Gwen::Controls::Base) { m_pUnitTest = NULL; } void SetUnitTest(UnitTest* u) { m_pUnitTest = u; } void UnitPrint(const Gwen::UnicodeString& str); void UnitPrint(const Gwen::String& str); UnitTest* m_pUnitTest; }; class UnitTest : public Gwen::Controls::WindowControl { public: GWEN_CONTROL(UnitTest, Gwen::Controls::WindowControl); void PrintText(const Gwen::UnicodeString& str); void Render(Gwen::Skin::Base* skin); private: Gwen::Controls::TabControl* m_TabControl; Gwen::Controls::ListBox* m_TextOutput; unsigned int m_iFrames; float m_fLastSecond; }; #define DEFINE_UNIT_TEST(name, displayname) \ GUnit* RegisterUnitTest_##name(Gwen::Controls::TabControl* tab) \ { \ GUnit* u = new name(tab); \ tab->AddPage(displayname, u); \ return u; \ } #endif