| // Copyright 2014 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "athena/test/test_app_model_builder.h" |
| |
| #include "ui/app_list/app_list_item.h" |
| #include "ui/app_list/app_list_model.h" |
| |
| namespace athena { |
| |
| namespace { |
| |
| const int kIconSize = 64; |
| |
| class DummyItem : public app_list::AppListItem { |
| public: |
| enum Type { |
| DUMMY_MAIL, |
| DUMMY_CALENDAR, |
| DUMMY_VIDEO, |
| DUMMY_MUSIC, |
| DUMMY_CONTACT, |
| LAST_TYPE, |
| }; |
| |
| static std::string GetTitle(Type type) { |
| switch (type) { |
| case DUMMY_MAIL: |
| return "mail"; |
| case DUMMY_CALENDAR: |
| return "calendar"; |
| case DUMMY_VIDEO: |
| return "video"; |
| case DUMMY_MUSIC: |
| return "music"; |
| case DUMMY_CONTACT: |
| return "contact"; |
| case LAST_TYPE: |
| break; |
| } |
| NOTREACHED(); |
| return ""; |
| } |
| |
| static std::string GetId(Type type) { |
| return std::string("id-") + GetTitle(type); |
| } |
| |
| explicit DummyItem(Type type) |
| : app_list::AppListItem(GetId(type)), |
| type_(type) { |
| SetIcon(GetIcon(), false /* has_shadow */); |
| SetName(GetTitle(type_)); |
| } |
| |
| private: |
| gfx::ImageSkia GetIcon() const { |
| SkColor color = SK_ColorWHITE; |
| switch (type_) { |
| case DUMMY_MAIL: |
| color = SK_ColorRED; |
| break; |
| case DUMMY_CALENDAR: |
| color = SK_ColorBLUE; |
| break; |
| case DUMMY_VIDEO: |
| color = SK_ColorGREEN; |
| break; |
| case DUMMY_MUSIC: |
| color = SK_ColorYELLOW; |
| break; |
| case DUMMY_CONTACT: |
| color = SK_ColorCYAN; |
| break; |
| case LAST_TYPE: |
| NOTREACHED(); |
| break; |
| } |
| SkBitmap bitmap; |
| bitmap.setConfig(SkBitmap::kARGB_8888_Config, kIconSize, kIconSize); |
| bitmap.allocPixels(); |
| bitmap.eraseColor(color); |
| return gfx::ImageSkia::CreateFrom1xBitmap(bitmap); |
| } |
| |
| Type type_; |
| |
| DISALLOW_COPY_AND_ASSIGN(DummyItem); |
| }; |
| |
| } // namespace |
| |
| TestAppModelBuilder::TestAppModelBuilder() { |
| } |
| |
| TestAppModelBuilder::~TestAppModelBuilder() { |
| } |
| |
| void TestAppModelBuilder::PopulateApps(app_list::AppListModel* model) { |
| for (int i = 0; i < static_cast<int>(DummyItem::LAST_TYPE); ++i) { |
| model->AddItem(scoped_ptr<app_list::AppListItem>( |
| new DummyItem(static_cast<DummyItem::Type>(i)))); |
| } |
| } |
| |
| } // namespace athena |