]> ruin.nu Git - moosique.git/blobdiff - MooDialog.java
no message
[moosique.git] / MooDialog.java
index 860b91edc83ac8951e043b3fc5a6aa14c2618875..fc9c2c0b19bd39ad7c23a4560e06cac0513dcd0a 100644 (file)
@@ -13,9 +13,10 @@ import java.beans.*;
  
 public class MooDialog extends JDialog {
 
-       private JLabel labelA, labelB, labelC, labelD, labelE, labelF;
-       private JTextField textFieldA, textFieldB, textFieldC, textFieldD, textFieldE, textFieldF;
-       private JTextField textFieldG, textFieldH, textFieldI, textFieldJ, textFieldK;
+       private JLabel labelA, labelB, labelC, labelD, labelE, labelF, labelG, labelH;
+       private JTextField textFieldA, textFieldB, textFieldC, textFieldD, textFieldE,
+                          textFieldF, textFieldG, textFieldH, textFieldI, textFieldJ,
+                          textFieldK;
        private JComboBox trackListA, trackListB; 
        private JButton okButton, cancelButton;
        public static final int ADD_TRACK = 1,
@@ -27,7 +28,10 @@ public class MooDialog extends JDialog {
                                INSERT_MEASURE = 7,
                                DELETE_MEASURE = 8,
                                SET_TEMPO = 9,
-                               PREFERENCES = 10;
+                               PREFERENCES = 10,
+                               TRANSPOSE = 11,
+                               SCALE_VELOCITY = 12, 
+                               RECORD = 13;
        
        /**
         * Constructor of the dialogs.
@@ -51,6 +55,8 @@ public class MooDialog extends JDialog {
                        case DELETE_MEASURE:    makeDeleteMeasureDialog(pane); break;
                        case SET_TEMPO:         makeSetTempoDialog(pane); break;
                        case PREFERENCES:       makePrefsDialog(pane); break;
+                       case TRANSPOSE:         makeTransposeDialog(pane, tracks); break;
+                       case SCALE_VELOCITY:    makeScaleVelocityDialog(pane, tracks); break;
                }
         }
        
@@ -60,29 +66,31 @@ public class MooDialog extends JDialog {
         * @param tracks        A array containing miditracks.
         */
        private void makeAddDialog(Container pane, Track[] tracks) {
-       
                setTitle("Add track");
+               // create the contents of the dialog and add to container
                labelA = new JLabel("Name of track", JLabel.CENTER);
                pane.add(labelA);
+               // textfield for naming track
                textFieldA = new JTextField();  
                pane.add(textFieldA);
                labelB = new JLabel("Add after", JLabel.CENTER);
                pane.add(labelB);
+               // list of where to add track
                trackListA = new JComboBox();
                for (int i = 1; i <= tracks.length; i++) trackListA.addItem("Track " + i);
                pane.add(trackListA);
+               // ok and cancel button
                cancelButton = new JButton("Cancel");
                pane.add(cancelButton);
                okButton = new JButton("OK");
                pane.add(okButton);
-       
+               // set layout prop
                labelA.setBounds(50, 10, 100, 20);
                textFieldA.setBounds(40, 35, 120, 20);
                labelB.setBounds(50, 70, 100, 20);
                trackListA.setBounds(40, 95, 120, 20);
                cancelButton.setBounds(10, 150, 80, 30);
                okButton.setBounds(120, 150, 60, 30);
-       
                setResizable(false);
                pack();
                setSize(200,220);
@@ -96,23 +104,24 @@ public class MooDialog extends JDialog {
         * @param tracks        A array containing miditracks.
         */
        private void makeDelDialog(Container pane, Track[] tracks) {
-       
                setTitle("Delete track");
+               // create the contents of the dialog and add to container
                labelB = new JLabel("Delete track", JLabel.CENTER);
                pane.add(labelB);
+               // list of what track to delete
                trackListA = new JComboBox();
                for (int i = 1; i <= tracks.length; i++) trackListA.addItem("Track " + i);
                pane.add(trackListA);
+               // ok and cancelbutton
                cancelButton = new JButton("Cancel");
                pane.add(cancelButton);
                okButton = new JButton("OK");
                pane.add(okButton);
-                       
+               // set layout prop      
                labelB.setBounds(50, 10, 100, 20);
                trackListA.setBounds(40, 35, 120, 20);
                cancelButton.setBounds(10, 90, 80, 30);
                okButton.setBounds(120, 90, 60, 30);
-       
                setResizable(false);
                pack();
                setSize(200,165);
@@ -126,15 +135,17 @@ public class MooDialog extends JDialog {
         * @param tracks        A array containing miditracks.
         */
        private void makeCopyDialog(Container pane, Track[] tracks) {
-       
                setTitle("Copy Track");
+               // create the contents of the dialog and add to container
                labelA = new JLabel("Track to copy", JLabel.CENTER);
                pane.add(labelA);
+               // list of what track to copy
                trackListA = new JComboBox();
                for (int i = 1; i <= tracks.length; i++) trackListA.addItem("Track " + i);
                pane.add(trackListA);
                labelB = new JLabel("Insert after", JLabel.CENTER);
                pane.add(labelB);
+               // list of where to put copied track
                trackListB = new JComboBox();
                for (int i = 1; i <= tracks.length; i++) trackListB.addItem("Track " + i);
                pane.add(trackListB);
@@ -142,14 +153,13 @@ public class MooDialog extends JDialog {
                pane.add(cancelButton);
                okButton = new JButton("OK");
                pane.add(okButton);
-               
+               // set layout prop
                labelA.setBounds(50, 10, 100, 20);
                trackListA.setBounds(40, 35, 120, 20);
                labelB.setBounds(50, 70, 100, 20);
                trackListB.setBounds(40, 95, 120, 20);
                cancelButton.setBounds(10, 150, 80, 30);
                okButton.setBounds(120, 150, 60, 30);
-       
                setResizable(false);
                pack();
                setSize(200,220);
@@ -163,30 +173,32 @@ public class MooDialog extends JDialog {
         * @param tracks        A array containing miditracks.
         */
        private void makeMoveDialog(Container pane, Track[] tracks) {
-       
                setTitle("Move track");
+               // create the contents of the dialog and add to container
                labelA = new JLabel("Track to move", JLabel.CENTER);
                pane.add(labelA);
+               // list of track to move
                trackListA = new JComboBox();
                for (int i = 1; i <= tracks.length; i++) trackListA.addItem("Track " + i);
                pane.add(trackListA);
                labelB = new JLabel("Insert after", JLabel.CENTER);
                pane.add(labelB);
+               // list of where to put moved track
                trackListB = new JComboBox();
                for (int i = 1; i <= tracks.length; i++) trackListB.addItem("Track " + i);
                pane.add(trackListB);
+               // ok and cancelbuttons
                cancelButton = new JButton("Cancel");
                pane.add(cancelButton);
                okButton = new JButton("OK");
                pane.add(okButton);
-               
+               // set layoutprop
                labelA.setBounds(40, 10, 120, 20);
                trackListA.setBounds(40, 35, 120, 20);
                labelB.setBounds(50, 70, 100, 20);
                trackListB.setBounds(40, 95, 120, 20);
                cancelButton.setBounds(10, 150, 80, 30);
                okButton.setBounds(120, 150, 60, 30);
-       
                setResizable(false);
                pack();
                setSize(200,220);
@@ -202,6 +214,7 @@ public class MooDialog extends JDialog {
        private void makeSetPositionDialog(Container pane) {
                
                setTitle("Set edit position");
+               // create the contents of the dialog and add to container
                labelA = new JLabel("Measure", JLabel.CENTER);
                pane.add(labelA);
                labelB = new JLabel("Beat", JLabel.CENTER);
@@ -214,11 +227,12 @@ public class MooDialog extends JDialog {
                pane.add(textFieldB);
                textFieldC = new JTextField();
                pane.add(textFieldC);
+               // ok and cancel buttons
                cancelButton = new JButton("Cancel");
                pane.add(cancelButton);
                okButton = new JButton("OK");
                pane.add(okButton);
-               
+               // set layoutprop
                labelA.setBounds(40, 25, 50, 20);
                labelB.setBounds(105, 25, 50, 20);
                labelC.setBounds(170, 25, 50, 20);
@@ -227,7 +241,6 @@ public class MooDialog extends JDialog {
                textFieldC.setBounds(170, 45, 50, 20);
                cancelButton.setBounds(35, 90, 80, 30);
                okButton.setBounds(155, 90, 60, 30);
-               
                setResizable(false);
                pack();
                setSize(260,165);
@@ -240,8 +253,8 @@ public class MooDialog extends JDialog {
         * @param pane          The container to put the dialog in.
         */
        private void makeInsertMeasureDialog(Container pane){
-       
                setTitle("Insert Measure");
+               // create the contents of the dialog and add to container
                labelA = new JLabel("Insert at:", JLabel.RIGHT);
                pane.add(labelA);
                labelB = new JLabel("Measure count:", JLabel.RIGHT);
@@ -250,18 +263,18 @@ public class MooDialog extends JDialog {
                pane.add(textFieldA);
                textFieldB = new JTextField();
                pane.add(textFieldB);
+               // ok and cancelbutton
                cancelButton = new JButton("Cancel");
                pane.add(cancelButton);
                okButton = new JButton("OK");
                pane.add(okButton);
-               
+               // set layout prop
                labelA.setBounds(20, 20, 110 ,20);
                labelB.setBounds(20, 50, 110, 20);
                textFieldA.setBounds(140 ,20 , 40, 20);
                textFieldB.setBounds(140,50, 40, 20);
                cancelButton.setBounds(20 ,95 , 80, 30);
                okButton.setBounds(120, 95, 60, 30);
-               
                setResizable(false);
                pack();
                setSize(210,175);
@@ -274,8 +287,8 @@ public class MooDialog extends JDialog {
         * @param pane          The container to put the dialog in.
         */
        private void makeDeleteMeasureDialog(Container pane) {
-       
                setTitle("Delete Measure");
+               // create the contents of the dialog and add to container
                labelA = new JLabel("Delete at:", JLabel.RIGHT);
                pane.add(labelA);
                labelB = new JLabel("Measure count:", JLabel.RIGHT);
@@ -284,18 +297,18 @@ public class MooDialog extends JDialog {
                pane.add(textFieldA);
                textFieldB = new JTextField();
                pane.add(textFieldB);
+               // ok and cancelbutton
                cancelButton = new JButton("Cancel");
                pane.add(cancelButton);
                okButton = new JButton("OK");
                pane.add(okButton);
-               
+               // set layout prop
                labelA.setBounds(20, 20, 110 ,20);
                labelB.setBounds(20, 50, 110, 20);
                textFieldA.setBounds(140 ,20 , 40, 20);
                textFieldB.setBounds(140,50, 40, 20);
                cancelButton.setBounds(20 ,95 , 80, 30);
                okButton.setBounds(120, 95, 60, 30);
-               
                setResizable(false);
                pack();
                setSize(210,175);
@@ -306,40 +319,40 @@ public class MooDialog extends JDialog {
        /**
         * Builds the set tempo dialog.
         * @param pane          The container to put the dialog in.
-        * @param tracks        A array containing miditracks.
         */
        private void makeSetTempoDialog(Container pane) {
-               
                setTitle("Set tempo");
-               // creating labels and adding them to a container
+               // create contents of dialog and add to container
+               // track edit-intervall labels
                labelA = new JLabel("Measure", JLabel.CENTER);
                pane.add(labelA);
                labelB = new JLabel("Beat", JLabel.CENTER);
                pane.add(labelB);
                labelC = new JLabel("Tick", JLabel.CENTER);
                pane.add(labelC);
+               // start and end labels
                labelD = new JLabel("Start at:", JLabel.RIGHT);
                pane.add(labelD);
                labelE = new JLabel("End at:", JLabel.RIGHT);
                pane.add(labelE);
+               // from-to label
                labelF = new JLabel("to", JLabel.CENTER);
                pane.add(labelF);
-                
-               // the starting textfields and adding them to the container
+               // start inputvaluefields
                textFieldA = new JTextField();
                pane.add(textFieldA);
                textFieldB = new JTextField();
                pane.add(textFieldB);
                textFieldC = new JTextField();
                pane.add(textFieldC);
-               // ending textfields and adding them to the container
+               // end inputvaluefield
                textFieldD = new JTextField();
                pane.add(textFieldD);
                textFieldE = new JTextField();
                pane.add(textFieldE);
                textFieldF = new JTextField();
                pane.add(textFieldF);
-               // the amount to edit textfields and adding them to a container
+               // the radiobuttonlists inputvaluefields
                textFieldG = new JTextField();
                pane.add(textFieldG);
                textFieldH = new JTextField();
@@ -350,8 +363,7 @@ public class MooDialog extends JDialog {
                pane.add(textFieldJ);
                textFieldK = new JTextField();
                pane.add(textFieldK);
-
-               // creating the buttons and adding them to the container
+               // the radiobuttonlist with associating titles
                JRadioButton constant = new JRadioButton("Set constant tempo of:");
                constant.setSelected(true);
                pane.add(constant);
@@ -361,49 +373,50 @@ public class MooDialog extends JDialog {
                pane.add(scale);
                JRadioButton add = new JRadioButton("Add to current tempo:");
                pane.add(add);
-               
-               // creating a buttongroup and adding the buttons above
+               // a buttongroup for the radiobuttons
                ButtonGroup group = new ButtonGroup();
                group.add(constant);
                group.add(change);
                group.add(scale);
                group.add(add);
-               
-               // creating the cancel and ok button
+               // ok and cancelbutton
                cancelButton = new JButton("Cancel");
                pane.add(cancelButton);
                okButton = new JButton("OK");
                pane.add(okButton);
                
-               
+               // set bounds of track edit-intervall labels
                labelA.setBounds(80, 25, 50, 20);
                labelB.setBounds(145, 25, 50, 20);
                labelC.setBounds(210, 25, 50, 20);
+               // set bounds of start and end labels
                labelD.setBounds(20, 45, 60, 20);
                labelE.setBounds(20, 65, 60, 20);
+               // set bounds of from-to label
                labelF.setBounds(255, 125, 20 ,20);
-      
+               // set bounds of start inputvaluefields
                textFieldA.setBounds(80, 45, 50, 20);
                textFieldB.setBounds(145, 45, 50, 20);
                textFieldC.setBounds(210, 45, 50, 20);
+               // set bounds of end inputvaluefield
                textFieldD.setBounds(80, 65, 50, 20);
                textFieldE.setBounds(145, 65, 50, 20);
                textFieldF.setBounds(210, 65, 50, 20);
-               
-               textFieldG.setBounds(205, 100, 35, 20);
+               // set bounds of radiobuttonlists inputvaluefields
+               textFieldG.setBounds(220, 100, 35, 20);
                textFieldH.setBounds(220, 125, 35, 20);
                textFieldI.setBounds(280, 125, 35, 20);
-               textFieldJ.setBounds(170, 150, 35, 20);
-               textFieldK.setBounds(200, 175, 35, 20);
-               
+               textFieldJ.setBounds(220, 150, 35, 20);
+               textFieldK.setBounds(220, 175, 35, 20);
+               // set bounds of radiobuttonlist items
                constant.setBounds(20, 100, 180, 20);
                change.setBounds(20, 125, 200, 20);
                scale.setBounds(20, 150, 150, 20);
                add.setBounds(20, 175, 175, 20);
-               
+               // set bounds of ok and cancelbutton
                cancelButton.setBounds(75, 215, 80, 30);
                okButton.setBounds(195, 215, 60, 30);
-               
+               // set layout prop
                setResizable(false);
                pack();
                setSize(340,300);
@@ -411,7 +424,233 @@ public class MooDialog extends JDialog {
                setVisible(true);
        }
        
+       /**
+        * Builds the transpose dialog.
+        * @param pane          The container to put the dialog in.
+        * @param tracks        A array containing miditracks.
+        */
+       private void makeTransposeDialog(Container pane, Track[] tracks) {
+               setTitle("Transpose");
+               // create contents of dialog and add to container
+               // track edit-intervall labels
+               labelA = new JLabel("Measure", JLabel.CENTER);
+               pane.add(labelA);
+               labelB = new JLabel("Beat", JLabel.CENTER);
+               pane.add(labelB);
+               labelC = new JLabel("Tick", JLabel.CENTER);
+               pane.add(labelC);
+               // start and end labels
+               labelD = new JLabel("Start at:", JLabel.RIGHT);
+               pane.add(labelD);
+               labelE = new JLabel("End at:", JLabel.RIGHT);
+               pane.add(labelE);
+               // oktave inputvalue labels
+               labelF = new JLabel("Octaves", JLabel.LEFT);
+               pane.add(labelF);
+               labelG = new JLabel("1/2 octaves", JLabel.LEFT);
+               pane.add(labelG);
+               // what track to edit label
+               labelH = new JLabel("Track to edit:", JLabel.CENTER);
+               pane.add(labelH);
+               // combobox representing the tracks
+               trackListA = new JComboBox();
+               for (int i = 1; i <= tracks.length; i++) trackListA.addItem("Track " + i);
+               pane.add(trackListA);
+               // start inputvaluefields
+               textFieldA = new JTextField();
+               pane.add(textFieldA);
+               textFieldB = new JTextField();
+               pane.add(textFieldB);
+               textFieldC = new JTextField();
+               pane.add(textFieldC);
+               // end inputvaluefield
+               textFieldD = new JTextField();
+               pane.add(textFieldD);
+               textFieldE = new JTextField();
+               pane.add(textFieldE);
+               textFieldF = new JTextField();
+               pane.add(textFieldF);
+               // the radiobuttonlists inputvaluefields
+               textFieldG = new JTextField();
+               pane.add(textFieldG);
+               textFieldH = new JTextField();
+               pane.add(textFieldH);
+               // the radiobuttonlist with associating titles
+               JRadioButton up = new JRadioButton("Change up");
+               up.setSelected(true);
+               pane.add(up);
+               JRadioButton down = new JRadioButton("Change down");
+               pane.add(down);
+               // a buttongroup for the radiobuttons
+               ButtonGroup group = new ButtonGroup();
+               group.add(up);
+               group.add(down);
+               // ok and cancelbutton
+               cancelButton = new JButton("Cancel");
+               pane.add(cancelButton);
+               okButton = new JButton("OK");
+               pane.add(okButton);
+               
+               // set bounds of track edit-intervall labels
+               labelA.setBounds(90, 70, 50, 20);
+               labelB.setBounds(155, 70, 50, 20);
+               labelC.setBounds(220, 70, 50, 20);
+               // set bounds of start and end labels
+               labelD.setBounds(30, 90, 60, 20);
+               labelE.setBounds(30, 110, 60, 20);
+               // set bounds of octave inputvaluefields
+               labelF.setBounds(210, 150, 80, 20);
+               labelG.setBounds(210, 175, 100, 20);
+               // set bounds of trackslist label
+               labelH.setBounds(30, 30, 100, 20);
+               // set bounds of start inputvaluefields
+               textFieldA.setBounds(90, 90, 50, 20);
+               textFieldB.setBounds(155, 90, 50, 20);
+               textFieldC.setBounds(220, 90, 50, 20);
+               // set bounds of end inputvaluefield
+               textFieldD.setBounds(90, 110, 50, 20);
+               textFieldE.setBounds(155, 110, 50, 20);
+               textFieldF.setBounds(220, 110, 50, 20);
+               // set bounds of octave inputvaluefields
+               textFieldG.setBounds(170, 150, 35, 20);
+               textFieldH.setBounds(170, 175, 35, 20);
+               // set bounds of radiobuttonlist items
+               up.setBounds(30, 150, 100, 20);
+               down.setBounds(30, 175, 120, 20);
+               // set bounds of tracklist
+               trackListA.setBounds(145, 30, 120, 20);
+               // set bounds of ok and cancelbutton
+               cancelButton.setBounds(75, 215, 80, 30);
+               okButton.setBounds(195, 215, 60, 30);
+               // set layoutprop
+               setResizable(false);
+               pack();
+               setSize(340,300);
+               setLocationRelativeTo(Moosique.getGUI());
+               setVisible(true);
+       }
        
+       /**
+        * Builds the scale velocity dialog.
+        * @param pane  The container to put the dialog in.
+        * @param tracks        A array containing miditracks.
+        */
+       private void makeScaleVelocityDialog(Container pane, Track[] tracks) {
+               setTitle("Scale velocity");
+               // create contents of dialog and add to container
+               // track edit-intervall labels
+               labelA = new JLabel("Measure", JLabel.CENTER);
+               pane.add(labelA);
+               labelB = new JLabel("Beat", JLabel.CENTER);
+               pane.add(labelB);
+               labelC = new JLabel("Tick", JLabel.CENTER);
+               pane.add(labelC);
+               // start and end labels
+               labelD = new JLabel("Start at:", JLabel.RIGHT);
+               pane.add(labelD);
+               labelE = new JLabel("End at:", JLabel.RIGHT);
+               pane.add(labelE);
+               // from-to label
+               labelF = new JLabel("to", JLabel.CENTER);
+               pane.add(labelF);
+               // what track to edit label
+               labelG = new JLabel("Track to edit:", JLabel.CENTER);
+               pane.add(labelG);
+               // combobox representing the tracks
+               trackListA = new JComboBox();
+               for (int i = 1; i <= tracks.length; i++) trackListA.addItem("Track " + i);
+               pane.add(trackListA);
+               // start inputvaluefields
+               textFieldA = new JTextField();
+               pane.add(textFieldA);
+               textFieldB = new JTextField();
+               pane.add(textFieldB);
+               textFieldC = new JTextField();
+               pane.add(textFieldC);
+               // end inputvaluefield
+               textFieldD = new JTextField();
+               pane.add(textFieldD);
+               textFieldE = new JTextField();
+               pane.add(textFieldE);
+               textFieldF = new JTextField();
+               pane.add(textFieldF);
+               // the radiobuttonlists inputvaluefields
+               textFieldG = new JTextField();
+               pane.add(textFieldG);
+               textFieldH = new JTextField();
+               pane.add(textFieldH);
+               textFieldI = new JTextField();
+               pane.add(textFieldI);
+               textFieldJ = new JTextField();
+               pane.add(textFieldJ);
+               textFieldK = new JTextField();
+               pane.add(textFieldK);
+               // the radiobuttonlist with associating titles
+               JRadioButton constant = new JRadioButton("Change all values to:");
+               constant.setSelected(true);
+               pane.add(constant);
+               JRadioButton change = new JRadioButton("Gradually  change value:");
+               pane.add(change);
+               JRadioButton scale = new JRadioButton("Scale values to %:");
+               pane.add(scale);
+               JRadioButton add = new JRadioButton("Add to current value:");
+               pane.add(add);
+               // a buttongroup for the radiobuttons
+               ButtonGroup group = new ButtonGroup();
+               group.add(constant);
+               group.add(change);
+               group.add(scale);
+               group.add(add);
+               // ok and cancelbutton
+               cancelButton = new JButton("Cancel");
+               pane.add(cancelButton);
+               okButton = new JButton("OK");
+               pane.add(okButton);
+               
+               // set bounds of track edit-intervall labels
+               labelA.setBounds(80, 75, 50, 20);
+               labelB.setBounds(145, 75, 50, 20);
+               labelC.setBounds(210, 75, 50, 20);
+               // set bounds of start and end labels
+               labelD.setBounds(20, 95, 60, 20);
+               labelE.setBounds(20, 115, 60, 20);
+               // set bounds of from-to label
+               labelF.setBounds(255, 175, 20 ,20);
+               // set bounds of trackslist label
+               labelG.setBounds(30, 30, 100, 20);
+               // set bounds of start inputvaluefields
+               textFieldA.setBounds(80, 95, 50, 20);
+               textFieldB.setBounds(145, 95, 50, 20);
+               textFieldC.setBounds(210, 95, 50, 20);
+               // set bounds of end inputvaluefield
+               textFieldD.setBounds(80, 115, 50, 20);
+               textFieldE.setBounds(145,115, 50, 20);
+               textFieldF.setBounds(210, 115, 50, 20);
+               // set bounds of radiobuttonlists inputvaluefields
+               textFieldG.setBounds(220, 150, 35, 20);
+               textFieldH.setBounds(220, 175, 35, 20);
+               textFieldI.setBounds(280, 175, 35, 20);
+               textFieldJ.setBounds(220, 200, 35, 20);
+               textFieldK.setBounds(220, 225, 35, 20);
+               // set bounds of radiobuttonlist items
+               constant.setBounds(20, 150, 180, 20);
+               change.setBounds(20, 175, 200, 20);
+               scale.setBounds(20, 200, 150, 20);
+               add.setBounds(20, 225, 175, 20);
+               // set bounds of tracklist
+               trackListA.setBounds(145, 30, 120, 20);
+               // set bounds of ok and cancelbutton
+               cancelButton.setBounds(75, 265, 80, 30);
+               okButton.setBounds(195, 265, 60, 30);
+               // set layout prop
+               setResizable(false);
+               pack();
+               setSize(340,350);
+               setLocationRelativeTo(Moosique.getGUI());
+               setVisible(true);
+       }
+       /** creates the "User manual dialog" that displays a  textfile
+       */
        private void makeTextDialog(Container pane, String filename) {
                setTitle("User Manual");
                pane.setLayout(new BoxLayout(pane, BoxLayout.Y_AXIS));
@@ -425,7 +664,12 @@ public class MooDialog extends JDialog {
                } catch (Exception ex) {
                        s = "Manual not found";
                }
-               pane.add(new JScrollPane(new JTextArea(s, 30, 95)));
+               JTextArea text = new JTextArea(s, 30, 95);
+               text.setLineWrap(true);
+               text.setWrapStyleWord(true);
+               text.setEnabled(false);
+               text.setDisabledTextColor(Color.black);
+               pane.add(new JScrollPane(text));
                Action close = new AbstractAction("Close") {
                        public void actionPerformed(ActionEvent ae) {
                                setVisible(false);
@@ -458,6 +702,21 @@ public class MooDialog extends JDialog {
                */
        }
 
+       private void makeRecordDialog(Container pane) {
+       /*      Show a dialog with:
+               "Track" combo box,
+               "Channel" field? (disabled?,
+               "Quantize" pane with
+                       "Quantize" checkbox,
+                       "Resolution" combo box,
+                       "Location" checkboxes and
+                       "Duration" checkboxes
+               "Start Recording" button.
+               
+               Moosique.record(track);
+               */
+       }
+
        private MooNote note;
        private JOptionPane optionPane;
        private JTextField pitch;