title: Signal-slot architecture best practice
body: <p>I am using libsigc++ to wire up an application, and is uncertain as to the easier way of going about it. </p>
  
  <p>There is a  preexisting object hierarchy that manages the data layer, and the top level object exposes all functions. All good so far.</p>
  
  <p>To this I am adding a GUI object hierarchy, and in the application object I am hooking them together with signal connections. To make a connection, I need pointers to both sender and receiver.</p>
  
  <p>Now, do I hook in a child widget, far down in the tree, directly, thus requiring pointers to be passed up and down the tree? </p>
  
  <p>Or, do I go through the painstaking processes of hooking in signals and slots at every step in the chain?</p>
  
  <p>On the one hand, passing pointers break the separation that the sig-slot model buys you. On the other hand, creating connections at every step does not seem to rhyme with the supposed "event telepathy" that the sig-slots are supposed to provide.</p>
  
  <p>Which one would someone experienced with this model consider the default approach?</p>