/** * atk_image_get_image_size: * @image: a #GObject instance that implements AtkImageIface * @width: (out) (optional): filled with the image width, or -1 if the value cannot be obtained. * @height: (out) (optional): filled with the image height, or -1 if the value cannot be obtained. * * Get the width and height in pixels for the specified image. * The values of @width and @height are returned as -1 if the * values cannot be obtained (for instance, if the object is not onscreen). **/ void atk_image_get_image_size (AtkImage *image, int *width, int *height) { AtkImageIface *iface; gint local_width, local_height; gint *real_width, *real_height; g_return_if_fail (ATK_IS_IMAGE (image)); if (width) real_width = width; else real_width = &local_width; if (height) real_height = height; else real_height = &local_height; iface = ATK_IMAGE_GET_IFACE (image); if (iface->get_image_size) { iface->get_image_size (image, real_width, real_height); } else { *real_width = -1; *real_height = -1; } }
static void _print_image_info(AtkObject *obj) { gint height, width; G_CONST_RETURN gchar *desc; G_CONST_RETURN gchar *name = atk_object_get_name (obj); G_CONST_RETURN gchar *type_name = g_type_name(G_TYPE_FROM_INSTANCE (obj)); height = width = 0; if(!ATK_IS_IMAGE(obj)) return; g_print("atk_object_get_name : %s\n", name ? name : "<NULL>"); g_print("atk_object_get_type_name : %s\n",type_name ?type_name :"<NULL>"); g_print("*** Start Image Info ***\n"); desc = atk_image_get_image_description(ATK_IMAGE(obj)); g_print ("atk_image_get_image_desc returns : %s\n",desc ? desc:"<NULL>"); atk_image_get_image_size(ATK_IMAGE(obj), &height ,&width); g_print("atk_image_get_image_size returns: height %d width %d\n", height,width); if(atk_image_set_image_description(ATK_IMAGE(obj),"New image Description")){ desc = atk_image_get_image_description(ATK_IMAGE(obj)); g_print ("atk_image_get_image_desc now returns : %s\n",desc?desc:"<NULL>"); } g_print("*** End Image Info ***\n"); }
/** * atk_image_get_image_position: * @image: a #GObject instance that implements AtkImageIface * @x: (out) (optional): address of #gint to put x coordinate position; otherwise, -1 if value cannot be obtained. * @y: (out) (optional): address of #gint to put y coordinate position; otherwise, -1 if value cannot be obtained. * @coord_type: specifies whether the coordinates are relative to the screen * or to the components top level window * * Gets the position of the image in the form of a point specifying the * images top-left corner. **/ void atk_image_get_image_position (AtkImage *image, gint *x, gint *y, AtkCoordType coord_type) { AtkImageIface *iface; gint local_x, local_y; gint *real_x, *real_y; g_return_if_fail (ATK_IS_IMAGE (image)); if (x) real_x = x; else real_x = &local_x; if (y) real_y = y; else real_y = &local_y; iface = ATK_IMAGE_GET_IFACE (image); if (iface->get_image_position) { (iface->get_image_position) (image, real_x, real_y, coord_type); } else { *real_x = -1; *real_y = -1; } }
/** * @brief Gets the image size * * @param image AtkImage instance * @param [out] width photo width or -1 if value cannot be obtained * @param [out] height photo height or -1 if value cannot be obtained */ static void eail_photo_size_get(AtkImage *image, gint *width, gint *height) { g_return_if_fail(ATK_IS_IMAGE(image)); Evas_Object *widget = eail_widget_get_widget(EAIL_WIDGET(image)); if (!widget) { *width = -1; *height = -1; return; } evas_object_geometry_get(widget, NULL, NULL, width, height); }
/** * atk_image_get_image_description: * @image: a #GObject instance that implements AtkImageIface * * Get a textual description of this image. * * Returns: a string representing the image description **/ const gchar* atk_image_get_image_description (AtkImage *image) { AtkImageIface *iface; g_return_val_if_fail (ATK_IS_IMAGE (image), NULL); iface = ATK_IMAGE_GET_IFACE (image); if (iface->get_image_description) { return (iface->get_image_description) (image); } else { return NULL; } }
/** * atk_image_set_image_description: * @image: a #GObject instance that implements AtkImageIface * @description: a string description to set for @image * * Sets the textual description for this image. * * Returns: boolean TRUE, or FALSE if operation could * not be completed. **/ gboolean atk_image_set_image_description (AtkImage *image, const gchar *description) { AtkImageIface *iface; g_return_val_if_fail (ATK_IS_IMAGE (image), FALSE); iface = ATK_IMAGE_GET_IFACE (image); if (iface->set_image_description) { return (iface->set_image_description) (image, description); } else { return FALSE; } }
/** * atk_image_get_image_locale: * @image: An #AtkImage * * Since ATK 1.12 * * Returns a string corresponding to the POSIX LC_MESSAGES locale used by the image description, or NULL if the image does not specify a locale. * */ G_CONST_RETURN gchar* atk_image_get_image_locale (AtkImage *image) { AtkImageIface *iface; g_return_val_if_fail (ATK_IS_IMAGE (image), NULL); iface = ATK_IMAGE_GET_IFACE (image); if (iface->get_image_locale) { return (iface->get_image_locale) (image); } else { return NULL; } }
static void _do_test_photo(AtkObject *obj) { const char *name = atk_object_get_name(obj); const char *type_name = g_type_name(G_TYPE_FROM_INSTANCE(obj)); const char * const desc_test = "top secret"; const char *desc; int height = 0, width = 0; int x = -1, y = -1; _printf("_get_name: %s\n", name ? name : "NULL"); _printf("_get_type_name: %s\n", type_name ? type_name : "NULL"); g_assert(ATK_IS_IMAGE(obj)); AtkStateSet *state_set = atk_object_ref_state_set(obj); g_object_unref(state_set); // test AtkImage atk_image_get_image_position(ATK_IMAGE(obj), &x, &y, ATK_XY_SCREEN); _printf("atk_image_get_image_position on screen: x: %d y %d\n", x, y); g_assert(NULL == atk_image_get_image_description(ATK_IMAGE(obj))); g_assert(TRUE == atk_image_set_image_description(ATK_IMAGE(obj), desc_test)); desc = atk_image_get_image_description(ATK_IMAGE(obj)); _printf("atk_image_get_image_description: %s\n", desc ? desc : "NULL"); g_assert(NULL != desc); g_assert_cmpstr(desc_test, ==, desc); atk_image_get_image_size(ATK_IMAGE(obj), &height, &width); _printf("atk_image_get_image_size: height %d width %d\n", height, width); // test AtkAction g_assert(ACTIONS_NUMBER == atk_action_get_n_actions(ATK_ACTION(obj))); eailu_test_action_activate(ATK_ACTION(obj), "click"); g_assert((eailu_get_action_number(ATK_ACTION(obj), "typo")) == -1); eailu_test_action_description_all(ATK_ACTION(obj)); }
SpiAccessible * spi_accessible_construct (GType type, AtkObject *o) { SpiAccessible *retval; CORBA_Environment ev; CORBA_exception_init (&ev); g_assert (o); g_assert (g_type_is_a (type, SPI_ACCESSIBLE_TYPE)); if ((retval = g_hash_table_lookup (get_public_refs (), o))) { bonobo_object_ref (BONOBO_OBJECT (retval)); return retval; } else { retval = g_object_new (type, NULL); spi_base_construct (SPI_BASE (retval), G_OBJECT(o)); } g_hash_table_insert (get_public_refs (), o, retval); g_signal_connect (G_OBJECT (retval), "destroy", G_CALLBACK (de_register_public_ref), NULL); /* aggregate appropriate SPI interfaces based on ATK interfaces */ if (ATK_IS_ACTION (o)) { bonobo_object_add_interface (bonobo_object (retval), BONOBO_OBJECT (spi_action_interface_new (o))); } if (ATK_IS_COMPONENT (o)) { bonobo_object_add_interface (bonobo_object (retval), BONOBO_OBJECT (spi_component_interface_new (o))); } if (ATK_IS_EDITABLE_TEXT (o)) { bonobo_object_add_interface (bonobo_object (retval), BONOBO_OBJECT(spi_editable_text_interface_new (o))); } else if (ATK_IS_TEXT (o)) { bonobo_object_add_interface (bonobo_object (retval), BONOBO_OBJECT (spi_text_interface_new (o))); } if (ATK_IS_HYPERTEXT (o)) { bonobo_object_add_interface (bonobo_object (retval), BONOBO_OBJECT (spi_hypertext_interface_new (o))); } if (ATK_IS_IMAGE (o)) { bonobo_object_add_interface (bonobo_object (retval), BONOBO_OBJECT (spi_image_interface_new (o))); } if (ATK_IS_SELECTION (o)) { bonobo_object_add_interface (bonobo_object (retval), BONOBO_OBJECT (spi_selection_interface_new (o))); } if (ATK_IS_TABLE (o)) { bonobo_object_add_interface (bonobo_object (retval), BONOBO_OBJECT (spi_table_interface_new (o))); } if (ATK_IS_VALUE (o)) { bonobo_object_add_interface (bonobo_object (retval), BONOBO_OBJECT (spi_value_interface_new (o))); } if (ATK_IS_STREAMABLE_CONTENT (o)) { bonobo_object_add_interface (bonobo_object (retval), BONOBO_OBJECT (spi_streamable_interface_new (o))); } if (ATK_IS_DOCUMENT (o)) /* We add collection interface to document */ { SpiDocument *doc = spi_document_interface_new (o); bonobo_object_add_interface (BONOBO_OBJECT (doc), BONOBO_OBJECT (spi_collection_interface_new (o))); bonobo_object_add_interface (bonobo_object (retval), BONOBO_OBJECT (doc)); } if (ATK_IS_HYPERLINK_IMPL (o)) { /* !!! the cast below is used instead of the ATK_HYPERLINK macro, since the object 'o' is not really a hyperlink, but is in fact an AtkHyperlinkImpl. Ouch. This works since it gets cast back to GObject, but it's nasty and needs to be cleaned up. */ bonobo_object_add_interface (bonobo_object (retval), BONOBO_OBJECT (spi_hyperlink_new ((AtkHyperlink*)o))); } return retval; }