diff options
author | Bob Zeleznik <zzzman@gmail.com> | 2020-04-24 15:41:57 -0400 |
---|---|---|
committer | Bob Zeleznik <zzzman@gmail.com> | 2020-04-24 15:41:57 -0400 |
commit | 95efa332e0fd7ba9dfddf45c71f02a37052ca24e (patch) | |
tree | 606174f24aec48988f9f2e00312f3f10655f1117 /src | |
parent | 81229ca27c6e21d4b5f0ee3a5168c766dcfb954a (diff) |
more starburst fixes
Diffstat (limited to 'src')
-rw-r--r-- | src/client/views/collections/collectionFreeForm/CollectionFreeFormLayoutEngines.tsx | 14 | ||||
-rw-r--r-- | src/client/views/nodes/DocumentView.tsx | 2 | ||||
-rw-r--r-- | src/new_fields/Doc.ts | 31 |
3 files changed, 25 insertions, 22 deletions
diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormLayoutEngines.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormLayoutEngines.tsx index 7152ff242..566a6788b 100644 --- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormLayoutEngines.tsx +++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormLayoutEngines.tsx @@ -108,16 +108,18 @@ export function computerStarburstLayout( viewDefsToJSX: (views: ViewDefBounds[]) => ViewDefResult[] ) { const docMap = new Map<Doc, ViewDefBounds>(); - const burstDim = [NumCast(pivotDoc.starburstRadius, panelDim[0]), NumCast(pivotDoc.starburstRadius, panelDim[1])]; - const scaleDim = [NumCast(pivotDoc._starburstWidth, burstDim[0]) * 5, NumCast(pivotDoc._starburstHeight, burstDim[1]) * 5]; + const burstRadius = [NumCast(pivotDoc._starburstRadius, panelDim[0]), NumCast(pivotDoc._starburstRadius, panelDim[1])]; + const docScale = NumCast(pivotDoc._starburstDocScale); + const docSize = docScale * 100; // assume a icon sized at 100 + const scaleDim = [burstRadius[0] + docSize, burstRadius[1] + docSize]; childDocs.forEach((doc, i) => { const deg = i / childDocs.length * Math.PI * 2; docMap.set(doc, { type: "doc", - x: Math.cos(deg) * (burstDim[0] / 3) - doc[WidthSym]() / 2, - y: Math.sin(deg) * (burstDim[1] / 3) - doc[HeightSym]() / 2, - width: doc[WidthSym](), - height: doc[HeightSym](), + x: Math.cos(deg) * (burstRadius[0] / 3) - docScale * doc[WidthSym]() / 2, + y: Math.sin(deg) * (burstRadius[1] / 3) - docScale * doc[HeightSym]() / 2, + width: docScale * doc[WidthSym](), + height: docScale * doc[HeightSym](), payload: undefined }); }); diff --git a/src/client/views/nodes/DocumentView.tsx b/src/client/views/nodes/DocumentView.tsx index 4bbdde3ea..06bd40992 100644 --- a/src/client/views/nodes/DocumentView.tsx +++ b/src/client/views/nodes/DocumentView.tsx @@ -408,7 +408,7 @@ export class DocumentView extends DocComponent<DocumentViewProps, Document>(Docu const collapse = layoutKey !== "layout_icon"; if (collapse) { this.switchViews(collapse, "icon"); - if (layoutKey && layoutKey !== "layout") this.props.Document.deiconifyLayout = layoutKey.replace("layout_", ""); + if (layoutKey && layoutKey !== "layout" && layoutKey !== "layout_icon") this.props.Document.deiconifyLayout = layoutKey.replace("layout_", ""); } else { const deiconifyLayout = Cast(this.props.Document.deiconifyLayout, "string", null); this.switchViews(deiconifyLayout ? true : false, deiconifyLayout); diff --git a/src/new_fields/Doc.ts b/src/new_fields/Doc.ts index 48606833c..18ffc38f5 100644 --- a/src/new_fields/Doc.ts +++ b/src/new_fields/Doc.ts @@ -973,7 +973,7 @@ export namespace Doc { export function iconify(doc: Doc) { const layoutKey = Cast(doc.layoutKey, "string", null); Doc.makeCustomViewClicked(doc, Docs.Create.StackingDocument, "icon", undefined); - if (layoutKey && layoutKey !== "layout") doc.deiconifyLayout = layoutKey.replace("layout_", ""); + if (layoutKey && layoutKey !== "layout" && layoutKey !== "layout_icon") doc.deiconifyLayout = layoutKey.replace("layout_", ""); } export function pileup(newCollection: Doc, selected: Doc[]) { @@ -998,7 +998,7 @@ export namespace Doc { newCollection._layoutEngine = "pass"; newCollection.overflow = "visible"; - newCollection.onClick = ScriptField.MakeScript("toggleStarburst(self)", { self: Doc.name }); + newCollection.onClick = ScriptField.MakeScript("toggleStarburst(self, this)", { self: Doc.name, this: Doc.name }); } @@ -1056,26 +1056,27 @@ Scripting.addGlobal(function selectedDocs(container: Doc, excludeCollections: bo }); Scripting.addGlobal(function setDocFilter(container: Doc, key: string, value: any, modifiers?: "check" | "x" | undefined) { Doc.setDocFilter(container, key, value, modifiers); }); Scripting.addGlobal(function setDocFilterRange(container: Doc, key: string, range: number[]) { Doc.setDocFilterRange(container, key, range); }); -Scripting.addGlobal(function toggleStarburst(self: Doc) { +Scripting.addGlobal(function toggleStarburst(self: Doc, tLayout: Doc) { if (self._layoutEngine === 'starburst') { const defaultSize = 110; - self.overflow = undefined; - self.x = NumCast(self.x) + self[WidthSym]() / 2 - NumCast(self._starburstWidth, defaultSize) / 2; - self.y = NumCast(self.y) + self[HeightSym]() / 2 - NumCast(self._starburstHeight, defaultSize) / 2; - self._width = NumCast(self._starburstWidth, defaultSize); - self._height = NumCast(self._starburstHeight, defaultSize); + tLayout.overflow = undefined; + self.x = NumCast(self.x) + tLayout[WidthSym]() / 2 - NumCast(tLayout._starburstPileWidth, defaultSize) / 2; + self.y = NumCast(self.y) + tLayout[HeightSym]() / 2 - NumCast(tLayout._starburstPileHeight, defaultSize) / 2; + tLayout._width = NumCast(tLayout._starburstPileWidth, defaultSize); + tLayout._height = NumCast(tLayout._starburstPileHeight, defaultSize); self._layoutEngine = 'pass'; } else { const defaultSize = 25; - self.overflow = 'visible'; - !self.starburstRadius && (self.starburstRadius = 200); + tLayout.overflow = 'visible'; + !tLayout._starburstRadius && (tLayout._starburstRadius = 500); + !tLayout._starburstDocScale && (tLayout._starburstDocScale = 2.5); if (self._layoutEngine === 'pass') { - self.x = NumCast(self.x) + self[WidthSym]() / 2 - defaultSize / 2; - self.y = NumCast(self.y) + self[HeightSym]() / 2 - defaultSize / 2; - self._starburstWidth = self._width; - self._starburstHeight = self._height; + self.x = NumCast(self.x) + tLayout[WidthSym]() / 2 - defaultSize / 2; + self.y = NumCast(self.y) + tLayout[HeightSym]() / 2 - defaultSize / 2; + tLayout._starburstPileWidth = tLayout[WidthSym](); + tLayout._starburstPileHeight = tLayout[HeightSym](); } - self._width = self._height = defaultSize; + tLayout._width = tLayout._height = defaultSize; self._layoutEngine = 'starburst'; } });
\ No newline at end of file |