1 /**
2  *
3  * License:
4  * $(TABLE
5  *   $(TR $(TD cairoD wrapper/bindings)
6  *     $(TD $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)))
7  *   $(TR $(TD $(LINK2 http://cgit.freedesktop.org/cairo/tree/COPYING, _cairo))
8  *     $(TD $(LINK2 http://cgit.freedesktop.org/cairo/tree/COPYING-LGPL-2.1, LGPL 2.1) /
9  *     $(LINK2 http://cgit.freedesktop.org/cairo/plain/COPYING-MPL-1.1, MPL 1.1)))
10  * )
11  * Authors:
12  * $(TABLE
13  *   $(TR $(TD Johannes Pfau) $(TD cairoD))
14  *   $(TR $(TD $(LINK2 http://cairographics.org, _cairo team)) $(TD _cairo))
15  * )
16  */
17 /*
18  * Distributed under the Boost Software License, Version 1.0.
19  *    (See accompanying file LICENSE_1_0.txt or copy at
20  *          http://www.boost.org/LICENSE_1_0.txt)
21  */
22 module cairo.c.ps;
23 
24 import cairo.c.cairo;
25 
26 static if(CAIRO_HAS_PS_SURFACE)
27 {
28     extern(C):
29 
30     /* PS-surface functions */
31     /**
32      * $(D cairo_ps_level_t) is used to describe the language level of the
33      * PostScript Language Reference that a generated PostScript file will
34      * conform to.
35      */
36     enum cairo_ps_level_t
37     {
38         ///The language level 2 of the PostScript specification.
39         CAIRO_PS_LEVEL_2,
40         ///The language level 3 of the PostScript specification.
41         CAIRO_PS_LEVEL_3
42     }
43     ///
44     cairo_surface_t* cairo_ps_surface_create (const (char*) filename,
45                  double             width_in_points,
46                  double             height_in_points);
47     ///
48     cairo_surface_t* cairo_ps_surface_create_for_stream (cairo_write_func_t write_func,
49                         void*         closure,
50                         double        width_in_points,
51                         double        height_in_points);
52     ///
53     void cairo_ps_surface_restrict_to_level (cairo_surface_t* surface,
54                                         cairo_ps_level_t    level);
55     ///
56     void cairo_ps_get_levels (immutable(cairo_ps_level_t*)*  levels,
57                          int*    num_levels);
58     ///
59     immutable(char)* cairo_ps_level_to_string (cairo_ps_level_t level);
60     ///
61     void cairo_ps_surface_set_eps (cairo_surface_t*    surface,
62                   cairo_bool_t           eps);
63     ///
64     cairo_bool_t cairo_ps_surface_get_eps (cairo_surface_t    *surface);
65     ///
66     void cairo_ps_surface_set_size (cairo_surface_t* surface,
67                    double         width_in_points,
68                    double         height_in_points);
69     ///
70     void cairo_ps_surface_dsc_comment (cairo_surface_t*  surface,
71                       const(char*)    comment);
72     ///
73     void cairo_ps_surface_dsc_begin_setup (cairo_surface_t *surface);
74     ///
75     void cairo_ps_surface_dsc_begin_page_setup (cairo_surface_t *surface);
76 }
77 else
78 {
79     //static assert(false, "CairoD was not compiled with support for the ps backend");
80 }