// misc functions
// ----------------------------------------------------------------------------
-// Don't synthesize KeyUp events holding down a key and producing KeyDown
-// events with autorepeat. On by default and always on in wxMSW. wxGTK version
-// in utilsgtk.cpp.
-#ifndef __WXGTK__
-bool wxSetDetectableAutoRepeat( bool WXUNUSED(flag) )
-{
- return true; // detectable auto-repeat is the only mode MSW supports
-}
-#endif // !wxGTK
-
// Return the current date/time
wxString wxNow()
{
return wxEmptyString;
#endif
#else
- time_t now = time((time_t *) NULL);
+ time_t now = time(NULL);
char *date = ctime(&now);
date[24] = '\0';
return wxString::FromAscii(date);
{
if ( errno != ERANGE )
{
- wxLogSysError(_T("Failed to get current directory"));
+ wxLogSysError(wxT("Failed to get current directory"));
return wxEmptyString;
}
#if wxUSE_STREAMS
static bool ReadAll(wxInputStream *is, wxArrayString& output)
{
- wxCHECK_MSG( is, false, _T("NULL stream in wxExecute()?") );
+ wxCHECK_MSG( is, false, wxT("NULL stream in wxExecute()?") );
// the stream could be already at EOF or in wxSTREAM_BROKEN_PIPE state
is->Reset();
#if wxUSE_GUI
+// this function is only really implemented for X11-based ports, including GTK1
+// (GTK2 sets detectable auto-repeat automatically anyhow)
+#if !(defined(__WXX11__) || defined(__WXMOTIF__) || \
+ (defined(__WXGTK__) && !defined(__WXGTK20__)))
+bool wxSetDetectableAutoRepeat( bool WXUNUSED(flag) )
+{
+ return true;
+}
+#endif // !X11-based port
+
// ----------------------------------------------------------------------------
// Launch default browser
// ----------------------------------------------------------------------------
// implemented in a port-specific utils source file:
bool wxDoLaunchDefaultBrowser(const wxString& url, const wxString& scheme, int flags);
-#elif defined(__UNIX__) || defined(__WXCOCOA__) || \
+#elif defined(__WXX11__) || defined(__WXGTK__) || defined(__WXMOTIF__) || defined(__WXCOCOA__) || \
(defined(__WXMAC__) && !defined(__WXOSX_IPHONE__))
// implemented in a port-specific utils source file:
wxString cmd;
#if wxUSE_MIMETYPE
- wxFileType *ft = wxTheMimeTypesManager->GetFileTypeFromExtension(_T("html"));
+ wxFileType *ft = wxTheMimeTypesManager->GetFileTypeFromExtension(wxT("html"));
if ( ft )
{
wxString mt;
{
// fallback to checking for the BROWSER environment variable
if ( !wxGetEnv(wxT("BROWSER"), &cmd) || cmd.empty() )
- cmd << _T(' ') << url;
+ cmd << wxT(' ') << url;
}
ok = ( !cmd.empty() && wxExecute(cmd) );
// this check is useful to avoid that wxURI recognizes as scheme parts of
// the filename, in case urlOrig is a local filename
// (e.g. "C:\\test.txt" when parsed by wxURI reports a scheme == "C")
- bool hasValidScheme = uri.HasScheme() &&
- (uri.GetScheme() == "http" || uri.GetScheme() == "file");
+ bool hasValidScheme = uri.HasScheme() && uri.GetScheme().length() > 1;
#if defined(__WXMSW__)
//
// for (int i=0; i<2; i++)
// {
+ // // test arguments without a valid URL scheme:
// wxLaunchDefaultBrowser("C:\\test.txt", i==0 ? 0 : wxBROWSER_NEW_WINDOW);
// wxLaunchDefaultBrowser("wxwidgets.org", i==0 ? 0 : wxBROWSER_NEW_WINDOW);
+ //
+ // // test arguments with different valid schemes:
// wxLaunchDefaultBrowser("file:/C%3A/test.txt", i==0 ? 0 : wxBROWSER_NEW_WINDOW);
// wxLaunchDefaultBrowser("http://wxwidgets.org", i==0 ? 0 : wxBROWSER_NEW_WINDOW);
+ // wxLaunchDefaultBrowser("mailto:user@host.org", i==0 ? 0 : wxBROWSER_NEW_WINDOW);
// }
// (assuming you have a C:\test.txt file)
if ( uri.GetScheme() == "file" )
{
- // ShellExecuteEx() doesn't like the "file" scheme when opening local files;
+ // TODO: extract URLToFileName() to some always compiled in
+ // function
+#if wxUSE_FILESYSTEM
+ // ShellExecuteEx() doesn't like the "file" scheme when opening local files;
// remove it
url = wxFileSystem::URLToFileName(url).GetFullPath();
+#endif // wxUSE_FILESYSTEM
}
}
wxString wxStripMenuCodes(const wxString& in, int flags)
{
- wxASSERT_MSG( flags, _T("this is useless to call without any flags") );
+ wxASSERT_MSG( flags, wxT("this is useless to call without any flags") );
wxString out;
for ( size_t n = 0; n < len; n++ )
{
wxChar ch = in[n];
- if ( (flags & wxStrip_Mnemonics) && ch == _T('&') )
+ if ( (flags & wxStrip_Mnemonics) && ch == wxT('&') )
{
// skip it, it is used to introduce the accel char (or to quote
// itself in which case it should still be skipped): note that it
// can't be the last character of the string
if ( ++n == len )
{
- wxLogDebug(_T("Invalid menu string '%s'"), in.c_str());
+ wxLogDebug(wxT("Invalid menu string '%s'"), in.c_str());
}
else
{
ch = in[n];
}
}
- else if ( (flags & wxStrip_Accel) && ch == _T('\t') )
+ else if ( (flags & wxStrip_Accel) && ch == wxT('\t') )
{
// everything after TAB is accel string, exit the loop
break;
int wxMessageBox(const wxString& message, const wxString& caption, long style,
wxWindow *parent, int WXUNUSED(x), int WXUNUSED(y) )
{
- long decorated_style = style;
-
- if ( ( style & ( wxICON_EXCLAMATION | wxICON_HAND | wxICON_INFORMATION | wxICON_QUESTION ) ) == 0 )
+ // add the appropriate icon unless this was explicitly disabled by use of
+ // wxICON_NONE
+ if ( !(style & wxICON_NONE) && !(style & wxICON_MASK) )
{
- decorated_style |= ( style & wxYES ) ? wxICON_QUESTION : wxICON_INFORMATION ;
+ style |= style & wxYES ? wxICON_QUESTION : wxICON_INFORMATION;
}
- wxMessageDialog dialog(parent, message, caption, decorated_style);
+ wxMessageDialog dialog(parent, message, caption, style);
int ans = dialog.ShowModal();
switch ( ans )
return wxCANCEL;
}
- wxFAIL_MSG( _T("unexpected return code from wxMessageDialog") );
+ wxFAIL_MSG( wxT("unexpected return code from wxMessageDialog") );
return wxCANCEL;
}
{
// don't translate these strings, they're for diagnostics purposes only
wxString msg;
- msg.Printf(_T("wxWidgets Library (%s port)\n")
- _T("Version %d.%d.%d%s%s, compiled at %s %s\n")
- _T("Runtime version of toolkit used is %d.%d.%s\n")
- _T("Copyright (c) 1995-2009 wxWidgets team"),
- wxPlatformInfo::Get().GetPortIdName().c_str(),
+ msg.Printf(wxS("wxWidgets Library (%s port)\n")
+ wxS("Version %d.%d.%d (Unicode: %s, debug level: %d),\n")
+ wxS("compiled at %s %s\n\n")
+ wxS("Runtime version of toolkit used is %d.%d.\n"),
+ wxPlatformInfo::Get().GetPortIdName(),
wxMAJOR_VERSION,
wxMINOR_VERSION,
wxRELEASE_NUMBER,
-#if wxUSE_UNICODE
- L" (Unicode)",
+#if wxUSE_UNICODE_UTF8
+ "UTF-8",
+#elif wxUSE_UNICODE
+ "wchar_t",
#else
- wxEmptyString,
-#endif
-#ifdef __WXDEBUG__
- _T(" Debug build"),
-#else
- wxEmptyString,
+ "none",
#endif
+ wxDEBUG_LEVEL,
__TDATE__,
__TTIME__,
wxPlatformInfo::Get().GetToolkitMajorVersion(),
- wxPlatformInfo::Get().GetToolkitMinorVersion(),
+ wxPlatformInfo::Get().GetToolkitMinorVersion()
+ );
+
#ifdef __WXGTK__
- wxString::Format("\nThe compile-time GTK+ version is %d.%d.%d.",
- GTK_MAJOR_VERSION,
- GTK_MINOR_VERSION,
- GTK_MICRO_VERSION).c_str()
-#else
- wxEmptyString
-#endif
- );
- wxMessageBox(msg, _T("wxWidgets information"),
+ msg += wxString::Format("Compile-time GTK+ version is %d.%d.%d.\n",
+ GTK_MAJOR_VERSION,
+ GTK_MINOR_VERSION,
+ GTK_MICRO_VERSION);
+#endif // __WXGTK__
+
+ msg += wxS("\nCopyright (c) 1995-2009 wxWidgets team");
+
+ wxMessageBox(msg, wxT("wxWidgets information"),
wxICON_INFORMATION | wxOK,
parent);
}