[comp.windows.x] Application default resources - A Dissent

anton@con.Berkeley.EDU (Jeff Anton) (02/13/90)

The invention of Application defaults files was poorly integrated
with the previous system.

1. Some resources which can be set in applications defaults files
   can not be unset by the users resource settings.

	Consider the command button widget, if the width resource is
	set in the applications defaults file the user can not unset
	the width value back to the default width which is computed
	from the number of bits needed after considering the widget
	name and font.  The only way I see around this is to define
	the width in each instance of the command widget.

	This problem is generally present in resources with an
	'A' in the Notes column in the X11R4 Athena Widget Set
	document.

	This problem could be fixed with syntax to remove definitions.
	I propose '*Command.width@' which would remove any matching
	resources such as '*Command.width: 20'.

2. The precidence computations survive between the application
   defaults and user defaults.

	If a user specifies '*ShapeStyle: Rectangle' in their
	.Xdefaults file it should override a more specific
	'*Command.shapeStyle: Oval' specified as an application
	default.  This should be the case to be consistent with
	the X philosopy that the user sets the display policy.
	A user can choose a window manager to their likeing and
	applications should respect that policy by being ICCCM
	compliant.  Similarly, if a user sets a sweeping resource
	option such as '*BorderWidth: 1' that should be respected
	above the applications defaults.  As the system exists
	now, the user must add many more specific resources to
	accomplish what he wishes and still he must continue to
	add more resources as new application resources are invented.

	I suggest that XrmMergeDatabases change this behavior.

Other problems not addressed (not resources):

UnexposeEvents: inform the application what regions have been covered
up by other windows or moved off screen.

	This is not supported by the protocol when the display server
	has the information but the application has to do elaborate
	work to get it.

Cursors can not be determined through XGetWindowAttributes.

	The default cursor colors are horrible for people who want
	reverse video.  The default stringtocursor converted in Xt
	can only specify cursor shape and not color.  I've complaned
	about this before to mit and got the reply that: You can write
	your own converter.  This is not so for binaries which I might
	buy.

kit@EXPO.LCS.MIT.EDU (Chris D. Peterson) (02/14/90)

> The invention of Application defaults files was poorly integrated
> with the previous system.

I agree that it needs a bit of work, we are considering the problem,
unfortunatly most of the comments you make require changes to both Xlib and Xt,
since the Resource manager is part of Xlib.  This doesn't mean that we can't fix
it, just that it is a little tougher.

> 1. Some resources which can be set in applications defaults files
>    can not be unset by the users resource settings.

An Interesting point, I will have to think about this a little more, but it
would be useful to have a way to "unmatch" the resource.

> 2. The precidence computations survive between the application
>    defaults and user defaults.

I agree that it should be possible for the user to override the application's
defaults for resources, and do it in a simple manner, such as
"*Foreground:blue".  I do not agree that it should be the only behavior.
There are some cases where the user would like to have the current behavior.

>	I suggest that XrmMergeDatabases change this behavior.

I think that we have found a way to solve this problem a bit more generally.
Our solution also remains backward compatible, something that we MUST do,
whether we like it or not :-)

I know that I am being vague in my answers.  This is because we are just
beginning to look at the problems of resource management, and I am not willng to
provide any "solutions" yet.  I did, however, want to let you know that we have
heard your comments, and are thinking about the issues involved.


						Chris D. Peterson     
						MIT X Consortium 

Net:	 kit@expo.lcs.mit.edu
Phone:   (617) 253 - 9608	
Address: MIT - Room NE43-213