#include "wx/valtext.h"
#include "wx/intl.h"
#include "wx/math.h"
+ #include "wx/listbox.h"
#endif
#include "wx/textfile.h"
// be removed as well as the #else cases below.
#define _USE_VISATTR 0
-#if _USE_VISATTR
-#include "wx/listbox.h"
-#endif
-
void wxGrid::Create()
{
// set to true by CreateGrid
m_currentCellCoords = wxGridNoCellCoords;
- m_selectingTopLeft = wxGridNoCellCoords;
- m_selectingBottomRight = wxGridNoCellCoords;
+ ClearSelection();
+
m_selectionBackground = wxSystemSettings::GetColour(wxSYS_COLOUR_HIGHLIGHT);
m_selectionForeground = wxSystemSettings::GetColour(wxSYS_COLOUR_HIGHLIGHTTEXT);
switch ( m_cursorMode )
{
case WXGRID_CURSOR_RESIZE_COL:
- {
DoEndDragResizeCol();
// Note: we are ending the event *after* doing
// default processing in this case
//
SendEvent( wxEVT_GRID_COL_SIZE, -1, m_dragRowOrCol, event );
- }
- break;
+ break;
case WXGRID_CURSOR_MOVE_COL:
- {
DoEndDragMoveCol();
SendEvent( wxEVT_GRID_COL_MOVE, -1, m_dragRowOrCol, event );
- }
- break;
+ break;
+
+ case WXGRID_CURSOR_SELECT_COL:
+ case WXGRID_CURSOR_SELECT_CELL:
+ case WXGRID_CURSOR_RESIZE_ROW:
+ case WXGRID_CURSOR_SELECT_ROW:
+ // nothing to do (?)
+ break;
}
ChangeCursorMode(WXGRID_CURSOR_SELECT_CELL, m_colLabelWin);
claimed = GetEventHandler()->ProcessEvent(gridEvt);
vetoed = !gridEvt.IsAllowed();
}
+ else if ( type == wxEVT_GRID_LABEL_LEFT_CLICK ||
+ type == wxEVT_GRID_LABEL_LEFT_DCLICK ||
+ type == wxEVT_GRID_LABEL_RIGHT_CLICK ||
+ type == wxEVT_GRID_LABEL_RIGHT_DCLICK )
+ {
+ wxPoint pos = mouseEv.GetPosition();
+
+ if ( mouseEv.GetEventObject() == GetGridRowLabelWindow() )
+ pos.y += GetColLabelSize();
+ if ( mouseEv.GetEventObject() == GetGridColLabelWindow() )
+ pos.x += GetRowLabelSize();
+
+ wxGridEvent gridEvt( GetId(),
+ type,
+ this,
+ row, col,
+ pos.x,
+ pos.y,
+ false,
+ mouseEv.ControlDown(),
+ mouseEv.ShiftDown(),
+ mouseEv.AltDown(),
+ mouseEv.MetaDown() );
+ claimed = GetEventHandler()->ProcessEvent(gridEvt);
+ vetoed = !gridEvt.IsAllowed();
+ }
else
{
wxGridEvent gridEvt( GetId(),
m_currentCellCoords.SetCol( col );
}
- // convert to scrolled coords
- CalcScrolledPosition( rect.x, rect.y, &rect.x, &rect.y );
-
- int nXMove = 0;
- if (rect.x < 0)
- nXMove = rect.x;
-
// erase the highlight and the cell contents because the editor
// might not cover the entire cell
wxClientDC dc( m_gridWin );
dc.SetPen(*wxTRANSPARENT_PEN);
dc.DrawRectangle(rect);
+ // convert to scrolled coords
+ CalcScrolledPosition( rect.x, rect.y, &rect.x, &rect.y );
+
+ int nXMove = 0;
+ if (rect.x < 0)
+ nXMove = rect.x;
+
// cell is shifted by one pixel
// However, don't allow x or y to become negative
// since the SetSize() method interprets that as
void wxGrid::ClearSelection()
{
- m_selectingTopLeft = wxGridNoCellCoords;
- m_selectingBottomRight = wxGridNoCellCoords;
+ m_selectingTopLeft =
+ m_selectingBottomRight =
+ m_selectingKeyboard = wxGridNoCellCoords;
if ( m_selection )
m_selection->ClearSelection();
}