Gtk2::ComboBox.3pm

Langue: en

Version: 2010-05-02 (fedora - 01/12/10)

Section: 3 (Bibliothèques de fonctions)

NAME

Gtk2::ComboBox - A widget used to choose from a list of items

SYNOPSIS

   # the easy way:
   $combobox = Gtk2::ComboBox->new_text;
   foreach (@strings) {
       $combobox->append_text ($_);
   }
   $combobox->prepend_text ($another_string);
   $combobox->insert_text ($index, $yet_another_string);
   $combobox->remove_text ($index);
   $text = $combobox->get_active_text;
 
 
   # the full-featured way.  
   # a combo box that shows stock ids and their images:
   use constant ID_COLUMN => 0;
   $model = Gtk2::ListStore->new ('Glib::String');
   foreach (qw(gtk-ok gtk-cancel gtk-yes gtk-no gtk-save gtk-open)) {
       $model->set ($model->append, ID_COLUMN, $_);
   }
   $combo_box = Gtk2::ComboBox->new ($model);
   # to display anything, you must pack cell renderers into
   # the combobox, which implements the Gtk2::CellLayout interface.
   $renderer = Gtk2::CellRendererPixbuf->new;
   $combo_box->pack_start ($renderer, FALSE);
   $combo_box->add_attribute ($renderer, stock_id => ID_COLUMN);
   $renderer = Gtk2::CellRendererText->new;
   $combo_box->pack_start ($renderer, TRUE);
   $combo_box->add_attribute ($renderer, text => ID_COLUMN);
 
   # select by index
   $combo_box->set_active ($index);
   $active_index = $combo_box->get_active;
 
   # or by iter
   $combo_box->set_active_iter ($iter);
   $active_iter = $combo_box->get_active_iter;
 
 

DESCRIPTION

Gtk2::ComboBox is a widget that allows the user to choose from a list of valid choices. The ComboBox displays the selected choice. When activated, the ComboBox displays a popup which allows the user to make a new choice.

Unlike its predecessors Gtk2::Combo and Gtk2::OptionMenu, the Gtk2::ComboBox uses the model-view pattern; the list of valid choices is specified in the form of a tree model, and the display of the choices can be adapted to the data in the model by using cell renderers, as you would in a tree view. This is possible since ComboBox implements the Gtk2::CellLayout interface. The tree model holding the valid choices is not restricted to a flat list; it can be a real tree, and the popup will reflect the tree structure.

In addition to the model-view API, ComboBox offers a simple API which is suitable for text-only combo boxes, and hides the complexity of managing the data in a model. It consists of the methods "new_text", "append_text", "insert_text", "prepend_text", "remove_text" and "get_active_text".

HIERARCHY

   Glib::Object
   +----Glib::InitiallyUnowned
        +----Gtk2::Object
             +----Gtk2::Widget
                  +----Gtk2::Container
                       +----Gtk2::Bin
                            +----Gtk2::ComboBox
 
 

INTERFACES

   Glib::Object::_Unregistered::AtkImplementorIface
   Gtk2::Buildable
   Gtk2::CellLayout
   Gtk2::CellEditable
 
 

METHODS

widget = Gtk2::ComboBox->new ($model=undef)

*
$model (Gtk2::TreeModel)

widget = Gtk2::ComboBox->new_text

widget = Gtk2::ComboBox->new_with_model ($model=undef)

*
$model (Gtk2::TreeModel)

integer = $combo_box->get_active

treeiter = $combo_box->get_active_iter

$combo_box->set_active_iter ($iter)

*
$iter (Gtk2::TreeIter)

$combo_box->set_active ($index)

*
$index (integer)

string = $combo_box->get_active_text

Since: gtk+ 2.6

boolean = $combo_box->get_add_tearoffs

Since: gtk+ 2.6

$combo_box->set_add_tearoffs ($add_tearoffs)

*
$add_tearoffs (boolean)

Since: gtk+ 2.6

$combo_box->append_text ($text)

*
$text (string)

integer = $combo_box->get_column_span_column

Since: gtk+ 2.6

$combo_box->set_column_span_column ($column_span)

*
$column_span (integer)

boolean = $combo_box->get_focus_on_click

Since: gtk+ 2.6

$combo_box->set_focus_on_click ($focus_on_click)

*
$focus_on_click (boolean)

Since: gtk+ 2.6

$combo_box->insert_text ($position, $text)

*
$position (integer)
*
$text (string)

treemodel = $combo_box->get_model

$combo_box->set_model ($model)

*
$model (Gtk2::TreeModel)

$combo_box->popdown

$combo_box->popup

$combo_box->prepend_text ($text)

*
$text (string)

$combo_box->remove_text ($position)

*
$position (integer)

$combo_box->set_row_separator_func ($func, $data=undef)

*
$func (scalar)
*
$data (scalar)

Since: gtk+ 2.6

integer = $combo_box->get_row_span_column

Since: gtk+ 2.6

$combo_box->set_row_span_column ($row_span)

*
$row_span (integer)

string = $combo_box->get_title

Since: gtk+ 2.10

$combo_box->set_title ($title)

*
$title (string)

Since: gtk+ 2.10

integer = $combo_box->get_wrap_width

Since: gtk+ 2.6

$combo_box->set_wrap_width ($width)

*
$width (integer)

PROPERTIES

'active' (integer : readable / writable / private)
The item which is currently active
'add-tearoffs' (boolean : readable / writable / private)
Whether dropdowns should have a tearoff menu item
'button-sensitivity' (Gtk2::SensitivityType : readable / writable / private)
Whether the dropdown button is sensitive when the model is empty
'column-span-column' (integer : readable / writable / private)
TreeModel column containing the column span values
'focus-on-click' (boolean : readable / writable / private)
Whether the combo box grabs focus when it is clicked with the mouse
'has-frame' (boolean : readable / writable / private)
Whether the combo box draws a frame around the child
'model' (Gtk2::TreeModel : readable / writable / private)
The model for the combo box
'popup-shown' (boolean : readable / private)
Whether the combo's dropdown is shown
'row-span-column' (integer : readable / writable / private)
TreeModel column containing the row span values
'tearoff-title' (string : readable / writable / private)
A title that may be displayed by the window manager when the popup is torn-off
'wrap-width' (integer : readable / writable / private)
Wrap width for laying out the items in a grid

SIGNALS

popup (Gtk2::ComboBox)
boolean = popdown (Gtk2::ComboBox)
changed (Gtk2::ComboBox)
move-active (Gtk2::ComboBox, Gtk2::ScrollType)

ENUMS AND FLAGS

enum Gtk2::ScrollType

*
'none' / 'GTK_SCROLL_NONE'
*
'jump' / 'GTK_SCROLL_JUMP'
*
'step-backward' / 'GTK_SCROLL_STEP_BACKWARD'
*
'step-forward' / 'GTK_SCROLL_STEP_FORWARD'
*
'page-backward' / 'GTK_SCROLL_PAGE_BACKWARD'
*
'page-forward' / 'GTK_SCROLL_PAGE_FORWARD'
*
'step-up' / 'GTK_SCROLL_STEP_UP'
*
'step-down' / 'GTK_SCROLL_STEP_DOWN'
*
'page-up' / 'GTK_SCROLL_PAGE_UP'
*
'page-down' / 'GTK_SCROLL_PAGE_DOWN'
*
'step-left' / 'GTK_SCROLL_STEP_LEFT'
*
'step-right' / 'GTK_SCROLL_STEP_RIGHT'
*
'page-left' / 'GTK_SCROLL_PAGE_LEFT'
*
'page-right' / 'GTK_SCROLL_PAGE_RIGHT'
*
'start' / 'GTK_SCROLL_START'
*
'end' / 'GTK_SCROLL_END'

enum Gtk2::SensitivityType

*
'auto' / 'GTK_SENSITIVITY_AUTO'
*
'on' / 'GTK_SENSITIVITY_ON'
*
'off' / 'GTK_SENSITIVITY_OFF'

SEE ALSO

Gtk2, Glib::Object, Glib::InitiallyUnowned, Gtk2::Object, Gtk2::Widget, Gtk2::Container, Gtk2::Bin Copyright (C) 2003-2008 by the gtk2-perl team.

This software is licensed under the LGPL. See Gtk2 for a full notice.