michael@0: /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- michael@0: * vim: sw=2 ts=8 et : michael@0: */ michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: #ifndef mozilla_layers_ShadowLayerParent_h michael@0: #define mozilla_layers_ShadowLayerParent_h michael@0: michael@0: #include "mozilla/Attributes.h" // for MOZ_OVERRIDE michael@0: #include "mozilla/ipc/ProtocolUtils.h" michael@0: #include "mozilla/layers/PLayerParent.h" // for PLayerParent michael@0: #include "nsAutoPtr.h" // for nsRefPtr michael@0: michael@0: namespace mozilla { michael@0: namespace layers { michael@0: michael@0: class ContainerLayer; michael@0: class Layer; michael@0: class LayerManager; michael@0: michael@0: class CanvasLayerComposite; michael@0: class ColorLayerComposite; michael@0: class ContainerLayerComposite; michael@0: class ImageLayerComposite; michael@0: class RefLayerComposite; michael@0: class ThebesLayerComposite; michael@0: michael@0: class ShadowLayerParent : public PLayerParent michael@0: { michael@0: public: michael@0: ShadowLayerParent(); michael@0: michael@0: virtual ~ShadowLayerParent(); michael@0: michael@0: void Bind(Layer* layer); michael@0: void Destroy(); michael@0: michael@0: Layer* AsLayer() const { return mLayer; } michael@0: michael@0: ContainerLayerComposite* AsContainerLayerComposite() const; michael@0: CanvasLayerComposite* AsCanvasLayerComposite() const; michael@0: ColorLayerComposite* AsColorLayerComposite() const; michael@0: ImageLayerComposite* AsImageLayerComposite() const; michael@0: RefLayerComposite* AsRefLayerComposite() const; michael@0: ThebesLayerComposite* AsThebesLayerComposite() const; michael@0: michael@0: private: michael@0: virtual void ActorDestroy(ActorDestroyReason why) MOZ_OVERRIDE; michael@0: michael@0: nsRefPtr mLayer; michael@0: }; michael@0: michael@0: } // namespace layers michael@0: } // namespace mozilla michael@0: michael@0: #endif // ifndef mozilla_layers_ShadowLayerParent_h