Skip to content

Commit

Permalink
Panel ready
Browse files Browse the repository at this point in the history
  • Loading branch information
alex committed Mar 7, 2022
1 parent 04099a8 commit a8cbab7
Show file tree
Hide file tree
Showing 2 changed files with 62 additions and 13 deletions.
33 changes: 20 additions & 13 deletions src/main/java/app/Application.java
Original file line number Diff line number Diff line change
Expand Up @@ -55,19 +55,6 @@ public class Application implements Consumer<Event> {
public Application() {
// создаём окно
window = App.makeWindow();
// задаём обработчиком событий текущий объект
window.setEventListener(this);
// задаём заголовок
window.setTitle("Java 2D");
// задаём размер окна
window.setWindowSize(900, 900);
// задаём его положение
window.setWindowPosition(100, 100);
// задаём иконку
switch (Platform.CURRENT) {
case WINDOWS -> window.setIcon(new File("src/main/resources/windows.ico"));
case MACOS -> window.setIcon(new File("src/main/resources/macos.icns"));
}

// создаём панель рисования
panelRendering = new PanelRendering(
Expand All @@ -90,6 +77,21 @@ public Application() {
2, 1
);

// задаём обработчиком событий текущий объект
window.setEventListener(this);
// задаём заголовок
window.setTitle("Java 2D");
// задаём размер окна
window.setWindowSize(900, 900);
// задаём его положение
window.setWindowPosition(100, 100);

// задаём иконку
switch (Platform.CURRENT) {
case WINDOWS -> window.setIcon(new File("src/main/resources/windows.ico"));
case MACOS -> window.setIcon(new File("src/main/resources/macos.icns"));
}

// названия слоёв, которые будем перебирать
String[] layerNames = new String[]{
"LayerGLSkija", "LayerRasterSkija"
Expand Down Expand Up @@ -133,6 +135,11 @@ public void accept(Event e) {
paint(s.getCanvas(), new CoordinateSystem2i(0, 0, s.getWidth(), s.getHeight())
);
}

// передаём события на обработку панелям
panelControl.accept(e);
panelRendering.accept(e);
panelLog.accept(e);
}

/**
Expand Down
42 changes: 42 additions & 0 deletions src/main/java/panels/Panel.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import io.github.humbleui.skija.Canvas;
import io.github.humbleui.skija.Paint;
import misc.CoordinateSystem2i;
import misc.Vector2i;

import java.util.function.Consumer;

Expand All @@ -30,6 +31,18 @@ public abstract class Panel implements Consumer<Event> {
* цвет подложки
*/
protected final int backgroundColor;
/**
* последнее движение мыши
*/
protected Vector2i lastMove = new Vector2i(0, 0);
/**
* было ли оно внутри панели
*/
protected boolean lastInside = false;
/**
* последняя СК окна
*/
protected CoordinateSystem2i lastWindowCS;

/**
* Конструктор панели
Expand Down Expand Up @@ -71,6 +84,8 @@ public void paint(Canvas canvas, CoordinateSystem2i windowCS) {
paintImpl(canvas, windowCS);
// восстанавливаем область рисования
canvas.restore();
// сохраняем СК окна
lastWindowCS = windowCS;
}

/**
Expand All @@ -81,4 +96,31 @@ public void paint(Canvas canvas, CoordinateSystem2i windowCS) {
*/
public abstract void paintImpl(Canvas canvas, CoordinateSystem2i windowCS);

/**
* Проверка, содержит ли панель координаты
*
* @param pos положение
* @return флаг, содержит или нет
*/
public boolean contains(Vector2i pos) {
if (lastWindowCS != null)
return lastWindowCS.checkCoords(pos);
return false;
}

/**
* Обработчик событий
* при перегрузке обязателен вызов реализации предка
*
* @param e событие
*/
@Override
public void accept(Event e) {
if (e instanceof EventMouseMove ee) {
// сохраняем последнее положение мыши
lastMove = new Vector2i(ee);
// сохраняем флаг, был ли курсор внутри панели
lastInside = contains(lastMove);
}
}
}

0 comments on commit a8cbab7

Please sign in to comment.