NAME
    `Tickit::Widget::Choice' - a widget giving a choice from a list

CONSTRUCTOR
  new
       $choice = Tickit::Widget::Choice->new( %args )

    Constructs a new `Tickit::Widget::Choice' object.

    Takes the following named arguments

    choices => ARRAY
            Optional. If supplied, should be an ARRAY reference containing
            two-element ARRAY references. Each will be added to the list of
            choices as if by a call to `push_choice' for each element in the
            array.

    on_changed => CODE
            Optional. If supplied, used to set the initial value of the
            `on_changed' event handler.

ACCESSORS
  on_changed
       $on_changed = $self->on_changed

  set_on_changed
       $self->set_on_changed( $on_changed )

    Return or set the CODE reference to be called when the chosen selection
    is changed.

     $on_changed->( $choice, $value )

METHODS
  push_choice
       $choice->push_choice( $value, $caption )

    Appends another choice to the list of choices, with the given value and
    display caption.

  chosen_value
       $value = $choice->chosen_value

    Returns the value of the currently-chosen choice.

  choose_by_idx
       $choice->choose_by_idx( $idx )

    Moves the chosen choice to the one at the given index. If this wasn't
    the previously-chosen one, invokes the `on_changed' event.

  choose_by_value
       $choice->choose_by_value( $value )

    Moves the chosen choise to the one having the given value, if such a
    choice exists. If this wasn't the previously-chosen one, invokes the
    `on_changed' event.

  popup_menu
       $choice->popup_menu

    Display the popup menu in a modal float until a choice is made.

TODO
    *   Render a full border around the widget if height is at least 3.

AUTHOR
    Paul Evans <leonerd@leonerd.org.uk>