From 8125331958c6eaf2d7f7ac156bfeca4aace95231 Mon Sep 17 00:00:00 2001 From: nick Date: Tue, 5 Feb 2008 01:12:01 +0000 Subject: [PATCH] Xcowsay git-svn-id: http://svn.nickg.me.uk/work/xcowsay@265 a97b1542-0b21-0410-a459-e47997c36f34 --- Makefile | 18 ++++ cow.svg | 223 ++++++++++++++++++++++++++++++++++++++++++++++++++ cow_large.png | Bin 0 -> 24521 bytes cow_med.png | Bin 0 -> 15008 bytes cow_small.png | Bin 0 -> 9583 bytes xcowsay.c | 127 ++++++++++++++++++++++++++++ 6 files changed, 368 insertions(+) create mode 100644 Makefile create mode 100644 cow.svg create mode 100644 cow_large.png create mode 100644 cow_med.png create mode 100644 cow_small.png create mode 100644 xcowsay.c diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..17bfa78 --- /dev/null +++ b/Makefile @@ -0,0 +1,18 @@ +APPS:=xcowsay +OBJS:=xcowsay.o +HEADERS:= + +CFLAGS:=-Wall -g `pkg-config --cflags gtk+-2.0` +LDFLAGS:=`pkg-config --libs gtk+-2.0` +LIBS:= + +all: $(APPS) + +xcowsay: $(OBJS) + cc $(LDFLAGS) -o $@ $(OBJS) $(LIBS) + +%.o: %.c $(HEADERS) + cc $(CFLAGS) -c $< + +clean: + rm -f $(BIN) $(OBJS) diff --git a/cow.svg b/cow.svg new file mode 100644 index 0000000..0f6479e --- /dev/null +++ b/cow.svg @@ -0,0 +1,223 @@ + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cow_large.png b/cow_large.png new file mode 100644 index 0000000000000000000000000000000000000000..ed19e66294ae261147126074d011581ec2db54fb GIT binary patch literal 24521 zcmYg&1yogA7w!>B2?1$o5Ky|L6_l2c20`tT0lCLP`ah1MY^QBB;P#u ze{YO;$GBJJ%3<%d*P8RIxkH~T$>83ixP?F?ABIG0`)LkbxQ{D6w|6O;^R(r)~S;V~Oi?5IjVIx0}xc9V*E~dVtpNsb` zgHc2bJ}(*HaW?mHIpc46sgD(!^u?12=U129vuF3%U4%~3-fVk4ringjW!n}?zjU5S zU%n)urN>8=z(;MBrRP9-@NiA#Gd(S)AFV0f>XS_Tl9xZwWumDAM@H0HSXkb*v^-&9 zV++X2qA&aQ4b8>Hg-q0yi_dzjXx&b3E=OFPS_D3*Iorj1XGToWX%+wCXx!lahYzZa z!TGu9X=!O?rauYGs;ilIQUg-qhZyRP^z`%??ab8UE3Gf>uJA0 zY|@siBawpr<^KGGb3~g)_7L@+?A*zG1A3hlFEwtNToH`^m40dgTV6&Ju$zhV zptrHHnd?s#8O)HlN$5iGJoCS`Ti+kLiGtGf^JgfrO6h6d>G2;sUrLq#KHv$Dgbd`80sStDXt-;7^a@n4mH+>Qr5ivJY?_p?WCbgjd z2Lqq@20WEecO4ya_!)S@POD8iDj0~a-rfKL2I;Z}K5^vo=-#Z#lV-6ye^*l@xH^=B z&8Az0BQGy6n7+HZYH|ASZ~Eg;wzOCNxeHiNBt%P+k=tN%)28d^&-{zZh4iDNqvp|3 zVm5YmYbu&N3*y;l294fgMLLy1q<;FuFJHcNJ>DcwOiotSy$6r0{mwpYp^(VP!1I%x z)_RYVxvR_b-QD@8F%KWK+w0dH0fB+d?ct>J$j@5+#lXVKYO*ACc6K(mu%LSX@a1=> z8)9N&gzjioGNc@O@93Te?e;$_jS369)z;P~{-??|U+hEK9n|YKQD$ZgrSwO*ol#W& zZ~pfG+#>r>Q1C!dSXlE`{ijd5?T5^vqPPDHr;4~_z?OZVkihKVvAehDOC|Ewo?h+p z>+G$1D@AN(wHTUJ)~{i#H9a=OORb;b zU}EOwQ}1n0|H#Y9X?ORy3zg+t=`}gOHxCcV_#o%Y?*UZ8PS05+N`EHvTL&Hd9q0@Q zKqYh&s;aE0;GyI)d^d75UTLn(#>v?^d3rGLSjW!9%E~J7<40-Ruz=Kv2r7x_=;%%f zfAsrx8RMp}U%z(Uos(dD@POVo!9iEI#y)f8D5tbEnp3~7=?tpRjSXAt;atU$kFpa# zyOvm2^Yils&AN$TGiu1Ilv+hn@VB@ftjsTVM*j>?knj+JYR7PNxKY}e#S#}EZ*+Zi zsbi}KOE(f^p(QHOWp1LUuTO0=RYQP+f|8Mu@lHOMLd@eBm4=39cXt<|sHiw;&usQ7 zJT%nz_4IcMBcn|9+q~S|zFMXFz8^n+l=XQmB63&Qc^x%0G_;6VTtPvhy+bj_R>TPl zN21IA9Xl(lKNQ5Ws;VH3Ld}@G@s`m-Eu*O#2gBE|@nEfjnU&Mj*=4@xNk=?9nQz4) zduWq5l7)wu+t^^O$h(Q)vzfqu^7N^MfkFDWCll3nv*t8o-Q$E7lVK4GOvBrmnVA;W z)`f>^+qCUL#ZQCrj2s-e6^Fwoj^&>{D|gwMiHK`VOQU}E>QxqFKtMp**z06IOFuI+ zGx=%FJl^*)+-$2*nj{1S1PIN8iY$k7Yu;|X=&bZ6}wKhZ2qpK6Bd4vg^^!a_!Rn2hV7p!LrY7nzE1+dD}A5*b8_zS z*-jEY^1i^_+uOq@CB-N&FGv0Ye@cm_;p7x{*~Wp#gK_(I^twwIc3eKYQmXK`_4=iu zP(N`5{4GOsbLOK;{YGzG+sUuKP&I2w!t(R)XXoZV(AA}d+GmM+d3ku zg4(@MvpB=&`f9Mz#|KWkvaL(%xExf2w)S?77dAF*qTUyYCnwg=!s6qJPyhY%t*&-C zqWX;@Wf!egqIUyYddI7dyZ>EIlFL{dg|>zeE5)I*7H&R{^nO{d1Q769*LmFA)KqjE9v%XL&X+&l z;zDI+-ET6sv<&S@;OuN`lQaznG;*;R{djPA_|9E^t86}$()|2T*g);KX&$i@H1U$~ zR25iSSjc*|6?0r%UM|m|=PISjwU1De2m>_ z(uoJHQX`<5nm~nV{DNB8N%qy2;!HUeA0JnY|Q;12}l%WGuz-*?=Q315xI9V z>mwsY`{)t%<>lqCU%yn0&>EaK#*m-f;IZSnJtdUXhSk;66RUH63kN68!;6`j`F|gj zM@mFAmn9W0nY@s~XQ`@aU304$_ROz=f#`Te<^3|)a`OPKPFZ$CLLveqi>&~u@z|;X z%8=pb=dT?*INBJOgDM#J`&pyoa+s`0gsrXZ-mK5Hlvzf0HmY)}aA0c??o(%H=fFFs z(0xsuocPjFsXu3BnW~aN>EN+b-ftK?YVy5_Jk{MS>%V{hhTb;fE^uODX*s_>T4?<} zPV&C2vT|p!ZgtpK$!6v|n5cqpHz$&#=p8HS@n{~U?D1Gklx6Bo9_=(mdP1o_8ekStdFN7NP0Gy=SXI z{M^VM(9|UEda#09^y1qs=oGH0=_fn0ttmopn#RURU^VslNkmvlZ8j&rVMF~U_j!#= zy4pn~BO_B=UkHmRFT5WkAd}lf?XIaw!T}f+cEQHwcL9F>cI)wyn2kPsfW|e};~ZbV zebd0a4M+BvKQ-vRu18gMb%I<&6qN|m_*>+5?J4e;j;2;r+cPx{qhD=rZ?ADXc*V!V zQ&4?SSWvJ4B}Rx8MN_UOltn3oZij$*wWI{(f0QJ`}Z9S z3u(MheUXiPCyRsV7P7cZWJzJi2sacLvv0jkV1NeG4Cv$Fky3q02?r1tlJKywCAw{% zACm1*YU1Ax0<;qDRI=VgRk;>EgZ`KaC4=i#FPZD!f>i2bRX|8WZ&t(s_RTN%B&dfu zwg9RDzCp{)O#q87{_I(J!oRM8fnX?uzV-EDfH%FyNXTE$+OLn?Pg?ryak5<$mtHsa z8%~F1BwT3p@HP~rHb9yo7sPf}R$(R`5fT6ZQ4wD&DxPFMm)+*WuJimy2n4I|eC?m_ zO^gL7*k;^f(RQ;9@xN7`3GPk&RGb$>|ex*0b z-G>DqGehl*();xE+kmx#0OuhPuK)J$T>$Y=uV5Rjb9;k{h2?u!;I;S{rBv5X(Us-{ ze*XS9*>oyU0f0T)tIAnETpOk(x<%Y=BEZA*;h#v*Z5q4>59A*>Ed7hw>w9{Ay2o&J zIINrp(0pv%<0WY_)X(uH2Li_#(`uh=9H9_?t2Wm#jxp%M)%;sn!Y#&j#o075dXS2JKxohba)$jm+#xH$!55V z`RN}n#$wqehI|^K5fK6J-XR`1e}sDJOU$a-1c<@#;&hJ|AJa7{8o3_uw2e9<$lu4r z?CE?WaSm%V{uyG)#>S@2dRIre-NW6zn|~E=92%`4`>NecoiFULr|FNppbYD0(>%Mw zzTHXVL-bE9z^1&c?A=WaJaGWFP8(y932v~f@rj5~A3l7DPez6b?Io+Ekpa>4GnU!x zMT3nIFg_6#H5K2ThVzmI1GMf57ukt_tnNqT=?55aQp#TSQ2@sdgmM&e*c!&^WGR{g z&lO1}%?Q88zK?*SEg>n13TR9GV5QG3DY&;+A(7vj#A$Papv0h&x&uVEb@H3FgtBsUf*Szp8#T4H z%{2~-P^fa0b}ol}(BYBSSw>o# ze*N9{?{Bxlc+LCU;Q5)ru~YQW5=#n$VNd0+CqN*4jZvkdg~+J%h()4CZA0BSF-3(EXhkQ*dWQ&V#Q zPyx5BoR7f?h)49zih`nyu3*gU)RZ1zluT_c)mx}2>RMU}YfZ0#1BsckG;?Qt{#*`d zyzY*(ulPH)T!nmIyRFG@v7s5IdbNa=m6bZh)ry}U{>;`JND=ycn5ERxFCpP`dB(4l zCaS|!{`JpSOMhQq-^BFvfvP4g$GN5(eEj^yF8HR_2z_81`OLQk9TrfltVY8~vyeY? zhuyEXwl>21D+L9`LV-r1HtFFlQBhGcPAw0Q^MZbCXfWq~R{-Tx9{W79vb6l^X~@mP z({k_GM?*))iaNB055TQI7ZzIATLN;tU+7;3On0Wn!9Ok*gNT%L@w@ZJ(oirXH#nFfPYD1;dB?`#E+YX5rxdXA^73}{oIoZ2VtIOkNLiRFhRy zG^@{|q@<)}Vv^1uXqT6llfyz1`>d?2xn_Ti=i1tsKpUQGYNF@l<6J6uyklI}vSQpa4%v*Rsnk++)&YisM6t1IZvhRfaYs$0V80(R7= zXJ>vO;(VEuR8{@ZwM_c}SjsNcqOi{;C^OZ=68b3m-1f{oITWoHZ@@47L@uH(8J zud-NWH_I_}xe6@AImpMX6^O*odnCSqLE(~VL0T|Q;CT5Q_R|8t#ofDiDS2PvprfK1 zs;kFoufg%JdGl9^kBiIj+jL@L;s}v`l|Ec2>#uVPeyadzr0uZV`m18#iE+K?sCPeV zfqVH-t)#ZM8Rl+jd7neKDk9cJ6*@N!6rP^}uxYj?`2kE5u3c(sYSPcZutsJPex?msauj?r;aRaMn~qRgnsHmaw$m*|IRPj~lo0|SH2 z<67@acPNDnU;fCes1PvFYyqVgv>eJ#)|U`|+QQ+Z;scV++wG~OgS(y$7yHlZyf42q zrsjTFS~8^+d0W)AvpJG~XTy5k`8R+Zx%R@)l?t<-G62_(rPx|pTJXg$T{ODz&|-D} z0MIJT-wEl3_SQ~#nC^3xbl|7o3{WwrA727Z6H9LXc-Pv$Sot*1}7UmLpDk>CLjIvkLmNp?!L&2QDe$@Ptmk9Sb12=?IK z3C<kNYu{iPNp>*@`Nm5{_5Bi7Ja8ATd~lNi<`3_w*o% zLN?Fn__z!_bijgf8jb*V8Sfkcl}v%tQCjz_z@XdP+k13;%c|ELGzyNF-_^6G2R>{k zzWTGdwH3cIbG)!%tXJpCZTGYq%A(VoH?2^j$H`LeF*2gweQ3in-sf;MzrB6+GkHH( z@slg-D)A=l#O(8VkVx4EcuxTJXL+mvndOAtNCPLKcF5o={1Fz^lFfw7A|nG(-rzJq%84ho2wH zO!a5@FCdW8Z=%yvQ@f!0YU}IwOYg&tu9G-}00pAfvdvQA8AtSQ(3Y8R>c4cm1pX-K zrl*{?Q5)uYu?6c}XVaOLTwc!IpZ>UU;R7QJ=tw}XMr-Nb=l3}{t7vKl!N+J|N|YKx z*-wwp2?|12O60n+GyS78-tUA>ha_jy&$d|_HpI0iKLE*eUUA)~pFwhB9F(WckF|zZqS@9Ydt9+KOJA7d^ajIsn5A~JX3^LJx%H z^ml#=a`N)^Bc)_MEM6Yi=Di`Ovn85O*%UC}rcpt1N+WfA_(e@7n2^Ad!L+jCJ5C@<$Bf0zN z$jB0p;kVb*6r2VPY*q}?ZP#z5eGd8r_~yoquXVpH^Giudt*)#{AL+Et!~z8Vh3iAO zP5K-mI}tB|ql1D8PutJVFxoA68`JI zVy#lK@@k&@|1^;XIimga)YXB)Du;CZhl?G>h*X|IL)&^uDBzaoVqr$ms|Bq_SnBNO zQEml3QI$aZWTsvHnhJEtg|C*w1)aBPjkNew9(!NZNIJ|YDkv1ttl?W0(Cjr@7%)gj zymw`90QyBnMyBnxOW^j(cy%z7?>+13w-Nw^#=!`tbH2Q8q#|+eUZ8r+Ur=;1D=QC} zkD%*?L!0=UdZN_A?$`DDcZF0|moD^(Q)rTMcO~zEv|?-^CS=?el8k;gW`>pM7CBaR zzQS0}Gg5uLS65e8>OMG|xwC))?=vXh2f_>F=yOnzbTKa!256(-XEpeVb?*I-*9?644^*DXchKh0-3gc?mL^rX8>4O|L)=pk^2Q+X<%lOIaN zmK{ip3=a>NLz5-6Q!jk`JD~R?CY1wQv4vM%ya4^qV2uV^W(|=rOW& ziT!l^ee?NNU7qB??`k`mz|i=iQ=&{Z28O34M_!u~<=rl`^&X^u`%}Ynb93to3|LuN zMP0Tjk*m$Y(E)6emxQ;iwe@MrVk_gOP3RfOAjnQisId=QaH7C8UkVD!hOx3-jMr-n zJj%H~S{ES9wI3rvKkx?mGL|ncAz=~BFZ-cvx%9R>e;4>W8X6i#A5UUYJDhC4bh5WM ztg{7PQtbYN$>{HgJcC+Cw4=jA#)7FB1{ux9y-7A6lA+WS}{zx6Ijh(9qE6cQEf2&Ym(NN=izK;#6M#B4q^=stt@3@3*_m)@TE!u`!Oczxm(&N$5SK3r7^{gP?ko7h}f8992ey|yOj*P9{c zwjUtip9WH^^^c$Jzg(Iy&T(x!qhMuyl#=AX!vl1a0 zbJ%4i03~Y%$J@=#ttep}bnJWb9)RpcG_e@5xyA>Nk^;k{r`>i+(m-UwP#36Hrk_ z>g(&Prmk}F@nzeWiT>?~yqof4NBreWDxfB<$(k%Lr%qtcJyTaf@kO|7PBdGq4D|O) z1A-+qCZE_}?s4NMi=yBUyR)ph^;Cymzriz<_f@YrcogLWbd6r;ALC-aEdBip#el}# zoaWotue-qWiY$VLLcTv|i4)xZ0kwX6wlTdl3oqn4m7H48o;I{BViUZfItn5nZGA}< z*dY5dDuax=y0M|VgOva^cmaBw9J$+ePBn0#gGE0Oaik?ByIzXKt?-cA+1Z7DQ7@40 zTd*cCb9k+z(>pd+v2k#v32!(U`%8tD~d@S+hOA zB1P1V=kwo=*+!q}XCK)lyu7@isoc}AbB!TVX%2~qFy)`|%^L${$rEtP)K|$&srtM; z%*L~I*3bu8My)}vU@Xjpp8;Uf5u42JVglhoEJqjMNv)y`90Q~(DSeO>6XOdmNVXr3 zB#WeiLNCY^cXroD6B3hjSjOK1-DPL@iT;0CfY*EvAFdp_8W|b+BGs{9M1jOdb#)IF>Kp)q&uwL`@YD6~**z32VHhz9ovvg}y0F z864U^LDyZ0i^~%WHcrxRQ7RCt1wJhw*SvvL^O-uM8|mt72vsw%DnTVu<-EapFgqEMBQ5Q zonXD2fX*5Mn9In|m&1+voFbBd`80^qucG3+bGFxcE-0Ib)!&u1y~Ds$F<>i$(I}?$ z@%Ko+n$dX4OP*0uVl*ogOvL-NG(7N*Kgy15ZEnuNCa)uPM!W-+C?>B56KFk>Pwz-k zA;i_x?tt1QK|80Z1`X#O8aBy0C{>$(s&5B8q2m{gib>MJ{47mXtTl22k@a~vL#y<0 zQ|lt9tbBKz<@d=dTWkUX0xq|GQ>Bl8pxD!KaqY(LB?r{waX(X33``UAc;e*rb>j9a z&>=nWD|-9-{;{pc8x%EO9^Z`=<;j2@k558^4g$)p*e~z_tstxjB~^`=8nnWu%m7e< zPfe|a`~Ko4)wfBrKSK2~52dlR5YV7IcR%nVmjyHY(mv)%b`wjb~8QQZM({>ma zF>DGzTkk-DZ2{`u?kx^31sxwB(c#h2KaO?nc@;RjNz&9oYvZLf0YO22;3T#zvkM52 z09$9NdYZ|w>qPv{hIx4P1E{8`Uao! zU0fWIQhYj~WT1B#$-tOvws)sZ{+DQY8ci+6NO*MPCVCSbC}QamplEVg9IzG0GRnYf zL=ty!TrmC)lhe@L2CKyXRbO&5F!6cl`XhomSv56!1+!6Pd!#ACN7^fEP7V&fpkX`( z9wnsVy|%W-Wi!DAlDFZ-Z%>l9s0gsHZ-Ap1+Ry=d!dzDjgNDFg%+u*#VMfhgRj#ps^ai>kwOFo zq1WI^9)w4A3)%@G?nDBoK@ifn3iyJDI6dCdEh{gN$rBA3;O6D^2N3fvJUo18`4Sd- z5I~PjL)%^cGl3 zLA8(Hzkj#CzVd?4Hj<1zT`31SGl|#SaCfemFkIW-zU)b;Fal{q$c~U_0VhD7+Z-Zi z1OoaV&~FTgU(Bq)wj+ONGl9Uv!y7C&kvRnjHV2G*q=wvdFk>u2jFp=kTeJB4gX*u) ztYX!egZB>(nt?0;$|G~5P7k2EfdFw3>DfM4S7-e76q(ck?xV$`0-fn0rJ(&gX^Q&* zLW7~w*LeQp0smD!zb6Zt^X|BTk1w>QodZX>3FJf7*4A!<9XSunn$yvbV377~UOhlT zdHuxm!lO3FXRJu4%=XX2{y1|mv_LCgiYwNf7AS8;-CxN!D=q{Bk*XX4i7-8%apmI!pLM8b8{<_ z+(X|oAK%lnMLg~4Z!kfO0H&qf9|jv6tv^kS^;^w>kqkZx0{RXb;0@-zr=YT7!okq0 zkvNB%Xb)-?g&AX8R~P0(yBQpK*x4<4z5v_AA>*K->{rcaH$w?172E6VP^CZ^2ipTB zGgF!N;W1TW^1AP5lRNfKHn*ap6f+b*NvnEn-KNRq{W#XuWeOPz?L@9-mDkIQ8ynam zn6q9dRLqp$Lhmp?fzVTX5uN-(fTPy|B?_Vl1W?T)ZMwauQ2UUIvf-;&xw13DXrE(H zpkX3c8YvEf+M6f7j!b(Y%?l93>lChm6&b=F)KG3_5&ivJip$d#^WuD`@Wr*#cnQ+t zLfAWSC#+IoVbOrKF3!Sft|WtwV}WKq5S8HJW(#Qw0I6-E-_JphoQIM`9F^CC>0y?& zGLU{7)Pawu5`b_x3>t7iUQ=a+&{Gp+M#?HH8Ab_if=iPq=JAkCzm5z9IY~5nbg(Mt z*4FOtU6DL2`}#Eibf{DK-1veL`DcNH)jN-B-WFfI+(5Yjd&bu2@~mO7NatqxEWh21 z&_qRGtR2Zvry1uIv4D5T>=n+&doJxN(Ea=gKqGDZJ8p6T%3do}Sr+(5HY& zJjl+wDLxvG8sg5y#f5nM__3_KJc^Hx51}&_8IUFrcBv^I+H{20ErD+6iQJt4BJT?f9H*o@XM0XLJ$8Ovzr}5`l|E+yyj^Ys;@y2eFtieeHNZp zk@gJ$3m=5OQXWnaAeuTmG2ZUXu#fsfADD-z7;(%pk);FG!Tx^J)D)%Tn>TU}>rL(L zXmGJj!^5%0;k=R%9l#;udRO^(3Xlb@pdi`V$xi84=cVn2+Z+bo_kY=$_pPIXm5Jg| z#gHm=K-6%y&SkPj!`(s>MMKjk|GVDnoFpYRm5!f3{>UAPs$i$f*mTBOQ;TSN^2@OT zUthNeRXni1=O5B3UjJrjYKjWD^Ic*hS&j1si9(ual4Pm`B^4Fj!-pgwbT!v5+Jm1H z1dKd~GAv9f3IBgE$}Y;{Utdi3-D_$=ziJe z=n+B-0jB~TLJ-_Mk-vbNmNz<`&J|ye|Er2^QE%?=$Ais<3W&oW$lp^#Ls~&0A(iH? z5I`EpKOs|NfY^1Eqibu006)!^nGaA;;$RJRI?R6Cc;xC4?Dw4I`**u(Vf={5q<`;7 z{?=Dyfa6#Os_@u`3JZ~Dq#dVYroGt%>Kh19X){bZqjmuf=2MRq>k1$PGJyh_7Qr9( zz#rE*!DXQ;C@6q<7dEI*{_s?rKrYV&u#;WIMhNI4oRkxY1Zr)g2lSNP9?r(yS6c>; zXoNq}@@t&Q#@%5OglI*pRN6AZD!Y8H*M@QIU1l+U{-nt{<@y!8v;soFcRTZvTQh;Z@q69YEka5xluG{3%n3qp1oD#^imAo4>Rgicgck4c39 zq}$t#S7)qb6cnmPjqJoKy?f-wB`U3Re4`IN1o`4UCY+91_c!?2f ztE;akcbki6)gt1y*)(6SvK(fDNTIJPjy!|}&^S3cDN^H+DQZZ;5W)T>h4YLGi9$cX zEZ{jX5=RAO=PdgcZ`r+%ZB5}FthU33AeF9knuaD5Y=0-$113Q5iWzQiyxV9DJ>(mp zbl8K2Abb=>Y^1EHi00wp(beDo@yrN`?;c-YsLj_qBgAjtMtY0^a1|i%a9Iq}!d1Kn z8scA7^^olDT{Rhvsyqd-B5>_%-y93L~4xt6n<40s%}q&`YSMbUiPM?y@j5qarng9UIJY{DlHHe?6{ zS*5G?Q;z9R01$CZrLet-Gw)#e8NOTY@pv-Z(3`^dYfSSC3fenJBKQHPu->_S>lRAp z^RDF1D8%(kLb~pUUMh)vmV{1QlNy$F&hM@t65YqO>~kdq3yopnp+v zYZ=V6&34Cg+q_l=wo#~G_`n4c=$&Cu51T-UL3Y>}3;;cP_c5*@6o8DKXG6A=IEv~n z+N`Gu^B%8)f>SR3k+bPn&VZ;l5Oiwg^e(Cs2bdnPAe+^6pym9(|K9~J^R z!AO#TpC>)*X!(#6UWYj@Czu>O_DkJ@P!I z)ry9v49OX?KYjIZ0&=F+a}-1tY;9~TzS0tEdTM@cc#A(%RYl_&VaI$N6`E z6tH4&0HxqQcz{ySw*I6bt0j3{-%PlHkYDGae(pkYVSc`b7;j!&F$9TePiKQqw*Fu| zzB*-KWM&>ebpdT56OOf`vhMZO7@SpB@P=`XO=cx*Hbs!XedNi4@bI`p_UHmTe{4D4 z7r3Z+I0^e4WYuBkX|6NS^Vo)j)Ii|lVm3Ux3b?Zgu{ahkL^t}h-5h^I5q*c6X#r`Y z%=&t-`Yi()84U2y@|s-3p!KjWzEV{kVm@Pu%|DHciz|>B%5DKBpjo1qKQi;3$8B?| z_)b_G=*dleeYk+hSY1zdjp}_GA%R@(N)vFgcYIt@!e$1|g?Y13s{JBQ73ZF3Qqf+`RRra%n~0Dqo)ACgkf z5+B+o4|!}Lzxg&OxY*#RK;j%Dv{btR(i?3Z9jZqAaXOW+eqN@+o;#NeCO?`WAn^3^ z^34~SfqXvZ`a02a2rPGvB1HQyc3W?Q(u4~>SpcNH^V4MXMSRvkj2?ae*AW@`NuN6I zh(jI#a2d#d@YaD@#06>X{V_QxCY7)-O{I-jw*a~LL3l+RvcC)imym0v6A(zamH4GM zO-y%t$MbNNV6g=c8NTuS=h#6gWH%!^=C^TY6A46*kB`;yQU6Lv3VNP$O-xSurKcN2 z{%XvoV`aq#ye5OzrzRamdH;l~QUM#P3Ak*y`t|PZvM7-ELI#YMinW?ydS?DW&~}pV zERjKQ0MvS9Y`!CkiglQ`2fRfy8-;sI;b1F9fc82|Ei!D704B%{U{F?68W!N9J^8Er z@?~oL8mk|EJPc*5f~W(q=r%~LoChbw#Kg^T`t#@9%4b*_6TfM_vbdLaOtl%wltnvRYRpO{!GzUis^ z@g^1oHyk|-h>c|OXV3PRpCO%QvS(8uVXaMlCv@MmnXy#BcP@8Wlt#|`n0)bS+fTta zy1MwMjwRYQIEW8bnYsETCpY(rl2X(NH7pHsumluAayg`J2fQ%4?uY^qo7ufAf;-MH zW`if8%VYvwSO1C1tW#l%Rah+#I&f3DNoO9tE2i%7o~qj>^g0v1i+NCZn@2|CUOdIc zL`AXqm4&u5^iod`2lVi7R}jEIZ-pDn_rvOk@GutWh()V!3dxOMG z8mP!w2aLS@{GVH1#1dAF#}n6}B~fs?CgdU-P8YDPu#PY@vkWaPFd@kp1k$}~JK@r| z@Fu`Dv{0cR_{)Iw?O$2R%L$UkyS-=2_nAB|Yiep(Bp)FqN3f^{a~1CvsQcBuCHUFj zj}8iW0cINAfb(&fxE!I|CX$yxhvNB2#=yV;(p(0~^V=XO*A28*&w67cXQ5zQss$o{ z=1)KXHvwa*lZzr{nUoWtfMh?c>-~VstG00yaDhey%EAE;G6I66Colj&13uYvGx+Xj zU4CfTwD<3aKJaH26cn`ApMb~+Fmptu7L__;L>H z7bIu}Q4{8eI+MJSY1&%-eU&@6sYTyGQ1Q9Ryx@LvSSh9mhrBE$Dq`ZR<()-?AP9LD zk6;wI|DrTOG(ira8RWO6tNn_K3gxS5U?hN~BBy?@ntiVNJp!BFJE{A!trTAE#jfGGLlx7eqPLr>c(8^-m_y=mP@U zp;v<2AFN zi6MW;vR=8c8&U;@gh0%s>Dp~O;x`Psu~OeQH719E>D`ABd&2nxkPm%No1FSE?DUkfnP+WTd6; zK!5wO9Img0H^01Zi-4u(op!v0$zQM^TEW`#@^YPr{DMXe3*w{=jCK#H1KrAwX9W|J*#%%BC=m&>M0#f4}YY$*R z5W=#p%8xG@52C{%gn|Ui8*W#-^EX}H-M!z21wQvQ65!&>Q-gA32!YIq#>6`36*4}H z_fy9BT4wN}>Zg)9TAMJ}2=#-@>&&SJpab)8t<~rQGJY!}_^0bo?8n=!1M<~0&9Qwz?$Y6}3w%7n zThZ0ct=xM#GfT0vlK)7?Figq`?#zhz7M#98|NNeS665fuNVCU?T3cI(P%p zSr9e7ua?^c2rz%|L1?GGn^ci#RL$D@dRA#EXYQ9TvDN)$+ZIBQ(q-+Bj=KwA8+otu3X*+1#pYsS_1z3< z{3YeVK|%k`0$#aWKx7ap*aA91Lk{~viySt;+iGE9(FBqD<*ON_NR5M&ee1a)atN}& zzaKeC1cp$=lj&-n(=EQ$YCl-m=yix2R8{OWh6zGbyi@%^LRCYmw<`tMIS2w_ezgPnsBYCW%3!?Mm-p89dnxZ$LwtK>mf>#(TKIozV&qKHVRBMs#)N%ZP zDHDYr-UknEjgF2A#b^O=?CtN*mF_15sFz@Q2@_#j>zn5Edvnb<^Pfb4V1N&hQ*LmX zWfQ_;6HwPR(ZgZ$sYPqxOF-I2P*_Oleqe@{Hh=;%{VIrdEGT%NLpa9yCNG@~vRfyO zZGn+sMFiIjV>%?~zF;htuul?Tm8QJyL>dv_nir5Rfqst(Jw1IHcy{vlRyEjR_G`sV z)U*q~f5`<_+!43>*+no+=qYR*fj7#JeGVl|^3g&rff_pdHJAbw?hZ;CaccX(KB#Vi%*oNKV@}&H-jf zxi^9GzXv%6##PFLNspuT_DS(_@G918MS=HHf~oHd#8sYsl{gn1kA#!qvMBvdjgVez)jz*`{&YUVA1KqaG2?f1Zcw7lF_VE^WdrQUp4ji;=rU5 zH#2iEYAVL3RVckWcUh2wSYnBvF$14~S6cieRmyx47M>}=9qGoI?-vyohC>I=#G^NX zX)<=TFEDen%4;OkHV|F&&2kvs-{0SQQbLZtdw%T{T+qsgvUz!VAXK>IlfH=n>Wm!I z39ZJYwt)<;-tj}2ICf;31sm@aVB0zi4>Sh`p29{rd!D%i4-g3Gwt02!#bA=#FSKF7 zWGlkXZl{3G5KWx4+MfJIlaGKxIdPR13lVbCPp393HZKW=H6)-k&BOYulN~+R*T+L@ zEYLK6Zc>F{BHOoS@e2p0S(u&*M%qBq(&+psX!k^xeEY}q>W3&7m&d_O$~IYRI(ouAJzQN4K^}Cb4T>2hKL%zpmiI^8uOw0516)UKDq2Vs za|2a!=fj4PqOfv)b2Abb=$xTX%09-$%^CPy27=dA*L&hJ>m`#KA^{?fsiqbvGes&t zcVr%pD1e{!lsY-SQs8#Lh-e+=~kq%JgQ*P<2v5VfP zy9Wa0K4!2&O9@VkzP5G3Ftw{Pp!|`ZcgOcAW zPO{lNA~KSjj_wA{WA6wcrzt-xA@&Z^UYsy-@TNZ|Hfe*BI`1^zl2LLUEi$7CyFwiqF!01;ns&>a%p%$kCH1xLX?a}uuR=RiY z#8Q|%0wK@-!T0pcOgh_uc)$I9M?PL&lRABnXLSqnAU)|@1C@&mrq{G-Xqgle#q0IZ zA#`H`%7LuwvMDr%8qie0zJG6JVrgt_tVm5tPyc$N%va6rAx!Y};JSu|u)R|J#Ams$ zlPyH}_TJ$nDbg#uk=3om)Qqo}ugmkR2=F9wVDEdb3IPFfH>AkBe3p&`r#nbEB~d+k zwL72~w7GsuSNMK{lW3a96%yqhAKLp=q{h8{wX=)!P5UGq{X zSlLFFmia7M`oGP=iz2&Ib} zHoYr|jKlYbgl!f;x=^N0MJXvXm{e^iJ{)MfgcbtP`KLw010 zgWge>zFCc@bQ>a1RLL>^f=}^cS^W`zbyi)|HRbNigfWS;u z5p>%wcL)7+<&#~T)iXv{d8Tcs#VN^?2PY?AV#JZJTo{~~NNkI3ePwE@E>?!kK(mY- zsru4iqeWRSFDsi7r4tBXil<@i6e_Usw|j&l@Ms}XD_HsI1ug#bRe5ftsvOE3+&45- z@tw5CVivj;```U32%Av&Z?P~y5Icg?1qKyDrqg6MW457C>`H_{CH#a z#a307@V*Nb)SR@1<~Ji9Fyg#U?wo)A8ggzh5BBbjSw?Pd5I{E7$t$<{7BuOeVTiJW zn#E|P%;+e;`Rz+?uA^0b6$CI(*GE}ZcVA3Euq%`WL*VBq?JJ(0A8@SOV9v{-Lg6E) zL5Y)BWnEp$ud~6?QDiPR^bb*J%7^fCXw-fAxIz$i8C|rvbKUyuS4>;n(^rsG68n&) zcm7&l{?^}Zhte{;#!C{Iyo}4W+x}A>{c9g)_}{B2_$cH;3g|OP+GiL=UV za7YL#r@kZ%0`sK}7^F>WCueMTf?kJD8Og8~fClmDw6H^vDPxu>>b8Yb$IwD%~oZe{#u4Bq=xK z8xjJEt@)`O?$N%H5h8d;NZ$|d-!PpPdN2jk0iM@a^$LH;u*h|aZ?=LCAS9NfMbP00 z)pyjyi4_N=Erwt5PX!m@B@yd)`IhNd;W@d2F%GY#agMayn5wPJUXze)oAo}ABz5L` zJtcSnjEeJY36i7t(%cOyUn!0*+VEJLGa8#Z_68_ZblXFWPRJhX=(%<1W#N&j&t z40TZoIc7_$?Ev2`oqFXj+tjsAMFyn4z3|2#$PP3@1~m{<@dv2cghu3)nJ_A3qu3+J zv-1ovel(Rx5afR7bDY6R8_LBcAb?UU)VQMWoKy@W4`kHT`qMwm0uK+JroLH|9&d~* zZ;~s(v>j-7iD_vZ1B!{rQIct<_MA_1ZENcAK9DB3>qQVjT*+q~_m_S$cHp?L!fc+A z)F1%?axNWSz+pT~(J4*=8wut@QpEo1e?kr%fIb!mb2E-xE~WbQEfB6l#wSm`kE(3{ zj1d`P!{mtI;y3eGug1RPbulX!L!U&(hebV(*#Nf09JE})C`1ekFTP>N_&Dioom*>I zM!L`&bXaW`l}Ql%`qf{+;0LC&UL?E0tjaiCp|Q3$*&+>c2pa6xP@o_!ki53=>Eb{>VYF2hsB^eqgj96ORt?76#X=3pbb)`I~}N%037_v%sa`Yl6|S zInb)K2@WAwkO{Rx-3@7}#9B&AwgL0lKf}xc^#8r4W)4DGyC9dtWLxq2kKXb#f);4z z#^84~z{_NiSP4#CE3Bmn{5Tagwb)-hzE&ZTw_&+c9-}jFk+LUzv4TM<gLh?J)C@>$DPPU?-JmbXp@cp)rM5Q5Xwvg@hmn+hfN6{aYFZ zcw|!fst;Nm8N|<*-WGJu%us`HN;8HA#*M;)1c=W!U@#(1nq_2UWDuG|Fz($Tz~}8y zFBTyw&c(^8ywXylu*_D>41|cZ6a8X)%V~`=f*Vd~1 ziD`kXsy#phn<<9pU$F2AFrVPyBWNK+0va$bJOO!Kd=UQt7DM=@uH!N5RV@T}2^*h6 zV7eQ$qR~-bVDm7*ikYjBg!Gxy)nkgzZy=hGdL_h30^stvuRcJ5X^p$DW*S3^ih$QO z1wlrv86wU3bfFS3ylwbze;FBjf(em*t2bHEij129+5RnXM~0A#1m=zLAVzp_Z0t&5 zv(N{Tn3SYJdatXm4~az{G`#@z{~mH!n@K5!Wv7|=1_H#LUB(Tt;-*-!FBt|TN>}>xjvFFKfP^ZYs(EuOL(`4>%CRjy2j4P$u;CV$jZSFViYuW z6so9l-7|K>h$pC3M%H?czys6&fzLaSh>2F{k4(C?Y{=gs_}oNL!aXwpa`K0*s_KMoXZt^hPB1O#IHNh( zcE1t=?GI4$_yw7%X_!eWD3cA5T_Ws42i21sv(nP!$SO|-wQnyde+SP)m`IF%LC%V3 zku0@KqA-PXaC;pHON!U5gtl z927$;Sos~iJ8kL~`~lHX!m0P=^XIp~7RKT6_%oo!mELkul}GSo91>C;882X51yF(; zFh9|UtQTq&1HjG8$jNPq(HT{PR10Ah-~$7r%Ia5mpl?yUAuQMEXQLL0fOmk_fq;!+ zpG~dagoF$qz=7hLt=Etg<+wb|z%~qQf zzIl+5(a5i}iUK}A$Lp{K9uN@N24yw^(gm!Dmj~bEr(BMgup#HoMXI1+)Tdnd`Vx#~ zZB$T9Fatgn2e5ka!NF_8vsjolLPuXpS$Xbg_}WUvI}RO7b%3XRA09rte;Ag95)u*$ z<$IdCeFzd91R%SqO{C6fYjp4J>e}a4R?VQmyZ~mBoIpKAp@5Igizo}gRP!V}2E-EB z>DQ4TA3kga%rs=WkeoREDN0T4k=JJwoD#BRoVimj^;)-v;RF z#6UW$3zdkBtn6Fh;z$7-0{YiW@u?{(7Tauh;-QhgJd~gWVknjKoydtln)}|z;u(eo z1?d|YSRxQr3wwLT&rR>#z0VAzQROflL=fYEi`&}ODF*(mHYTiMod zB`D}D$LQFOcHx0Lw+WZ}lYQUfb}s zb@sIe8*A&M`)0u@omd+%2S1*b=uK!*YFN$t@x!f-JyV#^`jU~Ny2pv`E-~E zug$ee92c&g%1}`I>#xVTxj*vM(JsV=)PU-T$NvlqEi5ihLO55NU;}-wKXIHlCUR(Q zS+>v#iku!&#ve|EYn8NDBQJyzY79PjdPUmpAfb6joLI?-?L}YTqgb}!uG+qcSHF@0 z25JdZI>4Z}dNJ;N5d8AG9aJzC9(+s-N85Ct$S|51EWFd}9DW84uAb%PS8cp@nDF3W zRUBvYjvtRe_(tCBVVpgM?34!Pu{oaI%LXoUc0x5YOKsyLo&S;`vhD(V{t0j;x_T)J z1m8Jnf-ck5EZ+Bp<$*FBlSbz69-{UByIZTDedb5ubZpAb@m64T212QaFObXN=Q&^n) z7w5~Ji*^K3T7N#wLQ^=X^&Y9~U|e5US6x7IJK62gWu{s)X-nyQ`nl0@VmUYx@x*vG zaWNfCog|@C|9HDHX~~-Dc5qShyXa|Hxhc$}x=F-QDuTBe3D6*}OcaqT^hk99qyc*- zM)Tkb-3_a|Z5KPH6HkLGvP?efihk7q;hX2_Oq`MgjlNUUf+^rn*@I;pbxKKyihkjg zxN5N|ACr2XY2@EfgQaGjlrfcQQxF%>lw2Iyv=K5<7Z<0&X?IQmleQYe6B9|IO3QoR zZazMxn#PidNf<*>IB+g4I3)~E7%+!bwX{lr@!r*NE!P6ChC9LJb*I$N%-*0=h@H`76^}jMK`y(EWVo>RrV`QKrxTrTVnU~qK-d0(}gN-L$PLFr@!4h zb^FQ7gNqfuy~nTsHp{Tok|e}M z(hp^8jZJPjMjB9}IB?VLUn3g>AGxsndA=>Mlq5zW%R5b}C)h+9!oqIgTt;!;m|3wK z9t|CS=a{r1PYi#Yn6wn39r?374Q?SOp!r7Y{OzIq@)k3S?M?bKY62`Ad;!&W(dOB+ zXPEGqc`#-f~)5`useu z?s;#_^0-7 zM=o*|NgxIUd0zCdlGao$9x#CLN&98~8mp!CYZWm`|{Qo{eVpanFq3sH=7>9Vvw;=fCD70)|D z3h`Ic{NK~xz}W_!n8Soml((#JoY(34_mZRF3r$uu8m@|=1m=)2a>uw>Tf47|CJyB* z5vDA)kga@Ifq>0lKC5U%vAu)1k1@PIDM4I_C6i{&NvhK->7_T>GfTjeIh$wh()SZc znaE{v19$08i9`Dd*S30{rQN9LN4yxXuO-g^^VEIBxVF=XaSddeXYwBH4EKy52zYO} z`6czJiJ-5m;jWljEDhUfC;lQ$NDhgD0{=b?YV)@wIuWDk`@f|q%Z;H`&DM^aBNS5h{D%k$m^cf1G-dua+d- zZZ@NklSV|tiNrccX-z9HX)7X6ji!*f_#ekdPHEOfrWuV&(r1u0XNaGn*K z;e;AN;M-vn_Ac_e6eSl*FO4<{Ed8^WFPDk#+2g%IyElmUbL!sQ8jVm_n^tYwTYIZs zj-j;MikxQ}JzpMc#Wz9-_NrNfoKJo*w)nu$ zo$S?_n)2-TfNna0C|Up&aI{_|NKGtv(}pv~6ip$`DJE|q)b4A59gw|73=XbvzVc(+ zG!%<74|K=c#s2T5SF14iO~jhKRYagL1`$DXP$G1+$wgui8g^g#J9V9jAp3!Vfyt>U zYtZ7v>W9cW)8Kyw<5cmjZ~J+3^bZk8#5rn~SrJT43n4xKNPLs199}{F{v$MTGRxpqXLV}0kq>L6YRrBZ{ z-7vG9(Bk-lz};no5I>YQI9nP=9`-ntjdQtUq2ohN7<*&89Hg!wGF8-3jj82TSp27H z+7EUK3xK}&{RY941n4a|mGo|CynNIXa#MiAR3I#3{f~FoG>E*!Mo7pCa)Scl1e}7O zj&^D_=^0S=5%4>FnHDNKYpmpnMW;_((xgBgrtHY1imEo(M|_0ao9xD!)PU>uIpUdXhAnzpM; z!s8;Q!)G>?P@!%refkvdI6nuFMPJaMR3E&0RKIBR0OFDdQ3B9#P3c?ozV#!MD?pjL z{ymCcF}rh$=5X0){0$Nbxzs_T?F)xu=WXorx`oOeE9Y#a;|ycg3jk6b8i zkTrYsy?_ongRE|A^9%4Yd!0hWS|ue3zc{8A7Ca%~U!b@wAH4DQt=<6SU|is`%P|YW zb8%vMR`7;DTusvjHAj6gdFuW}7`41emSR!sLBJ4Ra8_0`mAnKabfdq@~SZ4*RDfB;7?0# z7int!>3<1SLZEwQ5Ar1XoG4vpc|VY{o-=ilP30!bsvpMXc*)76!KQ7r+k(Yk4=iXa+M~Pu^vFgpG5zyI3oiZ{rEY)|7{4d4xO+o+w literal 0 HcmV?d00001 diff --git a/cow_med.png b/cow_med.png new file mode 100644 index 0000000000000000000000000000000000000000..5c5d2c47b578bf0fedc18d831b87d2b43ad751c5 GIT binary patch literal 15008 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
    f!`bt4-vc2hK=+A#o#v@E{hi$4{P| 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 LM%pEsb}|14DGK&~ literal 0 HcmV?d00001 diff --git a/cow_small.png b/cow_small.png new file mode 100644 index 0000000000000000000000000000000000000000..cccd448a372588fde6044086be74d19b8e688c1a GIT binary patch literal 9583 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 literal 0 HcmV?d00001 diff --git a/xcowsay.c b/xcowsay.c new file mode 100644 index 0000000..0dc5550 --- /dev/null +++ b/xcowsay.c @@ -0,0 +1,127 @@ +#include +#include +#include + +#include +#include + +#define SPEED 30 // Horizontal speed in pixels per 100ms + +typedef struct { + GtkWidget *window; + GtkWidget *cow_image; + GdkPixbuf *cow_pixbuf; + int x, y, width, height; + int screen_width; +} xcowsay_t; + +static xcowsay_t xcowsay; + +static void get_alpha_mask(GdkDrawable *bitmap) +{ + GdkColormap *colormap; + GdkColor black; + GdkColor white; + GdkGC *gc; + int rowstride, nchannels, x, y; + guchar *pixels, *p; + + colormap = gdk_colormap_get_system(); + gdk_color_black(colormap, &black); + gdk_color_white(colormap, &white); + + gc = gdk_gc_new(bitmap); + + gdk_gc_set_foreground(gc, &black); + gdk_gc_set_background(gc, &white); + gdk_draw_rectangle (bitmap, gc, TRUE, 0, 0, xcowsay.width, xcowsay.height); + + nchannels = gdk_pixbuf_get_n_channels(xcowsay.cow_pixbuf); + g_assert(gdk_pixbuf_get_colorspace(xcowsay.cow_pixbuf) == GDK_COLORSPACE_RGB); + g_assert(gdk_pixbuf_get_bits_per_sample(xcowsay.cow_pixbuf) == 8); + g_assert(gdk_pixbuf_get_has_alpha(xcowsay.cow_pixbuf)); + g_assert(nchannels == 4); + + rowstride = gdk_pixbuf_get_rowstride(xcowsay.cow_pixbuf); + pixels = gdk_pixbuf_get_pixels(xcowsay.cow_pixbuf); + + gdk_gc_set_foreground(gc, &white); + gdk_gc_set_background(gc, &black); + + for (y = 0; y < xcowsay.height; y++) { + for (x = 0; x < xcowsay.width; x++) { + p = pixels + y*rowstride + x*nchannels; + if (255 == p[3]) // p[3] is alpha channel + gdk_draw_point(bitmap, gc, x, y); + } + } +} + +static void quit_callback(GtkWidget *widget, gpointer data) +{ + gtk_main_quit(); +} + +gboolean tick(gpointer data) +{ + if (xcowsay.x + xcowsay.width < xcowsay.screen_width / 2) { + xcowsay.x += SPEED; + gtk_window_move(GTK_WINDOW(xcowsay.window), xcowsay.x, xcowsay.y); + } + return true; +} + +int main(int argc, char **argv) +{ + GdkDrawable *window_shape_bitmap; + GdkScreen *screen; + + gtk_init(&argc, &argv); + + xcowsay.window = gtk_window_new(GTK_WINDOW_TOPLEVEL); + gtk_window_set_decorated(GTK_WINDOW(xcowsay.window), FALSE); + gtk_window_set_resizable(GTK_WINDOW(xcowsay.window), FALSE); + gtk_window_set_title(GTK_WINDOW(xcowsay.window), "xcowsay"); + gtk_window_set_skip_taskbar_hint(GTK_WINDOW(xcowsay.window), TRUE); + + xcowsay.cow_pixbuf = gdk_pixbuf_new_from_file("cow_med.png", NULL); + if (NULL == xcowsay.cow_pixbuf) { + fprintf(stderr, "Failed to load cow image!\n"); + return EXIT_FAILURE; + } + xcowsay.width = gdk_pixbuf_get_width(xcowsay.cow_pixbuf); + xcowsay.height = gdk_pixbuf_get_height(xcowsay.cow_pixbuf); + + window_shape_bitmap = + (GdkDrawable*)gdk_pixmap_new(NULL, xcowsay.width, xcowsay.height, 1); + get_alpha_mask(window_shape_bitmap); + gtk_widget_shape_combine_mask(xcowsay.window, window_shape_bitmap, 0, 0); + gdk_pixmap_unref(window_shape_bitmap); + + xcowsay.cow_image = gtk_image_new_from_pixbuf(xcowsay.cow_pixbuf); + gtk_container_add(GTK_CONTAINER(xcowsay.window), xcowsay.cow_image); + + screen = gtk_widget_get_screen(xcowsay.window); + xcowsay.screen_width = gdk_screen_get_width(screen); + + // Ok... this is a terrible hack *sniff* + // In order to stop the cow flashing up before it's moved offscreen + // we iconify it, show it, deiconify it, then move it (hopefully + // before it gets painted again!) + gtk_window_iconify(GTK_WINDOW(xcowsay.window)); + gtk_widget_show_all(xcowsay.window); + + xcowsay.x = -xcowsay.width; + xcowsay.y = 100; + gtk_window_deiconify(GTK_WINDOW(xcowsay.window)); + gtk_window_move(GTK_WINDOW(xcowsay.window), xcowsay.x, xcowsay.y); + + g_signal_connect(G_OBJECT(xcowsay.window), "destroy", + G_CALLBACK(quit_callback), NULL); + + g_timeout_add(100, tick, NULL); + + gtk_main(); + + return EXIT_SUCCESS; +} -- 2.39.2