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; } } }