X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/696f3e9dd0ba59c5ed8d7ea9ceb45f92687dcaf2..9cb0c458c4601f444437f7e816efe654158eaf90:/src/generic/grid.cpp?ds=sidebyside diff --git a/src/generic/grid.cpp b/src/generic/grid.cpp index ecadf47f42..00785219da 100644 --- a/src/generic/grid.cpp +++ b/src/generic/grid.cpp @@ -4131,12 +4131,7 @@ END_EVENT_TABLE() wxGrid::wxGrid() { - // in order to make sure that a size event is not - // trigerred in a unfinished state - m_cornerLabelWin = NULL; - m_rowLabelWin = NULL; - m_colLabelWin = NULL; - m_gridWin = NULL; + InitVars(); } wxGrid::wxGrid( wxWindow *parent, @@ -4146,6 +4141,7 @@ wxGrid::wxGrid( wxWindow *parent, long style, const wxString& name ) { + InitVars(); Create(parent, id, pos, size, style, name); } @@ -4203,15 +4199,8 @@ wxGrid::~wxGrid() void wxGrid::Create() { - // set to true by CreateGrid - m_created = false; - // create the type registry m_typeRegistry = new wxGridTypeRegistry; - m_selection = NULL; - - m_table = (wxGridTableBase *) NULL; - m_ownTable = false; m_cellEditCtrlEnabled = false; @@ -4405,6 +4394,24 @@ bool wxGrid::SetTable( wxGridTableBase *table, bool takeOwnership, return m_created; } +void wxGrid::InitVars() +{ + m_created = false; + + m_cornerLabelWin = NULL; + m_rowLabelWin = NULL; + m_colLabelWin = NULL; + m_gridWin = NULL; + + m_table = NULL; + m_ownTable = false; + + m_selection = NULL; + m_defaultCellAttr = NULL; + m_typeRegistry = NULL; + m_winCapture = NULL; +} + void wxGrid::Init() { m_rowLabelWidth = WXGRID_DEFAULT_ROW_LABEL_WIDTH; @@ -6818,7 +6825,7 @@ void wxGrid::Refresh(bool eraseb, const wxRect* rect) { // Don't do anything if between Begin/EndBatch... // EndBatch() will do all this on the last nested one anyway. - if (! GetBatchCount()) + if ( m_created && !GetBatchCount() ) { // Refresh to get correct scrolled position: wxScrolledWindow::Refresh(eraseb, rect); @@ -8133,7 +8140,7 @@ void wxGrid::StringToLines( const wxString& value, wxArrayString& lines ) const startPos += pos + 1; } - if ( startPos < (int)value.length() ) + if ( startPos < (int)tVal.length() ) { lines.Add( tVal.Mid( startPos ) ); } @@ -11103,6 +11110,20 @@ wxRect wxGrid::BlockToDeviceRect( const wxGridCellCoords &topLeft, return rect; } +// ---------------------------------------------------------------------------- +// drop target +// ---------------------------------------------------------------------------- + +#if wxUSE_DRAG_AND_DROP + +// this allow setting drop target directly on wxGrid +void wxGrid::SetDropTarget(wxDropTarget *dropTarget) +{ + GetGridWindow()->SetDropTarget(dropTarget); +} + +#endif // wxUSE_DRAG_AND_DROP + // ---------------------------------------------------------------------------- // grid event classes // ----------------------------------------------------------------------------