49 lines
1.5 KiB
Java
49 lines
1.5 KiB
Java
package io.gitlab.jfronny.inceptum.gtk.control;
|
|
|
|
import io.gitlab.jfronny.inceptum.launcher.system.instance.Instance;
|
|
import org.gtk.gtk.*;
|
|
|
|
import java.lang.foreign.Addressable;
|
|
|
|
public class InstanceThumbnail extends Stack {
|
|
private static final String SPINNER = "spinner";
|
|
private static final String IMAGE = "image";
|
|
private static final String GENERIC = "generic";
|
|
|
|
private InstanceThumbnail(Addressable address) {
|
|
super(address);
|
|
}
|
|
|
|
public static InstanceThumbnail castFrom(Stack stack) {
|
|
return new InstanceThumbnail(stack.handle());
|
|
}
|
|
|
|
public InstanceThumbnail() {
|
|
super();
|
|
var spinner = new Spinner();
|
|
var image = new Image();
|
|
var generic = new Image();
|
|
spinner.name = SPINNER;
|
|
image.name = IMAGE;
|
|
generic.name = GENERIC;
|
|
generic.setFromIconName("media-playback-start-symbolic"); //TODO better default icon
|
|
addNamed(spinner, SPINNER);
|
|
addNamed(image, IMAGE);
|
|
addNamed(generic, GENERIC);
|
|
}
|
|
|
|
public void bind(Instance entry) {
|
|
var spinner = (Spinner) getChildByName(SPINNER);
|
|
var image = (Image) getChildByName(IMAGE); //TODO
|
|
var generic = (Image) getChildByName(GENERIC);
|
|
//TODO mark instance being played
|
|
if (entry.isSetupLocked) {
|
|
visibleChild = spinner;
|
|
} else if (false) { // if the instance has an image, load the image data and set it as the visible child
|
|
visibleChild = image;
|
|
} else {
|
|
visibleChild = generic;
|
|
}
|
|
}
|
|
}
|