| 103 | } |
| 104 | |
| 105 | public void paint(Canvas canvas, int width, int height) { |
| 106 | float scale = window.getScreen().getScale(); |
| 107 | PADDING = (int) (10 * scale); |
| 108 | int panelWidth = (width - (COLS + 1) * PADDING) / COLS; |
| 109 | int panelHeight = (height - (ROWS + 1) * PADDING) / ROWS; |
| 110 | if (panelWidth <= 0 || panelHeight <= 0) |
| 111 | return; |
| 112 | |
| 113 | if (lastScale != scale) { |
| 114 | FONT12.setSize(12 * scale); |
| 115 | FONT24.setSize(24 * scale); |
| 116 | FONT48.setSize(48 * scale); |
| 117 | } |
| 118 | |
| 119 | canvas.clear(0xFF264653); |
| 120 | int canvasCount = canvas.save(); |
| 121 | |
| 122 | // First row |
| 123 | panelMouse.paint (canvas, PADDING + (panelWidth + PADDING) * 0, PADDING + (panelHeight + PADDING) * 0, panelWidth, panelHeight, scale); |
| 124 | panelTouch.paint (canvas, PADDING + (panelWidth + PADDING) * 1, PADDING + (panelHeight + PADDING) * 0, panelWidth, panelHeight, scale); |
| 125 | panelTextInput.paint (canvas, PADDING + (panelWidth + PADDING) * 2, PADDING + (panelHeight + PADDING) * 0, panelWidth, panelHeight, scale); |
| 126 | panelMouseCursors.paint (canvas, PADDING + (panelWidth + PADDING) * 3, PADDING + (panelHeight + PADDING) * 0, panelWidth, panelHeight, scale); |
| 127 | |
| 128 | // Second row |
| 129 | panelScreens.paint (canvas, PADDING + (panelWidth + PADDING) * 0, PADDING + (panelHeight + PADDING) * 1, panelWidth, panelHeight, scale); |
| 130 | panelAnimation.paint (canvas, PADDING + (panelWidth + PADDING) * 1, PADDING + (panelHeight + PADDING) * 1, panelWidth, panelHeight, scale); |
| 131 | panelRendering.paint (canvas, PADDING + (panelWidth + PADDING) * 2, PADDING + (panelHeight + PADDING) * 1, panelWidth, panelHeight, scale); |
| 132 | panelLegend.paint (canvas, PADDING + (panelWidth + PADDING) * 3, PADDING + (panelHeight + PADDING) * 1, panelWidth, panelHeight * 2 + PADDING, scale); |
| 133 | |
| 134 | // Third row |
| 135 | panelEvents.paint (canvas, PADDING + (panelWidth + PADDING) * 0, PADDING + (panelHeight + PADDING) * 2, panelWidth * 2 + PADDING, panelHeight, scale); |
| 136 | panelTheme.paint (canvas, PADDING + (panelWidth + PADDING) * 2, PADDING + (panelHeight + PADDING) * 2, panelWidth, panelHeight, scale); |
| 137 | |
| 138 | // Colored bars |
| 139 | try (var paint = new Paint()) { |
| 140 | var barSize = 3 * scale; |
| 141 | |
| 142 | // left |
| 143 | paint.setColor(0xFFe76f51); |
| 144 | canvas.drawRect(Rect.makeXYWH(0, 0, barSize, 100 * scale), paint); |
| 145 | canvas.drawRect(Rect.makeXYWH(0, height / 2 - 50 * scale, barSize, 100 * scale), paint); |
| 146 | canvas.drawRect(Rect.makeXYWH(0, height - 100 * scale, barSize, 100 * scale), paint); |
| 147 | |
| 148 | // top |
| 149 | paint.setColor(0xFF2a9d8f); |
| 150 | canvas.drawRect(Rect.makeXYWH(0, 0, 100 * scale, barSize), paint); |
| 151 | canvas.drawRect(Rect.makeXYWH(width / 2 - 50 * scale, 0, 100 * scale, barSize), paint); |
| 152 | canvas.drawRect(Rect.makeXYWH(width - 100 * scale, 0, 100 * scale, barSize), paint); |
| 153 | |
| 154 | // right |
| 155 | paint.setColor(0xFFe9c46a); |
| 156 | canvas.drawRect(Rect.makeXYWH(width - barSize, 0, barSize, 100 * scale), paint); |
| 157 | canvas.drawRect(Rect.makeXYWH(width - barSize, height / 2 - 50 * scale, barSize, 100 * scale), paint); |
| 158 | canvas.drawRect(Rect.makeXYWH(width - barSize, height - 100 * scale, barSize, 100 * scale), paint); |
| 159 | |
| 160 | // bottom |
| 161 | paint.setColor(0xFFFFFFFF); |
| 162 | canvas.drawRect(Rect.makeXYWH(0, height - barSize, 100 * scale, barSize), paint); |