// Copyright (c) 2010 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef PPAPI_CPP_DEV_WIDGET_CLIENT_DEV_H_ #define PPAPI_CPP_DEV_WIDGET_CLIENT_DEV_H_ #include "ppapi/c/pp_stdint.h" #include "ppapi/cpp/instance_handle.h" namespace pp { class Instance; class Rect; class Scrollbar_Dev; class Widget_Dev; // This class provides a C++ interface for callbacks related to widgets. You // would normally use multiple inheritance to derive from this class in your // instance. class WidgetClient_Dev { public: explicit WidgetClient_Dev(Instance* instance); virtual ~WidgetClient_Dev(); /** * Notification that the given widget should be repainted. This is the * implementation for PPP_Widget_Dev. */ virtual void InvalidateWidget(Widget_Dev widget, const Rect& dirty_rect) = 0; /** * Notification that the given scrollbar should change value. This is the * implementation for PPP_Scrollbar_Dev. */ virtual void ScrollbarValueChanged(Scrollbar_Dev scrollbar, uint32_t value) = 0; /** * Notification that the given scrollbar's overlay type has changed. This is * the implementation for PPP_Scrollbar_Dev. */ virtual void ScrollbarOverlayChanged(Scrollbar_Dev scrollbar, bool type) = 0; private: InstanceHandle associated_instance_; }; } // namespace pp #endif // PPAPI_CPP_DEV_WIDGET_CLIENT_DEV_H_