I'd like to create a Manipulate with custom objects in the control area (like a circuit diagram) that reacts to the user interacting with the manipulate controls (e.g. highlighting the component being manipulated by the user).

Are there other functions/symbols besides $ControlActiveSetting (which does not discern which symbol is being manipulated) and ControlActive (which only evaluates to one of two things depending on wether the act in ControlActive[act, norm] is currently manipulated or not)? Ideally I'd like to have something like $ControlActiveSetting for individual symbols so that I can query those and change my display accordingly.

| improve this question | | | | |
  • $\begingroup$ The second argument of Dynamic or TrackingFunction can be used to achieve such behavior. $\endgroup$ – Karsten 7. Jun 15 '16 at 20:39
  • $\begingroup$ @Kuba I tied EventHandler already but it seems to interfere with the behavior of Slider. Try DynamicModule[{col = White, z}, EventHandler[ Slider[Dynamic@z, {0, 1}, Background -> Dynamic@col], {"MouseDragged" :> (col = Red), "MouseUp" :> (col = White)}]]. If you remove the "MouseUp"-event the slider behaves as it should. $\endgroup$ – Sascha Jun 15 '16 at 20:44
  • $\begingroup$ Add PassEventsDown -> True and it's fine. You can also use the second argument of Dynamic. $\endgroup$ – Kuba Jun 15 '16 at 20:50
  • $\begingroup$ Cloud you prepare a code samples with desired effects you struggle to achieve? $\endgroup$ – Kuba Jun 15 '16 at 20:51
  • $\begingroup$ I had a look at the second argument of Dynamic and the variant Dynamic[expr, {f, fEnd}] works like a charm once I looked it up. Even though this all is listed in the documentation and there are useful examples, I think it is easy to miss. $\endgroup$ – Sascha Jun 15 '16 at 20:56