chromium/ash/fast_ink/laser/laser_pointer_controller_test_api.cc

// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "ash/fast_ink/laser/laser_pointer_controller_test_api.h"

#include "ash/fast_ink/fast_ink_points.h"
#include "ash/fast_ink/laser/laser_pointer_controller.h"
#include "ash/fast_ink/laser/laser_pointer_view.h"
#include "ash/shelf/shelf.h"
#include "ash/shell.h"
#include "ash/system/status_area_widget.h"

namespace ash {

LaserPointerControllerTestApi::LaserPointerControllerTestApi(
    LaserPointerController* instance)
    : instance_(instance) {}

LaserPointerControllerTestApi::~LaserPointerControllerTestApi() = default;

void LaserPointerControllerTestApi::SetEnabled(bool enabled) {
  instance_->SetEnabled(enabled);
}

bool LaserPointerControllerTestApi::IsEnabled() const {
  return instance_->is_enabled();
}

bool LaserPointerControllerTestApi::IsShowingLaserPointer() const {
  return !!instance_->laser_pointer_view_widget_;
}

bool LaserPointerControllerTestApi::IsFadingAway() const {
  return IsShowingLaserPointer() &&
         !instance_->GetLaserPointerView()->fadeout_done_.is_null();
}

PaletteTray* LaserPointerControllerTestApi::GetPaletteTrayOnDisplay(
    int64_t display_id) const {
  aura::Window* window = Shell::GetRootWindowForDisplayId(display_id);
  DCHECK(window);
  return Shelf::ForWindow(window)->GetStatusAreaWidget()->palette_tray();
}

const FastInkPoints& LaserPointerControllerTestApi::laser_points() const {
  return instance_->GetLaserPointerView()->laser_points_;
}

const FastInkPoints& LaserPointerControllerTestApi::predicted_laser_points()
    const {
  return instance_->GetLaserPointerView()->predicted_laser_points_;
}

}  // namespace ash