1. ----------------------------------------------------------------------- 
  2. --               GtkAda - Ada95 binding for Gtk+/Gnome               -- 
  3. --                                                                   -- 
  4. --                    Copyright (C) 2011-2013, AdaCore               -- 
  5. --                                                                   -- 
  6. -- This library is free software; you can redistribute it and/or     -- 
  7. -- modify it under the terms of the GNU General Public               -- 
  8. -- License as published by the Free Software Foundation; either      -- 
  9. -- version 2 of the License, or (at your option) any later version.  -- 
  10. --                                                                   -- 
  11. -- This library is distributed in the hope that it will be useful,   -- 
  12. -- but WITHOUT ANY WARRANTY; without even the implied warranty of    -- 
  13. -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU -- 
  14. -- General Public License for more details.                          -- 
  15. --                                                                   -- 
  16. -- You should have received a copy of the GNU General Public         -- 
  17. -- License along with this library; if not, write to the             -- 
  18. -- Free Software Foundation, Inc., 59 Temple Place - Suite 330,      -- 
  19. -- Boston, MA 02111-1307, USA.                                       -- 
  20. --                                                                   -- 
  21. -- As a special exception, if other files instantiate generics from  -- 
  22. -- this unit, or you link this unit with other files to produce an   -- 
  23. -- executable, this  unit  does not  by itself cause  the resulting  -- 
  24. -- executable to be covered by the GNU General Public License. This  -- 
  25. -- exception does not however invalidate any other reasons why the   -- 
  26. -- executable file  might be covered by the  GNU Public License.     -- 
  27. ----------------------------------------------------------------------- 
  28.  
  29. package Cairo.SVG is 
  30.  
  31.    function Create 
  32.      (Filename        : String; 
  33.       Width_In_Point  : Gdouble; 
  34.       Height_In_Point : Gdouble) return Cairo_Surface; 
  35.    --  Creates a SVG surface of the specified size in points to be written to 
  36.    --  filename. 
  37.    -- 
  38.    --  The SVG surface backend recognizes the following MIME types for the data 
  39.    --  attached to a surface (see Cairo.Surface.Set_Mime_Data) when it is 
  40.    --  used as a source pattern for drawing on this surface: 
  41.    --  CAIRO_MIME_TYPE_JPEG, CAIRO_MIME_TYPE_PNG, CAIRO_MIME_TYPE_URI. If any 
  42.    --  of them is specified, the SVG backend emits a href with the content of 
  43.    --  MIME data instead of a surface snapshot (PNG, Base64-encoded) in the 
  44.    --  corresponding image tag. 
  45.    -- 
  46.    --  The unofficial MIME type CAIRO_MIME_TYPE_URI is examined first. If 
  47.    --  present, the URI is emitted as is: assuring the correctness of URI is 
  48.    --  left to the client code. 
  49.    --  If CAIRO_MIME_TYPE_URI is not present, but CAIRO_MIME_TYPE_JPEG or 
  50.    --  CAIRO_MIME_TYPE_PNG is specified, the corresponding data is 
  51.    --  Base64-encoded and emitted. 
  52.    -- 
  53.    --  filename : 
  54.    --   a filename for the SVG output (must be writable), NULL may be used to 
  55.    --   specify no output. This will generate a SVG surface that may be queried 
  56.    --   and used as a source, without generating a temporary file. 
  57.    --  width_in_points : 
  58.    --   width of the surface, in points (1 point == 1/72.0 inch) 
  59.    --  height_in_points : 
  60.    --   height of the surface, in points (1 point == 1/72.0 inch) 
  61.    --  Returns : 
  62.    --   a pointer to the newly created surface. The caller owns the surface and 
  63.    --   should call Cairo.Surface.Destroy when done with it. This function 
  64.    --   always returns a valid pointer, but it will return a pointer to a "nil" 
  65.    --   surface if an error such as out of memory occurs. You can use 
  66.    --   Cairo.Surface.Status to check for this. 
  67.    -- 
  68.    --  Since 1.2 
  69.  
  70. end Cairo.SVG;