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
This commit is contained in:
Robert Roebling
2007-05-09 10:38:15 +00:00
parent 8ecb322ecb
commit ed38aa559c
3 changed files with 21 additions and 7 deletions

View File

@@ -2848,6 +2848,7 @@ typedef struct _GtkItemFactory GtkItemFactory;
typedef struct _GtkSelectionData GtkSelectionData; typedef struct _GtkSelectionData GtkSelectionData;
typedef struct _GtkTextBuffer GtkTextBuffer; typedef struct _GtkTextBuffer GtkTextBuffer;
typedef struct _GtkRange GtkRange; typedef struct _GtkRange GtkRange;
typedef struct _GtkCellRenderer GtkCellRenderer;
typedef GtkWidget *WXWidget; typedef GtkWidget *WXWidget;

View File

@@ -34,7 +34,7 @@ public:
int align = wxDVR_DEFAULT_ALIGNMENT ); int align = wxDVR_DEFAULT_ALIGNMENT );
// implementation // implementation
GtkWidget* GetGtkHandle() { return m_renderer; } GtkCellRenderer* GetGtkHandle() { return m_renderer; }
virtual void SetMode( wxDataViewCellMode mode ); virtual void SetMode( wxDataViewCellMode mode );
virtual wxDataViewCellMode GetMode() const; virtual wxDataViewCellMode GetMode() const;
@@ -43,7 +43,7 @@ public:
virtual int GetAlignment() const; virtual int GetAlignment() const;
protected: protected:
GtkWidget *m_renderer; GtkCellRenderer *m_renderer;
protected: protected:
DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewRenderer) DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewRenderer)

View File

@@ -1108,7 +1108,7 @@ wxDataViewTextRenderer::wxDataViewTextRenderer( const wxString &varianttype, wxD
int align ) : int align ) :
wxDataViewRenderer( varianttype, mode, 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) if (mode & wxDATAVIEW_CELL_EDITABLE)
{ {
@@ -1183,7 +1183,7 @@ wxDataViewBitmapRenderer::wxDataViewBitmapRenderer( const wxString &varianttype,
int align ) : int align ) :
wxDataViewRenderer( varianttype, mode, align ) wxDataViewRenderer( varianttype, mode, align )
{ {
m_renderer = (GtkWidget*) gtk_cell_renderer_pixbuf_new(); m_renderer = (GtkCellRenderer*) gtk_cell_renderer_pixbuf_new();
SetMode(mode); SetMode(mode);
SetAlignment(align); SetAlignment(align);
@@ -1280,7 +1280,7 @@ wxDataViewToggleRenderer::wxDataViewToggleRenderer( const wxString &varianttype,
wxDataViewCellMode mode, int align ) : wxDataViewCellMode mode, int align ) :
wxDataViewRenderer( varianttype, mode, 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) if (mode & wxDATAVIEW_CELL_ACTIVATABLE)
{ {
@@ -1375,7 +1375,7 @@ bool wxDataViewCustomRenderer::Init(wxDataViewCellMode mode, int align)
GtkWxCellRenderer *renderer = (GtkWxCellRenderer *) gtk_wx_cell_renderer_new(); GtkWxCellRenderer *renderer = (GtkWxCellRenderer *) gtk_wx_cell_renderer_new();
renderer->cell = this; renderer->cell = this;
m_renderer = (GtkWidget*) renderer; m_renderer = (GtkCellRenderer*) renderer;
SetMode(mode); SetMode(mode);
SetAlignment(align); SetAlignment(align);
@@ -1419,7 +1419,7 @@ wxDataViewProgressRenderer::wxDataViewProgressRenderer( const wxString &label,
#ifdef __WXGTK26__ #ifdef __WXGTK26__
if (!gtk_check_version(2,6,0)) 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, }; GValue gvalue = { 0, };
g_value_init( &gvalue, G_TYPE_STRING ); g_value_init( &gvalue, G_TYPE_STRING );
@@ -1655,6 +1655,19 @@ static void wxGtkTreeCellDataFunc( GtkTreeViewColumn *column,
cell->GetVariantType().c_str() ); cell->GetVariantType().c_str() );
cell->SetValue( value ); 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) IMPLEMENT_CLASS(wxDataViewColumn, wxDataViewColumnBase)