From ed38aa559ccd74566a2b6e60cef1313284749114 Mon Sep 17 00:00:00 2001 From: Robert Roebling Date: Wed, 9 May 2007 10:38:15 +0000 Subject: [PATCH] GTK+ cell renderers are not widget, so use a correct type. Also found a way to set cell background and probably other styles. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45914 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/defs.h | 1 + include/wx/gtk/dataview.h | 4 ++-- src/gtk/dataview.cpp | 23 ++++++++++++++++++----- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/include/wx/defs.h b/include/wx/defs.h index f1e13037b6..17f206fc89 100644 --- a/include/wx/defs.h +++ b/include/wx/defs.h @@ -2848,6 +2848,7 @@ typedef struct _GtkItemFactory GtkItemFactory; typedef struct _GtkSelectionData GtkSelectionData; typedef struct _GtkTextBuffer GtkTextBuffer; typedef struct _GtkRange GtkRange; +typedef struct _GtkCellRenderer GtkCellRenderer; typedef GtkWidget *WXWidget; diff --git a/include/wx/gtk/dataview.h b/include/wx/gtk/dataview.h index 9677f1c24e..33001f1f83 100644 --- a/include/wx/gtk/dataview.h +++ b/include/wx/gtk/dataview.h @@ -34,7 +34,7 @@ public: int align = wxDVR_DEFAULT_ALIGNMENT ); // implementation - GtkWidget* GetGtkHandle() { return m_renderer; } + GtkCellRenderer* GetGtkHandle() { return m_renderer; } virtual void SetMode( wxDataViewCellMode mode ); virtual wxDataViewCellMode GetMode() const; @@ -43,7 +43,7 @@ public: virtual int GetAlignment() const; protected: - GtkWidget *m_renderer; + GtkCellRenderer *m_renderer; protected: DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewRenderer) diff --git a/src/gtk/dataview.cpp b/src/gtk/dataview.cpp index 448d7a762b..8618280d37 100644 --- a/src/gtk/dataview.cpp +++ b/src/gtk/dataview.cpp @@ -1108,7 +1108,7 @@ wxDataViewTextRenderer::wxDataViewTextRenderer( const wxString &varianttype, wxD int align ) : wxDataViewRenderer( varianttype, mode, align ) { - m_renderer = (GtkWidget*) gtk_cell_renderer_text_new(); + m_renderer = (GtkCellRenderer*) gtk_cell_renderer_text_new(); if (mode & wxDATAVIEW_CELL_EDITABLE) { @@ -1183,7 +1183,7 @@ wxDataViewBitmapRenderer::wxDataViewBitmapRenderer( const wxString &varianttype, int align ) : wxDataViewRenderer( varianttype, mode, align ) { - m_renderer = (GtkWidget*) gtk_cell_renderer_pixbuf_new(); + m_renderer = (GtkCellRenderer*) gtk_cell_renderer_pixbuf_new(); SetMode(mode); SetAlignment(align); @@ -1280,7 +1280,7 @@ wxDataViewToggleRenderer::wxDataViewToggleRenderer( const wxString &varianttype, wxDataViewCellMode mode, int align ) : wxDataViewRenderer( varianttype, mode, align ) { - m_renderer = (GtkWidget*) gtk_cell_renderer_toggle_new(); + m_renderer = (GtkCellRenderer*) gtk_cell_renderer_toggle_new(); if (mode & wxDATAVIEW_CELL_ACTIVATABLE) { @@ -1375,7 +1375,7 @@ bool wxDataViewCustomRenderer::Init(wxDataViewCellMode mode, int align) GtkWxCellRenderer *renderer = (GtkWxCellRenderer *) gtk_wx_cell_renderer_new(); renderer->cell = this; - m_renderer = (GtkWidget*) renderer; + m_renderer = (GtkCellRenderer*) renderer; SetMode(mode); SetAlignment(align); @@ -1419,7 +1419,7 @@ wxDataViewProgressRenderer::wxDataViewProgressRenderer( const wxString &label, #ifdef __WXGTK26__ if (!gtk_check_version(2,6,0)) { - m_renderer = (GtkWidget*) gtk_cell_renderer_progress_new(); + m_renderer = (GtkCellRenderer*) gtk_cell_renderer_progress_new(); GValue gvalue = { 0, }; g_value_init( &gvalue, G_TYPE_STRING ); @@ -1655,6 +1655,19 @@ static void wxGtkTreeCellDataFunc( GtkTreeViewColumn *column, cell->GetVariantType().c_str() ); cell->SetValue( value ); + +/* + To set the background to this + + wxColour colour(30,100,255); + GdkColor *gcol = colour.GetColor(); + + GValue gvalue = { 0, }; + g_value_init( &gvalue, GDK_TYPE_COLOR ); + g_value_set_boxed( &gvalue, gcol ); + g_object_set_property( G_OBJECT(renderer), "cell-background_gdk", &gvalue ); + g_value_unset( &gvalue ); +*/ } IMPLEMENT_CLASS(wxDataViewColumn, wxDataViewColumnBase) -- 2.47.2