use of javafx.scene.Cursor in project simulation-construction-set-2 by ihmcrobotics.
the class MainWindowController method setupDrawer.
public void setupDrawer(Pane sidePane) {
// Workaround for the drawer resizing:
// Here we make an edge similar to a SplitPane separator on which the cursor will change
StackPane edge = new StackPane();
edge.setStyle("-fx-background-color:white;-fx-effect:innershadow(three-pass-box, #A9A9A9, 2.5, 0.0, -1.0, 0.0)");
edge.setPrefWidth(5.0);
edge.setMinWidth(5.0);
edge.setCursor(Cursor.E_RESIZE);
HBox hBox = new HBox(sidePane, edge);
toolDrawer.setSidePane(hBox);
HBox.setHgrow(sidePane, Priority.ALWAYS);
HBox.setHgrow(edge, Priority.NEVER);
// The edge passes on the MouseEvents used for resizing the drawer to the inner StackPane.
edge.addEventHandler(MouseEvent.MOUSE_PRESSED, hBox.getParent()::fireEvent);
edge.addEventHandler(MouseEvent.MOUSE_DRAGGED, hBox.getParent()::fireEvent);
edge.addEventHandler(MouseEvent.MOUSE_RELEASED, hBox.getParent()::fireEvent);
Node remove = toolDrawer.getChildren().remove(toolDrawer.getChildren().size() - 1);
mainPane.addEventHandler(KeyEvent.KEY_PRESSED, (EventHandler<? super KeyEvent>) e -> {
if (e.getCode() == KeyCode.ESCAPE && toolDrawer.isOpened()) {
toolDrawer.close();
e.consume();
}
});
toolDrawer.setResizeContent(true);
toolDrawer.setResizableOnDrag(true);
toolDrawer.setContent(remove);
hamburger.setOnMouseClicked(e -> {
if (toolDrawer.isClosed() || toolDrawer.isClosing())
toolDrawer.open();
else
toolDrawer.close();
});
HamburgerSlideCloseTransition transition = new HamburgerSlideCloseTransition(hamburger);
toolDrawer.addEventHandler(JFXDrawerEvent.CLOSING, e -> {
transition.setRate(-0.5);
transition.play();
});
toolDrawer.addEventFilter(JFXDrawerEvent.OPENING, e -> {
transition.setRate(0.5);
transition.play();
});
}
use of javafx.scene.Cursor in project JFoenix by sshahine.
the class JFXDecorator method handleDragEventOnDecoratorPane.
private void handleDragEventOnDecoratorPane(MouseEvent mouseEvent) {
isDragging = true;
if (!mouseEvent.isPrimaryButtonDown() || (xOffset == -1 && yOffset == -1)) {
return;
}
/*
* Long press generates drag event!
*/
if (primaryStage.isFullScreen() || mouseEvent.isStillSincePress() || primaryStage.isMaximized() || maximized) {
return;
}
newX = mouseEvent.getScreenX();
newY = mouseEvent.getScreenY();
double deltax = newX - initX;
double deltay = newY - initY;
Cursor cursor = this.getCursor();
if (Cursor.E_RESIZE.equals(cursor)) {
setStageWidth(initWidth + deltax);
mouseEvent.consume();
} else if (Cursor.NE_RESIZE.equals(cursor)) {
if (setStageHeight(initHeight - deltay)) {
primaryStage.setY(initStageY + deltay);
}
setStageWidth(initWidth + deltax);
mouseEvent.consume();
} else if (Cursor.SE_RESIZE.equals(cursor)) {
setStageWidth(initWidth + deltax);
setStageHeight(initHeight + deltay);
mouseEvent.consume();
} else if (Cursor.S_RESIZE.equals(cursor)) {
setStageHeight(initHeight + deltay);
mouseEvent.consume();
} else if (Cursor.W_RESIZE.equals(cursor)) {
if (setStageWidth(initWidth - deltax)) {
primaryStage.setX(initStageX + deltax);
}
mouseEvent.consume();
} else if (Cursor.SW_RESIZE.equals(cursor)) {
if (setStageWidth(initWidth - deltax)) {
primaryStage.setX(initStageX + deltax);
}
setStageHeight(initHeight + deltay);
mouseEvent.consume();
} else if (Cursor.NW_RESIZE.equals(cursor)) {
if (setStageWidth(initWidth - deltax)) {
primaryStage.setX(initStageX + deltax);
}
if (setStageHeight(initHeight - deltay)) {
primaryStage.setY(initStageY + deltay);
}
mouseEvent.consume();
} else if (Cursor.N_RESIZE.equals(cursor)) {
if (setStageHeight(initHeight - deltay)) {
primaryStage.setY(initStageY + deltay);
}
mouseEvent.consume();
} else if (allowMove) {
primaryStage.setX(mouseEvent.getScreenX() - xOffset);
primaryStage.setY(mouseEvent.getScreenY() - yOffset);
mouseEvent.consume();
}
}
use of javafx.scene.Cursor in project controlsfx by controlsfx.
the class SnapshotViewSkin method handleMouseEvent.
/* ************************************************************************
* *
* Mouse Events *
* *
**************************************************************************/
/**
* Handles mouse events.
*
* @param event
* the {@link MouseEvent} to handle
*/
private void handleMouseEvent(MouseEvent event) {
Cursor newCursor = handleMouseEventImpl(event);
mouseNode.setCursor(newCursor);
}
use of javafx.scene.Cursor in project GameComposer by mirkosertic.
the class UndecoratorController method setStageResizableWith.
/**
* Stage resize management
*
* @param stage
* @param node
* @param PADDING
* @param SHADOW
*/
public void setStageResizableWith(final Stage stage, final Node node, int PADDING, int SHADOW) {
RESIZE_PADDING = PADDING;
SHADOW_WIDTH = SHADOW;
node.setOnMouseClicked(mouseEvent -> {
if (undecorator.getStageStyle() != StageStyle.UTILITY && !stage.isFullScreen() && mouseEvent.getClickCount() > 1) {
if (mouseEvent.getSceneY() - SHADOW_WIDTH < MAXIMIZE_BORDER) {
undecorator.maximizeProperty().set(!undecorator.maximizeProperty().get());
mouseEvent.consume();
}
}
});
node.setOnMousePressed(mouseEvent -> {
if (mouseEvent.isPrimaryButtonDown()) {
initX = mouseEvent.getScreenX();
initY = mouseEvent.getScreenY();
mouseEvent.consume();
}
});
node.setOnMouseDragged(mouseEvent -> {
if (!mouseEvent.isPrimaryButtonDown() || (initX == -1 && initY == -1)) {
return;
}
if (stage.isFullScreen()) {
return;
}
/*
* Long press generates drag event!
*/
if (mouseEvent.isStillSincePress()) {
return;
}
if (maximized) {
// Remove maximized state
undecorator.maximizeProperty.set(false);
return;
} else // Docked then moved, so restore state
if (savedBounds != null) {
undecorator.setShadow(true);
}
newX = mouseEvent.getScreenX();
newY = mouseEvent.getScreenY();
double deltax = newX - initX;
double deltay = newY - initY;
Cursor cursor = node.getCursor();
if (Cursor.E_RESIZE.equals(cursor)) {
setStageWidth(stage, stage.getWidth() + deltax);
mouseEvent.consume();
} else if (Cursor.NE_RESIZE.equals(cursor)) {
if (setStageHeight(stage, stage.getHeight() - deltay)) {
setStageY(stage, stage.getY() + deltay);
}
setStageWidth(stage, stage.getWidth() + deltax);
mouseEvent.consume();
} else if (Cursor.SE_RESIZE.equals(cursor)) {
setStageWidth(stage, stage.getWidth() + deltax);
setStageHeight(stage, stage.getHeight() + deltay);
mouseEvent.consume();
} else if (Cursor.S_RESIZE.equals(cursor)) {
setStageHeight(stage, stage.getHeight() + deltay);
mouseEvent.consume();
} else if (Cursor.W_RESIZE.equals(cursor)) {
if (setStageWidth(stage, stage.getWidth() - deltax)) {
stage.setX(stage.getX() + deltax);
}
mouseEvent.consume();
} else if (Cursor.SW_RESIZE.equals(cursor)) {
if (setStageWidth(stage, stage.getWidth() - deltax)) {
stage.setX(stage.getX() + deltax);
}
setStageHeight(stage, stage.getHeight() + deltay);
mouseEvent.consume();
} else if (Cursor.NW_RESIZE.equals(cursor)) {
if (setStageWidth(stage, stage.getWidth() - deltax)) {
stage.setX(stage.getX() + deltax);
}
if (setStageHeight(stage, stage.getHeight() - deltay)) {
setStageY(stage, stage.getY() + deltay);
}
mouseEvent.consume();
} else if (Cursor.N_RESIZE.equals(cursor)) {
if (setStageHeight(stage, stage.getHeight() - deltay)) {
setStageY(stage, stage.getY() + deltay);
}
mouseEvent.consume();
}
});
node.setOnMouseMoved(mouseEvent -> {
if (maximized) {
setCursor(node, Cursor.DEFAULT);
// maximized mode does not support resize
return;
}
if (stage.isFullScreen()) {
return;
}
if (!stage.isResizable()) {
return;
}
double x = mouseEvent.getX();
double y = mouseEvent.getY();
Bounds boundsInParent = node.getBoundsInParent();
if (isRightEdge(x, y, boundsInParent)) {
if (y < RESIZE_PADDING + SHADOW_WIDTH) {
setCursor(node, Cursor.NE_RESIZE);
} else if (y > boundsInParent.getHeight() - (double) (RESIZE_PADDING + SHADOW_WIDTH)) {
setCursor(node, Cursor.SE_RESIZE);
} else {
setCursor(node, Cursor.E_RESIZE);
}
} else if (isLeftEdge(x, y, boundsInParent)) {
if (y < RESIZE_PADDING + SHADOW_WIDTH) {
setCursor(node, Cursor.NW_RESIZE);
} else if (y > boundsInParent.getHeight() - (double) (RESIZE_PADDING + SHADOW_WIDTH)) {
setCursor(node, Cursor.SW_RESIZE);
} else {
setCursor(node, Cursor.W_RESIZE);
}
} else if (isTopEdge(x, y, boundsInParent)) {
setCursor(node, Cursor.N_RESIZE);
} else if (isBottomEdge(x, y, boundsInParent)) {
setCursor(node, Cursor.S_RESIZE);
} else {
setCursor(node, Cursor.DEFAULT);
}
});
}
use of javafx.scene.Cursor in project bined-lib-java by exbin.
the class DefaultCodeAreaMouseListener method updateMouseCursor.
private void updateMouseCursor(MouseEvent me) {
int cursorShape = ((CaretCapable) codeArea).getMouseCursorShape((int) computeRelativeX(me), (int) computeRelativeY(me));
// Reuse current cursor if unchanged
Cursor newCursor = cursorShape == 0 ? defaultCursor : textCursor;
if (newCursor != currentCursor) {
currentCursor = newCursor;
codeArea.setCursor(newCursor);
}
}
Aggregations