blob: 56d8ad35aab8ea1b6640487e9aac3160fc611625 [file] [log] [blame]
//
// Copyright (C) 2002 HorizonLive.com, Inc. All Rights Reserved.
//
// This is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This software is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this software; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
// USA.
//
package com.tightvnc.rfbplayer;
import java.awt.*;
import java.awt.event.*;
class ButtonPanel extends Panel implements ActionListener {
protected RfbPlayer player;
protected Button playButton;
protected TextField posText;
protected TextField timeScaleText;
protected int lastPosSeconds = -1;
ButtonPanel(RfbPlayer player) {
this.player = player;
setLayout(new FlowLayout(FlowLayout.LEFT, 0, 0));
playButton = new Button("Play");
playButton.setEnabled(false);
add(playButton);
playButton.addActionListener(this);
add(new Label(" Position:"));
posText = new TextField(5);
add(posText);
posText.addActionListener(this);
add(new Label(" Speed:"));
timeScaleText = new TextField(5);
timeScaleText.setText(String.valueOf(player.getSpeed()));
add(timeScaleText);
timeScaleText.addActionListener(this);
}
public void setPaused(boolean paused) {
if (paused) {
playButton.setLabel("Play");
} else {
playButton.setLabel("Pause");
}
playButton.setEnabled(true);
}
public void setPos(long pos) {
int seconds = (int)(pos / 1000);
if (seconds != lastPosSeconds) {
lastPosSeconds = seconds;
char[] zeroes = {'0', '0', '0', '0'};
String text = String.valueOf(seconds);
if (text.length() < 4) {
text = new String(zeroes, 0, 4 - text.length()) + text;
}
posText.setText(text);
posText.setCaretPosition(text.length());
}
}
//
// Event processing.
//
public void actionPerformed(ActionEvent evt) {
if (evt.getSource() == playButton) {
player.setPaused(playButton.getLabel().equals("Pause"));
} else if (evt.getSource() == posText) {
player.setPos(Long.parseLong(posText.getText()) * 1000);
} else if (evt.getSource() == timeScaleText) {
double speed = Double.valueOf(timeScaleText.getText()).doubleValue();
if (speed <= 0.0)
speed = 1.0;
timeScaleText.setText(String.valueOf(speed));
player.setSpeed(speed);
}
}
}