Description: Rip out MRJAdapter from Logisim's source
 MRJAdapter is only useful on Mac OS X and with Apple's JVM; it's not
 available in Debian anyways and makes logisim FTBFS, so let's get rid of it.
Forwarded: not-needed
Author: Vincent Cheng <Vincentc1208@gmail.com>
Last-Update: 05-06-2012

--- a/src/com/cburch/logisim/gui/start/MacOsAdapter.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/* Copyright (c) 2010, Carl Burch. License information is located in the
- * com.cburch.logisim.Main source code and at www.cburch.com/logisim/. */
-
-package com.cburch.logisim.gui.start;
-
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-//MAC import java.io.File;
-
-import net.roydesign.event.ApplicationEvent;
-import net.roydesign.mac.MRJAdapter;
-
-//MAC import com.apple.eawt.Application;
-//MAC import com.apple.eawt.ApplicationAdapter;
-import com.cburch.logisim.gui.prefs.PreferencesFrame;
-import com.cburch.logisim.proj.ProjectActions;
-
-class MacOsAdapter { //MAC extends ApplicationAdapter {
-	
-	private static class MyListener implements ActionListener {
-		public void actionPerformed(ActionEvent event) {
-			ApplicationEvent event2 = (ApplicationEvent) event;
-			int type = event2.getType();
-			switch (type) {
-			case ApplicationEvent.ABOUT:
-				About.showAboutDialog(null);
-				break;
-			case ApplicationEvent.QUIT_APPLICATION:
-				ProjectActions.doQuit();
-				break;
-			case ApplicationEvent.OPEN_DOCUMENT:
-				Startup.doOpen(event2.getFile());
-				break;
-			case ApplicationEvent.PRINT_DOCUMENT:
-				Startup.doPrint(event2.getFile());
-				break;
-			case ApplicationEvent.PREFERENCES:
-				PreferencesFrame.showPreferences();
-				break;
-			}
-		}
-	}
-	
-	static void addListeners(boolean added) {
-		MyListener myListener = new MyListener();
-		if (!added) MRJAdapter.addOpenDocumentListener(myListener);
-		if (!added) MRJAdapter.addPrintDocumentListener(myListener);
-		MRJAdapter.addPreferencesListener(myListener);
-		MRJAdapter.addQuitApplicationListener(myListener);
-		MRJAdapter.addAboutListener(myListener);
-	}
-	
-	/* MAC
-	public void handleOpenFile(com.apple.eawt.ApplicationEvent event) {
-		Startup.doOpen(new File(event.getFilename()));
-	}
-	
-	public void handlePrintFile(com.apple.eawt.ApplicationEvent event) {
-		Startup.doPrint(new File(event.getFilename()));
-	}
-	
-	public void handlePreferences(com.apple.eawt.ApplicationEvent event) {
-		PreferencesFrame.showPreferences();
-	}
-	*/
-	
-	public static void register() {
-		//MAC Application.getApplication().addApplicationListener(new MacOsAdapter());
-	}
-}
\ No newline at end of file
--- a/src/com/cburch/logisim/util/MacCompatibility.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/* Copyright (c) 2010, Carl Burch. License information is located in the
- * com.cburch.logisim.Main source code and at www.cburch.com/logisim/. */
-
-package com.cburch.logisim.util;
-
-import java.io.File;
-import java.io.IOException;
-
-import javax.swing.JMenuBar;
-
-import net.roydesign.mac.MRJAdapter;
-
-public class MacCompatibility {
-	private MacCompatibility() { }
-
-	public static final double mrjVersion;
-	
-	static {
-		double versionValue;
-		try {
-			versionValue = MRJAdapter.mrjVersion;
-		} catch (Throwable t) {
-			versionValue = 0.0;
-		}
-		mrjVersion = versionValue;
-	}
-	
-	public static boolean isAboutAutomaticallyPresent() {
-		try {
-			return MRJAdapter.isAboutAutomaticallyPresent();
-		} catch (Throwable t) {
-			return false;
-		}
-	}
-	
-	public static boolean isPreferencesAutomaticallyPresent() {
-		try {
-			return MRJAdapter.isPreferencesAutomaticallyPresent();
-		} catch (Throwable t) {
-			return false;
-		}
-	}
-	
-	public static boolean isQuitAutomaticallyPresent() {
-		try {
-			return MRJAdapter.isQuitAutomaticallyPresent();
-		} catch (Throwable t) {
-			return false;
-		}
-	}
-	
-	public static boolean isSwingUsingScreenMenuBar() {
-		try {
-			return MRJAdapter.isSwingUsingScreenMenuBar();
-		} catch (Throwable t) {
-			return false;
-		}
-	}
-	
-	public static void setFramelessJMenuBar(JMenuBar menubar) {
-		try {
-			MRJAdapter.setFramelessJMenuBar(menubar);
-		} catch (Throwable t) { }
-	}
-	
-	public static void setFileCreatorAndType(File dest, String app, String type)
-			throws IOException {
-		IOException ioExcept = null;
-		try {
-			try {
-				MRJAdapter.setFileCreatorAndType(dest, app, type);
-			} catch (IOException e) {
-				ioExcept = e;
-			}
-		} catch (Throwable t) { }
-		if (ioExcept != null) throw ioExcept;
-	}
-
-}
--- a/src/com/cburch/logisim/util/WindowMenu.java
+++ b/src/com/cburch/logisim/util/WindowMenu.java
@@ -24,8 +24,7 @@
 			WindowMenu.this.setText(Strings.get("windowMenu"));
 			minimize.setText(Strings.get("windowMinimizeItem"));
 			close.setText(Strings.get("windowCloseItem"));
-			zoom.setText(MacCompatibility.isQuitAutomaticallyPresent() ?
-					Strings.get("windowZoomItemMac") : Strings.get("windowZoomItem"));
+			zoom.setText(Strings.get("windowZoomItem"));
 		}
 
 		public void actionPerformed(ActionEvent e) {
--- a/src/com/cburch/logisim/file/Loader.java
+++ b/src/com/cburch/logisim/file/Loader.java
@@ -22,7 +22,6 @@
 import com.cburch.logisim.std.Builtin;
 import com.cburch.logisim.tools.Library;
 import com.cburch.logisim.util.JFileChoosers;
-import com.cburch.logisim.util.MacCompatibility;
 import com.cburch.logisim.util.StringUtil;
 import com.cburch.logisim.util.ZipClassLoader;
 
@@ -185,9 +184,6 @@
 		
 		FileOutputStream fwrite = null;
 		try {
-			try {
-				MacCompatibility.setFileCreatorAndType(dest, "LGSM", "circ");
-			} catch (IOException e) { }
 			fwrite = new FileOutputStream(dest);
 			file.write(fwrite, this);
 			file.setName(toProjectName(dest));
--- a/src/com/cburch/logisim/proj/Projects.java
+++ b/src/com/cburch/logisim/proj/Projects.java
@@ -17,7 +17,6 @@
 
 import com.cburch.logisim.file.Loader;
 import com.cburch.logisim.gui.main.Frame;
-import com.cburch.logisim.util.MacCompatibility;
 import com.cburch.logisim.util.PropertyChangeWeakSupport;
 
 public class Projects {
@@ -59,7 +58,7 @@
 			if (frame == proj.getFrame()) {
 				projectRemoved(proj, frame, this);
 			}
-			if (openProjects.isEmpty() && !MacCompatibility.isSwingUsingScreenMenuBar()) {
+			if (openProjects.isEmpty()) {
 				ProjectActions.doQuit();
 			}
 		}
--- a/src/com/cburch/logisim/gui/menu/MenuHelp.java
+++ b/src/com/cburch/logisim/gui/menu/MenuHelp.java
@@ -5,7 +5,6 @@
 
 import com.cburch.logisim.gui.generic.LFrame;
 import com.cburch.logisim.gui.start.About;
-import com.cburch.logisim.util.MacCompatibility;
 
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
@@ -41,10 +40,9 @@
 		add(tutorial);
 		add(guide);
 		add(library);
-		if (!MacCompatibility.isAboutAutomaticallyPresent()) {
-			addSeparator();
-			add(about);
-		}
+		addSeparator();
+		add(about);
+		
 	}
 
 	public void localeChanged() {
--- a/src/com/cburch/logisim/gui/menu/MenuFile.java
+++ b/src/com/cburch/logisim/gui/menu/MenuFile.java
@@ -16,7 +16,6 @@
 import com.cburch.logisim.gui.prefs.PreferencesFrame;
 import com.cburch.logisim.proj.Project;
 import com.cburch.logisim.proj.ProjectActions;
-import com.cburch.logisim.util.MacCompatibility;
 
 class MenuFile extends Menu implements ActionListener {
 	private LogisimMenuBar menubar;
@@ -62,14 +61,10 @@
 		addSeparator();
 		add(exportImage);
 		add(print);
-		if (!MacCompatibility.isPreferencesAutomaticallyPresent()) {
-			addSeparator();
-			add(prefs);
-		}
-		if (!MacCompatibility.isQuitAutomaticallyPresent()) {
-			addSeparator();
-			add(quit);
-		}
+		addSeparator();
+		add(prefs);
+		addSeparator();
+		add(quit);
 
 		Project proj = menubar.getProject();
 		newi.addActionListener(this);
--- a/src/com/cburch/logisim/gui/start/Startup.java
+++ b/src/com/cburch/logisim/gui/start/Startup.java
@@ -24,7 +24,6 @@
 import com.cburch.logisim.proj.Project;
 import com.cburch.logisim.proj.ProjectActions;
 import com.cburch.logisim.util.LocaleManager;
-import com.cburch.logisim.util.MacCompatibility;
 import com.cburch.logisim.util.StringUtil;
 
 public class Startup {
@@ -61,13 +60,10 @@
 			if (needed1 == null) return;
 			Class<?> needed2 = Class.forName("com.apple.eawt.ApplicationAdapter");
 			if (needed2 == null) return;
-			MacOsAdapter.register();
-			MacOsAdapter.addListeners(true);
 		} catch (ClassNotFoundException e) {
 			return;
 		} catch (Throwable t) {
 			try {
-				MacOsAdapter.addListeners(false);
 			} catch (Throwable t2) { }
 		}
 	}
@@ -153,14 +149,10 @@
 		// interface initialization
 		if (showSplash) monitor.setProgress(SplashScreen.GUI_INIT);
 		WindowManagers.initialize();
-		if (MacCompatibility.isSwingUsingScreenMenuBar()) {
-			MacCompatibility.setFramelessJMenuBar(new LogisimMenuBar(null, null));
-		} else {
-			new LogisimMenuBar(null, null);
-			// most of the time occupied here will be in loading menus, which
-			// will occur eventually anyway; we might as well do it when the
-			// monitor says we are
-		}
+		new LogisimMenuBar(null, null);
+		// most of the time occupied here will be in loading menus, which
+		// will occur eventually anyway; we might as well do it when the
+		// monitor says we are
 
 		// if user has double-clicked a file to open, we'll
 		// use that as the file to open now.
--- a/src/com/cburch/logisim/gui/generic/CanvasPane.java
+++ b/src/com/cburch/logisim/gui/generic/CanvasPane.java
@@ -14,8 +14,6 @@
 import javax.swing.JScrollPane;
 import javax.swing.SwingConstants;
 
-import com.cburch.logisim.util.MacCompatibility;
-
 public class CanvasPane extends JScrollPane {
 	private class Listener implements ComponentListener, PropertyChangeListener {
 
@@ -59,10 +57,6 @@
 		this.contents = contents;
 		this.listener = new Listener();
 		this.zoomModel = null;
-		if (MacCompatibility.mrjVersion >= 0.0) {
-			setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
-			setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
-		}
 
 		addComponentListener(listener);
 		contents.setCanvasPane(this);
