Compare commits
3 Commits
c79ace2d36
...
877460d0aa
Author | SHA1 | Date |
---|---|---|
Emilia Allison | 877460d0aa | |
Emilia Allison | 9a9c3e2fca | |
Emilia Allison | ba7c9f5ee9 |
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,24 @@
|
||||||
|
function copy_screenshot(el) {
|
||||||
|
html2canvas(el).then((canvas) => {
|
||||||
|
console.log("Copying image to clipboard");
|
||||||
|
let data = canvas.toDataURL();
|
||||||
|
|
||||||
|
const textArea = document.createElement("textarea");
|
||||||
|
textArea.value = data;
|
||||||
|
|
||||||
|
document.body.prepend(textArea);
|
||||||
|
textArea.select();
|
||||||
|
|
||||||
|
document.execCommand('copy');
|
||||||
|
document.body.removeChild(textArea);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function copy_screenshot_dest() {
|
||||||
|
let plate = document.getElementsByClassName("dest_plate")[0];
|
||||||
|
copy_screenshot(plate);
|
||||||
|
}
|
||||||
|
function copy_screenshot_src() {
|
||||||
|
let plate = document.getElementsByClassName("source_plate")[0];
|
||||||
|
copy_screenshot(plate);
|
||||||
|
}
|
|
@ -4,6 +4,8 @@
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<link data-trunk rel="scss" href="assets/scss/index.scss">
|
<link data-trunk rel="scss" href="assets/scss/index.scss">
|
||||||
<link data-trunk rel="copy-dir" href="assets/fonts">
|
<link data-trunk rel="copy-dir" href="assets/fonts">
|
||||||
|
<script data-trunk src="assets/js/screenshot_utility.js"></script>
|
||||||
|
<script data-trunk src="assets/js/html2canvas.js"></script>
|
||||||
<title>Plate Tool</title>
|
<title>Plate Tool</title>
|
||||||
</head>
|
</head>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -490,7 +490,7 @@ pub fn MainWindow() -> Html {
|
||||||
<div class="dropdown-sub">
|
<div class="dropdown-sub">
|
||||||
<button>{"Styles"}</button>
|
<button>{"Styles"}</button>
|
||||||
<div>
|
<div>
|
||||||
<button onclick={toggle_in_transfer_hashes_callback}>{"Toggle in transfer hashes"}</button>
|
<button onclick={toggle_in_transfer_hashes_callback}>{"Toggle transfer hashes"}</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -99,8 +99,8 @@ pub fn NewPlateDialog(props: &NewPlateDialogProps) -> Html {
|
||||||
<option value="12">{"12"}</option>
|
<option value="12">{"12"}</option>
|
||||||
<option value="24">{"24"}</option>
|
<option value="24">{"24"}</option>
|
||||||
<option value="48">{"48"}</option>
|
<option value="48">{"48"}</option>
|
||||||
<option value="96">{"96"}</option>
|
<option value="96" selected={true}>{"96"}</option>
|
||||||
<option value="384" selected={true}>{"384"}</option>
|
<option value="384">{"384"}</option>
|
||||||
<option value="1536">{"1536"}</option>
|
<option value="1536">{"1536"}</option>
|
||||||
<option value="3456">{"3456"}</option>
|
<option value="3456">{"3456"}</option>
|
||||||
</select>
|
</select>
|
||||||
|
|
|
@ -107,6 +107,11 @@ pub fn DestinationPlate(props: &DestinationPlateProps) -> Html {
|
||||||
|
|
||||||
let mouseleave_callback = Callback::clone(&mouseup_callback);
|
let mouseleave_callback = Callback::clone(&mouseup_callback);
|
||||||
|
|
||||||
|
|
||||||
|
let screenshot_callback = Callback::from(|_| {
|
||||||
|
let _ = js_sys::eval("copy_screenshot_dest()");
|
||||||
|
});
|
||||||
|
|
||||||
let column_header = {
|
let column_header = {
|
||||||
let headers = (1..=props.destination_plate.plate.size().1)
|
let headers = (1..=props.destination_plate.plate.size().1)
|
||||||
.map(|j| {
|
.map(|j| {
|
||||||
|
@ -143,7 +148,8 @@ pub fn DestinationPlate(props: &DestinationPlateProps) -> Html {
|
||||||
.collect::<Html>();
|
.collect::<Html>();
|
||||||
|
|
||||||
html! {
|
html! {
|
||||||
<div class={classes!{"dest_plate",
|
<div ondblclick={screenshot_callback}
|
||||||
|
class={classes!{"dest_plate",
|
||||||
"W".to_owned()+&props.source_plate.plate.plate_format.to_string()}}>
|
"W".to_owned()+&props.source_plate.plate.plate_format.to_string()}}>
|
||||||
<table
|
<table
|
||||||
onmouseup={move |e| {
|
onmouseup={move |e| {
|
||||||
|
|
|
@ -108,6 +108,10 @@ pub fn SourcePlate(props: &SourcePlateProps) -> Html {
|
||||||
|
|
||||||
let mouseleave_callback = Callback::clone(&mouseup_callback);
|
let mouseleave_callback = Callback::clone(&mouseup_callback);
|
||||||
|
|
||||||
|
let screenshot_callback = Callback::from(|_| {
|
||||||
|
let _ = js_sys::eval("copy_screenshot_src()");
|
||||||
|
});
|
||||||
|
|
||||||
let column_header = {
|
let column_header = {
|
||||||
let headers = (1..=props.source_plate.plate.size().1)
|
let headers = (1..=props.source_plate.plate.size().1)
|
||||||
.map(|j| {
|
.map(|j| {
|
||||||
|
@ -148,7 +152,8 @@ pub fn SourcePlate(props: &SourcePlateProps) -> Html {
|
||||||
.collect::<Html>();
|
.collect::<Html>();
|
||||||
|
|
||||||
html! {
|
html! {
|
||||||
<div class={classes!{"source_plate",
|
<div ondblclick={screenshot_callback}
|
||||||
|
class={classes!{"source_plate",
|
||||||
"W".to_owned()+&props.source_plate.plate.plate_format.to_string()}}>
|
"W".to_owned()+&props.source_plate.plate.plate_format.to_string()}}>
|
||||||
<table
|
<table
|
||||||
onmouseup={move |e| {
|
onmouseup={move |e| {
|
||||||
|
|
Loading…
Reference in New Issue