macosx: Respond to apple messages in all apps
authorKeith Packard <keithp@keithp.com>
Wed, 18 Jun 2014 23:18:05 +0000 (16:18 -0700)
committerKeith Packard <keithp@keithp.com>
Wed, 18 Jun 2014 23:18:05 +0000 (16:18 -0700)
This connects the callbacks in AltosUIFrame to actually do something
useful with them.

Signed-off-by: Keith Packard <keithp@keithp.com>
altosui/AltosUI.java
micropeak/MicroPeak.java
telegps/TeleGPS.java

index 1eb0380..0aa5d03 100644 (file)
@@ -99,10 +99,25 @@ public class AltosUI extends AltosUIFrame {
                return b;
        }
 
+       /* OSXAdapter interfaces */
+       public void macosx_file_handler(String path) {
+               process_graph(new File(path));
+       }
+
+       public void macosx_quit_handler() {
+               System.exit(0);
+       }
+
+       public void macosx_preferences_handler() {
+               ConfigureAltosUI();
+       }
+
        public AltosUI() {
 
                load_library(null);
 
+               register_for_macosx_events();
+
                AltosUIPreferences.set_component(this);
 
                pane = getContentPane();
index d7d393b..8bdf4b7 100644 (file)
@@ -190,10 +190,25 @@ public class MicroPeak extends MicroFrame implements ActionListener, ItemListene
        public void itemStateChanged(ItemEvent e) {
        }
 
+       /* OSXAdapter interfaces */
+       public void macosx_file_handler(String path) {
+               CommandGraph(new File(path));
+       }
+
+       public void macosx_quit_handler() {
+               System.exit(0);
+       }
+
+       public void macosx_preferences_handler() {
+               Preferences();
+       }
+
        public MicroPeak() {
 
                ++number_of_windows;
 
+               register_for_macosx_events();
+
                AltosUIPreferences.set_component(this);
 
                container = getContentPane();
index f765ee2..e78c212 100644 (file)
@@ -410,16 +410,38 @@ public class TeleGPS
 
        private JMenu make_menu(String label, String[][] items) {
                JMenu   menu = new JMenu(label);
-               for (int i = 0; i < items.length; i++)
+               for (int i = 0; i < items.length; i++) {
+                       if (MAC_OS_X) {
+                               if (items[i][1].equals("exit"))
+                                       continue;
+                               if (items[i][1].equals("preferences"))
+                                       continue;
+                       }
                        add_menu(menu, items[i][0], items[i][1]);
+               }
                menu_bar.add(menu);
                return menu;
        }
 
+       /* OSXAdapter interfaces */
+       public void macosx_file_handler(String path) {
+               process_graph(new File(path));
+       }
+
+       public void macosx_quit_handler() {
+               System.exit(0);
+       }
+
+       public void macosx_preferences_handler() {
+               preferences();
+       }
+
        public TeleGPS() {
 
                AltosUIPreferences.set_component(this);
 
+               register_for_macosx_events();
+
                reader = null;
 
                bag = getContentPane();