On 6/25/06, Chris Vine <[EMAIL PROTECTED]> wrote:
> On Sunday 25 June 2006 18:13, Joe Van Dyk wrote:
> > On 6/25/06, Joe Van Dyk <[EMAIL PROTECTED]> wrote:
> > > Hi,
> > >
> > > Say a user clicks a checkbox in a menu that affects three other parts
> > > of the application.  Would a signal be the best way to communicate
> > > that change to the rest of the application?  How would that work?
> > > Would I create a custom signal or slot?  How would the other parts of
> > > the application listen to that signal?  Would I create the slot and
> > > then pass that slot to the other parts of the application (i.e. in a
> > > constructor)?
> > >
> > > Sorry for the basic questions, but signals and slots and functors are
> > > still confusing to me.
> > >
> > > I'm also a gigantic fan of unit testing -- are signals unit testable?
> >
> > Historically, I've hooked up a function to the clicked event of the
> > check box.  And that function calls member functions of the different
> > objects in the application.  So, signals aren't used for
> > communication.  But something about that seems smelly.
>
> I do not really understand what you are saying.  sigc slots are just
> callbacks, executed at the point the signal is invoked.  Nothing "listens" to
> them; they just execute when called, like any other function pointer or
> functor or callback.
>
> If the callback function calls other member functions it does so because you
> have coded the callback function to call the member functions.

"Ardour makes heavy use of libsigc++ as a way to provide anonymous
coupling between components, particulular between the backend and user
interface. The code makes heavy use of the Model-View-Controller
programming model, and attempts to draw from the best work on
programming pattern languages."  From http://ardour.org/development .
That's what I'm asking about.

I wonder if I'm not understanding "anonymous coupling" correctly.  Hm.

Joe
_______________________________________________
gtkmm-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/gtkmm-list

Reply via email to