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 12 namespace remoting { 13 namespace 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. 18 class 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