📄 xneko.c
字号:
/*- * Copyright (c) 1991, 1993 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */#ifndef lintstatic char copyright[] ="@(#) Copyright (c) 1991, 1993\n\ The Regents of the University of California. All rights reserved.\n";#endif /* not lint */#ifndef lintstatic char sccsid[] = "@(#)xneko.c 8.1 (Berkeley) 5/31/93";#endif /* not lint *//*-------------------------------------------------------------- * * xneko - X11 G- * * Original Writer: Masayuki Koba * Programmed by Masayuki Koba, 1990 * *-------------------------------------------------------------- * *!!Introduction: * *!!!!K\@(#)xneko.c 8.1m%0%i%`$O Macintosh $N5/31/939%/%"%/%;%5%j!< "neko" $N *!!F0:n$r X11 $G%^%M$?$b$N$G$9!# * *!!!!Macintosh "neko" $N=(0o$J5/31/936%$%s$K7I0U$rI=$7$D$D!"$3$N *!!@(#)xneko.c 8.1m%0%i%`$r3'$5$s$KJ{$2$^$9!# * *-------------------------------------------------------------- * *!!Special Thanks to * * toshi-w !D!!Macintosh neko $N>R2p<T * shio-m !D!!!VX11 $N neko $,M_$7$$!*!W$H%?%@$r$3$M$??M * disco !D!!X11 SCCS/s.xneko.c/%K%+%k!&%"8.1P%$%6!< * * HOMY !D!!/usr/src/games/xneko/SCCS/s.xneko.c0;XE&<T * BNS !D!!J#?t@(#)xneko.c 8.1l!<%sBP1~May 31, 1993C%ADs6!<T * * "xneko" Presented by Masayuki Koba (masa-k). * *-------------------------------------------------------------- * *!!Manifest: * *!!!!K\@(#)xneko.c 8.1m%0%i%`$O Public Domain Software $G$9!#E>:\!&2~NI$O *!!<+M3$K9T$C$F2<$5$$!# * *!!!!$J$*!"86:n<T$O!"K\@(#)xneko.c 8.1m%0%i%`$r;HMQ$9$k$3$H$K$h$C$F@8$8$? *!!>c32$dITMx1W$K$D$$$F$$$C$5$$@UG$$r;}$A$^$;$s!# * *-------------------------------------------------------------- * *!!Bugs: * *!!!!!J#1!KX11 $N .Xdefaults $N@_Dj$r$^$k$C$-$jL5;k$7$F$$$^$9!# * *!!!!!J#2!KG-$NF0:n$,;~4V$HF14|$7$F$$$k$?$a!"%^%&%9$N0\F0>pJs *!!!!!!!!$r%]!<%j%s%0$7$F$$$^$9!#=>$C$F!"%^%&%9$,A4$/F0:n$7$F *!!!!!!!!$$$J$$;~$OL5BL$J%^%&%9:BI8FI$_<h$j$r9T$C$F$7$^$$$^$9!# * *!!!!!J#3!K%&%#%s8.1&$,%"%$%3%s2=$5$l$F$b!"$7$i$s$W$j$GIA2h$7 *!!!!!!!!$D$E$1$^$9!#$3$NItJ,$O!"8=:_$N%&%#%s8.1&$N>uBV$r@(#) xneko.c 8.1@(#)' *!!!!!!!!70/$7$F!"%"%$%3%s2=$5$l$F$$$k;~$O40A4$K%$s%HBT$A *!!!!!!!!$K$J$k$h$&$K=q$-JQ$($J$1$l$P$J$j$^$;$s!# ($=$s$J$3$H!" *!!!!!!!!$G$-$k$N$+$J$!!#X10 $G$O$G$-$^$7$?$,!#) * *!!!!!J#4!K%j%5%$%:8e$N%&%#%s8.1&$,6KC<$K>.$5$/$J$C$?;~$NF0:n *!!!!!!!!$OJ]>Z$G$-$^$;$s!# * *!!!!!J#5!KK\Mh$J$i$P3NJ]$7$?%&%#%s8.1&$d Pixmap $O@(#)xneko.c 8.1m%0%i%` *!!!!!!!!=*N;;~$K2rJ|$9$kI,MW$,$"$j$^$9$,!"K\@(#)xneko.c 8.1m%0%i%`$O$=$N *!!!!!!!!$X$s$r%5%\$C$F$*$j!"Hs>o$K$*9T57$,0-$/$J$C$F$$$^$9!# *!!!!!!!!IaDL$O exit() ;~$K%7%9SCCS/s.xneko.c`$,M>J,$J%j%=!<%9$r2rJ|$7$F *!!!!!!!!$/$l$^$9$,!"#O#S$K/usr/src/games/xneko/SCCS/s.xneko.c0$,$"$k>l9g$O xneko $r2?EY$b5/ *!!!!!!!!F0$9$k$H!"$=$N$&$A%9%o82WNN0h$,ITB-$7$F$7$^$&$3$H$K *!!!!!!!!$J$k$+$b$7$l$^$;$s!# * *!!!!!J#6!K;~4V$KF14|$7$FI,$:IA2h=hM}$r<B9T$9$k$?$a!"0BDj>uBV *!!!!!!!!$G$b Idle 90 !A 95% $H$J$j!"%7%9SCCS/s.xneko.c`#C#P#U$r 5 !A 10% *!!!!!!!!Dx>CHq$7$^$9!#!Jxtachos $GD4$Y$^$7$?!#!K * *-------------------------------------------------------------- * *!!System (Machine): * *!!!!K\@(#)xneko.c 8.1m%0%i%`$NF0:n$r3NG'$7$?%7%9SCCS/s.xneko.c`9=@.$O0J2<$NDL$j!# * * !&NWS-1750!"NWS-1720 (NEWS)!"NWP-512D * !!NEWS-OS 3.2a (UNIX 4.3BSD)!"X11 Release 2 * * !&NWS-1750!"NWS-1720 (NEWS)!"NWP-512D * !!NEWS-OS 3.3 (UNIX 4.3BSD)!"X11 Release 3 * * !&Sun 3!"X11 Release 4 * * !&LUNA!"X11 Release 3 * * !&DECstation 3100!"ULTRIX!"X11 * *--------------------------------------------------------------*/#include <X11/Xlib.h>#include <X11/Xutil.h>#include <X11/keysym.h>#include <stdio.h>#include <signal.h>#include <math.h>#include <sys/time.h>#ifndef lintstatic char rcsid[] = "$Header: /afs/athena.mit.edu/user/j/jik/sipbsrc/src/xneko/RCS/xneko.c,v 1.2 90/09/01 23:40:01 jik Exp $";static char WriterMessage[] = "xneko: Programmed by Masayuki Koba, 1990";#endif/* * X11 G- 0C5/31/93^129W18:45:36!%$%k0lMw!' * * "icon.xbm" !D!!%"%$%3%s * "cursor.xbm" !D!!%+!<%=%k * "cursor_mask.xbm" !D!!%+!<%=%k!J%^%9%/!K * * "space.xbm" !D!!%9%Z!<%9 * * "mati2.xbm" !D!!BT$A#2 * "jare2.xbm" !D!!$8$c$l#2 * "kaki1.xbm" !D!!A_$-#1 * "kaki2.xbm" !D!!A_$-#2 * "mati3.xbm" !D!!BT$A#3!J$"$/$S!K * "sleep1.xbm" !D!!?2$k#1 * "sleep2.xbm" !D!!?2$k#2 * * "awake.xbm" !D!!L\3P$a * * "up1.xbm" !D!!>e#1 * "up2.xbm" !D!!>e#2 * "down1.xbm" !D!!2<#1 * "down2.xbm" !D!!2<#2 * "left1.xbm" !D!!:8#1 * "left2.xbm" !D!!:8#2 * "right1.xbm" !D!!1 * "right2.xbm" !D!!1 * "upleft1.xbm" !D!!:8>e#1 * "upleft2.xbm" !D!!:8>e#2 * "upright1.xbm" !D!!1&>e#1 * "upright2.xbm" !D!!1&>e#2 * "dwleft1.xbm" !D!!:82<#1 * "dwleft2.xbm" !D!!:82<#2 * "dwright1.xbm" !D!!1&2<#1 * "dwright2.xbm" !D!!1&2<#2 * * "utogi1.xbm" !D!!>eKa$.#1 * "utogi2.xbm" !D!!>eKa$.#2 * "dtogi1.xbm" !D!!2<Ka$.#1 * "dtogi2.xbm" !D!!2<Ka$.#2 * "ltogi1.xbm" !D!!:8Ka$.#1 * "ltogi2.xbm" !D!!:8Ka$.#2 * "rtogi1.xbm" !D!!1&Ka$.#1 * "rtogi2.xbm" !D!!1&Ka$.#2 * * !!$3$l$i$N18:45:36!%$%k$O bitmap %3%^%s%I$GJT=82DG=$G$9!# * * (bitmap size "* 32x32 ... Macintosh ICON resource size.) * */#include "bitmaps/icon.xbm"#include "bitmaps/cursor.xbm"#include "bitmaps/cursor_mask.xbm"#include "bitmaps/space.xbm"#include "bitmaps/mati2.xbm"#include "bitmaps/jare2.xbm"#include "bitmaps/kaki1.xbm"#include "bitmaps/kaki2.xbm"#include "bitmaps/mati3.xbm"#include "bitmaps/sleep1.xbm"#include "bitmaps/sleep2.xbm"#include "bitmaps/awake.xbm"#include "bitmaps/up1.xbm"#include "bitmaps/up2.xbm"#include "bitmaps/down1.xbm"#include "bitmaps/down2.xbm"#include "bitmaps/left1.xbm"#include "bitmaps/left2.xbm"#include "bitmaps/right1.xbm"#include "bitmaps/right2.xbm"#include "bitmaps/upright1.xbm"#include "bitmaps/upright2.xbm"#include "bitmaps/upleft1.xbm"#include "bitmaps/upleft2.xbm"#include "bitmaps/dwleft1.xbm"#include "bitmaps/dwleft2.xbm"#include "bitmaps/dwright1.xbm"#include "bitmaps/dwright2.xbm"#include "bitmaps/utogi1.xbm"#include "bitmaps/utogi2.xbm"#include "bitmaps/dtogi1.xbm"#include "bitmaps/dtogi2.xbm"#include "bitmaps/ltogi1.xbm"#include "bitmaps/ltogi2.xbm"#include "bitmaps/rtogi1.xbm"#include "bitmaps/rtogi2.xbm"/* * Dj?tDj5A */#define BITMAP_WIDTH 32 /* #1%-%c%i%/%?$NI} (18:45:53/%;%k) */#define BITMAP_HEIGHT 32 /* #1%-%c%i%/%?$N9b$5 (18:45:53/%;%k) */#define WINDOW_WIDTH 320 /* %&%#%s8.1&$NI} (18:45:53/%;%k) */#define WINDOW_HEIGHT 256 /* %&%#%s8.1&$N9b$5 (18:45:53/%;%k) */#define DEFAULT_BORDER 2 /* %\!<%@!<%5%$%: */#define DEFAULT_WIN_X 1 /* %&%#%s8.1&@8@.#X:BI8 */#define DEFAULT_WIN_Y 1 /* %&%#%s8.1&@8@.#Y:BI8 */#define AVAIL_KEYBUF 255#define EVENT_MASK1 ( KeyPressMask | StructureNotifyMask )#define EVENT_MASK2 ( KeyPressMask | \ ExposureMask | \ StructureNotifyMask )#define MAX_TICK 9999 /* Odd Only! */#define INTERVAL 125000L /* %$%s%?!</usr/src/games/xneko/SCCS/s.xneko.ck%?%$%` */#define NEKO_SPEED 16#define IDLE_SPACE 6#define NORMAL_STATE 1#define DEBUG_LIST 2#define DEBUG_MOVE 3/* G-$N>uBVDj?t */#define NEKO_STOP 0 /* N)$A;_$^$C$? */#define NEKO_JARE 1 /* 4i$r@v$C$F$$$k */#define NEKO_KAKI 2 /* F,$rA_$$$F$$$k */#define NEKO_AKUBI 3 /* $"$/$S$r$7$F$$$k */#define NEKO_SLEEP 4 /* ?2$F$7$^$C$? */#define NEKO_AWAKE 5 /* L\$,3P$a$? */#define NEKO_U_MOVE 6 /* >e$K0\F0Cf */#define NEKO_D_MOVE 7 /* 2<$K0\F0Cf */#define NEKO_L_MOVE 8 /* :8$K0\F0Cf */#define NEKO_R_MOVE 9 /* 1&$K0\F0Cf */#define NEKO_UL_MOVE 10 /* :8>e$K0\F0Cf */#define NEKO_UR_MOVE 11 /* 1&>e$K0\F0Cf */#define NEKO_DL_MOVE 12 /* :82<$K0\F0Cf */#define NEKO_DR_MOVE 13 /* 1&2<$K0\F0Cf */#define NEKO_U_TOGI 14 /* >e$NJI$r0z$CA_$$$F$$$k */#define NEKO_D_TOGI 15 /* 2<$NJI$r0z$CA_$$$F$$$k */#define NEKO_L_TOGI 16 /* :8$NJI$r0z$CA_$$$F$$$k */#define NEKO_R_TOGI 17 /* 1&$NJI$r0z$CA_$$$F$$$k *//* G-$N%"%K%a!<%7%g%s7+$jJV$72s?t */#define NEKO_STOP_TIME 4#define NEKO_JARE_TIME 10#define NEKO_KAKI_TIME 4#define NEKO_AKUBI_TIME 3#define NEKO_AWAKE_TIME 3#define NEKO_TOGI_TIME 10#define PI_PER8 ((double)3.1415926535/(double)8)#define DIRNAMELEN 255/* * %0%m!</usr/src/games/xneko/SCCS/s.xneko.ckJQ?t */static char *ProgramName; /* %3%^%s%IL>>N */Display *theDisplay;int theScreen;unsigned int theDepth;unsigned long theBlackPixel;unsigned long theWhitePixel;Window theWindow;Cursor theCursor;static unsigned int WindowWidth;static unsigned int WindowHeight;static int WindowPointX;static int WindowPointY;static unsigned int BorderWidth = DEFAULT_BORDER;long IntervalTime = INTERVAL;int EventState; /* %$s%H=hM}MQ >uBVJQ?t */int NekoTickCount; /* G-F0:n%+%&%s%? */int NekoStateCount; /* G-F10l>uBV%+%&%s%? */int NekoState; /* G-$N>uBV */int MouseX; /* %^%&%9#X:BI8 */int MouseY; /* %^%&%9#Y:BI8 */int PrevMouseX = 0; /* D>A0$N%^%&%9#X:BI8 */int PrevMouseY = 0; /* D>A0$N%^%&%9#Y:BI8 */int NekoX; /* G-#X:BI8 */int NekoY; /* G-#Y:BI8 */int NekoMoveDx; /* G-0\F05wN%#X */int NekoMoveDy; /* G-0\F05wN%#Y */int NekoLastX; /* G-:G=*IA2h#X:BI8 */int NekoLastY; /* G-:G=*IA2h#Y:BI8 */GC NekoLastGC; /* G-:G=*IA2h GC */double NekoSpeed = (double)NEKO_SPEED;double SinPiPer8Times3; /* sin( #3&P!?#8 ) */double SinPiPer8; /* sin( &P!?#8 ) */Pixmap SpaceXbm;Pixmap Mati2Xbm;Pixmap Jare2Xbm;Pixmap Kaki1Xbm;Pixmap Kaki2Xbm;Pixmap Mati3Xbm;Pixmap Sleep1Xbm;Pixmap Sleep2Xbm;Pixmap AwakeXbm;Pixmap Up1Xbm;Pixmap Up2Xbm;Pixmap Down1Xbm;Pixmap Down2Xbm;Pixmap Left1Xbm;Pixmap Left2Xbm;Pixmap Right1Xbm;Pixmap Right2Xbm;Pixmap UpLeft1Xbm;Pixmap UpLeft2Xbm;Pixmap UpRight1Xbm;Pixmap UpRight2Xbm;Pixmap DownLeft1Xbm;Pixmap DownLeft2Xbm;Pixmap DownRight1Xbm;Pixmap DownRight2Xbm;Pixmap UpTogi1Xbm;Pixmap UpTogi2Xbm;Pixmap DownTogi1Xbm;Pixmap DownTogi2Xbm;Pixmap LeftTogi1Xbm;Pixmap LeftTogi2Xbm;Pixmap RightTogi1Xbm;Pixmap RightTogi2Xbm;GC SpaceGC;GC Mati2GC;GC Jare2GC;GC Kaki1GC;GC Kaki2GC;GC Mati3GC;GC Sleep1GC;GC Sleep2GC;GC AwakeGC;GC Up1GC;GC Up2GC;GC Down1GC;GC Down2GC;GC Left1GC;GC Left2GC;GC Right1GC;GC Right2GC;GC UpLeft1GC;GC UpLeft2GC;GC UpRight1GC;GC UpRight2GC;GC DownLeft1GC;GC DownLeft2GC;GC DownRight1GC;GC DownRight2GC;GC UpTogi1GC;GC UpTogi2GC;GC DownTogi1GC;GC DownTogi2GC;GC LeftTogi1GC;GC LeftTogi2GC;GC RightTogi1GC;GC RightTogi2GC;typedef struct { GC *GCCreatePtr; Pixmap *BitmapCreatePtr; char *PixelPattern; unsigned int PixelWidth; unsigned int PixelHeight;} BitmapGCData;BitmapGCData BitmapGCDataTable[] ={ { &SpaceGC, &SpaceXbm, space_bits, space_width, space_height }, { &Mati2GC, &Mati2Xbm, mati2_bits, mati2_width, mati2_height }, { &Jare2GC, &Jare2Xbm, jare2_bits, jare2_width, jare2_height }, { &Kaki1GC, &Kaki1Xbm, kaki1_bits, kaki1_width, kaki1_height }, { &Kaki2GC, &Kaki2Xbm, kaki2_bits, kaki2_width, kaki2_height }, { &Mati3GC, &Mati3Xbm, mati3_bits, mati3_width, mati3_height }, { &Sleep1GC, &Sleep1Xbm, sleep1_bits, sleep1_width, sleep1_height }, { &Sleep2GC, &Sleep2Xbm, sleep2_bits, sleep2_width, sleep2_height }, { &AwakeGC, &AwakeXbm, awake_bits, awake_width, awake_height }, { &Up1GC, &Up1Xbm, up1_bits, up1_width, up1_height }, { &Up2GC, &Up2Xbm, up2_bits, up2_width, up2_height }, { &Down1GC, &Down1Xbm, down1_bits, down1_width, down1_height }, { &Down2GC, &Down2Xbm, down2_bits, down2_width, down2_height }, { &Left1GC, &Left1Xbm, left1_bits, left1_width, left1_height }, { &Left2GC, &Left2Xbm, left2_bits, left2_width, left2_height }, { &Right1GC, &Right1Xbm, right1_bits, right1_width, right1_height }, { &Right2GC, &Right2Xbm, right2_bits, right2_width, right2_height }, { &UpLeft1GC, &UpLeft1Xbm, upleft1_bits, upleft1_width, upleft1_height }, { &UpLeft2GC, &UpLeft2Xbm, upleft2_bits, upleft2_width, upleft2_height }, { &UpRight1GC, &UpRight1Xbm, upright1_bits, upright1_width, upright1_height }, { &UpRight2GC, &UpRight2Xbm, upright2_bits, upright2_width, upright2_height }, { &DownLeft1GC, &DownLeft1Xbm, dwleft1_bits, dwleft1_width, dwleft1_height }, { &DownLeft2GC, &DownLeft2Xbm, dwleft2_bits, dwleft2_width, dwleft2_height }, { &DownRight1GC, &DownRight1Xbm, dwright1_bits, dwright1_width, dwright1_height }, { &DownRight2GC, &DownRight2Xbm, dwright2_bits, dwright2_width, dwright2_height }, { &UpTogi1GC, &UpTogi1Xbm, utogi1_bits, utogi1_width, utogi1_height }, { &UpTogi2GC, &UpTogi2Xbm, utogi2_bits, utogi2_width, utogi2_height }, { &DownTogi1GC, &DownTogi1Xbm, dtogi1_bits, dtogi1_width, dtogi1_height }, { &DownTogi2GC, &DownTogi2Xbm, dtogi2_bits, dtogi2_width, dtogi2_height }, { &LeftTogi1GC, &LeftTogi1Xbm, ltogi1_bits, ltogi1_width, ltogi1_height }, { &LeftTogi2GC, &LeftTogi2Xbm, ltogi2_bits, ltogi2_width, ltogi2_height }, { &RightTogi1GC, &RightTogi1Xbm, rtogi1_bits, rtogi1_width, rtogi1_height }, { &RightTogi2GC, &RightTogi2Xbm, rtogi2_bits, rtogi2_width, rtogi2_height }, { NULL, NULL, NULL, NULL, NULL }};typedef struct { GC *TickEvenGCPtr; GC *TickOddGCPtr;} Animation;Animation AnimationPattern[] ={ { &Mati2GC, &Mati2GC }, /* NekoState == NEKO_STOP */ { &Jare2GC, &Mati2GC }, /* NekoState == NEKO_JARE */ { &Kaki1GC, &Kaki2GC }, /* NekoState == NEKO_KAKI */ { &Mati3GC, &Mati3GC }, /* NekoState == NEKO_AKUBI */ { &Sleep1GC, &Sleep2GC }, /* NekoState == NEKO_SLEEP */ { &AwakeGC, &AwakeGC }, /* NekoState == NEKO_AWAKE */ { &Up1GC, &Up2GC } , /* NekoState == NEKO_U_MOVE */ { &Down1GC, &Down2GC }, /* NekoState == NEKO_D_MOVE */ { &Left1GC, &Left2GC }, /* NekoState == NEKO_L_MOVE */ { &Right1GC, &Right2GC }, /* NekoState == NEKO_R_MOVE */ { &UpLeft1GC, &UpLeft2GC }, /* NekoState == NEKO_UL_MOVE */ { &UpRight1GC, &UpRight2GC }, /* NekoState == NEKO_UR_MOVE */ { &DownLeft1GC, &DownLeft2GC }, /* NekoState == NEKO_DL_MOVE */ { &DownRight1GC, &DownRight2GC }, /* NekoState == NEKO_DR_MOVE */ { &UpTogi1GC, &UpTogi2GC }, /* NekoState == NEKO_U_TOGI */ { &DownTogi1GC, &DownTogi2GC }, /* NekoState == NEKO_D_TOGI */ { &LeftTogi1GC, &LeftTogi2GC }, /* NekoState == NEKO_L_TOGI */ { &RightTogi1GC, &RightTogi2GC }, /* NekoState == NEKO_R_TOGI */};/*-------------------------------------------------------------- * * 0C5/31/93^504W%G!<%?!&GC =i4|2= * *--------------------------------------------------------------*/voidInitBitmapAndGCs(){ BitmapGCData *BitmapGCDataTablePtr; XGCValues theGCValues; theGCValues.function = GXcopy; theGCValues.foreground = BlackPixel( theDisplay, theScreen ); theGCValues.background = WhitePixel( theDisplay, theScreen ); theGCValues.fill_style = FillTiled; for ( BitmapGCDataTablePtr = BitmapGCDataTable; BitmapGCDataTablePtr->GCCreatePtr != NULL; BitmapGCDataTablePtr++ ) { *(BitmapGCDataTablePtr->BitmapCreatePtr) = XCreatePixmapFromBitmapData( theDisplay, RootWindow( theDisplay, theScreen ), BitmapGCDataTablePtr->PixelPattern, BitmapGCDataTablePtr->PixelWidth, BitmapGCDataTablePtr->PixelHeight, BlackPixel( theDisplay, theScreen ), WhitePixel( theDisplay, theScreen ), DefaultDepth( theDisplay, theScreen ) ); theGCValues.tile = *(BitmapGCDataTablePtr->BitmapCreatePtr); *(BitmapGCDataTablePtr->GCCreatePtr) = XCreateGC( theDisplay, theWindow, GCFunction | GCForeground | GCBackground | GCTile | GCFillStyle, &theGCValues ); } XFlush( theDisplay );}/*-------------------------------------------------------------- * * %9%/%j!<%s4D6-=i4|2= * *--------------------------------------------------------------*/voidInitScreen( DisplayName, theGeometry, TitleName, iconicState ) char *DisplayName; char *theGeometry; char *TitleName; Bool iconicState;{ int GeometryStatus; XSetWindowAttributes theWindowAttributes; XSizeHints theSizeHints;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -