NAME
Tk::MenuDialog - A Moo based object oriented interface for creating and display a dialog of buttons to be used as a menu using Tk
VERSION
Version 0.05
SYNOPSIS
use
Tk::MenuDialog;
my
$menu
= Tk::MenuDialog->new;
## Add the script's directory to the icon path
## when searching for icon files
$menu
->add_icon_path(dirname(__FILE__));
## Add menu items to the menu
$menu
->add_item(
label
=>
qq{&Configure}
,
icon
=>
qq{settings.png}
,
);
$menu
->add_item(
label
=>
qq{&Run Tests}
,
icon
=>
qq{run.png}
,
);
## Allow operator to cancel the menu
$menu
->can_cancel(1);
## Display the menu and return hash reference of the selected item,
## or UNDEF if canceled
my
$selection
=
$menu
->show;
ATTRIBUTES
title
Title of the menu
DEFAULT: ''
can_cancel
Indicates if the operator can close the dialog without a selection
DEFAULT: 1
cancel_on_escape
Boolean value indicating if pressing the Escape key should simulate closing the window and canceling the dialog.
DEFAULT: 1
items
Array reference of items contained in this menu.
icon_path
An array containing various paths to use when locating icon image files.
button_font
Font to use for the buttons.
DEFAULT: 'times 10'
button_spacing
Number of pixels between each button
DEFAULT: 0
min_width
Minimum width of the dialog.
DEFAULT: 300
min_height
Minimum height of the dialog.
DEFAULT: 80
METHODS
add_item($hash)
- Description
-
Add a field to the form.
- Parameters
-
A hash reference with the following key / value pairs: label - Required paramater with icon - Optional filename of the icon to display icon_location - Optional location relative to button text for the icon DEFAULT: "left"
- Return
-
UNDEF on error, or the hash reference of the item created
show()
- Description
-
Show the dialog as a new MainWindow.
The function will return if the users cancels the dialog or clicks a button
- Parameters
-
NONE
- Return
-
UNDEF when canceled, or the hash reference associated with the button clicked.
add_icon_path()
initialize($param)
- Description
-
initialize the form from a HASH reference, JSON string, or JSON file. In all cases, the hash should have the following format
{
title
=>
'My Menu'
,
can_cancel
=> 0,
items
=> [
{
label
=>
'&Configure'
,
icon
=>
'settings.png'
,
},
{
label
=>
'&Run'
,
icon
=>
'run.png'
,
},
{
label
=>
'E&xit'
,
icon
=>
'exit.png'
,
},
]
}
- Parameters
-
$param - HASH reference, or scalar containin JSON string, or filename
- Return
-
NONE
AUTHOR
Paul Durden <alabamapaul AT gmail.com>
COPYRIGHT & LICENSE
Copyright (C) 2015 by Paul Durden.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.