]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/datavcmn.cpp
Implement support for gradient stops for OS X.
[wxWidgets.git] / src / common / datavcmn.cpp
index bd62828c65908afc0a5bda4228bfe404183a44bb..de0608121e47d0e4915eba3d293c719908712171 100644 (file)
@@ -792,13 +792,22 @@ wxDataViewCustomRendererBase::RenderText(const wxString& text,
                                         text,
                                         *dc,
                                         GetEllipsizeMode(),
-                                        rect.width,
+                                        rectText.width,
                                         wxELLIPSIZE_FLAGS_NONE
                                     );
     }
 
+    // get the alignment to use
+    int align = GetAlignment();
+    if ( align == wxDVR_DEFAULT_ALIGNMENT )
+    {
+        // if we don't have an explicit alignment ourselves, use that of the
+        // column in horizontal direction and default vertical alignment
+        align = GetOwner()->GetAlignment() | wxALIGN_CENTRE_VERTICAL;
+    }
+
     dc->DrawLabel(ellipsizedText.empty() ? text : ellipsizedText,
-                  rectText, GetAlignment());
+                  rectText, align);
 }
 
 //-----------------------------------------------------------------------------
@@ -1477,6 +1486,7 @@ void wxDataViewListStore::InsertItem(  unsigned int row, const wxVector<wxVarian
 void wxDataViewListStore::DeleteItem( unsigned int row )
 {
     wxVector<wxDataViewListStoreLine*>::iterator it = m_data.begin() + row;
+    delete *it;
     m_data.erase( it );
 
     RowDeleted( row );
@@ -1790,6 +1800,14 @@ wxDataViewTreeStore::InsertContainer(const wxDataViewItem& parent,
     return node->GetItem();
 }
 
+bool wxDataViewTreeStore::IsContainer( const wxDataViewItem& item ) const
+{
+    wxDataViewTreeStoreNode *node = FindNode( item );
+    if (!node) return false;
+
+    return node->IsContainer();
+}
+
 wxDataViewItem wxDataViewTreeStore::GetNthChild( const wxDataViewItem& parent, unsigned int pos ) const
 {
     wxDataViewTreeStoreContainerNode *parent_node = FindContainerNode( parent );
@@ -1963,14 +1981,6 @@ wxDataViewItem wxDataViewTreeStore::GetParent( const wxDataViewItem &item ) cons
     return parent->GetItem();
 }
 
-bool wxDataViewTreeStore::IsContainer( const wxDataViewItem &item ) const
-{
-    wxDataViewTreeStoreNode *node = FindNode( item );
-    if (!node) return false;
-
-    return node->IsContainer();
-}
-
 unsigned int wxDataViewTreeStore::GetChildren( const wxDataViewItem &item, wxDataViewItemArray &children ) const
 {
     wxDataViewTreeStoreContainerNode *node = FindContainerNode( item );
@@ -2006,13 +2016,13 @@ int wxDataViewTreeStore::Compare( const wxDataViewItem &item1, const wxDataViewI
         return 0;
     }
 
-    if (node1->IsContainer() && !!node2->IsContainer())
-        return 1;
-
-    if (node2->IsContainer() && !!node1->IsContainer())
+    if (node1->IsContainer() && !node2->IsContainer())
         return -1;
 
-    return parent1->GetChildren().IndexOf( node1 ) - parent1->GetChildren().IndexOf( node2 );
+    if (node2->IsContainer() && !node1->IsContainer())
+        return 1;
+
+    return parent1->GetChildren().IndexOf( node1 ) - parent2->GetChildren().IndexOf( node2 );
 }
 
 wxDataViewTreeStoreNode *wxDataViewTreeStore::FindNode( const wxDataViewItem &item ) const
@@ -2064,7 +2074,15 @@ bool wxDataViewTreeCtrl::Create( wxWindow *parent, wxWindowID id,
     AssociateModel( store );
     store->DecRef();
 
-    AppendIconTextColumn(wxString(),0,wxDATAVIEW_CELL_EDITABLE,-1);
+    AppendIconTextColumn
+    (
+        wxString(),                 // no label (header is not shown anyhow)
+        0,                          // the only model column
+        wxDATAVIEW_CELL_EDITABLE,
+        -1,                         // default width
+        wxALIGN_NOT,                //  and alignment
+        0                           // not resizeable
+    );
 
     return true;
 }