From: Einar Pehrson Date: Sat, 10 May 2003 13:17:35 +0000 (+0000) Subject: Fixed some errors, updated the menu and toolbar. X-Git-Url: https://ruin.nu/git/?p=moosique.git;a=commitdiff_plain;h=0b4a03f1de77a6c0681d84fba600151f30eb724a Fixed some errors, updated the menu and toolbar. --- diff --git a/MooGUI.java b/MooGUI.java index 17a69c3..f0c108a 100644 --- a/MooGUI.java +++ b/MooGUI.java @@ -12,33 +12,41 @@ import java.awt.event.*; public class MooGUI extends JFrame implements WindowListener { private Sequence seq; + + private JPanel trackPanel; + private MooTrackView[] trackViews; private JLabel statusBar; - // private MooView view; + + public static Font standardFont = new Font("Helvetica", Font.PLAIN, 10); /** * Creates the GUI. */ public MooGUI(Sequence seq) { super("Moosique"); + + this.seq = seq; + + Container pane = getContentPane(); + pane.setLayout(new BorderLayout()); // Adds menu bar. setJMenuBar(new MooMenu()); // Adds toolbar. - getContentPane().add(new MooToolbar(), BorderLayout.NORTH); - addWindowListener(this); - - // Adds one track. - getContentPane().add(new MooTrackView(), BorderLayout.CENTER); + pane.add(new MooToolbar(), BorderLayout.NORTH); addWindowListener(this); - - // Adds main view. - // view = new MooView(); + + // Adds tracks. + trackPanel = new JPanel(true); + createTrackViews(); + pane.add(trackPanel, BorderLayout.CENTER); // Adds status bar. statusBar = new JLabel("Welcome to Moosique!", JLabel.CENTER); - getContentPane().add(statusBar, BorderLayout.SOUTH); + pane.add(statusBar, BorderLayout.SOUTH); + addWindowListener(this); pack(); Dimension bounds = new Dimension(400,300); setSize(bounds.width,bounds.height); @@ -55,6 +63,7 @@ public class MooGUI extends JFrame implements WindowListener { */ public void setSequence(Sequence sequence) { seq = sequence; + createTrackViews(); } /** @@ -64,6 +73,16 @@ public class MooGUI extends JFrame implements WindowListener { public void setStatus(String text) { statusBar.setText(text); } + + private void createTrackViews() { + trackPanel.removeAll(); + Track[] tracks = seq.getTracks(); + trackViews = new MooTrackView[tracks.length]; + for (int i = 0; i < tracks.length; i++) { + trackViews[i] = new MooTrackView(tracks[i]); + trackPanel.add(new MooTrackView(tracks[i])); + } + } public void windowOpened(WindowEvent e) {} public void windowClosing(WindowEvent e) {Moosique.quit();} diff --git a/MooMenu.java b/MooMenu.java index eeb1b21..7a0785b 100644 --- a/MooMenu.java +++ b/MooMenu.java @@ -10,88 +10,59 @@ import java.io.*; */ public class MooMenu extends JMenuBar implements ActionListener { -/* - -Musikrelaterade menyer i Midisoft Recording Session: - -Track Insert New... Har vi - Delete... Har vi - Move... Har vi - Copy... Har vi - Combine... Onödig - Rechannel... Kanske - Split by Pitch... Onödig - -Music Insert Measure... Lagt till - Delete Measure... Lagt till - Clef... Onödig - Time Signature... Lagt till - Key Signature... Onödig - Tempo... Lagt till - Scale Velocity... Lagt till - Transpose... Lagt till - Quantize... Onödig - -Kanske också: Reset Solo / Mute - -*/ - private JMenu file, edit, playback, track, help, music; + private JMenu file, edit, playback, music, help; /** - * contructs a menubar + * Creates the menu bar. */ public MooMenu() { - file = makeMenu("File", KeyEvent.VK_F); + file = createMenu("File", KeyEvent.VK_F); add(file); - file.add(makeItem(file, "New", KeyEvent.VK_N)); - file.add(makeItem(file, "Open...", KeyEvent.VK_O)); - file.add(makeItem(file, "Save", KeyEvent.VK_S)); - file.add(makeItem(file, "Save as...")); - file.add(makeItem(file, "Exit", KeyEvent.VK_Q)); + addItem(file, "New", KeyEvent.VK_N); + addItem(file, "Open...", KeyEvent.VK_O); + addItem(file, "Save", KeyEvent.VK_S); + addItem(file, "Save as..."); + addItem(file, "Exit", KeyEvent.VK_Q); - edit = makeMenu("Edit", KeyEvent.VK_E); + edit = createMenu("Edit", KeyEvent.VK_E); add(edit); - edit.add(makeItem(edit, "Copy", KeyEvent.VK_C)); - edit.add(makeItem(edit, "Cut", KeyEvent.VK_X)); - edit.add(makeItem(edit, "Paste", KeyEvent.VK_V)); - edit.add(makeItem(edit, "Select all", KeyEvent.VK_E)); - edit.add(makeItem(edit, "Invert selection", KeyEvent.VK_I)); - edit.add(makeItem(edit, "Preferences", KeyEvent.VK_P)); + addItem(edit, "Copy", KeyEvent.VK_C); + addItem(edit, "Cut", KeyEvent.VK_X); + addItem(edit, "Paste", KeyEvent.VK_V); + addItem(edit, "Select all", KeyEvent.VK_E); + addItem(edit, "Invert selection", KeyEvent.VK_I); + addItem(edit, "Preferences...", KeyEvent.VK_P); - playback = makeMenu("Playback", KeyEvent.VK_P); + playback = createMenu("Playback", KeyEvent.VK_P); add(playback); - playback.add(makeItem(playback, "Play", KeyEvent.VK_SPACE)); - playback.add(makeItem(playback, "Pause", KeyEvent.VK_SPACE)); - playback.add(makeItem(playback, "Stop")); - playback.add(makeItem(playback, "Jump...")); - - track = makeMenu("Track", KeyEvent.VK_T); - add(track); + addItem(playback, "Play", KeyEvent.VK_SPACE); + addItem(playback, "Pause"); + addItem(playback, "Stop"); + addItem(playback, "Jump..."); - track.add(makeItem(track, "Add", KeyEvent.VK_A)); - track.add(makeItem(track, "Delete", KeyEvent.VK_D)); - track.add(makeItem(track, "Copy track", KeyEvent.VK_Y)); - track.add(makeItem(track, "Move", KeyEvent.VK_M)); - - music = makeMenu("Music", KeyEvent.VK_M); + music = createMenu("Music", KeyEvent.VK_M); add(music); - music.add(makeItem(track, "Insert measure...")); - music.add(makeItem(track, "Delete measure...")); - music.add(makeItem(track, "Time signature...")); - music.add(makeItem(track, "Tempo...")); - music.add(makeItem(track, "Scale velocity...")); - music.add(makeItem(track, "Transpose...")); - - help = makeMenu("Help", KeyEvent.VK_L); + addItem(music, "Add track...", KeyEvent.VK_A); + addItem(music, "Delete track...", KeyEvent.VK_D); + addItem(music, "Copy track...", KeyEvent.VK_Y); + addItem(music, "Move track...", KeyEvent.VK_M); + addItem(music, "Insert measure..."); + addItem(music, "Delete measure..."); + addItem(music, "Set time signature..."); + addItem(music, "Set tempo..."); + addItem(music, "Scale velocity..."); + addItem(music, "Transpose..."); + + help = createMenu("Help", KeyEvent.VK_L); add(help); - help.add(makeItem(help, "Contents")); - help.add(makeItem(help, "Getting started")); - help.add(makeItem(help, "About")); + addItem(help, "Contents"); + addItem(help, "Getting started"); + addItem(help, "About"); } /** @@ -100,19 +71,19 @@ Kanske ocks * @param mnemonic the shortcut to activate the menu * @return menu the menu to be added to the menubar */ - private JMenu makeMenu(String name, int mnemonic) { + private JMenu createMenu(String name, int mnemonic) { JMenu menu = new JMenu(name); menu.setMnemonic(mnemonic); return menu; } /** - * creates a menuitem + * Creates a menu item. * @param menu the menu to which the item is being added to * @param name the name of this menuitem * @return item the item to add to the menu */ - private JMenuItem makeItem(JMenu menu, String name) { + private JMenuItem addItem(JMenu menu, String name) { JMenuItem item = new JMenuItem(name); item.addActionListener(this); menu.add(item); @@ -120,13 +91,13 @@ Kanske ocks } /** - * creates a menuitem + * Creates a menu item with a keyboard accelerator. * @param menu the menu to which the item is being added to * @param name the name of this menuitem * @param key the shortcut to activate the command * @return item the item to add to the menu */ - private JMenuItem makeItem(JMenu menu, String name, int key) { + private JMenuItem addItem(JMenu menu, String name, int key) { JMenuItem item = new JMenuItem(name); item.setAccelerator(KeyStroke.getKeyStroke(key, ActionEvent.CTRL_MASK)); item.addActionListener(this); @@ -181,37 +152,41 @@ Kanske ocks } else if (command == "Invert selection") { - } else if (command == "Preferences") { + } else if (command == "Preferences...") { - } else if (command == "Play / Resume") { - //if (Moosique.getSequence().isRunning()) { - //Moosique.pause(); - //} else Moosique.play(); - + } else if (command == "Play") { + if (Moosique.getSequencer().isRunning()) { + Moosique.pause(); + } else { + Moosique.play(); + } } else if (command == "Pause") { - // koda för resume också - Moosique.pause(); + if (Moosique.getSequencer().isRunning()) { + Moosique.resume(); + } else { + Moosique.pause(); + } } else if (command == "Stop") { Moosique.stop(); } else if (command == "Jump...") { - } else if (command == "Add") { + } else if (command == "Add track...") { - } else if (command == "Delete") { + } else if (command == "Delete track...") { - } else if (command == "Copy track") { + } else if (command == "Copy track...") { - } else if (command == "Move") { + } else if (command == "Move track...") { - } else if (command == "Insert Measure...") { + } else if (command == "Insert measure...") { - } else if (command == "Delete Measure...") { + } else if (command == "Delete measure...") { - } else if (command == "Time Signature...") { + } else if (command == "Set time signature...") { - } else if (command == "Tempo...") { + } else if (command == "Set tempo...") { - } else if (command == "Scale Velocity...") { + } else if (command == "Scale velocity...") { } else if (command == "Transpose...") { @@ -245,4 +220,4 @@ Kanske ocks return "MIDI files"; } } -} +} \ No newline at end of file diff --git a/MooToolbar.java b/MooToolbar.java index 542488c..8df4f86 100644 --- a/MooToolbar.java +++ b/MooToolbar.java @@ -2,7 +2,6 @@ import javax.swing.*; import java.awt.event.*; import java.awt.*; import javax.sound.midi.*; -import javax.swing.Icon; /** * Moosiques GUI representing a toolbar, with the most frequently used commands. @@ -102,13 +101,14 @@ public class MooToolbar extends JToolBar implements ActionListener { if (((JButton)e.getSource()).getToolTipText() == "rewind") { //få in rewindmetoden } else if (((JButton)e.getSource()).getToolTipText() == "play/pause") { - if (Moosique.getSequence().isRunning()) { + ImageIcon playpauseIcon = ((ImageIcon)playpause.getIcon()); + if (Moosique.getSequencer().isRunning()) { Moosique.pause(); - playpause.getIcon().setImage(playimage); + playpauseIcon.setImage(playimage); } else { - Moosique.play(); - playpause.getIcon().setImage(pauseimage); - } + Moosique.play(); + playpauseIcon.setImage(pauseimage); + } } else if (((JButton)e.getSource()).getToolTipText() == "stop") { Moosique.stop(); diff --git a/MooTrackView.java b/MooTrackView.java index 143c45e..19888e8 100644 --- a/MooTrackView.java +++ b/MooTrackView.java @@ -1,6 +1,7 @@ import javax.swing.*; import java.awt.event.*; import java.awt.*; +import javax.sound.midi.*; /** * Graphical representation of a MIDI track. diff --git a/Moosique.java b/Moosique.java index bb90b76..669d236 100644 --- a/Moosique.java +++ b/Moosique.java @@ -78,7 +78,7 @@ public class Moosique { } /** - * Returns a pointer to the current sequence. + * Returns the current sequence. * @return the current sequence */ public static Sequence getSequence() { @@ -86,7 +86,15 @@ public class Moosique { } /** - * Returns a pointer to the MidiChannels of the selected synthesizer. + * Returns the current sequencer. + * @return the current sequencer + */ + public static Sequencer getSequencer() { + return sequencer; + } + + /** + * Returns the MidiChannels of the selected synthesizer. * @return the available MidiChannels */ public static MidiChannel[] getChannels() { @@ -94,7 +102,7 @@ public class Moosique { } /** - * Returns a pointer to the currently active MidiChannel. + * Returns the currently active MidiChannel. * @return the active MidiChannel */ public static MidiChannel getActiveChannel() { diff --git a/To Do.txt b/To Do.txt index e2cac93..cd065d1 100644 --- a/To Do.txt +++ b/To Do.txt @@ -7,12 +7,37 @@ Micke: MooGUI(4), MooTrackTitle(2), MooNoteElement(6), MooNoteProp(4) Björn: MooMenu(8), MooToolbar(3), MooView(2), MooViewCounter(1) Rolle: MooTrackView(16) + +Fixa en progress indicator till filladdningen om den tänker ta så lång tid. + MooMenu * Inställningar - MIDI-enhet Öppna en dialogruta med innehållet i getMidiDeviceInfo() och låt användaren välja. + Musikrelaterade menyer i Midisoft Recording Session: + + Track Insert New... Har vi + Delete... Har vi + Move... Har vi + Copy... Har vi + Combine... Onödig + Rechannel... Kanske + Split by Pitch... Onödig + + Music Insert Measure... Lagt till + Delete Measure... Lagt till + Clef... Onödig + Time Signature... Lagt till + Key Signature... Onödig + Tempo... Lagt till + Scale Velocity... Lagt till + Transpose... Lagt till + Quantize... Onödig + + Kanske också: Reset Solo / Mute + MooNote / MootrackView / MooNoteElement