X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ae46a7fd15bff134460b9af46af896136b018fad..0bbe61b8c18a1795189f0cf73cc61c14a0fb846d:/src/common/utilscmn.cpp?ds=sidebyside diff --git a/src/common/utilscmn.cpp b/src/common/utilscmn.cpp index df728c2228..2e8c64bfe6 100644 --- a/src/common/utilscmn.cpp +++ b/src/common/utilscmn.cpp @@ -75,11 +75,13 @@ #include "wx/statusbr.h" #endif // wxUSE_GUI +#ifndef __WXPALMOS5__ #ifndef __WXWINCE__ #include #else #include "wx/msw/wince/time.h" #endif +#endif // ! __WXPALMOS5__ #ifdef __WXMAC__ #include "wx/mac/private.h" @@ -88,10 +90,12 @@ #endif #endif +#ifndef __WXPALMOS5__ #if !defined(__MWERKS__) && !defined(__WXWINCE__) #include #include #endif +#endif // ! __WXPALMOS5__ #if defined(__WXMSW__) #include "wx/msw/private.h" @@ -1033,7 +1037,7 @@ bool wxLaunchDefaultBrowser(const wxString& urlOrig, int flags) ::ShellExecuteEx(&sei); - const int nResult = (int) sei.hInstApp; + const INT_PTR nResult = (INT_PTR)sei.hInstApp; // Firefox returns file not found for some reason, so make an exception // for it @@ -1051,29 +1055,17 @@ bool wxLaunchDefaultBrowser(const wxString& urlOrig, int flags) // because the code must use Objective-C features. return wxCocoaLaunchDefaultBrowser(url, flags); #elif defined(__WXMAC__) - OSStatus err; - ICInstance inst; - long int startSel; - long int endSel; + wxCFRef< CFURLRef > curl( CFURLCreateWithString( kCFAllocatorDefault, + wxCFStringRef( url ), NULL ) ); + OSStatus err = LSOpenCFURLRef( curl , NULL ); - err = ICStart(&inst, 'STKA'); // put your app creator code here if (err == noErr) { - if (err == noErr) - { - ConstStr255Param hint = 0; - startSel = 0; - endSel = url.length(); - err = ICLaunchURL(inst, hint, url.fn_str(), endSel, &startSel, &endSel); - if (err != noErr) - wxLogDebug(wxT("ICLaunchURL error %d"), (int) err); - } - ICStop(inst); return true; } else { - wxLogDebug(wxT("ICStart error %d"), (int) err); + wxLogDebug(wxT("Browser Launch error %d"), (int) err); return false; } #else @@ -1569,7 +1561,20 @@ void wxEnableTopLevelWindows(bool enable) node->GetData()->Enable(enable); } +wxWindowDisabler::wxWindowDisabler(bool disable) +{ + m_disabled = disable; + if ( disable ) + DoDisable(); +} + wxWindowDisabler::wxWindowDisabler(wxWindow *winToSkip) +{ + m_disabled = true; + DoDisable(winToSkip); +} + +void wxWindowDisabler::DoDisable(wxWindow *winToSkip) { // remember the top level windows which were already disabled, so that we // don't reenable them later @@ -1601,6 +1606,9 @@ wxWindowDisabler::wxWindowDisabler(wxWindow *winToSkip) wxWindowDisabler::~wxWindowDisabler() { + if ( !m_disabled ) + return; + wxWindowList::compatibility_iterator node; for ( node = wxTopLevelWindows.GetFirst(); node; node = node->GetNext() ) {