69879b63ae4fb3da90263808c133a39ed2b770f8glimmer * This is where the implementation of the DBus based application API lives.
69879b63ae4fb3da90263808c133a39ed2b770f8glimmer * All the methods in here are designed to be called remotly via DBus.
69879b63ae4fb3da90263808c133a39ed2b770f8glimmer * document-interface.cpp has all of the actual manipulation methods.
69879b63ae4fb3da90263808c133a39ed2b770f8glimmer * This interface is just for creating new document interfaces.
69879b63ae4fb3da90263808c133a39ed2b770f8glimmer * Documentation for these methods is in application-interface.xml
69879b63ae4fb3da90263808c133a39ed2b770f8glimmer * which is the "gold standard" as to how the interface should work.
69879b63ae4fb3da90263808c133a39ed2b770f8glimmer * Soren Berg <Glimmer07@gmail.com>
69879b63ae4fb3da90263808c133a39ed2b770f8glimmer * Copyright (C) 2009 Soren Berg
69879b63ae4fb3da90263808c133a39ed2b770f8glimmer * Released under GNU GPL, read the file 'COPYING' for more information
c596be6d145df956e779f427dde5aabc8559dd6cglimmerG_DEFINE_TYPE(ApplicationInterface, application_interface, G_TYPE_OBJECT)
c596be6d145df956e779f427dde5aabc8559dd6cglimmer G_OBJECT_CLASS (application_interface_parent_class)->finalize (object);
c596be6d145df956e779f427dde5aabc8559dd6cglimmerapplication_interface_class_init (ApplicationInterfaceClass *klass)
c596be6d145df956e779f427dde5aabc8559dd6cglimmer object_class->finalize = application_interface_finalize;
44a3b5d410b95b87a0c29ff7a0c9378e32c4fd38Eric Grevesonapplication_interface_init (ApplicationInterface *app_interface)
44a3b5d410b95b87a0c29ff7a0c9378e32c4fd38Eric Greveson g_set_error(error, INKSCAPE_ERROR, INKSCAPE_ERROR_OTHER, "Application interface action requires a GUI");
44a3b5d410b95b87a0c29ff7a0c9378e32c4fd38Eric Greveson return false;
44a3b5d410b95b87a0c29ff7a0c9378e32c4fd38Eric Greveson g_set_error(error, INKSCAPE_ERROR, INKSCAPE_ERROR_OTHER, "Application interface action requires non-GUI (command line) mode");
44a3b5d410b95b87a0c29ff7a0c9378e32c4fd38Eric Greveson return false;
c596be6d145df956e779f427dde5aabc8559dd6cglimmer return (ApplicationInterface*)g_object_new (TYPE_APPLICATION_INTERFACE, NULL);
40a3d45f2bcf7de02729811b4059e07abda134eaJohn Smith * Error stuff...
40a3d45f2bcf7de02729811b4059e07abda134eaJohn Smith * To add a new error type, edit here and in the .h InkscapeError enum.
40a3d45f2bcf7de02729811b4059e07abda134eaJohn Smith quark = g_quark_from_static_string ("inkscape_error");
40a3d45f2bcf7de02729811b4059e07abda134eaJohn Smith#define ENUM_ENTRY(NAME, DESC) { NAME, "" #NAME "", DESC }
40a3d45f2bcf7de02729811b4059e07abda134eaJohn Smith ENUM_ENTRY(INKSCAPE_ERROR_SELECTION, "Incompatible_Selection"),
40a3d45f2bcf7de02729811b4059e07abda134eaJohn Smith ENUM_ENTRY(INKSCAPE_ERROR_OBJECT, "Incompatible_Object"),
40a3d45f2bcf7de02729811b4059e07abda134eaJohn Smith ENUM_ENTRY(INKSCAPE_ERROR_OTHER, "Generic_Error"),
40a3d45f2bcf7de02729811b4059e07abda134eaJohn Smith etype = g_enum_register_static("InkscapeError", values);
c596be6d145df956e779f427dde5aabc8559dd6cglimmer/****************************************************************************
c596be6d145df956e779f427dde5aabc8559dd6cglimmer DESKTOP FUNCTIONS
c596be6d145df956e779f427dde5aabc8559dd6cglimmer****************************************************************************/
44a3b5d410b95b87a0c29ff7a0c9378e32c4fd38Eric Grevesonapplication_interface_desktop_new (ApplicationInterface *app_interface,
44a3b5d410b95b87a0c29ff7a0c9378e32c4fd38Eric Greveson g_return_val_if_fail(ensure_desktop_valid(error), NULL);
44a3b5d410b95b87a0c29ff7a0c9378e32c4fd38Eric Greveson return (gchar*)Inkscape::Extension::Dbus::init_desktop();
44a3b5d410b95b87a0c29ff7a0c9378e32c4fd38Eric Grevesonapplication_interface_get_desktop_list (ApplicationInterface *app_interface)
44a3b5d410b95b87a0c29ff7a0c9378e32c4fd38Eric Grevesonapplication_interface_get_active_desktop (ApplicationInterface *app_interface,
44a3b5d410b95b87a0c29ff7a0c9378e32c4fd38Eric Grevesonapplication_interface_set_active_desktop (ApplicationInterface *app_interface,
44a3b5d410b95b87a0c29ff7a0c9378e32c4fd38Eric Grevesonapplication_interface_desktop_close_all (ApplicationInterface *app_interface,
44a3b5d410b95b87a0c29ff7a0c9378e32c4fd38Eric Grevesonapplication_interface_exit (ApplicationInterface *app_interface, GError **error)
c596be6d145df956e779f427dde5aabc8559dd6cglimmer/****************************************************************************
c596be6d145df956e779f427dde5aabc8559dd6cglimmer DOCUMENT FUNCTIONS
c596be6d145df956e779f427dde5aabc8559dd6cglimmer****************************************************************************/
44a3b5d410b95b87a0c29ff7a0c9378e32c4fd38Eric Grevesongchar* application_interface_document_new (ApplicationInterface *app_interface,
44a3b5d410b95b87a0c29ff7a0c9378e32c4fd38Eric Greveson g_return_val_if_fail(ensure_desktop_not_present(error), NULL);
44a3b5d410b95b87a0c29ff7a0c9378e32c4fd38Eric Greveson return (gchar*)Inkscape::Extension::Dbus::init_document();
44a3b5d410b95b87a0c29ff7a0c9378e32c4fd38Eric Grevesonapplication_interface_get_active_document(ApplicationInterface *app_interface,
9090603e08f72da58468db0e5b91f43ede35af26Eric Greveson gchar *result = (gchar*)Inkscape::Extension::Dbus::init_active_document();
9090603e08f72da58468db0e5b91f43ede35af26Eric Greveson g_set_error(error, INKSCAPE_ERROR, INKSCAPE_ERROR_OTHER, "No active document");
44a3b5d410b95b87a0c29ff7a0c9378e32c4fd38Eric Grevesonapplication_interface_get_document_list (ApplicationInterface *app_interface)
44a3b5d410b95b87a0c29ff7a0c9378e32c4fd38Eric Grevesonapplication_interface_document_close_all (ApplicationInterface *app_interface,
c596be6d145df956e779f427dde5aabc8559dd6cglimmer/* INTERESTING FUNCTIONS
c596be6d145df956e779f427dde5aabc8559dd6cglimmer SPDesktop *desktop = SP_ACTIVE_DESKTOP;
c596be6d145df956e779f427dde5aabc8559dd6cglimmer g_assert(desktop != NULL);
9ba77856a8823f85b53c0a861d220cd0347f2754Liam P. White SPDocument *doc = desktop->getDocument();
c596be6d145df956e779f427dde5aabc8559dd6cglimmer g_assert(doc != NULL);
9dc68827cbd515262ecb8d5ae8547d9e82c72e00Jon A. Cruz Inkscape::XML::Node *repr = doc->getReprRoot();
c596be6d145df956e779f427dde5aabc8559dd6cglimmer g_assert(repr != NULL);