~mdw
/
clg
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Added macro WITH-CARIO-CONTEXT to create temporary cario contexts
[clg]
/
gdk
/
gdk.lisp
diff --git
a/gdk/gdk.lisp
b/gdk/gdk.lisp
index
168ec86
..
3ea51ac
100644
(file)
--- a/
gdk/gdk.lisp
+++ b/
gdk/gdk.lisp
@@
-20,7
+20,7
@@
;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-;; $Id: gdk.lisp,v 1.1
8 2005-11-10 09:01:36
espen Exp $
+;; $Id: gdk.lisp,v 1.1
9 2006-02-07 13:22:14
espen Exp $
(in-package "GDK")
(in-package "GDK")
@@
-712,6
+712,13
@@
(defbinding cairo-create () cairo:context
(drawable drawable))
(defbinding cairo-create () cairo:context
(drawable drawable))
+ (defmacro with-cairo-context ((cr drawable) &body body)
+ `(let ((,cr (cairo-create ,drawable)))
+ (unwind-protect
+ (progn ,@body)
+ (unreference-foreign 'cairo:context (foreign-location ,cr))
+ (invalidate-instance ,cr))))
+
(defbinding cairo-set-source-color () nil
(cr cairo:context)
(color color))
(defbinding cairo-set-source-color () nil
(cr cairo:context)
(color color))