Telegram features UI implemented.

This commit is contained in:
Asal Lotfi
2025-09-08 00:22:05 +03:30
parent ae9bcce964
commit 1594c43c95
5 changed files with 357 additions and 184 deletions
@@ -0,0 +1,42 @@
package org.to.telegramfinalproject.UI;
import javafx.application.Platform;
import javafx.fxml.FXML;
import javafx.scene.control.ScrollPane;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.Pane;
import javafx.scene.layout.StackPane;
public class TelegramFeaturesController {
@FXML private Pane overlayBackground;
@FXML private ScrollPane featureScroll;
@FXML private StackPane rootOverlay;
@FXML private BorderPane contentCard;
@FXML
public void initialize() {
// Clicking background closes overlay
overlayBackground.setOnMouseClicked( e -> {
MainController.getInstance().closeOverlay(rootOverlay);
});
// Smooth scroll feel
featureScroll.getStylesheets().add(getClass().getResource("/org/to/telegramfinalproject/CSS/scrollpane.css").toExternalForm());
featureScroll.setPannable(true);
featureScroll.setFitToWidth(true);
featureScroll.setFitToHeight(false);
featureScroll.getContent().setOnScroll(event -> {
double deltaY = event.getDeltaY() * 0.003;
featureScroll.setVvalue(featureScroll.getVvalue() - deltaY);
});
// Register scene for ThemeManager → stylesheet swap will handle colors/icons
Platform.runLater(() -> {
if (contentCard.getScene() != null) {
ThemeManager.getInstance().registerScene(contentCard.getScene());
}
});
}
}