Mercurial > emacs
view src/=XTests.c @ 20717:19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
(struct iso2022_spec): New member.
last_invalid_designation_register.
(struct coding_system): New member inhibit_inconsistent_eol_type.
(CODING_CATEGORY_IDX_ISO_7_TIGHT,
CODING_CATEGORY_MASK_ISO_7_TIGHT): New macros.
(CODING_CATEGORY_MASK_ANY): Include
CODING_CATEGORY_MASK_ISO_7_TIGHT.
(coding_category_table, coding_category_name): Extern deleted.
(Vselect_safe_coding_system_function): Extern it.
(CODING_FINISH_XXX): New macros.
(CODING_MODE_XXX): New macros.
(struct coding_system): New member mode, category_idx,
heading_ascii. Deleted members last_block, direction, selective,
carryover, carryover_size.
(CODING_MAY_REQUIRE_DECODING): New macro.
(CODING_CATEGORY_MASK_ISO_7BIT, CODING_CATEGORY_MASK_ISO_8BIT,
CODING_CATEGORY_MASK_ISO_SHIFT, CODING_CATEGORY_MASK_ISO): New
macros.
(Qraw_text): Extern it.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Thu, 22 Jan 1998 01:26:45 +0000 |
parents | 3165b2697c78 |
children |
line wrap: on
line source
#include <X11/Xlib.h> #include <X11/X.h> #include <X11/Xutil.h> #include <X11/Xresource.h> #include "XTests.h" #include <stdio.h> static Display *dpy; static void quit (dpy) Display *dpy; { XCloseDisplay (dpy); exit (0); } static Colormap screen_colormap; static unsigned long obtain_color (color) char *color; { int exists; XColor color_def; if (!screen_colormap) screen_colormap = DefaultColormap (dpy, DefaultScreen (dpy)); exists = XParseColor (dpy, screen_colormap, color, &color_def) && XAllocColor (dpy, screen_colormap, &color_def); if (exists) return color_def.pixel; fprintf (stderr, "Can't get color; using black."); return BlackPixel (dpy, DefaultScreen (dpy)); } static char *visual_strings[] = { "StaticGray ", "GrayScale ", "StaticColor", "PseudoColor", "TrueColor ", "DirectColor" }; main (argc,argv) int argc; char *argv[]; { char *dpy_string; int n; long mask; Visual *my_visual; XVisualInfo *vinfo, visual_template; XEvent event; Window window; Screen *scr; XGCValues gc_values; GC fill_gc, pix_gc, line_xor_gc, line_xor_inv_gc; int i; int x, y, width, height, geometry, gravity; char *geo; char default_geo[] = "80x40+0+0"; int depth; Pixmap pix; char *string = "Kill the head and the body will die."; char dash_list[] = {4, 4}; int dashes = 2; if (argc < 2) dpy_string = "localhost:0.0"; else dpy_string = argv[1]; if (argc >= 3) { XSizeHints hints; printf ("Geometry: %s\t(default: %s)\n", argv[2], default_geo); geo = argv[2]; XWMGeometry (dpy, DefaultScreen (dpy), geo, default_geo, 3, &hints, &x, &y, &width, &height, &gravity); } dpy = XOpenDisplay (dpy_string); if (!dpy) { printf ("Can' open display %s\n", dpy_string); exit (1); } window = XCreateSimpleWindow (dpy, DefaultRootWindow (dpy), 300, 300, 300, 300, 1, BlackPixel (dpy, DefaultScreen (dpy)), WhitePixel (dpy, DefaultScreen (dpy))); XSelectInput (dpy, window, ButtonPressMask | KeyPressMask | EnterWindowMask | LeaveWindowMask); gc_values.foreground = obtain_color ("blue"); gc_values.background = WhitePixel (dpy, DefaultScreen (dpy)); fill_gc = XCreateGC (dpy, window, GCForeground | GCBackground, &gc_values); gc_values.foreground = obtain_color ("red"); gc_values.line_width = 3; gc_values.line_style = LineOnOffDash; gc_values.cap_style = CapRound; gc_values.join_style = JoinRound; line_xor_gc = XCreateGC (dpy, window, GCForeground | GCBackground | GCLineStyle | GCJoinStyle | GCCapStyle | GCLineWidth, &gc_values); XSetDashes (dpy, line_xor_gc, 0, dash_list, dashes); line_xor_inv_gc = XCreateGC (dpy, window, GCForeground | GCBackground | GCLineWidth, &gc_values); depth = DefaultDepthOfScreen (ScreenOfDisplay (dpy, DefaultScreen (dpy))); pix = XCreateBitmapFromData (dpy, window, page_glyf_bits, page_glyf_width, page_glyf_height); XMapWindow (dpy, window); XFlush (dpy); while (1) { XNextEvent (dpy, &event); switch (event.type) { case ButtonPress: switch (event.xbutton.button) { case Button1: XDrawLine (dpy, window, line_xor_gc, 25, 75, 300, 75); break; case Button2: XDrawLine (dpy, window, line_xor_inv_gc, 25, 25, 300, 25); break; case Button3: XDrawLine (dpy, window, line_xor_gc, 25, 25, 25, 125); break; } break; case KeyPress: { char buf[20]; int n; XComposeStatus status; KeySym keysym; n = XLookupString (&event, buf, 20, &keysym, (XComposeStatus *) &status); if (n == 1 && buf[0] == 'q') quit (dpy); } break; case EnterNotify: XCopyPlane (dpy, pix, window, fill_gc, 0, 0, page_glyf_width, page_glyf_height, 100, 100, 1L); XFillRectangle (dpy, window, fill_gc, 50, 50, 50, 50); break; case LeaveNotify: XClearWindow (dpy, window); break; } XFlush (dpy); } }