#ifndef __WXGRID_H__
#define __WXGRID_H__
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(__APPLE__)
#pragma interface "grid.h"
#endif
virtual void StartingKey(wxKeyEvent& event);
virtual wxGridCellEditor *Clone() const
- { return new wxGridCellFloatEditor; }
+ { return new wxGridCellFloatEditor(m_width, m_precision); }
// parameters string format is "width,precision"
virtual void SetParameters(const wxString& params);
m_hAlign = hAlign;
m_vAlign = vAlign;
}
+ void SetSize(int num_rows, int num_cols);
+ void SetOverflow( bool allow ) { m_overflow = allow; }
void SetReadOnly(bool isReadOnly = TRUE)
{ m_isReadOnly = isReadOnly ? ReadOnly : ReadWrite; }
const wxColour& GetBackgroundColour() const;
const wxFont& GetFont() const;
void GetAlignment(int *hAlign, int *vAlign) const;
+ void GetSize(int *num_rows, int *num_cols) const;
+ bool GetOverflow() const { return m_overflow; }
wxGridCellRenderer *GetRenderer(wxGrid* grid, int row, int col) const;
wxGridCellEditor *GetEditor(wxGrid* grid, int row, int col) const;
wxFont m_font;
int m_hAlign,
m_vAlign;
+ int m_sizeRows,
+ m_sizeCols;
+ bool m_overflow;
wxGridCellRenderer* m_renderer;
wxGridCellEditor* m_editor;
public:
wxGridStringTable();
wxGridStringTable( int numRows, int numCols );
- ~wxGridStringTable();
+ virtual ~wxGridStringTable();
// these are pure virtual in wxGridTableBase
//
long style = wxWANTS_CHARS,
const wxString& name = wxPanelNameStr );
- ~wxGrid();
+ virtual ~wxGrid();
enum wxGridSelectionModes {wxGridSelectCells,
wxGridSelectRows,
wxGrid::wxGridSelectCells );
void SetSelectionMode(wxGrid::wxGridSelectionModes selmode);
+ wxGrid::wxGridSelectionModes GetSelectionMode() const;
// ------ grid dimensions
//
int GetBatchCount() { return m_batchCount; }
+ virtual void Refresh(bool eraseb=true, wxRect* rect= NULL);
+
// Use this, rather than wxWindow::Refresh(), to force an
// immediate repainting of the grid. Has no effect if you are
// already inside a BeginBatch / EndBatch block.
// ------ edit control functions
//
- bool IsEditable() { return m_editable; }
+ bool IsEditable() const { return m_editable; }
void EnableEditing( bool edit );
void EnableCellEditControl( bool enable = TRUE );
void DisableDragGridSize() { EnableDragGridSize(FALSE); }
bool CanDragGridSize() { return m_canDragGridSize; }
- // this sets the specified attribute for all cells in this row/col
+ // this sets the specified attribute for this cell or in this row/col
+ void SetAttr(int row, int col, wxGridCellAttr *attr);
void SetRowAttr(int row, wxGridCellAttr *attr);
void SetColAttr(int col, wxGridCellAttr *attr);
wxFont GetCellFont( int row, int col );
void GetDefaultCellAlignment( int *horiz, int *vert );
void GetCellAlignment( int row, int col, int *horiz, int *vert );
+ bool GetDefaultCellOverflow();
+ bool GetCellOverflow( int row, int col );
+ void GetCellSize( int row, int col, int *num_rows, int *num_cols );
void SetDefaultRowSize( int height, bool resizeExistingRows = FALSE );
void SetRowSize( int row, int height );
void SetCellFont( int row, int col, const wxFont& );
void SetDefaultCellAlignment( int horiz, int vert );
void SetCellAlignment( int row, int col, int horiz, int vert );
+ void SetDefaultCellOverflow( bool allow );
+ void SetCellOverflow( int row, int col, bool allow );
+ void SetCellSize( int row, int col, int num_rows, int num_cols );
// takes ownership of the pointer
void SetDefaultRenderer(wxGridCellRenderer *renderer);
// make the cell editable/readonly
void SetReadOnly(int row, int col, bool isReadOnly = TRUE);
- // ------ selections of blocks of cells
+ // ------ select blocks of cells
//
void SelectRow( int row, bool addToSelected = FALSE );
void SelectCol( int col, bool addToSelected = FALSE );
bool IsSelection();
- // ------ deselection
+ // ------ deselect blocks or cells
//
void DeselectRow( int row );
void DeselectCol( int col );
void ClearSelection();
- bool IsInSelection( int row, int col );
+ bool IsInSelection( int row, int col ) const;
- bool IsInSelection( const wxGridCellCoords& coords )
+ bool IsInSelection( const wxGridCellCoords& coords ) const
{ return IsInSelection( coords.GetRow(), coords.GetCol() ); }
+ wxGridCellCoordsArray GetSelectedCells() const;
+ wxGridCellCoordsArray GetSelectionBlockTopLeft() const;
+ wxGridCellCoordsArray GetSelectionBlockBottomRight() const;
+ wxArrayInt GetSelectedRows() const;
+ wxArrayInt GetSelectedCols() const;
// This function returns the rectangle that encloses the block of cells
// limited by TopLeft and BottomRight cell in device coords and clipped