Mercurial > projects > dwt2
comparison org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/cairo/Cairo.d @ 26:f589fc20a5f9
work on linux phobos
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Sat, 21 Mar 2009 11:22:55 +0100 |
parents | f713da8bc051 |
children |
comparison
equal
deleted
inserted
replaced
25:f713da8bc051 | 26:f589fc20a5f9 |
---|---|
30 import org.eclipse.swt.internal.c.cairo_ps; | 30 import org.eclipse.swt.internal.c.cairo_ps; |
31 import org.eclipse.swt.internal.c.cairo_pdf; | 31 import org.eclipse.swt.internal.c.cairo_pdf; |
32 import org.eclipse.swt.internal.c.Xlib; | 32 import org.eclipse.swt.internal.c.Xlib; |
33 import org.eclipse.swt.internal.Platform; | 33 import org.eclipse.swt.internal.Platform; |
34 | 34 |
35 import tango.core.Traits; | 35 version(Tango){ |
36 import tango.core.Traits; | |
37 } else { // Phobos | |
38 import std.traits; | |
39 } | |
36 | 40 |
37 public alias org.eclipse.swt.internal.c.cairo.cairo_t cairo_t; | 41 public alias org.eclipse.swt.internal.c.cairo.cairo_t cairo_t; |
38 public alias org.eclipse.swt.internal.c.cairo.cairo_pattern_t cairo_pattern_t; | 42 public alias org.eclipse.swt.internal.c.cairo.cairo_pattern_t cairo_pattern_t; |
39 public alias org.eclipse.swt.internal.c.cairo.cairo_surface_t cairo_surface_t; | 43 public alias org.eclipse.swt.internal.c.cairo.cairo_surface_t cairo_surface_t; |
40 public alias org.eclipse.swt.internal.c.cairo.cairo_text_extents_t cairo_text_extents_t; | 44 public alias org.eclipse.swt.internal.c.cairo.cairo_text_extents_t cairo_text_extents_t; |
72 const char[] NameOfFunc = (&f).stringof[2 .. $]; | 76 const char[] NameOfFunc = (&f).stringof[2 .. $]; |
73 } | 77 } |
74 } | 78 } |
75 | 79 |
76 template ForwardGtkCairoCFunc( alias cFunc ) { | 80 template ForwardGtkCairoCFunc( alias cFunc ) { |
77 alias ParameterTupleOf!(cFunc) P; | 81 version(Tango){ |
78 alias ReturnTypeOf!(cFunc) R; | 82 alias ParameterTupleOf!(cFunc) P; |
79 mixin("public static R " ~ NameOfFunc!(cFunc) ~ "( P p ){ | 83 alias ReturnTypeOf!(cFunc) R; |
80 lock.lock(); | 84 mixin("public static R " ~ NameOfFunc!(cFunc) ~ "( P p ){ |
81 scope(exit) lock.unlock(); | 85 lock.lock(); |
82 return cFunc(p); | 86 scope(exit) lock.unlock(); |
83 }"); | 87 return cFunc(p); |
88 }"); | |
89 } else { // Phobos | |
90 alias ParameterTypeTuple!(cFunc) P; | |
91 alias ReturnType!(cFunc) R; | |
92 mixin("public static R " ~ NameOfFunc!(cFunc) ~ "( P p ){ | |
93 lock.lock(); | |
94 scope(exit) lock.unlock(); | |
95 return cFunc(p); | |
96 }"); | |
97 } | |
84 } | 98 } |
85 | 99 |
86 public class Cairo : Platform { | 100 public class Cairo : Platform { |
87 | 101 |
88 /** Constants */ | 102 /** Constants */ |