X11ClientsDoc.tioga
Copyright © 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
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
X Window System Protocol, Version 11
September 1987
Massachusetts Institute of Technology
and
X Window System Protocol Encoding, Version 11
September 1987
Massachusetts Institute of Technology
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.