1 /* $Id: EmiClockP.h,v 1.4 1999/09/02 14:33:47 koba Exp $
2  *
3  *  Emi Clock $B!=(B EmiClock Widget $BDj5A(B (private)
4  */
5 
6 /*
7  *  Copyright (c) 1994, 1995, 1997, 1999 Masayuki Koba
8  *
9  *  $BK\%=%U%H%&%'%"$N%=!<%9$d%P%$%J%j$r:FG[I[$9$k>l9g$O!"<!$N>r7o$r=e<i$7$F(B
10  *  $B2<$5$$!#(B
11  *
12  *  1. $BK\%=%U%H%&%'%"$rF~<j$7$?J}$K$O!"(BX11$BHG(B Emi Clock $B$N;HMQ8"$H!"Bh;0<T(B
13  *     $B$X$N:FG[I[8"$,G'$a$i$l$^$9!#$?$@$7!":FG[I[$K4X$7$F$O!"F~<j;~$N%*%j(B
14  *     $B%8%J%k$N$^$^2~JQ$;$:$K9T$&$3$H$,>r7o$G$9!#(B
15  *  2. $BK\%=%U%H%&%'%"$N0lIt$^$?$OA4It$rCx:n8"<T$KL5CG$G2~JQ$7$FG[I[$9$k$3(B
16  *     $B$H$O$G$-$^$;$s!#(B
17  *  3. $BK\%=%U%H%&%'%"$N0lIt$^$?$OA4It$rCx:n8"<T$KL5CG$GFs<!MxMQ$9$k$3$H$O(B
18  *     $B$G$-$^$;$s!#(B
19  *  4. $BK\%=%U%H%&%'%"$r%7%9%F%`$K%P%s%I%k$7$?$j!"%7%9%F%`$NDI2C%Q%C%1!<%8(B
20  *     $B$H$7$FBh;0<T$K:FG[I[$7$?$j$9$k>l9g$O!";vA0$KCx:n8"<T$K5v2D$,I,MW$G(B
21  *     $B$9!#(B
22  *  5. $BK\%=%U%H%&%'%"$r>&MQ$K;HMQ$9$k>l9g(B($B6bA,E*Mx1W$rF@$k>l9g(B)$B$O!";vA0$K(B
23  *     $BCx:n8"<T$K5v2D$,I,MW$G$9!#$3$N>l9g!"4pK\E*$KM-=~$H$J$j$^$9!#(B
24  *  6. $BK\%=%U%H%&%'%"$rMxMQ$9$k$3$H$K$h$C$FH/@8$7$?$$$+$J$kB;32$b!"Cx:n8"(B
25  *     $B<T$OIi$o$J$$$b$N$H$7$^$9!#$3$l$K9g0U$G$-$J$$>l9g$O!";HMQ8"$,$J$$$b(B
26  *     $B$N$H$7$^$9!#(B
27  *  7. $B!H(BEmi Clock$B!I$N>&I8$*$h$SK\%=%U%H%&%'%"$N2hA|$d%G%6%$%s$K4X$9$kCx:n(B
28  *     $B8"$O!"(BMotosoft $B$3$H!HK\(B $B=SLi!I;a$,M-$7$^$9!#(B
29  *  8. $B!H(BEmi Clock$B!I$N>&I8$*$h$S2hA|$d%G%6%$%s$O!"(BX11$BHG(B Emi Clock $B3+H/$N$?(B
30  *     $B$a!"(BMotosoft $B$h$j!H8E>l(B $B@59T!I$X8D?ME*$K%i%$%;%s%96!M?$5$l$F$^$9!#(B
31  *     $BBh;0<T$XFs<!%i%$%;%s%96!M?$9$k$3$H$OG'$a$i$l$F$*$j$^$;$s!#(B
32  *  9. Motosoft $B$H8E>l$KL5CG$G!"K\%=%U%H%&%'%"$N2hA|%G!<%?$rFs<!MxMQ$9$k$3(B
33  *     $B$H$r6X;_$7$^$9!#(B
34  * 10. $B$3$3$K5-=R$7$?0J30$N8"Mx$K$D$$$F$O!"F|K\9q$NCx:n8"K!$K$h$k$b$N$H$7(B
35  *     $B$^$9!#(B
36  */
37 
38 #ifndef	_EMICLOCKP_H_
39 #define	_EMICLOCKP_H_
40 
41 #include "EmiClock.h"			/* EmiClock Widget $BDj5A(B (public) */
42 #include <X11/CoreP.h>			/* Core Widget (private) */
43 
44 
45 /*
46  *  $B%/%i%9%l%3!<%I(B
47  */
48 
49 typedef struct	_EmiClockClassPart {
50     int		dummy;
51 } EmiClockClassPart;
52 
53 typedef struct	_EmiClockClassRec {
54     CoreClassPart	core_class;
55     EmiClockClassPart	emiclock_class;
56 } EmiClockClassRec;
57 
58 extern EmiClockClassRec	emiClockClassRec;
59 
60 
61 /*
62  *  $B%$%s%9%?%s%9%l%3!<%I(B
63  */
64 
65 typedef struct	_EmiClockPart {
66     /* resources */
67     Pixel		handBorderPixel;	/* $BD9C;?K$N%T%/%;%kCM(B($BOH(B) */
68     Pixel		handColorPixel;		/* $BD9C;?K$N%T%/%;%kCM(B($BGX7J(B) */
69     Pixel		secondHandPixel;	/* $BIC?K$N%T%/%;%kCM(B */
70     Boolean		isNoSecond;		/* $BIC?KI=<($J$7(B */
71     Boolean		isHourlyCharChange;	/* $B#1;~4V$*$-$KJQ99(B */
72     Boolean		isAnimateCharacter;	/* $B#1J,$4$H$KH?E>%"%K%a(B */
73     Boolean		isHourlyChime;		/* 0$BJ,%A%c%$%`$rLD$i$9(B */
74     Boolean		isHalfHourChime;	/* 30$BJ,%A%c%$%`$rLD$i$9(B */
75     Boolean		isPlayAlarm;		/* $B%"%i!<%`$rLD$i$9(B */
76     Boolean		isOneTime;		/* $B#12s$@$1DLCN$9$k(B */
77     Boolean		isDailyAlarm;		/* $BKhF|DLCN$9$k(B */
78     AlarmTime		*alarmTime;		/* $B%"%i!<%`;~9o(B */
79     Boolean		isTransparent;		/* $B$_$($J$$%I%l%9$,8+$($k(B */
80     int			cbaseNo;		/* $BJ8;zHW$NHV9f(B */
81     int			charNo;			/* $B%-%c%i%/%?$NHV9f(B */
82     Boolean		isReverseCharacter;	/* $BH?E>%"%K%a>uBVJQ?t(B */
83     Boolean		canUpdateTimer;		/* $B;~7W:FIA2h5v2D(B */
84     XtCallbackList	hourlyChimeCallback;
85     XtCallbackList	halfHourChimeCallback;
86     XtCallbackList	alarmCallback;
87     XtCallbackList	costumesMenuClearCallback;
88     XtCallbackList	costumesMenuSetCallback;
89     XtCallbackList	transparentCallback;
90     Boolean		isPerfect;		/* $B5/F0;~$K%+%i!<%;%k$r3NJ](B */
91     Boolean		isNoShape;		/* Shape Extension $B$,$J$$(B */
92     Boolean		isMono;			/* $B%b%N%/%mI=<((B */
93     Boolean		isGrayscale;		/* $B%0%l%$%9%1!<%kI=<((B */
94     Boolean		isGray4;		/* 4$B?'%0%l%$%9%1!<%kI=<((B */
95     int			*pixelTable;		/* $B%T%/%;%kCM$N%F!<%V%k(B */
96     /* private state */
97     Cursor		neko1Curs, neko2Curs;	/* $BG-$N<j%+!<%=%k(B */
98     GC			bgCopyGC;		/* $BGX7J%3%T!<MQ(B GC */
99     GC			charCopyGC;		/* $B%-%c%i%/%?%3%T!<MQ(B GC */
100     GC			handBorderGC;		/* $B;~7W$N?KIA2hMQ(B GC */
101     GC			handColorGC;
102     GC			secondHandGC;
103     Pixmap		shapeBitmap;		/* Shape $B%^%9%/%Q%?!<%s(B */
104     Pixmap		cbaseAndCharPixmap;	/* $B2<3(2hA|(B Pixmap */
105     Pixmap		timerDrawPixmap;	/* $B:G=*IA2h2hA|(B Pixmap */
106     AllocPixel		cbasePixels[PIXELS_8];	/* $B8=:_;HMQCf$N%T%/%;%k(B */
107     AllocPixel		charPixels[PIXELS_8];
108     int			numOfCbasePixels;	/* $B;HMQCf$N%T%/%;%k?t(B */
109     int			numOfCharPixels;
110     XtIntervalId	intervalId;		/* $B%$%s%?!<%P%k(B ID */
111     Boolean		isSqueezed;		/* $B2hA|05=L%U%i%0(B */
112 } EmiClockPart;
113 
114 typedef struct	_EmiClockRec {
115     CorePart		core;
116     EmiClockPart	emiclock;
117 } EmiClockRec;
118 
119 #endif	/* !_EMICLOCKP_H_ */
120