[comp.sys.mac.programmer] Think C 4.0.2 Color Object Programming - CPixMap.hqx

mkelly@geriatrix.cs.uoregon.edu (Michael A. Kelly) (04/14/91)

In article <1991Apr10.224811.3767@rodan.acs.syr.edu> jkchan@lynx.cat.syr.edu (J. K. Chan) writes:
>I started to program the object oriented stuff in Think C with
>color but found that Think C provides very little color class libraries.
>Could someone give me hints or pointers how to do color graphics in 
>object Think C?  Otherwise I think I have to redefine all the superclasses 


Here are two classes I wrote to handle PixMaps: CPixMap and CPixMapPane.  They
are based on the TCL classes CBitMap and CBitMapPane.  I have used them
successfully in several applications.  The only drawback is that CPixMap
requires 32-bit Quickdraw to allocate the PixMap data structure.  Some day
I'll get around to modifying it to work without 32bqd....

These are stuffed and binhexed.


(This file must be converted with BinHex 4.0)
:#d03DAK0BA!ZFfPd!&0*9#&6593K!!!!!"C'!!!!!+Ga8dP8)3!%!!!@4R*-BA8
"V!!!!"B!A`!##803DAK0BA!ZBf904%9',Q0i!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!#cF!!!!!!!!!!&4&@&4,38K-!3#MYSDhSq,X(J!!!!!
!!"Y[!!!!!!!!#V%!!#lF!!!!!!!!E`m[9!JF5,#J`B-)%bTFb,!"L#&3dZ"T%JD
1Lc%0'L6Bb$%"&64P3%5F@2%KQc"cjQK-S(&+&5K&T!aK%Q6+&"!p(Mi4SkE-'$S
D03jj!bH2R$4Rd0!"N5T'MK`a3$4*-`C0Q$*X3!4a!@)*9MCjZ'TPNr9S8MTc3-J
T-kH-($YPb,J)QX#+fcPThVJ"%F-&$,%Idk5&+`H[AK"[c$`F54'1fM*akU4CQhD
'M"CLdLb0)RR-'L*b`YbCkj!!SHR6U&-MI*'a`BJdEXD`U8-Q*)mME0k)#F2'"4S
IVQ(,TQel5"%jFYl)m3dmH1cCY8')J#LaX@m4V6-'9-fpZrH"$T-`VTKaBa)hQY2
`6U-RC"L4e8[Ul[Qcp2Ilq"HbEQ$R64SbLm8(K`ikL#FJ#L$Fm4mGD,!!!NK)+H9
JEA!`#%)+'Xf"KR*dE+3J'3cZd&%#!B&`aB*S)+EBH)l""J)F%Q%eadBUX*D!KKa
Z"1&C)RC8)K*P4,K8B[#4e1*H-1)K)idf9K@'("Y4'1+)*3UK'3K5TNJNJb'ab&'
0$Hb4%3KNJL#&6adQ)-BEGEK"aK`l1&6Q%e-F"f8#A0SCCjNJb%RQ&'A3FHC2#*U
`CTY[1JL$SJjqb+#$1bTeiCjPDS3%%fpiKL!+5)6K*KYPT!!#Ji*0UP%EBBaaKA*
X!*L6%dN`%5HH)0Q*%`K1P(((%D[+d@UKU+V++KN6PP&KJb!BbUDEFcJ)+a21aUS
S%kBQJ%39EZ5Q+3LFHNS'U++5QPB+XfU8KQ))jSNF##(Nj-BEYSUk"dFP&S((PHH
#`1Z`))cKk3P,L4(5''Z&38GF#B#j8E#pYRVVXl-QX"BGGFMKaUapd)@('@iem8C
d1FdKaaK$&99Z!QBS9mC3Z5fhPUXJT,`@bmUjF-CDCHb9Nm`V[p'b#f,-&P*1-*a
m4+$lqNT'SA1%!9I$a#EE0&a%P'%(95'4Ua'QRSdN)i)-$pZ#$h"`b'+eJ0+4p+m
JK+edY04URB!4+Y-X"i*"TlU'hG8+SEIG#0k"KQBpYebY%@Q3!$8S(B8HbQbMJaq
-0Y*3)cKe'9!lH(R99iq4pDcBDVZ'efc-!ADU8)pGYKadR+ee!aPRTeeqY0F1(JK
%#&Cf@b$XmB39-8Q4""&&a,j4lR2X(K+4ll&SRqh3IlGIIrm&D#5"b#Z2!SCLQSY
ZfkMcfbkZX9lBqdVC[p(@fNZ$,kc5e5EJYX1[aSSaAE#"G06"C'#[ZrTPf&k20P)
L++!N,@eJ5p21X,bpd1%0)*K$(H$J&YNF-'%fJThXCKHp$R,()8HMJa#@pDEb*1"
-&,2BU%!#!XH4!6CRH-a22(8'8+N)"-d6%&F#NjDec0!003a*EF`!'lDXK%X4C)p
lh05[0bMRK@i`@%MQN!#(14bX$6G%)S[Q!J)2HK%edr-2J+Kc24f%F)5)-Yd+bi"
'CPe))iZM%CIDq+BiG5pKFb4K@R+#!KA-M`bU-jZ!8M!f&m)T)l'6hADqb-L%1#4
YG*c$%m`#'a1QEBe0I#*XT*L@,E(`JBi"P4Q@-JEPZ-%Y@@5K)@mBKT9X%33ml*G
9J-J@6*C5Ne'8("@Y@!BXHV*,1RaH)iG*N!!`9Sq-M5%3*28i5D6!"N&SD1BCB1-
J1dM644LkdBCBTk0VALa$fdb605Rjc6[fmBq"C"f,#1N$3lV!,**D38kL58i3Y)"
EIJbIdY,CZN%@8SmZ%#8GCR91IED+Rq[mCaU"pJBk2"#,mJ6"1*fjPhX@p(d(*CX
JMF41Gi+5S2R%+#!eUNjrYK1J!Vd925N+8R55Y*mF95LcA!$+@dedQYr8i!BA5Fb
H2M*3@1#B($a@'dX'#T0d#)dEjL$8YRdX*(9S#i$%N!#(Ka!P$eC##f)S'"Skj'@
TL0P,$SdNc*i1djKMC*%bJ5T8SJB3Kd(Yf&2IU-dF*5!-F4hU8qeBRSh*&@4`EHY
H%ER""[$8V)d%)9[r@JB6S[!S9JX*%T2U+DDLXJecM@TF@PM9NQ&9-jhNUX'qfNQ
a&UNaC8AX&rH$)pCC,jPQA+aHDl1p-*9RBKAELepR@iBik954UL@Q3ca,K6HBd,-
Y"1fS)$M@aX3X19K%BT+`!Ml(r,*I&9Z,'jDb1MS!"L3V-30d&`H#8Vh(Kh5JS3e
GK-3aC$GRh1A3#G)bhDbJbM%SQ!1E4KB5p+D!"5[a&P,I3&lcbM#p3&b[!`HAPV1
KS$C@2(!+a)+U1Da"#QIBLf!#h#mfT!%1-!,LBkCjQ16jj&aTf#al@GLd"'C5$Qr
#B9U3!!MKTD!A`"Y*J`[+i!)(YGH*-1kNBX4efSU)*3MNSeD&,jcKYT@KXLXd'!M
H"B)bi)'b+j(0Kd-F`e*a9@B*P!ZC2![$8B9K$E@%`dNm"i+SPRQb5V@X(*aDe)e
B8@8!@R&)GZ[@mLi9`@bf`j28%c3HTcDi(86VDbY#)1+q!8(LI8-E&ZGM!U2*38[
'm&kb'FH%4AV5D*T9TeA``-@*1X1GqP3Cj)F5*THc2&)iJK$XCQHR&8ij4JX8h@E
Q-q8`cGCmNpZZEhfh&UjjElfHXpbfPUR4aDKdTa-T3J98,D&F0DYU0!'AS-!KIQ,
E35M)UR09)#S6Z,5l,-,a4XMdD8S[epemILUQ@khTq#@!6"S*AE0*TmCcEp5jbck
KV)F01+N"1pRfCNNLXh0B4(G`Z&Fe!R52HpAND[A61#bbBak)bIT@0j8$HqpfAm5
KlcCf)qe'8hR6FPidU6FN+bk9Jr9E-6Eled%#jY)4,If6P@FF[5rhXbe&(Pr@cIG
&crliJpPLBc40H#@CEV+"Y3cL-Uq&a(Xam4K3V1)&6c%-,VjPN!"P[-D9e2M!$Y)
aMhh-3V((q,VZ43jm5Fkk)bFCI"DZG`)VHd5V,)A+9UCXKlGFCLql"Faa%3ZC4Ca
H000hc9$&#q2"Za(+,V@TQ)h1R9mQG#6'1cU`XD+R!MhS-"5DL`jRT++4b@JGH&E
LNSEdH#rpEYT(IG0`401A8[i68HYHMM`I+"a4l5e3,BcH'HBV('90kaXG['@jTJ2
"NreVZ!4l9Y0['Gk1IAfkF-hC5S+fqe,h8YHGc,2BhT5i5d,ZC2QlT%CbN!#f3F*
YeRNEY1Uqph-PlHj5drlcC6"[HGGNFV0ZIC)!qYBecpC["M95k%CY!4GV3T!!IEj
QF0D(F!@i%Er&F+Rh43iK"'@!8k!K'M"N9%Xa36'M(&J5'JV#H-bPF@)a"EBfG()
hFZb$3dad"*b$03('4+L#CZ2(,qe&G2S#0DMAJ4kdHQUP!b!SJL`)3l9e4b(%2Y@
(1F-LIjYM09K6,Gr(Ep&'IJpS**1M0T86K'pcGkqcF+h4F%K)1`j4"'ibJLei"Sl
&&NFPA4bbA*Kd"f&399I#KfNK-$b$58d)'h*BCJQ8%Q(!3#X"L"%%Af*a*TXR@5a
QD`$#2NIBKY#MK!*#)(")"SF)4&&B(QP$K4&NDjPcLP5MK@`Q0`N)IPpMKKN9KJ$
R@fV)3CTS1cmPIA@6E#D)56ac-b684)CcAGfPKcaM0jQBLl6$L@@80K4BE&`5E-X
hDmNQ4b"K0mU(-Vhi-jbA%p1BE'2c-V15M-PQ-cLM-fYN0f0c-f@3!$2Pf)de%c4
e-$6V+)lY*$5qP3#&k!DKH!B#9)h4Q#lCL)'cmSRr'*!!X!-!!Je$8'Pi6@&`8'&
ZC5jM4LjMH!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"B!!""U!!!
!!!!!!!"849K85d&)6!%!SlD)4U1hmSJ!!!!!!!!,1`!!!!!!!!6$!!#V,J!!!!!
!!&EJ,e3)(%L`S-'$#"-UA-L`!BJK80,JD4)'$T3`EXUi'01J3B+2)"0339-'4-5
*&5pQI-JQc*`j(K0iR&)&5K%T3jJ%Q6)&4)q(+Yr)#G-QM%H23pl!b5-Rc4NdG%#
NLT%M4``36G+-341Q$"X339b!@1+964kaB0PmEIU8cK`3FXV-+52(6KNb,MU#B-L
hVpqr#&pd(*('c4JfGFL8&('%c4XaBGLi3#1L!@($L"@$%!&4)N@,'$95lYJJi-#
()*k!F!+L*a838N"83Idk5HV9)&k!)!+L5'X3Vf22(J)FK'h9V%&Jl9dFb@hH23N
+lQJDX2AVf!8k6(,bXmSb(6mQFC1'6TV)DI58$'25FmV3)"kV+61'MX2Xq2-cR'l
R64Sb#A5'%QJCkD!$Gqi4@!B+5&Q44KPhJ+3#4N9JpXBFGF6&!P*#C&K''(@--43
G(ddi44e`d'9('R-)Y@%#Fk!K&)NIKA(&Ih5Jm@+--i)8"K*P1!A9MM,+3@-#2eC
i'*%peQL&NQbm1%9kKCha""cQ[H%'NNK-U8H98P,TKT9BTU%PNPCi#DC(8Y"hj)4
#[&'('f6-mD+!RdNB4RF9[EK9'(+!T"L@D)#3!%)$Hb!9e&"&'FJG4N)4&3B+&&U
)SBBJK(&LLR@ak'*-)'9k)aNjXT!!+C!!3Y*KDT+BVITNUkHU1DDVXTk4`Jj(*5#
'R(5qp41F[0D*D`*`A&LHQ@j-jK-)ZmjCT`YXP'%'(F-@1mHa@VTJal,0pZS#(8S
0ke%DCS"!+Cp`q256%e8``83+)#6k8APcS,YX4RHJJ'G&YmC%,lSYq)$JJ*6'kH`
F!E-&&3JYC'T`V`&(1qf,)5@JR-2")Zc$VR5!f`E$'"mF-,K`Q$TSMSELH[(+)$M
%XR,NQJ[#[`N'A03B9`M&"KRUVTB%%iDkr2,+FG'4S4XU$khddXVjkaE!2Na4"Kd
2erN%@i89R((%dUSD-X3qN!$FE`*pJ1$9A2%kA@q#bqkCi,"pj!SLZ'fD%9H-baS
4""06&)&Vh06T*rMJ!cP%")[@PV6(%dp+)8854"3"q%H(cj&iI1@bKqjhpa(Z1Al
mq3IJ[JSD@(RL+"`UEm`Sd$`J##'XfqklDFrlG-dqR(lKJQ2(,9-#KC(8&"ehQBl
ilURr69Te+S#&'R'qpG56ED`GFA%6c,hQR'V3l6A3G+9p,[je$NP0"lVK*6"&LQ1
3!*X(#$Q@C+p,,EBI"[%mhe&HSCSRb,Rhi`XJAd,hR`"Y,M3'-Kqk''6!"+N!5HK
5hEKZplUIZ'e!1`K*3&ScYCQjB3jd`-JB5Q)(3*e($0'5N!"J!"Fq!ET3)3ij`Y6
3&j-f'8d1EXJ8A+4&Pc)BTL6JJKp*f[-kqVh"I[J$JIj3eVm"rHq&8$c)G%Mh30*
pad!b2&q#8SFSMa6YD+fMi'Ika8,Ql3BfcVZ#FA"M2H9JccIDHmj[T,1m+0UaF,X
CbKhLaELE2#jbNdX!%I5S``0QT(0hM#)"4fI)-TK1M`aX8he+"+J254"ij3VMfPi
AZpA-$Plb8TqE*%N(5X8P$+Bb!3T3S!,AIFCQBF#CcXJ3X')C+B)"keDG8V#U8il
YGm!6Bd8#PT5P'%%1EfL$+6r85fCkdPfpDd$F!!!##803DAK0BA!ZD'904%9',QK
i!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!,0`!!%k!!!!!!!!!!!&4
&@&4,38K-!3#MYSG#Sq,X+3!!!!!!!!8L!!!!!!!!!XB!!#,p!!!!!!!!%YF[9!J
F5,#J`B-)%bTFb,!"L#&3dZ"T%JD1#c30'L4)N!$%$CdbFXb%'9-'K*NhFN$339-
biX5+$pQ%Q60(B`+E3pl!b5-Rc4NdG%#NLT%M4``36G+-341Q$"X339b!@1+864k
T80NmlIQ6cK`3FXV-!@QR$"NA0KdbA-ZfV9Z%,c)f'%'QM*NdENTq3I)&SN5+F15
1`$Z'6Cfk)%3-H5*'6CNaG#k+N!!lKikF1T!!(lS%$%,(3mD1-qq4Qb#J3""*3$J
"-38%&DLU(i)S!U+f&GK58--@!S,*E0BJ"XDpQH$)&C4Xb%#a[,(0b10bNZr3D"b
jFZB*jS3T#edkG5*)`VJK`kE-4ZePLC5aSl6-p1aS80,CQ!#2'C!!6Gl8IDp4bK%
K1E'"dNBRK48J5[`4CjS+XMd4@fZ[j9D&E+qPjZ"U,i"!a'm3JL!KKETG'*a!FG9
QiSNSTUMLLL!iC+)GEk4"aNC*E&B4#L$-%CmF3GdKidSXj,KM8#cj"&53!%Z&N9*
GF+`%3JV[`5MM4N5N-3FFEib&Sj4N2*QJ4J[#0S4XY,A@@QUV(6'L#L@bk1DE+,T
B'jFE(9%'(8+m8FGiFq!Sa@0"UE"5'ARZ5FCA8'T%C`*6h&NSRdp`K4H11XS(!KU
4qS4AN!#9mJL#(CQHJCHALXBi)k0hBR'I(2R94HQ3!##%S5TqqT@8+(cbeCRUUUf
@XD@TT")(jN#k03'EQV690UD$8)#3!)9ZDDlC*Tc8XLMRTkCZP0019,cK*k$"Q5(
('fhm#9Q3!1B'5XFEkD*lKK[KM9FH#-l0XBB8l`Dlk,Cj'$&Z'ppQTS+ij,EV)EL
#XJZSZr#+4ej*pGkElkdD$AYDXlR4eQ`3(N),JTV#A9[Yb#CHZkJ3CBMU"K&bK1'
M'fIm+U1qf5C3a(JXZiaAc0M1I1ZLMG*K"%TP(#L(RrmC(GbJ5LHD84ml!!!#$80
3DAK0BA"3B@jP,QK',QKi!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3DJ!!!!!!!!!!!!!!!&4&@&4,38K-!3#MYSJiSlIbPJ!!!!!!!!2J!!!!!!!!!MB
!!'j*!!!!!!!!edX[9!JF5,#J`B-)%bTFb,!"L#&3dZ"T%JB1P$"ZbVK!dk""JJ4
*h0!T)mG-Q$&P3*Kj)`F%(63T)dkXH$(M3cCKjXcak$("N!!hF2,)5A-'$4d3U@,
Nb"%$4*-dBp#%+F-'4"!A)*C3CC-(Ue8f9BF@T6-(K*`bFdMD+82'48q($12+R8X
Ai3Z($8D3!#PM*Sh0,dLq3*4)d5,'-Ke(q"h$TXjH%#)JBQ3CTNfBM5)qDJi))Z6
)NLG6VQbCKLb)1AAJN!"NR(214a9h&EYKl$KPC*Q&-AHF3dG1R6&("mmdE&2(`jU
8,B2Bmj(c%*`k34!T`eT1'$TThVM4R!"f6ql0"ACf`aXM5K"@`J`0)iB0@K!#lrV
%AI&ek6RdiHcS#(kcq*!!jFf@8K0P[23''@A&peer!DR`N!"f[If'RAB[6-HEEm"
Pj`CmhL9JaaYTN!$a84,je93'#N0BN8BCGm#(84'cXI%'DQHam*!!%(@F&FC[eKf
P3KK6T+C@'R1`a-+#QXf""NY(KA&&L#rCU#56))5"4"P%'A9NI`P-+8H65-$)Q*4
,IPQP&@+bX@9r8k5KKepR2!((K"YDfHDEETaKije`bNRRQAcQZ5Ci8P$RBaK#[&'
('`MD+&aK,ZCRBe6UJE$AR'L!N!$#IKk#+')#4"!*ai`RIKMLTMaa'Ck$3Bb"NNj
`FLLIUCp18@"q+1BA+@%9S6SIVh#SN!$!%EF#L`+Y[L,*AB25@AG(V!Tf'Z*(4$L
,3U(!ZDJMURhX!,-D!!!:



-- 
_____________________________________________________________________________
Michael A. Kelly                                   America Online: Michael792
mkelly@cs.uoregon.edu                                  Compu$erve: 73567,1651
_____________________________________________________________________________