]> ruin.nu Git - moosique.git/blobdiff - MooGUI.java
inte helt klar
[moosique.git] / MooGUI.java
index 32285ac5191375271ec0ba593f2dddfb8cb45ac6..b1bbf0d8b3e6aafed3dbee05570346fcdc7859f8 100644 (file)
@@ -2,6 +2,7 @@ import javax.sound.midi.*;
 import javax.swing.*;
 import java.awt.*;
 import java.awt.event.*;
+import java.util.*;
 
 /**
  * Moosique's graphical user interface.
@@ -16,6 +17,8 @@ public class MooGUI extends JFrame {
        private MooToolbar toolbar;
        private MooView view;
        private JLabel statusBar;
+       private java.util.Timer timer;
+       public static final int statusResetDelay = 3000;
        public static final Font FONT = new Font("Helvetica", Font.PLAIN, 10);
        public static final Color bgColor = new Color(192, 224, 255);
        
@@ -55,6 +58,9 @@ public class MooGUI extends JFrame {
                statusBar.setBackground(bgColor);
                view.setBackground(bgColor);
 
+               // Creates timer.
+               timer = new java.util.Timer();
+
                // Sets up global key listener
                ActionMap am = getRootPane().getActionMap();
 
@@ -75,6 +81,7 @@ public class MooGUI extends JFrame {
                // Configures window.
                addWindowListener(new MooGUICloser());
                pack();
+               setIconImage(Toolkit.getDefaultToolkit().getImage("images/moose.gif"));
                Dimension bounds = Toolkit.getDefaultToolkit().getScreenSize();
                setSize(bounds.width,bounds.height - 40);
                setLocation(0, 0);
@@ -99,6 +106,7 @@ public class MooGUI extends JFrame {
        public void setSequence(Sequence sequence) {
                seq = sequence;
                view.setTracks(seq.getTracks());
+               toolbar.resetProgInd();
        }
 
        /** 
@@ -107,15 +115,16 @@ public class MooGUI extends JFrame {
         */
        public void setStatus(String text) {
                statusBar.setText(text);
+               timer.schedule(new StatusResetTask(), statusResetDelay);
        }
 
        /**
         * Calls on the main view to update the track views,
         * and on the toolbar to update the progress indicator.
         */
-       public void update(){
-               view.update();
-               toolbar.updateProgInd();
+       public void update(long tickPosition){
+               view.update(tickPosition);
+               toolbar.updateProgInd(tickPosition);
        }
 
        class MooGUICloser extends WindowAdapter {
@@ -123,4 +132,10 @@ public class MooGUI extends JFrame {
                        Moosique.quit();
                }
        }
+       
+       class StatusResetTask extends TimerTask {
+               public void run() {
+                       setStatus(" ");
+               }
+       }
 }