Initial commit.
[platform/core/uifw/at-spi2-atk.git] / libspi / application.c
index 2a2f4a2..c99064f 100644 (file)
@@ -2,7 +2,9 @@
  * AT-SPI - Assistive Technology Service Provider Interface
  * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
  *
- * Copyright 2001 Sun Microsystems Inc.
+ * Copyright 2008 Novell, Inc.
+ * Copyright 2001, 2002 Sun Microsystems Inc.,
+ * Copyright 2001, 2002 Ximian, Inc.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  * Boston, MA 02111-1307, USA.
  */
+#include "accessible.h"
 
-/*
- * application.c: implements Application.idl
- *
- */
-#include <config.h>
-#include <bonobo/Bonobo.h>
-#include "atksimpleobject.h"
 
-/*
- * This pulls the CORBA definitions for the "Accessibility::Accessible" server
- */
-#include <libspi/Accessibility.h>
+static dbus_bool_t
+impl_get_toolkitName (const char *path, DBusMessageIter * iter,
+                     void *user_data)
+{
+  return droute_return_v_string (iter, atk_get_toolkit_name ());
+}
 
-/*
- * This pulls the definition for the BonoboObject (GObject Type)
- */
-#include "application.h"
+static char *
+impl_get_toolkitName_str (void *datum)
+{
+  return g_strdup (atk_get_toolkit_name ());
+}
 
-/*
- * Our parent Gtk object type
- */
-#define PARENT_TYPE ACCESSIBLE_TYPE
+static dbus_bool_t
+impl_get_version (const char *path, DBusMessageIter * iter, void *user_data)
+{
+  return droute_return_v_string (iter, atk_get_toolkit_version ());
+}
+
+static char *
+impl_get_version_str (void *datum)
+{
+  return g_strdup (atk_get_toolkit_version ());
+}
+
+static dbus_int32_t id;
 
-static void
-application_class_init (ApplicationClass *klass)
+static dbus_bool_t
+impl_get_id (const char *path, DBusMessageIter * iter, void *user_data)
 {
-  ;
+  return droute_return_v_int32 (iter, id);
 }
 
-static void
-application_init (Application  *application)
+static char *
+impl_get_id_str (void *datum)
 {
-  ACCESSIBLE (application)->atko = atk_simple_object_new();
+  return g_strdup_printf ("%d", id);
 }
 
-GType
-application_get_type (void)
+static dbus_bool_t
+impl_set_id (const char *path, DBusMessageIter * iter, void *user_data)
 {
-        static GType type = 0;
-
-        if (!type) {
-                static const GTypeInfo tinfo = {
-                        sizeof (ApplicationClass),
-                        (GBaseInitFunc) NULL,
-                        (GBaseFinalizeFunc) NULL,
-                        (GClassInitFunc) application_class_init,
-                        (GClassFinalizeFunc) NULL,
-                        NULL, /* class data */
-                        sizeof (Application),
-                        0, /* n preallocs */
-                        (GInstanceInitFunc) application_init,
-                        NULL /* value table */
-                };
-                /*
-                 *   Here we use bonobo_x_type_unique instead of
-                 * gtk_type_unique, this auto-generates a load of
-                 * CORBA structures for us. All derived types must
-                 * use bonobo_x_type_unique.
-                 */
-                type = bonobo_x_type_unique (
-                        PARENT_TYPE,
-                        POA_Accessibility_Application__init,
-                        NULL,
-                        G_STRUCT_OFFSET (ApplicationClass, epv),
-                        &tinfo,
-                        "Application");
-        }
-
-        return type;
+  id = droute_get_v_int32 (iter);
+  return TRUE;
 }
 
-Application *
-application_new (char *name, char *desc, char *id)
+static DBusMessage *
+impl_registerToolkitEventListener (DBusConnection * bus,
+                                  DBusMessage * message, void *user_data)
 {
-    Application *retval =
-               APPLICATION (g_object_new (application_get_type (), NULL));
-    atk_object_set_name (ACCESSIBLE (retval)->atko, CORBA_string_dup (name));
-    atk_object_set_description (ACCESSIBLE (retval)->atko, CORBA_string_dup (desc));
-    retval->id = CORBA_string_dup (id);
-    return retval;
 }
+
+static DBusMessage *
+impl_registerObjectEventListener (DBusConnection * bus, DBusMessage * message,
+                                 void *user_data)
+{
+}
+
+static DBusMessage *
+impl_pause (DBusConnection * bus, DBusMessage * message, void *user_data)
+{
+}
+
+static DBusMessage *
+impl_resume (DBusConnection * bus, DBusMessage * message, void *user_data)
+{
+}
+
+static DBusMessage *
+impl_getLocale (DBusConnection * bus, DBusMessage * message, void *user_data)
+{
+}
+
+static DRouteMethod methods[] = {
+  {DROUTE_METHOD, impl_registerToolkitEventListener,
+   "registerToolkitEventListener", "o,listener,i:s,eventName,i"},
+  {DROUTE_METHOD, impl_registerObjectEventListener,
+   "registerObjectEventListener", "o,listener,i:s,eventName,i"},
+  {DROUTE_METHOD, impl_pause, "pause", "b,,o"},
+  {DROUTE_METHOD, impl_resume, "resume", "b,,o"},
+  {DROUTE_METHOD, impl_getLocale, "getLocale", "u,lctype,i:s,,o"},
+  {0, NULL, NULL, NULL}
+};
+
+static DRouteProperty properties[] = {
+  {impl_get_toolkitName, impl_get_toolkitName_str, NULL, NULL, "toolkitName",
+   "s"},
+  {impl_get_version, impl_get_version_str, NULL, NULL, "version", "s"},
+  {impl_get_id, impl_get_id_str, impl_set_id, NULL, "id", "i"},
+  {NULL, NULL, NULL, NULL, NULL, NULL}
+};
+
+static long
+obj_is_root (const char *path, void *user_data)
+{
+  AtkObject *obj = spi_dbus_get_object (path);
+  return (obj == atk_get_root ());
+}
+
+void
+spi_initialize_application (DRouteData * data)
+{
+  droute_add_interface (data, "org.freedesktop.accessibility.Application",
+                       methods, properties,
+                       (DRouteGetDatumFunction) obj_is_root, NULL);
+};