X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b3208e1158e3bbc38b73eeda606d92be9e649c1c..a9d3371aec4154b69b46115c2b62d57306f26048:/include/wx/renderer.h diff --git a/include/wx/renderer.h b/include/wx/renderer.h index 20c06d29ad..2906de378a 100644 --- a/include/wx/renderer.h +++ b/include/wx/renderer.h @@ -26,9 +26,17 @@ #define _WX_RENDERER_H_ class WXDLLEXPORT wxDC; -class WXDLLEXPORT wxRect; class WXDLLEXPORT wxWindow; +#include "wx/gdicmn.h" // for wxPoint + +// some platforms have their own renderers, others use the generic one +#if defined(__WXMSW__) || defined(__WXMAC__) || defined(__WXGTK__) + #define wxHAS_NATIVE_RENDERER +#else + #undef wxHAS_NATIVE_RENDERER +#endif + // ---------------------------------------------------------------------------- // constants // ---------------------------------------------------------------------------- @@ -61,6 +69,8 @@ enum class WXDLLEXPORT wxRendererNative { public: + virtual ~wxRendererNative() { } // stop GCC warning + // drawing functions // ----------------- @@ -86,7 +96,8 @@ public: virtual void DrawSplitterSash(wxWindow *win, wxDC& dc, const wxSize& size, - wxCoord position) = 0; + wxCoord position, + wxOrientation orient) = 0; // geometry functions @@ -105,6 +116,9 @@ public: // return the generic implementation of the renderer static wxRendererNative& GetGeneric(); + + // return the default (native) implementation for this platform + static wxRendererNative& GetDefault(); }; // ---------------------------------------------------------------------------- @@ -141,8 +155,9 @@ public: virtual void DrawSplitterSash(wxWindow *win, wxDC& dc, const wxSize& size, - wxCoord position) - { m_rendererNative.DrawSplitterSash(win, dc, size, position); } + wxCoord position, + wxOrientation orient) + { m_rendererNative.DrawSplitterSash(win, dc, size, position, orient); } virtual wxPoint GetSplitterSashAndBorder(const wxWindow *win) @@ -150,7 +165,24 @@ public: protected: wxRendererNative& m_rendererNative; + + DECLARE_NO_COPY_CLASS(wxDelegateRendererNative) }; +// ---------------------------------------------------------------------------- +// inline functions implementation +// ---------------------------------------------------------------------------- + +#ifndef wxHAS_NATIVE_RENDERER + +// default native renderer is the generic one then +/* static */ inline +wxRendererNative& wxRendererNative::GetDefault() +{ + return GetGeneric(); +} + +#endif // !wxHAS_NATIVE_RENDERER + #endif // _WX_RENDERER_H_