X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5c33522fca7cddc441a316f5b9fb50d7685435ba..1f0acb435592470b421b80df854fbbb08cd2853f:/include/wx/pen.h diff --git a/include/wx/pen.h b/include/wx/pen.h index 479a9668ea..f6e745bd81 100644 --- a/include/wx/pen.h +++ b/include/wx/pen.h @@ -84,6 +84,19 @@ public: virtual wxPenCap GetCap() const = 0; virtual int GetWidth() const = 0; virtual int GetDashes(wxDash **ptr) const = 0; + + // Convenient helpers for testing whether the pen is a transparent one: + // unlike GetStyle() == wxPENSTYLE_TRANSPARENT, they work correctly even if + // the pen is invalid (they both return false in this case). + bool IsTransparent() const + { + return IsOk() && GetStyle() == wxPENSTYLE_TRANSPARENT; + } + + bool IsNonTransparent() const + { + return IsOk() && GetStyle() != wxPENSTYLE_TRANSPARENT; + } }; #if defined(__WXPALMOS__) @@ -135,6 +148,11 @@ extern WXDLLIMPEXP_DATA_CORE(wxPenList*) wxThePenList; // compilers as it compares elements of different enums #if FUTURE_WXWIN_COMPATIBILITY_3_0 +// Unfortunately some compilers have ambiguity issues when enum comparisons are +// overloaded so we have to disable the overloads in this case, see +// wxCOMPILER_NO_OVERLOAD_ON_ENUM definition in wx/platform.h for more details. +#ifndef wxCOMPILER_NO_OVERLOAD_ON_ENUM + inline bool operator==(wxPenStyle s, wxDeprecatedGUIConstants t) { return static_cast(s) == static_cast(t); @@ -145,6 +163,8 @@ inline bool operator!=(wxPenStyle s, wxDeprecatedGUIConstants t) return !(s == t); } +#endif // wxCOMPILER_NO_OVERLOAD_ON_ENUM + #endif // FUTURE_WXWIN_COMPATIBILITY_3_0 #endif // _WX_PEN_H_BASE_