]> ruin.nu Git - moosique.git/blobdiff - MooGUI.java
font settings..
[moosique.git] / MooGUI.java
index b1bbf0d8b3e6aafed3dbee05570346fcdc7859f8..4c008f4d2e500504b09d2c11111deb3101488bb0 100644 (file)
@@ -24,11 +24,13 @@ public class MooGUI extends JFrame {
        
        /** 
         * Creates the GUI.
+        * @param seq The sequence that the program is operating on.
         */
        public MooGUI(Sequence seq) {
                super("Moosique");
 
                this.seq = seq;
+               advanceStatus();
                
                Container pane = getContentPane();
                pane.setLayout(new BoxLayout(pane, BoxLayout.Y_AXIS));
@@ -36,10 +38,12 @@ public class MooGUI extends JFrame {
                // Adds menu bar.
                menu = new MooMenu();
                setJMenuBar(menu);
+               advanceStatus();
 
                // Adds toolbar.
                toolbar = new MooToolbar();
                pane.add(toolbar, BorderLayout.NORTH);
+               advanceStatus();
 
                // Adds main view.
                view = new MooView(seq.getTracks());
@@ -61,7 +65,7 @@ public class MooGUI extends JFrame {
                // Creates timer.
                timer = new java.util.Timer();
 
-               // Sets up global key listener
+               // Sets up global key listener.
                ActionMap am = getRootPane().getActionMap();
 
                Action playAction = new AbstractAction() {
@@ -73,10 +77,23 @@ public class MooGUI extends JFrame {
                                }
                        }};
                am.put("Play", playAction);
+               am.put("Octave change 2", createOctaveAction(2));
+               am.put("Octave change 4", createOctaveAction(4));
+               am.put("Octave change 6", createOctaveAction(6));
+               am.put("Octave change 8", createOctaveAction(8));
 
                InputMap im = getRootPane().getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
                KeyStroke playKey = KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, 0);
+               KeyStroke octave2Key = KeyStroke.getKeyStroke(KeyEvent.VK_F9, 0);
+               KeyStroke octave4Key = KeyStroke.getKeyStroke(KeyEvent.VK_F10, 0);
+               KeyStroke octave6Key = KeyStroke.getKeyStroke(KeyEvent.VK_F11, 0);
+               KeyStroke octave8Key = KeyStroke.getKeyStroke(KeyEvent.VK_F12, 0);
                im.put(playKey, "Play");
+               im.put(octave2Key, "Octave change 2");
+               im.put(octave4Key, "Octave change 4");
+               im.put(octave6Key, "Octave change 6");
+               im.put(octave8Key, "Octave change 8");
+               advanceStatus();
 
                // Configures window.
                addWindowListener(new MooGUICloser());
@@ -85,12 +102,16 @@ public class MooGUI extends JFrame {
                Dimension bounds = Toolkit.getDefaultToolkit().getScreenSize();
                setSize(bounds.width,bounds.height - 40);
                setLocation(0, 0);
-               // setResizable(false);
                setBackground(Color.white);
+               advanceStatus();
                setVisible(true);
                show();
        }
 
+       /**
+        * Sets the background on Containers
+        * @param c the Container that will have it's background change
+        */
        private void setBackground(Container c) {
                c.setBackground(bgColor);
                Component[] comps = c.getComponents();
@@ -105,7 +126,7 @@ public class MooGUI extends JFrame {
         */
        public void setSequence(Sequence sequence) {
                seq = sequence;
-               view.setTracks(seq.getTracks());
+               view.setTracks(seq.getTracks(), true);
                toolbar.resetProgInd();
        }
 
@@ -127,12 +148,34 @@ public class MooGUI extends JFrame {
                toolbar.updateProgInd(tickPosition);
        }
 
+       /**
+        * Creates an action for a specific octave.
+        * @param octave The octave we want an action for.
+        */
+       private Action createOctaveAction(final int octave) {
+               Action octaveAction = new AbstractAction() {
+                       public void actionPerformed(ActionEvent ae) {
+                               MooKeyboard.setOctave(octave);
+                       }};
+               return octaveAction;
+       }
+
+       private void advanceStatus() {
+               System.out.print(".");
+       }
+
+       /**
+        * Listener for closing the program
+        */
        class MooGUICloser extends WindowAdapter {
                public void windowClosing(WindowEvent e) {
                        Moosique.quit();
                }
        }
        
+       /**
+        * TimerTask that resets the statusbar
+        */
        class StatusResetTask extends TimerTask {
                public void run() {
                        setStatus(" ");