asente@adobe.com (11/01/90)
Submitted-by: asente@adobe.com Posting-number: Volume 10, Issue 42 Archive-name: xt-examples/part02 #! /bin/sh # This is a shell archive, meaning: # 1. Remove everything above the #! /bin/sh line. # 2. Save the resulting text in a file. # 3. Execute the file with /bin/sh (not csh) to create the files: # fragments # This archive created: Wed Oct 24 14:19:37 1990 export PATH; PATH=/bin:$PATH if test ! -d 'fragments' then echo shar: creating directory "'fragments'" mkdir 'fragments' fi echo shar: entering directory "'fragments'" cd 'fragments' echo shar: extracting "'complexboxgeometrymanager.c'" '(2832 characters)' if test -f 'complexboxgeometrymanager.c' then echo shar: will not over-write existing file "'complexboxgeometrymanager.c'" else sed 's/^ X//' << \SHAR_EOF > 'complexboxgeometrymanager.c' X/*********************************************************** XCopyright 1990 by Digital Equipment Corporation, Maynard, Massachusetts. X X All Rights Reserved X XPermission to use, copy, modify, and distribute these examples for any Xpurpose and without fee is hereby granted, provided that the above Xcopyright notice appear in all copies and that both that copyright Xnotice and this permission notice appear in supporting documentation, Xand that the name of Digital not be used in advertising or publicity Xpertaining to distribution of the software without specific, written Xprior permission. X XDIGITAL AND THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS XSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND XFITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT XOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS XOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE XOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE XOR PERFORMANCE OF THIS SOFTWARE. X X******************************************************************/ X Xstatic XtGeometryResult GeometryManager(w, desired, allowed) X Widget w; X XtWidgetGeometry *desired, *allowed; X{ X BoxWidget box = (BoxWidget) XtParent(w); X XtWidgetGeometry request; X XtGeometryResult result; X Dimension save_width, save_height, save_border_width; X Position save_x, save_y; X X#define Wants(flag) (desired->request_mode & flag) X X save_width = w->core.width; X save_height = w->core.height; X save_border_width = w->core.border_width; X save_x = w->core.x; X save_y = w->core.y; X X if (Wants(CWWidth)) w->core.width = desired->width; X if (Wants(CWHeight)) w->core.height = desired->height; X if (Wants(CWX)) w->core.x = desired->x; X if (Wants(CWY)) w->core.y = desired->y; X if (Wants(CWBorderWidth)) { X w->core.border_width = desired->border_width; X } X X CalculateNewSize(box, &request.width, &request.height); X X if (request.width == box->core.width && X request.height == box->core.height) { X if (Wants(XtCWQueryOnly)) { X w->core.width = save_width; X w->core.height = save_height; X w->core.border_width = save_border_width; X w->core.x = save_x; X w->core.y = save_y; X } X return XtGeometryYes; X } X X request.request_mode = CWWidth | CWHeight; X if (Wants(XtCWQueryOnly)) request.request_mode |= XtCWQueryOnly; X X result = XtMakeGeometryRequest((Widget) box, &request, X (XtGeometryRequest *) NULL); X if (result == XtGeometryAlmost) result = XtGeometryNo; X if (result == XtGeometryNo || Wants(XtCWQueryOnly)) { X w->core.width = save_width; X w->core.height = save_height; X w->core.border_width = save_border_width; X w->core.x = save_x; X w->core.y = save_y; X } X return result; X X#undef Wants X} SHAR_EOF if test 2832 -ne "`wc -c < 'complexboxgeometrymanager.c'`" then echo shar: error transmitting "'complexboxgeometrymanager.c'" '(should have been 2832 characters)' fi fi # end of overwriting check echo shar: extracting "'Vendor.h'" '(1451 characters)' if test -f 'Vendor.h' then echo shar: will not over-write existing file "'Vendor.h'" else sed 's/^ X//' << \SHAR_EOF > 'Vendor.h' X/*********************************************************** XCopyright 1990 by Digital Equipment Corporation, Maynard, Massachusetts. X X All Rights Reserved X XPermission to use, copy, modify, and distribute these examples for any Xpurpose and without fee is hereby granted, provided that the above Xcopyright notice appear in all copies and that both that copyright Xnotice and this permission notice appear in supporting documentation, Xand that the name of Digital not be used in advertising or publicity Xpertaining to distribution of the software without specific, written Xprior permission. X XDIGITAL AND THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS XSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND XFITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT XOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS XOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE XOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE XOR PERFORMANCE OF THIS SOFTWARE. X X******************************************************************/ X X#ifndef VENDOR_H X#define VENDOR_H X X#define XtNnoTitle "noTitle" X#define XtNtitleFont "titleFont" X X#define XtCNoTitle "NoTitle" X#define XtCTitleFont "TitleFont" X X/* Class record constants */ X Xtypedef struct _VendorShellClassRec *VendorShellWidgetClass; X Xextern WidgetClass vendorShellWidgetClass; X X#endif /* VENDOR_H */ SHAR_EOF if test 1451 -ne "`wc -c < 'Vendor.h'`" then echo shar: error transmitting "'Vendor.h'" '(should have been 1451 characters)' fi fi # end of overwriting check echo shar: extracting "'VendorP.h'" '(1925 characters)' if test -f 'VendorP.h' then echo shar: will not over-write existing file "'VendorP.h'" else sed 's/^ X//' << \SHAR_EOF > 'VendorP.h' X/*********************************************************** XCopyright 1990 by Digital Equipment Corporation, Maynard, Massachusetts. X X All Rights Reserved X XPermission to use, copy, modify, and distribute these examples for any Xpurpose and without fee is hereby granted, provided that the above Xcopyright notice appear in all copies and that both that copyright Xnotice and this permission notice appear in supporting documentation, Xand that the name of Digital not be used in advertising or publicity Xpertaining to distribution of the software without specific, written Xprior permission. X XDIGITAL AND THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS XSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND XFITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT XOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS XOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE XOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE XOR PERFORMANCE OF THIS SOFTWARE. X X******************************************************************/ X X#ifndef VENDORP_H X#define VENDORP_H X X/* New fields for the VendorShell widget class record */ X Xtypedef struct { X XtPointer extension; X} VendorShellClassPart; X Xtypedef struct _VendorShellClassRec { X CoreClassPart core_class; X CompositeClassPart composite_class; X ShellClassPart shell_class; X WMShellClassPart wm_shell_class; X VendorShellClassPart vendor_shell_class; X} VendorShellClassRec; X Xextern VendorShellClassRec vendorShellClassRec; X X/* New fields for the vendor shell widget. */ X Xtypedef struct { X Boolean no_title; X Font title_font; X} VendorShellPart; X Xtypedef struct { X CorePart core; X CompositePart composite; X ShellPart shell; X WMShellPart wm; X VendorShellPart vendor; X} VendorShellRec, *VendorShellWidget; X X#endif /* VENDORP_H */ SHAR_EOF if test 1925 -ne "`wc -c < 'VendorP.h'`" then echo shar: error transmitting "'VendorP.h'" '(should have been 1925 characters)' fi fi # end of overwriting check echo shar: extracting "'appgoodbye.c'" '(2135 characters)' if test -f 'appgoodbye.c' then echo shar: will not over-write existing file "'appgoodbye.c'" else sed 's/^ X//' << \SHAR_EOF > 'appgoodbye.c' X/*********************************************************** XCopyright 1990 by Digital Equipment Corporation, Maynard, Massachusetts. X X All Rights Reserved X XPermission to use, copy, modify, and distribute these examples for any Xpurpose and without fee is hereby granted, provided that the above Xcopyright notice appear in all copies and that both that copyright Xnotice and this permission notice appear in supporting documentation, Xand that the name of Digital not be used in advertising or publicity Xpertaining to distribution of the software without specific, written Xprior permission. X XDIGITAL AND THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS XSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND XFITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT XOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS XOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE XOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE XOR PERFORMANCE OF THIS SOFTWARE. X X******************************************************************/ X Xint main(argc, argv) X unsigned int argc; X char **argv; X{ X Widget toplevel, label, button, box; X XtAppContext app; X Display *dpy; X Arg args[2]; X int n; X unsigned_int saved_argc; X char **saved_argv; X X XtToolkitInitialize(); /* Initialize the toolkit */ X X app = XtCreateApplicationContext(); /* Create an app context */ X X /* Copy argc and argv */ X saved_argc = argc; X saved_argv = XtMalloc(argc * sizeof(char *)); X bcopy(argv, saved_argv, argc * sizeof(char *)); X X /* Open the default display */ X dpy = XtOpenDisplay(app, NULL, NULL, "Goodbye", X NULL, 0, &argc, argv); X X if (dpy == NULL) { X fprintf(stderr, "Couldn't open display connection\n"); X exit(1); X } X X /* Create a shell */ X n = 0; X XtSetArg(args[n], XtNargc, saved_argc); n++; X XtSetArg(args[n], XtNargv, saved_argv); n++; X X toplevel = XtAppCreateShell(NULL, "Goodbye", X applicationShellWidgetClass, dpy, args, n); X X /* The rest of the code is identical */ X} SHAR_EOF if test 2135 -ne "`wc -c < 'appgoodbye.c'`" then echo shar: error transmitting "'appgoodbye.c'" '(should have been 2135 characters)' fi fi # end of overwriting check echo shar: extracting "'extension.c'" '(1957 characters)' if test -f 'extension.c' then echo shar: will not over-write existing file "'extension.c'" else sed 's/^ X//' << \SHAR_EOF > 'extension.c' X/*********************************************************** XCopyright 1990 by Digital Equipment Corporation, Maynard, Massachusetts. X X All Rights Reserved X XPermission to use, copy, modify, and distribute these examples for any Xpurpose and without fee is hereby granted, provided that the above Xcopyright notice appear in all copies and that both that copyright Xnotice and this permission notice appear in supporting documentation, Xand that the name of Digital not be used in advertising or publicity Xpertaining to distribution of the software without specific, written Xprior permission. X XDIGITAL AND THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS XSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND XFITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT XOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS XOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE XOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE XOR PERFORMANCE OF THIS SOFTWARE. X X******************************************************************/ X Xvoid MyDefineQueryMinimumSize(widget_class, proc) X WidgetClass widget_class; X MinimumSizeProc proc; X{ X static Quark myWidgetSet = NULLQUARK; X MyCoreClassExtension extension; X X if (myWidgetSet == NULLQUARK) { X myWidgetSet = XrmStringToQuark("MY_WIDGET_SET"); X } X X for (extension = widget_class->core_class.extension; X extension != NULL && extension->record_type != myWidgetSet; X extension = extension->next_extension) {} X X if (extension == NULL) { X extension = XtNew(MyCoreClassExtensionRec); X extension->next_extension = widget_class->core_class.extension; X widget_class->core_class.extension = extension; X extension->record_type = myWidgetSet; X extension->version = @i[something]; X extension->record_size = sizeof(MyCoreClassExtensionRec); X } X X extension->query_minimum_size = proc; X} SHAR_EOF if test 1957 -ne "`wc -c < 'extension.c'`" then echo shar: error transmitting "'extension.c'" '(should have been 1957 characters)' fi fi # end of overwriting check echo shar: extracting "'fakeexample.c'" '(2304 characters)' if test -f 'fakeexample.c' then echo shar: will not over-write existing file "'fakeexample.c'" else sed 's/^ X//' << \SHAR_EOF > 'fakeexample.c' X/*********************************************************** XCopyright 1990 by Digital Equipment Corporation, Maynard, Massachusetts. X X All Rights Reserved X XPermission to use, copy, modify, and distribute these examples for any Xpurpose and without fee is hereby granted, provided that the above Xcopyright notice appear in all copies and that both that copyright Xnotice and this permission notice appear in supporting documentation, Xand that the name of Digital not be used in advertising or publicity Xpertaining to distribution of the software without specific, written Xprior permission. X XDIGITAL AND THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS XSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND XFITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT XOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS XOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE XOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE XOR PERFORMANCE OF THIS SOFTWARE. X X******************************************************************/ X X#include <X11/Intrinsic.h> X#include <X11/StringDefs.h> X Xvoid DrawContents(widget, event, params, num_params) X Widget widget; X XEvent *event; X String *params; /* Unused */ X Cardinal *num_params; /* Unused */ X{ X Window window = XtWindow(widget); X Display display = XtDisplay(widget); X X if (event->type != Expose) return; X /* Draw in the window... */ X} X Xint main(argc, argv) X unsigned int argc; X char **argv; X{ X Widget toplevel, panel; X Arg args[25]; X int n; X XtAppContext app; X static XtActionsRec actions[] = {{"refresh", DrawContents}}; X static char translations[] = "<Expose> : refresh()"; X X toplevel = XtAppInitialize(&app, "Draw", X (XrmOptionDescList) NULL, 0, &argc, argv, X (String *) NULL, (ArgList) NULL, 0); X X XtAppAddActions(app, actions, XtNumber(actions)); X X n = 0; X XtSetArg(args[n], XtNwidth, 100); n++; X XtSetArg(args[n], XtNheight, 100); n++; X XtSetArg(args[n], XtNtranslations, X XtParseTranslationTable(translations)); n++; X panel = XtCreateManagedWidget("panel", widgetClass, toplevel, X args, n); X X XtRealizeWidget(toplevel); X XtAppMainLoop(app); X} SHAR_EOF if test 2304 -ne "`wc -c < 'fakeexample.c'`" then echo shar: error transmitting "'fakeexample.c'" '(should have been 2304 characters)' fi fi # end of overwriting check echo shar: extracting "'fetchatom.c'" '(1446 characters)' if test -f 'fetchatom.c' then echo shar: will not over-write existing file "'fetchatom.c'" else sed 's/^ X//' << \SHAR_EOF > 'fetchatom.c' X/*********************************************************** XCopyright 1990 by Digital Equipment Corporation, Maynard, Massachusetts. X X All Rights Reserved X XPermission to use, copy, modify, and distribute these examples for any Xpurpose and without fee is hereby granted, provided that the above Xcopyright notice appear in all copies and that both that copyright Xnotice and this permission notice appear in supporting documentation, Xand that the name of Digital not be used in advertising or publicity Xpertaining to distribution of the software without specific, written Xprior permission. X XDIGITAL AND THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS XSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND XFITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT XOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS XOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE XOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE XOR PERFORMANCE OF THIS SOFTWARE. X X******************************************************************/ X Xstatic Atom FetchAtom(w, name) X Widget w; X String name; X{ X Atom a; X XrmValue source, dest; X X source.size = strlen(name)+1; X source.addr = name; X dest.size = sizeof(Atom); X dest.addr = (caddr_t) &a; X X (void) XtConvertAndStore(w, XtRString, &source, XtRAtom, &dest); X return a; X} X SHAR_EOF if test 1446 -ne "`wc -c < 'fetchatom.c'`" then echo shar: error transmitting "'fetchatom.c'" '(should have been 1446 characters)' fi fi # end of overwriting check echo shar: extracting "'keymappingexample.c'" '(1893 characters)' if test -f 'keymappingexample.c' then echo shar: will not over-write existing file "'keymappingexample.c'" else sed 's/^ X//' << \SHAR_EOF > 'keymappingexample.c' X/*********************************************************** XCopyright 1990 by Digital Equipment Corporation, Maynard, Massachusetts. X X All Rights Reserved X XPermission to use, copy, modify, and distribute these examples for any Xpurpose and without fee is hereby granted, provided that the above Xcopyright notice appear in all copies and that both that copyright Xnotice and this permission notice appear in supporting documentation, Xand that the name of Digital not be used in advertising or publicity Xpertaining to distribution of the software without specific, written Xprior permission. X XDIGITAL AND THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS XSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND XFITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT XOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS XOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE XOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE XOR PERFORMANCE OF THIS SOFTWARE. X X******************************************************************/ X XKeySym k; Xchar ch; X X/* Don't care about the modifiers, so pass NULL */ Xk = XtGetActionKeysym(event, NULL); X Xif (k == NoSymbol) { X /* Not a keyboard event or no keysym for the keycode in the X event. Do whatever is appropriate. */ X} else { X /* Compensate for servers that call a minus a hyphen */ X if (k == XK_hyphen) k = XK_minus; X X if (k & 0xFF00 != 0) { X /* Not a keysym for an ISO Latin-1 character. Do whatever X is appropriate. If restricting to ASCII, mask with X 0xFF80 instead. */ X } else { X /* ISO Latin-1 keysyms are the same as the character */ X ch = (char) k; X X /* If control is set, mask off high bits */ X if (event->xkey.modifiers & ControlMask) ch &= 0x1F; X } X} X X/* Do whatever is appropriate with the character */ X SHAR_EOF if test 1893 -ne "`wc -c < 'keymappingexample.c'`" then echo shar: error transmitting "'keymappingexample.c'" '(should have been 1893 characters)' fi fi # end of overwriting check echo shar: extracting "'setwmprotocol.c'" '(1932 characters)' if test -f 'setwmprotocol.c' then echo shar: will not over-write existing file "'setwmprotocol.c'" else sed 's/^ X//' << \SHAR_EOF > 'setwmprotocol.c' X/*********************************************************** XCopyright 1990 by Digital Equipment Corporation, Maynard, Massachusetts. X X All Rights Reserved X XPermission to use, copy, modify, and distribute these examples for any Xpurpose and without fee is hereby granted, provided that the above Xcopyright notice appear in all copies and that both that copyright Xnotice and this permission notice appear in supporting documentation, Xand that the name of Digital not be used in advertising or publicity Xpertaining to distribution of the software without specific, written Xprior permission. X XDIGITAL AND THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS XSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND XFITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT XOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS XOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE XOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE XOR PERFORMANCE OF THIS SOFTWARE. X X******************************************************************/ X X/* Make these global, we'll need them later. If this is a multi- X display application, these must be kept for each display. */ XAtom wm_take_focus, wm_save_yourself; X Xstatic Atom FetchAtom(w, name) X Widget w; X String name; X{ X Atom a; X XrmValue source, dest; X X source.size = strlen(name)+1; X source.addr = name; X dest.size = sizeof(Atom); X dest.addr = &a; X X (void) XtConvertAndStore(w, XtRString, &source, XtRAtom, &dest); X return a; X} X X/* Time to set the protocols */ XAtom protocolList[2]; X Xwm_take_focus = FetchAtom(shell, "WM_TAKE_FOCUS"); Xwm_save_yourself = FetchAtom(shell, "WM_SAVE_YOURSELF"); XprotocolList[0] = wm_take_focus; XprotocolList[1] = wm_save_yourself; X X(void) XSetWMProtocols(XtDisplay(shell), XtWindow(shell), X protocolList, XtNumber(protocolList)); SHAR_EOF if test 1932 -ne "`wc -c < 'setwmprotocol.c'`" then echo shar: error transmitting "'setwmprotocol.c'" '(should have been 1932 characters)' fi fi # end of overwriting check echo shar: extracting "'subresources.c'" '(1483 characters)' if test -f 'subresources.c' then echo shar: will not over-write existing file "'subresources.c'" else sed 's/^ X//' << \SHAR_EOF > 'subresources.c' X/*********************************************************** XCopyright 1990 by Digital Equipment Corporation, Maynard, Massachusetts. X X All Rights Reserved X XPermission to use, copy, modify, and distribute these examples for any Xpurpose and without fee is hereby granted, provided that the above Xcopyright notice appear in all copies and that both that copyright Xnotice and this permission notice appear in supporting documentation, Xand that the name of Digital not be used in advertising or publicity Xpertaining to distribution of the software without specific, written Xprior permission. X XDIGITAL AND THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS XSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND XFITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT XOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS XOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE XOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE XOR PERFORMANCE OF THIS SOFTWARE. X X******************************************************************/ X Xtypedef struct { X int width_mm; X int height_mm; X} mmDimensions; X Xstatic XtResource subresources[] = { X {XtNwidthMM, XtCWidthMM, XtRInt, sizeof(int), X XtOffsetOf(mmDimensions, width_mm), X XtRImmediate, (XtPointer) -1}, X {XtNheightMM, XtCHeightMM, XtRInt, sizeof(int), X XtOffsetOf(mmDimensions, height_mm), X XtRImmediate, (XtPointer) -1} X}; SHAR_EOF if test 1483 -ne "`wc -c < 'subresources.c'`" then echo shar: error transmitting "'subresources.c'" '(should have been 1483 characters)' fi fi # end of overwriting check echo shar: extracting "'subresourcesgetvalues.c'" '(1448 characters)' if test -f 'subresourcesgetvalues.c' then echo shar: will not over-write existing file "'subresourcesgetvalues.c'" else sed 's/^ X//' << \SHAR_EOF > 'subresourcesgetvalues.c' X/*********************************************************** XCopyright 1990 by Digital Equipment Corporation, Maynard, Massachusetts. X X All Rights Reserved X XPermission to use, copy, modify, and distribute these examples for any Xpurpose and without fee is hereby granted, provided that the above Xcopyright notice appear in all copies and that both that copyright Xnotice and this permission notice appear in supporting documentation, Xand that the name of Digital not be used in advertising or publicity Xpertaining to distribution of the software without specific, written Xprior permission. X XDIGITAL AND THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS XSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND XFITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT XOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS XOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE XOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE XOR PERFORMANCE OF THIS SOFTWARE. X X******************************************************************/ X X{ X mmDimensions dim; X X dim.width_mm = w->core.width * WidthMMOfScreen(XtScreen(w)) / X WidthOfScreen(XtScreen(w)); X dim.height_mm = w->core.height * HeightMMOfScreen(XtScreen(w)) / X HeightOfScreen(XtScreen(w)); X X XtGetSubvalues(&dim, subresources, XtNumber(subresources), X args, num_args); X} X SHAR_EOF if test 1448 -ne "`wc -c < 'subresourcesgetvalues.c'`" then echo shar: error transmitting "'subresourcesgetvalues.c'" '(should have been 1448 characters)' fi fi # end of overwriting check echo shar: extracting "'subresourcesinit.c'" '(1584 characters)' if test -f 'subresourcesinit.c' then echo shar: will not over-write existing file "'subresourcesinit.c'" else sed 's/^ X//' << \SHAR_EOF > 'subresourcesinit.c' X/*********************************************************** XCopyright 1990 by Digital Equipment Corporation, Maynard, Massachusetts. X X All Rights Reserved X XPermission to use, copy, modify, and distribute these examples for any Xpurpose and without fee is hereby granted, provided that the above Xcopyright notice appear in all copies and that both that copyright Xnotice and this permission notice appear in supporting documentation, Xand that the name of Digital not be used in advertising or publicity Xpertaining to distribution of the software without specific, written Xprior permission. X XDIGITAL AND THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS XSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND XFITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT XOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS XOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE XOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE XOR PERFORMANCE OF THIS SOFTWARE. X X******************************************************************/ X X{ X mmDimensions dim; X X XtGetSubresources(new, &dim, (String) NULL, (String) NULL, X subresources, XtNumber(subresources), args, num_args); X X if (dim.width_mm != -1) { X new->core.width = dim.width_mm * WidthOfScreen(XtScreen(new)) / X WidthMMOfScreen(XtScreen(new)); X } X if (dim.height_mm != -1) { X new->core.height = dim.height_mm * X HeightOfScreen(XtScreen(new)) / X HeightMMOfScreen(XtScreen(new)); X } X} SHAR_EOF if test 1584 -ne "`wc -c < 'subresourcesinit.c'`" then echo shar: error transmitting "'subresourcesinit.c'" '(should have been 1584 characters)' fi fi # end of overwriting check echo shar: extracting "'subresourcessetvalues.c'" '(1568 characters)' if test -f 'subresourcessetvalues.c' then echo shar: will not over-write existing file "'subresourcessetvalues.c'" else sed 's/^ X//' << \SHAR_EOF > 'subresourcessetvalues.c' X/*********************************************************** XCopyright 1990 by Digital Equipment Corporation, Maynard, Massachusetts. X X All Rights Reserved X XPermission to use, copy, modify, and distribute these examples for any Xpurpose and without fee is hereby granted, provided that the above Xcopyright notice appear in all copies and that both that copyright Xnotice and this permission notice appear in supporting documentation, Xand that the name of Digital not be used in advertising or publicity Xpertaining to distribution of the software without specific, written Xprior permission. X XDIGITAL AND THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS XSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND XFITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT XOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS XOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE XOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE XOR PERFORMANCE OF THIS SOFTWARE. X X******************************************************************/ X X{ X static mmDimensions dim = {-1, -1}; X X XtSetSubvalues(&dim, subresources, XtNumber(subresources), X args, num_args); X X if (dim.width_mm != -1) { X new->core.width = dim.width_mm * WidthOfScreen(XtScreen(new)) / X WidthMMOfScreen(XtScreen(new)); X } X if (dim.height_mm != -1) { X new->core.height = dim.height_mm * X HeightOfScreen(XtScreen(new)) / X HeightMMOfScreen(XtScreen(new)); X } X} SHAR_EOF if test 1568 -ne "`wc -c < 'subresourcessetvalues.c'`" then echo shar: error transmitting "'subresourcessetvalues.c'" '(should have been 1568 characters)' fi fi # end of overwriting check echo shar: extracting "'vendorinitialize.c'" '(1896 characters)' if test -f 'vendorinitialize.c' then echo shar: will not over-write existing file "'vendorinitialize.c'" else sed 's/^ X//' << \SHAR_EOF > 'vendorinitialize.c' X/*********************************************************** XCopyright 1990 by Digital Equipment Corporation, Maynard, Massachusetts. X X All Rights Reserved X XPermission to use, copy, modify, and distribute these examples for any Xpurpose and without fee is hereby granted, provided that the above Xcopyright notice appear in all copies and that both that copyright Xnotice and this permission notice appear in supporting documentation, Xand that the name of Digital not be used in advertising or publicity Xpertaining to distribution of the software without specific, written Xprior permission. X XDIGITAL AND THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS XSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND XFITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT XOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS XOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE XOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE XOR PERFORMANCE OF THIS SOFTWARE. X X******************************************************************/ X Xstatic void VendorShellInitialize(req, new, args, num_args) X Widget req, new; X ArgList args; X Cardinal *num_args; X{ X VendorShellWidget v = (VendorShellWidget) new; X Atom my_wm_title_font, actual_type; X int actual_format; X unsigned long nitems, bytes_after; X unsigned char *data; X X my_wm_title_font = FetchAtom(new, "MY_WM_TITLE_FONT"); X X if (XGetWindowProperty(XtDisplay(v), X RootWindowOfScreen(XtScreen(v)), X my_wm_title_font, 0L, 1L, False, my_wm_title_font, X &actual_type, &actual_format, &nitems, X &bytes_after, &data) == Success && X actual_type == my_wm_title_font && X actual_format == 32) { X v->vendor.title_font = (Font) *data; X } else v->vendor.title_font = None; X X if (data != NULL) XFree((char *) data); X} SHAR_EOF if test 1896 -ne "`wc -c < 'vendorinitialize.c'`" then echo shar: error transmitting "'vendorinitialize.c'" '(should have been 1896 characters)' fi fi # end of overwriting check echo shar: extracting "'vendorrealize.c'" '(1606 characters)' if test -f 'vendorrealize.c' then echo shar: will not over-write existing file "'vendorrealize.c'" else sed 's/^ X//' << \SHAR_EOF > 'vendorrealize.c' X/*********************************************************** XCopyright 1990 by Digital Equipment Corporation, Maynard, Massachusetts. X X All Rights Reserved X XPermission to use, copy, modify, and distribute these examples for any Xpurpose and without fee is hereby granted, provided that the above Xcopyright notice appear in all copies and that both that copyright Xnotice and this permission notice appear in supporting documentation, Xand that the name of Digital not be used in advertising or publicity Xpertaining to distribution of the software without specific, written Xprior permission. X XDIGITAL AND THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS XSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND XFITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT XOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS XOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE XOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE XOR PERFORMANCE OF THIS SOFTWARE. X X******************************************************************/ X Xstatic void VendorShellRealize(w, mask, attr) X Widget w; X XtValueMask *mask; X XSetWindowAttributes *attr; X{ X VendorShellWidget v = (VendorShellWidget) w; X Atom my_wm_no_title = FetchAtom(w, "MY_WM_NO_TITLE"); X X /* Make my superclass do all the dirty work */ X X (*wmShellWidgetClass->core_class.realize) (w, mask, attr); X X if (v->vendor.no_title) { X XChangeProperty(XtDisplay(w), XtWindow(w), X my_wm_no_title, my_wm_no_title, X 8, PropModeReplace, NULL, 0); X } X} SHAR_EOF if test 1606 -ne "`wc -c < 'vendorrealize.c'`" then echo shar: error transmitting "'vendorrealize.c'" '(should have been 1606 characters)' fi fi # end of overwriting check echo shar: extracting "'vendorresources.c'" '(1474 characters)' if test -f 'vendorresources.c' then echo shar: will not over-write existing file "'vendorresources.c'" else sed 's/^ X//' << \SHAR_EOF > 'vendorresources.c' X/*********************************************************** XCopyright 1990 by Digital Equipment Corporation, Maynard, Massachusetts. X X All Rights Reserved X XPermission to use, copy, modify, and distribute these examples for any Xpurpose and without fee is hereby granted, provided that the above Xcopyright notice appear in all copies and that both that copyright Xnotice and this permission notice appear in supporting documentation, Xand that the name of Digital not be used in advertising or publicity Xpertaining to distribution of the software without specific, written Xprior permission. X XDIGITAL AND THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS XSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND XFITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT XOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS XOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE XOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE XOR PERFORMANCE OF THIS SOFTWARE. X X******************************************************************/ X X#define Offset(field) XtOffsetOf(VendorShellWidgetRec, vendor.field) X Xstatic XtResource resources[] = { X {XtNnoTitle, XtCNoTitle, XtRBoolean, sizeof(Boolean), X Offset(no_title), XtRImmediate, (XtPointer) FALSE}, X {XtNtitleFont, XtCTitleFont, XtRFont, sizeof(Font), X Offset(title_font), XtRImmediate, (XtPointer) None} X}; X X#undef Offset SHAR_EOF if test 1474 -ne "`wc -c < 'vendorresources.c'`" then echo shar: error transmitting "'vendorresources.c'" '(should have been 1474 characters)' fi fi # end of overwriting check echo shar: extracting "'vendorsetvalues.c'" '(1856 characters)' if test -f 'vendorsetvalues.c' then echo shar: will not over-write existing file "'vendorsetvalues.c'" else sed 's/^ X//' << \SHAR_EOF > 'vendorsetvalues.c' X/*********************************************************** XCopyright 1990 by Digital Equipment Corporation, Maynard, Massachusetts. X X All Rights Reserved X XPermission to use, copy, modify, and distribute these examples for any Xpurpose and without fee is hereby granted, provided that the above Xcopyright notice appear in all copies and that both that copyright Xnotice and this permission notice appear in supporting documentation, Xand that the name of Digital not be used in advertising or publicity Xpertaining to distribution of the software without specific, written Xprior permission. X XDIGITAL AND THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS XSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND XFITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT XOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS XOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE XOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE XOR PERFORMANCE OF THIS SOFTWARE. X X******************************************************************/ X Xstatic Boolean VendorShellSetValues(old, ref, new, args, num_args) X Widget old, req, new; X ArgList args; X Cardinal *num_args; X{ X VendorShellWidget ov = (VendorShellWidget) old; X VendorShellWidget nv = (VendorShellWidget) new; X Atom my_wm_no_title; X X if (XtIsRealized(new)) { X if (ov->vendor.no_title != nv->vendor.no_title) { X my_wm_no_title = FetchAtom(new, "MY_WM_NO_TITLE"); X X if (nv->vendor.no_title) { X XChangeProperty(XtDisplay(new), XtWindow(new), X my_wm_no_title, my_wm_no_title, X 8, PropModeReplace, NULL, 0); X } else { X XDeleteProperty(XtDisplay(new), XtWindow(new), X my_wm_no_title); X } X } X } X X nv->vendor.title_font = ov->vendor.title_font; X return FALSE; X} SHAR_EOF if test 1856 -ne "`wc -c < 'vendorsetvalues.c'`" then echo shar: error transmitting "'vendorsetvalues.c'" '(should have been 1856 characters)' fi fi # end of overwriting check echo shar: extracting "'wmprotocolaction.c'" '(1926 characters)' if test -f 'wmprotocolaction.c' then echo shar: will not over-write existing file "'wmprotocolaction.c'" else sed 's/^ X//' << \SHAR_EOF > 'wmprotocolaction.c' X/*********************************************************** XCopyright 1990 by Digital Equipment Corporation, Maynard, Massachusetts. X X All Rights Reserved X XPermission to use, copy, modify, and distribute these examples for any Xpurpose and without fee is hereby granted, provided that the above Xcopyright notice appear in all copies and that both that copyright Xnotice and this permission notice appear in supporting documentation, Xand that the name of Digital not be used in advertising or publicity Xpertaining to distribution of the software without specific, written Xprior permission. X XDIGITAL AND THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS XSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND XFITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT XOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS XOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE XOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE XOR PERFORMANCE OF THIS SOFTWARE. X X******************************************************************/ X Xstatic void WMProtocolAction(w, event, params, num_params) X Widget w; X XEvent *event; X String *params; /* unused */ X Cardinal *num_params; /* unused */ X{ X Atom protocol = (Atom) event->xclient.data.l[0]; X X if (event->type != ClientMessage) return; X X /* Use atom values we got earlier */ X if (protocol == wm_take_focus) { X Time t = (Time) event->xclient.data.l[1]; X (void) XtCallAcceptFocus(mainWidget, &t); X } else if (protocol == wm_save_yourself) { X /* Save application state */ X } X} X Xstatic char *shellTrans = X "<ClientMessage> WM_PROTOCOLS : WMProtocolAction()"; Xstatic XtActionsRec actions[] = { X {"WMProtocolAction", WMProtocolAction} X}; X XXtAppAddActions(app, actions, XtNumber(actions)); XXtAugmentTranslations(shell, XtParseTranslationTable(shellTrans)); SHAR_EOF if test 1926 -ne "`wc -c < 'wmprotocolaction.c'`" then echo shar: error transmitting "'wmprotocolaction.c'" '(should have been 1926 characters)' fi fi # end of overwriting check echo shar: extracting "'workproc.c'" '(1558 characters)' if test -f 'workproc.c' then echo shar: will not over-write existing file "'workproc.c'" else sed 's/^ X//' << \SHAR_EOF > 'workproc.c' X/*********************************************************** XCopyright 1990 by Digital Equipment Corporation, Maynard, Massachusetts. X X All Rights Reserved X XPermission to use, copy, modify, and distribute these examples for any Xpurpose and without fee is hereby granted, provided that the above Xcopyright notice appear in all copies and that both that copyright Xnotice and this permission notice appear in supporting documentation, Xand that the name of Digital not be used in advertising or publicity Xpertaining to distribution of the software without specific, written Xprior permission. X XDIGITAL AND THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS XSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND XFITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT XOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS XOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE XOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE XOR PERFORMANCE OF THIS SOFTWARE. X X******************************************************************/ X XBoolean CreatePopupChild(client_data) X XtPointer client_data; X{ X Widget shell = (Widget) client_data; X Cardinal num_children; X XtCreatePopupChildProc create; X Arg args[2]; X int n = 0; X X XtSetArg(args[n], XtNnumChildren, &num_children); n++; X XtSetArg(args[n], XtNcreatePopupChildProc, &create); n++; X X XtGetValues(shell, args, n); X X if (num_children == 0) (*create) (shell); X X return TRUE; X} SHAR_EOF if test 1558 -ne "`wc -c < 'workproc.c'`" then echo shar: error transmitting "'workproc.c'" '(should have been 1558 characters)' fi fi # end of overwriting check echo shar: done with directory "'fragments'" cd .. # End of shell archive exit 0 dan ---------------------------------------------------- O'Reilly && Associates argv@sun.com / argv@ora.com Opinions expressed reflect those of the author only.