!7 static class ChooseBackgroundImage > DynImageSurface { start { setImage(dm_loadBackgroundImage()); } visualize { ret withCenteredButtons(super.visualize(), "Use as background image", r { File f = putImageInDirectory_jpeg(getImage(), stefansOS_backgroundDir()); saveTextFile(stefansOS_backgroundFile(), f2s(f)); updateImage(); }, "Restore default image", r { deleteFile(stefansOS_backgroundFile()); set(dm_os(), background := dm_getOS('defaultBackground)); updateImage(); }); } void updateImage { infoBox("Background image changed!"); set(dm_desktopPane(), image := dm_loadBackgroundImage()); dm_desktopPane().repaint(); } }