X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c03bf0c7409638856e9f09624b16ecd6620d7eb9..ce71cac3dd9a848bb250dfddda5a54de14441db4:/src/generic/grid.cpp diff --git a/src/generic/grid.cpp b/src/generic/grid.cpp index e3169c5357..395e94ac5d 100644 --- a/src/generic/grid.cpp +++ b/src/generic/grid.cpp @@ -956,9 +956,9 @@ bool wxGridCellNumberEditor::IsAcceptedKey(wxKeyEvent& event) void wxGridCellNumberEditor::StartingKey(wxKeyEvent& event) { + int keycode = event.GetKeyCode(); if ( !HasRange() ) { - int keycode = event.GetKeyCode(); if ( wxIsdigit(keycode) || keycode == '+' || keycode == '-') { wxGridCellTextEditor::StartingKey(event); @@ -967,7 +967,18 @@ void wxGridCellNumberEditor::StartingKey(wxKeyEvent& event) return; } } - +#if wxUSE_SPINCTRL + else + { + if ( wxIsdigit(keycode) ) + { + wxSpinCtrl* spin = (wxSpinCtrl*)m_control; + spin->SetValue(keycode - '0'); + spin->SetSelection(1,1); + return; + } + } +#endif event.Skip(); } @@ -2131,8 +2142,8 @@ void wxGridCellAttr::MergeWith(wxGridCellAttr *mergefrom) mergefrom->GetAlignment( &hAlign, &vAlign); SetAlignment(hAlign, vAlign); } - - mergefrom->GetSize( &m_sizeRows, &m_sizeCols ); + if ( !HasSize() && mergefrom->HasSize() ) + mergefrom->GetSize( &m_sizeRows, &m_sizeCols ); // Directly access member functions as GetRender/Editor don't just return // m_renderer/m_editor @@ -2903,6 +2914,7 @@ wxGridCellAttr *wxGridTableBase::GetAttr(int row, int col, wxGridCellAttr::wxAtt return (wxGridCellAttr *)NULL; } + void wxGridTableBase::SetAttr(wxGridCellAttr* attr, int row, int col) { if ( m_attrProvider ) @@ -3758,6 +3770,9 @@ void wxGridWindow::ScrollWindow( int dx, int dy, const wxRect *rect ) void wxGridWindow::OnMouseEvent( wxMouseEvent& event ) { + if (event.ButtonDown(wxMOUSE_BTN_LEFT) && FindFocus() != this) + SetFocus(); + m_owner->ProcessGridCellMouseEvent( event ); } @@ -7255,11 +7270,11 @@ void wxGrid::DrawRowLabels( wxDC& dc ,const wxArrayInt& rows) void wxGrid::DrawRowLabel( wxDC& dc, int row ) { - if ( GetRowHeight(row) <= 0 ) + if ( GetRowHeight(row) <= 0 || m_rowLabelWidth <= 0 ) return; wxRect rect; -#ifdef __WXGTK__ +#ifdef __WXGTK20__ rect.SetX( 1 ); rect.SetY( GetRowTop(row) + 1 ); rect.SetWidth( m_rowLabelWidth - 2 ); @@ -7317,13 +7332,13 @@ void wxGrid::DrawColLabels( wxDC& dc,const wxArrayInt& cols ) void wxGrid::DrawColLabel( wxDC& dc, int col ) { - if ( GetColWidth(col) <= 0 ) + if ( GetColWidth(col) <= 0 || m_colLabelHeight <= 0 ) return; int colLeft = GetColLeft(col); wxRect rect; -#ifdef __WXGTK__ +#ifdef __WXGTK20__ rect.SetX( colLeft + 1 ); rect.SetY( 1 ); rect.SetWidth( GetColWidth(col) - 2 );