NAME¶
Padre::Wx::Role::Dialog - Allow dialogs or frames to host simple common dialogs
SYNOPSIS¶
package MyDialog;
use Padre::Wx ();
use Padre::Wx::Role::Dialog ();
@ISA = qw{
Padre::Wx::Role::Dialog
Wx::Dialog
};
# ...
sub foo {
my $self = shift;
# Say something
$self->message("Hello World!");
return 1;
}
DESCRIPTION¶
In a large Wx application with multiple dialogs or windows, many different parts
of the application may want to post messages or prompt the user.
The "Padre::Wx::Role::Dialog" role allows dialog or window classes to
"host" these messages.
Providing these as a role means that each part of your application can post
messages and have the positioning of the dialogs be made appropriate for each
dialog.
METHODS¶
"message"¶
$parent->message( $text, $title );
Open a dialog box with $text as the main text and $title (title defaults to
"Message"). There's only one OK button. No return value.
"error"
$parent->error( $text );
Open an error dialog box with $text as main text. There's only one OK button. No
return value.
"password"
my $password = $parent->password( $message, $title );
Generate a standard Wx password dialog, using the internal
Wx::PasswordEntryDialog class.
"yes_no"
my $boolean = $parent->yes_no(
$message,
$title,
);
Generates a standard Wx Yes/No dialog.
"single_choice"
my $choice = $parent->single_choice(
$message,
$title,
[
'Option One',
'Option Two',
'Option Three',
],
);
Generates a standard Wx single-choice dialog, using the standard internal
Wx::SingleChoiceDialog class.
Returns the selected string, or "undef" if the user selects
"Cancel".
"multi_choice"
my @choices = $parent->multi_choice(
$message,
$title,
[
'Option One',
'Option Two',
'Option Three',
],
);
Generates a standard Wx multi-choice dialog, using the internal
Wx::MultiChoiceDialog class.
COPYRIGHT & LICENSE¶
Copyright 2008-2012 The Padre development team as listed in Padre.pm.
This program is free software; you can redistribute it and/or modify it under
the same terms as Perl 5 itself.
The full text of the license can be found in the LICENSE file included with this
module.