]> git.saurik.com Git - wxWidgets.git/commitdiff
Change SetValue( wxVariant &value ) to
authorRobert Roebling <robert@roebling.de>
Tue, 24 Apr 2007 09:36:48 +0000 (09:36 +0000)
committerRobert Roebling <robert@roebling.de>
Tue, 24 Apr 2007 09:36:48 +0000 (09:36 +0000)
          SetValue( const wxVariant &value )
    (already documented)
   Delete in-place editing control through
    pending list, not in event handler.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45619 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/dataview.h
samples/dataview/dataview.cpp
src/common/datavcmn.cpp
src/gtk/dataview.cpp

index f54e93fb842b79bd9318e63cef9695b8967e3939..e2233c86c19f6a703b9c75b076757ca388da9e21 100644 (file)
@@ -140,7 +140,7 @@ public:
     virtual void GetValue( wxVariant &variant, unsigned int col, unsigned int row ) const = 0;
 
     // set value, call ValueChanged() afterwards!
-    virtual bool SetValue( wxVariant &variant, unsigned int col, unsigned int row ) = 0;
+    virtual bool SetValue( const wxVariant &variant, unsigned int col, unsigned int row ) = 0;
 
     // delegated notifiers
     virtual bool RowAppended();
@@ -200,7 +200,7 @@ public:
     virtual void GetValue( wxVariant &variant, unsigned int col, unsigned int row ) const;
 
     // set value, call ValueChanged() afterwards!
-    virtual bool SetValue( wxVariant &variant, unsigned int col, unsigned int row );
+    virtual bool SetValue( const wxVariant &variant, unsigned int col, unsigned int row );
 
     // called from user
     virtual bool RowAppended();
index 788508256b35f5ccf2bf6f5279c9005678bac00c..7132c5d9caa79e09a471970e5b90e63f3c1042a1 100644 (file)
@@ -118,7 +118,7 @@ public:
                 variant = tmp;
             }
         }
-    virtual bool SetValue( wxVariant &value, unsigned int col, unsigned int row )
+    virtual bool SetValue( const wxVariant &value, unsigned int col, unsigned int row )
         {
             if (col == 6)
             {
@@ -343,7 +343,7 @@ public:
         variant = tmp;
     }
 
-    virtual bool SetValue( wxVariant &variant, unsigned int col, unsigned int row )
+    virtual bool SetValue( const wxVariant &variant, unsigned int col, unsigned int row )
     {
         if (col == 0)
         {
@@ -682,10 +682,12 @@ void MyFrame::CreateDataViewControls()
         style |= wxDV_MULTIPLE;
     if (GetMenuBar()->FindItem(ID_NO_HEADER_MODE)->IsChecked())
         style |= wxDV_NO_HEADER;
+#if 0
     if (GetMenuBar()->FindItem(ID_HORIZ_RULES_MODE)->IsChecked())
         style |= wxDV_HORIZ_RULES;
     if (GetMenuBar()->FindItem(ID_VERT_RULES_MODE)->IsChecked())
         style |= wxDV_VERT_RULES;
+#endif
 
 
     // Left wxDataViewCtrl
@@ -693,6 +695,9 @@ void MyFrame::CreateDataViewControls()
                                         wxDefaultSize, style );
 
 
+    wxDataViewTextRenderer *text_renderer;
+    wxDataViewColumn *column;
+    
     wxObjectDataPtr<MyTextModel> model(new MyTextModel);
     dataview_left->AssociateModel( model.get() );
 
@@ -701,10 +706,8 @@ void MyFrame::CreateDataViewControls()
     dataview_left->AppendTextColumn( wxT("Second"), 1, wxDATAVIEW_CELL_INERT, -1,
                                      DEFAULT_ALIGN );
 
-    wxDataViewTextRenderer *text_renderer = 
-        new wxDataViewTextRenderer( wxT("string"), wxDATAVIEW_CELL_EDITABLE );
-    wxDataViewColumn *column = new wxDataViewColumn( wxT("editable"), text_renderer, 2,
-                                                     -1, DEFAULT_ALIGN );
+    text_renderer = new wxDataViewTextRenderer( wxT("string"), wxDATAVIEW_CELL_EDITABLE );
+    column = new wxDataViewColumn( wxT("editable"), text_renderer, 2, -1, DEFAULT_ALIGN );
     dataview_left->AppendColumn( column );
 
     dataview_left->AppendToggleColumn( wxT("fourth"), 3, wxDATAVIEW_CELL_INERT, -1, 
@@ -719,7 +722,6 @@ void MyFrame::CreateDataViewControls()
 
     dataview_left->AppendDateColumn( wxT("date"), 6, wxDATAVIEW_CELL_INERT, -1, DEFAULT_ALIGN );
 
-
     // Right wxDataViewCtrl using the same model
     dataview_right = new wxDataViewCtrl( m_panelRight, wxID_ANY );
     dataview_right->AssociateModel( model.get() );
index 7bc203d4b403ecdb91bc553990069cfda0cc2695..c90f0f4f4cd76d086f7d5dc360d3f977c9f220bb 100644 (file)
@@ -603,7 +603,7 @@ void wxDataViewSortedListModel::GetValue( wxVariant &variant, unsigned int col,
     m_child->GetValue( variant, col, child_row );
 }
 
-bool wxDataViewSortedListModel::SetValue( wxVariant &variant, unsigned int col, unsigned int row )
+bool wxDataViewSortedListModel::SetValue( const wxVariant &variant, unsigned int col, unsigned int row )
 {
     unsigned int child_row = m_array[row];
     bool ret = m_child->SetValue( variant, col, child_row );
@@ -744,21 +744,19 @@ bool wxDataViewRendererBase::StartEditing( unsigned int row, wxRect labelRect )
 
 void wxDataViewRendererBase::CancelEditing()
 {
-    // m_editorCtrl->PopEventHandler( true );
-
-    delete m_editorCtrl;
+    wxPendingDelete.Append( m_editorCtrl );
     
     GetOwner()->GetOwner()->GetMainWindow()->SetFocus();
+    
+    // m_editorCtrl->PopEventHandler( true );
 }
 
 bool wxDataViewRendererBase::FinishEditing()
 {
-    // m_editorCtrl->PopEventHandler( true );
-
     wxVariant value;
     GetValueFromEditorCtrl( m_editorCtrl, value );
 
-    delete m_editorCtrl;
+    wxPendingDelete.Append( m_editorCtrl );
     
     GetOwner()->GetOwner()->GetMainWindow()->SetFocus();
     
@@ -769,6 +767,8 @@ bool wxDataViewRendererBase::FinishEditing()
     GetOwner()->GetOwner()->GetModel()->SetValue( value, col, m_row );
     GetOwner()->GetOwner()->GetModel()->ValueChanged( col, m_row );
     
+    // m_editorCtrl->PopEventHandler( true );
+    
     return true;
 }
 
@@ -831,7 +831,6 @@ void wxDataViewEditorCtrlEvtHandler::OnKillFocus( wxFocusEvent &event )
         m_owner->FinishEditing();
     }
 
-    // We must let the native text control handle focus
     event.Skip();
 }
 
index d560119725d7d4d56fd3568ecc2f9605338dc625..331c7e034d2eddecd6a6918709a84ce4d5764bfe 100644 (file)
@@ -2037,7 +2037,9 @@ bool wxDataViewCtrl::Create(wxWindow *parent, wxWindowID id,
     }
     else
 #endif
+    {
         gtk_tree_view_set_rules_hint( GTK_TREE_VIEW(m_treeview), (style & wxDV_HORIZ_RULES) != 0 );
+    }
 
     gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (m_widget),
         GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);