]> source.dussan.org Git - tigervnc.git/commitdiff
Made the position field editable in paused and stopped modes.
authorConstantin Kaplinsky <const@tightvnc.com>
Wed, 29 May 2002 10:59:52 +0000 (10:59 +0000)
committerConstantin Kaplinsky <const@tightvnc.com>
Wed, 29 May 2002 10:59:52 +0000 (10:59 +0000)
Preparing for implementation of seeking to an arbitrary point.

git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@2508 3789f03b-4d11-0410-bbf8-ca57d06f2519

java/src/com/tightvnc/rfbplayer/ButtonPanel.java
java/src/com/tightvnc/rfbplayer/FbsInputStream.java
java/src/com/tightvnc/rfbplayer/RfbPlayer.java
java/src/com/tightvnc/rfbplayer/VncCanvas.java

index 62fa88b32ede8700e0a9551d3bc770aec627925c..1a9db17f63a4aa96d6b0e57fe8c1a1adaabfb4b0 100644 (file)
@@ -45,9 +45,9 @@ class ButtonPanel extends Panel implements ActionListener {
     add(pauseButton);
     pauseButton.addActionListener(this);
 
-    posText = new TextField(4);
-    posText.setEditable(false);
+    posText = new TextField(5);
     add(posText);
+    posText.addActionListener(this);
   }
 
   public void setMode(int mode) {
@@ -57,12 +57,14 @@ class ButtonPanel extends Panel implements ActionListener {
       playButton.setEnabled(true);
       pauseButton.setLabel("Pause");
       pauseButton.setEnabled(true);
+      posText.setEditable(false);
       break;
     case RfbPlayer.MODE_PAUSED:
       playButton.setLabel("Stop");
       playButton.setEnabled(true);
       pauseButton.setLabel("Resume");
       pauseButton.setEnabled(true);
+      posText.setEditable(true);
       break;
     default:
       // case RfbPlayer.MODE_STOPPED:
@@ -70,6 +72,7 @@ class ButtonPanel extends Panel implements ActionListener {
       playButton.setEnabled(true);
       pauseButton.setLabel("Pause");
       pauseButton.setEnabled(false);
+      posText.setEditable(true);
       break;
     }
     player.setMode(mode);
@@ -99,6 +102,8 @@ class ButtonPanel extends Panel implements ActionListener {
     } else if (evt.getSource() == pauseButton) {
       setMode((player.getMode() == RfbPlayer.MODE_PAUSED) ?
               RfbPlayer.MODE_PLAYBACK : RfbPlayer.MODE_PAUSED);
+    } else if (evt.getSource() == posText) {
+      player.setPos(Integer.parseInt(posText.getText()));
     }
   }
 }
index 59418d9e51eeb0f50ce96d224237ef9e4ed1141b..30ee42b1d03191c98d1c752c66db33ff3dab80e2 100644 (file)
@@ -106,7 +106,20 @@ class FbsInputStream extends InputStream {
     return (int)(timeOffset / 1000);
   }
 
-  public void resumeReading()
+  public void setPos(int pos)
+  {
+  }
+
+  public boolean isSeeking()
+  {
+    return false;
+  }
+
+  public void pausePlayback()
+  {
+  }
+
+  public void resumePlayback()
   {
     startTime = System.currentTimeMillis() - timeOffset;
   }
index 741736eba028139bfff3b70092cb1f6c4dc7f04a..16b3889abd25817f22965f9d0668cfdab6c9d6a9 100644 (file)
@@ -194,6 +194,10 @@ public class RfbPlayer extends java.applet.Applet
     }
   }
 
+  public void setPos(int pos) {
+    fbsStream.setPos(pos);
+  }
+
   public void updatePos() {
     buttonPanel.setPos(fbsStream.getPos());
   }
index f421df5979fb4999792f5b5c5bcf38a1f376730b..e0d9994d2e7172f813e485649777131fc775001a 100644 (file)
@@ -225,7 +225,7 @@ class VncCanvas extends Canvas {
          throw new EOFException("Playback stopped");
        }
        if (player.getMode() == player.MODE_PLAYBACK) {
-         player.fbsStream.resumeReading();
+         player.fbsStream.resumePlayback();
        }
       }
 
@@ -828,8 +828,9 @@ class VncCanvas extends Canvas {
   //
 
   void scheduleRepaint(int x, int y, int w, int h) {
-    // Request repaint, deferred if necessary.
-    repaint(player.deferScreenUpdates, x, y, w, h);
+    // Request repaint if not in the seeking mode.
+    if (!player.fbsStream.isSeeking())
+      repaint(player.deferScreenUpdates, x, y, w, h);
   }
 
 }