X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9b894c063b9c7ca78d8b62700d009a74cc18ed80..dca0afc73cbd2a278f9d48bf75ef381b11b5aa00:/include/wx/cmdargs.h diff --git a/include/wx/cmdargs.h b/include/wx/cmdargs.h index e3dbd16a36..3f99cb50eb 100644 --- a/include/wx/cmdargs.h +++ b/include/wx/cmdargs.h @@ -26,7 +26,7 @@ // as it's used for compatibility, it tries to look as much as traditional // (char **) argv as possible, in particular it provides implicit conversions // to "char **" and also array-like operator[] -class wxCmdLineArgsArray +class WXDLLIMPEXP_BASE wxCmdLineArgsArray { public: wxCmdLineArgsArray() { m_argsA = NULL; m_argsW = NULL; } @@ -80,6 +80,12 @@ public: return !m_args.empty(); } + // and the same for "if ( !argv )" checks + bool operator!() const + { + return m_args.empty(); + } + wxString operator[](size_t n) const { return m_args[n]; @@ -92,9 +98,13 @@ public: return m_args[n]; } - // this is the only method of this class which doesn't exist solely for - // compatibility purposes: it allows to access the arguments as a - // convenient array of wxStrings + + // convenience methods, i.e. not existing only for backwards compatibility + + // do we have any arguments at all? + bool IsEmpty() const { return m_args.empty(); } + + // access the arguments as a convenient array of wxStrings const wxArrayString& GetArguments() const { return m_args; } ~wxCmdLineArgsArray() @@ -126,9 +136,16 @@ private: mutable char **m_argsA; mutable wchar_t **m_argsW; - DECLARE_NO_COPY_CLASS(wxCmdLineArgsArray) + wxDECLARE_NO_COPY_CLASS(wxCmdLineArgsArray); }; +// provide global operator overload for compatibility with the existing code +// doing things like "if ( condition && argv )" +inline bool operator&&(bool cond, const wxCmdLineArgsArray& array) +{ + return cond && !array.IsEmpty(); +} + #endif // wxUSE_UNICODE #endif // _WX_CMDARGS_H_