Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public abstract class AbstractGuiManager implements GuiManager {
- private final List<IFrame> frames;
- private Theme theme;
- //private BufferedImage offScreenImage; ignore was debating this
- //private Graphics offScreenGraphics;
- public AbstractGuiManager() {
- frames = new CopyOnWriteArrayList<IFrame>();
- }
- @Override
- public abstract void setup();
- @Override
- public void addFrame(IFrame frame) {
- frame.setTheme(theme);
- frames.add(0, frame);
- }
- @Override
- public void removeFrame(IFrame frame) {
- frames.remove(frame);
- }
- @Override
- public IFrame[] getFrames() {
- return frames.toArray(new IFrame[frames.size()]);
- }
- @Override
- public void bringForward(IFrame frame) {
- if (frames.remove(frame))
- frames.add(0, frame);
- }
- @Override
- public Theme getTheme() {
- return theme;
- }
- @Override
- public void setTheme(Theme theme) {
- this.theme = theme;
- for (IFrame frame : frames)
- frame.setTheme(theme);
- resizeComponents();
- }
- protected abstract void resizeComponents();
- @Override
- public void render() {
- IFrame[] frames = getFrames();
- for (int i = frames.length - 1; i >= 0; i--)
- frames[i].render();
- }
- @Override
- public void renderPinned() {
- IFrame[] frames = getFrames();
- for (int i = frames.length - 1; i >= 0; i--)
- if (frames[i].isPinned())
- frames[i].render();
- }
- @Override
- public void update() {
- IFrame[] frames = getFrames();
- for (int i = frames.length - 1; i >= 0; i--)
- frames[i].update();
- }
- /**
- public void onMousePress(int x, int y, int button) {
- for (IFrame frame : this.getFrames()) {
- if (!frame.isVisible())
- continue;
- if (!frame.isMinimized() && !frame.getArea().contains(x, y)) {
- for (IComponent component : frame.getChildren()) {
- for (Rectangle area : component.getTheme().getUIForComponent(component).getInteractableRegions(component)) {
- if (area.contains(x - frame.getX() - component.getX(), y - frame.getY() - component.getY())) {
- frame.onMousePress(x - frame.getX(), y - frame.getY(), button);
- this.bringForward(frame);
- return;
- }
- }
- }
- }
- }
- for (IFrame frame : this.getFrames()) {
- if (!frame.isVisible())
- continue;
- if (!frame.isMinimized() && frame.getArea().contains(x, y)) {
- frame.onMousePress(x - frame.getX(), y - frame.getY(), button);
- this.bringForward(frame);
- break;
- } else if (frame.isMinimized()) {
- for (Rectangle area : frame.getTheme().getUIForComponent(frame).getInteractableRegions(frame)) {
- if (area.contains(x - frame.getX(), y - frame.getY())) {
- frame.onMousePress(x - frame.getX(), y - frame.getY(), button);
- this.bringForward(frame);
- return;
- }
- }
- }
- }
- }
- public void onMouseRelease(int x, int y, int button) {
- for (IFrame frame : this.getFrames()) {
- if (!frame.isVisible())
- continue;
- if (!frame.isMinimized() && !frame.getArea().contains(x, y)) {
- for (IComponent component : frame.getChildren()) {
- for (Rectangle area : component.getTheme().getUIForComponent(component).getInteractableRegions(component)) {
- if (area.contains(x - frame.getX() - component.getX(), y - frame.getY() - component.getY())) {
- frame.onMouseRelease(x - frame.getX(), y - frame.getY(), button);
- this.bringForward(frame);
- return;
- }
- }
- }
- }
- }
- for (IFrame frame : this.getFrames()) {
- if (!frame.isVisible())
- continue;
- if (!frame.isMinimized() && frame.getArea().contains(x, y)) {
- frame.onMouseRelease(x - frame.getX(), y - frame.getY(), button);
- this.bringForward(frame);
- break;
- } else if (frame.isMinimized()) {
- for (Rectangle area : frame.getTheme().getUIForComponent(frame).getInteractableRegions(frame)) {
- if (area.contains(x - frame.getX(), y - frame.getY())) {
- frame.onMouseRelease(x - frame.getX(), y - frame.getY(), button);
- this.bringForward(frame);
- return;
- }
- }
- }
- }
- }
- **/
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement