// Copyright (c) 2012 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_MOUSE_CURSOR_H_ #define PPAPI_CPP_MOUSE_CURSOR_H_ #include "ppapi/c/ppb_mouse_cursor.h" #include "ppapi/cpp/image_data.h" #include "ppapi/cpp/instance_handle.h" #include "ppapi/cpp/point.h" namespace pp { class MouseCursor { public: /// Sets the given mouse cursor. The mouse cursor will be in effect whenever /// the mouse is over the given instance until it is set again by another /// call. Note that you can hide the mouse cursor by setting it to the /// PP_MOUSECURSOR_TYPE_NONE type. /// /// This function allows setting both system defined mouse cursors and /// custom cursors. To set a system-defined cursor, pass the type you want /// and set the custom image to a default-constructor ImageData object. /// To set a custom cursor, set the type to /// PP_MOUSECURSOR_TYPE_CUSTOM and specify your image and hot /// spot. /// /// @param[in] instance A handle identifying the instance that the mouse /// cursor will affect. /// /// @param[in] type A PP_MouseCursor_Type identifying the type /// of mouse cursor to show. See ppapi/c/ppb_mouse_cursor.h. /// /// @param[in] image A ImageData object identifying the /// custom image to set when the type is /// PP_MOUSECURSOR_TYPE_CUSTOM. The image must be less than 32 /// pixels in each direction and must be of the system's native image format. /// When you are specifying a predefined cursor, this parameter should be a /// default-constructed ImageData. /// /// @param[in] hot_spot When setting a custom cursor, this identifies the /// pixel position within the given image of the "hot spot" of the cursor. /// When specifying a stock cursor, this parameter is ignored. /// /// @return true on success, or false if the instance or cursor type /// was invalid or if the image was too large. static bool SetCursor(const InstanceHandle& instance, PP_MouseCursor_Type type, const ImageData& image = ImageData(), const Point& hot_spot = Point(0, 0)); }; } // namespace pp #endif // PPAPI_CPP_MOUSE_CURSOR_H_