**** Merged from MCS ****
[mono-project.git] / mcs / class / System.Windows.Forms / Gtk / PictureBox.cs
blob0c53fa24afc90d284085c7b4ce9ac8ab4257d472
1 //
2 // System.Windows.Forms.PictureBox
3 //
4 // Author:
5 // Joel Basson (jstrike@mweb.co.za)
6 //
7 //
9 using System.Drawing;
11 namespace System.Windows.Forms {
13 /// <summary>
14 /// Represents a Windows PictureBox control.
15 ///
16 /// </summary>
18 public class PictureBox: Control{
20 bool stretch;
21 int height, width, dwidth, dheight;
22 Gdk.Pixbuf pic1, pic2;
23 string filevalue;
25 public PictureBox () : base ()
29 internal override Gtk.Widget CreateWidget () {
30 Gtk.Image ibox = new Gtk.Image();
31 return ibox;
34 public string File {
35 set {
36 filevalue = value;
37 Gdk.Pixbuf pic1 = new Gdk.Pixbuf(filevalue);
38 ((Gtk.Image)Widget).Pixbuf = pic1;
42 public PictureBoxSizeMode SizeMode {
43 set{
44 if (value == PictureBoxSizeMode.StretchImage){
45 Stretch();
47 if (value == PictureBoxSizeMode.Normal){
48 Normal();
50 if (value == PictureBoxSizeMode.CenterImage){
51 CenterImage();
53 if (value == PictureBoxSizeMode.AutoSize){
54 AutoSize();
59 private void Stretch () {
61 Gdk.Pixbuf pic1 = new Gdk.Pixbuf(filevalue);
62 height = pic1.Height;
63 width = pic1.Width;
64 dheight = ((Gtk.Image)Widget).HeightRequest;
65 dwidth = ((Gtk.Image)Widget).WidthRequest;
66 ((Gtk.Image)Widget).Pixbuf = pic1.ScaleSimple(dwidth, dheight, Gdk.InterpType.Bilinear);
70 private void Normal () {
72 Gdk.Pixbuf pic1 = new Gdk.Pixbuf(filevalue);
73 ((Gtk.Image)Widget).Pixbuf = pic1;
74 ((Gtk.Image)Widget).SetAlignment(0, 1);
77 private void CenterImage () {
79 Gdk.Pixbuf pic1 = new Gdk.Pixbuf(filevalue);
80 ((Gtk.Image)Widget).Pixbuf = pic1;
81 ((Gtk.Image)Widget).SetAlignment((float)0.5, (float)0.5);
84 private void AutoSize () {
86 Gdk.Pixbuf pic1 = new Gdk.Pixbuf(filevalue);
87 height = pic1.Height;
88 width = pic1.Width;
89 ((Gtk.Image)Widget).HeightRequest = height;
90 ((Gtk.Image)Widget).WidthRequest = width;
91 ((Gtk.Image)Widget).Pixbuf = pic1;