X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=libspi%2Feditabletext.c;h=7a14352f1519ad18ef3e7e4f27777efe0c95fe6a;hb=af73589b8f6efcd457290b11e183769918cf3294;hp=89a7b854fa483f4037625d5d5d49df86f3b189fb;hpb=2a52cece4bf09e15a526a0e7b67569a5e0de6b43;p=platform%2Fcore%2Fuifw%2Fat-spi2-atk.git diff --git a/libspi/editabletext.c b/libspi/editabletext.c index 89a7b85..7a14352 100644 --- a/libspi/editabletext.c +++ b/libspi/editabletext.c @@ -20,114 +20,60 @@ * Boston, MA 02111-1307, USA. */ -/* - * component.c : bonobo wrapper for accessible component implementation - * - */ -#include -#include +/* editabletext.c : implements the EditableText interface */ +#include #include +#include +#include -/* - * This pulls the CORBA definitions for the "Accessibility::Accessible" server - */ -#include - -/* - * This pulls the definition of the EditableText bonobo object - */ -#include "editabletext.h" +/* Static function declarations */ -/* - * Static function declarations - */ - -static void -editable_text_class_init (EditableTextClass *klass); static void -editable_text_init (EditableText *editable); +spi_editable_text_class_init (SpiEditableTextClass *klass); static void -editable_text_finalize (GObject *obj); +spi_editable_text_init (SpiEditableText *editable); static CORBA_boolean -impl_setAttributes (PortableServer_Servant _servant, +impl_setAttributes (PortableServer_Servant servant, const CORBA_char * attributes, const CORBA_long startPos, const CORBA_long endPos, - CORBA_Environment * ev); + CORBA_Environment *ev); static void -impl_setTextContents (PortableServer_Servant _servant, +impl_setTextContents (PortableServer_Servant servant, const CORBA_char * newContents, - CORBA_Environment * ev); + CORBA_Environment *ev); static void -impl_insertText (PortableServer_Servant _servant, +impl_insertText (PortableServer_Servant servant, const CORBA_long position, const CORBA_char * text, const CORBA_long length, - CORBA_Environment * ev); + CORBA_Environment *ev); static void -impl_copyText (PortableServer_Servant _servant, +impl_copyText (PortableServer_Servant servant, const CORBA_long startPos, const CORBA_long endPos, - CORBA_Environment * ev); + CORBA_Environment *ev); static void -impl_cutText (PortableServer_Servant _servant, +impl_cutText (PortableServer_Servant servant, const CORBA_long startPos, const CORBA_long endPos, - CORBA_Environment * ev); + CORBA_Environment *ev); static void -impl_deleteText (PortableServer_Servant _servant, +impl_deleteText (PortableServer_Servant servant, const CORBA_long startPos, const CORBA_long endPos, - CORBA_Environment * ev); + CORBA_Environment *ev); static void -impl_pasteText (PortableServer_Servant _servant, - const CORBA_long position, CORBA_Environment * ev); +impl_pasteText (PortableServer_Servant servant, + const CORBA_long position, CORBA_Environment *ev); -static GObjectClass *parent_class; - -GType -editable_text_get_type (void) -{ - static GType type = 0; - - if (!type) { - static const GTypeInfo tinfo = { - sizeof (EditableTextClass), - (GBaseInitFunc) NULL, - (GBaseFinalizeFunc) NULL, - (GClassInitFunc) editable_text_class_init, - (GClassFinalizeFunc) NULL, - NULL, /* class data */ - sizeof (EditableText), - 0, /* n preallocs */ - (GInstanceInitFunc) editable_text_init, - NULL /* value table */ - }; - - /* - * Bonobo_type_unique auto-generates a load of - * CORBA structures for us. All derived types must - * use bonobo_type_unique. - */ - type = bonobo_type_unique ( - BONOBO_OBJECT_TYPE, - POA_Accessibility_EditableText__init, - NULL, - G_STRUCT_OFFSET (EditableTextClass, epv), - &tinfo, - "AccessibleEditableText"); - } - - return type; -} +BONOBO_TYPE_FUNC_FULL (SpiEditableText, + Accessibility_EditableText, + SPI_TEXT_TYPE, + spi_editable_text); static void -editable_text_class_init (EditableTextClass *klass) +spi_editable_text_class_init (SpiEditableTextClass *klass) { - GObjectClass * object_class = (GObjectClass *) klass; POA_Accessibility_EditableText__epv *epv = &klass->epv; - parent_class = g_type_class_peek_parent (klass); - - object_class->finalize = editable_text_finalize; - /* Initialize epv table */ @@ -140,65 +86,81 @@ editable_text_class_init (EditableTextClass *klass) epv->pasteText = impl_pasteText; } + static void -editable_text_init (EditableText *editable) +spi_editable_text_init (SpiEditableText *editable) { } -static void -editable_text_finalize (GObject *obj) + +SpiEditableText * +spi_editable_text_interface_new (AtkObject *obj) { - EditableText *editable = EDITABLE_TEXT(obj); - g_object_unref (editable->atko); - editable->atko = NULL; - parent_class->finalize (obj); + SpiEditableText *new_editable = g_object_new ( + SPI_EDITABLE_TEXT_TYPE, NULL); + + spi_text_construct (SPI_TEXT (new_editable), obj); + + return new_editable; } -EditableText * -editable_text_interface_new (AtkObject *obj) + +static AtkEditableText * +get_editable_text_from_servant (PortableServer_Servant servant) { - EditableText *new_editable = - EDITABLE_TEXT(g_object_new (EDITABLE_TEXT_TYPE, NULL)); - new_editable->atko = obj; - g_object_ref (obj); -return new_editable; -} + SpiBase *object = SPI_BASE (bonobo_object_from_servant (servant)); + if (!object) + { + return NULL; + } + + return ATK_EDITABLE_TEXT (object->atko); +} static CORBA_boolean -impl_setAttributes (PortableServer_Servant _servant, - const CORBA_char * attributes, - const CORBA_long startPos, - const CORBA_long endPos, - CORBA_Environment * ev) +impl_setAttributes (PortableServer_Servant servant, + const CORBA_char * attributes, + const CORBA_long startPos, + const CORBA_long endPos, + CORBA_Environment *ev) { + AtkEditableText *editable = get_editable_text_from_servant (servant); + + g_return_val_if_fail (editable != NULL, FALSE); + g_print ("setRunAttributes not implemented.\n"); -} + return FALSE; +} static void -impl_setTextContents (PortableServer_Servant _servant, - const CORBA_char * newContents, - CORBA_Environment * ev) +impl_setTextContents (PortableServer_Servant servant, + const CORBA_char *newContents, + CORBA_Environment *ev) { - EditableText *editable = EDITABLE_TEXT(bonobo_object_from_servant (_servant)); - atk_editable_text_set_text_contents (ATK_EDITABLE_TEXT(editable->atko), - (gchar *) newContents); -} + AtkEditableText *editable = get_editable_text_from_servant (servant); + g_return_if_fail (editable != NULL); + + atk_editable_text_set_text_contents (editable, (gchar *) newContents); +} static void -impl_insertText (PortableServer_Servant _servant, - const CORBA_long position, - const CORBA_char * text, - const CORBA_long length, - CORBA_Environment * ev) +impl_insertText (PortableServer_Servant servant, + const CORBA_long position, + const CORBA_char *text, + const CORBA_long length, + CORBA_Environment *ev) { - EditableText *editable = EDITABLE_TEXT (bonobo_object_from_servant(_servant)); - atk_editable_text_insert_text (ATK_EDITABLE_TEXT(editable->atko), + AtkEditableText *editable = get_editable_text_from_servant (servant); + + g_return_if_fail (editable != NULL); + + atk_editable_text_insert_text (editable, (gchar *) text, (gint) length, (gint *) &position); @@ -206,46 +168,51 @@ impl_insertText (PortableServer_Servant _servant, static void -impl_copyText (PortableServer_Servant _servant, +impl_copyText (PortableServer_Servant servant, const CORBA_long startPos, const CORBA_long endPos, - CORBA_Environment * ev) + CORBA_Environment *ev) { - EditableText *editable = EDITABLE_TEXT (bonobo_object_from_servant(_servant)); - atk_editable_text_copy_text (ATK_EDITABLE_TEXT(editable->atko), - (gint) startPos, (gint) endPos); -} + AtkEditableText *editable = get_editable_text_from_servant (servant); + g_return_if_fail (editable != NULL); + + atk_editable_text_copy_text (editable, (gint) startPos, (gint) endPos); +} static void -impl_cutText (PortableServer_Servant _servant, +impl_cutText (PortableServer_Servant servant, const CORBA_long startPos, const CORBA_long endPos, - CORBA_Environment * ev) + CORBA_Environment *ev) { - EditableText *editable = EDITABLE_TEXT (bonobo_object_from_servant(_servant)); - atk_editable_text_cut_text (ATK_EDITABLE_TEXT(editable->atko), - (gint) startPos, (gint) endPos); -} + AtkEditableText *editable = get_editable_text_from_servant (servant); + g_return_if_fail (editable != NULL); + atk_editable_text_cut_text (editable, (gint) startPos, (gint) endPos); +} static void -impl_deleteText (PortableServer_Servant _servant, +impl_deleteText (PortableServer_Servant servant, const CORBA_long startPos, const CORBA_long endPos, - CORBA_Environment * ev) + CORBA_Environment *ev) { - EditableText *editable = EDITABLE_TEXT (bonobo_object_from_servant(_servant)); - atk_editable_text_delete_text (ATK_EDITABLE_TEXT(editable->atko), - (gint) startPos, (gint) endPos); + AtkEditableText *editable = get_editable_text_from_servant (servant); + + g_return_if_fail (editable != NULL); + + atk_editable_text_delete_text (editable, (gint) startPos, (gint) endPos); } static void -impl_pasteText (PortableServer_Servant _servant, - const CORBA_long position, CORBA_Environment * ev) +impl_pasteText (PortableServer_Servant servant, + const CORBA_long position, CORBA_Environment *ev) { - EditableText *editable = EDITABLE_TEXT (bonobo_object_from_servant(_servant)); - atk_editable_text_paste_text (ATK_EDITABLE_TEXT(editable->atko), position); -} + AtkEditableText *editable = get_editable_text_from_servant (servant); + + g_return_if_fail (editable != NULL); + atk_editable_text_paste_text (editable, position); +}