diff options
Diffstat (limited to 'ppapi/cpp/dev/zoom_dev.h')
-rw-r--r-- | ppapi/cpp/dev/zoom_dev.h | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/ppapi/cpp/dev/zoom_dev.h b/ppapi/cpp/dev/zoom_dev.h new file mode 100644 index 0000000..0a079f0 --- /dev/null +++ b/ppapi/cpp/dev/zoom_dev.h @@ -0,0 +1,58 @@ +// 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" + +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: + 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: + Instance* associated_instance_; +}; + +} // namespace pp + +#endif // PPAPI_CPP_DEV_ZOOM_DEV_H_ |