// Name: wx/generic/grid.h
// Purpose: wxGrid and related classes
// Author: Michael Bedward (based on code by Julian Smart, Robin Dunn)
-// Modified by:
+// Modified by: Santiago Palacios
// Created: 1/08/1999
// RCS-ID: $Id$
// Copyright: (c) Michael Bedward
void DoEndDragResizeRow();
void DoEndDragResizeCol();
+ void DoEndDragMoveCol();
wxGridTableBase * GetTable() const { return m_table; }
bool SetTable( wxGridTableBase *table, bool takeOwnership = false,
//
void XYToCell( int x, int y, wxGridCellCoords& );
int YToRow( int y );
- int XToCol( int x );
+ int XToCol( int x, bool clipToMinMax = false );
int YToEdgeOfRow( int y );
int XToEdgeOfCol( int x );
void EnableDragColSize( bool enable = true );
void DisableDragColSize() { EnableDragColSize( false ); }
bool CanDragColSize() { return m_canDragColSize; }
+ void EnableDragColMove( bool enable = true );
+ void DisableDragColMove() { EnableDragColMove( false ); }
+ bool CanDragColMove() { return m_canDragColMove; }
void EnableDragGridSize(bool enable = true);
void DisableDragGridSize() { EnableDragGridSize(false); }
bool CanDragGridSize() { return m_canDragGridSize; }
void SetColSize( int col, int width );
+ //Column positions
+ int GetColAt( int colPos ) const
+ {
+ if ( m_colAt.IsEmpty() )
+ return colPos;
+ else
+ return m_colAt[colPos];
+ }
+
+ void SetColPos( int colID, int newPos );
+
+ int GetColPos( int colID ) const
+ {
+ if ( m_colAt.IsEmpty() )
+ return colID;
+ else
+ {
+ for ( int i = 0; i < m_numCols; i++ )
+ {
+ if ( m_colAt[i] == colID )
+ return i;
+ }
+ }
+
+ return -1;
+ }
+
// automatically size the column or row to fit to its contents, if
// setAsMin is true, this optimal width will also be set as minimal width
// for this column
WXGRID_CURSOR_RESIZE_ROW,
WXGRID_CURSOR_RESIZE_COL,
WXGRID_CURSOR_SELECT_ROW,
- WXGRID_CURSOR_SELECT_COL
+ WXGRID_CURSOR_SELECT_COL,
+ WXGRID_CURSOR_MOVE_COL
};
// this method not only sets m_cursorMode but also sets the correct cursor
wxWindow *m_winCapture; // the window which captured the mouse
CursorMode m_cursorMode;
+ //Column positions
+ wxArrayInt m_colAt;
+ int m_moveToCol;
+
bool m_canDragRowSize;
bool m_canDragColSize;
+ bool m_canDragColMove;
bool m_canDragGridSize;
bool m_canDragCell;
int m_dragLastPos;
bool MetaDown() { return m_meta; }
bool ShiftDown() { return m_shift; }
bool AltDown() { return m_alt; }
+ bool CmdDown()
+ {
+#if defined(__WXMAC__) || defined(__WXCOCOA__)
+ return MetaDown();
+#else
+ return ControlDown();
+#endif
+ }
protected:
int m_row;
bool MetaDown() { return m_meta; }
bool ShiftDown() { return m_shift; }
bool AltDown() { return m_alt; }
+ bool CmdDown()
+ {
+#if defined(__WXMAC__) || defined(__WXCOCOA__)
+ return MetaDown();
+#else
+ return ControlDown();
+#endif
+ }
protected:
int m_rowOrCol;
bool MetaDown() { return m_meta; }
bool ShiftDown() { return m_shift; }
bool AltDown() { return m_alt; }
+ bool CmdDown()
+ {
+#if defined(__WXMAC__) || defined(__WXCOCOA__)
+ return MetaDown();
+#else
+ return ControlDown();
+#endif
+ }
protected:
wxGridCellCoords m_topLeft;