QicsTable Documentation Set

QicsGrid Class Reference

Object that manages the layout and display of cells in a grid pattern. More...

#include <QicsGrid.h>

Inherits Qics.

Inherited by QicsPrintGrid, and QicsScreenGrid.

List of all members.

Public Types

enum  QicsWideKeyAction {
  Del_DeleteSelected, CtrlA_SelectAll, CtrlC_Copy, CtrlV_Paste,
enum  QicsBoxBorders {
  TopBorder = 1, BottomBorder = 2, LeftBorder = 4, RightBorder = 8,
  AllBorders = 1+2+4+8
enum  QicsCopyPolicy {
  CopyData = 1, CopyAttributes = 2, CopyDimensions = 4, CopySpans = 8,
  CopyAll = 1+2+4+8
enum  QicsClearPolicy { ClearData = 1, ClearAttributes = 2, ClearSpans = 4, ClearAll = 1+2+4 }
enum  QicsSortMode { QicsStableSort = 0, QicsQuickSort }
enum  QicsCellOverflowBehavior { Clip = 0, Overflow, ToolTip }
enum  QicsCurrentCellStyle { Spreadsheet = 0, NormalSelected }
enum  QicsSelectionStyle { Normal = 0, Exclusive }
enum  QicsSelectCurrentCellPolicy { Follow = 0, Static }
enum  QicsFillHandleEventType { FillHandlePressed = 0, FillHandleReleased, FillHandleDoubleClicked, FillHandleDragged }
enum  QicsGridCellClipping { AllowPartial = 0, NoDisplayOnPartial, UseClippedSymbol }
enum  QicsGridType { TableGrid = 0, RowHeaderGrid, ColumnHeaderGrid }
enum  QicsHeaderType { RowHeader = 0, ColumnHeader }
enum  QicsIndexType { NoIndex = 0, RowIndex, ColumnIndex, RowAndColumnIndex }
enum  QicsLineStyle { None = 0, Plain, Raised, Sunken }
enum  QicsRepaintBehavior { RepaintOff = 0, RepaintOn = 1, RepaintCalcOnly = 2 }
enum  QicsScrollBarMode { Auto = 0, AlwaysOff, AlwaysOn }
enum  QicsScrollDirection {
  ScrollNone = 0, ScrollUp = 1, ScrollDown = 2, ScrollLeft = 4,
  ScrollRight = 8, ScrollToRow = 16, ScrollToColumn = 32
enum  QicsSelectionPolicy {
  SelectNone = 0, SelectSingle, SelectMultiple, SelectSingleRow,
enum  QicsSelectionType {
  SelectionNone = 0, SelectionBegin, SelectionDrag, SelectionEnd,
  SelectionExtend, SelectionAdd, SelectionReplace
enum  QicsSortOrder { Ascending = 0, Descending }
enum  QicsTableDisplayOption { DisplayNever = 0, DisplayAlways, DisplayFirstPage }
enum  QicsTraversalKeyEditBehavior { TraverseWithinCell = 0, TraverseBetweenCells }
enum  QicsCurrentCellDraggingPolicy { DragCurrent = 0, DragSelection }
enum  QicsCellWidthMode { NoChange = 0, ChangeOnlyHeight, ChangeHeightWidth }
enum  QicsCellDecorationStyle { Flat = 0, Styled = 1 }
enum  QicsHeaderDragStyle { SimpleDrag = 0, StyledDrag = 1 }
enum  QicsAutoFitMode { Native = 0, Excel }

Public Member Functions

 QicsGrid (QicsGridInfo &info, int top_row=0, int left_column=0)
virtual ~QicsGrid ()
QicsGridInfogridInfo (void) const
virtual void setViewport (const QicsRegion &reg)
virtual QicsRegion viewport (void) const
virtual QicsRegion currentViewport (void) const
QicsRegion screenViewport (void) const
bool isCellValid (int row, int col) const
QRect cellDimensions (int row, int col, bool with_spans) const
QRect cellDimensions (const QicsICell &cell, bool with_spans) const
int modelColumnIndex (int column) const
int modelRowIndex (int row) const
virtual void orderRowsBy (const QVector< int > &columns, QicsSortOrder order=Qics::Ascending, DataItemComparator func=0)
virtual void orderColumnsBy (const QVector< int > &rows, QicsSortOrder order=Qics::Ascending, DataItemComparator func=0)

Static Public Attributes

static const int QicsLAST_ROW = INT_MAX-1
static const int QicsLAST_COLUMN = INT_MAX-1

Protected Member Functions

QicsDataModeldataModel (void) const
QicsStyleManager & styleManager (void) const
QicsDimensionManager & dimensionManager (void) const
QicsMappedDimensionManagermappedDM (void) const
QicsSelectionManagerselectionManager (void) const
virtual QRect drawRegion (const QicsRegion &region, QPainter *painter, bool drawCellBordersOnly)
virtual void drawGridLines (const QicsRegion &reg, QPainter *painter)
virtual QRect drawCell (int row, int col, int x, int y, bool look_for_overflower, QPainter *painter, bool drawBorderOnly)
virtual QRect drawCell (int row, int col, QRect rect, QPainter *painter, bool drawCellBordersOnly)
virtual bool prepareToDraw (int row, int col, const QRect &rect, QPainter *painter)
virtual const QicsDataItemcellValue (int row, int col) const
QicsICell computeCellPositions (const QRect &bounds, const QicsICell &start, Qics::QicsIndexType indexType=Qics::RowAndColumnIndex)
QicsCellDisplaycellDisplay (int row, int col) const
virtual const QRect boundRect () const

Protected Attributes

QicsRegion myViewport
QicsPositionList myRowPositions
QicsPositionList myColumnPositions
QicsICellQVL myAlreadyDrawnCells
int myTopRow
int myLeftColumn
int myBottomRow
int myFullyVisibleBottomRow
int myRightColumn
int myFullyVisibleRightColumn
int myExSelLeft
int myExSelRight
int myExSelTop
int myExSelBottom
int myTraversalRow
int myTraversalColumn

Detailed Description

Object that manages the layout and display of cells in a grid pattern.

QicsGrid is used to display information in a grid format. The grid object is responsible for laying out the cells based on a given rectangle and based on various properties that are stored in the QicsStyleManager. The grid draws only the lines between the cells, the cells themselves are drawn by the appropriate QicsCellDisplay object.

Most users of the QicsTable product should not need to create or modify QicsGrid objects directly. The QicsTable widget automatically creates the necessary grid objects when needed. One instance where a user may need to modify a grid is to change the mouse and/or keyboard behavior of the grids. In this case, please look at QicsScreenGrid and its subclasses.

It is important to note that QicsGrid is not a widget. It is equally capable of layout for a widget or for a printer, and serves as a superclass for both purposes. See QicsScreenGrid for the grid widget hierarchy, or see QicsPrintGrid for grid printing.

Member Enumeration Documentation

enum Qics::QicsWideKeyAction [inherited]

Denotes global key actions available for the table grid.

  • Del_DeleteSelected Pressing Delete removes data from the selected cells.
  • CtrlA_SelectAll Pressing Control+A selects all the cells in the grid.

enum Qics::QicsBoxBorders [inherited]

Denotes the box borders of cell region.

  • TopBorder Top border of the region.
  • BottomBorder Bottom border of the region.
  • LeftBorder Left border of the region.
  • RightBorder Right border of the region.

enum Qics::QicsCopyPolicy [inherited]

Denotes the copying policy during copy/paste and drag/drop operations.

  • CopyData Copy data from cells.
  • CopyAttributes Copy cell attributes.
  • CopyDimensions Copy cell dimensions (width/height).
  • CopySpans Copy spanned cells.

enum Qics::QicsClearPolicy [inherited]

Denotes the clearing policy during cut and delete operations.

  • ClearData Clear data from cells.
  • ClearAttributes Clear cell attributes.
  • ClearSpans Clear spanned cells.

enum Qics::QicsSortMode [inherited]

Denotes the sort algorithm which is used.

  • QicsStableSort Used non-destructive, stable sort algorithm.
  • QicsQuickSort Default quick sort algorithm.

Denotes the behavior of grids when handling cells whose contents cannot be displayed in the boundaries of the cell.

  • Clip Cell contents are clipped at the edges of the cell.
  • Overflow The grid will attempt to overflow into adjacent cells.
  • ToolTip The full contents of the cell will be displayed in a tooltip when the mouse pointer is hovered over the cell.

enum Qics::QicsCurrentCellStyle [inherited]

Denotes the visual style that the current cell of the table will be drawn with.

  • Spreadsheet The current cell will be drawn with a solid border and will always use the cell's background color.
  • NormalSelected The current cell will be drawn the same as all other selected cells. The border will be as specified in the cell's border properties, and the background will be the cell's selected color.

enum Qics::QicsSelectionStyle [inherited]

  • Normal The selection will be drawn by the normal way.
  • Exclusive The selection will be drawn with border like in MS Excel.

  • Follow The current cell will follow the selection (QicsTable style).
  • Static The current cell will stay on selection anchor (MS Excel style).

enum Qics::QicsGridCellClipping [inherited]

Denotes the policy for displaying text that is too long to fit in its cell.

  • AllowPartial Shows as much of the text as possible.
  • NoDisplayOnPartial Do not display text if it cannot fit in the cell.
  • UseClippedSymbol Display a clipped symbol at the end of the partial text.

enum Qics::QicsGridType [inherited]

Specifies a type of grid object.

  • TableGrid A grid used to display normal table data.
  • RowHeaderGrid A grid used to display row header data.
  • ColumnHeaderGrid A grid used to display column header data.

enum Qics::QicsHeaderType [inherited]

Specifies the type of table header.

  • HeaderRow A row header.
  • HeaderColumn A column header.

enum Qics::QicsIndexType [inherited]

Specifies the type of table index.

  • RowIndex A row index.
  • ColumnIndex A column index.

enum Qics::QicsLineStyle [inherited]

Denotes the style of lines and borders in the table widget.

  • None No line or border.
  • Plain A simple, plain line or border.
  • Raised A raised line (using shadows).
  • Sunken A sunken line (using shadows).

enum Qics::QicsRepaintBehavior [inherited]

Specifies the recalculation and repainting behavior of tables and grids.

  • RepaintOff Do not perform any drawing or dimension calculations.
  • RepaintOn Draw as needed, keep all dimensions up to date.
  • RepaintCalcOnly Do not draw, but keep all dimensions up to date.

enum Qics::QicsScrollBarMode [inherited]

Specifies the various modes of QicsTable's scroll bars.

  • Auto QicsTable shows a scroll bar when the content is too large to fit and not otherwise.
  • AlwaysOff QicsTable never shows a scroll bar.
  • AlwaysOn QicsTable always shows a scroll bar.

enum Qics::QicsScrollDirection [inherited]

Denotes a direction for scrolling operations, or that an absolute scroll should occur.

  • ScrollNone no scroll allowed.
  • ScrollUp scrolling up on a certain number of rows.
  • ScrollDown scrolling down on a certain number of rows.
  • ScrollLeft scrolling left on a certain number of columns.
  • ScrollRight scrolling right on a certain number of columns.
  • ScrollToRow scrolling up or down to a certain row.
  • ScrollToColumn scrolling left or right to a certain column.

enum Qics::QicsSelectionPolicy [inherited]

Denotes the selection policy for the table.

  • SelectNone no selection allowed.
  • SelectSingle single cell selection.
  • SelectMultiple multiple cell selection (including non-contiguous regions).
  • SelectSingleRow selecting a cell selects the entire row, only one row can be selected.
  • SelectMultipleRow selecting a cell selects the entire row, multiple rows can be selected.

enum Qics::QicsSortOrder [inherited]

Specifies whenever ordering should be ascending or descending.

  • Ascending Ascending order.
  • Descending Descending order.

enum Qics::QicsTableDisplayOption [inherited]

Specifies a printing display policy for elements of the table.

  • DisplayNever Do not display the element when printing.
  • DisplayAlways Always display the element when printing.
  • DisplayFirstPage Display the element only when printing the first page of the table.

Specifies the behavior of the traversal keys. (left, right, up, down, etc) while editing a cell.

  • TraverseWithinCell Traversal keys move the text cursor within the edited cell.
  • TraverseBetweenCells Traversal keys move the current cell highlight between cells in the table.

Specifies the behavior of drag&drop operations when it has began from current cell.

  • DragCurrent - only current cell is dragging.
  • DragSelection - whole selection is dragging.

enum Qics::QicsCellWidthMode [inherited]

Specifies the behavior of set cell font.

  • NoChange - does not change size of cells.
  • ChangeOnlyHeight - changing only height of the cell when new font is applies (cell width is not changed).
  • ChangeHeightWidth - changing height and width.

Specifies the cell decoration style for headers.

  • Flat Header cells are drawn flat, just like as ordinal cells.
  • Styled Header cells are drawn with different look.

enum Qics::QicsHeaderDragStyle [inherited]

Specifies row/column drag style for headers.

  • SimpleDrag Only drag cursor is used to indicate drag process.
  • StyledDrag Extended image is used to indicate drag process.

enum Qics::QicsAutoFitMode [inherited]

Specifies autofit modes.

  • Native It toggles between the user defined and minimal width (default).
  • Excel It is just setting the minimal width.

Constructor & Destructor Documentation

QicsGrid::QicsGrid ( QicsGridInfo info,
int  top_row = 0,
int  left_column = 0 

Constructor for the class.

info used for style and dimension information, as well as the associated data model.

virtual QicsGrid::~QicsGrid (  )  [virtual]

The destructor

Member Function Documentation

QicsGridInfo& QicsGrid::gridInfo ( void   )  const [inline]

Returns the grid info object associated with the grid.

Referenced by QicsScreenGrid::currentCell(), and QicsScreenGrid::setCurrentCell().

virtual void QicsGrid::setViewport ( const QicsRegion reg  )  [virtual]

Restricts the grid to show a subset of the data model values. reg specifies an area of the table that is allowed to be displayed.

Reimplemented in QicsScreenGrid.

virtual QicsRegion QicsGrid::viewport ( void   )  const [virtual]

Returns the current viewport of the grid. The viewport specifies an area of the table that is allowed to be displayed.

See also:
currentViewport(), screenViewport()

virtual QicsRegion QicsGrid::currentViewport ( void   )  const [virtual]

Computes the intersection of the data model dimensions and the viewport dimensions. Because the current viewport can contain values that greater than the number of rows and columns in the data model, it is often necessary for the grid to determine the current viewport.

See also:
viewport(), screenViewport()

Reimplemented in QicsHeaderGrid.

QicsRegion QicsGrid::screenViewport ( void   )  const [inline]

Returns the visible part of the viewport.

See also:
viewport(), currentViewport()

bool QicsGrid::isCellValid ( int  row,
int  col 
) const

Returns true if the cell (row, col ) is within the current viewport, false otherwise.

See also:

QRect QicsGrid::cellDimensions ( int  row,
int  col,
bool  with_spans 
) const

Returns a rectangle specifying the current location and dimension of cell (row, col ). If with_spans is true, the cell dimension will include any cells that this cell spans. If the cell is not currently on the screen, the rectangle will be invalid.

QRect QicsGrid::cellDimensions ( const QicsICell cell,
bool  with_spans 
) const [inline]

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

References QicsICell::column(), and QicsICell::row().

int QicsGrid::modelColumnIndex ( int  column  )  const

This method should be called only by QicsCellDisplay objects when trying to draw a cell. If the contents of the cell are too large to fit in the cell, the cell display object may ask to overflow into the next cell.

cur_area the visual coordinates of the cell.
cur_rect the current screen coordinates of the region.
new_area the region we are allowed to draw into.
new_rect the screen coordinates of that region.
true if the overflow is allowed (new_area and new_rect are filled in), or false if the overflow is not allowed.
This method should be called only by QicsCellDisplay objects when trying to draw a cell. If, after calling QicsGrid::requestCellOverflow, the cell display object wishes to accept the proposed overflow region, the cell display object should call this method.

Returns the physical column index into the data model for a given visual column

int QicsGrid::modelRowIndex ( int  row  )  const

Returns the physical row index into the data model for a given visual row

virtual void QicsGrid::orderRowsBy ( const QVector< int > &  columns,
QicsSortOrder  order = Qics::Ascending,
DataItemComparator  func = 0 
) [virtual]

Reorder the presentation of the rows of a data model based on a columns. Note that the data model itself is not changed, only the presentation order shown in this grid and its slaves.

columns the column to sort on
order sort direction
func user defined comparator function.

Reimplemented in QicsScreenGrid.

virtual void QicsGrid::orderColumnsBy ( const QVector< int > &  rows,
QicsSortOrder  order = Qics::Ascending,
DataItemComparator  func = 0 
) [virtual]

Reorder the presentation of the columns of the data model based on a rows. See orderRowsBy for usage description.

Reimplemented in QicsScreenGrid.

The documentation for this class was generated from the following file:

All trademarks and copyrights on this page are properties of their respective owners.
The rest is copyright 1999-2007 Integrated Computer Solutions, Inc.