X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fsixth%2Fe3d%2Fgui%2FGuiComponent.java;h=4d94136a6a0f0e488349b0c75c3c14a851111f77;hb=HEAD;hp=3eb7d8b4a04d200c5e8d93790d1373a2bb85b2b2;hpb=dcdff57f0bab42387b2e4e215778d9e8efc60221;p=sixth-3d.git diff --git a/src/main/java/eu/svjatoslav/sixth/e3d/gui/GuiComponent.java b/src/main/java/eu/svjatoslav/sixth/e3d/gui/GuiComponent.java index 3eb7d8b..4d94136 100644 --- a/src/main/java/eu/svjatoslav/sixth/e3d/gui/GuiComponent.java +++ b/src/main/java/eu/svjatoslav/sixth/e3d/gui/GuiComponent.java @@ -1,20 +1,15 @@ /* - * Sixth 3D engine. Copyright ©2012-2018, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 3 of the GNU Lesser General Public License - * or later as published by the Free Software Foundation. - * + * Sixth 3D engine. Author: Svjatoslav Agejenko. + * This project is released under Creative Commons Zero (CC0) license. */ - package eu.svjatoslav.sixth.e3d.gui; import eu.svjatoslav.sixth.e3d.geometry.Box; import eu.svjatoslav.sixth.e3d.geometry.Point3D; -import eu.svjatoslav.sixth.e3d.geometry.Transform; +import eu.svjatoslav.sixth.e3d.gui.humaninput.KeyboardHelper; +import eu.svjatoslav.sixth.e3d.gui.humaninput.KeyboardInputHandler; import eu.svjatoslav.sixth.e3d.gui.humaninput.MouseInteractionController; -import eu.svjatoslav.sixth.e3d.gui.humaninput.UserInputHandler; -import eu.svjatoslav.sixth.e3d.gui.textEditorComponent.KeyboardHelper; +import eu.svjatoslav.sixth.e3d.math.Transform; import eu.svjatoslav.sixth.e3d.renderer.raster.shapes.basic.line.LineAppearance; import eu.svjatoslav.sixth.e3d.renderer.raster.shapes.composite.base.AbstractCompositeShape; import eu.svjatoslav.sixth.e3d.renderer.raster.shapes.composite.wireframe.WireframeBox; @@ -22,47 +17,43 @@ import eu.svjatoslav.sixth.e3d.renderer.raster.shapes.composite.wireframe.Wirefr import java.awt.event.KeyEvent; public class GuiComponent extends AbstractCompositeShape implements - UserInputHandler, MouseInteractionController { + KeyboardInputHandler, MouseInteractionController { private static final String GROUP_GUI_FOCUS = "gui.focus"; - public final ViewContext viewContext; + public final ViewPanel viewPanel; Box containingBox = new Box(); private WireframeBox borders = null; private boolean borderShown = false; public GuiComponent(final Transform transform, - final ViewContext viewContext, final Point3D size) { + final ViewPanel viewPanel, final Point3D size) { super(transform); - this.viewContext = viewContext; + this.viewPanel = viewPanel; setDimensions(size); } - @Override - public boolean beforeViewUpdate(final ViewContext viewContext, - final int millisecondsSinceLastFrame) { - return false; - } - private WireframeBox createBorder() { final LineAppearance appearance = new LineAppearance(10, new eu.svjatoslav.sixth.e3d.renderer.raster.Color(255, 0, 0, 100)); final double borderSize = 10; - final Box borderArea = containingBox.clone().addBorder(borderSize); + final Box borderArea = containingBox.clone().enlarge(borderSize); return new WireframeBox(borderArea, appearance); } @Override - public void focusLost(final ViewContext viewContext) { + public boolean focusLost(final ViewPanel viewPanel) { hideBorder(); + return true; } @Override - public void focusReceived(final ViewContext viewContext) { + public boolean focusReceived(final ViewPanel viewPanel) { showBorder(); + return true; } public WireframeBox getBorders() { @@ -91,33 +82,37 @@ public class GuiComponent extends AbstractCompositeShape implements } @Override - public void keyPressed(final KeyEvent event, final ViewContext viewContext) { + public boolean keyPressed(final KeyEvent event, final ViewPanel viewPanel) { if (event.getKeyChar() == KeyboardHelper.ESC) - viewContext.getKeyboardFocusTracker().popFocusOwner(); + viewPanel.getKeyboardFocusStack().popFocusOwner(); + return true; } @Override - public void keyReleased(final KeyEvent event, final ViewContext viewContext) { + public boolean keyReleased(final KeyEvent event, final ViewPanel viewPanel) { + return false; } @Override - public void mouseClicked() { - viewContext.getKeyboardFocusTracker().setFocusOwner(this); + public boolean mouseClicked(int button) { + return viewPanel.getKeyboardFocusStack().pushFocusOwner(this); } @Override - public void mouseEntered() { + public boolean mouseEntered() { + return false; } @Override - public void mouseExited() { + public boolean mouseExited() { + return false; } private void setDimensions(final Point3D size) { - containingBox.setSizeCentered(size); + containingBox.setBoxSize(size); } - public void showBorder() { + private void showBorder() { if (borderShown) return; borderShown = true;