Home | History | Annotate | Download | only in client
      1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef UI_AURA_CLIENT_CAPTURE_DELEGATE_H_
      6 #define UI_AURA_CLIENT_CAPTURE_DELEGATE_H_
      7 
      8 #include "ui/aura/aura_export.h"
      9 
     10 namespace aura {
     11 class Window;
     12 namespace client {
     13 
     14 // This interface provides API to change the RootWindow's capture state
     15 // without exposing them as RootWindow API.
     16 class AURA_EXPORT CaptureDelegate {
     17  public:
     18   // Called when a capture is set on the |new_capture| which is owned by
     19   // this root window, and/or a capture is released on the |old_capture|
     20   // which is owned by this root window.
     21   virtual void UpdateCapture(aura::Window* old_capture,
     22                              aura::Window* new_capture) = 0;
     23   // Sets/Release a native capture on host windows.
     24   virtual void SetNativeCapture() = 0;
     25   virtual void ReleaseNativeCapture() = 0;
     26 
     27  protected:
     28   virtual ~CaptureDelegate() {}
     29 };
     30 
     31 }  // namespace client
     32 }  // namespace aura
     33 
     34 #endif  // UI_AURA_CLIENT_CAPTURE_DELEGATE_H_
     35