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