X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9b894c063b9c7ca78d8b62700d009a74cc18ed80..150ac0dae391f9b8a59894351432e5a1de3b55f7:/include/wx/cmdargs.h?ds=sidebyside diff --git a/include/wx/cmdargs.h b/include/wx/cmdargs.h index e3dbd16a36..a120c45870 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() @@ -129,6 +139,13 @@ private: DECLARE_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_