15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ui/app_list/views/test/apps_grid_view_test_api.h"
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "ui/app_list/views/app_list_item_view.h"
82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ui/app_list/views/apps_grid_view.h"
9cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "ui/events/event.h"
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace app_list {
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace test {
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)AppsGridViewTestApi::AppsGridViewTestApi(AppsGridView* view)
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    : view_(view) {
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)AppsGridViewTestApi::~AppsGridViewTestApi() {
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)views::View* AppsGridViewTestApi::GetViewAtModelIndex(int index) const {
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return view_->view_model_.view_at(index);
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void AppsGridViewTestApi::LayoutToIdealBounds() {
2634680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)  if (view_->reorder_timer_.IsRunning()) {
2734680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)    view_->reorder_timer_.Stop();
2834680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)    view_->OnReorderTimer();
2934680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)  }
3034680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)  if (view_->folder_dropping_timer_.IsRunning()) {
3134680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)    view_->folder_dropping_timer_.Stop();
3234680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)    view_->OnFolderDroppingTimer();
3334680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)  }
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  view_->bounds_animator_.Cancel();
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  view_->Layout();
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void AppsGridViewTestApi::SetPageFlipDelay(int page_flip_delay_in_ms) {
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  view_->page_flip_delay_in_ms_ = page_flip_delay_in_ms;
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
42cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)void AppsGridViewTestApi::PressItemAt(int index) {
43cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  GetViewAtModelIndex(index)->OnKeyPressed(
445f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      ui::KeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_RETURN, ui::EF_NONE));
45cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}
46cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
47cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)void AppsGridViewTestApi::DisableSynchronousDrag() {
48cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#if defined(OS_WIN)
49cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  DCHECK(view_->synchronous_drag_ == NULL) << "DisableSynchronousDrag needs to "
50cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)                                              "be called before "
51cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)                                              "synchronous_drag_ is set up.";
52cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  view_->use_synchronous_drag_ = false;
53cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#endif
54cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}
55cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
56f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)bool AppsGridViewTestApi::HasPendingPageFlip() const {
576d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)  return view_->page_flip_timer_.IsRunning() ||
586d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)         view_->pagination_model()->has_transition();
59f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)}
60f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
61f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)}  // namespace test
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace app_list
63