(Canvas canvas, int width, int height, float scale)
| 42 | } |
| 43 | |
| 44 | @Override |
| 45 | public void paintImpl(Canvas canvas, int width, int height, float scale) { |
| 46 | var capHeight = Example.FONT12.getMetrics().getCapHeight(); |
| 47 | |
| 48 | // position |
| 49 | if (lastInside && lastMouseMove != null) { |
| 50 | try (var paint = new Paint().setColor(0x40FFFFFF)) { |
| 51 | var x = lastMouseMove.getX() - lastX; |
| 52 | var y = lastMouseMove.getY() - lastY; |
| 53 | canvas.drawRect(Rect.makeXYWH(0, y - 1 * scale, width, 2 * scale), paint); |
| 54 | canvas.drawRect(Rect.makeXYWH(x - 1 * scale, 0, 2 * scale, height), paint); |
| 55 | |
| 56 | canvas.save(); |
| 57 | canvas.translate(x + 3 * scale, y - 5 * scale); |
| 58 | canvas.drawString(x + ", " + y, 0, 0, Example.FONT12, paint); |
| 59 | canvas.translate(0, 10 * scale + capHeight); |
| 60 | for (var button: MouseButton.values()) |
| 61 | if (lastMouseMove.isButtonDown(button)) { |
| 62 | canvas.drawString(capitalize(button.toString()), 0, 0, Example.FONT12, paint); |
| 63 | canvas.translate(0, 2 * capHeight); |
| 64 | } |
| 65 | for (var modifier: KeyModifier.values()) |
| 66 | if (lastMouseMove.isModifierDown(modifier)) { |
| 67 | canvas.drawString(capitalize(modifier.toString()), 0, 0, Example.FONT12, paint); |
| 68 | canvas.translate(0, 2 * capHeight); |
| 69 | } |
| 70 | canvas.restore(); |
| 71 | } |
| 72 | } |
| 73 | |
| 74 | // scroll |
| 75 | try (var paint = new Paint().setMode(PaintMode.STROKE).setStrokeWidth(2 * scale).setColor(0x40FFFFFF)) { |
| 76 | for (int i = 0; i < 100; ++i) { |
| 77 | var x = scroll.getX() + i * 10 * scale; |
| 78 | if (0 <= x && x <= width) |
| 79 | canvas.drawLine(x, 0, x, i * scale, paint); |
| 80 | var y = scroll.getY() + i * 10 * scale; |
| 81 | if (0 <= y && y <= height) |
| 82 | canvas.drawLine(0, y, i * scale, y, paint); |
| 83 | } |
| 84 | } |
| 85 | |
| 86 | // buttons |
| 87 | |
| 88 | var lines = Arrays.stream(MouseButton._values).map((button) -> TextLine.make(capitalize(button.toString()), Example.FONT12)).collect(Collectors.toList()); |
| 89 | try (var paint = new Paint();) { |
| 90 | |
| 91 | |
| 92 | var padding = (int) 8 * scale; |
| 93 | int y = Example.PADDING; |
| 94 | for (var button: MouseButton._values) { |
| 95 | try (var line = TextLine.make(capitalize(button.toString()), Example.FONT12); ) { |
| 96 | var pressed = buttons.contains(button); |
| 97 | if (pressed) { |
| 98 | paint.setColor(0x40000000); |
| 99 | canvas.drawRRect(RRect.makeXYWH(Example.PADDING, y, line.getWidth() + 2 * padding, capHeight + 2 * padding, 4 * scale), paint); |
| 100 | } |
| 101 |
nothing calls this directly
no test coverage detected