#include "wx/colordlg.h"
#include "wx/fontdlg.h"
#include "wx/notebook.h"
- #include "wx/frame.h"
#include "wx/statusbr.h"
#endif // wxUSE_GUI
#if defined(__WXMSW__)
#include "wx/msw/private.h"
#include "wx/msw/registry.h"
+ #include <shellapi.h> // needed for SHELLEXECUTEINFO
#endif
#if wxUSE_BASE
wxArrayInt* wxPlatform::sm_customPlatforms = NULL;
-wxPlatform& wxPlatform::Is(int platform, long value)
+void wxPlatform::Copy(const wxPlatform& platform)
{
- if (wxPlatformIs(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::IsNot(int platform, long value)
+wxPlatform& wxPlatform::ElseIfNot(int platform, long value)
{
- if (!wxPlatformIs(platform))
+ if (!Is(platform))
m_longValue = value;
return *this;
}
-wxPlatform& wxPlatform::Is(int platform, double value)
+wxPlatform wxPlatform::If(int platform, double value)
+{
+ if (Is(platform))
+ return wxPlatform(value);
+ else
+ return wxPlatform();
+}
+
+wxPlatform wxPlatform::IfNot(int platform, double value)
{
- if (wxPlatformIs(platform))
+ 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::IsNot(int platform, double value)
+wxPlatform& wxPlatform::ElseIfNot(int platform, double value)
{
- if (!wxPlatformIs(platform))
+ if (!Is(platform))
m_doubleValue = value;
return *this;
}
-wxPlatform& wxPlatform::Is(int platform, const wxString& value)
+wxPlatform wxPlatform::If(int platform, const wxString& value)
{
- if (wxPlatformIs(platform))
+ 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::IsNot(int platform, const wxString& value)
+wxPlatform& wxPlatform::ElseIfNot(int platform, const wxString& value)
{
- if (!wxPlatformIs(platform))
+ if (!Is(platform))
m_stringValue = value;
return *this;
}
-wxPlatform& wxPlatform::Default(long value)
+wxPlatform& wxPlatform::Else(long value)
{
m_longValue = value;
return *this;
}
-wxPlatform& wxPlatform::Default(double value)
+wxPlatform& wxPlatform::Else(double value)
{
m_doubleValue = value;
return *this;
}
-wxPlatform& wxPlatform::Default(const wxString& value)
+wxPlatform& wxPlatform::Else(const wxString& value)
{
m_stringValue = value;
return *this;
/// Function for testing current platform
-bool wxPlatform::PlatformIs(int platform)
+bool wxPlatform::Is(int platform)
{
#ifdef __WXMSW__
if (platform == wxMSW)
return true;
#endif
#if defined(__WXWINCE__) && defined(__SMARTPHONE__)
- if (platform == wxWinSmartphone)
+ if (platform == wxWinSmartPhone)
return true;
#endif
#ifdef __WXGTK__
if (platform == wxOS2)
return true;
#endif
-#ifdef __WXCOCA__
+#ifdef __WXCOCOA__
if (platform == wxCocoa)
return true;
#endif
{
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);
wxCurrentId = id + 1;
}
-#if wxUSE_MENUS
-
// ----------------------------------------------------------------------------
// Menu accelerators related functions
// ----------------------------------------------------------------------------
wxChar *wxStripMenuCodes(const wxChar *in, wxChar *out)
{
+#if wxUSE_MENUS
wxString s = wxMenuItem::GetLabelFromText(in);
+#else
+ wxString str(in);
+ wxString s = wxStripMenuCodes(str);
+#endif // wxUSE_MENUS
if ( out )
{
// go smash their buffer if it's not big enough - I love char * params
return out;
}
-wxString wxStripMenuCodes(const wxString& in)
+wxString wxStripMenuCodes(const wxString& in, int flags)
{
+ wxASSERT_MSG( flags, _T("this is useless to call without any flags") );
+
wxString out;
size_t len = in.length();
for ( size_t n = 0; n < len; n++ )
{
wxChar ch = in[n];
- if ( ch == _T('&') )
+ if ( (flags & wxStrip_Mnemonics) && ch == _T('&') )
{
// 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
ch = in[n];
}
}
- else if ( ch == _T('\t') )
+ else if ( (flags & wxStrip_Accel) && ch == _T('\t') )
{
// everything after TAB is accel string, exit the loop
break;
return out;
}
-#endif // wxUSE_MENUS
-
// ----------------------------------------------------------------------------
// Window search functions
// ----------------------------------------------------------------------------
wxFindMenuItemId (wxFrame * frame, const wxString& menuString, const wxString& itemString)
{
#if wxUSE_MENUS
- wxMenuBar *menuBar = frame->GetMenuBar ();
- if ( menuBar )
- return menuBar->FindMenuItem (menuString, itemString);
+ wxMenuBar *menuBar = frame->GetMenuBar ();
+ if ( menuBar )
+ return menuBar->FindMenuItem (menuString, itemString);
#endif // wxUSE_MENUS
- return wxNOT_FOUND;
+ return wxNOT_FOUND;
}
// Try to find the deepest child that contains 'pt'.
wxPoint pos = win->GetPosition();
wxSize sz = win->GetSize();
- if (win->GetParent())
+ if ( !win->IsTopLevel() && win->GetParent() )
{
pos = win->GetParent()->ClientToScreen(pos);
}
wxRect rect(pos, sz);
if (rect.Inside(pt))
return win;
- else
- return NULL;
+
+ return NULL;
}
wxWindow* wxGenericFindWindowAtPoint(const wxPoint& pt)
wxColour colRet;
wxColourDialog dialog(parent, &data);
- if (!caption.IsEmpty())
+ if (!caption.empty())
dialog.SetTitle(caption);
if ( dialog.ShowModal() == wxID_OK )
{
wxFont fontRet;
wxFontDialog dialog(parent, data);
- if (!caption.IsEmpty())
+ if (!caption.empty())
dialog.SetTitle(caption);
if ( dialog.ShowModal() == wxID_OK )
{