]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/gtk/dvrenderers.h
Instead of just deleting m_popupInterface, call Destroy() of its wxWindow-based popup...
[wxWidgets.git] / include / wx / gtk / dvrenderers.h
index b22ef67eea84ba2319d0a2553e3563adb24d9dba..2e053803249476761f3163570c22e5e2e3e84757 100644 (file)
@@ -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)
 // 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
 // Copyright:   (c) 2006 Robert Roebling
 //              (c) 2009 Vadim Zeitlin <vadim@wxwidgets.org>
 // Licence:     wxWindows licence
@@ -13,7 +13,6 @@
 #define _WX_GTK_DVRENDERERS_H_
 
 typedef struct _GdkRectangle GdkRectangle;
 #define _WX_GTK_DVRENDERERS_H_
 
 typedef struct _GdkRectangle GdkRectangle;
-typedef struct _GtkCellRendererText GtkCellRendererText;
 
 // ---------------------------------------------------------
 // wxDataViewTextRenderer
 
 // ---------------------------------------------------------
 // wxDataViewTextRenderer
@@ -47,6 +46,8 @@ public:
     virtual bool GtkSupportsAttrs() const { return true; }
     virtual bool GtkSetAttr(const wxDataViewItemAttr& attr);
 
     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);
 protected:
     // implementation of Set/GetValue()
     bool SetTextValue(const wxString& str);
@@ -140,6 +141,8 @@ public:
         return !attr.IsDefault();
     }
 
         return !attr.IsDefault();
     }
 
+    virtual GtkCellRendererText *GtkGetTextRenderer() const;
+
 protected:
     bool Init(wxDataViewCellMode mode, int align);
 
 protected:
     bool Init(wxDataViewCellMode mode, int align);
 
@@ -236,7 +239,7 @@ public:
 
     virtual bool Render( wxRect cell, wxDC *dc, int state );
     virtual wxSize GetSize() const;
 
     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 );
                            wxDataViewModel *model,
                            const wxDataViewItem &item,
                            unsigned int col );
@@ -265,10 +268,33 @@ public:
 
     void SetAlignment( int align );
 
 
     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;
 };
 
 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_
 
 #endif // _WX_GTK_DVRENDERERS_H_