| 32 | } |
| 33 | |
| 34 | @Override |
| 35 | public void paintImpl(Canvas canvas, int width, int height, float scale) { |
| 36 | var modifier = Platform.CURRENT == Platform.MACOS ? "⌘ " : "Ctrl "; |
| 37 | var padding = (int) 8 * scale; |
| 38 | |
| 39 | try (var bg = new Paint().setColor(0x40000000); |
| 40 | var fg = new Paint().setColor(0xFFFFFFFF);) |
| 41 | { |
| 42 | var metrics = Example.FONT12.getMetrics(); |
| 43 | var capHeight = metrics.getCapHeight(); |
| 44 | float bgWidth = 0; |
| 45 | try (var line = TextLine.make(modifier + "W", Example.FONT12);) { |
| 46 | bgWidth = line.getWidth() + 2 * padding; |
| 47 | } |
| 48 | float bgHeight = capHeight + padding * 2; |
| 49 | float x = Example.PADDING; |
| 50 | float y = Example.PADDING; |
| 51 | |
| 52 | for (var key: shortcuts.keySet()) { |
| 53 | try (var line = TextLine.make(modifier + key, Example.FONT12);) { |
| 54 | canvas.drawRRect(RRect.makeXYWH(x, y, bgWidth, bgHeight, 4 * scale), bg); |
| 55 | canvas.drawTextLine(line, x + (bgWidth - line.getWidth()) / 2, y + padding + capHeight, fg); |
| 56 | } |
| 57 | |
| 58 | var value = shortcuts.get(key); |
| 59 | try (var line = TextLine.make(value, Example.FONT12);) { |
| 60 | canvas.drawTextLine(line, x + bgWidth + padding, y + padding + capHeight, fg); |
| 61 | } |
| 62 | |
| 63 | y += padding * 2 + capHeight + 1 * scale; |
| 64 | } |
| 65 | } |
| 66 | } |
| 67 | } |