X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fat-spi2-atk.git;a=blobdiff_plain;f=libspi%2Feditabletext.c;h=7a14352f1519ad18ef3e7e4f27777efe0c95fe6a;hp=93dcb25032027ac66134e547eb11e7ce03cec32b;hb=d35cd400a36b0f1393c17ce47015bf753327ccae;hpb=48e66ae4721d6da701864b1b171bcf542e9211fa diff --git a/libspi/editabletext.c b/libspi/editabletext.c index 93dcb25..7a14352 100644 --- a/libspi/editabletext.c +++ b/libspi/editabletext.c @@ -20,69 +20,50 @@ * 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 SpiEditableText bonobo object - */ -#include "editabletext.h" - -/* - * Static function declarations - */ +/* Static function declarations */ static void spi_editable_text_class_init (SpiEditableTextClass *klass); static void spi_editable_text_init (SpiEditableText *editable); -static void -spi_editable_text_finalize (GObject *obj); 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); - -static GObjectClass *parent_class; - +impl_pasteText (PortableServer_Servant servant, + const CORBA_long position, CORBA_Environment *ev); BONOBO_TYPE_FUNC_FULL (SpiEditableText, Accessibility_EditableText, @@ -92,12 +73,8 @@ BONOBO_TYPE_FUNC_FULL (SpiEditableText, static void spi_editable_text_class_init (SpiEditableTextClass *klass) { - GObjectClass * object_class = (GObjectClass *) klass; POA_Accessibility_EditableText__epv *epv = &klass->epv; - parent_class = g_type_interface_peek_parent (klass); - object_class->finalize = spi_editable_text_finalize; - /* Initialize epv table */ epv->setAttributes = impl_setAttributes; @@ -109,79 +86,81 @@ spi_editable_text_class_init (SpiEditableTextClass *klass) epv->pasteText = impl_pasteText; } + static void spi_editable_text_init (SpiEditableText *editable) { } -static void -spi_editable_text_finalize (GObject *obj) -{ - parent_class->finalize (obj); -} SpiEditableText * spi_editable_text_interface_new (AtkObject *obj) { - SpiEditableText *new_editable = - SPI_EDITABLE_TEXT(g_object_new (SPI_EDITABLE_TEXT_TYPE, NULL)); - (SPI_TEXT (new_editable))->atko = obj; - g_object_ref (obj); + SpiEditableText *new_editable = g_object_new ( + SPI_EDITABLE_TEXT_TYPE, NULL); + + spi_text_construct (SPI_TEXT (new_editable), obj); + return new_editable; } + +static AtkEditableText * +get_editable_text_from_servant (PortableServer_Servant servant) +{ + 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) { - SpiEditableText *editable; - BonoboObject *obj; - obj = (bonobo_object_from_servant (_servant)); - g_return_val_if_fail (IS_SPI_EDITABLE_TEXT (obj), FALSE); - editable = SPI_EDITABLE_TEXT(bonobo_object_from_servant (_servant)); - g_return_val_if_fail (ATK_IS_EDITABLE_TEXT ( (SPI_TEXT (obj))->atko), FALSE); + 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) { - SpiEditableText *editable; - BonoboObject *obj; - obj = (bonobo_object_from_servant (_servant)); - g_return_if_fail (IS_SPI_EDITABLE_TEXT (obj)); - editable = SPI_EDITABLE_TEXT(bonobo_object_from_servant (_servant)); - g_return_if_fail (ATK_IS_EDITABLE_TEXT ( (SPI_TEXT (obj))->atko)); + AtkEditableText *editable = get_editable_text_from_servant (servant); + + g_return_if_fail (editable != NULL); - atk_editable_text_set_text_contents (ATK_EDITABLE_TEXT( SPI_TEXT (editable)->atko), - (gchar *) newContents); + 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) { - SpiEditableText *editable; - BonoboObject *obj; - obj = (bonobo_object_from_servant (_servant)); - g_return_if_fail (IS_SPI_EDITABLE_TEXT (obj)); - editable = SPI_EDITABLE_TEXT(bonobo_object_from_servant (_servant)); - g_return_if_fail (ATK_IS_EDITABLE_TEXT ( (SPI_TEXT (obj))->atko)); - - atk_editable_text_insert_text (ATK_EDITABLE_TEXT( SPI_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); @@ -189,70 +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) { - SpiEditableText *editable; - BonoboObject *obj; - obj = (bonobo_object_from_servant (_servant)); - g_return_if_fail (IS_SPI_EDITABLE_TEXT (obj)); - editable = SPI_EDITABLE_TEXT(bonobo_object_from_servant (_servant)); - g_return_if_fail (ATK_IS_EDITABLE_TEXT ( (SPI_TEXT (obj))->atko)); - - atk_editable_text_copy_text (ATK_EDITABLE_TEXT( SPI_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) { - SpiEditableText *editable; - BonoboObject *obj; - obj = (bonobo_object_from_servant (_servant)); - g_return_if_fail (IS_SPI_EDITABLE_TEXT (obj)); - editable = SPI_EDITABLE_TEXT(bonobo_object_from_servant (_servant)); - g_return_if_fail (ATK_IS_EDITABLE_TEXT ( (SPI_TEXT (obj))->atko)); - - atk_editable_text_cut_text (ATK_EDITABLE_TEXT(SPI_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) { - SpiEditableText *editable; - BonoboObject *obj; - obj = (bonobo_object_from_servant (_servant)); - g_return_if_fail (IS_SPI_EDITABLE_TEXT (obj)); - editable = SPI_EDITABLE_TEXT(bonobo_object_from_servant (_servant)); - g_return_if_fail (ATK_IS_EDITABLE_TEXT ( (SPI_TEXT (obj))->atko)); - - atk_editable_text_delete_text (ATK_EDITABLE_TEXT( SPI_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) { - SpiEditableText *editable; - BonoboObject *obj; - obj = (bonobo_object_from_servant (_servant)); - g_return_if_fail (IS_SPI_EDITABLE_TEXT (obj)); - editable = SPI_EDITABLE_TEXT(bonobo_object_from_servant (_servant)); - g_return_if_fail (ATK_IS_EDITABLE_TEXT ( (SPI_TEXT (obj))->atko)); - - atk_editable_text_paste_text (ATK_EDITABLE_TEXT( SPI_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); +}