Libraryless. Click here for Pure Java version (26510L/171K).
1 | sclass ImageSurface_HighlightRegion > ImageSurfaceMouseHandler is G2Drawable {
|
2 | settable RegionPainter regionPainter = new RegionBoundingBoxPainter; |
3 | FastRegions_BWImage regions; |
4 | int iHighlightedRegion; |
5 | Pt lastPt; |
6 | |
7 | *(ImageSurface is) {
|
8 | if (containsInstance(is.tools, getClass())) ret; |
9 | register(is); |
10 | is.overlays.add(this); |
11 | } |
12 | |
13 | public void close :: after {
|
14 | is.overlays.remove(this); |
15 | } |
16 | |
17 | public void mouseMoved aka mouseEntered(MouseEvent e) {
|
18 | lastPt = getPt(e); |
19 | update(); |
20 | } |
21 | |
22 | public void mouseExited(MouseEvent e) {
|
23 | lastPt = null; |
24 | update(); |
25 | } |
26 | |
27 | int newRegion() {
|
28 | if (lastPt == null || regions == null) ret 0; |
29 | ret regions.regionAt(lastPt.x, lastPt.y); |
30 | } |
31 | |
32 | void update {
|
33 | int r = newRegion(); |
34 | if (iHighlightedRegion != r) {
|
35 | iHighlightedRegion = r; |
36 | is.repaint(); |
37 | } |
38 | } |
39 | |
40 | void setRegions(FastRegions_BWImage regions) {
|
41 | this.regions = regions; |
42 | iHighlightedRegion = -abs(iHighlightedRegion); |
43 | update(); |
44 | } |
45 | |
46 | public void drawOn(Graphics2D g) {
|
47 | if (iHighlightedRegion == 0 || regionPainter == null) ret; |
48 | regionPainter.zoomX(is.getZoomX()); |
49 | regionPainter.zoomY(is.getZoomY()); |
50 | regionPainter.g(g); afterwards { regionPainter.g(null); }
|
51 | regionPainter.regions(regions).iRegion(iHighlightedRegion); |
52 | regionPainter.drawRegion(); |
53 | } |
54 | } |
Began life as a copy of #1033810
download show line numbers debug dex old transpilations
Travelled to 4 computer(s): bhatertpkbcr, ekrmjmnbrukm, mowyntqkapby, mqqgnosmbjvj
No comments. add comment
| Snippet ID: | #1033812 |
| Snippet name: | ImageSurface_HighlightRegion |
| Eternal ID of this version: | #1033812/16 |
| Text MD5: | 40f2cea12e46b7f8869f6fe1a98aca3e |
| Transpilation MD5: | bbc3aa2da515b06ce9fb038e327de07f |
| Author: | stefan |
| Category: | javax / gui |
| Type: | JavaX fragment (include) |
| Public (visible to everyone): | Yes |
| Archived (hidden from active list): | No |
| Created/modified: | 2022-01-10 16:00:02 |
| Source code size: | 1408 bytes / 54 lines |
| Pitched / IR pitched: | No / No |
| Views / Downloads: | 421 / 611 |
| Version history: | 15 change(s) |
| Referenced in: | [show references] |