// my vars (def)
public Gee.ArrayList<Xcls_fileitem> fileitems;
+ public Gdk.Pixbuf missing_thumb_pixbuf;
public signal void open (JsRender.JsRender file);
// ctor
this.el = new Clutter.ScrollActor();
// my vars (dec)
+ this.missing_thumb_pixbuf = null;
// set gobject values
this.el.scroll_mode = Clutter.ScrollMode.VERTICALLY;
}
public class Xcls_image : Object
{
- public Clutter.Image el;
+ public Clutter.Actor el;
private Xcls_ClutterFiles _this;
public Xcls_image(Xcls_ClutterFiles _owner , JsRender.JsRender file)
{
_this = _owner;
- this.el = new Clutter.Image();
+ this.el = new Clutter.Actor();
// my vars (dec)
// set gobject values
+ this.el.margin_right = 5f;
+ this.el.margin_left = 5f;
+ this.el.x_align = Clutter.ActorAlign.START;
+ this.el.x_expand = true;
+ this.el.y_align = Clutter.ActorAlign.START;
+ this.el.margin_top = 5f;
+ this.el.y_expand = true;
// init method
{
- var pixbuf = new Gdk.Pixbuf.from_file(file.getIconFileName(true));
- this.el.set_data(pixbuf.get_pixels(),
- pixbuf.has_alpha ()
+ Gdk.Pixbuf pixbuf;
+ var fname = file.getIconFileName(false);
+
+ if (FileUtils.test(fname, FileTest.EXISTS)) {
+ pixbuf = new Gdk.Pixbuf.from_file(fname);
+ } else {
+ if (_this.missing_thumb_pixbuf == null) {
+ var icon_theme = Gtk.IconTheme.get_default ();
+ _this.missing_thumb_pixbuf = icon_theme.load_icon ("package-x-generic", 92, 0);
+ _this.missing_thumb_pixbuf.ref();
+ }
+ pixbuf = _this.missing_thumb_pixbuf;
+
+ }
+
+ var img = new Clutter.Image();
+ img.set_data(pixbuf.get_pixels(),
+ pixbuf.has_alpha
? Cogl.PixelFormat.RGBA_8888
: Cogl.PixelFormat.RGB_888,
pixbuf.get_width (),
pixbuf.get_height (),
pixbuf.get_rowstride ()
);
+ this.el.set_content(img);
+ // should probably do smarter scaling...
+
+
+ this.el.set_size(90, 70);
} }
// user defined functions