X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b1153ed60faa31147c5ff2d4cbae15f4d5376887..7344108e8a129a3f9b4df5ab0f98a1713db03b89:/include/wx/gtk/dvrenderers.h?ds=sidebyside diff --git a/include/wx/gtk/dvrenderers.h b/include/wx/gtk/dvrenderers.h index 3997f8013f..9901bec0cb 100644 --- a/include/wx/gtk/dvrenderers.h +++ b/include/wx/gtk/dvrenderers.h @@ -12,7 +12,12 @@ #ifndef _WX_GTK_DVRENDERERS_H_ #define _WX_GTK_DVRENDERERS_H_ -typedef struct _GdkRectangle GdkRectangle; +#ifdef __WXGTK3__ + typedef struct _cairo_rectangle_int cairo_rectangle_int_t; + typedef cairo_rectangle_int_t GdkRectangle; +#else + typedef struct _GdkRectangle GdkRectangle; +#endif // --------------------------------------------------------- // wxDataViewTextRenderer @@ -117,18 +122,12 @@ public: wxDC *dc, int state); + struct GTKRenderParams; + // store GTK render call parameters for possible later use - void GTKStashRenderParams(GdkWindow *window, - GtkWidget *widget, - GdkRectangle *background_area, - GdkRectangle *expose_area, - int flags) + void GTKSetRenderParams(GTKRenderParams* renderParams) { - m_renderParams.window = window; - m_renderParams.widget = widget; - m_renderParams.background_area = background_area; - m_renderParams.expose_area = expose_area; - m_renderParams.flags = flags; + m_renderParams = renderParams; } // we may or not support attributes, as we don't know it, return true to @@ -147,20 +146,17 @@ protected: bool Init(wxDataViewCellMode mode, int align); private: + // Called from GtkGetTextRenderer() to really create the renderer if + // necessary. + void GtkInitTextRenderer(); + wxDC *m_dc; 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; + GTKRenderParams* m_renderParams; DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewCustomRenderer) }; @@ -185,9 +181,17 @@ public: virtual wxSize GetSize() const; private: + void GTKSetLabel(); + wxString m_label; int m_value; +#if !wxUSE_UNICODE + // Flag used to indicate that we need to set the label because we were + // unable to do it in the ctor (see comments there). + bool m_needsToSetLabel; +#endif // !wxUSE_UNICODE + protected: DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewProgressRenderer) }; @@ -223,34 +227,6 @@ private: DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewIconTextRenderer) }; -// --------------------------------------------------------- -// wxDataViewDateRenderer -// --------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewDateRenderer: public wxDataViewCustomRenderer -{ -public: - wxDataViewDateRenderer( const wxString &varianttype = "datetime", - wxDataViewCellMode mode = wxDATAVIEW_CELL_ACTIVATABLE, - int align = wxDVR_DEFAULT_ALIGNMENT ); - - bool SetValue( const wxVariant &value ); - bool GetValue( wxVariant &value ) const; - - virtual bool Render( wxRect cell, wxDC *dc, int state ); - virtual wxSize GetSize() const; - virtual bool Activate( wxRect cell, - wxDataViewModel *model, - const wxDataViewItem &item, - unsigned int col ); - -private: - wxDateTime m_date; - -protected: - DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewDateRenderer) -}; - // ------------------------------------- // wxDataViewChoiceRenderer // ------------------------------------- @@ -268,10 +244,33 @@ public: void SetAlignment( int align ); + wxString GetChoice(size_t index) const { return m_choices[index]; } + const wxArrayString& GetChoices() const { return m_choices; } + private: wxArrayString m_choices; wxString m_data; }; +// ---------------------------------------------------------------------------- +// wxDataViewChoiceByIndexRenderer +// ---------------------------------------------------------------------------- + +class WXDLLIMPEXP_ADV wxDataViewChoiceByIndexRenderer: public wxDataViewChoiceRenderer +{ +public: + wxDataViewChoiceByIndexRenderer( const wxArrayString &choices, + wxDataViewCellMode mode = wxDATAVIEW_CELL_EDITABLE, + int alignment = wxDVR_DEFAULT_ALIGNMENT ); + + virtual bool SetValue( const wxVariant &value ); + virtual bool GetValue( wxVariant &value ) const; + +private: + virtual void GtkOnTextEdited(const char *itempath, const wxString& str); +}; + + + #endif // _WX_GTK_DVRENDERERS_H_