X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=MooToolbar.java;h=c1244f575e81b717e8db764427727b2d0362fd06;hb=c83e74facf762222fe4578f175408cc50d360518;hp=7a16936cbbb8eed3c2a7436d4c4ef133690067c2;hpb=4290c2a3878a6c0ed6e43e152a7ea6a79273dea2;p=moosique.git diff --git a/MooToolbar.java b/MooToolbar.java index 7a16936..c1244f5 100644 --- a/MooToolbar.java +++ b/MooToolbar.java @@ -1,6 +1,6 @@ import javax.swing.*; -import java.awt.event.*; import java.awt.*; +import java.awt.event.*; import javax.sound.midi.*; /** @@ -11,50 +11,74 @@ import javax.sound.midi.*; public class MooToolbar extends JToolBar { private JButton rewind, playpause, stop, fastforward; - private JLabel measure, beats, ticks, measurevalue, beatsvalue, ticksvalue; + private JLabel measure, beats, ticks, measureValue, beatsValue, ticksValue; private ImageIcon playIcon, pauseIcon; private MooMouseAdapter mouseAdapter; + public static final Color bgColor = new Color(192, 224, 255); /** * Creates the toolbar. */ - public MooToolbar() { + public MooToolbar() { + // setAlignmentX(LEFT_ALIGNMENT); + setFloatable(false); mouseAdapter = new MooMouseAdapter(); + // Creates playback buttons rewind = createButton("images/rewind.gif", "Rewind"); - add(rewind); - playpause = createButton("images/play.gif", "Play"); - add(playpause); + stop = createButton("images/stop.gif", "Stop"); + fastforward = createButton("images/forward.gif", "Fast forward"); playIcon = new ImageIcon("images/play.gif"); pauseIcon = new ImageIcon("images/pause.gif"); - - stop = createButton("images/stop.gif", "Stop"); + + // Adds playback buttons + add(rewind); + add(playpause); add(stop); - - fastforward = createButton("images/forward.gif", "Fast forward"); add(fastforward); + // Creates progress indicator + measure = createLabel("Msr", 10); + beats = createLabel("Beat", 10); + ticks = createLabel("Tick", 10); + measureValue = createLabel("1", 16); + beatsValue = createLabel("1", 16); + ticksValue = createLabel("1", 16); + JPanel spacenorth = new JPanel(); + spacenorth.setBackground(bgColor); + JPanel spacesouth = new JPanel(); + spacesouth.setBackground(bgColor); + + // Creates progress indicator panel and adds components JPanel progIndPanel = new JPanel(); - progIndPanel.setBorder(BorderFactory.createLineBorder(Color.black)); - progIndPanel.setMaximumSize(new Dimension(100,22)); - progIndPanel.setLayout(new GridLayout(2,3)); - measure = createLabel("Mrs",10); - beats = createLabel("Beat",10); - ticks = createLabel("Tick",10); - measurevalue = createLabel("1", 12); - beatsvalue = createLabel("1",12); - ticksvalue = createLabel("1",12); + progIndPanel.setMaximumSize(new Dimension(120,27)); + progIndPanel.setLayout(new GridLayout(2,4)); + progIndPanel.add(spacenorth); progIndPanel.add(measure); progIndPanel.add(beats); progIndPanel.add(ticks); - progIndPanel.add(measurevalue); - progIndPanel.add(beatsvalue); - progIndPanel.add(ticksvalue); + progIndPanel.add(spacesouth); + progIndPanel.add(measureValue); + progIndPanel.add(beatsValue); + progIndPanel.add(ticksValue); add(progIndPanel); + } - + + /** + * Updates the progress indicator. + */ + public void updateProgInd() { + int pos = Moosique.getSequencer().getTickPosition(); + int ticksPerBeat = Moosique.getSequencer().getResolution(); + int beatsPerMeasure = 4; + measureValue.setText(pos / (beatsPerMeasure * ticksPerBeat)); + beatsValue.setText((pos - measures * beatsPerMeasure * ticksPerBeat) / ticksPerBeat); + ticksValue.setText(pos - measures * beatsPerMeasure * ticksPerBeat - beats * ticksPerBeat); + } + /** * Creates a button with the specified image and tooltip. * @param imagelocation the imagelacation of the the image displayed in the button @@ -74,16 +98,12 @@ public class MooToolbar extends JToolBar { * @param fontsize the fontzise of the text displayed on the label */ private JLabel createLabel(String title, int fontSize){ - JLabel value = new JLabel(title,JLabel.CENTER); - value.setFont(new Font("Times New Roman", Font.BOLD, fontSize)); - return value; + JLabel label = new JLabel(title,JLabel.CENTER); + label.setFont(new Font("Times New Roman", Font.PLAIN, fontSize)); + label.setBorder(BorderFactory.createLineBorder(Color.black)); + return label; } - - // int pos = Moosique.getSequencer().getTickPosition(); - // int measures = pos / (4 * Moosique.getSequence.get) - // int beats = (pos - measures * 4 * 96) / 96; - // int ticks = (pos - measures*4*96 - beats*96); - + class MooMouseAdapter extends MouseAdapter { public void mouseClicked(MouseEvent e) { if (((JButton)e.getSource()).getToolTipText() == "Play") {