Class Fox::FXMatrix

In: | FXMatrix.rb
Parent: | FXPacker

The FXMatrix layout manager automatically arranges its child windows in rows and columns. If the matrix style is `MATRIX_BY_ROWS`, then the matrix will have the given number of rows and the number of columns grows as more child windows are added; if the matrix style is `MATRIX_BY_COLUMNS`, then the number of columns is fixed and the number of rows grows as more children are added. If all children in a row (column) have the `LAYOUT_FILL_ROW` (`LAYOUT_FILL_COLUMN`) hint set, then the row (column) will be stretchable as the matrix layout manager itself is resized. If more than one row (column) is stretchable, the space is apportioned to each stretchable row (column) proportionally. Within each cell of the matrix, all other layout hints are observed. For example, a child having `LAYOUT_CENTER_Y` and `LAYOUT_FILL_X` hints will be centered in the Y-direction, while being stretched in the X-direction. Empty cells can be obtained by simply placing a borderless FXFrame widget as a space-holder.

# Matrix packing options

`MATRIX_BY_ROWS`: | Fixed number of rows, add columns as needed
`MATRIX_BY_COLUMNS`: | Fixed number of columns, adding rows as needed

Methods

childAtRowCol colOfChild new rowOfChild

Attributes

matrixStyle | [RW] | Matrix style [Integer]
numColumns | [RW] | Number of columns [Integer]
numRows | [RW] | Number of rows [Integer]

Public Class methods

new(parent, n=1, opts=MATRIX_BY_ROWS, x=0, y=0, width=0, height=0, padLeft=DEFAULT_SPACING, padRight=DEFAULT_SPACING, padTop=DEFAULT_SPACING, padBottom=DEFAULT_SPACING, hSpacing=DEFAULT_SPACING, vSpacing=DEFAULT_SPACING) {|theMatrix| ...}

Construct a matrix layout manager with n rows or columns

Public Instance methods

childAtRowCol(row, column)

Obtain the child placed at a certain row and column.

rowOfChild(child)

Return the row in which the given child is placed.

colOfChild(child)

Return the column in which the given child is placed.