Wx::Perl::Dialog.3pm

Langue: en

Version: 2009-02-11 (ubuntu - 08/07/09)

Section: 3 (Bibliothèques de fonctions)

NAME

Wx::Perl::Dialog - Abstract dialog class for simple dialog creation

SYNOPSIS

         my $layout = [
                 [
                         [ 'Wx::StaticText', undef,         'Some text entry'],
                         [ 'Wx::TextCtrl',   'name_of',     'Default value'  ],
                 ],
                 [
                         [ 'Wx::Button',     'ok',           Wx::wxID_OK     ],
                         [ 'Wx::Button',     'cancel',       Wx::wxID_CANCEL ],
                 ],
     ];
 
         my $dialog = Wx::Perl::Dialog->new(
                 parent => $win,
                 title  => 'Widgetry dialog',
                 layout => $layout,
                 width  => [150, 200],
         );
 
         return if not $dialog->show_modal;
 
     my $data = $dialog->get_data; 
 
         #### You may also create a tabbed dialog for more complex tasks:
 
         my $tabbed_dialog = Wx::Perl::Dialog->new(
                 parent => $win,
                 title  => 'Widgetry dialog',
                 layout => [ $layout_a, $layout_b, ]
                 multipage => {
                         auto_ok_cancel => 1,
                         ok_widgetid => '_ok_',
                         cancel_widgetid => '_cancel_',
                         pagenames => [ 'Basic', 'Advanced' ]
                 },
         );
 
 

Where $win is the Wx::Frame of your application.

WARNING

This is still an alpha version of the code. It is used mainly by Padre and its plugins. The API can change without any warning.

DESCRIPTION

Layout

The layout is reference to a two dimensional array. Every element (an array) represents one line in the dialog.

Every element in the internal array is an array that describes a widget.

The first value in each widget description is the type of the widget.

The second value is an identifyer (or undef if we don't need any access to the widget).

The widget will be accessible form the dialog object using $dialog->{_widgets_}{identifyer}

The rest of the values in the array depend on the widget.

Supported widgets and their parameters

Wx::StaticText
  3.: "the text",
 
 
Wx::Button
  3.: button type (stock item such as Wx::wxID_OK or string "&do this")
 
 
Wx::DirPickerCtrl
  3. default directory (must be '')  ???
  4. title to show on the directory browser
 
 
Wx::TextCtrl
  3. default value, if any
 
 
Wx::Treebook
  3. array ref for list of values
 
 
Wx::FontPickerCtrl
  3. A string describing the font
 
 
Wx::ColourPickerCtrl
  3. A HTML-compatible colour description string: '#' plus 6 hex digits; i.e. #FF0000
 
 

Multipage Layout (with a Wx::Notebook)

If you pass in a parameter 'multipage', a tabbed dialog will be created using a Wx::Notebook. The value of the 'layout' parameter will be interpreted as an arrayref where each value represents the contents of one page (see section ``Layout'').

The value of the 'multipage' param should be a hash containing extra options.

auto_ok_cancel
  If set to a true value, an OK and a CANCEL button will be displayed automatically
  below the tabbed pages.
 
 
ok_widgetid
  An identifier for the automatically genereated OK button.
  Useful if you want to have access to the button via
  $dialog->{_widgets_}{<ok_widgetid>}
 
 
cancel_widgetid
  Same as above but for the CANCEL button
 
 
pagenames
  An arrayref of strings which represent the tab titles.
 
 

METHODS

new

get_data

  my $data = $dialog->get_data;
 
 

Returns a hash with the keys being the names you gave for each widgets and the value being the value of that widget in the dialog.

show_modal

Helper function that will probably change soon...
  return if not $dialog->show_modal;
 
 

BUGS

Please submit bugs you find on <http://padre.perlide.org/> Copyright 2008 Gabor Szabo. <http://www.szabgab.com/>

LICENSE

This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself.