--- /dev/null
+/* This file is part of GtkMathView-Bonobo, a Bonobo wrapper for GtkMathView.
+ * Copyright (C) 2003 Luca Padovani <lpadovan@cs.unibo.it>
+ * Pouria Masoudi <pmasoudi@cs.unibo.it>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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 library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * For more information, please visit the project's home page
+ * http://helm.cs.unibo.it/gtkmathview-bonobo
+ * or send an email to <lpadovan@cs.unibo.it>
+ */
+
+#include <Bonobo.idl>
+
+module GNOME {
+
+ module GtkMathView {
+
+ typedef string element_id;
+
+ interface View : Bonobo::Unknown {
+
+ /**
+ * load:
+ * @uri: URI of a MathML document
+ *
+ * Loads the document at the specified URI in the component
+ * and displays it. If the load is successful returns @TRUE,
+ * @FALSE otherwise.
+ */
+ boolean load (in string uri);
+
+ /**
+ * unload:
+ *
+ * Unload any loaded document from the component
+ */
+ void unload ();
+
+ /**
+ * freeze:
+ *
+ * Freezes the component. Any modification to the document is
+ * not reflected by the view.
+ */
+ void freeze ();
+
+ /**
+ * thaw:
+ *
+ * Thaws the component. If the document was changed while the
+ * component was frozen, the view is updated.
+ */
+ void thaw ();
+
+ void setIdAttribute (in string ns, in string name);
+ void getIdAttribute (out string ns, out string name);
+
+ void select (in element_id elem);
+ void unselect (in element_id elem);
+ boolean isSelected (in element_id elem);
+
+ boolean elementCoords (in element_id elem,
+ out short x, out short y);
+ /**
+ * elementRectangle:
+ * @elem: ID of the element
+ * @x: x coordinate of the element
+ * @y: y coordinate of the element
+ * @width: width of the element
+ * @height: height of the element
+ *
+ * Returns the position and the size of the rectangle includes @elem
+ */
+ boolean elementBoundingBox (in element_id elem,
+ out short width, out short height, out short depth);
+
+ void getSize (out short width, out short height);
+
+ void getTop (out short x, out short y);
+ void setTop (in short x, in short y);
+
+ void setDefaultFontSize (in short size);
+ short getDefaultFontSize ();
+
+ void setVerbosity (in short level);
+ short getVerbosity ();
+
+ };
+
+ };
+
+};
+