From e5655917fbab9dabc07ac1fa71cd437201f82b0f Mon Sep 17 00:00:00 2001 From: Dmitry Kalyanov Date: Sun, 1 Nov 2009 02:07:28 +0300 Subject: [PATCH] Add test-gdk --- gtk/demo/presence_online.png | Bin 0 -> 3243 bytes gtk/gtk.demo.lisp | 60 +++++++++++++++++++++++++++++++++++++++++- 2 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 gtk/demo/presence_online.png diff --git a/gtk/demo/presence_online.png b/gtk/demo/presence_online.png new file mode 100644 index 0000000000000000000000000000000000000000..e188ced5052a990aaf686b2fb98dc0e5184ae22b GIT binary patch literal 3243 zcmV;c3{>-pP)^QM=ICq0{5Yh&cCNxlvPy`Az zsI621Z3(3n>OZsy(Ml}{Ayu@MS^5zdw1XN zd;MnKdwILrjWGmTp?=cO-^{$XGr!+_-<#RDV|?9>;WF(3R7>P42}=l95hfER5()`^ zm=+@R5?Tn&ga*QggtjMfR{x&}AmZ8NZX>KCEMk)64b;`3;v2J2HhUVfOA6u1&4#Qh zhzt&6v_FLN$D48P;1RTcdphRR9x`MCDC zkD%t7YayvFd=WEr9cOp%$EF7!LF?YbAZsT)#G^9a)MDc#UrO#zgf&H#F}7-bE#}?* zG$c<6U?9z$#_?TCXc6pq?Du%@iPsScOZl8B>USOAenvlViOOUT5_og=|5m@ufAWA34 zOtoqb^jM!W=;aGYD>B&&#(?_OgPc5ezFZI>|0Z!-N+R0Q1*DT#$vrE{M%8uq_6YKp z5%~e=qg?=#>;b>*NKpSBu&w^OK@9dNIIu0ZigO}vt4V}5rT}Y=U$OYc5GKtTy(mYA zp!IzWIjf2)pH0yCyuuO@#6!pInux@*wf*Qk?M7F#dxgdA$xA*1q_CRYzCd-faP4op zpt#ZpW~v|Vz;ZzLTo^na*U{M(g4gRpQGw4K*~lP>+IsuK7>#HsE6s%>OK?mVlam;3 z#>Eyqf;O` zjSw)V(Q=Mi%Z5Sb<6L2xl(h1!Ehy7aF*Q2owkNqI0j5X@g)=K17>omn0SEd3Le!SY z21ghqRf6oHK3!wa+>E8epw$tatI65XUCXaeT^NR}7@4^%46;uKUW$DBg%v0zdIT@nuVymi<5Gdhn z$;%$uCM`UZO~|T@JJxtm9x%I+$t_u+V#z``zn+4ni``gUuL=^}DoQ1+UE`*RTN5L3 zSYj0FJ1et@3DcsmIVUfpQ}asVY3U<6@+yGDz!(E8FgWGXGT`U;sOaw1;qfr!=Skw; zi;cA6wwo2KT$Vs2YM{7Kg2Kl$KoEamkY@xCs6ZlA#D}z$J*BWB2AgxTfQkMR4JqR? zCOQ!LDY%k%L^y)Lpt^zba>Wt{(U$CB*i{1sMY2Okc!H5a-l+=_25oK{Y|9J8?R|1$ zvH-uwrz6=!9xAd!RAQ+jkX#2Wm2j9lRg14J!ftTLf|J*i$UAk(twN9LFtmipOE#dm zb!ZXEpDe(qx}8xNk(E3uc`21Rd1m_5NI=RgBBkVzc6>5f$s(_tB6Vg(L8r;2R0<_7 zbVgiB0DQ>;M&cUFg=K=gEFN5&Y--u^fL&)vbC=QRS|uQR7%97bRVPHXM%IGfR>>ixe|uSM{=ovBny%sHV)(H@feXeFmGNCZ%Y-C zE@X_Cz2ux1#7)>`m_l|mgz(`X*yN#K$a#p_Pl)iunj30O zjR&erq00#{^4$75RoI-9H?n=v5edC?Q4E~4gHEdUfQ$ra=CEI-|Xxtk{IIKgK85S?hvAFO}O$ZP#H#X;F0ow`j*299VAZ~wf zdR;c$Zi&JMF*DT02ewFaZ;6oHRK5s`38&2#;T9qt;VM9V#WWe)cZR^NZn_WU6+SSg zTu5hb7RR{B*%5GxaOC9PEEov`)T{MD1=%@nOq=Qhw}ys(L^U~;v^BFZNu~;sJRDZt zDMOHUJ`dqle6VW(y}dC=62r=s#m+<$3@f_6Nhv<+)4L15rGxSK1$E6Te`q)_MBYQ)aHt@839ZY z8`<$jAG9a~=W20=1jnAI^>yUnwjAh@m`z?pqIQZOGiT+2+uLuoqbsO6dCbT&w?ojL zc{v554Z_=XM~rT$czI(p<$fFayYSX)2cRc(l$7S+z6Y0~pwI^f!=8FkKJaP} zwm&0izDu~DCRra-0Kb7myiei!UdN%Rf5xgTs9qu_W>BpAV%D>=eK>h6NY6wJ`}ds2 zk*0QvL^evwOG${=5x`Un3WkaJjx7i9>{FX@{BS$CRo9f@zF)0EQE|3Oo?w%2X&k_7 zzYZg=u~zF>>i*CD>-3Z>S>X0RPU7cXcAi__P0v9HFZ^{o&YlihUlTyWyr`|K#)Rr} zU3WW(4(d&bToD2xgVcHxSu({ zPJhw!fl2jBVC_>=kX4im$Vr~}@Rf{SzEQKBzB&NNk2Tl7<&`h62@LUj) z(I{Pmc*x5t%P?ieWXxYY6Zr*Rlduu7NSi(p9l@UGPGHO9ozSAr3C)*wMy7hOX3-r5 z?3(p6;VUXm*?GaefHx^R)^~Yk5ZRbXlmJdVK_G9poj=@+cOE^86T2dmjm{a_S8__3 zoo`fL^`iyP2`QejvJi7_sK&&_Q{XPFB{4as0NH1HNEYc4?!^Jg(797ML3_X_n_AG^80N%N z&WZmgC-p9`?k%6jP&T6&#Wi{G=I225c*H8CjgBJJ(SzWz^XNPpMt7SE+VRs)>c77K dEAjtq{{ivLJ56s>JQM%`002ovPDHLkV1kQH2_OIf literal 0 HcmV?d00001 diff --git a/gtk/gtk.demo.lisp b/gtk/gtk.demo.lisp index 86dc302..8273b79 100644 --- a/gtk/gtk.demo.lisp +++ b/gtk/gtk.demo.lisp @@ -30,7 +30,8 @@ #:test-entry-completion #:test-ui-markup #:test-list-store - #:test-tree-store)) + #:test-tree-store + #:test-gdk)) (in-package :gtk-demo) @@ -1053,3 +1054,60 @@ (dialog-run dialog) (object-destroy dialog))))) (widget-show w)))) + +(defun test-gdk-expose (gdk-window) + (let* ((gc (gdk-gc-new gdk-window))) + (multiple-value-bind (w h) (drawable-get-size gdk-window) + (setf (graphics-context-rgb-bg-color gc) (make-color :red 0 :green 0 :blue 0)) + (draw-polygon gdk-window gc t (list (make-point :x 0 :y 0) + (make-point :x (truncate w 2) :y 0) + (make-point :x w :y (truncate h 2)) + (make-point :x w :y h) + (make-point :x (truncate w 2) :y h) + (make-point :x 0 :y (truncate h 2)))) + (setf (graphics-context-rgb-fg-color gc) (make-color :red 65535 :green 0 :blue 0)) + (draw-point gdk-window gc 20 10) + (setf (graphics-context-rgb-fg-color gc) (make-color :red 0 :green 65535 :blue 0)) + (draw-points gdk-window gc (list (make-point :x 15 :y 20) (make-point :x 35 :y 40))) + (setf (graphics-context-rgb-fg-color gc) (make-color :red 0 :green 0 :blue 65535)) + (draw-line gdk-window gc 60 30 40 50) + (setf (graphics-context-rgb-fg-color gc) (make-color :red 65535 :green 65535 :blue 0)) + (draw-lines gdk-window gc (list (make-point :x 10 :y 30) (make-point :x 15 :y 40) + (make-point :x 15 :y 50) (make-point :x 10 :y 56))) + (setf (graphics-context-rgb-fg-color gc) (make-color :red 0 :green 65535 :blue 65535)) + (draw-segments gdk-window gc (list (make-segment :x1 35 :y1 35 :x2 55 :y2 35) + (make-segment :x1 65 :y1 35 :x2 43 :y2 17))) + (setf (graphics-context-rgb-fg-color gc) (make-color :red 65535 :green 0 :blue 65535) + (graphics-context-rgb-bg-color gc) (make-color :red 32767 :green 0 :blue 32767)) + (draw-arc gdk-window gc nil 70 30 75 50 (* 64 75) (* 64 200)) + (draw-polygon gdk-window gc nil (list (make-point :x 20 :y 40) + (make-point :x 30 :y 50) + (make-point :x 40 :y 70) + (make-point :x 30 :y 80) + (make-point :x 10 :y 55))) + (setf (graphics-context-rgb-fg-color gc) (make-color :red 16384 :green 16384 :blue 65535)) + (draw-trapezoids gdk-window gc (list (make-trapezoid :y1 50.0d0 :y2 70.0d0 + :x11 30.0d0 :x12 45.0d0 + :x21 70.0d0 :x22 50.0d0)))))) + +(defun test-gdk () + "Test various gdk primitives" + (within-main-loop + (let ((window (make-instance 'gtk-window :type :toplevel :app-paintable t)) + x y) + (g-signal-connect window "destroy" (lambda (widget) + (declare (ignore widget)) + (leave-gtk-main))) + (g-signal-connect window "destroy" (lambda (widget) + (declare (ignore widget)) + (leave-gtk-main))) + (g-signal-connect window "expose-event" + (lambda (widget event) + (declare (ignore widget event)) + (test-gdk-expose (widget-window window)))) + (g-signal-connect window "configure-event" + (lambda (widget event) + (declare (ignore widget event)) + (widget-queue-draw window))) + (widget-show window) + (push :pointer-motion-mask (gdk-window-events (widget-window window)))))) -- 1.7.10.4