X Toolkit Intrinsics - C Language Interface X Window System
Total Page:16
File Type:pdf, Size:1020Kb
X Toolkit Intrinsics - C Language Interface X Window System Joel McCormack, Digital Equipment Corporation Paul Asente, Digital Equipment Corporation Ralph R. Swick, Digital Equipment Corporation X Toolkit Intrinsics - C Language Interface: X Window System by Joel McCormack, Paul Asente, and Ralph R. Swick X Version 11, Release 7.7 XWindow System is a trademark of X Consortium, Inc. Copyright © 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 docu- mentation 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 © 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. Acknowledgments The design of the X11 Intrinsics was done primarily by Joel McCormack of Digi- tal WSL. Major contributions to the design and implementation also were done by Charles Haynes, Mike Chow, and Paul Asente of Digital WSL. Additional contribu- tors to the design and/or implementation were: Loretta Guarino-Reid (Digital WSL) Rich Hyde (Digital WSL) Susan Angebranndt (Digital WSL) Terry Weissman (Digital WSL) Mary Larson (Digital UEG) Mark Manasse (Digital SRC) Jim Gettys (Digital SRC) Leo Treggiari (Digital SDT) Ralph Swick (Project Athena and Digital Mark Ackerman (Project Athena) ERP) Ron Newman (Project Athena) Bob Scheifler (MIT LCS) The contributors to the X10 toolkit also deserve mention. Although the X11 Intrin- sics present an entirely different programming style, they borrow heavily from the implicit and explicit concepts in the X10 toolkit. The design and implementation of the X10 Intrinsics were done by: Terry Weissman (Digital WSL) Smokey Wallace (Digital WSL) Phil Karlton (Digital WSL) Charles Haynes (Digital WSL) Frank Hall (HP) The design and implementation of the X10 toolkit’s sample widgets were by the above, as well as by: Ram Rao (Digital UEG) Mary Larson (Digital UEG) Mike Gancarz (Digital UEG) Kathleen Langone (Digital UEG) These widgets provided a checklist of requirements that we had to address in the X11 Intrinsics. Thanks go to Al Mento of Digital’s UEG Documentation Group for formatting and generally improving this document and to John Ousterhout of Berkeley for exten- sively reviewing early drafts of it. Finally, a special thanks to Mike Chow, whose extensive performance analysis of the X10 toolkit provided the justification to redesign it entirely for X11. Joel McCormack Western Software Laboratory Digital Equipment Corporation i Acknowledgments March 1988 The current design of the Intrinsics has benefited greatly from the input of several dedicated reviewers in the membership of the X Consortium. In addition to those already mentioned, the following individuals have dedicated significant time to sug- gesting improvements to the Intrinsics: Steve Pitschke (Stellar) C.Doug Blewett (AT&T) Bob Miller (HP) David Schiferl (Tektronix) Fred Taft (HP) Michael Squires (Sequent) Marcel Meth (AT&T) JimFulton (MIT) Mike Collins (Digital) Kerry Kimbrough (Texas Instruments) Scott McGregor (Digital) Phil Karlton (Digital) Julian Payne (ESS) Jacques Davy (Bull) Gabriel Beged-Dov (HP) GlennWidener (Tektronix) Thanks go to each of them for the countless hours spent reviewing drafts and code. Ralph R. Swick External Research Group Digital Equipment Corporation MIT Project Athena June 1988 From Release 3 to Release 4, several new members joined the design team. We greatly appreciate the thoughtful comments, suggestions, lengthy discussions, and in some cases implementation code contributed by each of the following: Don Alecci (AT&T) EllisCohen (OSF) Donna Converse (MIT) Clive Feather (IXI) Nayeem Islam (Sun) Dana Laursen (HP) Keith Packard (MIT) Chris Peterson (MIT) Richard Probst (Sun) Larry Cable (Sun) In Release 5, the effort to define the internationalization additions was headed by Bill McMahon of Hewlett Packard and Frank Rojas of IBM. This has been an educa- tional process for many of us, and Bill and Frank’s tutelage has carried us through. Vania Joloboff of the OSF also contributed to the internationalization additions. The implementation efforts of Bill, Gabe Beged-Dov, and especially Donna Converse for this release are also gratefully acknowledged. Ralph R. Swick December 1989 and July 1991 The Release 6 Intrinsics is a result of the collaborative efforts of participants in the X Consortium’s intrinsics working group. A few individuals contributed substantial design proposals, participated in lengthy discussions, reviewed final specifications, ii Acknowledgments and in most cases, were also responsible for sections of the implementation. They deserve recognition and thanks for their major contributions: Paul Asente (Adobe) Larry Cable (SunSoft) Ellis Cohen (OSF) Daniel Dardailler (OSF) Vania Joloboff (OSF) KalebKeithley (X Consortium) Courtney Loomis (HP) Douglas Rand (OSF) Bob Scheifler (X Consortium) Ajay Vohra (SunSoft) Many others analyzed designs, offered useful comments and suggestions, and participated in a significant subset of the process. The following people deserve thanks for their contributions: Andy Bovingdon, Sam Chang, Chris Craig, George Erwin-Grotsky, Keith Edwards, Clive Feather, Stephen Gildea, Dan Heller, Steve Humphrey, David Kaelbling, Jaime Lau, Rob Lembree, Stuart Marks, Beth Mynatt, Tom Paquin, Chris Peterson, Kamesh Ramakrishna, Tom Rodriguez, Jim VanGilder, Will Walker, and Mike Wexler. I am especially grateful to two of my colleagues: Ralph Swick for expert editorial guidance, and Kaleb Keithley for leadership in the implementation and the specifi- cation work. Donna Converse X Consortium April 1994 iii Table of Contents About This Manual ............................................................................................... ix 1. Intrinsics and Widgets ...................................................................................... 1 Intrinsics ........................................................................................................ 1 Languages ...................................................................................................... 1 Procedures and Macros ................................................................................. 2 Widgets ........................................................................................................... 2 Core Widgets .......................................................................................... 3 Composite Widgets ................................................................................. 6 Constraint Widgets ................................................................................. 9 Implementation-Specific Types .................................................................... 10 Widget Classing ........................................................................................... 11 Widget Naming Conventions ................................................................ 12 Widget Subclassing in Public .h Files .................................................. 13 Widget Subclassing in Private .h Files ................................................. 14 Widget Subclassing in .c Files ............................................................. 15 Widget Class and Superclass Look Up ................................................. 18 Widget Subclass Verification ................................................................ 18 Superclass Chaining ............................................................................. 19 Class Initialization: class_initialize and class_part_initialize Proce- dures ..................................................................................................... 21 Initializing a Widget Class ................................................................... 22 Inheritance of Superclass Operations .................................................