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;
use File::Basename qw(dirname);
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()
- Description
 - 
Description goes here
 - Parameters
 - 
NONE
 - Return
 - 
NONE
 
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.