Point ClassObjects of Point class describe a location with X- and Y-axis
coordinates. These objects are commonly used to describe
locations on a display.
The draw and drawWithPen methods allow you to draw
Point objects on a X11CanvasPane object at the
coordinates given by the point’s x and y instance
variables. There is an example program at the end of this section.
See point-example.
If you use the draw method and don’t provide a
Pen object, Ctalk draws the point with the default
diameter of one pixel, and the default color is black.
draw (X11Pane pane_object)Draw the receiver on pane_object at the coordinates
given by the receiver’s x and y instance
variables.
This method draws to the X11Pane objects buffer. To draw
offscreen to a separate X11Bitmap, object refer to the method
drawPoint in class X11Bitmap. See X11Bitmap.
drawWithPein (X11Pane pane_object, Pen pen_object)Draw the receiver on pane_object at the coordinates
given by the receiver’s x and y instance
variables, with the diameter and color supplied by the
pen_object argument. See Pen.
This method also draws to the X11Pane object’s buffer. To draw
offscreen to a separate X11Bitmap object, refer to the method
drawPoint in class X11Bitmap. See X11Bitmap.
int main () {
X11Pane new xPane;
InputEvent new e;
X11PaneDispatcher new xTopLevelPane;
X11CanvasPane new xCanvasPane;
Application new paneApp;
paneApp enableExceptionTrace;
paneApp installExitHandlerBasic;
xPane initialize 10, 10, 250, 250;
xPane inputStream eventMask = /* Tell the main window's event */
WINDELETE|EXPOSE; /* object, a X11InputStream, */
/* which types of events we */
/* plan to use. */
xTopLevelPane attachTo xPane; /* The attachTo methods also */
xCanvasPane attachTo xTopLevelPane; /* set the dimensions of the */
/* subpanes before they are */
/* mapped and raised along */
/* with the top-level pane. */
xPane map;
xPane raiseWindow;
xPane openEventStream; /* Before we can do any */
/* drawing on the window, we */
/* need to start sending and */
/* receiving events from the */
/* X server. That is what */
/* openEventStream does. */
xPane background "yellow"; /* Setting the background of */
xPane clearWindow; /* an X11Pane object sets the*/
/* background of the actual */
/* window. */
xCanvasPane background "yellow"; /* Setting the background of */
/* a buffered pane like a */
/* X11CanvasPane sets the */
/* background color of its */
/* buffer. */
xCanvasPane clearRectangle 0, 0, 250, 250; /* In both cases, we */
/* need to update the */
/* pane before the new */
/* color is visible, */
/* with either, */
/* "clearWindow," or, */
/* "clearRectangle." */
xCanvasPane pen width = 100;
xCanvasPane pen colorName = "red";
xCanvasPane drawPoint 40, 40;
xCanvasPane pen colorName = "green";
xCanvasPane drawPoint 120, 40;
xCanvasPane pen colorName = "blue";
xCanvasPane drawPoint 80, 90;
while (TRUE) {
xPane inputStream queueInput;
if (xPane inputStream eventPending) {
e become xPane inputStream inputQueue unshift;
xPane subPaneNotify e; /* We need to notify subPanes */
/* e.g., xCanvasPane of the */
/* input events from the GUI. */
switch (e eventClass value)
{
case WINDELETE:
xPane deleteAndClose;
exit (0);
break;
case EXPOSE:
case RESIZENOTIFY:
xCanvasPane pen width = 100;
xCanvasPane pen colorName = "red";
xCanvasPane drawPoint 40, 40;
xCanvasPane pen colorName = "green";
xCanvasPane drawPoint 120, 40;
xCanvasPane pen colorName = "blue";
xCanvasPane drawPoint 80, 90;
break;
default:
break;
}
}
}
}