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