// // rsvg/Tool.cs - Rsvg Tool class // // Author: Charles Iliya Krempeaux // // Copyright (C) 2003 Reptile Consulting & Services Ltd. // Copyright (C) 2003 Charles Iliya Krempeaux. // // This program is free software; you can redistribute it and/or // modify it under the terms of version 2 of the Lesser GNU General // Public License as published by the Free Software Foundation. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this program; if not, write to the // Free Software Foundation, Inc., 59 Temple Place - Suite 330, // Boston, MA 02111-1307, USA. // O B J E C T S //////////////////////////////////////////////////////////////////////////////////////////////////////////// namespace Rsvg { public class Tool { // D L L I M P O R T S //////////////////////////////////////////////////////////////////////////////////////// [System.Runtime.InteropServices.DllImport("rsvg-2")] static extern System.IntPtr rsvg_pixbuf_from_file( string file_name , out System.IntPtr error ); [System.Runtime.InteropServices.DllImport("rsvg-2")] static extern System.IntPtr rsvg_pixbuf_from_file_at_zoom( string file_name , double x_zoom , double y_zoom , out System.IntPtr error ); [System.Runtime.InteropServices.DllImport("rsvg-2")] static extern System.IntPtr rsvg_pixbuf_from_file_at_size( string file_name , int width , int height , out System.IntPtr error ); [System.Runtime.InteropServices.DllImport("rsvg-2")] static extern System.IntPtr rsvg_pixbuf_from_file_at_max_size( string file_name , int max_width , int max_height , out System.IntPtr error ); [System.Runtime.InteropServices.DllImport("rsvg-2")] static extern System.IntPtr rsvg_pixbuf_from_file_at_zoom_with_max( string file_name , double x_zoom , double y_zoom , int max_width , int max_height , out System.IntPtr error ); //////////////////////////////////////////////////////////////////////////////////////// D L L I M P O R T S // // P R O C E D U R E S ////////////////////////////////////////////////////////////////////////////////////////// public static Gdk.Pixbuf PixbufFromFile(string file_name) { System.IntPtr error = System.IntPtr.Zero; System.IntPtr raw_pixbuf = rsvg_pixbuf_from_file(file_name, out error); if (System.IntPtr.Zero != error) { throw new GLib.GException ( error ); } else { return new Gdk.Pixbuf( raw_pixbuf ); } } public static Gdk.Pixbuf PixbufFromFileAtZoom(string file_name, double x_zoom, double y_zoom) { System.IntPtr error = System.IntPtr.Zero; System.IntPtr raw_pixbuf = rsvg_pixbuf_from_file_at_zoom(file_name, x_zoom, y_zoom, out error); if (System.IntPtr.Zero != error) { throw new GLib.GException( error ); } else { return new Gdk.Pixbuf( raw_pixbuf ); } } public static Gdk.Pixbuf PixbufFromFileAtSize(string file_name, int width, int height) { System.IntPtr error = System.IntPtr.Zero; System.IntPtr raw_pixbuf = rsvg_pixbuf_from_file_at_size(file_name, width, height, out error); if (System.IntPtr.Zero != error) { throw new GLib.GException( error ); } else { return new Gdk.Pixbuf( raw_pixbuf ); } } public static Gdk.Pixbuf PixbufFromFileAtMaxSize(string file_name, int max_width, int max_height) { System.IntPtr error = System.IntPtr.Zero; System.IntPtr raw_pixbuf = rsvg_pixbuf_from_file_at_max_size(file_name, max_width, max_height, out error); if (System.IntPtr.Zero != error) { throw new GLib.GException( error ); } else { return new Gdk.Pixbuf( raw_pixbuf ); } } public static Gdk.Pixbuf PixbufFromFileAtZoomWithMaxSize(string file_name, double x_zoom, double y_zoom, int max_width, int max_height) { System.IntPtr error = System.IntPtr.Zero; System.IntPtr raw_pixbuf = rsvg_pixbuf_from_file_at_zoom_with_max(file_name, x_zoom, y_zoom, max_width, max_height, out error); if (System.IntPtr.Zero != error) { throw new GLib.GException( error ); } else { return new Gdk.Pixbuf( raw_pixbuf ); } } ////////////////////////////////////////////////////////////////////////////////////////// P R O C E D U R E S // } // class Tool } // namespace Rsvg //////////////////////////////////////////////////////////////////////////////////////////////////////////// O B J E C T S //