X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/62265c2c67bd9ee1c78e57700277dc0baf2f14d6..3017880eff92f202f26262fbcdf1744cb620e3e3:/include/wx/gtk/dvrenderers.h diff --git a/include/wx/gtk/dvrenderers.h b/include/wx/gtk/dvrenderers.h index 74c866ed40..0e8ba0a591 100644 --- a/include/wx/gtk/dvrenderers.h +++ b/include/wx/gtk/dvrenderers.h @@ -12,6 +12,8 @@ #ifndef _WX_GTK_DVRENDERERS_H_ #define _WX_GTK_DVRENDERERS_H_ +typedef struct _GdkRectangle GdkRectangle; + // --------------------------------------------------------- // wxDataViewTextRenderer // --------------------------------------------------------- @@ -41,6 +43,11 @@ 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() bool SetTextValue(const wxString& str); @@ -110,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; - void *background_area; - void *cell_area; - void *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) };