GtkSharp/sample/PrintSample.cs
Mike Kestner 7f3171c814 merge to HEAD of jeroen and friends' work on the 2-4 branch. HEAD
is now tracking Gnome 2.6.

svn path=/trunk/gtk-sharp/; revision=35479
2004-10-29 20:33:07 +00:00

80 lines
1.5 KiB
C#

using System;
using Gtk;
using Gnome;
class PrintSample
{
TextView tv;
static void Main ()
{
new PrintSample ();
}
PrintSample ()
{
Application.Init ();
Gtk.Window win = new Gtk.Window ("Print sample");
win.SetDefaultSize (400, 300);
win.DeleteEvent += new DeleteEventHandler (OnWinDelete);
VBox vbox = new VBox (false, 0);
win.Add (vbox);
tv = new TextView ();
tv.Buffer.Text = "Hello World";
vbox.PackStart (tv, true, true, 0);
Button print = new Button (Gtk.Stock.Print);
print.Clicked += new EventHandler (OnPrintClicked);
vbox.PackStart (print, false, true, 0);
win.ShowAll ();
Application.Run ();
}
void MyPrint (PrintContext gpc)
{
gpc.BeginPage ("demo");
gpc.MoveTo (1, 700);
gpc.Show (tv.Buffer.Text);
gpc.ShowPage ();
}
void OnPrintClicked (object o, EventArgs args)
{
PrintJob pj = new PrintJob (PrintConfig.Default ());
PrintDialog dialog = new PrintDialog (pj, "Print Test", 0);
int response = dialog.Run ();
Console.WriteLine ("response: " + response);
if (response == (int) PrintButtons.Cancel) {
Console.WriteLine ("Canceled");
dialog.Hide ();
dialog.Dispose ();
return;
}
PrintContext ctx = pj.Context;
MyPrint (ctx);
pj.Close ();
switch (response) {
case (int) PrintButtons.Print:
pj.Print ();
break;
case (int) PrintButtons.Preview:
new PrintJobPreview (pj, "Print Test").Show ();
break;
}
dialog.Hide ();
dialog.Dispose ();
}
void OnWinDelete (object o, DeleteEventArgs args)
{
Application.Quit ();
}
}