Some cleanup.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6020 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn 2000-02-15 07:08:42 +00:00
parent ea258ad348
commit fb2957900c
2 changed files with 11 additions and 156 deletions

View File

@ -145,9 +145,9 @@ public:
// Reset the value in the control back to its starting value
virtual void Reset() = 0;
// If the editor is enabled by pressing keys on the grid, this
// will be called to let the editor do something about that key
// if desired.
// If the editor is enabled by pressing keys on the grid,
// this will be called to let the editor do something about
// that first key if desired.
virtual void StartingKey(wxKeyEvent& event);
// Some types of controls on some platforms may need some help
@ -547,42 +547,6 @@ WX_DECLARE_EXPORTED_OBJARRAY(wxGridCellCoords, wxGridCellCoordsArray);
// This set of classes is to provide for the use of different types of
// cell edit controls in the grid while avoiding the wx class info
// system in deference to wxPython
class WXDLLEXPORT wxGridTextCtrl : public wxTextCtrl
{
public:
wxGridTextCtrl() {}
wxGridTextCtrl( wxWindow *,
wxGrid *,
bool isCellControl,
wxWindowID id,
const wxString& value = wxEmptyString,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = 0 );
void SetStartValue( const wxString& );
wxString GetStartValue() { return startValue; }
private:
wxGrid *m_grid;
// TRUE for controls placed over cells,
// FALSE for a control on a grid control panel
bool m_isCellControl;
wxString startValue;
void OnKeyDown( wxKeyEvent& );
DECLARE_DYNAMIC_CLASS( wxGridTextCtrl )
DECLARE_EVENT_TABLE()
};
// ----------------------------------------------------------------------------
// wxGrid
// ----------------------------------------------------------------------------

View File

@ -1354,117 +1354,6 @@ void wxGridStringTable::SetColLabelValue( int col, const wxString& value )
//////////////////////////////////////////////////////////////////////
IMPLEMENT_DYNAMIC_CLASS( wxGridTextCtrl, wxTextCtrl )
BEGIN_EVENT_TABLE( wxGridTextCtrl, wxTextCtrl )
EVT_KEY_DOWN( wxGridTextCtrl::OnKeyDown )
END_EVENT_TABLE()
wxGridTextCtrl::wxGridTextCtrl( wxWindow *par,
wxGrid *grid,
bool isCellControl,
wxWindowID id,
const wxString& value,
const wxPoint& pos,
const wxSize& size,
long style )
: wxTextCtrl( par, id, value, pos, size, style )
{
m_grid = grid;
m_isCellControl = isCellControl;
}
void wxGridTextCtrl::OnKeyDown( wxKeyEvent& event )
{
switch ( event.KeyCode() )
{
#if 0
case WXK_ESCAPE:
m_grid->SetEditControlValue( startValue );
SetInsertionPointEnd();
break;
#else
case WXK_ESCAPE:
m_grid->EnableCellEditControl( FALSE );
#endif
case WXK_UP:
case WXK_DOWN:
case WXK_LEFT:
case WXK_RIGHT:
case WXK_PRIOR:
case WXK_NEXT:
case WXK_SPACE:
if ( m_isCellControl )
{
// send the event to the parent grid, skipping the
// event if nothing happens
//
event.Skip( m_grid->ProcessEvent( event ) );
}
else
{
// default text control response within the top edit
// control
//
event.Skip();
}
break;
case WXK_RETURN:
if ( m_isCellControl )
{
if ( !m_grid->ProcessEvent( event ) )
{
#if defined(__WXMOTIF__) || defined(__WXGTK__)
// wxMotif needs a little extra help...
//
int pos = GetInsertionPoint();
wxString s( GetValue() );
s = s.Left(pos) + "\n" + s.Mid(pos);
SetValue(s);
SetInsertionPoint( pos );
#else
// the other ports can handle a Return key press
//
event.Skip();
#endif
}
}
break;
case WXK_HOME:
case WXK_END:
if ( m_isCellControl )
{
// send the event to the parent grid, skipping the
// event if nothing happens
//
event.Skip( m_grid->ProcessEvent( event ) );
}
else
{
// default text control response within the top edit
// control
//
event.Skip();
}
break;
default:
event.Skip();
}
}
void wxGridTextCtrl::SetStartValue( const wxString& s )
{
startValue = s;
wxTextCtrl::SetValue(s);
}
//////////////////////////////////////////////////////////////////////
IMPLEMENT_DYNAMIC_CLASS( wxGridRowLabelWindow, wxWindow )
@ -1813,6 +1702,11 @@ bool wxGrid::SetTable( wxGridTableBase *table, bool takeOwnership )
{
if ( m_created )
{
// RD: Actually, this should probably be allowed. I think it would be
// nice to be able to switch multiple Tables in and out of a single
// View at runtime. Is there anything in the implmentation that would
// prevent this?
wxFAIL_MSG( wxT("wxGrid::CreateGrid or wxGrid::SetTable called more than once") );
return FALSE;
}
@ -3678,7 +3572,7 @@ void wxGrid::SetCurrentCell( const wxGridCellCoords& coords )
// Clear the old current cell highlight
wxRect r = BlockToDeviceRect(m_currentCellCoords, m_currentCellCoords);
m_currentCellCoords = coords; // Otherwise refresh redraws the hilit!
m_currentCellCoords = coords; // Otherwise refresh redraws the highlight!
m_gridWin->Refresh( FALSE, &r );
}
@ -3688,13 +3582,9 @@ void wxGrid::SetCurrentCell( const wxGridCellCoords& coords )
if ( m_displayed )
{
#if 0
ShowCellEditControl();
#else
wxClientDC dc(m_gridWin);
PrepareDC(dc);
DrawCellHighlight(dc);
#endif
if ( IsSelection() )
{
@ -3811,7 +3701,6 @@ void wxGrid::DrawCellHighlight( wxDC& dc )
dc.SetPen(wxPen(m_gridLineColour, 3, wxSOLID));
dc.SetBrush(*wxTRANSPARENT_BRUSH);
//dc.SetLogicalFunction(wxINVERT);
dc.DrawRectangle(rect);
}
@ -4258,6 +4147,8 @@ void wxGrid::HideCellEditControl()
void wxGrid::SetEditControlValue( const wxString& value )
{
// RD: The new Editors get the value from the table themselves now. This
// method can probably be removed...
}