module Fox # # Represents a cell position in an FXTable. # class FXTablePos # Cell row (zero-based) [Integer] attr_accessor :row # Cell column (zero-based) [Integer] attr_accessor :col # # Returns an initialized FXTablePos instance. # def initialize; end end # # Represents a range of cells in an FXTable. # class FXTableRange # Starting position for this range of cells [FXTablePos] attr_accessor :fm # Ending position for this range of cells [FXTablePos] attr_accessor :to # # Returns an initialized FXTableRange instance. # def initialize; end end # # Represents a particular cell in an FXTable. # class FXTableItem < FXObject # Text associated with this cell [String] attr_accessor :text # Icon associated with this cell [FXIcon] attr_accessor :icon # User data associated with this cell [Object] attr_accessor :data # Indicates whether this item has the focus [Boolean] attr_writer :focus # Indicates whether this item is selected [Boolean] attr_writer :selected # Indicates whether this item is enabled [Boolean] attr_writer :enabled # Indicates whether this item is draggable [Boolean] attr_writer :draggable # # Indicates how the text in the cell will be justified. # This value is some combination of the horizontal justification # flags +LEFT+, +CENTER_X+ and +RIGHT+, and the vertical # justification flags +TOP+, +CENTER_Y+ and +BOTTOM+. # attr_accessor :justify # The icon's position in the cell, relative to the text (one # of +BEFORE+, +AFTER+, +ABOVE+ or +BELOW+) [Integer] attr_accessor :iconPosition # Which borders will be drawn for this cell (some combination of # +LBORDER+, +RBORDER+, +TBORDER+ and +BBORDER+) [Integer] attr_accessor :borders # The background stipple pattern for this cell [Integer] attr_accessor :stipple # # Return an initialized FXTableItem instance. # # ==== Parameters: # # +text+:: the text for this table item [String] # +icon+:: the icon, if any, for this table item [FXIcon] # +data+:: the user data for this table item [Object] # def initialize(text, icon=nil, data=nil); end # Return the width of this item (in pixels) def getWidth(table); end # Return the height of this item (in pixels) def getHeight(table); end # Return true if this item has the focus def hasFocus?; end # Return true if this item is selected def selected?; end # Return true if this item is enabled def enabled?; end # Return true if this item is draggable def draggable?; end # Return the text for this table item def to_s text end # Change item icon, deleting the previous item icon if it was owned # by this table item. def setIcon(icn, owned=false); end # Draw this table item def draw(table, dc, x, y, w, h); end # Draw borders def drawBorders(table, dc, x, y, w, h); end # Draw content def drawContent(table, dc, x, y, w, h); end # Draw hatch pattern def drawPattern(table, dc, x, y, w, h); end # Draw background behind the cell def drawBackground(table, dc, x, y, w, h) hg = table.horizontalGridShown? ? 1 : 0 vg = table.verticalGridShown? ? 1 : 0 dc.fillRectangle(x + vg, y + hg, w - vg, h - hg) end # # Create input control for editing this item. # Should return a new instance of some subclass of FXWindow. # def getControlFor(table); end # # Set item value from input _control_ (an instance of some subclass # of FXWindow). # def setFromControl(control); end # Create the server-side resources associated with this table item def create; end # Detach the server-side resources associated with this table item def detach; end # Destroy the server-side resources associated with this table item def destroy; end end # # The FXTable widget displays a table of items, each with some text and optional # icon. A column Header control provide captions for each column, and a row # Header control provides captions for each row. Columns are resizable by # means of the column Header control if the TABLE_COL_SIZABLE option is passed. # Likewise, rows in the table are resizable if the TABLE_ROW_SIZABLE option is # specified. An entire row (column) can be selected by clicking on the a button # in the row (column) Header control. Passing TABLE_NO_COLSELECT disables column # selection, and passing TABLE_NO_ROWSELECT disables column selection. # When TABLE_COL_RENUMBER is specified, columns are automatically renumbered when # columns are added or removed. Similarly, TABLE_ROW_RENUMBER will cause row numbers # to be recalculated automatically when rows are added or removed. # To disable editing of cells in the table, the TABLE_READONLY can be specified. # Cells in the table may or may not have items in them. When populating a cell # for the first time, an item will be automatically created if necessary. Thus, # a cell in the table takes no space unless it has actual contents. # Moreover, a contiguous, rectangular region of cells in the table may refer to # one single item; in that case, the item will be stretched to cover all the # cells in the region, and no grid lines will be drawn interior to the spanning # item. # # The Table widget issues SEL_SELECTED or SEL_DESELECTED when cells are selected # or deselected, respectively. The table position affected is passed along as the # 3rd parameter of these messages. # Whenever the current (focus) item is changed, a SEL_CHANGED message is sent with # the new table position as a parameter. # When items are added to the table, a SEL_INSERTED message is sent, with the table # range of the newly added cells as the parameter in the message. # When items are removed from the table, a SEL_DELETED message is sent prior to the # removal of the items, and the table range of the removed cells is passed as a parameter. # A SEL_REPLACED message is sent when the contents of a cell are changed, either through # editing or by other means; the parameter is the range of affected cells. This message # is sent prior to the change. # SEL_CLICKED, SEL_DOUBLECLICKED, and SEL_TRIPLECLICKED messages are sent when a cell # is clicked, double-clicked, or triple-clicked, respectively. # A SEL_COMMAND is sent when an enabled item is clicked inside the table. # # === Events # # The following messages are sent by FXTable to its target: # # +SEL_COMMAND+:: sent when a new item is clicked; the message data is an FXTablePos instance indicating the current cell. # +SEL_KEYPRESS+:: sent when a key goes down; the message data is an FXEvent instance. # +SEL_KEYRELEASE+:: sent when a key goes up; the message data is an FXEvent instance. # +SEL_LEFTBUTTONPRESS+:: sent when the left mouse button goes down; the message data is an FXEvent instance. # +SEL_LEFTBUTTONRELEASE+:: sent when the left mouse button goes up; the message data is an FXEvent instance. # +SEL_RIGHTBUTTONPRESS+:: sent when the left mouse button goes down; the message data is an FXEvent instance. # +SEL_RIGHTBUTTONRELEASE+:: sent when the left mouse button goes up; the message data is an FXEvent instance. # +SEL_SELECTED+:: sent when a cell is selected; the message data is an FXTablePos instance indicating the position of the selected cell. # +SEL_DESELECTED+:: sent when a cell is deselected; the message data is an FXTablePos instance indicating the position of the deselected cell. # +SEL_CHANGED+:: sent when the current cell changes; the message data is an FXTablePos instance indicating the current cell. # +SEL_CLICKED+:: sent when a cell is single-clicked; the message data is an FXTablePos instance indicating the current cell. # +SEL_DOUBLECLICKED+:: sent when a cell is double-clicked; the message data is an FXTablePos instance indicating the current cell. # +SEL_TRIPLECLICKED+:: sent when a cell is triple-clicked; the message data is an FXTablePos instance indicating the current cell. # +SEL_DELETED+:: sent when a range of cells is about to be removed; the message data is an FXTableRange instance indicating the cells to be removed. # +SEL_INSERTED+:: sent when a range of cells has been inserted; the message data is an FXTableRange instance indicating the cells inserted. # +SEL_REPLACED+:: sent when a range of cells has been replaced; the message data is an FXTableRange instance indicating the cells replaced. # # === Table options # # +TABLE_COL_SIZABLE+:: Columns are resizable # +TABLE_ROW_SIZABLE+:: Rows are resizable # +TABLE_NO_COLSELECT+:: Disallow column selections # +TABLE_NO_ROWSELECT+:: Disallow row selections # +TABLE_READONLY+:: Table is not editable # +TABLE_COL_RENUMBER+:: Renumber columns # +TABLE_ROW_RENUMBER+:: Renumber rows # # === Message identifiers # # +ID_HORZ_GRID+:: x # +ID_VERT_GRID+:: x # +ID_TOGGLE_EDITABLE+:: x # +ID_DELETE_COLUMN+:: x # +ID_DELETE_ROW+:: x # +ID_INSERT_COLUMN+:: x # +ID_INSERT_ROW+:: x # +ID_SELECT_COLUMN_INDEX+:: x # +ID_SELECT_ROW_INDEX+:: x # +ID_SELECT_COLUMN+:: x # +ID_SELECT_ROW+:: x # +ID_SELECT_CELL+:: x # +ID_SELECT_ALL+:: x # +ID_DESELECT_ALL+:: x # +ID_MOVE_LEFT+:: x # +ID_MOVE_RIGHT+:: x # +ID_MOVE_UP+:: x # +ID_MOVE_DOWN+:: x # +ID_MOVE_HOME+:: x # +ID_MOVE_END+:: x # +ID_MOVE_TOP+:: x # +ID_MOVE_BOTTOM+:: x # +ID_MOVE_PAGEDOWN+:: x # +ID_MOVE_PAGEUP+:: x # +ID_START_INPUT+:: x # +ID_CANCEL_INPUT+:: x # +ID_ACCEPT_INPUT+:: x # +ID_MARK+:: x # +ID_EXTEND+:: x # +ID_CUT_SEL+:: x # +ID_COPY_SEL+:: x # +ID_PASTE_SEL+:: x # +ID_DELETE_SEL+:: x class FXTable < FXScrollArea # Button in the upper left corner [FXButton] attr_reader :cornerButton # Column header control [FXHeader] attr_reader :columnHeader # Row header control [FXHeader] attr_reader :rowHeader # Number of visible rows [Integer] attr_accessor :visibleRows # Number of visible columns [Integer] attr_accessor :visibleColumns # Number of rows [Integer] attr_reader :numRows # Number of columns [Integer] attr_reader :numColumns # Top cell margin, in pixels [Integer] attr_accessor :marginTop # Bottom cell margin, in pixels [Integer] attr_accessor :marginBottom # Left cell margin, in pixels [Integer] attr_accessor :marginLeft # Right cell margin, in pixels [Integer] attr_accessor :marginRight # Table style [Integer] attr_accessor :tableStyle # The column header height mode is either fixed (LAYOUT_FIX_HEIGHT) or variable. # In variable height mode, the column header will size to fit the contents in it. # In fixed height mode, the size is explicitly set via the _columnHeaderHeight_ # attribute. attr_accessor :columnHeaderMode # The row header width mode is either fixed (LAYOUT_FIX_WIDTH) or variable. # In variable width mode, the row header will size to fit the contents in it. # In fixed width mode, the size is explicitly set via the _rowHeaderWidth_ # attribute. attr_accessor :rowHeaderMode # Row header font [FXFont] attr_accessor :rowHeaderFont # Column header font [FXFont] attr_accessor :columnHeaderFont # The fixed column header height, if _columnHeaderMode_ is +LAYOUT_FIX_HEIGHT+. attr_accessor :columnHeaderHeight # The fixed row header width, if _rowHeaderMode_ is +LAYOUT_FIX_WIDTH+. attr_accessor :rowHeaderWidth # Default column width, in pixels [Integer] attr_accessor :defColumnWidth # Default row height, in pixels [Integer] attr_accessor :defRowHeight # Row number for current cell [Integer] attr_reader :currentRow # Column number for current cell [Integer] attr_reader :currentColumn # Row number for anchor cell [Integer] attr_reader :anchorRow # Column number for anchor cell [Integer] attr_reader :anchorColumn # Starting row number for selection, or -1 if there is no selection [Integer] attr_reader :selStartRow # Starting column number for selection, or -1 if there is no selection [Integer] attr_reader :selStartColumn # Ending row number for selection, or -1 if there is no selection [Integer] attr_reader :selEndRow # Ending column number for selection, or -1 if there is no selection [Integer] attr_reader :selEndColumn # Text font [FXFont] attr_accessor :font # Text color [FXColor] attr_accessor :textColor # Base GUI color [FXColor] attr_accessor :baseColor # Highlight color [FXColor] attr_accessor :hiliteColor # Shadow color [FXColor] attr_accessor :shadowColor # Border color [FXColor] attr_accessor :borderColor # Background color for selected cell(s) [FXColor] attr_accessor :selBackColor # Text color for selected cell(s) [FXColor] attr_accessor :selTextColor # Grid color [FXColor] attr_accessor :gridColor # Stipple color [FXColor] attr_accessor :stippleColor # Cell border color [FXColor] attr_accessor :cellBorderColor # Cell border width, in pixels [Integer] attr_accessor :cellBorderWidth # Status line help text [String] attr_accessor :helpText # Returns the drag type for CSV data def FXTable.csvType; end # Returns the drag type name for CSV data def FXTable.csvTypeName; end # # Construct a new FXTable instance. # The table is initially empty, and reports a default size based on # the scroll areas's scrollbar placement policy. # # ==== Parameters: # # +p+:: the parent window for this table [FXComposite] # +target+:: the message target (if any) for this table [FXObject] # +selector+:: the message identifier for this table [Integer] # +opts+:: table options [Integer] # +x+:: initial x-position [Integer] # +y+:: initial y-position [Integer] # +width+:: initial width [Integer] # +height+:: initial height [Integer] # +padLeft+:: internal padding on the left side, in pixels [Integer] # +padRight+:: internal padding on the right side, in pixels [Integer] # +padTop+:: internal padding on the top side, in pixels [Integer] # +padBottom+:: internal padding on the bottom side, in pixels [Integer] # def initialize(p, target=nil, selector=0, opts=0, x=0, y=0, width=0, height=0, padLeft=DEFAULT_MARGIN, padRight=DEFAULT_MARGIN, padTop=DEFAULT_MARGIN, padBottom=DEFAULT_MARGIN) # :yields: theTable end # Set visibility of horizontal grid to +true+ or +false+. def horizontalGridShown=(vis); end # Return +true+ if horizontal grid is shown. def horizontalGridShown? ; end # Set visibility of vertical grid to +true+ or +false+. def verticalGridShown=(vis); end # Is vertical grid shown? def verticalGridShown? ; end # # Show or hide horizontal grid. # Note that this is equivalent to the #horizontalGridShown=() method. # def showHorzGrid(on=true) ; end # # Show or hide vertical grid. # Note that this is equivalent to the #verticalGridShown=() method. # def showVertGrid(on=true) ; end # Set editability of this table to +true+ or +false+. def editable=(edit); end # Return +true+ if this table is editable. def editable? ; end # # Start input mode for the cell at the given position. # An input control is created which is used to edit the cell; # it is filled by the original item's contents if the cell contained # an item. You can enter input mode also by sending the table an # <tt>ID_START_INPUT</tt> message. # def startInput(row, col); end # # Cancel input mode. The input control is immediately deleted # and the cell will retain its old value. You can also cancel # input mode by sending the table an <tt>ID_CANCEL_INPUT</tt> message. # def cancelInput(); end # # End input mode and accept the new value from the control. # The item in the cell will be set to the value from the control, # and the control will be deleted. If +true+ is passed, a +SEL_REPLACED+ # callback will be generated to signify to the target that this call # has a new value. You can also accept the input by sending the table # an <tt>ID_ACCEPT_INPUT</tt> message. # def acceptInput(notify=false); end # # Determine row containing _y_. # Returns -1 if _y_ is above the first row, and _numRows_ if _y_ is below the last row. # Otherwise, returns the row in the table containing _y_. # def rowAtY(y) ; end # # Determine column containing _x_. # Returns -1 if _x_ is to the left of the first column, and _numColumns_ if _x_ is # to the right of the last column. Otherwise, returns the column in the table # containing _x_. # def colAtX(x) ; end # Return the item (a reference to an FXTableItem) at the given _row_ and _column_. # Raises IndexError if either _row_ or _column_ is out of bounds. def getItem(row, column) ; end # Replace the item at the given _row_ and _column_ with a (possibly subclassed) _item_. # Raises IndexError if either _row_ or _column_ is out of bounds. def setItem(row, column, item) ; end # # Resize the table content to _numRows_ rows and _numCols_ columns. # Note that all existing items in the table will be destroyed and new # items will be constructed. # If _notify_ is +true+, then # * a +SEL_DELETED+ message will be sent to the table's message target # indicating which cells (if any) are about to be destroyed as a result of the resize; # * a +SEL_INSERTED+ message will be sent to the table's message target # indicating which cells (if any) were added as a result of the resize; and, # * a +SEL_CHANGED+ message will be sent to the table's message target # indicating the new current cell. # # Raises ArgError if either _numRows_ or _numCols_ is less than zero. # def setTableSize(numRows, numCols, notify=false) ; end # # Insert _numRows_ rows beginning at the specified _row_ number. # If _row_ is equal to the number of rows in the table, the new # rows are added to the bottom of the table. # If _notify_ is +true+, a +SEL_INSERTED+ message is sent to the table's # message target for each cell that is inserted. # Raises IndexError if _row_ is out of bounds. # def insertRows(row, numRows=1, notify=false) ; end # # Insert _numColumns_ columns beginning at the specified _column_ number. # If _column_ is equal to the number of columns in the table, the # new columns are added to the right of the table. # If _notify_ is +true+, a +SEL_INSERTED+ message is sent to the table's # message target for each cell that is inserted. # Raises IndexError if _column_ is out of bounds. # def insertColumns(column, numColumns=1, notify=false) ; end # # Remove the _nr_ rows starting at the specified _row_. # If _notify_ is +true+, a +SEL_DELETED+ message is sent to the table's # message target for each cell that is removed. # Raises IndexError if _row_ is less than zero, or if _row_ + _nr_ # is greater than the current number of table rows. # def removeRows(row, nr=1, notify=false) ; end # # Remove the _nc_ columns starting at the specified _column_. # If _notify_ is +true+, a +SEL_DELETED+ message is sent to the table's # message target for each cell that is removed. # Raises IndexError if _column_ is less than zero, or if # _column_ + _nc_ is greater than the current number of table columns. # def removeColumns(column, nc=1, notify=false) ; end # # Extract item from table and return a reference to it. # If _notify_ is +true+, a +SEL_REPLACED+ message is sent to the table's # message target before this cell is removed. # Raises IndexError if either _row_ or _col_ is out of bounds. # def extractItem(r, c, notify=false); end # # Remove item at (_row_, _col_), replacing it with +nil+. # If _notify_ is +true+, a +SEL_REPLACED+ message is sent to the table's # message target before this cell is removed. # Raises IndexError if either _row_ or _col_ is out of bounds. # def removeItem(row, col, notify=false) ; end # # Remove all cells in the specified range of rows and columns. # If _notify_ is +true+, a +SEL_REPLACED+ message is sent to the table's # message target before each cell is removed. # Raises IndexError if _startrow_, _endrow_, _startcol_ or # _endcol_ is out of bounds. # def removeRange(startrow, endrow, startcol, endcol, notify=false); end # # Remove all items from table. # If _notify_ is +true+, a +SEL_DELETED+ message is sent to the table's # message target before the cells are removed. # def clearItems(notify=false); end # Scroll to make cell at (_row_, _column_) fully visible. # Raises IndexError if either _row_ or _column_ is out of bounds. def makePositionVisible(row, column) ; end # Returns +true+ if the cell at position (_row_, _column_) is visible. # Raises IndexError if either _row_ or _column_ is out of bounds. def itemVisible?(row, column) ; end # Set column width. # Raises IndexError if _column_ is out of bounds. def setColumnWidth(column, columnWidth) ; end # Get column width. # Raises IndexError if _column_ is out of bounds. def getColumnWidth(column) ; end # Set row height. # Raises IndexError if _row_ is out of bounds. def setRowHeight(row, rowHeight) ; end # Get row height. # Raises IndexError if _row_ is out of bounds. def getRowHeight(row) ; end # Get x-coordinate of column. # Raises IndexError if _column_ is out of bounds. def getColumnX(column) ; end # Get y-coordinate of row. # Raises IndexError if _row_ is out of bounds. def getRowY(row) ; end # Return minimum row height for row _r_. # Raises IndexError if _r_ is out of bounds. def minRowHeight(r); end # Return minimum column width for column _c_. # Raises IndexError if _c_ is out of bounds. def minColumnWidth(c); end # # Fit row heights to contents, for the _nr_ rows beginning with row index # _row_. # def fitRowsToContents(row, nr=1); end # # Fit column widths to contents, for the _nc_ columns beginning with # column index _col_. # def fitColumnsToContents(col, nc=1); end # Set column header at _index_ to _text_. # Raises IndexError if _index_ is out of bounds. def setColumnText(index, text); end # Return text of column header at _index_. # Raises IndexError if _index_ is out of bounds. def getColumnText(index); end # Set row header at _index_ to _text_. # Raises IndexError if _index_ is out of bounds. def setRowText(index, text); end # Return text of row header at _index_. # Raises IndexError if _index_ is out of bounds. def getRowText(index); end # Change column header icon. # Raises IndexError if _index_ is out of bounds. def setColumnIcon(FXint index,FXIcon* icon); # Return icon of column header at _index_. # Raises IndexError if _index_ is out of bounds. def getColumnIcon(index); end # Change row header icon. # Raises IndexError if _index_ is out of bounds. def setRowIcon(index, icon); end # Return icon of row header at _index_. # Raises IndexError if _index_ is out of bounds. def getRowIcon(index); end # Change column header icon position, e.g. FXHeaderItem::BEFORE, etc. # Raises IndexError if _index_ is out of bounds. def setColumnIconPosition(index, mode); end # Return icon position of column header at _index_. # Raises IndexError if _index_ is out of bounds. def getColumnIconPosition(index); end # Change row header icon position, e.g. FXHeaderItem::BEFORE, etc. # Raises IndexError if _index_ is out of bounds. def setRowIconPosition(index, mode); end # Return icon position of row header at _index_. # Raises IndexError if _index_ is out of bounds. def getRowIconPosition(index); end # Change column header justify, e.g. FXHeaderItem::RIGHT, etc. # Raises IndexError if _index_ is out of bounds. def setColumnJustify(index, justify); end # Return justify of column header at _index_. # Raises IndexError if _index_ is out of bounds. def getColumnJustify(index); end # Change row header justify, e.g. FXHeaderItem::RIGHT, etc. # Raises IndexError if _index_ is out of bounds. def setRowJustify(index, justify); end # Return justify of row header at _index_. # Raises IndexError if _index_ is out of bounds. def getRowJustify(index); end # # Modify cell text for item at specified _row_ and _col_. # If _notify_ is +true+, a +SEL_REPLACED+ message is sent to the table's # message target before the item's text is changed.. # Raises IndexError if either _row_ or _col_ is out of bounds. # def setItemText(row, col, text, notify=false) ; end # Return cell text for item at specified _row_ and _column_. # Raises IndexError if either _row_ or _column_ is out of bounds. def getItemText(row, column) ; end # # Modify cell icon, deleting the old icon if it was owned. # If _notify_ is +true+, a +SEL_REPLACED+ message is sent to the table's # message target before the item's icon is changed.. # Raises IndexError if either _row_ or _col_ is out of bounds. # def setItemIcon(row, col, icon, notify=false) ; end # Return item icon. # Raises IndexError if either _row_ or _column_ is out of bounds. def getItemIcon(row, column) ; end # Modify cell user data. # Raises IndexError if either _row_ or _column_ is out of bounds. def setItemData(row, column, data) ; end # Return cell user data. # Raises IndexError if either _row_ or _column_ is out of bounds. def getItemData(row, column) ; end # # Extract the text from all the cells in the specified range and # return the result as a string. # Within the result string, each column's text is delimited by # the string specified by _cs_, and each row is delimited by # the string specified by _rs_. # To reverse this operation (i.e. set the table cells' text # from a string), see #overlayText. # Raises IndexError if any of _startrow_, _endrow_, _startcol_ # or _endcol_ is out of bounds. # # ==== Parameters: # # +startrow+:: the starting row for the range [Integer] # +endrow+:: the ending row for the range [Integer] # +startcol+:: the starting column for the range [Integer] # +endcol+:: the ending column for the range [Integer] # +cs+:: the string to insert at each column break [String] # +rs+:: the string to insert at each row break [String] # def extractText(startrow, endrow, startcol, endcol, cs="\t", rs="\n"); end # # Overlay the text for the cells in the specified range with # the fields specified in _text_. # Within the _text_ string, each column's text should delimited by # the character specified by _cs_, and each row should be delimited by # the character specified by _rs_. # To reverse this operation (i.e. extract the table cells' text # into a string), see #extractText. # Raises IndexError if any of _startrow_, _endrow_, _startcol_ # or _endcol_ is out of bounds. # # ==== Parameters: # # +startrow+:: the starting row for the range [Integer] # +endrow+:: the ending row for the range [Integer] # +startcol+:: the starting column for the range [Integer] # +endcol+:: the ending column for the range [Integer] # +text+:: the text containing the new cell text [String] # +cs+:: the character to insert at each column break [String] # +rs+:: the character to insert at each row break [String] # def overlayText(startrow, endrow, startcol, endcol, text, cs="\t", rs="\n", notify=false); end # # Determine the number of rows and columns in a block of text # where columns are separated by characters from the set _cs_, and rows # are separated by characters from the set _rs_. # Return a two-element array containing the number of rows and # columns, respectively. # def countText(text, cs="\t,", rs="\n"); end # Return +true+ if the cell at position (_r_, _c_) is a spanning cell. # Raises IndexError if either _r_ or _c_ is out of bounds. def itemSpanning?(r, c); end # # Repaint cells between grid lines (_startRow_, _endRow_) and grid lines # (_startCol_, _endCol_). # Raises IndexError if any of the starting or ending grid lines is out of bounds. # def updateRange(startRow, endRow, startCol, endCol) ; end # Repaint cell. # Raises IndexError if either _row_ or _column_ is out of bounds. def updateItem(row, column) ; end # Enable cell. # Raises IndexError if either _row_ or _column_ is out of bounds. def enableItem(row, column) ; end # Disable cell. # Raises IndexError if either _row_ or _column_ is out of bounds. def disableItem(row, column) ; end # Returns +true+ if the cell at position (_row_, _column_) is enabled. # Raises IndexError if either _row_ or _column_ is out of bounds. def itemEnabled?(row, column) ; end # # Change item justification for the cell at (_r_, _c_). # Horizontal justification is controlled by passing # FXTableItem::RIGHT, FXTableItem::LEFT, or FXTableItem::CENTER_X. # Vertical justification is controlled by FXTableItem::TOP, FXTableItem::BOTTOM, # or FXTableItem::CENTER_Y. # The default is a combination of FXTableItem::RIGHT and FXTableItem::CENTER_Y. # # Raises IndexError if either _r_ or _c_ is out of bounds. # def setItemJustify(r, c, justify); end # Return item justification for the cell at (_r_, _c_). # Raises IndexError if either _r_ or _c_ is out of bounds. def getItemJustify(r, c); end # # Change relative position of icon and text of item at (_r_, _c_). # Passing FXTableItem::BEFORE or FXTableItem::AFTER places the icon # before or after the text, and passing FXTableItem::ABOVE or # FXTableItem::BELOW places it above or below the text, respectively. # The default is 0 which places the text on top of the icon. # # Raises IndexError if either _r_ or _c_ is out of bounds. # def setItemIconPosition(r, c, mode); end # Return the relative position of the icon and text for the cell at (_r_, _c_). # Raises IndexError if either _r_ or _c_ is out of bounds. def getItemIconPosition(r, c); end # # Change item borders style for the item at (_r_, _c_). # Borders on each side of the item can be turned # controlled individually using FXTableItem::LBORDER, FXTableItem::RBORDER, # FXTableItem::TBORDER and FXTableItem::BBORDER. # # Raises IndexError if either _r_ or _c_ is out of bounds. # def setItemBorders(r, c, borders); end # Return the border style for the cell at (_r_, _c_). # Raises IndexError if either _r_ or _c_ is out of bounds. def getItemBorders(r, c); end # Set the background stipple style for the cell at (_r_, _c_). # Raises IndexError if either _r_ or _c_ is out of bounds. def setItemStipple(r, c, pat); end # Return the background stipple style for the cell at (_r_, _c_). # Raises IndexError if either _r_ or _c_ is out of bounds. def getItemStipple(r, c); end # Change current cell. # If _notify_ is +true+, a +SEL_CHANGED+ message is sent to the table's # message target after the current item changes. # Raises IndexError if either _row_ or _column_ is out of bounds. def setCurrentItem(row, column, notify=false) ; end # Returns +true+ if the cell at position (_row_, _column_) is the current cell. # Raises IndexError if either _row_ or _column_ is out of bounds. def itemCurrent?(row, column) ; end # Change anchored cell. # Raises IndexError if either _row_ or _column_ is out of bounds. def setAnchorItem(row, column) ; end # Returns +true+ if the cell at position (_row_, _column_) is selected. # Raises IndexError if either _row_ or _column_ is out of bounds. def itemSelected?(row, column) ; end # Return +true+ if the specified row of cells is selected. # Raises IndexError if _r_ is out of bounds. def rowSelected?(r); end # Return +true+ if the specified column of cells is selected. # Raises IndexError if _c_ is out of bounds. def columnSelected?(c); end # Return +true+ if any cells are selected. def anythingSelected?; end # Select a row of cells. # If _notify_ is +true+, a +SEL_DESELECTED+ message is sent to the table's message # target for each previously selected cell that becomes deselected as a result of # this operation. Likewise, a +SEL_SELECTED+ message is sent to the table's # message target for each newly-selected cell. # Raises IndexError if _row_ is out of bounds. def selectRow(row, notify=false); end # Select a column of cells. # If _notify_ is +true+, a +SEL_DESELECTED+ message is sent to the table's message # target for each previously selected cell that becomes deselected as a result of # this operation. Likewise, a +SEL_SELECTED+ message is sent to the table's # message target for each newly-selected cell. # Raises IndexError if _col_ is out of bounds. def selectColumn(col, notify=false); end # Select range. # If _notify_ is +true+, a +SEL_DESELECTED+ message is sent to the table's message # target for each previously selected cell that becomes deselected as a result of # this operation. Likewise, a +SEL_SELECTED+ message is sent to the table's # message target for each newly-selected cell. # Raises IndexError if _startRow_, _endRow_, _startColumn_ or _endColumn_ is out of bounds. def selectRange(startRow, endRow, startColumn, endColumn, notify=false) ; end # Extend selection. # If _notify_ is +true+, a series of +SEL_SELECTED+ and +SEL_DESELECTED+ messages are sent to the table's message target # after each affected item is selected or deselected. # Raises IndexError if either _row_ or _column_ is out of bounds. def extendSelection(row, column, notify=false) ; end # Kill selection. # If _notify_ is +true+, a +SEL_DESELECTED+ message is sent to the table's # message target for each cell that was previously selected. def killSelection(notify=false) ; end # # Change cell background color. # The values for _row_ and _column_ are either zero or one. # If the value is zero, this background color is used for even-numbered # rows (columns). If the value is one, this background color is used # for odd-numbered rows (columns). # See also #getCellColor. # def setCellColor(row, column, color) ; end # # Obtain cell background color. # The values for _row_ and _column_ are either zero or one. # If the value is zero, returns the background color used for even-numbered # rows (columns). If the value is one, returns the background color used # for odd-numbered rows (columns). # See also #setCellColor. # def getCellColor(row, column) ; end # Create a new table item def createItem(text, icon, data) ; end # Draw a table cell def drawCell(dc, xlo, xhi, ylo, yhi, xoff, yoff, startRow, endRow, startCol, endCol) ; end # Draw a range of cells def drawRange(dc, xlo, xhi, ylo, yhi, xoff, yoff, rlo, rhi, clo, chi) ; end # Set column renumbering to +true+ or +false+. def columnRenumbering=(renumber); end # Get column renumbering def columnRenumbering? ; end # Set row renumbering to +true+ or +false+. def rowRenumbering=(renumber); end # Get row renumbering def rowRenumbering? ; end end end