This file contains hints which might be useful to write applications of the Cedar X software. The X Window system version 11. This documents client features of the X software; For XTk toolkit information, see: XTkDoc.tioga For user information, see: X11Doc.tioga For implementor information, see: X11ImplDoc.tioga For a list of messages, see: X11MessagesDoc.tioga The Cedar X-Window software runs all on the client machine. Any standard X server implementing the correct protocol (R2, R3, R4, R5, XNews 2.0, XNews 3.0) will do. There are no server features in the Cedar X stuff. The Xl package implements all the accessing in Cedar; you might want to compare this with the approach of making cross language calls to the C language XLib interfaces. More documentation For documentation of X itself, read the X documentation and Layering scheme of the Cedar X Window software. *************************** X11BounceDemo, X11TextDemo Sample application program Goal: get this simple *************************** XTkWidgets An extensible set of widgets: Labels, Buttons, Fields, Rulers, Containers More modules at this layer: X11BitmapWidgets X people call this level Toolkit; there are multiple toolkits, each having the ambition to be the standard toolkit. This is the layer which might replace Cedar viewers *************************** XTk, XTkFriends Interface defining how widgets are supposed to interact and how widget classes should be implemented. Think ViewerClass. More modules at this layer: XlAssoc X people call this level Intrinsics, and it is very hard to use [I don't understand big parts it]. XTk is much simpler and somewhat less powerfull than the C aequivalent Xt. XTk is aimed at vanilla clients; X11TkFriends is for widget implementors. *************************** Xl Cedar access to the "X Window System Protocol". Think window, connection. More modules at this layer: X11Access, XlService, XlConventions X people call this level XLib (for the C language), and it is of tremendous size. Xl adds Cedarness, type safety, threads, garbage collection, more robustness and shared address space to its counterpoint in the C world This is the layer which could be used as base of the viewers port *************************** X Window System Protocol This is the reliable stream protocol of X as defined by MIT. This protocol speaks to the actual X display server, which is NOT subject of design here. This layer is well defined and of moderate size. [Much too big for my taste]. Normal X clients don't think in terms of this layer *************************** Definitions and packages: Xl Main definitions. This exports basically the XLib interface from C. XlAccess Semi internal interface, giving access to default server name and address translation. XlPrivate Definitions usefull internally to X11. Should not be used by normal clients. XlPrivateSplit Definitions usefull to split the implementation into separate modules; this interface is supposed to grow on a per need basis and is not really designed. Should not be used by normal clients. XlPrivateResources Chiseled some private features out of X11Private. Should not be used by normal clients. XlSpeedHacks Client level features. Put into a special interface to avoid propagation of knowledge of hacks. XlBWFriends A package implementing bitmap backed windows. [Bitmap on the host side!] XlWMOps Those X Window commands which might be usefull to window managers only. Separated out to reduce size of X11. XlICCCMTypes Types as used in the ICCCM convention. XlConventions Procedures usefull to implement ICCCM convention. XlPerDepth Usefull for widget implementors to carry per depth information. XlService Caching of connections towards same X server. Allows speed and memory savings. XlAssoc Sort of tables which know how to deal with nesting windows and disappearing windows. XlCursor Procedures returning X cursors. XlTextWindow Temporary text window interface. XlAsciiInput Temporary interface to deal with input. XTk Public toolkit interface. Sorry but also has some not so public types Defines rules how widgets do interact. XTkFriends Toolkit interface for widget classe implementors. XTkWidgets Nice set of widgets. XTkBitmapWidgets A good widget class implementing the Cedar Imager. X11PopUpSelection A very simple pou pu menu package. Customize Accessing databases with the format of X resource database. Generalized so it is useful in other contexts. A separate package. XlDB Basic access to the "standard" resource database. XTkDB Access the "standard" resource database from widgets. UnixShm0 Definitions for the unix shared memory feature. VMChunks A poor mans memory manager geared towards shared memory segments. XlShmPixmaps The pixmap level access interface ofr the X shared memory extension. The implementation contains stuff logically belonging on two levels: a) Bare implementation of the X window extension. b) The pixmap level which hides the gory details. Several test programs Please don't judge efficiency of test program to be the efficiency of Xl. These test programs do not do things the most efficient way but test. šX11ClientsDoc.tioga Copyright c 1988, 1989, 1991 by Xerox Corporation. All rights reserved. Created by: Christian Jacobi, April 20, 1988 9:49:16 am PDT Christian Jacobi, February 11, 1993 2:03 pm PST X Window System Protocol, Version 11 September 1987 Massachusetts Institute of Technology X Window System Protocol Encoding, Version 11 September 1987 Massachusetts Institute of Technology Κ’–(cedardoc) style•NewlineDelimiter ˜•Mark LastEditedšœ™J– LastEditedšœ Οmœ=™HJ– LastEditedšœ;™;J– LastEdited™/—J– LastEdited™J– LastEdited™J˜]J˜šΠbl!˜!J˜˜1J˜.Jšœ'˜'Jšœ2˜2Jšœ1˜1—J˜J˜ΪJ˜©—J˜šž˜J˜šœΡbklœ"˜8J˜Jšœ$™$Jšœ™Jšœ(™(J˜—šœ˜J˜Jšœ-™-Jšœ™Jšœ(™(J˜—J˜—J˜šž1˜1J˜J˜J˜˜J˜J˜—J˜J˜˜ JšœI˜IJšœ,˜,JšœΟbœS˜tJšΟi3˜3J˜—J˜˜J˜yJšœ#˜#Jšœ  œ>˜cJ˜JJ˜J˜IJ˜—J˜˜J˜JJšœ?˜?Jšœ œ6˜SJ˜ˆJš‘A˜AJ˜—J˜˜J˜ηJšœ4˜4—J˜J˜J˜—J˜šž˜J˜šŸ˜J˜D—šŸ˜J˜V—š  ˜ J˜&Jšœ%˜%—š ˜J˜™Jšœ%˜%—š ˜Jšœ1˜1Jšœ%˜%—š  ˜ Jšœ`˜`—š  ˜ J˜I—š ˜J˜n—š  ˜ J˜'—š  ˜ J˜2—š  ˜ J˜@—š  ˜ J˜P—š ˜J˜U—š ˜J˜ —š  ˜ J˜!—š  ˜ J˜(—J˜š ˜J˜GJ˜&—š  ˜ J˜2—š  ˜ J˜—š ˜J˜3—š ˜J˜#—J˜š  ˜ J˜—š ˜J˜2—š ˜J˜6—J˜š ˜J˜0—š ˜J˜B—š  ˜ J˜E˜EJ˜2J˜2——J˜š ˜Jšœ‹ œ˜—J˜J˜——…—Nz