altosui/telegps: Undo the frequency/telemetry menu changes
[fw/altos] / telegps / TeleGPS.java
index f765ee23e0d1a616917496abb8ec35de57e24cf2..7e5ff42aa86c0696445c719da12e2745980dac06 100644 (file)
@@ -58,7 +58,7 @@ public class TeleGPS
        JMenu                   file_menu;
        JMenu                   monitor_menu;
        JMenu                   device_menu;
-       AltosFreqList           frequencies;
+       AltosUIFreqList         frequencies;
        ActionListener          frequency_listener;
 
        Container               bag;
@@ -351,18 +351,17 @@ public class TeleGPS
                frequencies.set_product("Monitor");
                frequencies.set_serial(serial);
                frequencies.set_frequency(AltosUIPreferences.frequency(serial));
+               frequencies.setEnabled(true);
 
-               menu_bar.add(frequencies);
-               menu_bar.repaint();
        }
 
        void disable_frequency_menu() {
-               if (frequency_listener == null)
-                       return;
-               frequencies.removeActionListener(frequency_listener);
-               menu_bar.remove(frequencies);
-               menu_bar.repaint();
-               frequency_listener = null;
+               if (frequency_listener != null) {
+                       frequencies.removeActionListener(frequency_listener);
+                       frequencies.setEnabled(false);
+                       frequency_listener = null;
+               }
+
        }
 
        public void set_reader(AltosFlightReader reader, AltosDevice device) {
@@ -410,16 +409,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();
@@ -435,7 +456,16 @@ public class TeleGPS
                file_menu = make_menu("File", file_menu_entries);
                monitor_menu = make_menu("Monitor", monitor_menu_entries);
                device_menu = make_menu("Device", device_menu_entries);
-               frequencies = new AltosFreqList();
+
+               frequencies = new AltosUIFreqList();
+               frequencies.setEnabled(false);
+               c.gridx = 0;
+               c.gridy = 0;
+               c.fill = GridBagConstraints.NONE;
+               c.anchor = GridBagConstraints.WEST;
+               c.weightx = 0;
+               c.gridwidth = 1;
+               bag.add(frequencies, c);
 
                displays = new LinkedList<AltosFlightDisplay>();