]> git.saurik.com Git - wxWidgets.git/commitdiff
Allow a NULL editor and/or renderer to be passed to RegisterDataType
authorRobin Dunn <robin@alldunn.com>
Sat, 11 Nov 2000 23:57:16 +0000 (23:57 +0000)
committerRobin Dunn <robin@alldunn.com>
Sat, 11 Nov 2000 23:57:16 +0000 (23:57 +0000)
and not crash when it tries to get them later.  (If NULL it falls back
to the grid's default like it used to before the type registry was
added.)

Added wxTE_PROCESS_TAB to wxTextCtrl style for MSW.

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

src/generic/grid.cpp

index 5e8559b6c4e58c838b4c0df58dfadbe3eb664d0c..c51c40cd96f7a19b3cdee5a71d9c95941be37900 100644 (file)
@@ -502,7 +502,8 @@ void wxGridCellTextEditor::Create(wxWindow* parent,
     m_control = new wxTextCtrl(parent, id, wxEmptyString,
                                wxDefaultPosition, wxDefaultSize
 #if defined(__WXMSW__)
-                               , wxTE_MULTILINE | wxTE_NO_VSCROLL | wxTE_AUTO_SCROLL
+                               , wxTE_PROCESS_TAB | wxTE_MULTILINE |
+                                 wxTE_NO_VSCROLL | wxTE_AUTO_SCROLL
 #endif
                               );
 
@@ -538,9 +539,9 @@ void wxGridCellTextEditor::SetSize(const wxRect& rectOrig)
     }
 #else // !GTK
     int extra_x = ( rect.x > 2 )? 2 : 1;
-    
-// MB: treat MSW separately here otherwise the caret doesn't show 
-// when the editor is in the first row. 
+
+// MB: treat MSW separately here otherwise the caret doesn't show
+// when the editor is in the first row.
 #if defined(__WXMSW__)
     int extra_y = 2;
 #else
@@ -2417,14 +2418,16 @@ int wxGridTypeRegistry::FindOrCloneDataType(const wxString& typeName)
 wxGridCellRenderer* wxGridTypeRegistry::GetRenderer(int index)
 {
     wxGridCellRenderer* renderer = m_typeinfo[index]->m_renderer;
-    renderer->IncRef();
+       if (renderer)
+               renderer->IncRef();
     return renderer;
 }
 
 wxGridCellEditor* wxGridTypeRegistry::GetEditor(int index)
 {
     wxGridCellEditor* editor = m_typeinfo[index]->m_editor;
-    editor->IncRef();
+       if (editor)
+               editor->IncRef();
     return editor;
 }
 
@@ -3831,8 +3834,8 @@ bool wxGrid::Redimension( wxGridTableMessage& msg )
             wxGridCellAttrProvider * attrProvider = m_table->GetAttrProvider();
             if (attrProvider) {
                 attrProvider->UpdateAttrRows( pos, -((int)numRows) );
-// ifdef'd out following patch from Paul Gammans                
-#if 0                
+// ifdef'd out following patch from Paul Gammans
+#if 0
                 // No need to touch column attributes, unless we
                 // removed _all_ rows, in this case, we remove
                 // all column attributes.
@@ -3840,7 +3843,7 @@ bool wxGrid::Redimension( wxGridTableMessage& msg )
                 // needed data is not available inside UpdateAttrRows.
                 if ( !GetNumberRows() )
                     attrProvider->UpdateAttrCols( 0, -GetNumberCols() );
-#endif                    
+#endif
             }
             if ( !GetBatchCount() )
             {
@@ -3967,8 +3970,8 @@ bool wxGrid::Redimension( wxGridTableMessage& msg )
             wxGridCellAttrProvider * attrProvider = m_table->GetAttrProvider();
             if (attrProvider) {
                 attrProvider->UpdateAttrCols( pos, -((int)numCols) );
-// ifdef'd out following patch from Paul Gammans                
-#if 0                
+// ifdef'd out following patch from Paul Gammans
+#if 0
                 // No need to touch row attributes, unless we
                 // removed _all_ columns, in this case, we remove
                 // all row attributes.
@@ -3976,7 +3979,7 @@ bool wxGrid::Redimension( wxGridTableMessage& msg )
                 // needed data is not available inside UpdateAttrCols.
                 if ( !GetNumberCols() )
                     attrProvider->UpdateAttrRows( 0, -GetNumberRows() );
-#endif                    
+#endif
             }
             if ( !GetBatchCount() )
             {
@@ -5615,7 +5618,7 @@ void wxGrid::SetCurrentCell( const wxGridCellCoords& coords )
             }
 
             CalcCellsExposed( r );
-    
+
             // Otherwise refresh redraws the highlight!
             m_currentCellCoords = coords;
 
@@ -7344,14 +7347,14 @@ void wxGrid::SetRowLabelAlignment( int horiz, int vert )
         case wxRIGHT:  horiz = wxALIGN_RIGHT; break;
         case wxCENTRE: horiz = wxALIGN_CENTRE; break;
     }
-    
+
     switch ( vert )
     {
         case wxTOP:    vert = wxALIGN_TOP;    break;
         case wxBOTTOM: vert = wxALIGN_BOTTOM; break;
         case wxCENTRE: vert = wxALIGN_CENTRE; break;
     }
-    
+
     if ( horiz == wxALIGN_LEFT || horiz == wxALIGN_CENTRE || horiz == wxALIGN_RIGHT )
     {
         m_rowLabelHorizAlign = horiz;
@@ -7377,14 +7380,14 @@ void wxGrid::SetColLabelAlignment( int horiz, int vert )
         case wxRIGHT:  horiz = wxALIGN_RIGHT; break;
         case wxCENTRE: horiz = wxALIGN_CENTRE; break;
     }
-    
+
     switch ( vert )
     {
         case wxTOP:    vert = wxALIGN_TOP;    break;
         case wxBOTTOM: vert = wxALIGN_BOTTOM; break;
         case wxCENTRE: vert = wxALIGN_CENTRE; break;
     }
-    
+
     if ( horiz == wxALIGN_LEFT || horiz == wxALIGN_CENTRE || horiz == wxALIGN_RIGHT )
     {
         m_colLabelHorizAlign = horiz;
@@ -8253,14 +8256,14 @@ void wxGrid::SelectCol( int col, bool addToSelected )
 }
 
 
-void wxGrid::SelectBlock( int topRow, int leftCol, int bottomRow, int rightCol, 
+void wxGrid::SelectBlock( int topRow, int leftCol, int bottomRow, int rightCol,
                           bool addToSelected )
 {
     if ( IsSelection() && !addToSelected )
         ClearSelection();
 
-    m_selection->SelectBlock( topRow, leftCol, bottomRow, rightCol, 
-                              FALSE, addToSelected );    
+    m_selection->SelectBlock( topRow, leftCol, bottomRow, rightCol,
+                              FALSE, addToSelected );
 }