Gapp

 view release on metacpan or  search on metacpan

ex/bigexample.pl  view on Meta::CPAN

                            'glitch.hop',
                            'dubstep',
                            'electro.house',
                        ]
                    ),
                    
                    Gapp::FormButtons->new,
                ],
            ),
        ],
        signal_connect => [
            ['gapp-form-apply' => sub {
                my ( $w, $args, $gtkw, $gtk_args ) = @_;
                $model->append_record
            }],
        ]
    );
}



action New => (
    label => 'New',
    tooltip => 'New Track',
    icon => 'gtk-add',
    code => sub {
        my ( $action, $w, $args, $gobj, $gargs ) = @_;
        
        my $form = build_form();
        $form->update;
        $form->show_all;
    }
);

action Edit => (
    label => 'Edit',
    mnemonic => '_Edit',
    tooltip => 'Edit Track',
    icon => 'gtk-edit',
    code => sub {
        my ( $action, $w, $args, $gobj, $gargs ) = @_;
        
        my $form = build_form();
        
        my $view = $w->toplevel->find('track-view');
        $ACTIVE_TRACK = $view->get_selected;
       
        $form->update;
        $form->show_all;
    }
);


$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(
                            name => 'track-view',
                            model => Gapp::Model::SimpleList->new(
                                content => \@tracks,
                            ),
                            columns => [
                                # name         title renderer  data-col  data-func
                                [ 'artist', 'Artist',  'text',        0,  'artist' ],
                                [ 'album' , 'Album' ,  'text',        0,  'album'  ],
                                [ '#'     , '#'     ,  'text',        0,  'number' ],
                                [ 'title' , 'Title' ,  'text',        0,  'title'  ],
                                [ 'year'  , 'Year'  ,  'text',        0,  'year'  ],
                                [ 'genre' , 'Genre' ,  'text',        0,  'genre'  ],
                            ],
                            signal_connect => [
                                [ 'row-activated' => Edit ]
                            ]
                        )
                    ]
                )
            ]
        ),
    ],
    signal_connect => [
        [ 'delete-event' => Quit ],
    ],
);

$browser->show_all;

Gapp->main;




( run in 1.181 second using v1.01-cache-2.11-cpan-39bf76dae61 )