aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/nodes/button/FontIconBox.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/views/nodes/button/FontIconBox.tsx')
-rw-r--r--src/client/views/nodes/button/FontIconBox.tsx85
1 files changed, 78 insertions, 7 deletions
diff --git a/src/client/views/nodes/button/FontIconBox.tsx b/src/client/views/nodes/button/FontIconBox.tsx
index 4b7540e1d..862c16050 100644
--- a/src/client/views/nodes/button/FontIconBox.tsx
+++ b/src/client/views/nodes/button/FontIconBox.tsx
@@ -5,7 +5,7 @@ import { action, computed, observable } from 'mobx';
import { observer } from 'mobx-react';
import * as React from 'react';
import { ColorState, SketchPicker } from 'react-color';
-import { DataSym, Doc, DocListCast, HeightSym, StrListCast, WidthSym } from '../../../../fields/Doc';
+import { DataSym, Doc, DocListCast, HeightSym, LayoutSym, StrListCast, WidthSym } from '../../../../fields/Doc';
import { InkTool } from '../../../../fields/InkField';
import { createSchema } from '../../../../fields/Schema';
import { ScriptField } from '../../../../fields/ScriptField';
@@ -697,15 +697,24 @@ ScriptingGlobals.add(function toggleItalic(checkResult?: boolean) {
-/** INK
- * setActiveInkTool
- * setStrokeWidth
- * setStrokeColor
- **/
+export function checkInksToGroup() {
+ console.log("getting here to inks group");
+ if (CurrentUserUtils.SelectedTool === InkTool.Write) {
+ CollectionFreeFormView.collectionsWithUnprocessedInk.forEach(ffView => {
+ // TODO: nda - will probably want to go through ffView unprocessed docs and then see if any of the inksToGroup docs are in it and only use those
+ // find all inkDocs in ffView.unprocessedDocs that are within 200 pixels of each other
+ const inksToGroup = ffView.unprocessedDocs.filter(inkDoc => {
+ console.log(inkDoc.x, inkDoc.y);
+ });
+ });
+ }
+}
-ScriptingGlobals.add(function setActiveInkTool(tool: string, checkResult?: boolean) {
+export function createInkGroup(inksToGroup?: Doc[]) {
+ // TODO nda - if document being added to is a inkGrouping then we can just add to that group
if (CurrentUserUtils.SelectedTool === InkTool.Write) {
CollectionFreeFormView.collectionsWithUnprocessedInk.forEach(ffView => {
+ // TODO: nda - will probably want to go through ffView unprocessed docs and then see if any of the inksToGroup docs are in it and only use those
const selected = ffView.unprocessedDocs;
// loop through selected an get the bound
const bounds: { x: number, y: number, width?: number, height?: number }[] = []
@@ -750,10 +759,72 @@ ScriptingGlobals.add(function setActiveInkTool(tool: string, checkResult?: boole
// nda - bug: when deleting a stroke before leaving writing mode, delete the stroke from unprocessed ink docs
newCollection && ffView.props.addDocument?.(newCollection);
+ // TODO: nda - will probably need to go through and only remove the unprocessed selected docs
ffView.unprocessedDocs = [];
});
}
CollectionFreeFormView.collectionsWithUnprocessedInk.clear();
+}
+
+
+/** INK
+ * setActiveInkTool
+ * setStrokeWidth
+ * setStrokeColor
+ **/
+
+ScriptingGlobals.add(function setActiveInkTool(tool: string, checkResult?: boolean) {
+ createInkGroup();
+ // if (CurrentUserUtils.SelectedTool === InkTool.Write) {
+ // CollectionFreeFormView.collectionsWithUnprocessedInk.forEach(ffView => {
+ // const selected = ffView.unprocessedDocs;
+ // // loop through selected an get the bound
+ // const bounds: { x: number, y: number, width?: number, height?: number }[] = []
+
+ // selected.map(action(d => {
+ // const x = NumCast(d.x);
+ // const y = NumCast(d.y);
+ // const width = d[WidthSym]();
+ // const height = d[HeightSym]();
+ // bounds.push({x, y, width, height});
+ // }))
+
+ // const aggregBounds = aggregateBounds(bounds, 0, 0);
+ // const marqViewRef = ffView._marqueeViewRef.current;
+
+ // // set the vals for bounds in marqueeView
+ // if (marqViewRef) {
+ // marqViewRef._downX = aggregBounds.x;
+ // marqViewRef._downY = aggregBounds.y;
+ // marqViewRef._lastX = aggregBounds.r;
+ // marqViewRef._lastY = aggregBounds.b;
+ // }
+
+ // selected.map(action(d => {
+ // const dx = NumCast(d.x);
+ // const dy = NumCast(d.y);
+ // delete d.x;
+ // delete d.y;
+ // delete d.activeFrame;
+ // delete d._timecodeToShow; // bcz: this should be automatic somehow.. along with any other properties that were logically associated with the original collection
+ // delete d._timecodeToHide; // bcz: this should be automatic somehow.. along with any other properties that were logically associated with the original collection
+ // // calculate pos based on bounds
+ // if (marqViewRef?.Bounds) {
+ // d.x = dx - marqViewRef.Bounds.left - marqViewRef.Bounds.width / 2;
+ // d.y = dy - marqViewRef.Bounds.top - marqViewRef.Bounds.height / 2;
+ // }
+ // return d;
+ // }));
+ // ffView.props.removeDocument?.(selected);
+ // // TODO: nda - this is the code to actually get a new grouped collection
+ // const newCollection = marqViewRef?.getCollection(selected, undefined, [], true);
+
+ // // nda - bug: when deleting a stroke before leaving writing mode, delete the stroke from unprocessed ink docs
+ // newCollection && ffView.props.addDocument?.(newCollection);
+ // ffView.unprocessedDocs = [];
+ // });
+ // }
+ // CollectionFreeFormView.collectionsWithUnprocessedInk.clear();
if (checkResult) {
return ((Doc.UserDoc().activeInkTool === tool && !GestureOverlay.Instance?.InkShape) || GestureOverlay.Instance?.InkShape === tool) ?