/* * Copyright (C) 2008 Nuanti Ltd. * Copyright (C) 2009 Jan Alonzo * Copyright (C) 2009, 2012 Igalia S.L. * Copyright (C) 2013 Samsung Electronics * * Portions from Mozilla a11y, copyright as follows: * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Sun Microsystems, Inc. * Portions created by the Initial Developer are Copyright (C) 2002 * the Initial Developer. All Rights Reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public License * along with this library; see the file COPYING.LIB. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ #include "config.h" #include "WebKitAccessibleInterfaceImage.h" #if HAVE(ACCESSIBILITY) #include "AccessibilityObject.h" #include "IntRect.h" #include "WebKitAccessibleUtil.h" #include "WebKitAccessibleWrapperAtk.h" using namespace WebCore; static AccessibilityObject* core(AtkImage* image) { if (!WEBKIT_IS_ACCESSIBLE(image)) return 0; return webkitAccessibleGetAccessibilityObject(WEBKIT_ACCESSIBLE(image)); } static void webkitAccessibleImageGetImagePosition(AtkImage* image, gint* x, gint* y, AtkCoordType coordType) { g_return_if_fail(ATK_IMAGE(image)); returnIfWebKitAccessibleIsInvalid(WEBKIT_ACCESSIBLE(image)); IntRect rect = snappedIntRect(core(image)->elementRect()); contentsRelativeToAtkCoordinateType(core(image), coordType, rect, x, y); } static const gchar* webkitAccessibleImageGetImageDescription(AtkImage* image) { g_return_val_if_fail(ATK_IMAGE(image), 0); returnValIfWebKitAccessibleIsInvalid(WEBKIT_ACCESSIBLE(image), 0); return cacheAndReturnAtkProperty(ATK_OBJECT(image), AtkCachedImageDescription, accessibilityDescription(core(image))); } static void webkitAccessibleImageGetImageSize(AtkImage* image, gint* width, gint* height) { g_return_if_fail(ATK_IMAGE(image)); returnIfWebKitAccessibleIsInvalid(WEBKIT_ACCESSIBLE(image)); IntSize size = snappedIntRect(core(image)->elementRect()).size(); if (width) *width = size.width(); if (height) *height = size.height(); } void webkitAccessibleImageInterfaceInit(AtkImageIface* iface) { iface->get_image_position = webkitAccessibleImageGetImagePosition; iface->get_image_description = webkitAccessibleImageGetImageDescription; iface->get_image_size = webkitAccessibleImageGetImageSize; } #endif