Compare commits

..

No commits in common. "master" and "master" have entirely different histories.

2 changed files with 22 additions and 40 deletions

View File

@ -127,7 +127,7 @@ public class MarioKartWorldTracker {
panel.setCompletionState(false);
}, null));
bulk.add(item("Bulk Mark", T -> {
panel.startBulkMarking();
panel.startBulkMarking(panel.getMousePosition());
}, KeyStroke.getKeyStroke('m')));
bar.add(bulk);
JMenu fuckups = new JMenu("I Fucked up");

View File

@ -1,7 +1,6 @@
package speiger.src.ui;
import java.awt.Color;
import java.awt.Cursor;
import java.awt.EventQueue;
import java.awt.Graphics;
import java.awt.Graphics2D;
@ -35,8 +34,6 @@ public class MapPanel extends JPanel {
Point lastDrag = null;
Point startPos;
Point lastPos;
Point dragStart = null;
boolean bulkSelectionBegin;
Image map = new ImageIcon(MapPanel.class.getResource("/assets/images/map.png")).getImage();
Image[] medal = new Image[] {
new ImageIcon(MapPanel.class.getResource("/assets/images/medal.png")).getImage(),
@ -91,14 +88,7 @@ public class MapPanel extends JPanel {
@Override
public void mousePressed(MouseEvent e) {
if (bulkSelectionBegin && startPos == null) {
startPos = screenToMap(e.getPoint());
bulkSelectionBegin = false;
repaint();
return;
}
lastDrag = e.getPoint();
dragStart = lastDrag;
}
@Override
@ -116,10 +106,6 @@ public class MapPanel extends JPanel {
@Override
public void mouseDragged(MouseEvent e) {
if (startPos != null) {
lastPos = screenToMap(e.getPoint());
repaint();
}
if(lastDrag == null) return;
offset.translate((int)(e.getX() - lastDrag.getX()), (int)(e.getY() - lastDrag.getY()));
lastDrag = e.getPoint();
@ -127,37 +113,23 @@ public class MapPanel extends JPanel {
}
@Override
public void mouseReleased(MouseEvent e) {
if (lastDrag != null && !e.getPoint().equals(dragStart)) {
lastDrag = null;
dragStart = null;
return;
}
dragStart = null;
if(startPos != null && !startPos.equals(screenToMap(e.getPoint()))) {
public void mouseClicked(MouseEvent e) {
if(startPos != null) {
if(e.getButton() == 1) {
setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
int result = JOptionPane.showOptionDialog(frame, "What do you want to do?", "Bulk Marking", JOptionPane.DEFAULT_OPTION, JOptionPane.QUESTION_MESSAGE, null, new Object[] {"Complete", "Uncomplete", "Cancel"}, "Complete");
if(result == JOptionPane.CANCEL_OPTION || result == JOptionPane.CLOSED_OPTION) {
startPos = null;
repaint();
return;
}
if(result == 2) return;
List<Marker> markers = getMarkers(getMarkedArea(), zoom);
if(markers.isEmpty()) return;
boolean completion = result == JOptionPane.OK_OPTION;
boolean completion = result == 0;
Registry.INSTANCE.setBulkOperation(true);
markers.forEach(T -> T.setCompletion(completion));
Registry.INSTANCE.setBulkOperation(false);
startPos = null;
repaint();
}
return;
}
}
@Override
public void mouseClicked(MouseEvent e) {
Point hover = screenToMap(e.getPoint());
Marker marker = findMarker(hover, zoom);
if(marker == null) return;
@ -181,9 +153,8 @@ public class MapPanel extends JPanel {
this.progressUpdate = run;
}
public void startBulkMarking() {
bulkSelectionBegin = true;
setCursor(Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR));
public void startBulkMarking(Point point) {
this.startPos = this.screenToMap(point);
}
public void onImported() {
@ -243,9 +214,20 @@ public class MapPanel extends JPanel {
marker.drawHover(g2, (float)zoom);
}
if(startPos != null && lastPos != null) {
Rectangle rect = getMarkedArea();
Point start = new Point(startPos);
Point end = new Point(lastPos);
if(start.x > end.x) {
int x = start.x;
start.x = end.x;
end.x = x;
}
if(start.y > end.y) {
int y = start.y;
start.y = end.y;
end.y = y;
}
g2.setColor(Color.BLUE);
g2.drawRect(rect.x, rect.y, rect.width, rect.height);
g2.drawRect(start.x, start.y, end.x-start.x, end.y-start.y);
}
}