I have been experimenting with doing something
like that, too.  Why?  I want to be able to have a set
of "idiot-proof" objects for a Dia user to lay out a
computer network diagram.  For example, the user
shouldnt be able to connect something like a PC object
directly to something like a microwave transmitter
object.  Or, a USB printer object shouldnt be
connectable to a 10BaseT repeater object.

I had pretty good success with the following (crude!)
approach:
  1. hack diagram_update_connections_object()
     to force a redraw of the connected object

  2. for specific objects that you want restricted
     connection functionality, add code to the
     DrawFunc routine to analyze (and disconnect
     as appropriate) the objects that are 
     connected. 

Definitely not ideal (DrawFunc gets fired for a
variety of reasons), but it worked.

--- Lars Clausen <[EMAIL PROTECTED]> wrote:
> On Wed, 23 Oct 2002, [EMAIL PROTECTED] wrote:
> > Hi,
> > 
> > I think about writing a new dia module, where
> certain
> > objects can be connected only to certain others. 
> (How) can
> > I disallow connections between arbitrary objects? 
> I.e. I
> > have object types A, B, and C - while connections
> between
> > A-B and A-C are allowed, but B-C should not be
> possible.
> 
> That's a good question.  There's no callback on
> connection, so there isn't
> a direct way to do that.  Can you give an example of
> where this would be
> useful?  Wouldn't be hard to add something to ask
> the object if it'll
> accept the connection, and have it default to always
> accepting.
> 
> -Lars
> 
> -- 
> Lars Clausen (http://shasta.cs.uiuc.edu/~lrclause)|


__________________________________________________
Do you Yahoo!?
Y! Web Hosting - Let the expert host your web site
http://webhosting.yahoo.com/
_______________________________________________
Dia-list mailing list
[EMAIL PROTECTED]
http://mail.gnome.org/mailman/listinfo/dia-list
FAQ at http://www.lysator.liu.se/~alla/dia/faq.html
Main page at http://www.lysator.liu.se/~alla/dia

Reply via email to