sclass Canvas extends ImageSurface {
O makeImg;
bool updating;
*() { zoomable = false; }
*(O makeImg) { this(); this.makeImg = makeImg; }
void update() { updateCanvas(this, makeImg); }
}
static Canvas jcanvas() { ret jcanvas(null, 0); }
// f: (int w, int h) -> BufferedImage
static Canvas jcanvas(O f) {
ret jcanvas(f, 0); // 100
}
static Canvas jcanvas(fO f, final int updateDelay) {
ret (Canvas) swing(func {
final Canvas is = new Canvas(f);
is.specialPurposed = true;
final Runnable update = new Runnable {
bool first = true;
public void run {
BufferedImage img = is.getImage();
int w = is.getWidth(), h = is.getHeight();
if (first || img.getWidth() != w || img.getHeight() != h) {
updateCanvas(is, f);
first = false;
}
}
};
onResize(is, r { awtLater(is, updateDelay, update) });
bindToComponent(is, update); // first update
ret is;
});
}Began life as a copy of #1007280
download show line numbers debug dex old transpilations
Travelled to 13 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt
No comments. add comment
| Snippet ID: | #1007284 |
| Snippet name: | jcanvas + Canvas - calculated ImageSurface that adapts to window size |
| Eternal ID of this version: | #1007284/19 |
| Text MD5: | c0c81434080337c45a7c514ab49f207f |
| Author: | stefan |
| Category: | javax / gui |
| Type: | JavaX fragment (include) |
| Public (visible to everyone): | Yes |
| Archived (hidden from active list): | No |
| Created/modified: | 2017-10-15 17:07:23 |
| Source code size: | 1000 bytes / 37 lines |
| Pitched / IR pitched: | No / No |
| Views / Downloads: | 1072 / 1028 |
| Version history: | 18 change(s) |
| Referenced in: | [show references] |