7 public class ImageViewInfo
: IInfo
9 public override string Name
11 get { return Catalog.GetString("Image View"); }
14 public override string ShortName
16 get { return "ImgView"; }
19 public override string Author
21 get { return "Bartosz Taudul"; }
24 public override string Description
26 get { return Catalog.GetString("This plugin displays images it receives on input."); }
30 public class ImageViewFactory
: IFactory
32 IInfo _info
= new ImageViewInfo();
40 get { return IType.Out; }
43 public void Initialize()
47 public Plugin
.Base
Create()
49 return new ImageViewPlugin();
53 public class ImageViewPlugin
: Plugin
.Out
55 Gdk
.Pixbuf
[] images
= null;
56 Gdk
.Pixbuf
[] thumbs
= null;
60 public ImageViewPlugin()
62 _info
= new ImageViewInfo();
65 public override XmlNode Config
67 get { return GetConfig(); }
68 set { LoadConfig(value); }
71 private void UpdateValue(bool invert
)
78 public override void Setup()
80 new ImageSetup(invert
, UpdateValue
);
83 public override bool HasSetup
88 public override void DisplayResults()
91 throw new PluginException(Catalog
.GetString("Plugin is not ready to display images."));
93 new ImageViewWindow(images
, thumbs
, cat
);
96 public override void Work()
98 ICommImage socket
= (ICommImage
)_in
[0];
99 IImage
[] img
= socket
.Images
;
101 images
= new Gdk
.Pixbuf
[img
.Length
];
102 thumbs
= new Gdk
.Pixbuf
[img
.Length
];
103 cat
= socket
.Categories
;
107 for(int i
=0; i
<img
.Length
; i
++)
109 IImage _img
= new IImage(img
[i
].BPP
, img
[i
].W
, img
[i
].H
, img
[i
].Data
, invert
);
113 images
[i
] = _img
.CreatePixbuf();
116 scale
= _img
.W
/ 64.0;
118 scale
= _img
.H
/ 64.0;
120 thumbs
[i
] = images
[i
].ScaleSimple(Scale(_img
.W
, scale
), Scale(_img
.H
, scale
), Gdk
.InterpType
.Bilinear
);
126 private int Scale(int s
, double scale
)
128 int val
= (int)(s
/scale
);
136 private XmlNode
GetConfig()
138 XmlNode root
= _xmldoc
.CreateNode(XmlNodeType
.Element
, "config", "");
141 root
.InnerText
= "true";
143 root
.InnerText
= "false";
148 private void LoadConfig(XmlNode root
)
150 if(root
.InnerText
== "true")
156 public override int NumIn { get { return 1; }
}
158 public override string DescIn(int n
)
160 return Catalog
.GetString("Images to be viewed.");
163 private static string[] matchin
= new string[] { "image" }
;
164 public override string[] MatchIn { get { return matchin; }
}