X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f14d6dd133f96d7110b9ff635e977349b1806238..a340b80d8a692f5308d26c1c1b95fd689a1d7eb3:/src/common/utilscmn.cpp?ds=sidebyside diff --git a/src/common/utilscmn.cpp b/src/common/utilscmn.cpp index c0d7e529c8..cf07a0a5c2 100644 --- a/src/common/utilscmn.cpp +++ b/src/common/utilscmn.cpp @@ -62,7 +62,7 @@ #include #include -#if !defined(__WATCOMC__) +#if !wxONLY_WATCOM_EARLIER_THAN(1,4) #if !(defined(_MSC_VER) && (_MSC_VER > 800)) #include #endif @@ -72,7 +72,6 @@ #include "wx/colordlg.h" #include "wx/fontdlg.h" #include "wx/notebook.h" - #include "wx/frame.h" #include "wx/statusbr.h" #endif // wxUSE_GUI @@ -303,6 +302,195 @@ int wxGetOsVersion(int *verMaj, int *verMin) return info.os; } +/* + * Class to make it easier to specify platform-dependent values + */ + +wxArrayInt* wxPlatform::sm_customPlatforms = NULL; + +void wxPlatform::Copy(const wxPlatform& platform) +{ + m_longValue = platform.m_longValue; + m_doubleValue = platform.m_doubleValue; + m_stringValue = platform.m_stringValue; +} + +wxPlatform wxPlatform::If(int platform, long value) +{ + if (Is(platform)) + return wxPlatform(value); + else + return wxPlatform(); +} + +wxPlatform wxPlatform::IfNot(int platform, long value) +{ + if (!Is(platform)) + return wxPlatform(value); + else + return wxPlatform(); +} + +wxPlatform& wxPlatform::ElseIf(int platform, long value) +{ + if (Is(platform)) + m_longValue = value; + return *this; +} + +wxPlatform& wxPlatform::ElseIfNot(int platform, long value) +{ + if (!Is(platform)) + m_longValue = value; + return *this; +} + +wxPlatform wxPlatform::If(int platform, double value) +{ + if (Is(platform)) + return wxPlatform(value); + else + return wxPlatform(); +} + +wxPlatform wxPlatform::IfNot(int platform, double value) +{ + if (!Is(platform)) + return wxPlatform(value); + else + return wxPlatform(); +} + +wxPlatform& wxPlatform::ElseIf(int platform, double value) +{ + if (Is(platform)) + m_doubleValue = value; + return *this; +} + +wxPlatform& wxPlatform::ElseIfNot(int platform, double value) +{ + if (!Is(platform)) + m_doubleValue = value; + return *this; +} + +wxPlatform wxPlatform::If(int platform, const wxString& value) +{ + if (Is(platform)) + return wxPlatform(value); + else + return wxPlatform(); +} + +wxPlatform wxPlatform::IfNot(int platform, const wxString& value) +{ + if (!Is(platform)) + return wxPlatform(value); + else + return wxPlatform(); +} + +wxPlatform& wxPlatform::ElseIf(int platform, const wxString& value) +{ + if (Is(platform)) + m_stringValue = value; + return *this; +} + +wxPlatform& wxPlatform::ElseIfNot(int platform, const wxString& value) +{ + if (!Is(platform)) + m_stringValue = value; + return *this; +} + +wxPlatform& wxPlatform::Else(long value) +{ + m_longValue = value; + return *this; +} + +wxPlatform& wxPlatform::Else(double value) +{ + m_doubleValue = value; + return *this; +} + +wxPlatform& wxPlatform::Else(const wxString& value) +{ + m_stringValue = value; + return *this; +} + +void wxPlatform::AddPlatform(int platform) +{ + if (!sm_customPlatforms) + sm_customPlatforms = new wxArrayInt; + sm_customPlatforms->Add(platform); +} + +void wxPlatform::ClearPlatforms() +{ + delete sm_customPlatforms; + sm_customPlatforms = NULL; +} + +/// Function for testing current platform + +bool wxPlatform::Is(int platform) +{ +#ifdef __WXMSW__ + if (platform == wxMSW) + return true; +#endif +#ifdef __WXWINCE__ + if (platform == wxWinCE) + return true; +#endif +#if defined(__WXWINCE__) && defined(__POCKETPC__) + if (platform == wxWinPocketPC) + return true; +#endif +#if defined(__WXWINCE__) && defined(__SMARTPHONE__) + if (platform == wxWinSmartPhone) + return true; +#endif +#ifdef __WXGTK__ + if (platform == wxGTK) + return true; +#endif +#ifdef __WXMAC__ + if (platform == wxMac) + return true; +#endif +#ifdef __WXX11__ + if (platform == wxX11) + return true; +#endif +#ifdef __UNIX__ + if (platform == wxUnix) + return true; +#endif +#ifdef __WXMGL__ + if (platform == wxMGL) + return true; +#endif +#ifdef __WXOS2__ + if (platform == wxOS2) + return true; +#endif +#ifdef __WXCOCOA__ + if (platform == wxCocoa) + return true; +#endif + + if (sm_customPlatforms && sm_customPlatforms->Index(platform) != wxNOT_FOUND) + return true; + + return false; +} + // ---------------------------------------------------------------------------- // network and user id functions // ---------------------------------------------------------------------------- @@ -621,15 +809,16 @@ bool wxLaunchDefaultBrowser(const wxString& urlOrig, int flags) SInt32 endSel; err = ICStart(&inst, 'STKA'); // put your app creator code here - if (err == noErr) { + if (err == noErr) + { #if !TARGET_CARBON - err = ICFindConfigFile(inst, 0, nil); + err = ICFindConfigFile(inst, 0, NULL); #endif if (err == noErr) { ConstStr255Param hint = 0; startSel = 0; - endSel = url.Length(); + endSel = url.length(); err = ICLaunchURL(inst, hint, url.fn_str(), endSel, &startSel, &endSel); if (err != noErr) wxLogDebug(wxT("ICLaunchURL error %d"), (int) err); @@ -644,31 +833,34 @@ bool wxLaunchDefaultBrowser(const wxString& urlOrig, int flags) } #elif wxUSE_MIMETYPE // Non-windows way - wxFileType *ft = wxTheMimeTypesManager->GetFileTypeFromExtension (_T("html")); + bool ok = false; + wxString cmd; + + wxFileType *ft = wxTheMimeTypesManager->GetFileTypeFromExtension(_T("html")); if ( ft ) { wxString mt; ft->GetMimeType(&mt); - wxString cmd; - bool ok = ft->GetOpenCommand(&cmd, wxFileType::MessageParameters(url)); + ok = ft->GetOpenCommand(&cmd, wxFileType::MessageParameters(url)); delete ft; - - if ( !ok || cmd.empty() ) - { - // fallback to checking for the BROWSER environment variable - cmd = wxGetenv(wxT("BROWSER")); - if ( !cmd.empty() ) - cmd << _T(' ') << url; - } - - if ( !cmd.empty() && wxExecute(cmd) ) - return true; } - else // no file type for html extension + + if ( !ok || cmd.empty() ) { - wxLogError(_T("No default application configured for HTML files.")); + // fallback to checking for the BROWSER environment variable + cmd = wxGetenv(wxT("BROWSER")); + if ( !cmd.empty() ) + cmd << _T(' ') << url; } + + ok = ( !cmd.empty() && wxExecute(cmd) ); + if (ok) + return ok; + + // no file type for HTML extension + wxLogError(_T("No default application configured for HTML files.")); + #endif // !wxUSE_MIMETYPE && !__WXMSW__ wxLogSysError(_T("Failed to open URL \"%s\" in default browser."), @@ -1000,7 +1192,7 @@ wxColour wxGetColourFromUser(wxWindow *parent, const wxColour& colInit, const wx wxColour colRet; wxColourDialog dialog(parent, &data); - if (!caption.IsEmpty()) + if (!caption.empty()) dialog.SetTitle(caption); if ( dialog.ShowModal() == wxID_OK ) { @@ -1025,7 +1217,7 @@ wxFont wxGetFontFromUser(wxWindow *parent, const wxFont& fontInit, const wxStrin wxFont fontRet; wxFontDialog dialog(parent, data); - if (!caption.IsEmpty()) + if (!caption.empty()) dialog.SetTitle(caption); if ( dialog.ShowModal() == wxID_OK ) {