]> git.saurik.com Git - wxWidgets.git/commitdiff
Make wxDataViewCtrl compile and work in ANSI mode.
authorRobert Roebling <robert@roebling.de>
Wed, 1 Nov 2006 15:24:48 +0000 (15:24 +0000)
committerRobert Roebling <robert@roebling.de>
Wed, 1 Nov 2006 15:24:48 +0000 (15:24 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42909 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/dataview.h
include/wx/gtk/dataview.h
src/gtk/dataview.cpp

index 227408847f9560daad20fb15b85796af2aa6d2a4..8893378606869814cfa0844e992e3e71e236cff7 100644 (file)
@@ -285,7 +285,7 @@ public:
 
     unsigned int GetModelColumn()           { return m_model_column; }
 
-    void SetOwner( wxDataViewCtrl *owner )  { m_owner = owner; }
+    virtual void SetOwner( wxDataViewCtrl *owner )  { m_owner = owner; }
     wxDataViewCtrl *GetOwner()              { return m_owner; }
 
     virtual int GetWidth() = 0;
index 6965502b28dd901b5f753fbb2103259a09c63dee..e575a4f2c087c8e9d46f1d2a261d806667597789 100644 (file)
@@ -197,6 +197,8 @@ public:
     virtual void SetTitle( const wxString &title );
     virtual void SetBitmap( const wxBitmap &bitmap );
 
+    virtual void SetOwner( wxDataViewCtrl *owner );
+
     virtual void SetAlignment( wxAlignment align );
     
     virtual void SetSortable( bool sortable );
@@ -265,6 +267,9 @@ public:
     virtual bool IsSelected( unsigned int row ) const;
     virtual int GetSelection() const;
     virtual int GetSelections(wxArrayInt& aSelections) const;
+
+    static wxVisualAttributes
+    GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
     
 private:
     friend class wxDataViewCtrlDC;
index e8d23aca10186235c3d6e804cc3c2ba95d076a6a..ac8d2144f7ae2d3131342dc9f89fd188b32b849c 100644 (file)
@@ -299,6 +299,9 @@ wxgtk_list_store_get_value (GtkTreeModel *tree_model,
     GtkWxListStore *list_store = (GtkWxListStore *) tree_model;
     g_return_if_fail (GTK_IS_WX_LIST_STORE (tree_model) );
 
+    wxPrintf( wxT("Hi\n") );
+
+#if 0
     wxDataViewListModel *model = list_store->model;
     wxString mtype = model->GetColType( (unsigned int) column );
     if (mtype == wxT("string"))
@@ -311,6 +314,7 @@ wxgtk_list_store_get_value (GtkTreeModel *tree_model,
     else
     {
     }
+#endif
 
 #if 0
   GtkTreeDataList *list;
@@ -946,7 +950,11 @@ bool wxDataViewTextRenderer::SetValue( const wxVariant &value )
 
     GValue gvalue = { 0, };
     g_value_init( &gvalue, G_TYPE_STRING );
+#if wxUSE_UNICODE
     g_value_set_string( &gvalue, wxGTK_CONV( tmp ) );
+#else
+    g_value_set_string( &gvalue, wxGTK_CONV_FONT( tmp, GetOwner()->GetOwner()->GetFont() ) );
+#endif
     g_object_set_property( G_OBJECT(m_renderer), "text", &gvalue );
     g_value_unset( &gvalue );
 
@@ -1221,7 +1229,11 @@ wxDataViewProgressRenderer::wxDataViewProgressRenderer( const wxString &label,
 
         GValue gvalue = { 0, };
         g_value_init( &gvalue, G_TYPE_STRING );
+#if wxUSE_UNICODE
         g_value_set_string( &gvalue, wxGTK_CONV(m_label) );
+#else
+        g_value_set_string( &gvalue, wxGTK_CONV_SYS(m_label) );
+#endif
         g_object_set_property( G_OBJECT(m_renderer), "text", &gvalue );
         g_value_unset( &gvalue );
     }
@@ -1463,10 +1475,11 @@ wxDataViewColumn::wxDataViewColumn( const wxString &title, wxDataViewRenderer *c
         gtk_tree_view_column_set_sort_indicator( column, true );
 
     if (width > 0)
-    {
         gtk_tree_view_column_set_fixed_width( column, width );
-        gtk_tree_view_column_set_sizing( column, GTK_TREE_VIEW_COLUMN_FIXED );
-    }
+    else
+        gtk_tree_view_column_set_fixed_width( column, 70 );  // FIXME
+        
+    gtk_tree_view_column_set_sizing( column, GTK_TREE_VIEW_COLUMN_FIXED );
 
     gtk_tree_view_column_pack_end( column, renderer, FALSE );
 
@@ -1496,10 +1509,11 @@ wxDataViewColumn::wxDataViewColumn( const wxBitmap &bitmap, wxDataViewRenderer *
         gtk_tree_view_column_set_sort_indicator( column, true );
 
     if (width > 0)
-    {
         gtk_tree_view_column_set_fixed_width( column, width );
-        gtk_tree_view_column_set_sizing( column, GTK_TREE_VIEW_COLUMN_FIXED );
-    }
+    else
+        gtk_tree_view_column_set_fixed_width( column, 70 );  // FIXME
+        
+    gtk_tree_view_column_set_sizing( column, GTK_TREE_VIEW_COLUMN_FIXED );
 
     gtk_tree_view_column_pack_end( column, renderer, FALSE );
 
@@ -1529,6 +1543,18 @@ void wxDataViewColumn::OnInternalIdle()
     }
 }
 
+void wxDataViewColumn::SetOwner( wxDataViewCtrl *owner )
+{
+    wxDataViewColumnBase::SetOwner( owner );
+    
+    GtkTreeViewColumn *column = (GtkTreeViewColumn *)m_column;
+    
+#if wxUSE_UNICODE
+#else
+    gtk_tree_view_column_set_title( column, wxGTK_CONV_FONT(GetTitle(), GetOwner()->GetFont() ) );
+#endif
+}
+
 void wxDataViewColumn::SetTitle( const wxString &title )
 {
     wxDataViewColumnBase::SetTitle( title );
@@ -1544,7 +1570,14 @@ void wxDataViewColumn::SetTitle( const wxString &title )
         m_isConnected = false;
     }
 
+#if wxUSE_UNICODE
     gtk_tree_view_column_set_title( column, wxGTK_CONV(title) );
+#else
+    if (GetOwner())
+        gtk_tree_view_column_set_title( column, wxGTK_CONV_FONT(title, GetOwner()->GetFont() ) );
+    else
+        gtk_tree_view_column_set_title( column, "" );
+#endif
 
     gtk_tree_view_column_set_widget( column, NULL );
 }
@@ -1646,6 +1679,9 @@ int wxDataViewColumn::GetFixedWidth()
 static void
 wxdataview_selection_changed_callback( GtkTreeSelection* selection, wxDataViewCtrl *dv )
 {
+    if (!GTK_WIDGET_REALIZED(dv->m_widget))
+        return;
+    
     wxDataViewEvent event( wxEVT_COMMAND_DATAVIEW_ROW_SELECTED, dv->GetId() );
     event.SetRow( dv->GetSelection() );
     event.SetModel( dv->GetModel() );
@@ -1703,6 +1739,11 @@ bool wxDataViewCtrl::Create(wxWindow *parent, wxWindowID id,
     m_treeview = gtk_tree_view_new();
     gtk_container_add (GTK_CONTAINER (m_widget), m_treeview);
 
+#ifdef __WXGTK26__
+    if (!gtk_check_version(2,6,0))
+        gtk_tree_view_set_fixed_height_mode( GTK_TREE_VIEW(m_treeview), TRUE );
+#endif
+
     if (style & wxDV_MULTIPLE)
     {
         GtkTreeSelection *selection = gtk_tree_view_get_selection( GTK_TREE_VIEW(m_treeview) );
@@ -1715,14 +1756,14 @@ bool wxDataViewCtrl::Create(wxWindow *parent, wxWindowID id,
 
     m_parent->DoAddChild( this );
 
+    PostCreation(size);
+
     GtkTreeSelection *selection = gtk_tree_view_get_selection( GTK_TREE_VIEW(m_treeview) );
     g_signal_connect_after (selection, "changed",
                             G_CALLBACK (wxdataview_selection_changed_callback), this);
     g_signal_connect_after (m_treeview, "row_activated",
                             G_CALLBACK (wxdataview_row_activated_callback), this);
 
-    PostCreation(size);
-
     return true;
 }
 
@@ -1907,6 +1948,13 @@ int wxDataViewCtrl::GetSelections(wxArrayInt& aSelections) const
     return 0;
 }
 
+// static
+wxVisualAttributes
+wxDataViewCtrl::GetClassDefaultAttributes(wxWindowVariant WXUNUSED(variant))
+{
+    return GetDefaultAttributesFromGTKWidget(gtk_tree_view_new);
+}
+
 
 #endif
     // !wxUSE_GENERICDATAVIEWCTRL