[comp.windows.open-look] Does OpenLook have a "broadcast" mechanism

rlh2@ukc.ac.uk (R.L.Hesketh) (03/06/91)

I remember reading somewhere about a "broadcast" mechanism  for OpenLook
which allows global preferences and resource settings to be modified and
sent to all currently executing applications.   I have checked the
only articles I have on OpenLook (the Autumn'88 edition of SunTechnology)
but couldn't find any references to this mechanism.

Does this mechanism exist in OpenLook and if so where and are there
any papers that mention its concept/design/use ??

Is this the way Property Windows work?

Thanks for any info,

Richard Hesketh
Computing Lab., University of Kent at Canterbury,
Canterbury, Kent, CT2 7NF, United Kingdom.
        Tel: +44 227 764000 ext 7620/7590      Fax: +44 227 762811

grp@Unify.com (Greg Pasquariello) (03/07/91)

In article <300@elder.ukc.ac.uk>, rlh2@ukc.ac.uk (R.L.Hesketh) writes:
> 
> I remember reading somewhere about a "broadcast" mechanism  for OpenLook
> which allows global preferences and resource settings to be modified and
> sent to all currently executing applications.   I have checked the
> only articles I have on OpenLook (the Autumn'88 edition of SunTechnology)
> but couldn't find any references to this mechanism.
> 
> Does this mechanism exist in OpenLook and if so where and are there
> any papers that mention its concept/design/use ??

This is accomplished by watching for changes to the RESOURCE_MANAGER
property on the root window.  The OLIT toolkit provides library routines
that do this.  If you're interested, there is an example of to use these
in my article in the January XNextEvent.  If you are using XView, I cannot 
tell you if similar routines exist or not.

> 
> Is this the way Property Windows work?

Some, yes.

> 
> Thanks for any info,
> 
> Richard Hesketh
> Computing Lab., University of Kent at Canterbury,
> Canterbury, Kent, CT2 7NF, United Kingdom.
>         Tel: +44 227 764000 ext 7620/7590      Fax: +44 227 762811

--

---
Greg Pasquariello	grp@unify.com
Unify Corporation 	Be good and never poison people

mls@cbnewsm.att.com (mike.siemon) (03/20/91)

> I remember reading somewhere about a "broadcast" mechanism  for OpenLook
> which allows global preferences and resource settings to be modified and
> sent to all currently executing applications.   I have checked the
> only articles I have on OpenLook (the Autumn'88 edition of SunTechnology)
> but couldn't find any references to this mechanism.
>
> Does this mechanism exist in OpenLook and if so where and are there
> any papers that mention its concept/design/use ??
> 
> Is this the way Property Windows work?

The OPEN LOOK Intrinsics Toolkit has a ``dynamic resource''
feature built into most of the widgets. This is not a general
resource broadcast means, rather one limited to those resources
likely to need dynamic, widespread changes. Currently, this means
colors:

	resource	resource class

	background	Background, TextBackground
	foreground	Foreground
	fontColor	FontColor, TextFontColor
	borderColor	BorderColor
	inputFocusColor	InputFocusColor

The design includes setting an event handler on the widgetized
root window, to catch a change in the RESOURCE_MANAGER property.
The design also includes having each widget ``register'' (through
a widget class field) the list of resources of ``dynamic
interest''. Right now these resources are the ones listed above,
but in theory any resource could be so registered.

When a change in RESOURCE_MANAGER occurs, the toolkit marches
through the widget tree changing the values of the registered
resources. To allow the application to maintain final control
over widget coloration, the design keeps track of values set
explicitly through initialize or set_values, and avoids resetting
their values when the RESOURCE_MANAGER property changes.

Thus, a user could affect a global change in coloration by
setting a combination of the above resources using, say,
xrdb. The USL workspace manager provides a property sheet
that gives the user a convenient method of setting colors,
and it announces these colors through the RESOURCE_MANAGER
property.

Steve Humphrey
UNIX System Laboratories