📄 grid.h
字号:
addToSelected ); } void SelectAll(); bool IsSelection(); // ------ deselect blocks or cells // void DeselectRow( int row ); void DeselectCol( int col ); void DeselectCell( int row, int col ); void ClearSelection(); bool IsInSelection( int row, int col ) const; 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 // to the client size of the grid window. // wxRect BlockToDeviceRect( const wxGridCellCoords & topLeft, const wxGridCellCoords & bottomRight ); // Access or update the selection fore/back colours wxColour GetSelectionBackground() const { return m_selectionBackground; } wxColour GetSelectionForeground() const { return m_selectionForeground; } void SetSelectionBackground(const wxColour& c) { m_selectionBackground = c; } void SetSelectionForeground(const wxColour& c) { m_selectionForeground = c; } // Methods for a registry for mapping data types to Renderers/Editors void RegisterDataType(const wxString& typeName, wxGridCellRenderer* renderer, wxGridCellEditor* editor); // DJC MAPTEK virtual wxGridCellEditor* GetDefaultEditorForCell(int row, int col) const; wxGridCellEditor* GetDefaultEditorForCell(const wxGridCellCoords& c) const { return GetDefaultEditorForCell(c.GetRow(), c.GetCol()); } virtual wxGridCellRenderer* GetDefaultRendererForCell(int row, int col) const; virtual wxGridCellEditor* GetDefaultEditorForType(const wxString& typeName) const; virtual wxGridCellRenderer* GetDefaultRendererForType(const wxString& typeName) const; // grid may occupy more space than needed for its rows/columns, this // function allows to set how big this extra space is void SetMargins(int extraWidth, int extraHeight) { m_extraWidth = extraWidth; m_extraHeight = extraHeight; CalcDimensions(); } // Accessors for component windows wxWindow* GetGridWindow() { return (wxWindow*)m_gridWin; } wxWindow* GetGridRowLabelWindow() { return (wxWindow*)m_rowLabelWin; } wxWindow* GetGridColLabelWindow() { return (wxWindow*)m_colLabelWin; } wxWindow* GetGridCornerLabelWindow() { return (wxWindow*)m_cornerLabelWin; } // Allow adjustment of scroll increment. The default is (15, 15). void SetScrollLineX(int x) { m_scrollLineX = x; } void SetScrollLineY(int y) { m_scrollLineY = y; } int GetScrollLineX() const { return m_scrollLineX; } int GetScrollLineY() const { return m_scrollLineY; } // Implementation int GetScrollX(int x) const { return (x + GetScrollLineX() - 1) / GetScrollLineX(); } int GetScrollY(int y) const { return (y + GetScrollLineY() - 1) / GetScrollLineY(); } // override some base class functions virtual bool Enable(bool enable = true); // ------ For compatibility with previous wxGrid only... // // ************************************************ // ** Don't use these in new code because they ** // ** are liable to disappear in a future ** // ** revision ** // ************************************************ // wxGrid( wxWindow *parent, int x, int y, int w = wxDefaultCoord, int h = wxDefaultCoord, long style = wxWANTS_CHARS, const wxString& name = wxPanelNameStr ) : wxScrolledWindow( parent, wxID_ANY, wxPoint(x,y), wxSize(w,h), (style|wxWANTS_CHARS), name ) { Create(); } void SetCellValue( const wxString& val, int row, int col ) { SetCellValue( row, col, val ); } void UpdateDimensions() { CalcDimensions(); } int GetRows() { return GetNumberRows(); } int GetCols() { return GetNumberCols(); } int GetCursorRow() { return GetGridCursorRow(); } int GetCursorColumn() { return GetGridCursorCol(); } int GetScrollPosX() { return 0; } int GetScrollPosY() { return 0; } void SetScrollX( int WXUNUSED(x) ) { } void SetScrollY( int WXUNUSED(y) ) { } void SetColumnWidth( int col, int width ) { SetColSize( col, width ); } int GetColumnWidth( int col ) { return GetColSize( col ); } void SetRowHeight( int row, int height ) { SetRowSize( row, height ); } // GetRowHeight() is below int GetViewHeight() // returned num whole rows visible { return 0; } int GetViewWidth() // returned num whole cols visible { return 0; } void SetLabelSize( int orientation, int sz ) { if ( orientation == wxHORIZONTAL ) SetColLabelSize( sz ); else SetRowLabelSize( sz ); } int GetLabelSize( int orientation ) { if ( orientation == wxHORIZONTAL ) return GetColLabelSize(); else return GetRowLabelSize(); } void SetLabelAlignment( int orientation, int align ) { if ( orientation == wxHORIZONTAL ) SetColLabelAlignment( align, -1 ); else SetRowLabelAlignment( align, -1 ); } int GetLabelAlignment( int orientation, int WXUNUSED(align) ) { int h, v; if ( orientation == wxHORIZONTAL ) { GetColLabelAlignment( &h, &v ); return h; } else { GetRowLabelAlignment( &h, &v ); return h; } } void SetLabelValue( int orientation, const wxString& val, int pos ) { if ( orientation == wxHORIZONTAL ) SetColLabelValue( pos, val ); else SetRowLabelValue( pos, val ); } wxString GetLabelValue( int orientation, int pos) { if ( orientation == wxHORIZONTAL ) return GetColLabelValue( pos ); else return GetRowLabelValue( pos ); } wxFont GetCellTextFont() const { return m_defaultCellAttr->GetFont(); } wxFont GetCellTextFont(int WXUNUSED(row), int WXUNUSED(col)) const { return m_defaultCellAttr->GetFont(); } void SetCellTextFont(const wxFont& fnt) { SetDefaultCellFont( fnt ); } void SetCellTextFont(const wxFont& fnt, int row, int col) { SetCellFont( row, col, fnt ); } void SetCellTextColour(const wxColour& val, int row, int col) { SetCellTextColour( row, col, val ); } void SetCellTextColour(const wxColour& col) { SetDefaultCellTextColour( col ); } void SetCellBackgroundColour(const wxColour& col) { SetDefaultCellBackgroundColour( col ); } void SetCellBackgroundColour(const wxColour& colour, int row, int col) { SetCellBackgroundColour( row, col, colour ); } bool GetEditable() { return IsEditable(); } void SetEditable( bool edit = true ) { EnableEditing( edit ); } bool GetEditInPlace() { return IsCellEditControlEnabled(); } void SetEditInPlace(bool WXUNUSED(edit) = true) { } void SetCellAlignment( int align, int row, int col) { SetCellAlignment(row, col, align, wxALIGN_CENTER); } void SetCellAlignment( int WXUNUSED(align) ) {} void SetCellBitmap(wxBitmap *WXUNUSED(bitmap), int WXUNUSED(row), int WXUNUSED(col)) { } void SetDividerPen(const wxPen& WXUNUSED(pen)) { } wxPen& GetDividerPen() const; void OnActivate(bool WXUNUSED(active)) {} // ******** End of compatibility functions ********** // ------ control IDs enum { wxGRID_CELLCTRL = 2000, wxGRID_TOPCTRL }; // ------ control types enum { wxGRID_TEXTCTRL = 2100, wxGRID_CHECKBOX, wxGRID_CHOICE, wxGRID_COMBOBOX }; // overridden wxWindow methods virtual void Fit();protected: virtual wxSize DoGetBestSize() const; bool m_created; wxGridWindow *m_gridWin; wxGridRowLabelWindow *m_rowLabelWin; wxGridColLabelWindow *m_colLabelWin; wxGridCornerLabelWindow *m_cornerLabelWin; wxGridTableBase *m_table; bool m_ownTable; int m_numRows; int m_numCols; wxGridCellCoords m_currentCellCoords; wxGridCellCoords m_selectingTopLeft; wxGridCellCoords m_selectingBottomRight; wxGridCellCoords m_selectingKeyboard; wxGridSelection *m_selection; wxColour m_selectionBackground; wxColour m_selectionForeground; // NB: *never* access m_row/col arrays directly because they are created // on demand, *always* use accessor functions instead! // init the m_rowHeights/Bottoms arrays with default values void InitRowHeights(); int m_defaultRowHeight; int m_minAcceptableRowHeight; wxArrayInt m_rowHeights; wxArrayInt m_rowBottoms; // init the m_colWidths/Rights arrays void InitColWidths(); int m_defaultColWidth; int m_minAcceptableColWidth; wxArrayInt m_colWidths; wxArrayInt m_colRights; // get the col/row coords int GetColWidth(int col) const; int GetColLeft(int col) const; int GetColRight(int col) const; // this function must be public for compatibility...public: int GetRowHeight(int row) const;protected: int GetRowTop(int row) const; int GetRowBottom(int row) const; int m_rowLabelWidth; int m_colLabelHeight; // the size of the margin left to the right and bottom of the cell area int m_extraWidth, m_extraHeight; wxColour m_labelBackgroundColour; wxColour m_labelTextColour; wxFont m_labelFont; int m_rowLabelHorizAlign; int m_rowLabelVertAlign; int m_colLabelHorizAlign; int m_colLabelVertAlign; int m_colLabelTextOrientation; bool m_defaultRowLabelValues; bool m_defaultColLabelValues; wxColour m_gridLineColour; bool m_gridLinesEnabled; wxColour m_cellHighlightColour; int m_cellHighlightPenWidth; int m_cellHighlightROPenWidth; // common part of AutoSizeColumn/Row() and GetBestSize() int SetOrCalcColumnSizes(bool calcOnly, bool setAsMin = true); int SetOrCalcRowSizes(bool calcOnly, bool setAsMin = true); // common part of AutoSizeColumn/Row() void AutoSizeColOrRow(int n, bool setAsMin, bool column /* or row? */); // if a column has a minimal width, it will be the value for it in this // hash table wxLongToLongHashMap m_colMinWidths, m_rowMinHeights; // get the minimal width of the given column/row int GetColMinimalWidth(int col) const; int GetRowMinimalHeight(int col) const; // do we have some place to store attributes in? bool CanHaveAttributes(); // cell attribute cache (currently we only cache 1, may be will do // more/better later) struct CachedAttr { int row, col; wxGridCellAttr *attr; } m_attrCache; // invalidates the attribute cache void ClearAttrCache(); // adds an attribute to cache void CacheAttr(int row, int col, wxGridCellAttr *attr) const; // looks for an attr in cache, returns true if found bool LookupAttr(int row, int col, wxGridCellAttr **attr) const; // looks for the attr in cache, if not found asks the table and caches the // result wxGr
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -