X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3103e8a97e834e9793f0eb149aa82a99fd64ef9a..fb61f58a73b53c1340ef0ec12a883826db6d436a:/samples/console/console.cpp diff --git a/samples/console/console.cpp b/samples/console/console.cpp index 687c903bbd..23c2eb4b0c 100644 --- a/samples/console/console.cpp +++ b/samples/console/console.cpp @@ -25,6 +25,8 @@ #include "wx/file.h" #include "wx/app.h" #include "wx/log.h" +#include "wx/apptrait.h" +#include "wx/platinfo.h" // without this pragma, the stupid compiler precompiles #defines below so that // changing them doesn't "take place" later! @@ -53,7 +55,7 @@ #define TEST_CMDLINE #define TEST_DATETIME #define TEST_DIR - #define TEST_DLLLOADER + #define TEST_DYNLIB #define TEST_ENVIRON #define TEST_EXECUTE #define TEST_FILE @@ -65,6 +67,7 @@ #define TEST_LOCALE #define TEST_LOG #define TEST_MIME + #define TEST_MODULE #define TEST_PATHLIST #define TEST_ODBC #define TEST_PRINTF @@ -85,7 +88,7 @@ #define TEST_WCHAR #define TEST_ZIP #else // #if TEST_ALL - #define TEST_STACKWALKER + #define TEST_INFO_FUNCTIONS #endif // some tests are interactive, define this to run them @@ -201,7 +204,7 @@ static void TestCmdLineConvert() #ifdef __UNIX__ static const wxChar *ROOTDIR = _T("/"); static const wxChar *TESTDIR = _T("/usr/local/share"); -#elif defined(__WXMSW__) +#elif defined(__WXMSW__) || defined(__DOS__) || defined(__OS2__) static const wxChar *ROOTDIR = _T("c:\\"); static const wxChar *TESTDIR = _T("d:\\"); #else @@ -228,6 +231,8 @@ static void TestDirEnumHelper(wxDir& dir, wxPuts(wxEmptyString); } +#if TEST_ALL + static void TestDirEnum() { wxPuts(_T("*** Testing wxDir::GetFirst/GetNext ***")); @@ -283,6 +288,8 @@ static void TestDirEnum() TestDirEnumHelper(dirNo); } +#endif // TEST_ALL + class DirPrintTraverser : public wxDirTraverser { public: @@ -333,6 +340,8 @@ static void TestDirTraverse() dir.Traverse(traverser, wxEmptyString, wxDIR_DIRS | wxDIR_HIDDEN); } +#if TEST_ALL + static void TestDirExists() { wxPuts(_T("*** Testing wxDir::Exists() ***")); @@ -366,13 +375,15 @@ static void TestDirExists() } } +#endif // TEST_ALL + #endif // TEST_DIR // ---------------------------------------------------------------------------- // wxDllLoader // ---------------------------------------------------------------------------- -#ifdef TEST_DLLLOADER +#ifdef TEST_DYNLIB #include "wx/dynlib.h" @@ -398,7 +409,7 @@ static void TestDllLoad() } else { - typedef int (*wxStrlenType)(const char *); + typedef int (wxSTDCALL *wxStrlenType)(const char *); wxStrlenType pfnStrlen = (wxStrlenType)lib.GetSymbol(FUNC_NAME); if ( !pfnStrlen ) { @@ -419,6 +430,26 @@ static void TestDllLoad() wxPuts(_T("... ok")); } } + +#ifdef __WXMSW__ + static const wxChar *FUNC_NAME_AW = _T("lstrlen"); + + typedef int (wxSTDCALL *wxStrlenTypeAorW)(const wxChar *); + wxStrlenTypeAorW + pfnStrlenAorW = (wxStrlenTypeAorW)lib.GetSymbolAorW(FUNC_NAME_AW); + if ( !pfnStrlenAorW ) + { + wxPrintf(_T("ERROR: function '%s' wasn't found in '%s'.\n"), + FUNC_NAME_AW, LIB_NAME); + } + else + { + if ( pfnStrlenAorW(_T("foobar")) != 6 ) + { + wxPrintf(_T("ERROR: loaded function is not wxStrlen()!\n")); + } + } +#endif // __WXMSW__ } } @@ -450,7 +481,7 @@ static void TestDllListLoaded() #endif -#endif // TEST_DLLLOADER +#endif // TEST_DYNLIB // ---------------------------------------------------------------------------- // wxGet/SetEnv @@ -869,8 +900,8 @@ static void TestFileNameCwd() #ifdef TEST_FILETIME -#include -#include +#include "wx/filename.h" +#include "wx/datetime.h" static void TestFileGetTimes() { @@ -1353,6 +1384,80 @@ static void TestMimeAssociate() #endif // TEST_MIME +// ---------------------------------------------------------------------------- +// module dependencies feature +// ---------------------------------------------------------------------------- + +#ifdef TEST_MODULE + +#include "wx/module.h" + +class wxTestModule : public wxModule +{ +protected: + virtual bool OnInit() { wxPrintf(_T("Load module: %s\n"), GetClassInfo()->GetClassName()); return true; } + virtual void OnExit() { wxPrintf(_T("Unload module: %s\n"), GetClassInfo()->GetClassName()); } +}; + +class wxTestModuleA : public wxTestModule +{ +public: + wxTestModuleA(); +private: + DECLARE_DYNAMIC_CLASS(wxTestModuleA) +}; + +class wxTestModuleB : public wxTestModule +{ +public: + wxTestModuleB(); +private: + DECLARE_DYNAMIC_CLASS(wxTestModuleB) +}; + +class wxTestModuleC : public wxTestModule +{ +public: + wxTestModuleC(); +private: + DECLARE_DYNAMIC_CLASS(wxTestModuleC) +}; + +class wxTestModuleD : public wxTestModule +{ +public: + wxTestModuleD(); +private: + DECLARE_DYNAMIC_CLASS(wxTestModuleD) +}; + +IMPLEMENT_DYNAMIC_CLASS(wxTestModuleC, wxModule) +wxTestModuleC::wxTestModuleC() +{ + AddDependency(CLASSINFO(wxTestModuleD)); +} + +IMPLEMENT_DYNAMIC_CLASS(wxTestModuleA, wxModule) +wxTestModuleA::wxTestModuleA() +{ + AddDependency(CLASSINFO(wxTestModuleB)); + AddDependency(CLASSINFO(wxTestModuleD)); +} + +IMPLEMENT_DYNAMIC_CLASS(wxTestModuleD, wxModule) +wxTestModuleD::wxTestModuleD() +{ +} + +IMPLEMENT_DYNAMIC_CLASS(wxTestModuleB, wxModule) +wxTestModuleB::wxTestModuleB() +{ + AddDependency(CLASSINFO(wxTestModuleD)); + AddDependency(CLASSINFO(wxTestModuleC)); +} + +#endif // TEST_MODULE + // ---------------------------------------------------------------------------- // misc information functions // ---------------------------------------------------------------------------- @@ -1399,7 +1504,7 @@ static void TestOsInfo() wxPrintf(_T("Running under: %s, version %d.%d\n"), wxGetOsDescription().c_str(), major, minor); - wxPrintf(_T("%ld free bytes of memory left.\n"), wxGetFreeMemory()); + wxPrintf(_T("%ld free bytes of memory left.\n"), wxGetFreeMemory().ToLong()); wxPrintf(_T("Host name is %s (%s).\n"), wxGetHostName().c_str(), wxGetFullHostName().c_str()); @@ -1407,6 +1512,23 @@ static void TestOsInfo() wxPuts(wxEmptyString); } +static void TestPlatformInfo() +{ + wxPuts(_T("*** Testing wxPlatformInfo functions ***\n")); + + // get this platform + wxPlatformInfo plat; + + wxPrintf(_T("Operating system family name is: %s\n"), plat.GetOperatingSystemFamilyName().c_str()); + wxPrintf(_T("Operating system name is: %s\n"), plat.GetOperatingSystemIdName().c_str()); + wxPrintf(_T("Port ID name is: %s\n"), plat.GetPortIdName().c_str()); + wxPrintf(_T("Port ID short name is: %s\n"), plat.GetPortIdShortName().c_str()); + wxPrintf(_T("Architecture is: %s\n"), plat.GetArchName().c_str()); + wxPrintf(_T("Endianness is: %s\n"), plat.GetEndiannessName().c_str()); + + wxPuts(wxEmptyString); +} + static void TestUserInfo() { wxPuts(_T("*** Testing user info functions ***\n")); @@ -1526,7 +1648,7 @@ static void TestRegExInteractive() #ifdef TEST_ODBC -#include +#include "wx/db.h" static void TestDbOpen() { @@ -2085,9 +2207,9 @@ static void TestScopeGuard() wxON_BLOCK_EXIT2(function2, 3.14, 'p'); Object obj; - wxON_BLOCK_EXIT_OBJ0(obj, &Object::method0); - wxON_BLOCK_EXIT_OBJ1(obj, &Object::method1, 7); - wxON_BLOCK_EXIT_OBJ2(obj, &Object::method2, 2.71, 'e'); + wxON_BLOCK_EXIT_OBJ0(obj, Object::method0); + wxON_BLOCK_EXIT_OBJ1(obj, Object::method1, 7); + wxON_BLOCK_EXIT_OBJ2(obj, Object::method2, 2.71, 'e'); wxScopeGuard dismissed = wxMakeGuard(function0); dismissed.Dismiss(); @@ -2656,7 +2778,17 @@ static void TestStandardPaths() wxPrintf(_T("Data dir (sys local):\t%s\n"), stdp.GetLocalDataDir().c_str()); wxPrintf(_T("Data dir (user):\t%s\n"), stdp.GetUserDataDir().c_str()); wxPrintf(_T("Data dir (user local):\t%s\n"), stdp.GetUserLocalDataDir().c_str()); + wxPrintf(_T("Documents dir:\t\t%s\n"), stdp.GetDocumentsDir().c_str()); wxPrintf(_T("Plugins dir:\t\t%s\n"), stdp.GetPluginsDir().c_str()); + wxPrintf(_T("Resources dir:\t\t%s\n"), stdp.GetResourcesDir().c_str()); + wxPrintf(_T("Localized res. dir:\t%s\n"), + stdp.GetLocalizedResourcesDir(_T("fr")).c_str()); + wxPrintf(_T("Message catalogs dir:\t%s\n"), + stdp.GetLocalizedResourcesDir + ( + _T("fr"), + wxStandardPaths::ResourceCat_Messages + ).c_str()); } #endif // TEST_STDPATHS @@ -4119,10 +4251,10 @@ int main(int argc, char **argv) TestDirTraverse(); #endif // TEST_DIR -#ifdef TEST_DLLLOADER +#ifdef TEST_DYNLIB TestDllLoad(); TestDllListLoaded(); -#endif // TEST_DLLLOADER +#endif // TEST_DYNLIB #ifdef TEST_ENVIRON TestEnvironment(); @@ -4219,13 +4351,12 @@ int main(int argc, char **argv) #endif // TEST_MIME #ifdef TEST_INFO_FUNCTIONS - #if TEST_ALL - TestOsInfo(); - TestUserInfo(); + TestOsInfo(); + TestPlatformInfo(); + TestUserInfo(); - #if TEST_INTERACTIVE - TestDiskInfo(); - #endif + #if TEST_INTERACTIVE + TestDiskInfo(); #endif #endif // TEST_INFO_FUNCTIONS @@ -4365,4 +4496,3 @@ int main(int argc, char **argv) wxUnusedVar(argv); return 0; } -