Gapp

 view release on metacpan or  search on metacpan

CHANGES  view on Meta::CPAN

Changes for Gapp

{{$NEXT}}
- added Gapp::FileChooserButton

0.494     2012-10-25 01:00:43

0.487     2012-10-15 10:36:21
- removed print statements
- added initializer to container
- bug fix: MenuToolButton was not rendering icon attribute
- stylers now inherit from stylers applied to ancestor classes
- TreeView get_selected returns array or scalar depending on context
- TreeView coerces default column values
- content attribute of Gapp::Container widgets defaults to being lazy
- GappWidget attribute traits now defaults attribute to being ro and lazy,
typical settings for widgets, you can over-ride the defaults when defining
the attribute
- added Expander widget

0.484     2012-10-08 12:33:30

CHANGES  view on Meta::CPAN

ancestry with the Form trait applied
- added trigger to "page_name" attribute of the NotebookPage trait which updates
the label of the page in the notebook when changed
- added HPaned, VPaned, Notebook attribute traits
- added action_widget attribute to notebook
- added image attribute to ImageButton
- BUG FIX: Buttons with a CodeRef as an action were not passing user args correctly


0.45.1 Aug 29 2012
- fixed bug painting ImageMenuItem widgets

0.45 Aug 29 2012
- created tag-editor example
- added mnemonic/accelerator attributes to Action objects
- added support for default widget in window
- added get_selected method to Gapp::TreeView
- added data_column
- added "name" attribute Gapp::Widget
- added "find" method to Gapp::Container
- add "toplvel" method to Gapp::Widget

CHANGES  view on Meta::CPAN

0.44
- factored out Notice/NoticeBox to GappX::NoticeBox
- refactored Gapp::SimpleList to Gapp::Model::SimpleList
- factored out dialog traits to GappX::Dialogs
- factored out Gtk2 widgets to Gapp::Gtk2
- fixed bug with painters applying action callback to widget twice
- factoed out SSNEntry to GappX::SSNEntry


0.43
- add MenuToolButton, ToggleToolButton, RadioToolButton
- add RagioMenuItem, CheckMenuItem, SeparatorMenuItem, TearoffMenuItem
- Added AssistantPage trait
- Removed AssistantPage widget
- added GappXXXXX traits
- removed Notice/Noticebox (see GappX::NoticeBox)
- partial revamp of test suite



0.42
- renamed gtk_widget attribute to gobject in package Gapp::Object

CHANGES  view on Meta::CPAN

0.37
- added traits for ToolItemGroup, ToolPalette

0.36
- added HPaned, VPaned, ToolItemGroup, ToolPalette

0.35
- Work with Moose 2.0+

0.34
- Fixed SeparatorMenuItem bug

0.33
- Work with Moose 1.25
- Update prerequisite requirements

0.32
- Removed dependancy on MooseX::Method::Signatures


0.31.1

CHANGES  view on Meta::CPAN

attribute specified

0.28
- TreeViewColumn 'data_column' attribute now defaults to 0
- TreeViewColumn now delegates properties 'min_width' and 'resizable' to the
gtk_widget
BUG FIX:
- Layout builder for TreeViewColum was passing incorrect values to 'sort_func'

0.27
- added 'menu' attribute to Gapp::MenuItem
BUG FIX:
- fixed bug in DateEntry that called 'on_change' handler twice


0.26
- added ::StatusIcon
- added ::TimeEntry
- added ::Gtk2::TimeEntry
- added HideWindow To ::Actions::Basic
- added 'forward_page_func' property to ::Assistant

CHANGES  view on Meta::CPAN

- Gapp::Gtk2::List::Simple was throwing errors if there was no content
- widgets with the FormField role threw errors when the value changed if there
was no parent widget with a Form role

0.23

- added TextView

0.22
- added FileFilter
- added SeparatorMenuItem
- added SeparatorToolItem
- added MessageDialog widget trait
- Gapp::Actions::Util now exports three new keywords: perform, parse_action, actioncb
- FileChooseDialog now has "filters" attribute
- added "clear" method to Gtk2::List::Simple
- MenuItems now have "action" attribute
- added "model" attribute to Window



0.21
- Gapp::Actions now implement MooseX::Clone
- added 'buttons' attribute to Gapp::ButtonBox
- containers now set parent attribute of child elements correctly
- added tooltips to Gapp::ToolButtons
- added GappHBox and GappVBox attribute traits
- added tooltip attribute to Gapp::Widget


0.20
- IMPORTANT: actions performed by gtk widgets are now passed the following
arguments( $gapp_widget, $user_args, $gtk_widget, @gtk_args )
- added ButtonBox, HButtonBox, VButtonBox

0.19
- added MenuBar widget
- added FileChooserDialog
- added 'create_gtk_image' method to Gapp::Action
- added 'clear' method to Gapp::Gtk2::List::Simple
- can attach actions to Gapp::ToolButton widgets
- added MenuBar widget


0.18
- added EventBox widget
- added updated attribute to Stash
- added update_from_context attribute to Stash
- added NoticeBox and Notice widgets
- added transient_for and position attributes to Window widget


CHANGES  view on Meta::CPAN


0.06.1
- GtkAssistant can construct pages using a custom class in an array coercion

0.06
- added GtkAssistant trait
- added GtkAssistantPage meta-object
- added handle "destroy" to GtkDefaultWidget trait

0.05
- added GtkMenu trait

0.04.2
- added support for binding to cell renderers in GtkTreeView build functions

0.04.1
- added support for different cell renderers in GtkTreeView

0.04
- added GtkListStore trait
- added GtkTreeView trait

MANIFEST  view on Meta::CPAN

lib/Gapp/Actions/Form.pm
lib/Gapp/Actions/Util.pm
lib/Gapp/Assistant.pm
lib/Gapp/AssistantPage.pm
lib/Gapp/Bin.pm
lib/Gapp/Box.pm
lib/Gapp/Button.pm
lib/Gapp/ButtonBox.pm
lib/Gapp/CellRenderer.pm
lib/Gapp/CheckButton.pm
lib/Gapp/CheckMenuItem.pm
lib/Gapp/ComboBox.pm
lib/Gapp/Container.pm
lib/Gapp/DateEntry.pm
lib/Gapp/Dialog.pm
lib/Gapp/Entry.pm
lib/Gapp/EventBox.pm
lib/Gapp/Expander.pm
lib/Gapp/FileChooserButton.pm
lib/Gapp/FileChooserDialog.pm
lib/Gapp/FileFilter.pm

MANIFEST  view on Meta::CPAN

lib/Gapp/Gtk2.pm
lib/Gapp/Gtk2/DateEntry.pm
lib/Gapp/Gtk2/Model/List.pm
lib/Gapp/Gtk2/Model/SimpleList.pm
lib/Gapp/Gtk2/Model/Tree.pm
lib/Gapp/Gtk2/TimeEntry.pm
lib/Gapp/HBox.pm
lib/Gapp/HButtonBox.pm
lib/Gapp/HPaned.pm
lib/Gapp/Image.pm
lib/Gapp/ImageMenuItem.pm
lib/Gapp/Label.pm
lib/Gapp/Layout.pm
lib/Gapp/Layout/Default.pm
lib/Gapp/Layout/Object.pm
lib/Gapp/Layout/pod2htmd.tmp
lib/Gapp/Layout/pod2htmi.tmp
lib/Gapp/ListStore.pm
lib/Gapp/Manual.pod
lib/Gapp/Menu.pm
lib/Gapp/MenuBar.pm
lib/Gapp/MenuItem.pm
lib/Gapp/MenuShell.pm
lib/Gapp/MenuToolButton.pm
lib/Gapp/MessageDialog.pm
lib/Gapp/Meta/Attribute/Trait/DefaultWidget.pm
lib/Gapp/Meta/Widget/Native/Role/CanDefault.pm
lib/Gapp/Meta/Widget/Native/Role/FileChooser.pm
lib/Gapp/Meta/Widget/Native/Role/FormElement.pm
lib/Gapp/Meta/Widget/Native/Role/FormField.pm
lib/Gapp/Meta/Widget/Native/Role/HasAction.pm
lib/Gapp/Meta/Widget/Native/Role/HasIcon.pm
lib/Gapp/Meta/Widget/Native/Role/HasIconSize.pm
lib/Gapp/Meta/Widget/Native/Role/HasImage.pm
lib/Gapp/Meta/Widget/Native/Role/HasLabel.pm
lib/Gapp/Meta/Widget/Native/Role/HasMenu.pm
lib/Gapp/Meta/Widget/Native/Role/HasMnemonic.pm
lib/Gapp/Meta/Widget/Native/Role/HasName.pm
lib/Gapp/Meta/Widget/Native/Role/HasStockId.pm
lib/Gapp/Meta/Widget/Native/Trait/AssistantPage.pm
lib/Gapp/Meta/Widget/Native/Trait/Form.pm
lib/Gapp/Meta/Widget/Native/Trait/FromUIManager.pm
lib/Gapp/Meta/Widget/Native/Trait/ListFormField.pm
lib/Gapp/Meta/Widget/Native/Trait/NotebookPage.pm
lib/Gapp/Meta/Widget/Native/Trait/Sensitivity.pm
lib/Gapp/Meta/Widget/Native/Trait/ToggleListFormField.pm
lib/Gapp/Model/List.pm
lib/Gapp/Model/SimpleList.pm
lib/Gapp/Moose.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappActionGroup.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappAssistant.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappBox.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappButton.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappCheckButton.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappCheckMenuItem.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappComboBox.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappDateEntry.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappDefault.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappDialog.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappEntry.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappEventBox.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappExpander.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappFileChooserButton.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappFileChooserDialog.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappFileFilter.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappFrame.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappHBox.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappHButtonBox.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappHPaned.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappImage.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappImageMenuItem.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappLabel.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappListStore.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappMenu.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappMenuBar.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappMenuItem.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappMenuToolButton.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappNotebook.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappRadioMenuItem.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappRadioToolButton.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappScrolledWindow.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappSeparatorMenuItem.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappSeparatorToolItem.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappSpinButton.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappStatusIcon.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappStatusbar.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappTable.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappTearoffMenuItem.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappTextBuffer.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappTextTagTable.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappTextView.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappTimeEntry.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappToggleToolButton.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappToolButton.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappToolItemGroup.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappToolPalette.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappToolbar.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappTreeView.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappUIManager.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappVBox.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappVButtonBox.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappVPaned.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappViewport.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappWidget.pm
lib/Gapp/Moose/Meta/Attribute/Trait/GappWindow.pm
lib/Gapp/Moose/Meta/Attribute/Trait/TearoffMenuItem.pm
lib/Gapp/Moose/Role.pm
lib/Gapp/Notebook.pm
lib/Gapp/Object.pm
lib/Gapp/Paned.pm
lib/Gapp/ProgressBar.pm
lib/Gapp/RadioButton.pm
lib/Gapp/RadioMenuItem.pm
lib/Gapp/RadioToolButton.pm
lib/Gapp/ScrolledWindow.pm
lib/Gapp/SeparatorMenuItem.pm
lib/Gapp/SeparatorToolItem.pm
lib/Gapp/SpinButton.pm
lib/Gapp/StatusIcon.pm
lib/Gapp/Statusbar.pm
lib/Gapp/Table.pm
lib/Gapp/TableCell.pm
lib/Gapp/TableMap.pm
lib/Gapp/TearoffMenuItem.pm
lib/Gapp/TextBuffer.pm
lib/Gapp/TextTag.pm
lib/Gapp/TextTagTable.pm
lib/Gapp/TextView.pm
lib/Gapp/TimeEntry.pm
lib/Gapp/ToggleButton.pm
lib/Gapp/ToggleToolButton.pm
lib/Gapp/ToolButton.pm
lib/Gapp/ToolItem.pm
lib/Gapp/ToolItemGroup.pm

ex/bigexample.pl  view on Meta::CPAN

);


$browser = Gapp::Window->new(
    title => 'Tag Editor',
    icon => 'gtk-media-play',
    default_size => [ 900, 400 ],
    content => [
        Gapp::VBox->new(
            content => [
                Gapp::MenuBar->new(
                    content => [
                        Gapp::MenuItem->new(
                            label => 'File',
                            menu => Gapp::Menu->new(
                                content => [
                                    Gapp::ImageMenuItem->new( action => Quit, accel_path =>  '<Gnumeric-Sheet>/File/Exit' ),
                                ]
                            )
                        ),
                        Gapp::MenuItem->new(
                            label => 'Edit',
                            menu => Gapp::Menu->new(
                                content => [
                                    Gapp::ImageMenuItem->new( action => New, accel_path =>  '<Gnumeric-Sheet>/File/Exit' ),
                                    Gapp::ImageMenuItem->new( action => Edit ),
                                    Gapp::ImageMenuItem->new( action => Delete ),
                                ]
                            )
                        ),
                    ],
                    expand => 0,
                ),
                Gapp::ScrolledWindow->new(
                    policy => [ 'automatic', 'automatic' ],
                    content => [
                        Gapp::TreeView->new(

lib/Gapp.pm  view on Meta::CPAN

use Gapp::FileChooserButton;
use Gapp::FileChooserDialog;
use Gapp::FileFilter;
use Gapp::Form::Context;
use Gapp::Form::Stash;
use Gapp::Frame;
use Gapp::HBox;
use Gapp::HPaned;
use Gapp::HButtonBox;
use Gapp::Image;
use Gapp::ImageMenuItem;
use Gapp::Label;
use Gapp::ListStore;
use Gapp::Menu;
use Gapp::MenuBar;
use Gapp::MenuItem;
use Gapp::MenuToolButton;
use Gapp::Model::List;
use Gapp::Model::SimpleList;
use Gapp::ProgressBar;
use Gapp::RadioButton;
use Gapp::ScrolledWindow;
use Gapp::SeparatorMenuItem;
use Gapp::SeparatorToolItem;
use Gapp::SpinButton;
use Gapp::Model::SimpleList;
use Gapp::Notebook;
use Gapp::Statusbar;
use Gapp::StatusIcon;
use Gapp::Table;
use Gapp::TextBuffer;
use Gapp::TextTag;
use Gapp::TextTagTable;

lib/Gapp/CheckMenuItem.pm  view on Meta::CPAN

package Gapp::CheckMenuItem;
{
  $Gapp::CheckMenuItem::VERSION = '0.60';
}

use Moose;
use MooseX::StrictConstructor;
use MooseX::SemiAffordanceAccessor;

extends 'Gapp::MenuItem';
with 'Gapp::Meta::Widget::Native::Role::FormField';

has '+gclass' => (
    default => 'Gtk2::CheckMenuItem',
);

has 'value' => (
    is => 'rw',
    isa => 'Str',
    default => '1',
);



lib/Gapp/CheckMenuItem.pm  view on Meta::CPAN


1;


__END__

=pod

=head1 NAME

Gapp::ImageMenuItem - ImageMenuItem Widget

=head1 OBJECT HIERARCHY

=over 4

=item L<Gapp::Widget>

=item +-- L<Gapp::MenuItem>

=item ....+-- L<Gapp::CheckMenuItem>

=back

=head2 Roles

=over 4

=item L<Gapp::Meta::Widget::Native::Role::FormField>

=back

lib/Gapp/ImageMenuItem.pm  view on Meta::CPAN

package Gapp::ImageMenuItem;
{
  $Gapp::ImageMenuItem::VERSION = '0.60';
}

use Moose;
use MooseX::StrictConstructor;
use MooseX::SemiAffordanceAccessor;

extends 'Gapp::MenuItem';
with 'Gapp::Meta::Widget::Native::Role::HasIcon';
with 'Gapp::Meta::Widget::Native::Role::HasImage';

has '+gclass' => (
    default => 'Gtk2::ImageMenuItem',
);

1;


__END__

=pod

=head1 NAME

Gapp::ImageMenuItem - ImageMenuItem Widget

=head1 OBJECT HIERARCHY

=over 4

=item L<Gapp::Widget>

=item +-- L<Gapp::MenuItem>

=item ....+-- L<Gapp::ImageMenuItem>

=back

=head2 Roles

=over 4

=item L<Gapp::Meta::Widget::Native::Role::HasIcon>

=item L<Gapp::Meta::Widget::Native::Role::HasImage>

lib/Gapp/Layout/Default.pm  view on Meta::CPAN

    
    my $gtkw = $w->gobject;
    if ( $w->file ) {
	$gtkw->set_from_file( $w->file );
    }
    elsif ( $w->stock ) {
        $gtkw->set_from_stock( $w->stock->[0], $w->stock->[1] );
    }
};

# ImageMenuItem

#style 'Gapp::ImageMenuItem', sub {
#    my ( $l, $w ) = @_;
#    
#    my ( $action, @args ) = parse_action ( $w->action );
#    
#    
#    
#    if ( is_GappAction ( $action ) && $action->mnemonic ) {
#	
#	if ( ! $w->label && ! $w->mnemonic ) {
#	    

lib/Gapp/Layout/Default.pm  view on Meta::CPAN

#	    $w->set_constructor( 'new_with_mnemonic' );
#	    $w->set_args( [ $action->mnemonic ] );
#	    
#	    $w->_construct_gobject;
#	}
#    }
#};



build 'Gapp::ImageMenuItem', sub {
    my ( $l, $w ) = @_;
    my $gtkw = $w->gobject;
    
    my ( $image );
    
    if ( $w->icon ) {
	$image = Gtk2::Image->new_from_stock( $w->icon, 'menu' );
    }
    if ( $w->image ) {
	$image = $w->image->gobject;

lib/Gapp/Layout/Default.pm  view on Meta::CPAN

    
    $gtkw->set_label( $w->label ) if defined $w->label && ! defined $w->mnemonic;
    $gtkw->set_image( $image ) if defined $image;
    $gtkw->set_tooltip_text( $w->tooltip ) if defined $w->tooltip;
    
    if ( $w->menu ) {
	$gtkw->set_submenu( $w->menu->gobject );
    }
};

paint 'Gapp::ImageMenuItem', sub {
    my ( $l, $w ) = @_;
    return if ! $w->action;
    
    #print $w, $w->mnemonic, "\n";
    
    my ( $action, @args ) = parse_action ( $w->action );
    
    if ( is_CodeRef $action ) {
	$w->signal_connect( 'activate', $action, \@args );
    }

lib/Gapp/Layout/Default.pm  view on Meta::CPAN

	$gtkw->set_label( $action->label ) if ! defined $w->label  && ! defined $w->mnemonic && defined $action->label;
	$gtkw->set_image( $action->create_gtk_image( 'menu' ) ) if ! $w->icon && ! defined $w->image && defined $action->icon;
	$gtkw->set_tooltip_text( $action->tooltip ) if ! defined $w->tooltip && defined $action->tooltip;
	$gtkw->signal_connect( activate => actioncb( $action, $w, \@args ) );
    }
};




# MenuItem
#style 'Gapp::MenuItem', sub {
#    my ( $l, $w ) = @_;
#    
#    my ( $action, @args ) = parse_action ( $w->action );
#    
#    if ( is_GappAction ( $action ) && $action->mnemonic ) {
#	if ( ! $w->label && ! $w->mnemonic ) {
#	    $w->set_constructor( 'new_with_mnemonic' );
#	    $w->set_args( [ $action->mnemonic ] );
#	}
#    }
#};


build 'Gapp::MenuItem', sub {
    my ( $l, $w ) = @_;
    my $gtkw = $w->gobject;
        
    $gtkw->set_label( $w->label ) if defined $w->label && ! defined $w->mnemonic;
    $gtkw->set_tooltip_text( $w->tooltip ) if defined $w->tooltip;
    
    if ( $w->menu ) {
	$gtkw->set_submenu( $w->menu->gobject );
    }
};

paint 'Gapp::MenuItem', sub {
    my ( $l, $w ) = @_;
    return if ! $w->action;
    
    my ( $action, @args ) = parse_action ( $w->action );
    
    if ( is_CodeRef $action ) {
	$w->signal_connect( 'activate', $action, \@args );
    }
    else {
	my $gtkw = $w->gobject;
	$gtkw->set_label( $action->label ) if ! defined $w->label && ! defined $w->mnemonic && defined $action->label;
	$gtkw->set_tooltip_text( $action->tooltip ) if ! defined $w->tooltip && defined $action->tooltip;
	$gtkw->signal_connect( activate => actioncb( $action, $w, \@args ) );
    }
};


add 'Gapp::MenuItem', to 'Gapp::MenuShell', sub {
    my ( $l, $w, $c ) = @_;
    $c->gobject->append( $w->gwrapper );
    $c->gobject->show;
};


# ToolButton

style 'Gapp::MenuToolButton', sub {
    my ( $l, $w ) = @_;
    
    my $image = $w->image ?
    $w->image->gobject :
    Gtk2::Image->new_from_stock( $w->icon || 'gtk-dialog-error' , $w->icon_size || 'large-toolbar' );
    
    $w->set_args( [ $image, defined $w->label ? $w->label : ''  ] );
};


build 'Gapp::MenuToolButton', sub {
    my ( $l, $w ) = @_;
    my $gtkw = $w->gobject;
    
    $w->gobject->set_menu( $w->menu->gobject ) if $w->menu;
    
    $gtkw->set_stock_id( $w->stock_id ) if $w->stock_id;
    $gtkw->set_label( $w->label ) if defined $w->label;
    $gtkw->set_tooltip_text( $w->tooltip ) if defined $w->tooltip;
    $gtkw->set_homogeneous( 1 ) if $w->homogeneous;
    $w->menu->gwrapper->show_all if $w->menu;
};

paint 'Gapp::MenuToolButton', sub {
    my ( $l, $w ) = @_;
    return if ! $w->action;
    
    my ( $action, @args ) = parse_action ( $w->action );
    
    if ( is_CodeRef $action ) {
	$w->signal_connect( 'clicked', $action, \@args );
    }
    else {
	my $gtkw = $w->gobject;

lib/Gapp/Manual.pod  view on Meta::CPAN

  use Gapp::Actions::Basic qw( Quit );

  # call directly
  do_Quit; 

  # connect to signal
  $w = Gapp::Window->new;
  $w->signal_connect( 'delete-event' => Quit );

  # display as menu item
  Gapp::MenuItem->new( action => Quit );

  # display as button
  Gapp::Button->new( action => Quit );

You should see L<Gapp::Actions> for information on creating and using actions.

=head1 TRAITS

Apply traits and roles to your widgets to change their behavior!
 

lib/Gapp/Menu.pm  view on Meta::CPAN

package Gapp::Menu;
{
  $Gapp::Menu::VERSION = '0.60';
}

use Moose;
use MooseX::SemiAffordanceAccessor;
extends 'Gapp::MenuShell';

has '+gclass' => (
    default => 'Gtk2::Menu',
);



1;


sub run_visible_funcs {
    my ( $self ) = @_;
   

lib/Gapp/Menu.pm  view on Meta::CPAN

    $self->gobject->popup( @args );
}


__END__

=pod

=head1 NAME

Gapp::Menu - Menu Widget

=head1 OBJECT HIERARCHY

=over 4

=item L<Gapp::Object>

=item +-- L<Gapp::Widget>

=item ....+-- L<Gapp::Container>

=item ........+-- L<Gapp::MenuShell>

=item ............+-- L<Gapp::Menu>

=back

=head1 AUTHORS

Jeffrey Ray Hallock E<lt>jeffrey.hallock at gmail dot comE<gt>

=head1 COPYRIGHT & LICENSE

    Copyright (c) 2011-2012 Jeffrey Ray Hallock.

lib/Gapp/MenuBar.pm  view on Meta::CPAN

package Gapp::MenuBar;
{
  $Gapp::MenuBar::VERSION = '0.60';
}

use Moose;
use MooseX::SemiAffordanceAccessor;
extends 'Gapp::MenuShell';

has '+gclass' => (
    default => 'Gtk2::MenuBar',
);


1;



__END__

=pod

=head1 NAME

Gapp::MenuBar - MenuBar Widget

=head1 OBJECT HIERARCHY

=over 4

=item L<Gapp::Object>

=item +-- L<Gapp::Widget>

=item ....+-- L<Gapp::Container>

=item ........+-- L<Gapp::MenuShell>

=item ............+-- L<Gapp::MenuBar>

=back

=head1 AUTHORS

Jeffrey Ray Hallock E<lt>jeffrey.hallock at gmail dot comE<gt>

=head1 COPYRIGHT & LICENSE

    Copyright (c) 2011-2012 Jeffrey Ray Hallock.

lib/Gapp/MenuItem.pm  view on Meta::CPAN

package Gapp::MenuItem;
{
  $Gapp::MenuItem::VERSION = '0.60';
}

use Moose;
use MooseX::SemiAffordanceAccessor;

extends 'Gapp::Bin';
with 'Gapp::Meta::Widget::Native::Role::HasAction';
with 'Gapp::Meta::Widget::Native::Role::HasLabel';
with 'Gapp::Meta::Widget::Native::Role::HasMenu';
with 'Gapp::Meta::Widget::Native::Role::HasMnemonic';

has '+gclass' => (
    default => 'Gtk2::MenuItem',
);

has '+constructor' => (
    default => 'new_with_label',
);

has '+args' => (
    default => sub { [ '' ] },
);

lib/Gapp/MenuItem.pm  view on Meta::CPAN


1;


__END__

=pod

=head1 NAME

Gapp::MenuItem - MenuItem Widget

=head1 OBJECT HIERARCHY

=over 4

=item L<Gapp::Object>

=item +-- L<Gapp::Widget>

=item ....+-- L<Gapp::Container>

=item ........+-- L<Gapp::Bin>

=item ............+-- L<Gapp::MenuItem>

=back

=head2 Roles

=over 4

=item L<Gapp::Meta::Widget::Native::Role::HasAction>

=item L<Gapp::Meta::Widget::Native::Role::HasLabel>

=item L<Gapp::Meta::Widget::Native::Role::HasMenu>

=back

=head1 AUTHORS

Jeffrey Ray Hallock E<lt>jeffrey.hallock at gmail dot comE<gt>

=head1 COPYRIGHT & LICENSE

    Copyright (c) 2011-2012 Jeffrey Ray Hallock.

lib/Gapp/MenuShell.pm  view on Meta::CPAN

package Gapp::MenuShell;
{
  $Gapp::MenuShell::VERSION = '0.60';
}

use Moose;
use MooseX::SemiAffordanceAccessor;
extends 'Gapp::Container';

has '+gclass' => (
    default => 'Gtk2::MenuShell',
);

1;


__END__

=pod

=head1 NAME

Gapp::MenuShell - MenuShell Widget

=head1 OBJECT HIERARCHY

=over 4

=item L<Gapp::Object>

=item +-- L<Gapp::Widget>

=item ....+-- L<Gapp::Container>

=item ........+-- L<Gapp::MenuShell>

=back

=head1 AUTHORS

Jeffrey Ray Hallock E<lt>jeffrey.hallock at gmail dot comE<gt>

=head1 COPYRIGHT & LICENSE

    Copyright (c) 2011-2012 Jeffrey Ray Hallock.

lib/Gapp/MenuToolButton.pm  view on Meta::CPAN

package Gapp::MenuToolButton;
{
  $Gapp::MenuToolButton::VERSION = '0.60';
}

use Moose;
use MooseX::SemiAffordanceAccessor;
extends 'Gapp::ToolButton';
with 'Gapp::Meta::Widget::Native::Role::HasMenu';

has '+gclass' => (
    default => 'Gtk2::MenuToolButton',
);

#after '_construct_gobject' => sub {
#    my ( $self ) = @_;
#    $self->gobject->set_menu( $self->menu->gobject ) if $self->menu;
#};

1;



__END__

=pod

=head1 NAME

Gapp::MenuToolButton - MenuToolButton Widget

=head1 OBJECT HIERARCHY

=over 4

=item L<Gapp::Object>

=item +-- L<Gapp::Widget>

=item ....+-- L<Gapp::ToolItem>

=item ........+-- L<Gapp::ToolButton>

=item ............+-- L<Gapp::MenuToolButton>

=back

=head2 Roles

=over 4

=item L<Gapp::Meta::Widget::Native::Role::HasMenu>

=back

=head1 AUTHORS

Jeffrey Ray Hallock E<lt>jeffrey.hallock at gmail dot comE<gt>

=head1 COPYRIGHT & LICENSE

    Copyright (c) 2011-2012 Jeffrey Ray Hallock.

lib/Gapp/Meta/Widget/Native/Role/HasAction.pm  view on Meta::CPAN

=head1 NAME

Gapp::Meta::Widget::Native::Role::HasAction - action attribute for widgets

=head1 SYNOPSIS

    use Gapp::Actions::Basic qw( Quit );

    Gapp::Button->new( action => Quit );
    
    Gapp::ImageMenuItem->new( action => Quit );
    
    Gapp::ToolButton->new( action => Quit );

=head1 PROVIDED ATTRIBUTES

=over 4

=item B<action>

=over 4

lib/Gapp/Meta/Widget/Native/Role/HasMenu.pm  view on Meta::CPAN

package Gapp::Meta::Widget::Native::Role::HasMenu;
{
  $Gapp::Meta::Widget::Native::Role::HasMenu::VERSION = '0.60';
}

use Moose::Role;
use MooseX::SemiAffordanceAccessor;

use Gapp::Types qw( MaybeGappMenu );

has 'menu' => (
    is => 'rw',
    isa => MaybeGappMenu,
    coerce => 1,
    trigger => sub {
        my ( $self, $value ) = @_;
        return if ! defined $value;
        
        $value->set_parent( $self );
    }
);



1;


__END__

=pod

=head1 NAME

Gapp::Meta::Widget::Native::Role::HasMenu - menu attribute for widgets
   
=head1 PROVIDED ATTRIBUTES

=over 4

=item B<menu>

=over 4

=item is rw

=item isa L<Gapp::Menu>|Undef

=back

The L<Gapp::Menu> assigned to the widget.

=back

=head1 AUTHORS

Jeffrey Ray Hallock E<lt>jeffrey.hallock at gmail dot comE<gt>

=head1 COPYRIGHT & LICENSE

    Copyright (c) 2011-2012 Jeffrey Ray Hallock.

lib/Gapp/Moose.pm  view on Meta::CPAN

use Moose;
use Moose::Meta::Method;
use Moose::Exporter;

use Gapp;
use Gapp::Gtk2;
use Gapp::Moose::Meta::Attribute::Trait::GappActionGroup;
use Gapp::Moose::Meta::Attribute::Trait::GappAssistant;
use Gapp::Moose::Meta::Attribute::Trait::GappBox;
use Gapp::Moose::Meta::Attribute::Trait::GappCheckButton;
use Gapp::Moose::Meta::Attribute::Trait::GappCheckMenuItem;
use Gapp::Moose::Meta::Attribute::Trait::GappComboBox;
use Gapp::Moose::Meta::Attribute::Trait::GappButton;
use Gapp::Moose::Meta::Attribute::Trait::GappDateEntry;
use Gapp::Moose::Meta::Attribute::Trait::GappEntry;
use Gapp::Moose::Meta::Attribute::Trait::GappExpander;
use Gapp::Moose::Meta::Attribute::Trait::GappEventBox;
use Gapp::Moose::Meta::Attribute::Trait::GappFileChooserDialog;
use Gapp::Moose::Meta::Attribute::Trait::GappFileFilter;
use Gapp::Moose::Meta::Attribute::Trait::GappFrame;
use Gapp::Moose::Meta::Attribute::Trait::GappHBox;
use Gapp::Moose::Meta::Attribute::Trait::GappHButtonBox;
use Gapp::Moose::Meta::Attribute::Trait::GappHPaned;
use Gapp::Moose::Meta::Attribute::Trait::GappVPaned;
use Gapp::Moose::Meta::Attribute::Trait::GappImage;
use Gapp::Moose::Meta::Attribute::Trait::GappLabel;
use Gapp::Moose::Meta::Attribute::Trait::GappListStore;
use Gapp::Moose::Meta::Attribute::Trait::GappDefault;
use Gapp::Moose::Meta::Attribute::Trait::GappDialog;
use Gapp::Moose::Meta::Attribute::Trait::GappMenu;
use Gapp::Moose::Meta::Attribute::Trait::GappMenuBar;
use Gapp::Moose::Meta::Attribute::Trait::GappMenuToolButton;
use Gapp::Moose::Meta::Attribute::Trait::GappNotebook;
use Gapp::Moose::Meta::Attribute::Trait::GappRadioMenuItem;
use Gapp::Moose::Meta::Attribute::Trait::GappRadioToolButton;
use Gapp::Moose::Meta::Attribute::Trait::GappScrolledWindow;
use Gapp::Moose::Meta::Attribute::Trait::GappSeparatorMenuItem;
use Gapp::Moose::Meta::Attribute::Trait::GappSeparatorToolItem;
use Gapp::Moose::Meta::Attribute::Trait::GappSpinButton;
use Gapp::Moose::Meta::Attribute::Trait::GappStatusbar;
use Gapp::Moose::Meta::Attribute::Trait::GappStatusIcon;
use Gapp::Moose::Meta::Attribute::Trait::GappTable;
use Gapp::Moose::Meta::Attribute::Trait::GappTearoffMenuItem;
use Gapp::Moose::Meta::Attribute::Trait::GappTextBuffer;
use Gapp::Moose::Meta::Attribute::Trait::GappTextTagTable;
use Gapp::Moose::Meta::Attribute::Trait::GappTextView;
use Gapp::Moose::Meta::Attribute::Trait::GappTimeEntry;
use Gapp::Moose::Meta::Attribute::Trait::GappToggleToolButton;
use Gapp::Moose::Meta::Attribute::Trait::GappToolbar;
use Gapp::Moose::Meta::Attribute::Trait::GappToolButton;
use Gapp::Moose::Meta::Attribute::Trait::GappToolItemGroup;
use Gapp::Moose::Meta::Attribute::Trait::GappToolPalette;
use Gapp::Moose::Meta::Attribute::Trait::GappTreeView;

lib/Gapp/Moose/Meta/Attribute/Trait/GappCheckMenuItem.pm  view on Meta::CPAN

package Gapp::Moose::Meta::Attribute::Trait::CheckMenuItem;
{
  $Gapp::Moose::Meta::Attribute::Trait::CheckMenuItem::VERSION = '0.60';
}
use Moose::Role;

before '_process_options' => sub {
    my ( $class, $name, $opts ) = @_;
    $opts->{gclass} = 'Gapp::CheckMenuItem' if ! exists $opts->{class};
};

package Moose::Meta::Attribute::Custom::Trait::CheckMenuItem;
{
  $Moose::Meta::Attribute::Custom::Trait::CheckMenuItem::VERSION = '0.60';
}
sub register_implementation { 'Gapp::Moose::Meta::Attribute::Trait::GappCheckMenuItem' };
1;

lib/Gapp/Moose/Meta/Attribute/Trait/GappImageMenuItem.pm  view on Meta::CPAN

package Gapp::Moose::Meta::Attribute::Trait::ImageMenuItem;
{
  $Gapp::Moose::Meta::Attribute::Trait::ImageMenuItem::VERSION = '0.60';
}
use Moose::Role;

before '_process_options' => sub {
    my ( $class, $name, $opts ) = @_;
    $opts->{gclass} = 'Gapp::ImageMenuItem' if ! exists $opts->{class};
};

package Moose::Meta::Attribute::Custom::Trait::GappImageMenuItem;
{
  $Moose::Meta::Attribute::Custom::Trait::GappImageMenuItem::VERSION = '0.60';
}
sub register_implementation { 'Gapp::Moose::Meta::Attribute::Trait::GappImageMenuItem' };
1;

lib/Gapp/Moose/Meta/Attribute/Trait/GappMenu.pm  view on Meta::CPAN

package Gapp::Moose::Meta::Attribute::Trait::GappMenu;
{
  $Gapp::Moose::Meta::Attribute::Trait::GappMenu::VERSION = '0.60';
}
use Moose::Role;

before '_process_options' => sub {
    my ( $class, $name, $opts ) = @_;
    $opts->{gclass} = 'Gapp::Menu' if ! exists $opts->{class};
};

package Moose::Meta::Attribute::Custom::Trait::GappMenu;
{
  $Moose::Meta::Attribute::Custom::Trait::GappMenu::VERSION = '0.60';
}
sub register_implementation { 'Gapp::Moose::Meta::Attribute::Trait::GappMenu' };
1;

lib/Gapp/Moose/Meta/Attribute/Trait/GappMenuBar.pm  view on Meta::CPAN

package Gapp::Moose::Meta::Attribute::Trait::GappMenuBar;
{
  $Gapp::Moose::Meta::Attribute::Trait::GappMenuBar::VERSION = '0.60';
}
use Moose::Role;

before '_process_options' => sub {
    my ( $class, $name, $opts ) = @_;
    $opts->{gclass} = 'Gapp::MenuBar' if ! exists $opts->{class};
};

package Moose::Meta::Attribute::Custom::Trait::GappMenuBar;
{
  $Moose::Meta::Attribute::Custom::Trait::GappMenuBar::VERSION = '0.60';
}
sub register_implementation { 'Gapp::Moose::Meta::Attribute::Trait::GappMenuBar' };
1;

lib/Gapp/Moose/Meta/Attribute/Trait/GappMenuItem.pm  view on Meta::CPAN

package Gapp::Moose::Meta::Attribute::Trait::MenuItem;
{
  $Gapp::Moose::Meta::Attribute::Trait::MenuItem::VERSION = '0.60';
}
use Moose::Role;

before '_process_options' => sub {
    my ( $class, $name, $opts ) = @_;
    $opts->{gclass} = 'Gapp::MenuItem' if ! exists $opts->{class};
};

package Moose::Meta::Attribute::Custom::Trait::GappMenuItem;
{
  $Moose::Meta::Attribute::Custom::Trait::GappMenuItem::VERSION = '0.60';
}
sub register_implementation { 'Gapp::Moose::Meta::Attribute::Trait::GappMenuItem' };
1;

lib/Gapp/Moose/Meta/Attribute/Trait/GappMenuToolButton.pm  view on Meta::CPAN

package Gapp::Moose::Meta::Attribute::Trait::GappMenuToolButton;
{
  $Gapp::Moose::Meta::Attribute::Trait::GappMenuToolButton::VERSION = '0.60';
}
use Moose::Role;

before '_process_options' => sub {
    my ( $class, $name, $opts ) = @_;
    $opts->{gclass} = 'Gapp::MenuToolButton' if ! exists $opts->{class};
};

package Moose::Meta::Attribute::Custom::Trait::GappMenuToolButton;
{
  $Moose::Meta::Attribute::Custom::Trait::GappMenuToolButton::VERSION = '0.60';
}
sub register_implementation { 'Gapp::Moose::Meta::Attribute::Trait::GappMenuToolButton' };
1;

lib/Gapp/Moose/Meta/Attribute/Trait/GappRadioMenuItem.pm  view on Meta::CPAN

package Gapp::Moose::Meta::Attribute::Trait::RadioMenuItem;
{
  $Gapp::Moose::Meta::Attribute::Trait::RadioMenuItem::VERSION = '0.60';
}
use Moose::Role;

before '_process_options' => sub {
    my ( $class, $name, $opts ) = @_;
    $opts->{gclass} = 'Gapp::RadioMenuItem' if ! exists $opts->{class};
};

package Moose::Meta::Attribute::Custom::Trait::RadioMenuItem;
{
  $Moose::Meta::Attribute::Custom::Trait::RadioMenuItem::VERSION = '0.60';
}
sub register_implementation { 'Gapp::Moose::Meta::Attribute::Trait::GappRadioMenuItem' };
1;

lib/Gapp/Moose/Meta/Attribute/Trait/GappSeparatorMenuItem.pm  view on Meta::CPAN

package Gapp::Moose::Meta::Attribute::Trait::SeparatorMenuItem;
{
  $Gapp::Moose::Meta::Attribute::Trait::SeparatorMenuItem::VERSION = '0.60';
}
use Moose::Role;

before '_process_options' => sub {
    my ( $class, $name, $opts ) = @_;
    $opts->{gclass} = 'Gapp::SeparatorMenuItem' if ! exists $opts->{class};
};

package Moose::Meta::Attribute::Custom::Trait::GappSeparatorMenuItem;
{
  $Moose::Meta::Attribute::Custom::Trait::GappSeparatorMenuItem::VERSION = '0.60';
}
sub register_implementation { 'Gapp::Moose::Meta::Attribute::Trait::GappSeparatorMenuItem' };
1;

lib/Gapp/Moose/Meta/Attribute/Trait/GappTearoffMenuItem.pm  view on Meta::CPAN

package Gapp::Moose::Meta::Attribute::Trait::TearoffMenuItem;
{
  $Gapp::Moose::Meta::Attribute::Trait::TearoffMenuItem::VERSION = '0.60';
}
{
  $Gapp::Moose::Meta::Attribute::Trait::TearoffMenuItem::VERSION = '0.60';
}
use Moose::Role;

before '_process_options' => sub {
    my ( $class, $name, $opts ) = @_;
    $opts->{gclass} = 'Gapp::TearoffMenuItem' if ! exists $opts->{class};
};

package Moose::Meta::Attribute::Custom::Trait::GappTearoffMenuItem;
{
  $Moose::Meta::Attribute::Custom::Trait::GappTearoffMenuItem::VERSION = '0.60';
}
{
  $Moose::Meta::Attribute::Custom::Trait::GappTearoffMenuItem::VERSION = '0.60';
}
sub register_implementation { 'Gapp::Moose::Meta::Attribute::Trait::GappTearoffMenuItem' };
1;

lib/Gapp/Moose/Meta/Attribute/Trait/TearoffMenuItem.pm  view on Meta::CPAN

package Gapp::Moose::Meta::Attribute::Trait::TearoffMenuItem;
{
  $Gapp::Moose::Meta::Attribute::Trait::TearoffMenuItem::VERSION = '0.60';
}
use Moose::Role;

before '_process_options' => sub {
    my ( $class, $name, $opts ) = @_;
    $opts->{gclass} = 'Gapp::TearoffMenuItem' if ! exists $opts->{class};
};

package Moose::Meta::Attribute::Custom::Trait::GappTearoffMenuItem;
{
  $Moose::Meta::Attribute::Custom::Trait::GappTearoffMenuItem::VERSION = '0.60';
}
sub register_implementation { 'Gapp::Moose::Meta::Attribute::Trait::GappTearoffMenuItem' };
1;

lib/Gapp/Moose/Role.pm  view on Meta::CPAN

use Gapp::Moose::Meta::Attribute::Trait::GappFileChooserDialog;
use Gapp::Moose::Meta::Attribute::Trait::GappFileFilter;
use Gapp::Moose::Meta::Attribute::Trait::GappFrame;
use Gapp::Moose::Meta::Attribute::Trait::GappHBox;
use Gapp::Moose::Meta::Attribute::Trait::GappHButtonBox;
use Gapp::Moose::Meta::Attribute::Trait::GappImage;
use Gapp::Moose::Meta::Attribute::Trait::GappLabel;
use Gapp::Moose::Meta::Attribute::Trait::GappListStore;
use Gapp::Moose::Meta::Attribute::Trait::GappDefault;
use Gapp::Moose::Meta::Attribute::Trait::GappDialog;
use Gapp::Moose::Meta::Attribute::Trait::GappMenu;
use Gapp::Moose::Meta::Attribute::Trait::GappMenuBar;
use Gapp::Moose::Meta::Attribute::Trait::GappScrolledWindow;
use Gapp::Moose::Meta::Attribute::Trait::GappSpinButton;
use Gapp::Moose::Meta::Attribute::Trait::GappStatusIcon;
use Gapp::Moose::Meta::Attribute::Trait::GappTable;
use Gapp::Moose::Meta::Attribute::Trait::GappTextView;
use Gapp::Moose::Meta::Attribute::Trait::GappTimeEntry;
use Gapp::Moose::Meta::Attribute::Trait::GappToolbar;
use Gapp::Moose::Meta::Attribute::Trait::GappTreeView;
use Gapp::Moose::Meta::Attribute::Trait::GappUIManager;
use Gapp::Moose::Meta::Attribute::Trait::GappWindow;

lib/Gapp/RadioMenuItem.pm  view on Meta::CPAN

package Gapp::RadioMenuItem;
{
  $Gapp::RadioMenuItem::VERSION = '0.60';
}

use Moose;
use MooseX::StrictConstructor;
use MooseX::SemiAffordanceAccessor;

extends 'Gapp::CheckMenuItem';
with 'Gapp::Meta::Widget::Native::Role::FormField';

has '+gclass' => (
    default => 'Gtk2::RadioMenuItem',
);

has 'value' => (
    is => 'rw',
    isa => 'Str',
    default => '1',
);



lib/Gapp/RadioMenuItem.pm  view on Meta::CPAN


1;


__END__

=pod

=head1 NAME

Gapp::ImageMenuItem - ImageMenuItem Widget

=head1 OBJECT HIERARCHY

=over 4

=item L<Gapp::Widget>

=item +-- L<Gapp::MenuItem>

=item ....+-- L<Gapp::ImageMenuItem>

=back

=head2 Roles

=over 4

=item L<Gapp::Meta::Widget::Native::Role::HasIcon>

=item L<Gapp::Meta::Widget::Native::Role::HasImage>

lib/Gapp/SeparatorMenuItem.pm  view on Meta::CPAN

package Gapp::SeparatorMenuItem;
{
  $Gapp::SeparatorMenuItem::VERSION = '0.60';
}

use Moose;
use MooseX::SemiAffordanceAccessor;
extends 'Gapp::MenuItem';

has '+gclass' => (
    default => 'Gtk2::SeparatorMenuItem',
);

has '+constructor' => (
    default => 'new',
);

has '+args' => (
    default => undef,
);

lib/Gapp/SeparatorMenuItem.pm  view on Meta::CPAN

1;



__END__

=pod

=head1 NAME

Gapp::SeparatorMenuItem - SeparatorMenuItem Widget

=head1 OBJECT HIERARCHY

=over 4

=item L<Gapp::Object>

=item +-- L<Gapp::Widget>

=item ....+-- L<Gapp::MenuItem>

=item ........+-- L<Gapp::SeparatorMenuItem>

=back

=head1 AUTHORS

Jeffrey Ray Hallock E<lt>jeffrey.hallock at gmail dot comE<gt>

=head1 COPYRIGHT & LICENSE

    Copyright (c) 2011-2012 Jeffrey Ray Hallock.

lib/Gapp/TearoffMenuItem.pm  view on Meta::CPAN

package Gapp::TearoffMenuItem;
{
  $Gapp::TearoffMenuItem::VERSION = '0.60';
}

use Moose;
use MooseX::SemiAffordanceAccessor;

extends 'Gapp::MenuItem';

has '+gclass' => (
    default => 'Gtk2::TearoffMenuItem',
);

has '+constructor' => (
    default => 'new',
);

has '+args' => (
    default => sub { [ ] },
);


1;


__END__

=pod

=head1 NAME

Gapp::MenuItem - MenuItem Widget

=head1 OBJECT HIERARCHY

=over 4

=item L<Gapp::Object>

=item +-- L<Gapp::Widget>

=item ....+-- L<Gapp::Container>

=item ........+-- L<Gapp::Bin>

=item ............+-- L<Gapp::MenuItem>

=item ................+-- Gapp::TearoffMenuItem

=back


=head1 AUTHORS

Jeffrey Ray Hallock E<lt>jeffrey.hallock at gmail dot comE<gt>

=head1 COPYRIGHT & LICENSE



( run in 1.381 second using v1.01-cache-2.11-cpan-49f99fa48dc )