15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* From dev/ppb_widget_dev.idl modified Mon Aug 20 10:21:06 2012. */ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PPAPI_C_DEV_PPB_WIDGET_DEV_H_ 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PPAPI_C_DEV_PPB_WIDGET_DEV_H_ 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_bool.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_macros.h" 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_point.h" 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_rect.h" 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_resource.h" 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_size.h" 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_stdint.h" 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PPB_WIDGET_DEV_INTERFACE_0_3 "PPB_Widget(Dev);0.3" 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PPB_WIDGET_DEV_INTERFACE_0_4 "PPB_Widget(Dev);0.4" 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PPB_WIDGET_DEV_INTERFACE PPB_WIDGET_DEV_INTERFACE_0_4 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @file 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Implementation of the widgets interface. 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @addtogroup Interfaces 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @{ 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * The interface for reusing browser widgets. 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct PPB_Widget_Dev_0_4 { 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Returns PP_TRUE if the given resource is a Widget. Returns PP_FALSE if the 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * resource is invalid or some type other than an Widget. 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Bool (*IsWidget)(PP_Resource resource); 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Paint the given rectangle of the widget into the given image. 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Returns PP_TRUE on success, PP_FALSE on failure. 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Bool (*Paint)(PP_Resource widget, 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const struct PP_Rect* rect, 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Resource image); 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Pass in an event to a widget. It'll return PP_TRUE if the event was 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * consumed. 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Bool (*HandleEvent)(PP_Resource widget, PP_Resource input_event); 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Get the location of the widget. 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Bool (*GetLocation)(PP_Resource widget, struct PP_Rect* location); 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Set the location of the widget. 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void (*SetLocation)(PP_Resource widget, const struct PP_Rect* location); 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Set scale used during paint operations. 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void (*SetScale)(PP_Resource widget, float scale); 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct PPB_Widget_Dev_0_4 PPB_Widget_Dev; 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct PPB_Widget_Dev_0_3 { 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Bool (*IsWidget)(PP_Resource resource); 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Bool (*Paint)(PP_Resource widget, 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const struct PP_Rect* rect, 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Resource image); 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Bool (*HandleEvent)(PP_Resource widget, PP_Resource input_event); 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Bool (*GetLocation)(PP_Resource widget, struct PP_Rect* location); 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void (*SetLocation)(PP_Resource widget, const struct PP_Rect* location); 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @} 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* PPAPI_C_DEV_PPB_WIDGET_DEV_H_ */ 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85