Re: Wish lists and making icons sensitive

Juergen Schoenwaelder (schoenw@ibr.cs.tu-bs.de)
Fri, 21 Apr 1995 18:36:52 +0200

Hi!

jerobins@unity.ncsu.edu said:

John> Also is it possible to traverse the host to group mapping so
John> that the group icons could also be flashed when a host inside
John> the group is flashing/changing color? Setting the propigate
John> attribute on the group icon/border could be the flag that
John> allows this.

Juergen> This is not very difficult, perhaps it should be the default
Juergen> behaviour. The problem with those attributes that control how
Juergen> something works is that we start to get large attribute lists that
Juergen> control things from tkined internals (how flashing is propagated) to
Juergen> very specific things (like interface speeds). And setting the
Juergen> propagate attribute on every new group will get us back to the your
Juergen> wish for preset attributes, I guess.

jerobins> Is anyone planning on doing this? Already started?

Below is a patch that propagates flash requests if the target object
is a member of a group that is collapsed when the flash requests
arrives. The patch is relative to tkined-1.2.2.

Juergen

*** /tmp/tkined-1.2.2/methods.c Wed Nov 2 20:30:18 1994
--- methods.c Fri Apr 21 18:19:48 1995
***************
*** 3659,3664 ****
--- 3659,3666 ----
}
}

+ parent_resize (interp, object);
+
trace (object->editor, object,
"ined delete", argc, argv, (char *) NULL);

***************
*** 3773,3790 ****
if (argc == 1) {

int secs;

if (Tcl_GetInt (interp, argv[0], &secs) != TCL_OK)
return TCL_ERROR;

secs *= 2; /* we flash two times in one second */

! if (object->flash > 0) {
! object->flash = (secs > object->flash) ? secs : object->flash;
! object->flash = secs;
! } else {
! object->flash = secs;
! flash (interp, object);
}

trace (object->editor, object,
--- 3775,3804 ----
if (argc == 1) {

int secs;
+ tkined_object *anObject;

if (Tcl_GetInt (interp, argv[0], &secs) != TCL_OK)
return TCL_ERROR;

secs *= 2; /* we flash two times in one second */

! anObject = object;
! while (anObject) {
!
! if (anObject->flash > 0) {
! anObject->flash = (secs > anObject->flash) ?
! secs : anObject->flash;
! anObject->flash = secs;
! } else {
! anObject->flash = secs;
! flash (interp, anObject);
! }
!
! if (*anObject->canvas == '\0') {
! anObject = id_to_object (anObject->parent);
! } else {
! anObject = NULL;
! }
}

trace (object->editor, object,