1 // Copyright 2018 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 #include "ash/system/model/virtual_keyboard_model.h" 6 7 namespace ash { 8 9 VirtualKeyboardModel::VirtualKeyboardModel() = default; 10 VirtualKeyboardModel::~VirtualKeyboardModel() = default; 11 AddObserver(VirtualKeyboardModel::Observer * observer)12void VirtualKeyboardModel::AddObserver( 13 VirtualKeyboardModel::Observer* observer) { 14 observers_.AddObserver(observer); 15 } 16 RemoveObserver(VirtualKeyboardModel::Observer * observer)17void VirtualKeyboardModel::RemoveObserver( 18 VirtualKeyboardModel::Observer* observer) { 19 observers_.RemoveObserver(observer); 20 } 21 SetInputMethodBoundsTrackerObserver(ArcInputMethodBoundsTracker * input_method_bounds_tracker)22void VirtualKeyboardModel::SetInputMethodBoundsTrackerObserver( 23 ArcInputMethodBoundsTracker* input_method_bounds_tracker) { 24 DCHECK(input_method_bounds_tracker); 25 input_method_bounds_tracker->AddObserver(this); 26 } 27 RemoveInputMethodBoundsTrackerObserver(ArcInputMethodBoundsTracker * input_method_bounds_tracker)28void VirtualKeyboardModel::RemoveInputMethodBoundsTrackerObserver( 29 ArcInputMethodBoundsTracker* input_method_bounds_tracker) { 30 DCHECK(input_method_bounds_tracker); 31 input_method_bounds_tracker->RemoveObserver(this); 32 } 33 OnArcInputMethodBoundsChanged(const gfx::Rect & bounds)34void VirtualKeyboardModel::OnArcInputMethodBoundsChanged( 35 const gfx::Rect& bounds) { 36 arc_keyboard_bounds_ = bounds; 37 const bool new_visible = !bounds.IsEmpty(); 38 if (visible_ == new_visible) 39 return; 40 visible_ = new_visible; 41 NotifyChanged(); 42 } 43 NotifyChanged()44void VirtualKeyboardModel::NotifyChanged() { 45 for (auto& observer : observers_) 46 observer.OnVirtualKeyboardVisibilityChanged(); 47 } 48 49 } // namespace ash 50