Improve recording PausedIndicator

Make the whole area clickable and not only the painted area
This commit is contained in:
0xb00bface 2020-11-21 18:43:57 +01:00
parent 0e7b5b5452
commit eb1db87e82
3 changed files with 41 additions and 9 deletions

View File

@ -4,9 +4,9 @@ package ctbrec.ui;
import javafx.scene.paint.Color; import javafx.scene.paint.Color;
import javafx.scene.shape.Polygon; import javafx.scene.shape.Polygon;
public class PauseIndicator extends Polygon { public class PauseIcon extends Polygon {
public PauseIndicator(Color color, int size) { public PauseIcon(Color color, int size) {
super( super(
0, size, 0, size,
0, 0, 0, 0,

View File

@ -0,0 +1,36 @@
package ctbrec.ui.controls;
import ctbrec.ui.PauseIcon;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Cursor;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.scene.paint.Paint;
import javafx.scene.shape.Rectangle;
public class PausedIndicator extends StackPane {
private PauseIcon pausedIcon;
private Rectangle clickPanel;
public PausedIndicator(int size, Color color) {
pausedIcon = new PauseIcon(color, size);
pausedIcon.setVisible(false);
clickPanel = new Rectangle(size, size);
clickPanel.setCursor(Cursor.HAND);
clickPanel.setFill(Paint.valueOf("#00000000"));
getChildren().add(pausedIcon);
getChildren().add(clickPanel);
StackPane.setMargin(pausedIcon, new Insets(3));
StackPane.setAlignment(pausedIcon, Pos.TOP_LEFT);
StackPane.setMargin(clickPanel, new Insets(3));
StackPane.setAlignment(clickPanel, Pos.TOP_LEFT);
pausedIcon.visibleProperty().bindBidirectional(visibleProperty());
pausedIcon.onMouseClickedProperty().bindBidirectional(onMouseClickedProperty());
clickPanel.onMouseClickedProperty().bindBidirectional(onMouseClickedProperty());
}
}

View File

@ -27,10 +27,10 @@ import ctbrec.io.HttpException;
import ctbrec.recorder.Recorder; import ctbrec.recorder.Recorder;
import ctbrec.ui.AutosizeAlert; import ctbrec.ui.AutosizeAlert;
import ctbrec.ui.CamrecApplication; import ctbrec.ui.CamrecApplication;
import ctbrec.ui.PauseIndicator;
import ctbrec.ui.SiteUiFactory; import ctbrec.ui.SiteUiFactory;
import ctbrec.ui.StreamSourceSelectionDialog; import ctbrec.ui.StreamSourceSelectionDialog;
import ctbrec.ui.action.PlayAction; import ctbrec.ui.action.PlayAction;
import ctbrec.ui.controls.PausedIndicator;
import ctbrec.ui.controls.StreamPreview; import ctbrec.ui.controls.StreamPreview;
import javafx.animation.FadeTransition; import javafx.animation.FadeTransition;
import javafx.animation.FillTransition; import javafx.animation.FillTransition;
@ -85,7 +85,7 @@ public class ThumbCell extends StackPane {
private Text resolutionTag; private Text resolutionTag;
private Recorder recorder; private Recorder recorder;
private Circle recordingIndicator; private Circle recordingIndicator;
private PauseIndicator pausedIndicator; private PausedIndicator pausedIndicator;
private int index = 0; private int index = 0;
ContextMenu popup; ContextMenu popup;
private static final Color colorNormal = Color.BLACK; private static final Color colorNormal = Color.BLACK;
@ -183,12 +183,8 @@ public class ThumbCell extends StackPane {
StackPane.setAlignment(recordingIndicator, Pos.TOP_LEFT); StackPane.setAlignment(recordingIndicator, Pos.TOP_LEFT);
getChildren().add(recordingIndicator); getChildren().add(recordingIndicator);
pausedIndicator = new PauseIndicator(colorRecording, 16); pausedIndicator = new PausedIndicator(16, colorRecording);
pausedIndicator.setVisible(false);
pausedIndicator.setCursor(Cursor.HAND);
pausedIndicator.setOnMouseClicked(e -> pauseResumeAction(false)); pausedIndicator.setOnMouseClicked(e -> pauseResumeAction(false));
StackPane.setMargin(pausedIndicator, new Insets(3));
StackPane.setAlignment(pausedIndicator, Pos.TOP_LEFT);
getChildren().add(pausedIndicator); getChildren().add(pausedIndicator);
if (Config.getInstance().getSettings().livePreviews) { if (Config.getInstance().getSettings().livePreviews) {