diff options
author | marha <marha@users.sourceforge.net> | 2011-03-25 15:37:13 +0000 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2011-03-25 15:37:13 +0000 |
commit | 41a502478a2972358dec934d82ee401c61a5cd36 (patch) | |
tree | 3fda8100e6da9b4a2863789e393016a750502067 /libXt/specs/appF | |
parent | 81aeaf653a832c4054d9a40b1cc796911521a739 (diff) | |
parent | 272e57235cd60a2e65ac8258d96a02eb3939b687 (diff) | |
download | vcxsrv-41a502478a2972358dec934d82ee401c61a5cd36.tar.gz vcxsrv-41a502478a2972358dec934d82ee401c61a5cd36.tar.bz2 vcxsrv-41a502478a2972358dec934d82ee401c61a5cd36.zip |
svn merge ^/branches/released .
Diffstat (limited to 'libXt/specs/appF')
-rw-r--r-- | libXt/specs/appF | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/libXt/specs/appF b/libXt/specs/appF new file mode 100644 index 000000000..b74cf4a3e --- /dev/null +++ b/libXt/specs/appF @@ -0,0 +1,125 @@ +.\" $Xorg: appF,v 1.3 2000/08/17 19:42:49 cpqbld Exp $ +.\" Copyright \(co 1985, 1986, 1987, 1988, 1991, 1994 +.\" X Consortium +.\" +.\" Permission is hereby granted, free of charge, to any person obtaining +.\" a copy of this software and associated documentation files (the +.\" "Software"), to deal in the Software without restriction, including +.\" without limitation the rights to use, copy, modify, merge, publish, +.\" distribute, sublicense, and/or sell copies of the Software, and to +.\" permit persons to whom the Software is furnished to do so, subject to +.\" the following conditions: +.\" +.\" The above copyright notice and this permission notice shall be included +.\" in all copies or substantial portions of the Software. +.\" +.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +.\" IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR +.\" OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +.\" ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +.\" OTHER DEALINGS IN THE SOFTWARE. +.\" +.\" Except as contained in this notice, the name of the X Consortium shall +.\" not be used in advertising or otherwise to promote the sale, use or +.\" other dealings in this Software without prior written authorization +.\" from the X Consortium. +.\" +.\" Copyright \(co 1985, 1986, 1987, 1988, 1991, 1994 +.\" Digital Equipment Corporation, Maynard, Massachusetts. +.\" +.\" Permission to use, copy, modify and distribute this documentation for any +.\" purpose and without fee is hereby granted, provided that the above copyright +.\" notice appears in all copies and that both that copyright notice and this +.\" permission notice appear in supporting documentation, and that the name of +.\" Digital not be used in in advertising or publicity pertaining +.\" to distribution of the software without specific, written prior permission. +.\" Digital makes no representations about the suitability of the +.\" software described herein for any purpose. +.\" It is provided ``as is'' without express or implied warranty. +.\" +.bp +\& +.sp 1 +.ce 3 +\s+1\fBAppendix F\fP\s-1 + +\s+1\fBResource Configuration Management\fP\s-1 +.sp 2 +.LP +.XS +\fBAppendix F \(em Resource Configuration Management\fP +.XE +Setting and changing resources in X applications can be difficult for +both the application programmer and the end user. \fBResource +Configuration Management (RCM)\fP addresses this problem by changing +the \fBX Intrinsics\fP to immediately modify a resource for a +specified widget and each child widget in the hierarchy. +In this context, immediate means: no sourcing of a resource +file is required; the application does not need to be restarted for the +new resource values to take effect; and the change +occurs immediately. +.LP +The main difference between \fBRCM\fP and the \fBEditres\fP +protocol is that the \fBRCM\fP +customizing hooks reside in the \fBIntrinsics\fP and thus are linked with +other toolkits such as Motif and the Athena widgets. However, the +\fBEditRes\fP protocol requires the application to link with the +\fBEditRes\fP +routines in the Xmu library and Xmu is not used by all applications that +use Motif. Also, the \fBEditRes\fP protocol uses ClientMessage, +whereas the +\fBRCM\fP \fBIntrinsics\fP hooks use \fBPropertyNotify\fP events. +.LP +X Properties and the \fBPropertyNotify\fP events are used +to implement \fBRCM\fP and +allow on-the-fly resource customization. When the X Toolkit is +initialized, two atoms are interned with the strings +\fICustom Init\fP and +\fICustom Data\fP. Both +.PN _XtCreatePopupShell +and +.PN _XtAppCreateShell +register a \fBPropertyNotify\fP event handler to handle these properties. +.LP +A customization tool uses the \fICustom Init\fP property to \fIping\fP an +application to get the application's toplevel window. When the +application's property notify event handler is invoked, the handler +deletes the property. No data is transferred in this property. +.LP +A customization tool uses the \fICustom Data\fP property to tell an +application that it should change a resource's value. The data in +the property contains the length of the resource name (the number +of bytes in the resource name), the resource name and the new +value for the resource. This property's type is \fBXA_STRING\fP and +the format of the string is: +.IP 1. 5 +The length of the resource name (the number of bytes in +the resource name) +.IP 2. 5 +One space character +.IP 3. 5 +The resource name +.IP 4. 5 +One space character +.IP 5. 5 +The resource value +.LP +When setting the application's resource, the event handler calls +functions to walk the application's widget tree, determining which +widgets are affected by the resource string, and then applying the value +with +.PN XtSetValues. +As the widget tree is recursively descended, at +each level in the widget tree a resource part is tested for a match. +When the entire resource string has been matched, the value is applied +to the widget or widgets. +.LP +Before a value is set on a widget, it is first determined if the last +part of the resource is a valid resource for that widget. It must also +add the resource to the application's resource database and then query +it using specific resource strings that is builds from the widget +information. + + |