#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
// ----------------------------------------------------------------------------
class WXDLLEXPORT wxRendererNative
{
public:
+ virtual ~wxRendererNative() { } // stop GCC warning
+
// drawing functions
// -----------------
virtual void DrawSplitterSash(wxWindow *win,
wxDC& dc,
const wxSize& size,
- wxCoord position) = 0;
+ wxCoord position,
+ wxOrientation orient) = 0;
// geometry functions
// return the generic implementation of the renderer
static wxRendererNative& GetGeneric();
+
+ // return the default (native) implementation for this platform
+ static wxRendererNative& GetDefault();
};
// ----------------------------------------------------------------------------
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)
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_