Index: AE/installer2/src/net/oni2/aeinstaller/gui/MainWin.java
===================================================================
--- AE/installer2/src/net/oni2/aeinstaller/gui/MainWin.java	(revision 592)
+++ AE/installer2/src/net/oni2/aeinstaller/gui/MainWin.java	(revision 593)
@@ -10,6 +10,9 @@
 
 import javax.swing.JComboBox;
+import javax.swing.JComponent;
 import javax.swing.JFrame;
 import javax.swing.JLabel;
+import javax.swing.JMenu;
+import javax.swing.JOptionPane;
 import javax.swing.JSplitPane;
 import javax.swing.JTable;
@@ -23,4 +26,5 @@
 
 import net.oni2.aeinstaller.backend.Settings;
+import net.oni2.aeinstaller.backend.Settings.Platform;
 import net.oni2.aeinstaller.backend.depot.DepotCacheUpdateProgressListener;
 import net.oni2.aeinstaller.backend.depot.DepotConfig;
@@ -29,4 +33,5 @@
 import net.oni2.aeinstaller.backend.depot.model.TaxonomyTerm;
 import net.oni2.aeinstaller.backend.depot.model.TaxonomyVocabulary;
+import net.oni2.aeinstaller.gui.about.AboutDialog;
 import net.oni2.aeinstaller.gui.modtable.ModTableFilter;
 import net.oni2.aeinstaller.gui.modtable.ModTableModel;
@@ -37,9 +42,11 @@
 import org.javabuilders.event.BackgroundEvent;
 import org.javabuilders.swing.SwingJavaBuilder;
+import org.simplericity.macify.eawt.ApplicationEvent;
+import org.simplericity.macify.eawt.ApplicationListener;
 
 /**
  * @author Christian Illy
  */
-public class MainWin extends JFrame {
+public class MainWin extends JFrame implements ApplicationListener {
 	private static final long serialVersionUID = -4027395051382659650L;
 
@@ -48,4 +55,6 @@
 	@SuppressWarnings("unused")
 	private BuildResult result = SwingJavaBuilder.build(this, bundle);
+
+	private JMenu mainMenu;
 
 	private JSplitPane contents;
@@ -66,10 +75,15 @@
 	 */
 	public MainWin() {
-		this.setTitle(bundle.getString("frame.title") + " - v"
-				+ bundle.getString("version"));
+		this.setTitle(SwingJavaBuilder.getConfig().getResource("appname")
+				+ " - v"
+				+ SwingJavaBuilder.getConfig().getResource("appversion"));
 
 		contents.setDividerLocation(400);
 		initTable();
 		initModTypeBox();
+
+		if (Settings.getPlatform() == Platform.MACOS) {
+			mainMenu.setVisible(false);
+		}
 	}
 
@@ -115,4 +129,8 @@
 				});
 
+		// To get checkbox-cells with background of row
+		((JComponent) tblMods.getDefaultRenderer(Boolean.class))
+				.setOpaque(true);
+
 		model = new ModTableModel();
 
@@ -148,5 +166,12 @@
 	}
 
-	@SuppressWarnings("unused")
+	private boolean askClose() {
+		int res = JOptionPane.showConfirmDialog(this,
+				bundle.getString("askClose.text"),
+				bundle.getString("askClose.title"), JOptionPane.YES_NO_OPTION,
+				JOptionPane.QUESTION_MESSAGE);
+		return res == JOptionPane.YES_OPTION;
+	}
+
 	private boolean closeFrames() {
 		System.gc();
@@ -158,5 +183,4 @@
 	}
 
-	@SuppressWarnings("unused")
 	private void exit() {
 		setVisible(false);
@@ -164,5 +188,4 @@
 	}
 
-	@SuppressWarnings("unused")
 	private void saveLocalData() {
 		Settings.getInstance().serializeToFile();
@@ -213,8 +236,41 @@
 	}
 
-	@SuppressWarnings("unused")
 	private void showSettings() {
-		SettingsDialog.openWindow();
-	}
+		new SettingsDialog().setVisible(true);
+	}
+
+	private void showAbout() {
+		new AboutDialog().setVisible(true);
+	}
+
+	@SuppressWarnings("unused")
+	private void loadConfig() {
+		// TODO Auto-generated method stub
+		JOptionPane.showMessageDialog(this, "loadConfig", "todo",
+				JOptionPane.INFORMATION_MESSAGE);
+	}
+
+	@SuppressWarnings("unused")
+	private void saveConfig() {
+		// TODO Auto-generated method stub
+		JOptionPane.showMessageDialog(this, "saveConfig", "todo",
+				JOptionPane.INFORMATION_MESSAGE);
+	}
+
+	@SuppressWarnings("unused")
+	private void reglobalize() {
+		// TODO Auto-generated method stub
+		JOptionPane.showMessageDialog(this, "reglobalize", "todo",
+				JOptionPane.INFORMATION_MESSAGE);
+	}
+	
+	@SuppressWarnings("unused")
+	private void revertSelection() {
+		// TODO Auto-generated method stub
+		JOptionPane.showMessageDialog(this, "revertSelection", "todo",
+				JOptionPane.INFORMATION_MESSAGE);
+	}
+	
+	
 
 	private void modSelection(NodeMod n) {
@@ -243,3 +299,42 @@
 			sorter.setRowFilter(new ModTableFilter(-1));
 	}
+
+	@Override
+	public void handleAbout(ApplicationEvent event) {
+		event.setHandled(true);
+		showAbout();
+	}
+
+	@Override
+	public void handleOpenApplication(ApplicationEvent event) {
+	}
+
+	@Override
+	public void handleOpenFile(ApplicationEvent event) {
+	}
+
+	@Override
+	public void handlePreferences(ApplicationEvent event) {
+		showSettings();
+	}
+
+	@Override
+	public void handlePrintFile(ApplicationEvent event) {
+	}
+
+	@Override
+	public void handleQuit(ApplicationEvent event) {
+		if (askClose()) {
+			event.setHandled(true);
+			closeFrames();
+			saveLocalData();
+			exit();
+		} else {
+			event.setHandled(false);
+		}
+	}
+
+	@Override
+	public void handleReOpenApplication(ApplicationEvent event) {
+	}
 }
