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 )