// 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 <vadim@wxwidgets.org>
// Licence: wxWindows licence
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()
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)
};
virtual bool Render( wxRect cell, wxDC *dc, int state );
virtual wxSize GetSize() const;
- virtual bool Activate( wxRect cell,
+ virtual bool Activate( const wxRect& cell,
wxDataViewModel *model,
const wxDataViewItem &item,
unsigned int col );
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 gchar *itempath, const wxString& str);
+};
+
+
+
#endif // _WX_GTK_DVRENDERERS_H_