package org.herac.tuxguitar.cocoa.modifiedmarker; import org.eclipse.swt.internal.cocoa.NSWindow; import org.eclipse.swt.widgets.Shell; import org.herac.tuxguitar.gui.TuxGuitar; import org.herac.tuxguitar.gui.editors.TGUpdateListener; public class ModifiedMarker implements TGUpdateListener { private boolean enabled; public ModifiedMarker(){ super(); } /** From 'TGUpdateListener' */ public void doUpdate( int type ){ if (!enabled) return; final boolean isEdited = TuxGuitar.instance().getFileHistory().isUnsavedFile(); setFrameState( isEdited ); } public void init() throws Throwable{ TuxGuitar.instance().getEditorManager().addUpdateListener(this); } public boolean isEnabled() { return this.enabled; } public void setEnabled(boolean enabled) { this.enabled = enabled; if (!enabled) setFrameState(false); } private void setFrameState(boolean modified) { Shell shell = TuxGuitar.instance().getShell(); NSWindow nsWindow = shell.view.window(); nsWindow.setDocumentEdited(modified); } }