Object Type: xpix Description: Foundation object class for pixes. All other pix classes are subclassed from pix. Therefore these subclasses perform a superset of the operations described here. Pix and its subclasses can be thought of as being graphical objects in a 3-d space, which can be viewed using the coredraw widget and its subclasses. In the same way that other widgets can only be created in a form, pixes can only be created in a coredraw or a subclass thereof. However, a pix need not be the direct child element of a draw widget as long as the draw widget is somewhere there among its ancestors. The functions provided by pix, which are inherited or overridden by its subclasses, include: Specifying a set of coordinates. Calling the transformation routines (which are specified by the draws). Drawing an image based on the transformed coordinates. Providing information to the draw for determining which pix should respond to a mouse click Executing script functions in response to mouse or keyboard events. Coredraw and subclassses do not display anything on their own. The pixes provide the actual images and drawing routines displayed in a coredraw widget/subclasses. It is important to note that since the pix display, transformation and event handling functions are present in the coredraw class, any pix can be displayed in any draw subclass. The exact transformation used to display the pix is defined by the draw widget it lives in. Note that the coordinates of the pix are not changed by any of the transformations. In a future revision the z coordinate will be used to determine the order of redrawing pixes to enable pixes to obscure each other according to depth. All pixes have a special field 'pixflags' which contains a large number of options for drawing, projecting and so on. The 'pixflags' utility function allows one to see the options for this field. While pixflags can be set directly to the appropriate hexadecimal number, there is a special parser which will interpret options as set out by the pixflags utility funciton. Author: Upi Bhalla Caltech April 93 ---------------------------------------------------------------------------ELEMENT PARAMETERS DataStructure: xpix_type [in src/Xodus/draw/xpix_struct.h Size: ? Fields: fg Foreground color of pix. script Script operation(s) to perform on a mouse click. The script calls of the pix are only made if the draw determines that the pix is the nearest to the event and if the event occurred within the bounding region of the pix. tx Transposition distance in the x dimension. The pix is transposed (ie, displaced, offset) by this amount. ty Transposition in y. tz Transposition in z. pixflags Set of flags specifying visibility, refreshes, mouse sensitivity and many other options. Use the 'pixflags' utility function to find out more. --------------------------------------------------------------------------SIMULATION PARAMETERS Function: XPix [in src/Xodus/widg/xpix.c] Classes: gadget Actions: XUPDATE: update internal fields when displayed widget is changed. B1DOWN: Invoked when mouse Button 1 is pressed. B2DOWN: Invoked when mouse Button 2 is pressed. B3DOWN: Invoked when mouse Button 3 is pressed. ANYBDOWN: Invoked when any mouse button is pressed. B1DOUBLE: Invoked on a double click on mouse button 1. B2DOUBLE: Invoked on a double click on mouse button 2. B3DOUBLE: Invoked on a double click on mouse button 3. XOCOMMAND: an action that can invoke the functions in the 'script' field XODROP: Called when a another pix is dropped onto this one. XODRAG: Called when the mouse is clicked on this pix, and the mouse moves while the mouse button is held down. XOWASDROPPED: Called after this pix has been dropped onto another one. Example: If pix A is moved onto pix B, the following sequence of events is issued: B1DOWN on A XODRAG on A XODROP on B XOWASDROPPED on A. Messages: none. --------------------------------------------------------------------------Notes: Can only be displayed in a coredraw widget subclass. The xpix does not perform any computational operations driven by the simulation clock. Example: Scripts/examples/XODUS/clicks.g See also: xcoredraw, Clicks