2 // System.Windows.Forms.PictureBox
5 // Joel Basson (jstrike@mweb.co.za)
11 namespace System
.Windows
.Forms
{
14 /// Represents a Windows PictureBox control.
18 public class PictureBox
: Control
{
21 int height
, width
, dwidth
, dheight
;
22 Gdk
.Pixbuf pic1
, pic2
;
25 public PictureBox () : base ()
29 internal override Gtk
.Widget
CreateWidget () {
30 Gtk
.Image ibox
= new Gtk
.Image();
37 Gdk
.Pixbuf pic1
= new Gdk
.Pixbuf(filevalue
);
38 ((Gtk
.Image
)Widget
).Pixbuf
= pic1
;
42 public PictureBoxSizeMode SizeMode
{
44 if (value == PictureBoxSizeMode
.StretchImage
){
47 if (value == PictureBoxSizeMode
.Normal
){
50 if (value == PictureBoxSizeMode
.CenterImage
){
53 if (value == PictureBoxSizeMode
.AutoSize
){
59 private void Stretch () {
61 Gdk
.Pixbuf pic1
= new Gdk
.Pixbuf(filevalue
);
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
);
89 ((Gtk
.Image
)Widget
).HeightRequest
= height
;
90 ((Gtk
.Image
)Widget
).WidthRequest
= width
;
91 ((Gtk
.Image
)Widget
).Pixbuf
= pic1
;