| // 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_ZOOM_DEV_H_ |
| #define PPAPI_CPP_DEV_ZOOM_DEV_H_ |
| |
| #include <string> |
| |
| #include "ppapi/c/dev/ppp_zoom_dev.h" |
| #include "ppapi/cpp/instance_handle.h" |
| |
| namespace pp { |
| |
| class Instance; |
| |
| // This class allows you to associate the PPP_Zoom_Dev and PPB_Zoom_Dev C-based |
| // interfaces with an object. It associates itself with the given instance, and |
| // registers as the global handler for handling the PPP_Zoom_Dev interface that |
| // the browser calls. |
| // |
| // You would typically use this either via inheritance on your instance: |
| // class MyInstance : public pp::Instance, public pp::Zoom_Dev { |
| // class MyInstance() : pp::Zoom_Dev(this) { |
| // } |
| // ... |
| // }; |
| // |
| // or by composition: |
| // class MyZoom : public pp::Zoom_Dev { |
| // ... |
| // }; |
| // |
| // class MyInstance : public pp::Instance { |
| // MyInstance() : zoom_(this) { |
| // } |
| // |
| // MyZoom zoom_; |
| // }; |
| class Zoom_Dev { |
| public: |
| explicit Zoom_Dev(Instance* instance); |
| virtual ~Zoom_Dev(); |
| |
| // PPP_Zoom_Dev functions exposed as virtual functions for you to |
| // override. |
| virtual void Zoom(double factor, bool text_only) = 0; |
| |
| // PPB_Zoom_Def functions for you to call to report new zoom factor. |
| void ZoomChanged(double factor); |
| void ZoomLimitsChanged(double minimum_factor, double maximium_factor); |
| |
| private: |
| InstanceHandle associated_instance_; |
| }; |
| |
| } // namespace pp |
| |
| #endif // PPAPI_CPP_DEV_ZOOM_DEV_H_ |