The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Gtk2::Ex::FormFactory::CheckButtonGroup - A group of checkbuttons

SYNOPSIS

  Gtk2::Ex::FormFactory::CheckButtonGroup->new (
    max_columns        => Maximum number of columns,
    max_rows           => Maximum number of rows,
    column_labels      => Array of column label strings,
    row_labels         => Array of row label strings,

    attr_max_columns   => Object attribute for number of columns,
    attr_max_rows      => Object attribute for number of rows,
    attr_column_labels => Object attribute for column labels,
    attr_row_labels    => Object attribute for row labels,

    homogeneous        => Force homogeneous layout of underlying table?
    ...
    Gtk2::Ex::FormFactory::Widget attributes
  );

DESCRIPTION

This class implements a group of check buttons which allow a multiple selection out of a set from predefined values. It's arranged in a two dimensional table. You can specify either the maximum number of rows or columns, the actual dimensions are calculated automatically.

Optionally you can add column and/or row labels, extending the corresponding table accordingly.

You can pass the configuration data statically or specify application object attributes controlling them, so the checkbutton group builds dynamically at runtime.

The value of a CheckBoxGroup is a hash. The value of each selected checkbox will result in a correspondent hash key with a true value assigned.

OBJECT HIERARCHY

  Gtk2::Ex::FormFactory::Intro

  Gtk2::Ex::FormFactory::Widget
  +--- Gtk2::Ex::FormFactory::CheckButtonGroup

  Gtk2::Ex::FormFactory::Layout
  Gtk2::Ex::FormFactory::Rules
  Gtk2::Ex::FormFactory::Context
  Gtk2::Ex::FormFactory::Proxy

ATTRIBUTES

Attributes are handled through the common get_ATTR(), set_ATTR() style accessors, but they are mostly passed once to the object constructor and must not be altered after the associated FormFactory was built.

max_columns = SCALAR [optional]

Maximum number of columns the table should have. You must not set max_rows when you specify max_columns.

max_rows = SCALAR [optional]

Maximum number of rows the table should have. You must not set max_columns when you specify max_rows. If you omit both attributes max_rows defaults to 1, so all buttons will appear in one row.

column_labels = ARRAY [optional]

You can add column labels by setting an array of strings to the column_labels attribute. The number of entries should correspond to the max_columns setting.

row_labels = ARRAY [optional]

You can add row labels by setting an array of strings to the row_labels attribute. The number of entries should correspond to the max_rows setting.

attr_max_columns = "object.attr" [optional]

As an alternative to max_columns the maximum number of columns may be controlled by an application object attribute which needs to be passed here in "object.attr" notation.

attr_max_rows = "object.attr" [optional]

As an alternative to max_rows the maximum number of rows may be controlled by an application object attribute which needs to be passed here in "object.attr" notation.

attr_column_labels = "object.attr" [optional]

As an alternative to column_labels the column labels may be controlled by an application object attribute which needs to be passed here in "object.attr" notation.

attr_row_labels = "object.attr" [optional]

As an alternative to row_labels the row labels may be controlled by an application object attribute which needs to be passed here in "object.attr" notation.

homogeneous = BOOL [optional]

Defaults to 1 forcing the underlying table to homogeneous layout.

REQUIREMENTS FOR ASSOCIATED APPLICATION OBJECTS

Application objects represented by a Gtk2::Ex::FormFactory::CheckButtonGroup must define additional methods. The naming of the methods listed beyond uses the standard get_ prefix for the attribute read accessor. ATTR needs to be replaced by the actual name of the attribute associated with the widget.

get_ATTR_list

This method must return a two dimensional array resp. a list of lists which represent the values the user can select from.

Example:

  [
    [ 0, "Sun" ],
    [ 1, "Mon" ],
    [ 2, "Tue" ],
    ...
  ]

Each entry in the list consists of a list ref with two elements. The first is the value associated with the checkbox (which will become a hash key in the associated object attribute), the second the label of the checkbox on the GUI.

For more attributes refer to Gtk2::Ex::FormFactory::Widget.

AUTHORS

 Jörn Reder <joern at zyn dot de>

COPYRIGHT AND LICENSE

Copyright 2004-2006 by Jörn Reder.

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details.

You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307 USA.

1 POD Error

The following errors were encountered while parsing the POD:

Around line 379:

Non-ASCII character seen before =encoding in 'Jörn'. Assuming CP1252