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 REMOTING_PROTOCOL_CLIPBOARD_FILTER_H_ 6#define REMOTING_PROTOCOL_CLIPBOARD_FILTER_H_ 7 8#include "base/basictypes.h" 9#include "base/compiler_specific.h" 10#include "remoting/protocol/clipboard_stub.h" 11 12namespace remoting { 13namespace protocol { 14 15// Forwards clipboard events to |clipboard_stub|, if configured. Event 16// forwarding may also be disabled independently of the configured 17// |clipboard_stub|. ClipboardFilters initially have event forwarding enabled. 18class ClipboardFilter : public ClipboardStub { 19 public: 20 ClipboardFilter(); 21 explicit ClipboardFilter(ClipboardStub* clipboard_stub); 22 virtual ~ClipboardFilter(); 23 24 // Set the ClipboardStub that events will be forwarded to. 25 void set_clipboard_stub(ClipboardStub* clipboard_stub); 26 27 // Enable/disable forwarding of clipboard events to the ClipboardStub. 28 void set_enabled(bool enabled) { enabled_ = enabled; } 29 bool enabled() const { return enabled_; } 30 31 // ClipboardStub interface. 32 virtual void InjectClipboardEvent(const ClipboardEvent& event) OVERRIDE; 33 34 private: 35 ClipboardStub* clipboard_stub_; 36 bool enabled_; 37 38 DISALLOW_COPY_AND_ASSIGN(ClipboardFilter); 39}; 40 41} // namespace protocol 42} // namespace remoting 43 44#endif // REMOTING_PROTOCOL_CLIPBOARD_FILTER_H_ 45