5
$\begingroup$

I find the workflow refpages in the doc center very helpful, and I'd like to make some of my own:

enter image description here

Workflows seem to be notebooks of "Text" and "AnnotatedOutput" cells riffled together, and the graphics in them look like they came from "Drawing Tools":

enter image description here

So, how can I make a similar diagram from multiple images (typically screenshots) with those nifty width-changing green arrows?

  • I think a palette solution would be best here.
  • I don't want to use the drawing tools, becuase that usually crashes for me
  • Prefer to use a mouse-drag to make the arrows that go from a certain point in the first subimage to another point in the next, rather than having to give specific coordinates...
  • Does anyone know if it's an undocumented built-in package?
$\endgroup$
6
  • $\begingroup$ I saw this on a recent live stream, starting around 1:18:33. Part of the (internal to WRI) DocuTools. $\endgroup$
    – Chris K
    Commented Dec 12, 2019 at 20:43
  • $\begingroup$ DocuTools is not available to public. So is there a way to author workflow without it? $\endgroup$
    – QuantumDot
    Commented Dec 13, 2019 at 0:25
  • $\begingroup$ @QuantumDot I think if you install workbench you can extract it from the stuff that Eclipse provides. It’s possible to open up a notebook inside workbench, find the location of the paclets, then copy them out to the standard location in the layout. At that point they’ll work without asking you to use Eclipse. $\endgroup$
    – b3m2a1
    Commented Dec 13, 2019 at 17:42
  • $\begingroup$ @b3m2a1 Oh, then do I understand DocuTools is actually available through Workbench/Eclipse? In that case, I am error. $\endgroup$
    – QuantumDot
    Commented Dec 13, 2019 at 18:44
  • $\begingroup$ @b3m2a1 The publicly available version of DocuTools is very old and doesn't include Workflows (see the livestream I linked to for a look at the current internal DocuTools). $\endgroup$
    – Chris K
    Commented Dec 14, 2019 at 20:09

1 Answer 1

4
$\begingroup$

Update: Using annotationArrow with LocatorPane to have multiple annotation arrows (use ALT+Click to create new locators or to remove existing ones):

img = Import["https://i.sstatic.net/H0KML.png"]

enter image description here

DynamicModule[{pt = {#, {0, 1} + #} & @(ImageDimensions[img]/2)}, 
 LocatorPane[Dynamic[pt], 
  Dynamic[Show[img, 
    Graphics[{RGBColor[0, 2/3, 2/3], 
      Dynamic[annotationArrow[#]] & /@ Partition[pt, 2]}, 
     ImageSize -> ImageDimensions[img]]]], 
  Appearance -> None, 
  LocatorAutoCreate -> True]]

enter image description here

Original answer:

For the arrow glyph only:

Using the function arow from this answer by Simon Woods to construct a glyph that looks like the annotation arrow in OP:

ClearAll[annotationArrow]
annotationArrow = {EdgeForm[], RGBColor[0, 2/3, 2/3], 
    arow[If[#[[1, 1]] > #[[2, 1]], 1, -1] 1.6, 0., 0., 0., 0.5, 0.9, 0.04, 0., .95][#]} &;

Row[Graphics[annotationArrow[#], ImageSize -> Medium] & /@ 
  {{{0, 0}, {0, -.5}}, {{0, 0}, {-.001, -.5}}, 
   {{0.01, -.5}, {0, 0}}, {{-0.01, -.5}, {0, 0}}}, Spacer[30]]

enter image description here

Add Locators to control the coordinates of the tip and the tail of the arrow:

Deploy @ DynamicModule[{pt1 = {0, .5}, pt2 = {0, -1}}, 
  Graphics[{Locator[Dynamic[pt1], None], Locator[Dynamic[pt2], None], 
    RGBColor[0, 2/3, 2/3], Dynamic[annotationArrow[{pt1, pt2}]]}, 
   ImageSize -> Medium, PlotRange -> {{-1, 1}, {-1, 1}}, 
   PlotRangePadding -> Scaled[.02], Frame -> True, FrameTicks -> None]]

enter image description here

$\endgroup$
8
  • $\begingroup$ It’d be pretty hard to use this to make a full workflow without doing a bunch of work to make a nice palette. Moreover, this won’t handle any of the documentation metadata or any of that. $\endgroup$
    – b3m2a1
    Commented Dec 13, 2019 at 17:43
  • $\begingroup$ @b3m2a1, right. Should have mentioned this is just the glyph. $\endgroup$
    – kglr
    Commented Dec 13, 2019 at 17:51
  • $\begingroup$ If you stuck the glyph inside some palette that’d build a GraphicColumn and then put the glyph on top of that I’m sure that’d be something people would find very cool. $\endgroup$
    – b3m2a1
    Commented Dec 13, 2019 at 17:52
  • $\begingroup$ Love the arrow, but how to add more and more images and arrows? $\endgroup$
    – M.R.
    Commented Dec 13, 2019 at 18:54
  • $\begingroup$ Need a UIFold[] $\endgroup$
    – M.R.
    Commented Dec 13, 2019 at 18:55

Not the answer you're looking for? Browse other questions tagged or ask your own question.