v05i042: XView example programs, Part04/06
Dan Heller
argv at sun.com
Fri Dec 8 18:38:42 AEST 1989
Submitted-by: Dan Heller <argv at sun.com>
Posting-number: Volume 5, Issue 42
Archive-name: xview.demos/part04
#! /bin/sh
# This is a shell archive. Remove anything before this line, then feed it
# into a shell via "sh file" or similar. To overwrite existing files,
# type "sh file -c".
# The tool that generated this appeared in the comp.sources.unix newsgroup;
# send mail to comp-sources-unix at uunet.uu.net if you want that tool.
# If this archive is complete, you will see the following message at the end:
# "End of archive 4 (of 6)."
# Contents: xview.demos/color/cardback.icon xview.demos/color/color.c
# xview.demos/cursor/hot_spot.c xview.demos/fonts/simple_font.c
# xview.demos/fonts/type_font.c xview.demos/icons/closed.icon
# xview.demos/menus/menu.c xview.demos/menus/simple_menu.c
# xview.demos/menus/xv_menu.c xview.demos/misc/fullscreen.c
# xview.demos/notice/trigger_notice.c xview.demos/notifier/animate.c
# xview.demos/panels/Imakefile xview.demos/panels/list_glyphs.c
# xview.demos/panels/panel_repaint.c
# xview.demos/seln_svc/seln_line.c
# xview.demos/seln_svc/simple_seln.c
# xview.demos/sv_compat/gray_stencil.pr
# xview.demos/sv_compat/pw_draw.c
# Wrapped by argv at island on Thu Dec 7 23:18:23 1989
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'xview.demos/color/cardback.icon' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'xview.demos/color/cardback.icon'\"
else
echo shar: Extracting \"'xview.demos/color/cardback.icon'\" \(2003 characters\)
sed "s/^X//" >'xview.demos/color/cardback.icon' <<'END_OF_FILE'
X/* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16
X * Description: The back of a Sun playing card.
X * Background: White.
X */
X 0x3FFF,0xFFFF,0xFFFF,0xF800,0x7FFF,0xFFFF,0xFFFF,0xFC00,
X 0xC000,0x0000,0x0000,0x0600,0xC000,0x0000,0x0000,0x0600,
X 0xC000,0x0000,0x0000,0x0600,0xC000,0x0000,0x0000,0x0600,
X 0xC000,0x0000,0x0000,0x0600,0xC000,0x0000,0x0000,0x0600,
X 0xC000,0x0000,0x0000,0x0600,0xC000,0x0000,0x0000,0x0600,
X 0xC000,0x0000,0x0000,0x0600,0xC000,0x0000,0x0000,0x0600,
X 0xC000,0x0000,0x0000,0x0600,0xC000,0x0000,0x0000,0x0600,
X 0xC000,0x0038,0x0000,0x0600,0xC000,0x007C,0x0000,0x0600,
X 0xC000,0x00FE,0x0000,0x0600,0xC000,0x00EF,0x0000,0x0600,
X 0xC000,0x02E7,0x8000,0x0600,0xC000,0x0773,0xC000,0x0600,
X 0xC000,0x07B9,0xE000,0x0600,0xC000,0x13DC,0xF000,0x0600,
X 0xC000,0x39EE,0x7800,0x0600,0xC000,0x5CF7,0x3400,0x0600,
X 0xC000,0xEE7B,0x8E00,0x0600,0xC001,0xC73D,0xDC00,0x0600,
X 0xC003,0x9B9E,0xB980,0x0600,0xC007,0x3DCE,0x73C0,0x0600,
X 0xC00E,0x78FE,0xE780,0x0600,0xC01C,0xF77D,0xCF70,0x0600,
X 0xC039,0xEFBB,0x9EF8,0x0600,0xC073,0xDFC7,0x3DFC,0x0600,
X 0xC077,0xB9C7,0x7B9C,0x0600,0xC07F,0x73C7,0xF73C,0x0600,
X 0xC03E,0xE7BB,0xEE78,0x0600,0xC01D,0xCF7D,0xDCF0,0x0600,
X 0xC003,0x9EFE,0x39E0,0x0600,0xC007,0x3CEF,0x73C0,0x0600,
X 0xC002,0x7AE7,0xA780,0x0600,0xC000,0xF773,0xCF00,0x0600,
X 0xC000,0xE3B9,0xEE00,0x0600,0xC000,0x51DC,0xF400,0x0600,
X 0xC000,0x38EE,0x7800,0x0600,0xC000,0x1C77,0x3000,0x0600,
X 0xC000,0x0E3B,0x8000,0x0600,0xC000,0x071D,0xC000,0x0600,
X 0xC000,0x039E,0x8000,0x0600,0xC000,0x01CE,0x0000,0x0600,
X 0xC000,0x00FE,0x0000,0x0600,0xC000,0x007C,0x0000,0x0600,
X 0xC000,0x0038,0x0000,0x0600,0xC000,0x0000,0x0000,0x0600,
X 0xC000,0x0000,0x0000,0x0600,0xC000,0x0000,0x0000,0x0600,
X 0xC000,0x0000,0x0000,0x0600,0xC000,0x0000,0x0000,0x0600,
X 0xC000,0x0000,0x0000,0x0600,0xC000,0x0000,0x0000,0x0600,
X 0xC000,0x0000,0x0000,0x0600,0xC000,0x0000,0x0000,0x0600,
X 0xC000,0x0000,0x0000,0x0600,0xC000,0x0000,0x0000,0x0600,
X 0x7FFF,0xFFFF,0xFFFF,0xFC00,0x3FFF,0xFFFF,0xFFFF,0xF800
END_OF_FILE
if test 2003 -ne `wc -c <'xview.demos/color/cardback.icon'`; then
echo shar: \"'xview.demos/color/cardback.icon'\" unpacked with wrong size!
fi
# end of 'xview.demos/color/cardback.icon'
fi
if test -f 'xview.demos/color/color.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'xview.demos/color/color.c'\"
else
echo shar: Extracting \"'xview.demos/color/color.c'\" \(2990 characters\)
sed "s/^X//" >'xview.demos/color/color.c' <<'END_OF_FILE'
X#include <X11/Xlib.h>
X#include <X11/Xutil.h>
X
Xmain(argc, argv)
Xchar *argv[];
X{
X Display *display;
X int screen;
X XSizeHints sizehints;
X Window window;
X XEvent event;
X XButtonEvent *button;
X XColormapEvent *colormap;
X short i;
X int done = 0;
X Colormap cmap, orig_cmap;
X XVisualInfo vTemplate, *visualList;
X int visualsMatched;
X Visual *visual;
X XSetWindowAttributes atts;
X XColor color;
X
X display = XOpenDisplay("");
X screen = DefaultScreen ( display );
X window = XDefaultRootWindow(display);
X
X vTemplate.screen = screen;
X vTemplate.depth = 8;
X vTemplate.class = PseudoColor;
X visualList = XGetVisualInfo(display,
X VisualScreenMask|VisualClassMask|VisualDepthMask,
X &vTemplate, &visualsMatched);
X if ( visualsMatched == 0 ) {
X puts("visual not found, using default");
X visual = DefaultVisual( display, screen );
X } else {
X printf("found %d visuals\n", visualsMatched);
X visual = visualList[0].visual;
X }
X
X sizehints.x = 200;
X sizehints.y = 0;
X sizehints.width = sizehints.height = 150;
X sizehints.flags = USSize | USPosition;
X
X cmap = XCreateColormap( display,window, visual, AllocAll);
X orig_cmap = DefaultColormap(display, DefaultScreen(display));
X atts.colormap = cmap;
X
X window = XCreateWindow(display,DefaultRootWindow(display),
X sizehints.x, sizehints.y, sizehints.width, sizehints.height,
X 0, 8, InputOutput, visual, CWColormap, &atts);
X
X XSetStandardProperties(display, window, argv[0],
X argv[0], None, argv, 1, &sizehints);
X
X color.flags = DoRed|DoGreen|DoBlue;
X srandom(time(0));
X printf("Allocating %d colors\n", visual->map_entries);
X for (color.pixel=0; color.pixel < visual->map_entries; color.pixel++) {
X color.red = random()%65536;
X color.green = random()%65536;
X color.blue = random()%65536;
X XStoreColor ( display, cmap, &color );
X }
X
X while (visualsMatched > 0)
X XFree(visualList[--visualsMatched]);
X
X /* Now that the screen is defined, select inputs and get them */
X XSelectInput(display, window, ButtonPressMask | ColormapChangeMask);
X XMapWindow(display, window);
X
X do {
X XNextEvent ( display, &event );
X switch (event.type) {
X case ButtonPress:
X printf ("********* Found ButtonPress event ********\n");
X button = (XButtonEvent *) &event;
X printf ("button is %d\n", button->button );
X if (button->button == 3)
X done = -1;
X break;
X case ColormapNotify:
X printf ("********* Found ColormapNotify event ********\n");
X colormap = (XColormapEvent *) &event;
X if ( colormap->state == ColormapInstalled )
X printf ("Colormap has been installed\n");
X else
X printf ("Colormap has been uninstalled\n");
X printf ("Colormap is %d\n", colormap->colormap );
X printf ("Associated window is %d\n", colormap->window );
X }
X } while (!done);
X XCloseDisplay(display);
X}
END_OF_FILE
if test 2990 -ne `wc -c <'xview.demos/color/color.c'`; then
echo shar: \"'xview.demos/color/color.c'\" unpacked with wrong size!
fi
# end of 'xview.demos/color/color.c'
fi
if test -f 'xview.demos/cursor/hot_spot.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'xview.demos/cursor/hot_spot.c'\"
else
echo shar: Extracting \"'xview.demos/cursor/hot_spot.c'\" \(3094 characters\)
sed "s/^X//" >'xview.demos/cursor/hot_spot.c' <<'END_OF_FILE'
X/*
X * hot_spot.c -- create a cursor and query it's position on the
X * screen and in the panel's window.
X * Our own function, create_cursor(), attaches a new cursor to the
X * window parameter passed into the function.
X */
X#include <X11/X.h>
X#include <X11/Xlib.h> /* for the xlib graphics */
X#include <xview/xview.h>
X#include <xview/panel.h>
X#include <xview/cursor.h>
X#include <xview/svrimage.h>
X
Xmain(argc, argv)
Xint argc;
Xchar *argv[];
X{
X Frame frame;
X Panel panel;
X void do_it();
X
X xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL);
X
X /*
X * Create a base frame, a panel, and a panel button.
X */
X frame = (Frame)xv_create(XV_NULL, FRAME, NULL);
X panel = (Panel)xv_create(frame, PANEL, NULL);
X create_cursor(xv_get(panel, CANVAS_NTH_PAINT_WINDOW, 0));
X (void) xv_create(panel, PANEL_BUTTON,
X PANEL_LABEL_STRING, "Push Me",
X PANEL_NOTIFY_PROC, do_it,
X NULL);
X
X window_fit(panel);
X window_fit(frame);
X window_main_loop(frame);
X}
X
X/*
X * when user selects the panel button, the current mouse location is
X * printed relative to the panel's window and to the screen.
X * This location is governed by the hot spot on the cursor.
X */
Xvoid
Xdo_it(item, event)
X{
X Rect *r;
X Panel panel = (Panel)xv_get(item, PANEL_PARENT_PANEL);
X
X r = (Rect *)xv_get(xv_get(panel, XV_ROOT), WIN_MOUSE_XY);
X printf("Root window: %d %d\n", r->r_left, r->r_top);
X r = (Rect *)xv_get(xv_get(panel, CANVAS_NTH_PAINT_WINDOW, 0), WIN_MOUSE_XY);
X printf("Panel window: %d %d\n", r->r_left, r->r_top);
X}
X
X/*
X * create_cursor() creates a bull's eye cursor and assigns it
X * to the window (parameter).
X */
Xcreate_cursor(window)
XXv_Window window;
X{
X Xv_Cursor cursor;
X Server_image image;
X Pixmap pixmap;
X Display *dpy = (Display *)xv_get(window, XV_DISPLAY);
X GC gc;
X XGCValues gcvalues;
X
X image = (Server_image)xv_create(XV_NULL, SERVER_IMAGE,
X XV_WIDTH, 16,
X XV_HEIGHT, 16,
X NULL);
X pixmap = (Pixmap)xv_get(image, XV_XID);
X /* Create GC with reversed foreground and background colors to
X * clear pixmap first. Use 1 and 0 because pixmap is 1-bit deep.
X */
X gcvalues.foreground = 0;
X gcvalues.background = 1;
X gc = XCreateGC(dpy, pixmap, GCForeground|GCBackground, &gcvalues);
X XFillRectangle(dpy, pixmap, gc, 0, 0, 16, 16);
X /*
X * Reset foreground and background values for XDrawArc() routines.
X */
X gcvalues.foreground = 1;
X gcvalues.background = 0;
X XChangeGC(dpy, gc, GCForeground | GCBackground, &gcvalues);
X XDrawArc(dpy, pixmap, gc, 2, 2, 12, 12, 0, 360 * 64);
X XDrawArc(dpy, pixmap, gc, 6, 6, 4, 4, 0, 360 * 64);
X
X /* Creaste cursor and assign it to the window (parameter) */
X cursor = xv_create(XV_NULL, CURSOR,
X CURSOR_IMAGE, image,
X CURSOR_XHOT, 7,
X CURSOR_YHOT, 7,
X NULL);
X xv_set(window, WIN_CURSOR, cursor, NULL);
X
X /* free the GC -- the cursor and the image must not be freed. */
X XFreeGC(dpy, gc);
X}
END_OF_FILE
if test 3094 -ne `wc -c <'xview.demos/cursor/hot_spot.c'`; then
echo shar: \"'xview.demos/cursor/hot_spot.c'\" unpacked with wrong size!
fi
# end of 'xview.demos/cursor/hot_spot.c'
fi
if test -f 'xview.demos/fonts/simple_font.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'xview.demos/fonts/simple_font.c'\"
else
echo shar: Extracting \"'xview.demos/fonts/simple_font.c'\" \(2446 characters\)
sed "s/^X//" >'xview.demos/fonts/simple_font.c' <<'END_OF_FILE'
X/*
X * simple_font.c -- very simple program showing how to render text
X * using a font gotten from xv_find(). Hello World is printed in
X * the top-left corner of a canvas window.
X */
X#include <stdio.h>
X#include <X11/X.h>
X#include <X11/Xlib.h> /* X.h and Xlib.h used for Xlib graphics */
X#include <xview/xview.h>
X#include <xview/canvas.h>
X#include <xview/font.h>
X#include <xview/xv_xrect.h>
X
X#define GC_KEY 10 /* any arbitrary number -- used for XV_KEY_DATA */
X
Xmain(argc, argv)
Xint argc;
Xchar *argv[];
X{
X Frame frame;
X Canvas canvas;
X XGCValues gcvalues;
X Xv_Font font;
X void my_repaint_proc();
X Display *dpy;
X GC gc;
X
X xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL);
X
X frame = (Frame)xv_create(XV_NULL, FRAME, NULL);
X
X canvas = (Canvas)xv_create(frame, CANVAS,
X XV_WIDTH, 400,
X XV_HEIGHT, 200,
X CANVAS_X_PAINT_WINDOW, TRUE,
X CANVAS_REPAINT_PROC, my_repaint_proc,
X NULL);
X window_fit(frame);
X
X dpy = (Display *)xv_get(frame, XV_DISPLAY);
X font = (Xv_Font)xv_find(frame, FONT, FONT_NAME, "courier", NULL);
X if (!font) {
X fprintf(stderr, "%s: cannot use font: courier.\n", argv[0]);
X font = (Xv_Font)xv_get(frame, XV_FONT);
X }
X
X /* Create a GC to use with Xlib graphics -- set the fg/bg colors
X * and set the Font, which is the XV_XID of the XView font object.
X */
X gcvalues.font = (Font)xv_get(font, XV_XID);
X gcvalues.foreground = BlackPixel(dpy, DefaultScreen(dpy));
X gcvalues.background = WhitePixel(dpy, DefaultScreen(dpy));
X gcvalues.graphics_exposures = False;
X gc = XCreateGC(dpy, RootWindow(dpy, DefaultScreen(dpy)),
X GCForeground | GCBackground | GCFont | GCGraphicsExposures,
X &gcvalues);
X
X /* Assign the gc to the canvas object so we can use the same gc
X * each time we draw into the canvas. Also avoids a global
X * variable to store the GC.
X */
X xv_set(canvas, XV_KEY_DATA, GC_KEY, gc, NULL);
X xv_main_loop(frame);
X}
X
X/*
X * Called every time the window needs repainting.
X */
Xvoid
Xmy_repaint_proc(canvas, pw, dpy, xwin, xrects)
XCanvas canvas;
XXv_Window pw;
XDisplay *dpy;
XWindow xwin;
XXv_xrectlist *xrects;
X{
X GC gc = (GC)xv_get(canvas, XV_KEY_DATA, GC_KEY);
X
X XDrawString(dpy, xwin, gc, 10, 20,
X "Hello World", 11); /* 11 = strlen("Hello World") */
X}
END_OF_FILE
if test 2446 -ne `wc -c <'xview.demos/fonts/simple_font.c'`; then
echo shar: \"'xview.demos/fonts/simple_font.c'\" unpacked with wrong size!
fi
# end of 'xview.demos/fonts/simple_font.c'
fi
if test -f 'xview.demos/fonts/type_font.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'xview.demos/fonts/type_font.c'\"
else
echo shar: Extracting \"'xview.demos/fonts/type_font.c'\" \(2710 characters\)
sed "s/^X//" >'xview.demos/fonts/type_font.c' <<'END_OF_FILE'
X/*
X * simple_font.c -- very simple program showing how to render text
X * using fonts loaded by XView.
X */
X#include <ctype.h>
X#include <X11/X.h>
X#include <X11/Xlib.h>
X#include <xview/xview.h>
X#include <xview/panel.h>
X#include <xview/font.h>
X
XDisplay *dpy;
XGC gc;
XXFontStruct *font_info;
X
Xmain(argc, argv)
Xint argc;
Xchar *argv[];
X{
X Frame frame;
X Panel panel;
X Canvas canvas;
X XGCValues gcvalues;
X Xv_Font font;
X void my_event_proc();
X extern void exit();
X
X xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL);
X
X frame = (Frame)xv_create(XV_NULL, FRAME,
X FRAME_LABEL, argv[0],
X NULL);
X
X panel = (Panel)xv_create(frame, PANEL,
X PANEL_LAYOUT, PANEL_VERTICAL,
X NULL);
X xv_create(panel, PANEL_BUTTON,
X PANEL_LABEL_STRING, "Quit",
X PANEL_NOTIFY_PROC, exit,
X NULL);
X window_fit(panel);
X
X canvas = (Canvas)xv_create(frame, CANVAS,
X XV_WIDTH, 400,
X XV_HEIGHT, 200,
X CANVAS_X_PAINT_WINDOW, TRUE,
X NULL);
X xv_set(canvas_paint_window(canvas),
X WIN_EVENT_PROC, my_event_proc,
X NULL);
X
X window_fit(frame);
X
X dpy = (Display *)xv_get(frame, XV_DISPLAY);
X font = (Xv_Font)xv_get(frame, XV_FONT);
X font_info = (XFontStruct *)xv_get(font, FONT_INFO);
X
X gcvalues.font = (Font)xv_get(font, XV_XID);
X gcvalues.foreground = BlackPixel(dpy, DefaultScreen(dpy));
X gcvalues.background = WhitePixel(dpy, DefaultScreen(dpy));
X gcvalues.graphics_exposures = False;
X gc = XCreateGC(dpy, RootWindow(dpy, DefaultScreen(dpy)),
X GCForeground | GCBackground | GCFont | GCGraphicsExposures, &gcvalues);
X
X xv_main_loop(frame);
X}
X
Xvoid
Xmy_event_proc(win, event)
XXv_Window win;
XEvent *event;
X{
X static int x = 10, y = 10;
X Window xwin = (Window)xv_get(win, XV_XID);
X char c;
X
X if (event_is_up(event))
X return;
X
X if (event_is_ascii(event)) {
X c = (char)event_id(event);
X if (c == '\n' || c == '\r') {
X y += font_info->max_bounds.ascent +
X font_info->max_bounds.descent;
X x = 10;
X } else if (c == 7 || c == 127) { /* backspace or delete */
X if (x > 10)
X x -= XTextWidth(font_info, "m", 1);
X /* use XDrawImageString to overwrite previous text */
X XDrawImageString(dpy, xwin, gc, x, y, " ", 2);
X } else {
X XDrawString(dpy, xwin, gc, x, y, &c, 1);
X x += XTextWidth(font_info, &c, 1);
X }
X } else if (event_action(event) == ACTION_SELECT) {
X x = event_x(event);
X y = event_y(event);
X }
X}
END_OF_FILE
if test 2710 -ne `wc -c <'xview.demos/fonts/type_font.c'`; then
echo shar: \"'xview.demos/fonts/type_font.c'\" unpacked with wrong size!
fi
# end of 'xview.demos/fonts/type_font.c'
fi
if test -f 'xview.demos/icons/closed.icon' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'xview.demos/icons/closed.icon'\"
else
echo shar: Extracting \"'xview.demos/icons/closed.icon'\" \(1933 characters\)
sed "s/^X//" >'xview.demos/icons/closed.icon' <<'END_OF_FILE'
X/* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16
X */
X 0x0000,0x0000,0x0000,0x0000,0x00FF,0xFFFF,0xFFFF,0xFF00,
X 0x0080,0x0000,0x0000,0x0100,0x009F,0xFFFF,0xFFFF,0xF900,
X 0x0090,0x0002,0x4000,0x0900,0x0090,0x0002,0x4000,0x0900,
X 0x0090,0x0002,0x4000,0x0900,0x0090,0x0042,0x4000,0x0900,
X 0x0090,0x1082,0x4021,0x0900,0x0090,0x2102,0x4042,0x0900,
X 0x0090,0x4202,0x4084,0x0900,0x0090,0x8402,0x4108,0x0900,
X 0x0091,0x0802,0x4210,0x0900,0x0090,0x1042,0x4020,0x8900,
X 0x0090,0x2082,0x4041,0x0900,0x0090,0x4102,0x4082,0x0900,
X 0x0090,0x8202,0x4104,0x0900,0x0091,0x0402,0x4208,0x0900,
X 0x0090,0x0802,0x4010,0x0900,0x0090,0x0002,0x4000,0x0900,
X 0x0090,0x0002,0x4000,0x0900,0x0090,0x0002,0x4000,0x0900,
X 0x0090,0x0002,0x4000,0x0900,0x0090,0x0002,0x4000,0x0900,
X 0x0090,0x0002,0x4000,0x0900,0x009F,0xFFFE,0x7FFF,0xF900,
X 0x0090,0x0000,0x0000,0x0900,0x0090,0x0000,0x0000,0x0900,
X 0x009F,0xFFFE,0x7FFF,0xF900,0x0090,0x0002,0x4000,0x0900,
X 0x0090,0x0002,0x4000,0x0900,0x0090,0x0002,0x4000,0x0900,
X 0x0090,0x2002,0x4000,0x0900,0x0090,0x4082,0x4104,0x0900,
X 0x0090,0x8102,0x4208,0x0900,0x0091,0x0202,0x4410,0x0900,
X 0x0092,0x0402,0x4820,0x0900,0x0090,0x0802,0x4042,0x0900,
X 0x0090,0x1042,0x4084,0x0900,0x0090,0x2082,0x4108,0x0900,
X 0x0090,0x4102,0x4210,0x0900,0x0090,0x8202,0x4420,0x0900,
X 0x0091,0x0002,0x4800,0x0900,0x0090,0x0002,0x4000,0x0900,
X 0x0090,0x0002,0x4000,0x0900,0x0090,0x0002,0x4000,0x0900,
X 0x009F,0xFFFF,0xFFFF,0xF900,0x0090,0x0000,0x0000,0x0900,
X 0x0090,0x001F,0xF800,0x0900,0x0090,0x001F,0xF800,0x0900,
X 0x0090,0x0000,0x0000,0x0900,0x009F,0xFFFF,0xFFFF,0xF900,
X 0x0080,0x0000,0x0000,0x0100,0x0080,0x0000,0x0000,0x0100,
X 0x00FF,0xFFFF,0xFFFF,0xFF00,0x0000,0x0000,0x0000,0x0000,
X 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
X 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
X 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
X 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
END_OF_FILE
if test 1933 -ne `wc -c <'xview.demos/icons/closed.icon'`; then
echo shar: \"'xview.demos/icons/closed.icon'\" unpacked with wrong size!
fi
# end of 'xview.demos/icons/closed.icon'
fi
if test -f 'xview.demos/menus/menu.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'xview.demos/menus/menu.c'\"
else
echo shar: Extracting \"'xview.demos/menus/menu.c'\" \(2412 characters\)
sed "s/^X//" >'xview.demos/menus/menu.c' <<'END_OF_FILE'
X/*
X * xv_menu.c -
X * Demonstrate the use of an XView menu in a canvas subwindow.
X * Menu is brought up with right mouse button and displays
X * choice made in the canvas. Allow menu to be pinned.
X */
X#include <xview/xview.h>
X#include <xview/canvas.h>
X
XFrame frame;
X
Xmain(argc,argv)
Xint argc;
Xchar *argv[];
X{
X Canvas canvas;
X Menu menu;
X void my_notify_proc(), my_event_proc();
X extern void exit();
X
X xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL);
X
X frame = (Frame)xv_create(NULL, FRAME,
X FRAME_LABEL, argv[0],
X NULL);
X canvas = (Canvas)xv_create(frame, CANVAS,
X XV_WIDTH, 300,
X XV_HEIGHT, 200,
X NULL);
X menu = (Menu)xv_create(NULL, MENU,
X MENU_TITLE_ITEM, "Junk",
X MENU_STRINGS, "Yes", "No", "Maybe", NULL,
X MENU_NOTIFY_PROC, my_notify_proc,
X MENU_ITEM,
X MENU_STRING, "Save",
X MENU_NOTIFY_PROC, my_notify_proc,
X MENU_PULLRIGHT,
X xv_create(canvas, MENU,
X MENU_GEN_PIN_WINDOW, frame, "Save",
X MENU_ITEM,
X MENU_STRING, "Update Changes",
X MENU_NOTIFY_PROC, my_notify_proc,
X NULL,
X NULL),
X NULL,
X MENU_ITEM,
X MENU_STRING, "Quit",
X MENU_NOTIFY_PROC, exit,
X NULL,
X NULL);
X
X xv_set(canvas_paint_window(canvas),
X WIN_CONSUME_EVENTS, WIN_MOUSE_BUTTONS, NULL,
X WIN_EVENT_PROC, my_event_proc,
X /* associate the menu to the canvas win so we can retreive it easily */
X WIN_CLIENT_DATA, menu,
X NULL);
X
X window_fit(frame);
X window_main_loop(frame);
X}
X
X/*
X * my_notify_proc - Display menu selection in frame header.
X */
Xvoid
Xmy_notify_proc(menu, menu_item)
XMenu menu;
XMenu_item menu_item;
X{
X xv_set(frame,
X FRAME_LABEL, xv_get(menu_item, MENU_STRING),
X NULL);
X}
X
X/*
X * my_event_proc - Call menu_show() to display menu on right mouse button push.
X */
Xvoid
Xmy_event_proc(window, event)
XXv_Window window;
XEvent *event;
X{
X if (event_action(event) == ACTION_MENU && event_is_down(event)) {
X Menu menu = (Menu)xv_get(window, WIN_CLIENT_DATA);
X menu_show(menu, window, event, NULL);
X }
X}
END_OF_FILE
if test 2412 -ne `wc -c <'xview.demos/menus/menu.c'`; then
echo shar: \"'xview.demos/menus/menu.c'\" unpacked with wrong size!
fi
# end of 'xview.demos/menus/menu.c'
fi
if test -f 'xview.demos/menus/simple_menu.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'xview.demos/menus/simple_menu.c'\"
else
echo shar: Extracting \"'xview.demos/menus/simple_menu.c'\" \(2248 characters\)
sed "s/^X//" >'xview.demos/menus/simple_menu.c' <<'END_OF_FILE'
X/*
X * simple_menu.c -
X * Demonstrate the use of an XView menu in a canvas subwindow.
X * A Menu is brought up with the MENU mouse button. The choices
X * in the menu toggle the display of the scrollbar next to the canvas.
X */
X#include <xview/xview.h>
X#include <xview/canvas.h>
X#include <xview/scrollbar.h>
X
X#define SCROLLBAR_KEY 100
X#define MENU_KEY 200
X
Xmain(argc,argv)
Xint argc;
Xchar *argv[];
X{
X Frame frame;
X Canvas canvas;
X Scrollbar scrollbar;
X Menu menu;
X void menu_notify_proc(), pw_event_proc();
X
X xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL);
X
X /*
X * Create a frame, canvas and menu.
X * A canvas receives input in its canvas_paint_window().
X */
X frame = (Frame)xv_create(NULL, FRAME,
X FRAME_LABEL, argv[0],
X NULL);
X canvas = (Canvas)xv_create(frame, CANVAS,
X XV_WIDTH, 300,
X XV_HEIGHT, 200,
X NULL);
X scrollbar = (Scrollbar)xv_create(canvas, SCROLLBAR,
X SCROLLBAR_DIRECTION, SCROLLBAR_VERTICAL,
X NULL);
X
X menu = (Menu)xv_create(canvas, MENU,
X MENU_TITLE_ITEM, "Scrollbar",
X MENU_STRINGS, "On", "Off", NULL,
X MENU_NOTIFY_PROC, menu_notify_proc,
X XV_KEY_DATA, SCROLLBAR_KEY, scrollbar,
X NULL);
X
X xv_set(canvas_paint_window(canvas),
X WIN_EVENT_PROC, pw_event_proc,
X XV_KEY_DATA, MENU_KEY, menu,
X NULL);
X
X window_fit(frame);
X window_main_loop(frame);
X}
X
X/*
X * menu_notify_proc - toggle the display of the scrollbar
X * based on which menu item was chosen.
X */
Xvoid
Xmenu_notify_proc(menu, menu_item)
XMenu menu;
XMenu_item menu_item;
X{
X char *menu_choice = (char *)xv_get(menu_item, MENU_STRING);
X int show_it = !strcmp(menu_choice, "On");
X
X xv_set(xv_get(menu, XV_KEY_DATA, SCROLLBAR_KEY),
X XV_SHOW, show_it,
X NULL);
X}
X
X/*
X * Call menu_show() to display menu.
X */
Xvoid
Xpw_event_proc(canvas_pw, event)
XXv_Window canvas_pw;
XEvent *event;
X{
X if (event_action(event) == ACTION_MENU && event_is_down(event)) {
X Menu menu = (Menu)xv_get(canvas_pw, XV_KEY_DATA, MENU_KEY);
X menu_show(menu, canvas_pw, event, NULL);
X }
X}
END_OF_FILE
if test 2248 -ne `wc -c <'xview.demos/menus/simple_menu.c'`; then
echo shar: \"'xview.demos/menus/simple_menu.c'\" unpacked with wrong size!
fi
# end of 'xview.demos/menus/simple_menu.c'
fi
if test -f 'xview.demos/menus/xv_menu.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'xview.demos/menus/xv_menu.c'\"
else
echo shar: Extracting \"'xview.demos/menus/xv_menu.c'\" \(2427 characters\)
sed "s/^X//" >'xview.demos/menus/xv_menu.c' <<'END_OF_FILE'
X/*
X * xv_menu.c -
X * Demonstrate the use of an XView menu in a canvas subwindow.
X * Menu is brought up with right mouse button and the selected
X * choice is displayed in the canvas. Allows menu to be pinned.
X */
X#include <xview/xview.h>
X#include <xview/canvas.h>
X
XFrame frame;
X
Xmain(argc,argv)
Xint argc;
Xchar *argv[];
X{
X Canvas canvas;
X Menu menu;
X void my_notify_proc(), my_event_proc();
X extern void exit();
X
X xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL);
X
X frame = (Frame)xv_create(NULL, FRAME,
X FRAME_LABEL, argv[0],
X NULL);
X canvas = (Canvas)xv_create(frame, CANVAS,
X XV_WIDTH, 300,
X XV_HEIGHT, 200,
X NULL);
X menu = (Menu)xv_create(NULL, MENU,
X MENU_TITLE_ITEM, "Junk",
X MENU_STRINGS, "Yes", "No", "Maybe", NULL,
X MENU_NOTIFY_PROC, my_notify_proc,
X MENU_ITEM,
X MENU_STRING, "Save",
X MENU_NOTIFY_PROC, my_notify_proc,
X MENU_PULLRIGHT,
X xv_create(canvas, MENU,
X MENU_GEN_PIN_WINDOW, frame, "Save",
X MENU_ITEM,
X MENU_STRING, "Update Changes",
X MENU_NOTIFY_PROC, my_notify_proc,
X NULL,
X NULL),
X NULL,
X MENU_ITEM,
X MENU_STRING, "Quit",
X MENU_NOTIFY_PROC, exit,
X NULL,
X NULL);
X
X xv_set(canvas_paint_window(canvas),
X WIN_CONSUME_EVENTS, WIN_MOUSE_BUTTONS, NULL,
X WIN_EVENT_PROC, my_event_proc,
X /* associate the menu to the canvas win so we can retrieve it easily */
X WIN_CLIENT_DATA, menu,
X NULL);
X
X window_fit(frame);
X window_main_loop(frame);
X}
X
X/*
X * my_notify_proc - Display menu selection in frame header.
X */
Xvoid
Xmy_notify_proc(menu, menu_item)
XMenu menu;
XMenu_item menu_item;
X{
X xv_set(frame,
X FRAME_LABEL, xv_get(menu_item, MENU_STRING),
X NULL);
X}
X
X/*
X * my_event_proc - Call menu_show() to display menu on right mouse button push.
X */
Xvoid
Xmy_event_proc(window, event)
XXv_Window window;
XEvent *event;
X{
X if (event_action(event) == ACTION_MENU && event_is_down(event)) {
X Menu menu = (Menu)xv_get(window, WIN_CLIENT_DATA);
X menu_show(menu, window, event, NULL);
X }
X}
X
X
END_OF_FILE
if test 2427 -ne `wc -c <'xview.demos/menus/xv_menu.c'`; then
echo shar: \"'xview.demos/menus/xv_menu.c'\" unpacked with wrong size!
fi
# end of 'xview.demos/menus/xv_menu.c'
fi
if test -f 'xview.demos/misc/fullscreen.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'xview.demos/misc/fullscreen.c'\"
else
echo shar: Extracting \"'xview.demos/misc/fullscreen.c'\" \(2150 characters\)
sed "s/^X//" >'xview.demos/misc/fullscreen.c' <<'END_OF_FILE'
X/*
X * fullscreen.c
X * Demonstrate the fullscreen package. Create a panel button that
X * creates a fullscreen instance, thus grabbing the X server. User
X * presses a mouse button to release the server.
X */
X#include <xview/xview.h>
X#include <xview/panel.h>
X#include <xview/fullscreen.h>
X
Xmain(argc, argv)
Xchar *argv[];
X{
X Frame frame;
X Panel panel;
X void exit(), grab();
X
X xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL);
X
X frame = (Frame)xv_create(XV_NULL, FRAME, NULL);
X panel = (Panel)xv_create(frame, PANEL, NULL);
X (void) xv_create(panel, PANEL_BUTTON,
X PANEL_LABEL_STRING, "Quit",
X PANEL_NOTIFY_PROC, exit,
X NULL);
X (void) xv_create(panel, PANEL_BUTTON,
X PANEL_LABEL_STRING, "Fullscreen",
X PANEL_NOTIFY_PROC, grab,
X NULL);
X
X window_fit(panel);
X window_fit(frame);
X xv_main_loop(frame);
X}
X
X/*
X * notify procedure for when the "Fullscreen" button is pushed.
X * Create a fullscreen instance, scan for a button event, then
X * destroy it.
X */
Xvoid
Xgrab(item, event)
XPanel_item item;
XEvent *event;
X{
X Panel panel = (Panel)xv_get(item, PANEL_PARENT_PANEL);
X Fullscreen fs;
X Inputmask im;
X
X /* set up an input mask for the call to xv_input_readevent(). */
X win_setinputcodebit(&im, MS_LEFT);
X win_setinputcodebit(&im, MS_MIDDLE);
X win_setinputcodebit(&im, MS_RIGHT);
X win_setinputcodebit(&im, LOC_MOVE);
X
X /*
X * Create a fullscreen object (initialize X server grab).
X * Specify which events should be allowed to pass through.
X * These events should match the input mask coded above.
X */
X fs = xv_create(panel, FULLSCREEN,
X WIN_CONSUME_EVENTS,
X WIN_MOUSE_BUTTONS, LOC_MOVE, NULL,
X NULL);
X
X /* loop till user generates a button event */
X while (xv_input_readevent(panel, event, TRUE, TRUE, &im) != -1)
X if (event_is_button(event))
X break;
X
X /* destroy the fullscreen (release the X server grab) */
X xv_destroy(fs);
X
X /* report which button was pushed. */
X printf("event was button %d\n", event_id(event) - BUT_FIRST + 1);
X}
END_OF_FILE
if test 2150 -ne `wc -c <'xview.demos/misc/fullscreen.c'`; then
echo shar: \"'xview.demos/misc/fullscreen.c'\" unpacked with wrong size!
fi
# end of 'xview.demos/misc/fullscreen.c'
fi
if test -f 'xview.demos/notice/trigger_notice.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'xview.demos/notice/trigger_notice.c'\"
else
echo shar: Extracting \"'xview.demos/notice/trigger_notice.c'\" \(2053 characters\)
sed "s/^X//" >'xview.demos/notice/trigger_notice.c' <<'END_OF_FILE'
X/*
X * trigger_notice.c -- Demonstrate the use of triggers in notices.
X */
X#include <xview/xview.h>
X#include <xview/panel.h>
X#include <xview/notice.h>
X
Xmain(argc,argv)
Xint argc;
Xchar *argv[];
X{
X Frame frame;
X Panel panel;
X Xv_opaque my_notify_proc();
X extern void exit();
X
X /*
X * Initialize XView, create a frame, a panel and one panel button.
X */
X xv_init(XV_INIT_ARGS, argc, argv, NULL);
X frame = (Frame)xv_create(XV_NULL, FRAME, NULL);
X panel = (Panel)xv_create(frame, PANEL, NULL);
X (void) xv_create(panel, PANEL_BUTTON,
X PANEL_LABEL_STRING, "Quit",
X PANEL_NOTIFY_PROC, exit,
X NULL);
X (void) xv_create(panel, PANEL_BUTTON,
X PANEL_LABEL_STRING, "Move",
X PANEL_NOTIFY_PROC, my_notify_proc,
X NULL);
X
X /* make sure everything looks good */
X window_fit(panel);
X window_fit(frame);
X
X /* start window event processing */
X xv_main_loop(frame);
X}
X
X/*
X * my_notify_proc() -- called when the user selects the "Move"
X * panel button. Put up a notice_prompt to get new coordinates
X * to move the main window.
X */
XXv_opaque
Xmy_notify_proc(item, event)
XPanel_item item;
XEvent *event;
X{
X int result, x, y;
X Panel panel = (Panel)xv_get(item, PANEL_PARENT_PANEL);
X Frame frame = (Frame)xv_get(panel, XV_OWNER);
X
X x = event_x(event), y = event_y(event);
X printf("original click relative to panel: %d, %d\n", x, y);
X result = notice_prompt(panel, event,
X NOTICE_MESSAGE_STRINGS,
X "You may move the window to a new location specified by",
X "clicking the Left Mouse Button somewhere on the screen.",
X NULL,
X NOTICE_TRIGGER, MS_LEFT,
X NOTICE_NO_BEEPING, TRUE,
X NULL);
X
X if (result == NOTICE_TRIGGERED) {
X x += event_x(event) + (int)xv_get(frame, XV_X);
X y += event_y(event) + (int)xv_get(frame, XV_Y);
X printf("screen x,y: %d, %d\n", x, y);
X xv_set(frame, XV_X, x, XV_Y, y, NULL);
X }
X}
END_OF_FILE
if test 2053 -ne `wc -c <'xview.demos/notice/trigger_notice.c'`; then
echo shar: \"'xview.demos/notice/trigger_notice.c'\" unpacked with wrong size!
fi
# end of 'xview.demos/notice/trigger_notice.c'
fi
if test -f 'xview.demos/notifier/animate.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'xview.demos/notifier/animate.c'\"
else
echo shar: Extracting \"'xview.demos/notifier/animate.c'\" \(3951 characters\)
sed "s/^X//" >'xview.demos/notifier/animate.c' <<'END_OF_FILE'
X/*
X * animate.c -- use glyphs from the "icon" font distributed with XView
X * to do frame-by-frame animation.
X */
X#include <stdio.h>
X#include <ctype.h>
X#include <X11/X.h>
X#include <X11/Xlib.h>
X#include <X11/Xos.h> /* for <sys/time.h> */
X#include <xview/xview.h>
X#include <xview/panel.h>
X#include <xview/font.h>
X#include <xview/notify.h>
X
XFrame frame;
XDisplay *dpy;
XGC gc;
XWindow canvas_win;
XNotify_value animate();
Xstruct itimerval timer;
X
X#define ArraySize(x) (sizeof(x)/sizeof(x[0]))
Xchar *horses[] = { "N", "O", "P", "Q", "R" };
Xchar *boys[] = { "\007", "\005", "\007", "\010" };
Xchar *men[] = { "\\", "]", "Y", "Z", "[" };
Xchar *eyes[] = {
X "2", "5", "4", "3", "4", "5",
X "2", "1", "0", "/", "0", "1"
X};
X
Xint max_images = ArraySize(horses);
Xchar **images = horses;
Xint cnt;
X
Xmain(argc, argv)
Xint argc;
Xchar *argv[];
X{
X Panel panel;
X Canvas canvas;
X XGCValues gcvalues;
X Xv_Font _font;
X XFontStruct *font;
X void adjust_speed(), change_glyph();
X extern void exit();
X
X xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL);
X
X frame = (Frame)xv_create(XV_NULL, FRAME,
X FRAME_LABEL, argv[0],
X FRAME_SHOW_FOOTER, TRUE,
X NULL);
X
X panel = (Panel)xv_create(frame, PANEL,
X PANEL_LAYOUT, PANEL_VERTICAL,
X NULL);
X xv_create(panel, PANEL_BUTTON,
X PANEL_LABEL_STRING, "Quit",
X PANEL_NOTIFY_PROC, exit,
X NULL);
X xv_create(panel, PANEL_SLIDER,
X PANEL_LABEL_STRING, "Millisecs Between Frames",
X PANEL_VALUE, 0,
X PANEL_MAX_VALUE, 120,
X PANEL_NOTIFY_PROC, adjust_speed,
X NULL);
X xv_create(panel, PANEL_CHOICE,
X PANEL_LABEL_STRING, "Glyphs",
X PANEL_LAYOUT, PANEL_HORIZONTAL,
X PANEL_DISPLAY_LEVEL, PANEL_ALL,
X PANEL_CHOICE_STRINGS, "Horse", "Man", "Boy", "Eye", NULL,
X PANEL_NOTIFY_PROC, change_glyph,
X NULL);
X window_fit(panel);
X
X canvas = (Canvas)xv_create(frame, CANVAS,
X XV_WIDTH, 64,
X XV_HEIGHT, 64,
X CANVAS_X_PAINT_WINDOW, TRUE,
X NULL);
X canvas_win = (Window)xv_get(canvas_paint_window(canvas), XV_XID);
X
X window_fit(frame);
X
X dpy = (Display *)xv_get(frame, XV_DISPLAY);
X _font = (Xv_Font)xv_find(frame, FONT,
X FONT_NAME, "icon",
X NULL);
X font = (XFontStruct *)xv_get(_font, FONT_INFO);
X
X gcvalues.font = font->fid;
X gcvalues.foreground = BlackPixel(dpy, DefaultScreen(dpy));
X gcvalues.background = WhitePixel(dpy, DefaultScreen(dpy));
X gcvalues.graphics_exposures = False;
X gc = XCreateGC(dpy, RootWindow(dpy, DefaultScreen(dpy)),
X GCForeground | GCBackground | GCFont | GCGraphicsExposures,
X &gcvalues);
X
X xv_main_loop(frame);
X}
X
Xvoid
Xchange_glyph(item, value)
XPanel_item item;
Xint value;
X{
X cnt = 0;
X if (value == 0) {
X max_images = ArraySize(horses);
X images = horses;
X } else if (value == 1) {
X max_images = ArraySize(men);
X images = men;
X } else if (value == 2) {
X max_images = ArraySize(boys);
X images = boys;
X } else if (value == 3) {
X max_images = ArraySize(eyes);
X images = eyes;
X }
X XClearWindow(dpy, canvas_win);
X}
X
X/*ARGSUSED*/
XNotify_value
Xanimate()
X{
X XDrawImageString(dpy, canvas_win, gc, 5, 40, images[cnt], 1);
X cnt = (cnt + 1) % max_images;
X
X return NOTIFY_DONE;
X}
X
Xvoid
Xadjust_speed(item, value)
XPanel_item item;
Xint value;
X{
X if (value > 0) {
X timer.it_value.tv_usec = (value + 20) * 1000;
X timer.it_interval.tv_usec = (value + 20) * 1000;
X notify_set_itimer_func(frame, animate,
X ITIMER_REAL, &timer, NULL);
X } else
X /* turn it off */
X notify_set_itimer_func(frame, NOTIFY_FUNC_NULL,
X ITIMER_REAL, NULL, NULL);
X}
END_OF_FILE
if test 3951 -ne `wc -c <'xview.demos/notifier/animate.c'`; then
echo shar: \"'xview.demos/notifier/animate.c'\" unpacked with wrong size!
fi
# end of 'xview.demos/notifier/animate.c'
fi
if test -f 'xview.demos/panels/Imakefile' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'xview.demos/panels/Imakefile'\"
else
echo shar: Extracting \"'xview.demos/panels/Imakefile'\" \(753 characters\)
sed "s/^X//" >'xview.demos/panels/Imakefile' <<'END_OF_FILE'
X#
X# @(#)Imakefile 1.3 89/12/06 SMI
X#
X# Imakefile for panels
X#
X# LIBRARY_DEST is the location of the XView libraries
X# HEADER_DEST is the location of the XView header files
X# LIBDIR is the directory containing the X11 library (libX11.a)
X#
X
XLIBRARY_DEST=/home/xview/usr/lib
XHEADER_DEST=/home/xview/usr/include
X
XLIBDIR=/home/X11/lib
XLDFLAGS=-L$(LIBRARY_DEST) -L$(LIBDIR) -lxview -lX11
XINCLUDES= -I.. -I$(HEADER_DEST) -I$(TOP) -DSTANDALONE
X
X# Uncomment the following line to use libxvol.a and libxvin.a
X#
X#LDFLAGS=-L$(LIBRARY_DEST) -L$(LIBDIR) -lxvol -lxvin -lX11
X
XTARGETS=btn_menu choices client_data item_move list_glyphs \
X panel_repaint repaint simple_panel stop_frame
X
Xall: $(TARGETS)
X
X${TARGETS}: $$@.c $$@.o
X ${CC} ${CFLAGS} ${LDFLAGS} -o $@ $@.o
END_OF_FILE
if test 753 -ne `wc -c <'xview.demos/panels/Imakefile'`; then
echo shar: \"'xview.demos/panels/Imakefile'\" unpacked with wrong size!
fi
# end of 'xview.demos/panels/Imakefile'
fi
if test -f 'xview.demos/panels/list_glyphs.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'xview.demos/panels/list_glyphs.c'\"
else
echo shar: Extracting \"'xview.demos/panels/list_glyphs.c'\" \(2414 characters\)
sed "s/^X//" >'xview.demos/panels/list_glyphs.c' <<'END_OF_FILE'
X/*
X * list.c -- show a scrolling list with three items in it.
X * Each item is an icon (a pattern) and a string.
X */
X#include <xview/xview.h>
X#include <xview/panel.h>
X#include <xview/svrimage.h>
X
X#define gray1_width 16
X#define gray1_height 16
Xstatic char gray1_bits[] = {
X 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55,
X 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa,
X 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55,
X 0xaa, 0xaa
X};
X
X#define gray2_width 16
X#define gray2_height 16
Xstatic char gray2_bits[] = {
X 0x11, 0x11, 0x00, 0x00, 0x44, 0x44, 0x00, 0x00, 0x11, 0x11,
X 0x00, 0x00, 0x44, 0x44, 0x00, 0x00, 0x11, 0x11, 0x00, 0x00,
X 0x44, 0x44, 0x00, 0x00, 0x11, 0x11, 0x00, 0x00, 0x44, 0x44,
X 0x00, 0x00
X};
X
X#define gray3_width 16
X#define gray3_height 16
Xstatic char gray3_bits[] = {
X 0x22, 0x22, 0xee, 0xee, 0x33, 0x33, 0xee, 0xee, 0x22, 0x22,
X 0xee, 0xee, 0x33, 0x33, 0xee, 0xee, 0x22, 0x22, 0xee, 0xee,
X 0x33, 0x33, 0xee, 0xee, 0x22, 0x22, 0xee, 0xee, 0x33, 0x33,
X 0xee, 0xee
X};
X
Xmain(argc, argv)
Xint argc;
Xchar *argv[];
X{
X Frame frame;
X Panel panel;
X Server_image gray1, gray2, gray3;
X extern void exit();
X
X xv_init(XV_INIT_ARGS, argc, argv, NULL);
X
X gray1 = (Server_image)xv_create(NULL, SERVER_IMAGE,
X XV_WIDTH, gray1_width,
X XV_HEIGHT, gray1_height,
X SERVER_IMAGE_BITS, gray1_bits,
X NULL);
X gray2 = (Server_image)xv_create(NULL, SERVER_IMAGE,
X XV_WIDTH, gray2_width,
X XV_HEIGHT, gray2_height,
X SERVER_IMAGE_BITS, gray2_bits,
X NULL);
X gray3 = (Server_image)xv_create(NULL, SERVER_IMAGE,
X XV_WIDTH, gray3_width,
X XV_HEIGHT, gray3_height,
X SERVER_IMAGE_BITS, gray3_bits,
X NULL);
X frame = (Frame)xv_create(NULL, FRAME, NULL);
X panel = (Panel)xv_create(frame, PANEL, NULL);
X
X (void) xv_create(panel, PANEL_BUTTON,
X PANEL_LABEL_STRING, "quit",
X PANEL_NOTIFY_PROC, exit,
X NULL);
X
X (void) xv_create(panel, PANEL_LIST,
X PANEL_LIST_ROW_HEIGHT, 16,
X PANEL_LIST_GLYPHS, gray1, gray2, gray3, NULL,
X PANEL_LIST_STRINGS, "Pattern1", "Pattern2", "Pattern3", NULL,
X NULL);
X
X window_fit(panel);
X window_fit(frame);
X
X xv_main_loop(frame);
X}
END_OF_FILE
if test 2414 -ne `wc -c <'xview.demos/panels/list_glyphs.c'`; then
echo shar: \"'xview.demos/panels/list_glyphs.c'\" unpacked with wrong size!
fi
# end of 'xview.demos/panels/list_glyphs.c'
fi
if test -f 'xview.demos/panels/panel_repaint.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'xview.demos/panels/panel_repaint.c'\"
else
echo shar: Extracting \"'xview.demos/panels/panel_repaint.c'\" \(2626 characters\)
sed "s/^X//" >'xview.demos/panels/panel_repaint.c' <<'END_OF_FILE'
X/*
X * panel_repaint.c -- repaint a panel background without disturbing
X * the repainting of panel items.
X */
X#include <xview/xview.h>
X#include <xview/panel.h>
X#include <xview/svrimage.h>
X#include <X11/Xlib.h>
X#include <X11/X.h>
X#include <X11/bitmaps/gray1>
X
X#define PANEL_GC_KEY 101 /* any arbitrary number */
X
Xmain(argc, argv)
Xint argc;
Xchar *argv[];
X{
X Display *display;
X Frame frame;
X Panel panel;
X int quit();
X void panel_repaint();
X XGCValues gcvalues;
X Server_image grey;
X
X Mask gcmask = 0L;
X GC gc;
X
X xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL);
X
X frame = (Frame)xv_create(XV_NULL, FRAME, NULL);
X panel = (Panel)xv_create(frame, PANEL,
X PANEL_REPAINT_PROC, panel_repaint,
X NULL);
X
X (void) xv_create(panel, PANEL_BUTTON,
X PANEL_LABEL_STRING, "Quit",
X PANEL_NOTIFY_PROC, quit,
X PANEL_CLIENT_DATA, frame,
X NULL);
X
X window_fit(frame);
X
X grey = (Server_image)xv_create(NULL, SERVER_IMAGE,
X XV_WIDTH, gray1_width,
X XV_HEIGHT, gray1_height,
X SERVER_IMAGE_DEPTH, 1, /* clarify for completeness*/
X SERVER_IMAGE_BITS, gray1_bits,
X NULL);
X
X display = (Display *)xv_get(panel, XV_DISPLAY);
X gcvalues.stipple = (Pixmap) xv_get(grey, XV_XID);
X gcvalues.fill_style = FillOpaqueStippled;
X gcvalues.plane_mask = 1L;
X gcvalues.graphics_exposures = False;
X gcvalues.foreground = BlackPixel(display, DefaultScreen(display));
X gcvalues.background = WhitePixel(display, DefaultScreen(display));
X gcmask = GCStipple | GCFillStyle | GCPlaneMask |
X GCGraphicsExposures | GCForeground | GCBackground;
X gc = XCreateGC(display, xv_get(panel, XV_XID), gcmask, &gcvalues);
X
X /* attach the GC to the panel for use by the repaint proc above */
X xv_set(panel, XV_KEY_DATA, PANEL_GC_KEY, gc, NULL);
X
X xv_main_loop(frame);
X exit(0);
X}
X
X/*
X * repaint procedure for the panel paints a gray pattern over the
X * entire panel. Use the GC attached to the panel via XV_KEY_DATA.
X */
Xvoid
Xpanel_repaint(panel, pw)
XPanel panel;
XXv_Window pw;
X{
X /* get the GC attached to the panel in main() */
X GC gc = (GC)xv_get(panel, XV_KEY_DATA, PANEL_GC_KEY);
X
X /* call XFillRectangle on the entire size of the panel window */
X XFillRectangle(xv_get(panel, XV_DISPLAY), xv_get(pw, XV_XID), gc,
X 0, 0, xv_get(pw, XV_WIDTH), xv_get(pw, XV_HEIGHT));
X}
X
Xquit(item)
XPanel_item item;
X{
X Frame frame = (Frame)xv_get(item, PANEL_CLIENT_DATA);
X xv_destroy_safe(frame);
X}
END_OF_FILE
if test 2626 -ne `wc -c <'xview.demos/panels/panel_repaint.c'`; then
echo shar: \"'xview.demos/panels/panel_repaint.c'\" unpacked with wrong size!
fi
# end of 'xview.demos/panels/panel_repaint.c'
fi
if test -f 'xview.demos/seln_svc/seln_line.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'xview.demos/seln_svc/seln_line.c'\"
else
echo shar: Extracting \"'xview.demos/seln_svc/seln_line.c'\" \(2643 characters\)
sed "s/^X//" >'xview.demos/seln_svc/seln_line.c' <<'END_OF_FILE'
X/*
X * line_num.c -- demonstrate how to use the selection service to get
X * the line number of the primary selection in a textsw.
X */
X#include <stdio.h>
X#include <xview/xview.h>
X#include <xview/textsw.h>
X#include <xview/panel.h>
X#include <xview/seln.h>
X
XTextsw textsw;
X
Xmain(argc, argv)
Xchar *argv[];
X{
X Frame frame;
X Panel panel;
X void exit();
X int seln_proc();
X
X xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL);
X
X frame = (Frame)xv_create(NULL, FRAME,
X FRAME_SHOW_FOOTER, TRUE,
X NULL);
X
X panel = (Panel)xv_create(frame, PANEL,
X WIN_WIDTH, WIN_EXTEND_TO_EDGE,
X NULL);
X
X (void) xv_create(panel, PANEL_BUTTON,
X PANEL_LABEL_STRING, "Quit",
X PANEL_NOTIFY_PROC, exit,
X NULL);
X (void) xv_create(panel, PANEL_BUTTON,
X PANEL_LABEL_STRING, "Get Selection",
X PANEL_NOTIFY_PROC, seln_proc,
X PANEL_CLIENT_DATA, frame,
X NULL);
X (void) xv_create(panel, PANEL_TEXT,
X PANEL_LABEL_STRING, "No-op:",
X PANEL_VALUE_DISPLAY_LENGTH, 30,
X NULL);
X
X window_fit(panel);
X
X textsw = (Textsw)xv_create(frame, TEXTSW,
X WIN_X, 0,
X WIN_BELOW, panel,
X WIN_ROWS, 10,
X WIN_COLUMNS, 80,
X TEXTSW_FILE_CONTENTS, "/etc/passwd",
X NULL);
X window_fit(frame);
X xv_main_loop(frame);
X}
X
Xint
Xseln_proc(item, event)
XPanel_item item;
XEvent *event; /* unused */
X{
X Frame frame = (Frame)xv_get(item, PANEL_CLIENT_DATA);
X Seln_holder holder;
X Seln_request *buffer;
X int line_number;
X char *msg[32];
X
X /*
X * get primary selection
X */
X holder = seln_inquire(SELN_PRIMARY);
X /*
X * ask for the data containing line number of the first
X * character of the selection
X */
X buffer = seln_ask(&holder,
X SELN_REQ_FAKE_LEVEL, SELN_LEVEL_LINE,
X SELN_REQ_FIRST_UNIT, 0,
X NULL);
X /*
X * determine the window that contains the selection
X */
X if (seln_holder_same_client(&holder, textsw)) {
X xv_set(frame,
X FRAME_LEFT_FOOTER, "selection in textsw",
X NULL);
X /*
X * convert data into the line number
X */
X sprintf(msg, "Selection: line %ld",
X *(long *)(buffer->data + 3 * sizeof(Seln_attribute)));
X xv_set(frame,
X FRAME_RIGHT_FOOTER, msg,
X NULL);
X } else
X xv_set(frame,
X FRAME_LEFT_FOOTER, "selection elsewhere",
X NULL);
X
X return XV_OK;
X}
END_OF_FILE
if test 2643 -ne `wc -c <'xview.demos/seln_svc/seln_line.c'`; then
echo shar: \"'xview.demos/seln_svc/seln_line.c'\" unpacked with wrong size!
fi
# end of 'xview.demos/seln_svc/seln_line.c'
fi
if test -f 'xview.demos/seln_svc/simple_seln.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'xview.demos/seln_svc/simple_seln.c'\"
else
echo shar: Extracting \"'xview.demos/seln_svc/simple_seln.c'\" \(1913 characters\)
sed "s/^X//" >'xview.demos/seln_svc/simple_seln.c' <<'END_OF_FILE'
X/*
X * seln.c -- print the primary selection by pressing the panel
X * button. The selection may have originated from any window or
X * application on the server.
X */
X#include <stdio.h>
X#include <xview/xview.h>
X#include <xview/panel.h>
X#include <xview/server.h>
X#include <xview/seln.h>
X
XXv_Server server;
X
Xmain(argc, argv)
Xchar *argv[];
X{
X Frame frame;
X Panel panel;
X void exit();
X int print_seln();
X
X xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL);
X
X frame = (Frame) xv_create(NULL, FRAME,
X FRAME_LABEL, argv[0],
X NULL);
X panel = (Panel)xv_create(frame, PANEL,
X WIN_WIDTH, WIN_EXTEND_TO_EDGE,
X NULL);
X (void) xv_create(panel, PANEL_BUTTON,
X PANEL_LABEL_STRING, "Quit",
X PANEL_NOTIFY_PROC, exit,
X NULL);
X (void) xv_create(panel, PANEL_BUTTON,
X PANEL_LABEL_STRING, "Print Selection",
X PANEL_NOTIFY_PROC, print_seln,
X NULL);
X window_fit(panel);
X window_fit(frame);
X
X server = (Xv_Server)xv_get(xv_get(frame, XV_SCREEN), SCREEN_SERVER);
X
X xv_main_loop(frame);
X}
X
X/*
X * Get the selection using selection_ask(). Note that if the
X * selection is bigger than about 2K, the whole selection will
X * not be gotten with one call, thus this method of getting
X * the selection may not be sufficient for all situations.
X */
Xint
Xprint_seln(item, event)
XPanel_item item;
XEvent *event;
X{
X Seln_holder holder;
X Seln_request *response;
X char text[BUFSIZ];
X
X /* get the holder of the primary selection */
X holder = selection_inquire(server, SELN_PRIMARY);
X response = selection_ask(server, &holder,
X SELN_REQ_CONTENTS_ASCII, NULL,
X NULL);
X
X strcpy(text, response->data + sizeof (SELN_REQ_CONTENTS_ASCII));
X printf("---selection---\n%s\n---end seln---\n", text);
X
X return XV_OK;
X}
END_OF_FILE
if test 1913 -ne `wc -c <'xview.demos/seln_svc/simple_seln.c'`; then
echo shar: \"'xview.demos/seln_svc/simple_seln.c'\" unpacked with wrong size!
fi
# end of 'xview.demos/seln_svc/simple_seln.c'
fi
if test -f 'xview.demos/sv_compat/gray_stencil.pr' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'xview.demos/sv_compat/gray_stencil.pr'\"
else
echo shar: Extracting \"'xview.demos/sv_compat/gray_stencil.pr'\" \(1997 characters\)
sed "s/^X//" >'xview.demos/sv_compat/gray_stencil.pr' <<'END_OF_FILE'
X/* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16
X */
X 0xAAAA,0xAAAA,0xAAAA,0xAAAA,
X 0x5555,0x5555,0x5555,0x5555,
X 0xAAAA,0xAAAA,0xAAAA,0xAAAA,
X 0x5555,0x5555,0x5555,0x5555,
X 0xAAAA,0xAAAA,0xAAAA,0xAAAA,
X 0x5555,0x5555,0x5555,0x5555,
X 0xAAAA,0xAAAA,0xAAAA,0xAAAA,
X 0x5555,0x5555,0x5555,0x5555,
X 0xAAAA,0xAAAA,0xAAAA,0xAAAA,
X 0x5555,0x5555,0x5555,0x5555,
X 0xAAAA,0xAAAA,0xAAAA,0xAAAA,
X 0x5555,0x5555,0x5555,0x5555,
X 0xAAAA,0xAAAA,0xAAAA,0xAAAA,
X 0x5555,0x5555,0x5555,0x5555,
X 0xAAAA,0xAAAA,0xAAAA,0xAAAA,
X 0x5555,0x5555,0x5555,0x5555,
X 0xAAAA,0xAAAA,0xAAAA,0xAAAA,
X 0x5555,0x5555,0x5555,0x5555,
X 0xAAAA,0xAAAA,0xAAAA,0xAAAA,
X 0x5555,0x5555,0x5555,0x5555,
X 0xAAAA,0xAAAA,0xAAAA,0xAAAA,
X 0x5555,0x5555,0x5555,0x5555,
X 0xAAAA,0xAAAA,0xAAAA,0xAAAA,
X 0x5555,0x5555,0x5555,0x5555,
X 0xAAAA,0xAAAA,0xAAAA,0xAAAA,
X 0x5555,0x5555,0x5555,0x5555,
X 0xAAAA,0xAAAA,0xAAAA,0xAAAA,
X 0x5555,0x5555,0x5555,0x5555,
X 0xAAAA,0xAAAA,0xAAAA,0xAAAA,
X 0x5555,0x5555,0x5555,0x5555,
X 0xAAAA,0xAAAA,0xAAAA,0xAAAA,
X 0x5555,0x5555,0x5555,0x5555,
X 0xAAAA,0xAAAA,0xAAAA,0xAAAA,
X 0x5555,0x5555,0x5555,0x5555,
X 0xAAAA,0xAAAA,0xAAAA,0xAAAA,
X 0x5555,0x5555,0x5555,0x5555,
X 0xAAAA,0xAAAA,0xAAAA,0xAAAA,
X 0x5555,0x5555,0x5555,0x5555,
X 0xAAAA,0xAAAA,0xAAAA,0xAAAA,
X 0x5555,0x5555,0x5555,0x5555,
X 0xAAAA,0xAAAA,0xAAAA,0xAAAA,
X 0x5555,0x5555,0x5555,0x5555,
X 0xAAAA,0xAAAA,0xAAAA,0xAAAA,
X 0x5555,0x5555,0x5555,0x5555,
X 0xAAAA,0xAAAA,0xAAAA,0xAAAA,
X 0x5555,0x5555,0x5555,0x5555,
X 0xAAAA,0xAAAA,0xAAAA,0xAAAA,
X 0x5555,0x5555,0x5555,0x5555,
X 0xAAAA,0xAAAA,0xAAAA,0xAAAA,
X 0x5555,0x5555,0x5555,0x5555,
X 0xAAAA,0xAAAA,0xAAAA,0xAAAA,
X 0x5555,0x5555,0x5555,0x5555,
X 0xAAAA,0xAAAA,0xAAAA,0xAAAA,
X 0x5555,0x5555,0x5555,0x5555,
X 0xAAAA,0xAAAA,0xAAAA,0xAAAA,
X 0x5555,0x5555,0x5555,0x5555,
X 0xAAAA,0xAAAA,0xAAAA,0xAAAA,
X 0x5555,0x5555,0x5555,0x5555,
X 0xAAAA,0xAAAA,0xAAAA,0xAAAA,
X 0x5555,0x5555,0x5555,0x5555,
X 0xAAAA,0xAAAA,0xAAAA,0xAAAA,
X 0x5555,0x5555,0x5555,0x5555,
X 0xAAAA,0xAAAA,0xAAAA,0xAAAA,
X 0x5555,0x5555,0x5555,0x5555
END_OF_FILE
if test 1997 -ne `wc -c <'xview.demos/sv_compat/gray_stencil.pr'`; then
echo shar: \"'xview.demos/sv_compat/gray_stencil.pr'\" unpacked with wrong size!
fi
# end of 'xview.demos/sv_compat/gray_stencil.pr'
fi
if test -f 'xview.demos/sv_compat/pw_draw.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'xview.demos/sv_compat/pw_draw.c'\"
else
echo shar: Extracting \"'xview.demos/sv_compat/pw_draw.c'\" \(3909 characters\)
sed "s/^X//" >'xview.demos/sv_compat/pw_draw.c' <<'END_OF_FILE'
X/*
X * Name: pw_draw.c
X *
X * Description:
X * Demonstrates some of the pixwin drawing functions on
X * a canvas window. The drawing is done inside a repaint proc.
X * XView (and X11) applications must always be prepared to
X * repaint themselves on demand.
X *
X * Note: XView doesn't really support pw_* graphics calls.
X * These are leftover functions from Sunview and are shown here for
X * compatibility reference only.
X */
X
X#include <stdio.h>
X#include <xview/xview.h>
X#include <xview/canvas.h>
X#include <xview/svrimage.h>
X
Xstatic short chess_bits[] = {
X#include <images/chesstool.icon>
X};
X
Xstatic short gray_bits[] = {
X#include "gray_stencil.pr"
X};
X
XServer_image chess_image;
XServer_image stencil_image;
X
X/*
X * main()
X * Create frame and canvas windows.
X * Set a repaint proc for the canvas window.
X * Create Server Images for fill and stencil operations
X * in canvas_repaint_proc().
X * Start the event loop.
X */
Xmain(argc,argv)
X int argc;
X char *argv[];
X{
X Frame frame;
X Canvas canvas;
X void canvas_repaint_proc();
X
X xv_init(XV_INIT_ARGS, argc, argv, 0);
X
X /* Create a frame and a canvas */
X frame = xv_create(NULL, FRAME,
X FRAME_LABEL, "xv_canvas_pw_draw",
X XV_WIDTH, 734,
X XV_HEIGHT, 448,
X 0);
X
X canvas = xv_create(frame, CANVAS,
X CANVAS_REPAINT_PROC, canvas_repaint_proc,
X 0);
X
X /* By default, server images are created with depth 1 */
X chess_image = xv_create(NULL,SERVER_IMAGE,
X XV_WIDTH, 64,
X XV_HEIGHT, 64,
X SERVER_IMAGE_BITS, chess_bits,
X 0);
X
X stencil_image = xv_create(NULL,SERVER_IMAGE,
X XV_WIDTH, 64,
X XV_HEIGHT, 64,
X SERVER_IMAGE_BITS, gray_bits,
X 0);
X
X xv_main_loop(frame);
X return(0);
X}
X
X/*
X * canvas_repaint_proc()
X * Called to repaint the canvas window. Draws into the window
X * using various pixwin drawing functions.
X */
Xvoid
Xcanvas_repaint_proc(canvas, canvas_pw, repaint_area)
X Canvas canvas;
X Pixwin *canvas_pw;
X Rectlist *repaint_area;
X{
X static Pr_brush brush = {5};
X static short dashed[] = {5, 3, 0};
X static Pr_texture tex = {dashed, 0, 0, 0, 0, 0, 0, 0 };
X static struct pr_pos lines[] = {{0,0}, {64,0}, {0,64}, {64,64}};
X static struct pr_pos points[] = {{0, 128}, {128, 128}, {64, 0}};
X static int num_points[] = {3};
X
X /* Rop the chess_image icon onto the canvas */
X pw_text(canvas_pw, 64, 58, PIX_SRC, NULL, "pw_rop");
X pw_rop(canvas_pw, 64, 64, 64, 64, PIX_SET, chess_image, 0, 0);
X
X /* Draw the chess_image icon using the stencil_image as a mask */
X pw_text(canvas_pw, 192, 58, PIX_SRC, NULL, "pw_stencil");
X pw_stencil(canvas_pw, 192, 64, 64, 64, PIX_SRC, stencil_image, 0, 0,
X chess_image, 0, 0);
X
X /* Replicate the chess_image icon within the specified rectangle */
X pw_text(canvas_pw, 352, 58, PIX_SRC, NULL,"pw_replrop");
X pw_replrop(canvas_pw, 320, 64, 128, 128, PIX_SRC, chess_image, 0, 0);
X
X /* Fill the specified polygon with the chess_image icon */
X pw_text(canvas_pw, 542, 58, PIX_SRC, NULL,"pw_polygon_2");
X pw_polygon_2(canvas_pw, 512, 64, 1, num_points, points, PIX_SRC,
X chess_image, 0, 0);
X
X pw_text(canvas_pw, 64, 312, PIX_SRC, NULL, "pw_vector");
X pw_vector(canvas_pw, 64, 320, 128, 384, PIX_SRC, 1);
X pw_vector(canvas_pw, 64, 384, 128, 320, PIX_SRC, 1);
X
X /* Draw a dashed line with the specifed line pattern & thickness */
X pw_text(canvas_pw, 192, 312, PIX_SRC, NULL, "pw_line");
X pw_line(canvas_pw, 192, 320, 256, 384, &brush, &tex, PIX_SET);
X pw_line(canvas_pw, 192, 384, 256, 320, &brush, &tex, PIX_SET);
X
X /* Draw a set of lines */
X pw_text(canvas_pw, 320, 312, PIX_SRC, NULL, "pw_polyline");
X pw_polyline(canvas_pw, 320, 320, 4, lines, POLY_CLOSE, NULL, NULL, PIX_SET);
X
X /* Copy from one region of the canvas to another */
X pw_text(canvas_pw, 512, 312, PIX_SRC, NULL, "pw_copy");
X pw_copy(canvas_pw, 448, 320, 192, 64, PIX_SRC, canvas_pw, 400, 96);
X}
X
END_OF_FILE
if test 3909 -ne `wc -c <'xview.demos/sv_compat/pw_draw.c'`; then
echo shar: \"'xview.demos/sv_compat/pw_draw.c'\" unpacked with wrong size!
fi
# end of 'xview.demos/sv_compat/pw_draw.c'
fi
echo shar: End of archive 4 \(of 6\).
cp /dev/null ark4isdone
MISSING=""
for I in 1 2 3 4 5 6 ; do
if test ! -f ark${I}isdone ; then
MISSING="${MISSING} ${I}"
fi
done
if test "${MISSING}" = "" ; then
echo You have unpacked all 6 archives.
rm -f ark[1-9]isdone
else
echo You still need to unpack the following archives:
echo " " ${MISSING}
fi
## End of shell archive.
exit 0
More information about the Comp.sources.x
mailing list