| Index: ui/aura_shell/examples/app_list_model.cc
|
| diff --git a/ui/aura_shell/examples/app_list_model.cc b/ui/aura_shell/examples/app_list_model.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..0365120c7ba198db0eb4c600d0e089e658363b9a
|
| --- /dev/null
|
| +++ b/ui/aura_shell/examples/app_list_model.cc
|
| @@ -0,0 +1,133 @@
|
| +// Copyright (c) 2011 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 "base/basictypes.h"
|
| +#include "ui/aura_shell/app_list/app_list_item_model.h"
|
| +#include "ui/aura_shell/app_list/app_list_item_group_model.h"
|
| +#include "ui/aura_shell/app_list/app_list_model.h"
|
| +#include "ui/aura_shell/app_list/tile_view.h"
|
| +#include "ui/aura_shell/examples/example_factory.h"
|
| +#include "ui/aura_shell/examples/toplevel_window.h"
|
| +#include "ui/views/examples/examples_window.h"
|
| +
|
| +namespace aura_shell {
|
| +namespace examples {
|
| +
|
| +namespace {
|
| +
|
| +class WindowTypeLauncherItem : public AppListItemModel {
|
| + public:
|
| + enum Type {
|
| + TOPLEVEL_WINDOW = 0,
|
| + NON_RESIZABLE_WINDOW,
|
| + LOCK_SCREEN,
|
| + WIDGETS_WINDOW,
|
| + EXAMPLES_WINDOW,
|
| + LAST_TYPE,
|
| + };
|
| +
|
| + WindowTypeLauncherItem(Type type)
|
| + : AppListItemModel(GetIcon(type), GetTitle(type)),
|
| + type_(type) {
|
| + }
|
| +
|
| + static SkBitmap GetIcon(Type type) {
|
| + static const SkColor kColors[] = {
|
| + SkColorSetA(SK_ColorRED, 0x4F),
|
| + SkColorSetA(SK_ColorGREEN, 0x4F),
|
| + SkColorSetA(SK_ColorBLUE, 0x4F),
|
| + SkColorSetA(SK_ColorYELLOW, 0x4F),
|
| + SkColorSetA(SK_ColorCYAN, 0x4F),
|
| + };
|
| +
|
| + SkBitmap icon;
|
| + icon.setConfig(SkBitmap::kARGB_8888_Config,
|
| + TileView::kIconSize,
|
| + TileView::kIconSize);
|
| + icon.allocPixels();
|
| + icon.eraseColor(kColors[static_cast<int>(type) % arraysize(kColors)]);
|
| + return icon;
|
| + }
|
| +
|
| + static std::string GetTitle(Type type) {
|
| + switch (type) {
|
| + case TOPLEVEL_WINDOW:
|
| + return "Create Window";
|
| + case NON_RESIZABLE_WINDOW:
|
| + return "Create Non-Resizable Window";
|
| + case LOCK_SCREEN:
|
| + return "Lock Screen";
|
| + case WIDGETS_WINDOW:
|
| + return "Show Example Widgets";
|
| + case EXAMPLES_WINDOW:
|
| + return "Open Views Examples Window";
|
| + default:
|
| + return "Unknown window type.";
|
| + }
|
| + }
|
| +
|
| + private:
|
| + virtual void Activate(int event_flags) OVERRIDE {
|
| + switch (type_) {
|
| + case TOPLEVEL_WINDOW: {
|
| + ToplevelWindow::CreateParams params;
|
| + params.can_resize = true;
|
| + ToplevelWindow::CreateToplevelWindow(params);
|
| + break;
|
| + }
|
| + case NON_RESIZABLE_WINDOW: {
|
| + ToplevelWindow::CreateToplevelWindow(ToplevelWindow::CreateParams());
|
| + break;
|
| + }
|
| + case LOCK_SCREEN: {
|
| + CreateLockScreen();
|
| + break;
|
| + }
|
| + case WIDGETS_WINDOW: {
|
| + CreateWidgetsWindow();
|
| + break;
|
| + }
|
| + case EXAMPLES_WINDOW: {
|
| + views::examples::ShowExamplesWindow(false);
|
| + break;
|
| + }
|
| + default:
|
| + break;
|
| + }
|
| + }
|
| +
|
| + Type type_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(WindowTypeLauncherItem);
|
| +};
|
| +
|
| +AppListItemGroupModel* CreateGroup(const std::string& title,
|
| + WindowTypeLauncherItem::Type start_type,
|
| + WindowTypeLauncherItem::Type end_type) {
|
| + AppListItemGroupModel* group = new AppListItemGroupModel(title);
|
| + for (int i = static_cast<int>(start_type);
|
| + i < static_cast<int>(end_type);
|
| + ++i) {
|
| + WindowTypeLauncherItem::Type type =
|
| + static_cast<WindowTypeLauncherItem::Type>(i);
|
| + group->Add(new WindowTypeLauncherItem(type));
|
| + }
|
| + return group;
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| +AppListModel* CreateAppListModel() {
|
| + AppListModel* model = new AppListModel();
|
| + model->Add(CreateGroup("Window",
|
| + WindowTypeLauncherItem::TOPLEVEL_WINDOW,
|
| + WindowTypeLauncherItem::WIDGETS_WINDOW));
|
| + model->Add(CreateGroup("Samples",
|
| + WindowTypeLauncherItem::WIDGETS_WINDOW,
|
| + WindowTypeLauncherItem::LAST_TYPE));
|
| + return model;
|
| +}
|
| +
|
| +} // namespace examples
|
| +} // namespace aura_shell
|
|
|