diff options
| author | bob <bcz@cs.brown.edu> | 2019-06-14 16:25:58 -0400 |
|---|---|---|
| committer | bob <bcz@cs.brown.edu> | 2019-06-14 16:25:58 -0400 |
| commit | e9d07e9d84ff5b0419b36f73768c8b8583fd0607 (patch) | |
| tree | b7d2e441217349db4ab1dafec0e46256c825b811 /src/client/views/pdf/PDFMenu.tsx | |
| parent | 15e8341334419142f4a54db23cc643f18ba0e0f1 (diff) | |
| parent | 4a5fd3e230fe354dd6c579cad0d5f99a40d230db (diff) | |
Merge branch 'pdf_impl' of https://github.com/browngraphicslab/Dash-Web into pdf_impl
Diffstat (limited to 'src/client/views/pdf/PDFMenu.tsx')
| -rw-r--r-- | src/client/views/pdf/PDFMenu.tsx | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/client/views/pdf/PDFMenu.tsx b/src/client/views/pdf/PDFMenu.tsx new file mode 100644 index 000000000..a0230113b --- /dev/null +++ b/src/client/views/pdf/PDFMenu.tsx @@ -0,0 +1,49 @@ +import React = require("react"); +import "./PDFMenu.scss"; +import { observable } from "mobx"; +import { observer } from "mobx-react"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { emptyFunction } from "../../../Utils"; +import { Doc } from "../../../new_fields/Doc"; + +@observer +export default class PDFMenu extends React.Component { + static Instance: PDFMenu; + + @observable Top: number = 0; + @observable Left: number = 0; + StartDrag: (e: PointerEvent) => void = emptyFunction; + Highlight: (d: Doc | undefined) => void = emptyFunction; + + constructor(props: Readonly<{}>) { + super(props); + + PDFMenu.Instance = this; + } + + pointerDown = (e: React.PointerEvent) => { + document.removeEventListener("pointermove", this.StartDrag); + document.addEventListener("pointermove", this.StartDrag); + document.removeEventListener("pointerup", this.pointerUp) + document.addEventListener("pointerup", this.pointerUp) + + e.stopPropagation(); + e.preventDefault(); + } + + pointerUp = (e: PointerEvent) => { + document.removeEventListener("pointermove", this.StartDrag); + document.removeEventListener("pointerup", this.pointerUp); + e.stopPropagation(); + e.preventDefault(); + } + + render() { + return ( + <div className="pdfMenu-cont" style={{ left: this.Left, top: this.Top }}> + <button className="pdfMenu-button" title="Highlight" onClick={() => this.Highlight(undefined)}><FontAwesomeIcon icon="highlighter" size="sm" /></button> + <button className="pdfMenu-button" title="Annotate" onPointerDown={this.pointerDown}><FontAwesomeIcon icon="comment-alt" size="sm" /></button> + </div> + ) + } +}
\ No newline at end of file |
