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_scrollbar_dev.idl modified Wed Oct 5 14:06:02 2011. */ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PPAPI_C_DEV_PPB_SCROLLBAR_DEV_H_ 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PPAPI_C_DEV_PPB_SCROLLBAR_DEV_H_ 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_bool.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_instance.h" 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_macros.h" 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_point.h" 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_rect.h" 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_resource.h" 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_size.h" 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_stdint.h" 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PPB_SCROLLBAR_DEV_INTERFACE_0_5 "PPB_Scrollbar(Dev);0.5" 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PPB_SCROLLBAR_DEV_INTERFACE PPB_SCROLLBAR_DEV_INTERFACE_0_5 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @file 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * This file defines the <code>PPB_Buffer_Dev</code> interface. 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @addtogroup Enums 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @{ 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef enum { 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_SCROLLBY_PIXEL = 0, 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_SCROLLBY_LINE = 1, 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_SCROLLBY_PAGE = 2, 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_SCROLLBY_DOCUMENT = 3 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} PP_ScrollBy_Dev; 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_ScrollBy_Dev, 4); 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @} 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @addtogroup Interfaces 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @{ 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * The interface for a scrollbar. A scrollbar is a widget, so the functions 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * in PPB_Widget can also be used with scrollbar objects. 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct PPB_Scrollbar_Dev_0_5 { 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Create a new scrollbar. Returns 0 if the instance is invalid. 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Resource (*Create)(PP_Instance instance, PP_Bool vertical); 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Returns PP_TRUE if the given resource is a Scrollbar. Returns PP_FALSE if 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * the resource is invalid or some type other than a scrollbar. 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Bool (*IsScrollbar)(PP_Resource resource); 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Gets the thickness of a scrollbar. 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uint32_t (*GetThickness)(PP_Resource resource); 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Returns PP_TRUE if the system scrollbar style is an overlap scrollbar. 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Bool (*IsOverlay)(PP_Resource scrollbar); 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Gets the value of the scrollbar. 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uint32_t (*GetValue)(PP_Resource scrollbar); 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Sets the value of the scrollbar. 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void (*SetValue)(PP_Resource scrollbar, uint32_t value); 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Set the document size (i.e. total length of the region that's being 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * scrolled). 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void (*SetDocumentSize)(PP_Resource scrollbar, uint32_t size); 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Updates the tickmarks. Only valid for vertical scrollbars. "tick_marks" 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * contains "count" PP_Rect objects. 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void (*SetTickMarks)(PP_Resource scrollbar, 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const struct PP_Rect tick_marks[], 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uint32_t count); 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Scroll by "multiplier" pixels/lines/pages units. Positive values are 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * forward and negative are backward. If "unit" is document then any positive 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * value goes to the end while any negative value goes to the beginning. 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void (*ScrollBy)(PP_Resource scrollbar, 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_ScrollBy_Dev unit, 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32_t multiplier); 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct PPB_Scrollbar_Dev_0_5 PPB_Scrollbar_Dev; 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @} 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* PPAPI_C_DEV_PPB_SCROLLBAR_DEV_H_ */ 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 107