Files
WebClient/src/main/java/org/openautonomousconnection/webclient/ui/TopBar.java
2026-02-08 14:56:17 +01:00

84 lines
2.3 KiB
Java

/* Author: Maple
* Jan. 18 2026
* */
package org.openautonomousconnection.webclient.ui;
import lombok.Getter;
import org.openautonomousconnection.webclient.Main;
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
@Deprecated(forRemoval = true)
public class TopBar extends JPanel {
@Getter
private MenuButton closeButton, minimizeButton, maximizeButton;
@Getter
private JPanel buttonPanel;
private Point dragOffset;
public TopBar() {
this.setPreferredSize(new Dimension(0, 40));
this.buttonPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));
this.closeButton = new MenuButton("X", MenuButton.ClickAction.CLOSE);
this.minimizeButton = new MenuButton("-", MenuButton.ClickAction.MINIMIZE);
this.maximizeButton = new MenuButton("[]", MenuButton.ClickAction.MAXIMIZE);
this.buttonPanel.add(this.closeButton);
this.buttonPanel.add(this.minimizeButton);
this.buttonPanel.add(this.maximizeButton);
this.init();
}
private void init() {
this.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
Point mouseOnScreen = e.getLocationOnScreen();
Point frameLocation = Main.mainFrame.getLocation();
dragOffset = new Point(
mouseOnScreen.x - frameLocation.x,
mouseOnScreen.y - frameLocation.y
);
}
@Override
public void mouseReleased(MouseEvent e) {
dragOffset = null;
}
});
this.addMouseMotionListener(new MouseMotionAdapter() {
@Override
public void mouseDragged(MouseEvent e) {
if (dragOffset != null) {
Point mouseOnScreen = e.getLocationOnScreen();
int newX = mouseOnScreen.x - dragOffset.x;
int newY = mouseOnScreen.y - dragOffset.y;
Main.mainFrame.setLocation(newX, newY);
}
}
});
}
public void initButtonPanel(String alignment) {
this.setLayout(new BorderLayout());
this.add(this.buttonPanel, alignment);
this.repaint();
}
}