Inceptum/launcher-gtk/src/main/java/io/gitlab/jfronny/inceptum/gtk/control/InstanceThumbnail.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;
}
}
}