JaM
view release on metacpan or search on metacpan
lib/JaM/GUI/Compose.pm view on Meta::CPAN
$vbox_body->pack_start ($body, 1, 1, 0);
$win->set_position ("center");
$win->set_title ("Compose a message");
$win->border_width(3);
$win->set_default_size (600, 700);
$win->realize;
$win->signal_connect ("delete-event", sub { $self->close_window } );
$self->gtk_to_entries->[0]->grab_focus;
$self->attachments([]);
$self->additional_headers([]);
$win->show;
1;
}
sub create_toolbar {
my $self = shift; $self->trace_in;
my $toolbar = Gtk::Toolbar->new ( 'horizontal', 'text' );
$toolbar->set_space_size( 3 );
$toolbar->set_space_style( 'empty' );
$toolbar->set_button_relief( 'none' );
$toolbar->border_width( 0 );
my $label = $self->save_as_template ?
'Save As Template' : 'Send Message';
my $tooltip = $self->save_as_template ?
'Save as template' : 'Send message';
my $send_button = $toolbar->append_item (
$label, $tooltip, undef, undef
);
$send_button->signal_connect ("clicked", sub { $self->cb_send_button } );
$toolbar->show();
$self->gtk_toolbar ($toolbar);
return $toolbar;
}
sub create_menubar {
my $self = shift;
my @menu_items = (
{ path => '/_File',
type => '<Branch>' },
{ path => '/File/Send Message',
callback => sub { $self->cb_send_button }, },
{ path => '/File/Cancel Message',
callback => sub { $self->close_window }, },
{ path => '/_Edit',
type => '<Branch>' },
{ path => '/Edit/Cu_t',
accelerator => '<control>X',
callback => sub { $self->gtk_text->signal_emit_by_name( 'cut-clipboard' ) } },
{ path => '/Edit/_Copy',
accelerator => '<control>C',
callback => sub { $self->gtk_text->signal_emit_by_name( 'copy-clipboard' ) } },
{ path => '/Edit/_Paste',
accelerator => '<control>V',
callback => sub { $self->gtk_text->signal_emit_by_name( 'paste-clipboard' ) } },
{ path => '/Edit/sep1',
type => '<Separator>' },
{ path => '/Edit/Delete _Quoted text beneath cursor',
accelerator => '<control>Q',
callback => sub { $self->remove_quoted_text }, }
);
my $accel_group = Gtk::AccelGroup->new;
my $item_factory = Gtk::ItemFactory->new (
'Gtk::MenuBar',
'<main>',
$accel_group
);
$item_factory->create_items ( @menu_items );
$self->gtk_win->add_accel_group ( $accel_group );
my $menubar = $self->gtk_menubar ( $item_factory->get_widget( '<main>' ) );
$menubar->show;
return $menubar;
}
sub create_notebook {
my $self = shift; $self->trace_in;
my $to_sw = new Gtk::ScrolledWindow(undef, undef);
$to_sw->set_policy('never', 'automatic');
$to_sw->show;
my $to_vbox = Gtk::VBox->new (0,0);
$to_vbox->show;
$to_sw->add_with_viewport ($to_vbox);
$self->gtk_to_vbox ( $to_vbox);
$self->gtk_to_entries ([]);
$self->gtk_to_options ([]);
$self->to_header_choices ([]);
$self->add_recipient_widget;
my $notebook = Gtk::Notebook->new;
$notebook->set_tab_pos ('left');
$notebook->set_usize (undef, 100);
my $to_label = Gtk::Label->new("To");
$to_label->show;
$notebook->append_page ($to_sw, $to_label);
my $attach = $self->create_attachments;
my $attach_label = Gtk::Label->new ("Attach");
$attach->show;
$notebook->append_page ($attach, $attach_label);
$notebook->show;
$self->gtk_notebook($notebook);
$self->gtk_to_sw ($to_sw);
return $notebook;
}
( run in 0.585 second using v1.01-cache-2.11-cpan-2398b32b56e )