X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/70884c6fc84177ba95da356c4aa4c63eb5a13983..61f09f569358d7b2752733c4a24d1bd10daefae2:/include/wx/gtk/dvrenderers.h diff --git a/include/wx/gtk/dvrenderers.h b/include/wx/gtk/dvrenderers.h index 7f6cb0777e..3997f8013f 100644 --- a/include/wx/gtk/dvrenderers.h +++ b/include/wx/gtk/dvrenderers.h @@ -3,7 +3,7 @@ // Purpose: All GTK wxDataViewCtrl renderer classes // Author: Robert Roebling, Vadim Zeitlin // Created: 2009-11-07 (extracted from wx/gtk/dataview.h) -// RCS-ID: $Id: wxhead.h,v 1.11 2009-06-29 10:23:04 zeitlin Exp $ +// RCS-ID: $Id$ // Copyright: (c) 2006 Robert Roebling // (c) 2009 Vadim Zeitlin // Licence: wxWindows licence @@ -44,6 +44,9 @@ public: virtual void SetAlignment( int align ); virtual bool GtkSupportsAttrs() const { return true; } + virtual bool GtkSetAttr(const wxDataViewItemAttr& attr); + + virtual GtkCellRendererText *GtkGetTextRenderer() const; protected: // implementation of Set/GetValue() @@ -114,24 +117,51 @@ public: wxDC *dc, int state); -protected: + // store GTK render call parameters for possible later use + void GTKStashRenderParams(GdkWindow *window, + GtkWidget *widget, + GdkRectangle *background_area, + GdkRectangle *expose_area, + int flags) + { + m_renderParams.window = window; + m_renderParams.widget = widget; + m_renderParams.background_area = background_area; + m_renderParams.expose_area = expose_area; + m_renderParams.flags = flags; + } + // we may or not support attributes, as we don't know it, return true to + // make it possible to use them + virtual bool GtkSupportsAttrs() const { return true; } + + virtual bool GtkSetAttr(const wxDataViewItemAttr& attr) + { + SetAttr(attr); + return !attr.IsDefault(); + } + + virtual GtkCellRendererText *GtkGetTextRenderer() const; + +protected: bool Init(wxDataViewCellMode mode, int align); private: wxDC *m_dc; -public: - // Internal, temporary for RenderText. - GtkCellRenderer *m_text_renderer; - GdkWindow *window; - GtkWidget *widget; - GdkRectangle *background_area; - GdkRectangle *cell_area; - GdkRectangle *expose_area; - int flags; + GtkCellRendererText *m_text_renderer; + + // parameters of the original render() call stored so that we could pass + // them forward to m_text_renderer if our RenderText() is called + struct GTKRenderParams + { + GdkWindow *window; + GtkWidget *widget; + GdkRectangle *background_area; + GdkRectangle *expose_area; + int flags; + } m_renderParams; -protected: DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewCustomRenderer) };