XmLGrid(3X)

NAME
XmLGrid

SYNOPSIS
#include <XmL/Grid.h>

DESCRIPTION
A Grid consists of cells in rows and columns. There are two basic cell types, defined by the nature of the cell content: STRING (XmString format), and PIXMAP (pixmap images). STRING cells may allow editing. Cells and regions within the Grid may be formatted with borders and shadowing. Rows and columns may be fixed on the top, bottom, left and right to remain in view while scrolling horizontally or vertically. There may be heading and footer rows at the top and bottom, and heading and footer columns at the left and right, in addition to the content rows and columns in the center of the Grid. While headings and footers must be fixed, content rows may scroll or may also be fixed on the top, bottom, left and right.

  Class Information
Grid inherits from XmManager, Constraint, Composite and Core. Its class pointer is xmlGridWidgetClass. Its class name is XmLGrid.

  New Resources
The Grid resources defined below affect its overall behavior, layout and appearance. Definitions of resources affecting rows, columns and cells follow the Grid resource definitions.
Name                     Class
 Type                     Default                Access
XmNallowColumnHide       XmCAllowColumnHide
 Boolean                  False                  CSG
XmNallowColumnResize     XmCAllowColumnResize
 Boolean                  False                  CSG
XmNallowDragSelected     XmCAllowDragSelected
 Boolean                  False                  CSG
XmNallowDrop             XmCAllowDrop
 Boolean                  False                  CSG
XmNallowRowHide          XmCAllowRowHide
 Boolean                  False                  CSG
XmNallowRowResize        XmCAllowRowResize
 Boolean                  False                  CSG
XmNautoSelect            XmCAutoSelect
 Boolean                  True                   CSG
XmNblankBackground       XmCBlankBackground
 Pixel                    Dynamic                CSG
XmNbottomFixedCount      XmCBottomFixedCount
 int                      0                      CSG
XmNbottomFixedMargin     XmCBottomFixedMargin
 Dimension                0                      CSG
XmNcolumns               XmCColumns
 int                      0                      CSG
XmNdebugLevel            XmCDebugLevel
 int                      0                      CSG
XmNeditTranslations      XmCTranslations
 XtTranslations           Dynamic                CSG
XmNfontList              XmCFontList
 XmFontList               Dynamic                CSG
XmNfooterColumns         XmCFooterColumns
 int                      0                      CSG
XmNfooterRows            XmCFooterRows
 int                      0                      CSG
XmNglobalPixmapHeight    XmCGlobalPixmapHeight
 Dimension                0                      CSG
XmNglobalPixmapWidth     XmCGlobalPixmapWidth
 Dimension                0                      CSG
XmNheadingColumns        XmCHeadingColumns
 int                      0                      CSG
XmNheadingRows           XmCHeadingRows
 int                      0                      CSG
XmNhiddenColumns         XmCHiddenColumns
 int                      0                      G
XmNhiddenRows            XmCHiddenRows
 int                      0                      G
XmNhighlightRowMode      XmCHighlightRowMode
 Boolean                  False                  CSG
XmNhighlightThickness    XmCHighlightThickness
 Dimension                2                      CSG
XmNhorizontalScrollBar   XmCHorizontalScrollBar
 Widget                   Dynamic                G
XmNhorizontalSizePolicy  XmCHorizontalSizePolicy
 unsigned char            XmCONSTANT             CSG
XmNhsbDisplayPolicy      XmCHsbDisplayPolicy
 unsigned char            XmAS_NEEDED            CSG
XmNimmediateDraw         XmCImmediateDraw
 Boolean                  False                  CSG
XmNlayoutFrozen          XmCLayoutFrozen
 Boolean                  False                  CSG
XmNleftFixedCount        XmCLeftFixedCount
 int                      0                      CSG
XmNleftFixedMargin       XmCLeftFixedMargin
 Dimension                0                      CSG
XmNrightFixedCount       XmCRightFixedCount
 int                      0                      CSG
XmNrightFixedMargin      XmCRightFixedMargin
 Dimension                0                      CSG
XmNrows                  XmCRows
 int                      0                      CSG
XmNscrollBarMargin       XmCScrollBarMargin
 Dimension                2                      CSG
XmNscrollColumn          XmCScrollColumn
 int                      Dynamic                CSG
XmNscrollRow             XmCScrollRow
 int                      Dynamic                CSG
XmNselectBackground      XmCSelectBackground
 Pixel                    Dynamic                CSG
XmNselectForeground      XmCSelectForeground
 Pixel                    Dynamic                CSG
XmNselectionPolicy       XmCGridSelectionPolicy
 unsigned char            XmSELECT_BROWSE_ROW    CSG
XmNshadowRegions         XmCShadowRegions
 int                      511                    CSG
XmNshadowType            XmCShadowType
 unsigned char            XmSHADOW_IN            CSG
XmNsimpleHeadings        XmCSimpleHeadings
 String                   NULL                   CSG
XmNsimpleWidths          XmCSimpleWidths
 String                   NULL                   CSG
XmNtextWidget            XmCTextWidget
 Widget                   Dynamic                G
XmNtopFixedCount         XmCTopFixedCount
 int                      0                      CSG
XmNtopFixedMargin        XmCTopFixedMargin
 Dimension                0                      CSG
XmNtraverseTranslations  XmCTranslations
 XtTranslations           Dynamic                CSG
XmNuseAverageFontWidth   XmCUseAverageFontWidth
 Boolean                  True                   CSG
XmNverticalScrollBar     XmCVerticalScrollBar
 Widget                   0                      G
XmNverticalSizePolicy    XmCVerticalSizePolicy
 unsigned char            XmCONSTANT             CSG
XmNvisibleColumns        XmCVisibleColumns
 int                      0                      CSG
XmNvisibleRows           XmCVisibleRows
 int                      0                      CSG
XmNvsbDisplayPolicy      XmCVsbDisplayPolicy
 unsigned char            XmAS_NEEDED            CSG

XmNallowColumnHide
    This resource only has effect when XmNallowColumnResize is True. If the user is able to resize columns, this resource controls whether a user can hide a column by resizing it to a zero width. If True, a user may size columns to a zero width (hiding them) and if False (the default), a user will not be able to resize a column to a zero width.

XmNallowColumnResize
    If True, the user may resize a column by dragging the right edge of a cell in a heading row. When the user resizes a column, the column's XmNcolumnSizePolicy is set to XmCONSTANT and the column's XmNcolumnWidth is set to the pixel width chosen by the user. If the Grid contains no heading rows, this resource has no effect. If False, interactive column resizing is disabled.

XmNallowDragSelected
    If True, the user may interactively drag cell contents (strings) to a drop site. If False, dragging is disabled.

XmNallowDrop
    If True, the user is allow to drop cell contents (strings) into the Grid. If False, the Grid will not register itself as a drop site.

XmNallowRowHide
    This resource only has effect when XmNallowRowResize is True. If the user is able to resize rows, this resource controls whether a user can hide a row by resizing it to a zero height. If True, a user may size rows to a zero height (hiding them) and if False (the default), a user will not be able to resize a row to a zero height.

XmNallowRowResize
    If True, the user may resize a row by dragging the bottom edge of a cell in a heading column. When the user resizes a row, the row's XmNrowSizePolicy is set to XmCONSTANT and the row's XmNrowHeight is set to the pixel height chosen by the user. If the Grid contains no heading columns, this resource has no effect. If False, interactive row resizing is disabled.

XmNautoSelect
    If set to True (the default) and the Grid's XmNselectionPolicy is XmSELECT_BROWSE_ROW, the Grid will select its first row when it is realized. No callback is generated by this action. If False, no initial row will be selected.

XmNblankBackground
    If a Grid has a horizontal scrollbar which is scrolled completely to the right or a vertical scrollbar which is scrolled to the bottom, an empty area can exist after the last set of scrolling cells. The color of this empty region is set by the XmNblankBackground resource. It will only be visible when the Grid is scrolled fully to the right or bottom. This value is initially set to the background color of the Grid widget.

XmNbottomFixedCount
    The number of fixed rows at the bottom of the Grid including footer rows. Since footer rows must be fixed, this value may not be set smaller than the number of footer rows. If this value is greater than the total number of rows, then as additional rows are added they will be fixed until this value is reached.

XmNbottomFixedMargin
    The height, in pixels, of the margin between the bottom fixed rows and any rows above them.

XmNcolumns
    The number of content columns. Setting this value will add content columns to the Grid if the value set is greater than the current number of content columns. Likewise, setting this value to a number less than the current number of content columns will cause content columns to be deleted. The Grid updates this resource to reflect the current number of content columns every time a content column is added or removed. To get the total number of columns in the Grid (heading, content and footer) add this value to the number of heading and footer columns.

XmNdebugLevel
    If set to a value greater than 0, debugging messages will be printed to stderr. When set to 0 (the default) only error messages will be reported.

XmNeditTranslations
    The translations merged into the Text widget child of the Grid when the Grid goes from traverse mode into edit mode.

XmNfontList
    The default font list for new cells. Changing this resource does not affect existing cells. If this value is NULL, a font list is obtained from the nearest parent that is a subclass of BulletinBoard, MenuShell, or VendorShell.

XmNfooterColumns
    The number of footer columns. Setting this value will add footer columns to the Grid if the value set is greater than the current number of footer columns. Likewise, setting this value to a number less than the current number of footer columns will cause footer columns to be deleted. The Grid updates this resource to reflect the current number of footer columns every time a footer column is added or removed.

XmNfooterRows
    The number of footer rows. Setting this value will add footer rows to the Grid if the value set is greater than the current number of footer rows. Likewise, setting this value to a number less than the current number of footer rows will cause footer rows to be deleted. The Grid updates this resource to reflect the current number of footer rows every time a footer row is added or removed.

XmNglobalPixmapHeight
    If non-zero, this value specifies the height of every pixmap contained in the cells of the Grid. You should set this resource only if all cell pixmaps have equal size. If you set this resource, you should also set XmNglobalPixmapWidth to the width of the pixmaps. Setting this value will increase performance when setting cell pixmaps since if this value is not set, the Grid will need to perform a query to determine the dimensions of any pixmap set. You should leave this value at 0 (the default) if you have pixmaps of varying size in the Grid.

XmNglobalPixmapWidth
    This resource should be used with XmNglobalPixmapHeight. See XmNglobalPixmapHeight for details.

XmNheadingColumns
    The number of heading columns. Setting this value will add heading columns to the Grid if the value set is greater than the current number of heading columns. Likewise, setting this value to a number less than the current number of heading columns will cause heading columns to be deleted. The Grid updates this resource to reflect the current number of heading columns every time a heading column is added or removed.

XmNheadingRows
    The number of heading rows. Setting this value will add heading rows to the Grid if the value set is greater than the current number of heading rows. Likewise, setting this value to a number less than the current number of heading rows will cause heading rows to be deleted. The Grid updates this resource to reflect the current number of heading rows every time a heading row is added or removed.

XmNhiddenColumns
    The total number of hidden columns. The Grid updates this resource every time a column is hidden or unhidden. Hidden columns are columns with a width of 0.

XmNhiddenRows
    The total number of hidden rows. The Grid updates this resource every time a row is hidden or unhidden. Hidden rows are rows with a height of 0.

XmNhighlightRowMode
    If True, a highlight is drawn around the entire row containing the cell which has focus instead of just around the current cell which has focus. If False (the default), when a cell has focus, the highlight will be drawn only around that cell.

XmNhighlightThickness
    The thickness of the highlight rectangle drawn in cells with focus. This value must be 0 or 2.

XmNhorizontalScrollBar
    The widget ID of the Grid's horizontal ScrollBar.

XmNhorizontalSizePolicy
    Determines how the Grid sizes itself horizontally. Possible values:
        XmVARIABLE        /* Grid always requests full
                             width */
        XmCONSTANT        /* user or parent sets Grid
                             width and scrollbar is
                             displayed if required */
    If this value is XmVARIABLE, the Grid determines the amount of horizontal space required to display the entire Grid and requests this space from its parent. When the width of the Grid changes, it will request more or less space causing it to shrink or expand as its parent widget allows. It will appear truncated, without a horizontal ScrollBar, if not enough space is given by the parent. If this value is XmCONSTANT the user or the parent widget must define the Grid’s width and a horizontal ScrollBar will appear if needed.

XmNhsbDisplayPolicy
    When XmNhorizontalSizePolicy is XmCONSTANT, this resource controls whether to display the horizontal scroll bar if all rows fit in the viewing area. Possible values:
        XmSTATIC        /* scrollbar always displays */
        XmAS_NEEDED     /* scrolbar only displayed when
                           scrolling is possible */

XmNimmediateDraw
    If False (the default), the Grid queues up and compresses drawing events. For example, if you change a cell's background and later change the cell's foreground, the Grid will only draw the cell once to reflect the changes. This drawing compression includes sending expose events to the X Server. If you do not want the Grid to queue and compress drawing events, you should set this value to True. You would want to set this resource to True in the case where you had a very slow connection to an X Server (over a serial line for instance). If set to True and the line to the X Server is slow, more drawing will be performed but the the drawing will show up faster.

XmNlayoutFrozen
    If True, the Grid's layout is frozen and the Grid will not recompute its layout until this resource is set to False. When this resource is set back to False, the layout will be recomputed and the entire Grid will redraw. When rows or columns are added to or deleted from the Grid, or if row heights, column widths or margins are changed, the Grid must recompute its layout by determining which cells to display on the screen. If a number of changes to the Grid layout are going to take place, then by setting this resource to True before executing the first change and setting it to False after the last change is requested, the Grid will not recompute its layout after each change. Setting this value will not affect what is displayed on the screen as it is only used to increase performance. If only a single layout change is requested, such as when adding or deleting a single range of rows or columns, this resource should not be used in an attempt to increase performance as the change may not require a redraw of the Grid. This resource should also not be used around code which does not cause the Grid to recompute its layout, such as changing cell or border colors, as that would decrease performance.

XmNleftFixedCount
    The number of fixed columns at the left of the Grid including heading columns. Since heading columns must be fixed, this value may not be set smaller than the number of heading columns. If this value is greater than the total number of columns, then as additional columns are added they will be fixed until this value is reached.

XmNleftFixedMargin
    The width, in pixels, of the margin between the left fixed columns and any columns to their right.

XmNrightFixedCount
    The number of fixed columns at the right of the Grid including footer columns. Since footer columns must be fixed, this value may not be set smaller than the number of footer columns. If this value is greater than the total number of columns, then as additional columns are added they will be fixed until this value is reached.

XmNrightFixedMargin
    The width, in pixels, of the margin between the right fixed columns and any columns to their left.

XmNrows
    The number of content rows. Setting this value will add content rows to the Grid if the value set is greater than the current number of content rows. Likewise, setting this value to a number less than the current number of content rows will cause content rows to be deleted. The Grid updates this resource to reflect the current number of content rows every time a content row is added or removed. To get the total number of rows in the Grid (heading, content and footer) add this value to the number of heading and footer rows.

XmNscrollBarMargin
    The margin, in pixels, between the ScrollBars and the displayed cells.

XmNscrollColumn
    The left-most scrolling content column currently displayed. This value may be set to change the current scroll position. If setting this value causes the scroll position to change, the Grid's scroll callbacks will be called. If this value is set greater than the last possible scrolling column, the Grid will scroll to the last possible scrolling column. If this value is set less than the first possible scrolling column, the Grid will scroll to the first possible scrolling column.

XmNscrollRow
    The top scrolling content row currently displayed. This value may be set to change the current scroll position. If setting this value causes the scroll position to change, the Grid's scroll callbacks will be called. If this value is set greater than the last possible scrolling row, the Grid will scroll to the last possible scrolling row. If this value is set less than the first possible scrolling row, the Grid will scroll to the first possible scrolling row.

XmNselectBackground
    The background color of cells, rows or columns which are currently selected. This value is initially set to the foreground color of the Grid widget.

XmNselectForeground
    The foreground color of cells, rows or columns which are currently selected. This value is initially set to the background color of the Grid widget.

XmNselectionPolicy
    Determines the types of selections allowed in the Grid. In SELECT_NONE mode, user selections have no effect by default and cell select callbacks are called each time a user selects a cell. The application may set selections of rows/columns or cells. In SELECT_SINGLE_ROW mode, one or zero content rows may be selected. In SELECT_BROWSE_ROW mode, one content row must be selected at all times. In SELECT_MULTIPLE_ROW, multiple content rows may be selected. In any of the SELECT_..._ROW modes, when cells in heading or footer rows are selected by a user, the Grid will call its cell select callbacks. Therefore, the application must be sure to check the type of selection made in its select callback(s). In SELECT_CELL mode, arbitrary regions of cells in content rows and content columns may be selected. A user may select cells in heading rows to select columns and cells in heading columns to select rows. Possible values:
        XmSELECT_NONE         /* no selections */
        XmSELECT_SINGLE_ROW   /* 0 or 1 row selection */
        XmSELECT_BROWSE_ROW   /* 1 row selection */
        XmSELECT_MULTIPLE_ROW /* multiple row selection */
        XmSELECT_CELL         /* multiple row, column,
                                 cell selections */

XmNshadowRegions
    Determines which regions are drawn with shadows. There are 9 regions in the Grid numbered as follows:
               1    2      4
               8    16     32
               64   128    256

    Where 1, 2 and 4 combine to make the top fixed rows. 1, 8 and 64 combine into the left fixed columns, 16 is the scrolling region, etc. The value should be set to the summation of the region’s numbers which should be drawn with a shadow. For example, if this value is set to 428 (64 + 128 + 256) the Grid will draw a shadow box around each region in the bottom row. Regions not included are drawn without shadows.

XmNshadowType
    The type of shadows to draw around the regions of the Grid. Possible values:
        XmSHADOW_ETCHED_IN    /* etched in appearance */
        XmSHADOW_ETCHED_OUT   /* etched out appearance */
        XmSHADOW_IN           /* inset appearance */
        XmSHADOW_OUT          /* outset appearance */

XmNsimpleHeadings
    This resource may be used to set cell strings in the first heading row in a Grid with a simple C string. The value passed should be a null-terminated C string containing headings separated by the pipe symbol. A heading row must exist at the time of this call which contains the number of cells which will be affected or the Grid will generate a warning. The following example sets the headings of a Grid to "First", "Second" and "Third":
       XtVaSetValues(grid,
          XmNsimpleHeadings, "First|Second|Third",
          NULL);
    The Grid makes a copy of the string passed to it for this resource in a SetValues call. The Grid will return a pointer to this internal copy of the string if GetValues is called for this resource and the pointer returned should not be freed by an application.

XmNsimpleWidths
    This resource may be used to set the widths of columns in a Grid. The value passed should be a null-terminated C string containing numbers specifying widths and a letter 'p' or 'c' following the number to indicate whether the width is in pixels or characters. A space should be used after each letter to separate columns. The columns affected by the call must exist at the time a value is set, or the Grid will generate a warning. The following example sets the width of the first column to 10 characters wide and the second column to 20 pixels wide:
       XtVaSetValues(grid,
          XmNsimpleWidths, "10c 20p",
          NULL);
    The Grid makes a copy of the string passed to it for this resource in a SetValues call. The Grid will return a pointer to this internal copy of the string if GetValues is called for this resource and the pointer returned should not be freed by an application.

XmNtextWidget
    The widget ID of the Grid's Text widget.

XmNtopFixedCount
    The number of fixed rows at the top of the Grid including heading rows. Since heading rows must be fixed, this value may not be set smaller than the number of heading rows. If this value is greater than the total number of rows, then as additional rows are added they will be fixed until this value is reached.

XmNtopFixedMargin
    The height, in pixels, of the margin between the top fixed rows and any rows below them.

XmNtraverseTranslations
    The translations merged into the Text widget child of the Grid when the Grid goes from edit mode into traverse mode.

XmNuseAverageFontWidth
    Cells in the Grid which contain text calculate their preferred width based on the font list character width of the font list assigned to the cell. The Grid calculates the font list character width when font lists are assigned to cells. If the value of this resource is True, the font list character width will be calculated by averaging all of the glyph widths in the font list. If this value is False, the font list character width will equal the the maximum glyph width in the font list. Changing this resource only affects font lists assigned after this value is changed, it does not affect the current layout of the Grid. Also, this resource only affects cells containing proportional fonts since a fixed width font's average glyph width will equal its maximum glyph width.

XmNverticalScrollBar
    The widget ID of the Grid's vertical ScrollBar.

XmNverticalSizePolicy
    Determines how the Grid sizes itself vertically. Possible values:
        XmVARIABLE        /* Grid always requests
                             full height */
        XmCONSTANT        /* user or parent sets Grid
                             height and scrollbar is
                             displayed if needed */
    If this value is XmVARIABLE, the Grid determines the amount of vertical space required to display the entire Grid and requests this space from its parent. When the height of the Grid changes, it will request more or less space causing it to shrink or expand as its parent widget allows. It will appear truncated, without a vertical ScrollBar, if not enough space is given by the parent. If this value is XmCONSTANT the user or the parent widget must define the Grids height and a vertical ScrollBar will appear if needed.

XmNvisibleColumns
    Setting this resource causes the Grid to request a width from its parent equal to the value set multiplied by the width of a standard 8 character wide cell. The actual width in pixels requested is:
        shadowThickness * 2 + value * (4 + 8 * defaultFontWidth +
            defaultLeftMargin + defaultRightMargin)
    The width requested is not determined using any existing column values. For example, if you have 3 columns which are each 20 characters wide and you set XmNvisibleColumns to 3, the width requested will not fit the 3 columns of 20 characters, it will fit 3 columns of 8 characters (without Grid borders). The width requested does depend on the default font in the Grid, however, to determine the width of a standard 8 character wide cell. If you want the Grid to request a width equal to the width of the existing columns, see the XmNhorizontalSizePolicy resource's XmVARIABLE setting.

XmNvisibleRows
    Setting this resource causes the Grid to request a height from its parent equal to the value set multiplied by the height of a default 1 character height cell. The actual height in pixels requested is:
        shadowThickness * 2 + value * (4 + defaultFontHeight +
            defaultTopMargin + defaultBottomMargin)
    The height requested is not determined using any existing row values. For example, if you have 10 rows which are each 3 characters high and you set XmNvisibleRows to 10, the height requested will not fit the 10 existing rows, it will fit fit 10 rows of 1 character height (without Grid borders). The height requested does depend on the default font in the Grid, however, to determine the height of a standard cell. If you want the Grid to request a height equal to the height of the existing rows, see the XmNverticalSizePolicy resource's XmVARIABLE setting.

XmNvsbDisplayPolicy
    When XmNverticalSizePolicy is XmCONSTANT, this resource controls whether to display the vertical scroll bar if all rows fit in the viewing area. Possible values:
        XmSTATIC        /* scrollbar always displays */
        XmAS_NEEDED     /* scrolbar only displayed when
                           scrolling is possible */

  Row/Column/Cell Resources
Grid defines the resources in the table below affecting rows, columns and cells. A SetValues call can set values for a single column using XmNcolumn or for a range of columns using XmNcolumnRangeStart and XmNcolumnRangeEnd. Row values can be set using XmNrow or XmNrowRangeStart and XmNrowRangeEnd. Cell values can be set for a single cell using XmNcolumn and XmNrow, or a range of cells using a variety of combinations of row and column specifications. A GetValues call can retrieve values for a column using XmNcolumnPtr, a row using XmNrowPtr, and a cell using both XmNcolumnPtr and XmNrowPtr.
Name                      Class
Type                       Default               Access
XmNcellAlignment          XmCCellAlignment
 unsigned char             XmALIGNMENT_CENTER    SG
XmNcellBackground         XmCCellBackground
 Pixel                     Dynamic               SG
XmNcellBottomBorderColor  XmCCellBottomBorderColor
 Pixel                     Dynamic               SG
XmNcellBottomBorderType   XmCBottomBorderType
 unsigned char             XmBORDER_LINE         SG
XmNcellColumnSpan         XmCCellColumnSpan
 int                       0                     SG
XmNcellDefaults           XmCCellDefaults
 Boolean                   False                 S
XmNcellEditable           XmCCellEditable
 Boolean                   False                 SG
XmNcellFontList           XmCCellFontList
 XmFontList                Dynamic               SG
XmNcellForeground         XmCCellForeground
 Pixel                     Dynamic               SG
XmNcellLeftBorderColor    XmCCellLeftBorderColor
 Pixel                     Dynamic               SG
XmNcellLeftBorderType     XmCCellLeftBorderType
 unsigned char             XmBORDER_LINE         SG
XmNcellMarginBottom       XmCCellMarginBottom
 Dimension                 0                     SG
XmNcellMarginLeft         XmCCellMarginLeft
 Dimension                 0                     SG
XmNcellMarginRight        XmCCellMarginRight
 Dimension                 0                     SG
XmNcellMarginTop          XmCCellMarginTop
 Dimension                 0                     SG
XmNcellPixmap             XmCCellPixmap
 Pixmap                    XmUNSPECIFIED_PIXMAP  SG
XmNcellPixmapMask         XmCCellPixmapMask
 Pixmap                    XmUNSPECIFIED_PIXMAP  SG
XmNcellRightBorderColor   XmCCellRightBorderColor
 Pixel                     Dynamic               SG
XmNcellRightBorderType    XmCCellRightBorderType
 unsigned char             XmBORDER_LINE         SG
XmNcellRowSpan            XmCCellRowSpan
 int                       0                     SG
XmNcellString             XmCXmString
 XmString                  NULL                  SG
XmNcellTopBorderColor     XmCCellTopBorderColor
 Pixel                     Dynamic               SG
XmNcellTopBorderType      XmCCellTopBorderType
 unsigned char             XmBORDER_LINE         SG
XmNcellType               XmCCellType
 unsigned char             XmSTRING_CELL         SG
XmNcellUserData           XmCUserData
 XtPointer                 0                     SG
XmNcolumn                 XmCGridColumn
 int                       -1                    S
XmNcolumnPtr              (none)
 XtPointer                 0                     G
XmNcolumnRangeEnd         XmCColumnRangeEnd
 int                       -1                    S
XmNcolumnRangeStart       XmCColumnRangeStart
 int                       -1                    S
XmNcolumnSizePolicy       XmCColumnSizePolicy
 unsigned char             XmVARIABLE            SG
XmNcolumnStep             XmCColumnStep
 int                       1                     S
XmNcolumnType             XmCColumnType
 unsigned char             XmCONTENT             S
XmNcolumnWidth            XmCColumnWidth
 Dimension                 8                     SG
XmNcolumnUserData         XmCUserData
 XtPointer                 0                     SG
XmNrow                    XmCGridRow
 int                       -1                    S
XmNrowHeight              XmCRowHeight
 Dimension                 1                     SG
XmNrowPtr                 (none)
 XtPointer                 0                     G
XmNrowRangeEnd            XmCRowRangeEnd
 int                       -1                    S
XmNrowRangeStart          XmCRowRangeStart
 int                       -1                    S
XmNrowSizePolicy          XmCRowSizePolicy
 unsigned char             XmVARIABLE            SG
XmNrowStep                XmCRowStep
 int                       1                     S
XmNrowType                XmCRowType
 unsigned char             XmCONTENT             S
XmNrowUserData            XmCUserData
 XtPointer                 0                     SG

XmNcellAlignment
    Determines the alignment of the XmString or Pixmap contained in the cell. Possible values:
    XmALIGNMENT_LEFT         /* left, centered vertically */
    XmALIGNMENT_CENTER       /* centered horizontally and
                                vertically */
    XmALIGNMENT_RIGHT        /* right, centered vertically */
    XmALIGNMENT_TOP_LEFT     /* top left */
    XmALIGNMENT_TOP          /* top, centered horizontally */
    XmALIGNMENT_TOP_RIGHT    /* top right */
    XmALIGNMENT_BOTTOM_LEFT  /* bottom left */
    XmALIGNMENT_BOTTOM       /* bottom, centered horizontally */
    XmALIGNMENT_BOTTOM_RIGHT /* bottom right */
    If a cell Pixmap does not have a width or height set, the cell's alignment will be top left regardless of the value of this resource since any other alignment could not be calculated.

XmNcellBackground
    The cell's background color.

XmNcellBottomBorderColor
    The color of the cell's bottom border. If the cell's bottom border type is XmBORDER_NONE, no bottom border will be drawn and this resource has no effect. The default value of this resource is the bottom shadow color of the Grid.

XmNcellBottomBorderType
    Determines the type of border to draw at the bottom of the cell. Possible values:
    XmBORDER_NONE        /* no border   */
    XmBORDER_DASH        /* dashed line */
    XmBORDER_LINE        /* line border */

XmNcellColumnSpan
    The number of columns to the right that are spanned by this cell. You may combine this with a row span to span both rows and columns. When a cell spans into adjacent cells, those spanned cells are not displayed; instead, the contents of the spanning cell are displayed in the spanned area. This effectively makes the spanning cell larger while not changing the cell's row or column size. If cell spans overlap, the visual behavior of the spanned cells will become undefined. If rows or columns are added or deleted inside a spanned area, the visual behavior of the spanned cells will become undefined. If rows or columns are moved or reordered in a way which does not preserve existing cell spans, the visual behavior of the spanned cells will become undefined. The width of a column span in pixels cannnot exceed the maximum value of the type Dimension. Setting a column span on a cell sets its preferred cell width to 4 pixels. All cells in a span must exist at the time the span is set.

XmNcellDefaults
    Setting this value to True in a SetValues call indicates that the call is setting the default cell values. The default cell values can be assigned on a per-column basis by setting this resource to True and setting a column (using XmNcolumn) or a range of columns in the SetValues call. For example, to set the default editibility for cells in column 0 to editable, you could:
       XtVaSetValues(grid,
          XmNcellDefaults, True,
          XmNcolumn, 0,
          XmNcellEditable, True,
          NULL);
    This specifies that any cell created (cells are created by adding rows or columns) in column 0 will be editable by default. If you do not specify a column in a SetValues call where XmNcellDefaults is True, the default cell values in the call will be set for all columns. Inotherwords, it will set the defaults for any new cell created. This value is always reset to False after a SetValues call completes.

XmNcellEditable
    Allow (True) or disallow (False) a user either by typing, using a cut/paste or drag/drop operation, to edit the cell. This may only be set to True for cells with a XmNcellType of XmSTRING_CELL.

XmNcellFontList
    The font list used for the cell's text. By default, the value of this resource is set to the Grid's XmNfontList. Changing this value may cause the row or column containing the cell to resize if the row's XmNrowSizePolicy or the column's XmNcolumnSizePolicy is XmVARIABLE.

XmNcellForeground
    The cell's foreground color.

XmNcellLeftBorderColor
    The color of the cell's left border. If the cell's left border type is XmBORDER_NONE, no left border will be drawn and this resource has no effect. The default value of this resource is the top shadow color of the Grid.

XmNcellLeftBorderType
    Determines the type of border to draw at the left of the cell. Possible values:
    XmBORDER_NONE        /* no border   */
    XmBORDER_DASH        /* dashed line */
    XmBORDER_LINE        /* line border */

XmNcellMarginBottom
    The height, in pixels, of the margin between the bottom of the cell and the cell's contents.

XmNcellMarginLeft
    The width, in pixels, of the margin between the left of the cell and the cell's contents.

XmNcellMarginRight
    The width, in pixels, of the margin between the right of the cell and the cell's contents.

XmNcellMarginTop
    The height, in pixels, of the margin between the top of the cell and the cell's contents.

XmNcellPixmap
    The Pixmap to draw in the cell if the cell's type is XmPIXMAP_CELL. As in other widgets, the Grid does not make a copy of the Pixmap. Therefore, the Pixmap should not be freed until it is no longer required to be displayed by the Grid. Changing this value may cause the row or column containing the cell to resize if the row's XmNrowSizePolicy or the column's XmNcolumnSizePolicy is XmVARIABLE. This value may be XmUNSPECIFIED_PIXMAP.

XmNcellPixmapMask
    The pixmap mask to use when drawing a cell if the cell's type is XmPIXMAP_CELL. This value must be either XmUNSPECIFIED_PIXMAP (the default) or a Pixmap of depth 1. If set to a Pixmap of depth 1, the Pixmap specified will be used as a mask for drawing the cell's contents. As in other widgets, the Grid does not make a copy of the Pixmap passed. Therefore, the Pixmap should not be freed until it is no longer required to be used by the Grid.

XmNcellRightBorderColor
    The color of the cell's right border. If the cell's right border type is XmBORDER_NONE, no right border will be drawn and this resource has no effect. The default value of this resource is the bottom shadow color of the Grid.

XmNcellRightBorderType
    Determines the type of border to draw at the right of the cell. Possible values:
    XmBORDER_NONE        /* no border   */
    XmBORDER_DASH        /* dashed line */
    XmBORDER_LINE        /* line border */

XmNcellRowSpan
    The number of rows below that are spanned by this cell. You may combine this with a column span to span both rows and columns. When a cell spans into adjacent cells, those spanned cells are not displayed; instead, the contents of the spanning cell are displayed in the spanned area. This effectively makes the spanning cell larger while not changing the cell's row or column size. If cell spans overlap, the visual behavior of the spanned cells will become undefined. If rows or columns are added or deleted inside a spanned area, the visual behavior of the spanned cells will become undefined. If rows or columns are moved or reordered in a way which does not preserve existing cell spans, the visual behavior of the spanned cells will become undefined. The height of a row span in pixels cannnot exceed the maximum value of the type Dimension. Setting a row span on a cell sets its preferred cell height to 4 pixels. All cells in a span must exist at the time the span is set.

XmNcellString
    The compound string to draw in the cell if the cell's type is XmSTRING_CELL. As in other widgets, the Grid makes a copy of the string and so the string may be freed after it is used to set this value. Retrieving this value will return a copy of the cell's string, therefore the retrieved string should be freed when it will no longer be used. This value may be NULL.

XmNcellTopBorderColor
    The color of the cell's top border. If the cell's top border type is XmBORDER_NONE, no top border will be drawn and this resource has no effect. The default value of this resource is the top shadow color of the Grid.

XmNcellTopBorderType
    Determines the type of border to draw at the top of the cell. Possible values:
    XmBORDER_NONE        /* no border   */
    XmBORDER_DASH        /* dashed line */
    XmBORDER_LINE        /* line border */

XmNcellType
    The type of the cell. Possible values:
    XmSTRING_CELL    /* cell displaying XmString */
    XmPIXMAP_CELL    /* cell displaying a Pixmap */
    Changing this value may cause the row or column containing the cell to resize if the row's XmNrowSizePolicy or the column's XmNcolumnSizePolicy is XmVARIABLE. Changing a cell's type from XmSTRING_CELL to XmPIXMAP_CELL will free the XmNcellString currently contained in the cell and will set the XmNcellString to NULL. Changing from XmPIXMAP_CELL to XmSTRING_CELL will cause the cell's XmNcellPixmap to be set to XmUNSPECIFIED_PIXMAP.

XmNcellUserData
    A pointer value unused by the Grid. This resource allows you to attach a pointer to any cell in the Grid.

XmNcolumn
    Defines which column(s) or cell(s) a SetValues call will affect. A value of -1 (the default) means all columns. This value is always reset to -1 after the SetValues call completes. The value of 0 defines the first column of a column type. This resource may not be used in a GetValues call.

XmNcolumnPtr
    Defines which column, or column a cell is contained in, a GetValues call should retrieve values for. This value is a pointer to a column which should be obtained using XmLGridGetColumn(). This resource may not be used in a SetValues call.

XmNcolumnRangeEnd
    Defines the last column or column of cells in a range which a SetValues call will affect. This resource may not be used in a GetValues call. This resource must be used with the XmNcolumnRangeStart resource.

XmNcolumnRangeStart
    Defines the first column or column of cells in a range which a SetValues call will affect. This resource may not be used in a GetValues call. This resource must be used with the XmNcolumnRangeEnd resource.

XmNcolumnSizePolicy
    Defines how the column width is determined. Possible values:
    XmCONSTANT        /* column size is fixed */
    XmVARIABLE        /* column may resize when
                         cell size changes */
    If XmVARIABLE, the column will size itself to the maximum preferred width of the column's cells. For cells containing text, this usually equals the cell's average or maximum font list glyph width multiplied by the XmNcolumnWidth (plus space for borders, etc). If XmCONSTANT, the XmNcolumnWidth value is assumed to be in pixels and the column width will equal that value.

XmNcolumnStep
    Defines the column increment when setting values of multiple columns or cells in a SetValues call. For example, a column step of 2 will skip every other column. This value is 1 by default and will reset to 1 after a SetValues call completes.

XmNcolumnType
    Defines which type of columns or cells a SetValues call will affect. This resource may not be used in a GetValues call. Possible values:
    XmALL_TYPES     /* all column types - heading, content
                       and footer */
    XmCONTENT       /* columns containing the Grid's
                       contents */
    XmHEADING       /* heading columns on the far left */
    XmFOOTER        /* footer columns on the far right */
    This resource is used along with XmNcolumn or XmNcolumnRangeStart and XmNcolumnRangeEnd and determines which type of column the column or column range specifies. By default, this value is set to XmCONTENT. This value is always reset to XmCONTENT after a SetValues call completes.

XmNcolumnUserData
    A pointer value unused by the Grid. This resource allows you to attach a pointer to any column in the Grid.

XmNcolumnWidth
    If XmNcolumnSizePolicy is XmVARIABLE, the value of this resource represents the column width in characters and if a font list in any cell in the column is changed, the column will resize if required. The pixel width of a column is determined by the maximum preferred width of the column's cells. Cells containing text usually determine their preferred width by multiplying the cell's average or maximum font list glyph width by the column's XmNcolumnWidth. Pixmap cells ignore this resource since their preferred width is the width of their pixmap. If XmNcolumnSizePolicy is XmCONSTANT, the value of this resource represents the column width in pixels.

XmNrow
    Defines which row(s) or cell(s) a SetValues call will affect. A value of -1 (the default) means all rows. The value of 0 defines the first row of a row type. This value is always reset to -1 after a SetValues call completes. This resource may not be used in a GetValues call.

XmNrowHeight
    If XmNrowSizePolicy is XmVARIABLE, the value of this resource represents the row height in characters and if a font list in any cell in this row is changed, the row will resize if required. The pixel height of a row is determined by the maximum preferred height of the row's cells. Cells containing text usually determine their preferred height by taking their maximum font list character height and multiplying it by the row's XmNrowHeight. Pixmap cells ignore this resource since their preferred height is the height of their pixmap. If XmNrowSizePolicy is XmCONSTANT, the value of this resource represents the row height in pixels.

XmNrowPtr
    Defines which row, or row a cell is contained in, a GetValues call should retrieve values for. This value is a pointer to a row which should be obtained using XmLGridGetRow(). This resource may not be used in a SetValues call.

XmNrowRangeEnd
    Defines the last row or row of cells in a range which a SetValues call will affect. This resource may not be used in a GetValues call. This resource must be used with the XmNrowRangeStart resource.

XmNrowRangeStart
    Defines the first row or row of cells in a range which a SetValues call will affect. This resource may not be used in a GetValues call. This resource must be used with the XmNrowRangeEnd resource.

XmNrowSizePolicy
    Defines how the row height is determined. Possible values:
    XmCONSTANT        /* row size is fixed */
    XmVARIABLE        /* row may resize when cell
                         size changes */
    If XmVARIABLE, the row will size itself to the maximum preferred height of the row's cells. For cells containing text, this usually equals the cell's maximum font list glyph height multiplied by the XmNrowHeight (plus space for borders, etc). If XmCONSTANT, the XmNrowHeight value is assumed to be in pixels and the row height will equal that value.

XmNrowStep
    Defines the row increment when setting values of multiple rows or cells in a SetValues call. For example, a row step of 2 will skip every other row. This value is 1 by default and will reset to 1 when a SetValue call completes.

XmNrowType
    Defines which type of rows or cells a SetValues call will affect. This resource may not be used in a GetValues call. Possible values:
    XmALL_TYPES     /* all row types - heading/content
                       and footer  */
    XmCONTENT       /* rows containing the Grid's contents */
    XmHEADING       /* heading rows on the top */
    XmFOOTER        /* footer rows on the bottom */
    This resource is used along with XmNrow or XmNrowRangeStart and XmNrowRangeEnd and determines which type of row the row or row range specifies. By default, this value is set to XmCONTENT. This value is always reset to XmCONTENT after a SetValues call completes.

XmNrowUserData
    A pointer value unused by the Grid. This resource allows you to attach a pointer to any row in the Grid.

  Callback Resources
Grid defines the following callback resources.
Callback               Reasons               Called When
XmNactivateCallback    XmCR_ACTIVATE         Cell is activated with
                                             Return or double-click
XmNaddCallback         XmCR_ADD_CELL         Row, column or cell is
                       XmCR_ADD_COLUMN       created by calling a function
                       XmCR_ADD_ROW          which adds rows or columns
XmNcellDrawCallback    XmCR_CELL_DRAW        Cell is drawn
XmNcellDropCallback    XmCR_CELL_DROP        Cell value was changed by new
                                             value dropped into cell
XmNcellFocusCallback   XmCR_CELL_FOCUS_IN    Focus cell is set or changed
                       XmCR_CELL_FOCUS_OUT
XmNcellPasteCallback   XmCR_CELL_PASTE       Cell value was changed by new
                                             value pasted into cell
XmNdeleteCallback      XmCR_DELETE_CELL      Row, column or cell is
                       XmCR_DELETE_COLUMN    deleted by calling a
                       XmCR_DELETE_ROW       function which deletes
                                             rows or columns
XmNdeselectCallback    XmCR_DESELECT_CELL    Row, column or cell
                       XmCR_DESELECT_COLUMN  changes from selected
                       XmCR_DESELECT_ROW     to deselected (see also
                                             XmNselectionPolicy resource)
XmNeditCallback        XmCR_EDIT_BEGIN       Cell edit begins, cancels,
                       XmCR_EDIT_CANCEL      completes or when an
                       XmCR_EDIT_COMPLETE    insert-begin occurs in
                       XmCR_EDIT_INSERT      a cell
XmNresizeCallback      XmCR_RESIZE_ROW       Row or column is resized
                       XmCR_RESIZE_COLUMN    interactively
XmNscrollCallback      XmCR_SCROLL_ROW       Current scrolled row or
                       XmCR_SCROLL_COLUMN    column position changes
XmNselectCallback      XmCR_SELECT_CELL      Row, column or cell is
                       XmCR_SELECT_COLUMN    selected (see also
                       XmCR_SELECT_ROW       XmNselectionPolicy resource)

  Callback Structure
Each callback function is passed a pointer to the structure shown below; however, only those values which are meaningful for the callback are set.
     typedef struct
      {
      int reason;                /* callback reason */
      XEvent *event;             /* event causing callback or NULL */
      unsigned char rowType, columnType;   /* row and column types */
      int row, int column;       /* row and column positions */
      XRectangle  *clipRect;     /* clipping rectangle */
      XmLGridDrawInfoStruct *drawInfo; /* pointer to draw info */
      void *object;              /* reserved */
      } XmLGridCallbackStruct;
The drawInfo pointer is set to point to the structure below for XmNcellDraw callbacks.
     typedef struct
      {
      GC gc;                     /* GC used for drawing */
      XRectangle *cellRect;      /* location/dimensions of
                                    cell (unclipped) */
      Dimension topMargin;       /* cell margins */
      Dimension bottomMargin;
      Dimension leftMargin;
      Dimension rightMargin;
      Pixel foreground;          /* cell foreground */
      Pixel background;          /* cell background */
      Pixel selectForeground;    /* cell foreground if selected */
      Pixel selectBackground;    /* cell background if selected */
      XmFontList fontList;       /* cell fontlist */
      unsigned char alignment;   /* cell alignment */
      Boolean drawSelected;      /* True if cell, row or
                                    column selected */
      int drawFocusType;
          /* type of focus cell has, one of:
             XmDRAW_FOCUS_NONE  - cell does not have focus
             XmDRAW_FOCUS_CELL  - focus is in cell
             XmDRAW_FOCUS_LEFT  - cell is leftmost in focus row
             XmDRAW_FOCUS_RIGHT - cell is rightmost in focus row
             XmDRAW_FOCUS_MID   - cell is in middle of focus row */
      XmStringDirection stringDirection;
          /* direction for string drawing */
      } XmLGridDrawInfoStruct;
The following table shows which values are set for which callback reasons. Elements not set will have undefined values.
Reason                Values Set
XmCR_ACTIVATE         event, rowType, columnType, row, column
XmCR_ADD_CELL         rowType, columnType
XmCR_ADD_COLUMN       columnType
XmCR_ADD_ROW          rowType
XmCR_CELL_DRAW        event, rowType, columnType, row, column,
                      clipRect, drawInfo
XmCR_CELL_DROP        rowType, columnType, row, column
XmCR_CELL_FOCUS_IN    rowType, columnType, row, column
XmCR_CELL_FOCUS_OUT   rowType, columnType, row, column
XmCR_CELL_PASTE       rowType, columnType, row, column
XmCR_DELETE_CELL      rowType, columnType
XmCR_DELETE_COLUMN    columnType
XmCR_DELETE_ROW       rowType
XmCR_DESELECT_CELL    event, rowType, columnType, row, column
XmCR_DESELECT_COLUMN  event, columnType, column
XmCR_DESELECT_ROW     event, rowType, row
XmCR_EDIT_BEGIN       rowType, columnType, row, column
XmCR_EDIT_COMPLETE    rowType, columnType, row, column
XmCR_EDIT_CANCEL      rowType, columnType, row, column, clipRect
XmCR_EDIT_INSERT      rowType, columnType, row, column, clipRect
XmCR_RESIZE_ROW       rowType, row
XmCR_RESIZE_COLUMN    columnType, column
XmCR_SCROLL_ROW       rowType, row
XmCR_SCROLL_COLUMN    columnType, column
XmCR_SELECT_CELL      event, rowType, columnType, row, column
XmCR_SELECT_COLUMN    event, columnType, column
XmCR_SELECT_ROW       event, rowType, row

  Inherited Resources
Grid inherits the resources shown below. The Grid resets its default XmNshadow-Thickness to 2.
Resource              From        Resource                  From
XmNaccelerators       Core        XmNinitialResourcePersist Core
XmNancestorSensitive  Core        XmNinsertPosition         Composite
XmNbackground         Core        XmNmappedWhenManaged      Core
XmNbackgroundPixmap   Core        XmNnavagationType         Manager
XmNborderColor        Core        XmNnumChildren            Composite
XmNborderPixmap       Core        XmNscreen                 Core
XmNborderWidth        Core        XmNsensitive              Core
XmNbottomShadowColor  Manager     XmNshadowThicknses        Manager
XmNbottomShadowPixmap Manager     XmNstringDirection        Manager
XmNchildren           Composite   XmNtopShadowColor         Manager
XmNcolormap           Core        XmNtopShadowPixmap        Manager
XmNdepth              Core        XmNtranslations           Core
XmNdestroyCallback    Core        XmNtraversalOn            Manager
XmNforeground         Manager     XmNunitType               Manager
XmNheight             Core        XmNuserData               Manager
XmNhelpCallback       Manager     XmNwidth                  Core
XmNhighlightColor     Manager     XmNx                      Core
XmNhighlightPixmap    Manager     XmNy                      Core

  Grid Translations
Grid defines the translations shown below.
Event          Action                Event           Action
BSelect Press  XmLGridSelect(BEGIN)  BExtend Motion  XmLGridButtonMotion()
BExtend Press  XmLGridSelect(EXTEND) BToggle Motion  XmLGridButtonMotion()
BToggle Press  XmLGridSelect(TOGGLE) BSelect Release XmLGridSelect(END)
BSelect Motion XmLGridButtonMotion() BExtend Release XmLGridSelect(END)
BDrag Press    XmLGridDragStart()

  Grid Text Traverse Translations
When the Grid widget enters traverse mode, it overrides its Text widget child's translations with those shown below.
Event                  Action
KUp                    XmLGridTraverse(UP)
MCtrl KPageDown        XmLGridTraverse(PAGE_RIGHT)
MShift KUp             XmLGridTraverse(EXTEND_UP)
MCtrl MShift KPageDown XmLGridTraverse(EXTEND_ PAGE_RIGHT)
MCtrl KUp              XmLGridTraverse(PAGE_UP)
KTab                   XmLGridTraverse(RIGHT)
KDown                  XmLGridTraverse(DOWN)
MShift KTab            XmLGridTraverse(LEFT)
MShift KDown           XmLGridTraverse(EXTEND_DOWN)
KBeginLine             XmLGridTraverse(TO_TOP)
MCtrl KDown            XmLGridTraverse(PAGE_DOWN)
KEndLine               XmLGridTraverse(TO_BOTTOM)
KLeft                  XmLGridTraverse(LEFT)
KHome                  XmLGridTraverse(TO_TOP)
MShift KLeft           XmLGridTraverse(EXTEND_LEFT)
MCtrl KHome            XmLGridTraverse(TO_TOP_LEFT)
MCtrl KLeft            XmLGridTraverse(PAGE_LEFT)
KEnd                   XmLGridTraverse(TO_BOTTOM)
KRight                 XmLGridTraverse(RIGHT)
MCtrl KEnd             XmLGridTraverse(TO_BOTTOM_RIGHT)
MShift KRight          XmLGridTraverse(EXTEND_RIGHT)
KInsert                XmLGridEdit()
MCtrl KRight           XmLGridTraverse(PAGE_RIGHT)
KF2                    XmLGridEdit()
KPageUp                XmLGridTraverse(PAGE_UP)
KSelect Press          XmLGridSelect(BEGIN)
MShift KPageUp         XmLGridTraverse(EXTEND_ PAGE_UP)
MCtrl KSelect Press    XmLGridSelect(TOGGLE)
MCtrl KPageUp          XmLGridTraverse(PAGE_LEFT)
KSelect Release        XmLGridSelect(END)
MCtrl MShift KPageUp   XmLGridTraverse(EXTEND_ PAGE_LEFT)
KEntend Press          XmLGridSelect(EXTEND)
KPageDown              XmLGridTraverse(PAGE_DOWN)
KExtend Release        XmLGridSelect(END)
MShift KPageDown       XmLGridTraverse(EXTEND_ PAGE_DOWN)
KActivate              XmLGridSelect(ACTIVATE)

  Grid Text Edit Translations
When the Grid widget enters edit mode, it overrides its Text widget child's translations with those shown below.
Event        Action                      Event      Action
KDown        XmLGridEditComplete(DOWN)   KCancel    XmLGridEditCancel()
MShift KTab  XmLGridEditComplete(LEFT)   KActivate  XmLGridEditComplete()
KTab         XmLGridEditComplete(RIGHT)  KUp        XmLGridEditComplete(UP)

  Action Routines
Grid defines the actions shown below.

XmLGridButtonMotion()
    Moves any active resize line or extends the current selection if needed.

XmLGridCursorMotion()
    Changes the cursor to a resize cursor if it is over a resize area.

XmLGridDragStart()
    Begins a drag of the selected cells if required.

XmLGridEdit()
    Enters the Grid into edit mode and begins an edit of the current focus cell.

XmLGridEditCancel()
    Cancels any cell edit in progress and returns the Grid to traverse mode.

XmLGridEditComplete(direction)
    Completes any edit in progress and traverses in the direction specified.

XmLGridSelect(mode)
    Begins or completes selection of the mode type given depending on the event passed to the action function.

XmLGridTraverse(direction)
    Traverses in the given direction from the current focus cell. If traversal is successful, the new focus cell will be made visible, scrolling the Grid if necessary.

SEE ALSO
XmLCreateGrid(3X) XmLGridAddColumns(3X) XmLGridAddRows(3X) XmLGridColumnIsVisible(3X) XmLGridDeleteAllColumns(3X) XmLGridDeleteAllRows(3X) XmLGridDeleteColumns(3X) XmLGridDeleteRows(3X) XmLGridDeselectAllCells(3X) XmLGridDeselectAllColumns(3X) XmLGridDeselectAllRows(3X) XmLGridDeselectCell(3X) XmLGridDeselectColumn(3X) XmLGridDeselectRow(3X) XmLGridEditBegin(3X) XmLGridEditCancel(3X) XmLGridEditComplete(3X) XmLGridGetColumn(3X) XmLGridGetFocus(3X) XmLGridGetRow(3X) XmLGridGetSelectedCellCount(3X) XmLGridGetSelectedCells(3X) XmLGridGetSelectedColumnCount(3X) XmLGridGetSelectedColumns(3X) XmLGridGetSelectedRow(3X) XmLGridGetSelectedRowCount(3X) XmLGridGetSelectedRows(3X) XmLGridMoveColumns(3X) XmLGridMoveRows(3X) XmLGridRead(3X) XmLGridReadPos(3X) XmLGridRedrawAll(3X) XmLGridRedrawCell(3X) XmLGridRedrawColumn(3X) XmLGridRedrawRow(3X) XmLGridReorderColumns(3X) XmLGridReorderRows(3X) XmLGridRowColumnToXY(3X) XmLGridRowlsVisible(3X) XmLGridSelectAllCells(3X) XmLGridSelectAllColumns(3X) XmLGridSelectAllRows(3X) XmLGridSelectCell(3X) XmLGridSelectColumn(3X) XmLGridSelectRow(3X) XmLGridSetFocus(3X) XmLGridSetStrings(3X) XmLGridSetStringsPos(3X) XmLGridWrite(3X) XmLGridWritePos(3X) XmLGridXYToRowColumn(3X)