X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7bdc18790e34d17edfc02f3e25edcb3425b38a8a..bb2955b339a83d043ed94cdbed982ea77f93d95c:/src/mgl/utils.cpp diff --git a/src/mgl/utils.cpp b/src/mgl/utils.cpp index 5e5409772d..fd2e5c63c7 100644 --- a/src/mgl/utils.cpp +++ b/src/mgl/utils.cpp @@ -3,14 +3,22 @@ // Purpose: // Author: Vaclav Slavik // Id: $Id$ -// Copyright: (c) 2001 SciTech Software, Inc. (www.scitechsoft.com) +// Copyright: (c) 2001-2002 SciTech Software, Inc. (www.scitechsoft.com) // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// +// For compilers that support precompilation, includes "wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + #include "wx/utils.h" #include "wx/string.h" #include "wx/intl.h" +#include "wx/apptrait.h" #include "wx/log.h" #include "wx/process.h" @@ -42,55 +50,95 @@ void wxBell() void wxDisplaySize(int *width, int *height) { - wxASSERT_MSG( g_displayDC, wxT("MGL display DC not created yet.") ); - if (width) *width = g_displayDC->sizex(); - if (height) *height = g_displayDC->sizey(); + wxASSERT_MSG( g_displayDC, wxT("You must call wxApp::SetDisplayMode before using this function") ); + if (width) *width = g_displayDC->sizex()+1; + if (height) *height = g_displayDC->sizey()+1; } void wxDisplaySizeMM(int *width, int *height) { - wxASSERT_MSG( g_displayDC, wxT("MGL display DC not created yet.") ); - if (width) *width = g_displayDC->sizex() * 25/72; - if (height) *height = g_displayDC->sizey() * 25/72; - // FIXME_MGL -- what about returning *real* monitor dimensions? + wxASSERT_MSG( g_displayDC, wxT("You must call wxApp::SetDisplayMode before using this function") ); + + int xDPI, yDPI; + MGL_getDotsPerInch(&xDPI, &yDPI); + + if ( width ) + *width = (int)((g_displayDC->sizex()+1) * 25.4 / xDPI); + if ( height ) + *height = (int)((g_displayDC->sizey()+1) * 25.4 / yDPI); } void wxClientDisplayRect(int *x, int *y, int *width, int *height) { - // This is supposed to return desktop dimensions minus any window - // manager panels, menus, taskbars, etc. If there is a way to do that - // for this platform please fix this function, otherwise it defaults - // to the entire desktop. - if (x) *x = 0; - if (y) *y = 0; + if ( x ) *x = 0; + if ( y ) *y = 0; wxDisplaySize(width, height); + // FIXME_MGL - windowed version needs different handling } bool wxColourDisplay() { - wxASSERT_MSG( g_displayDC, wxT("MGL display DC not created yet.") ); - + wxASSERT_MSG( g_displayDC, wxT("You must call wxApp::SetDisplayMode before using this function") ); + return (wxDisplayDepth() > 1); } int wxDisplayDepth() { - wxASSERT_MSG( g_displayDC, wxT("MGL display DC not created yet.") ); + wxASSERT_MSG( g_displayDC, wxT("You must call wxApp::SetDisplayMode before using this function") ); return g_displayDC->getBitsPerPixel(); } -int wxGetOsVersion(int *majorVsn, int *minorVsn) -{ -#if 0 // FIXME_MGL - // FIXME_MGL : fix wxGetOsVersion, too - if (majorVsn) *majorVsn = GTK_MAJOR_VERSION; - if (minorVsn) *minorVsn = GTK_MINOR_VERSION; +#if wxUSE_GUI - return wxGTK; +wxToolkitInfo& wxGUIAppTraits::GetToolkitInfo() +{ + static wxToolkitInfo info; + info.shortName = _T("mgluniv"); + info.name = _T("wxMGL"); + info.versionMajor = MGL_RELEASE_MAJOR; + info.versionMinor = MGL_RELEASE_MINOR; + info.os = wxGTK; +#if defined(__UNIX__) + info.os = wxMGL_UNIX; +#elif defined(__OS2__) + info.os = wxMGL_OS2; +#elif defined(__WIN32__) + info.os = wxMGL_WIN32; +#elif defined(__DOS__) + info.os = wxMGL_DOS; +#else + #error Platform not supported by wxMGL! #endif + return info; } +#endif + +#if 0 +wxToolkitInfo& wxConsoleAppTraits::GetToolkitInfo() +{ + static wxToolkitInfo info; + info.shortName = _T("mglbase"); + info.versionMajor = MGL_RELEASE_MAJOR; + info.versionMinor = MGL_RELEASE_MINOR; + info.name = _T("wxBase"); + info.os = wxGTK; +#if defined(__UNIX__) + info.os = wxMGL_UNIX; +#elif defined(__OS2__) + info.os = wxMGL_OS2; +#elif defined(__WIN32__) + info.os = wxMGL_WIN32; +#elif defined(__DOS__) + info.os = wxMGL_DOS; +#else + #error Platform not supported by wxMGL! +#endif + return info; +} +#endif void wxGetMousePosition(int* x, int* y) { @@ -110,6 +158,8 @@ wxPoint wxGetMousePosition() int wxAddProcessCallback(wxEndProcessData *proc_data, int fd) { + wxFAIL_MSG(wxT("wxAddProcessCallback not implemented in wxMGL!")); + return 0; #if 0 // FIXME_MGL -do we need it at all? int tag = gdk_input_add(fd, GDK_INPUT_READ,