blob: 7fc94186c8c2550facb0be0aa8fce805fafed2b4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
// 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/at_exit.h"
#include "base/command_line.h"
#include "base/i18n/icu_util.h"
#include "base/memory/scoped_ptr.h"
#include "base/message_loop.h"
#include "ui/aura/root_window.h"
#include "ui/aura_shell/examples/example_factory.h"
#include "ui/aura_shell/examples/toplevel_window.h"
#include "ui/aura_shell/launcher/launcher_types.h"
#include "ui/aura_shell/shell.h"
#include "ui/aura_shell/shell_delegate.h"
#include "ui/aura_shell/shell_factory.h"
#include "ui/aura_shell/window_util.h"
#include "ui/base/resource/resource_bundle.h"
#include "ui/base/ui_base_paths.h"
#include "ui/gfx/canvas.h"
#include "ui/gfx/compositor/test/compositor_test_support.h"
#include "ui/views/widget/widget.h"
#include "ui/views/widget/widget_delegate.h"
namespace {
class ShellDelegateImpl : public aura_shell::ShellDelegate {
public:
ShellDelegateImpl() {
}
virtual void CreateNewWindow() OVERRIDE {
aura_shell::examples::ToplevelWindow::CreateParams create_params;
create_params.can_resize = true;
create_params.can_maximize = true;
aura_shell::examples::ToplevelWindow::CreateToplevelWindow(create_params);
}
virtual views::Widget* CreateStatusArea() OVERRIDE {
return aura_shell::internal::CreateStatusArea();
}
virtual void RequestAppListWidget(
const gfx::Rect& bounds,
const SetWidgetCallback& callback) OVERRIDE {
// TODO(xiyuan): Clean this up.
// The code below here is because we don't want to use
// --aura-views-applist. This function is deprecated and all code
// here will be removed when we clean it up.
aura_shell::examples::CreateAppList(bounds, callback);
}
virtual void BuildAppListModel(aura_shell::AppListModel* model) {
aura_shell::examples::BuildAppListModel(model);
}
virtual aura_shell::AppListViewDelegate* CreateAppListViewDelegate() {
return aura_shell::examples::CreateAppListViewDelegate();
}
virtual void LauncherItemClicked(
const aura_shell::LauncherItem& item) OVERRIDE {
aura_shell::ActivateWindow(item.window);
}
virtual bool ConfigureLauncherItem(aura_shell::LauncherItem* item) OVERRIDE {
static int image_count = 0;
item->tab_images.resize(image_count + 1);
for (int i = 0; i < image_count + 1; ++i) {
item->tab_images[i].image.setConfig(SkBitmap::kARGB_8888_Config, 16, 16);
item->tab_images[i].image.allocPixels();
item->tab_images[i].image.eraseARGB(255,
i == 0 ? 255 : 0,
i == 1 ? 255 : 0,
i == 2 ? 255 : 0);
}
image_count = (image_count + 1) % 3;
return true; // Makes the entry show up in the launcher.
}
};
} // namespace
namespace aura_shell {
namespace examples {
void InitWindowTypeLauncher();
} // namespace examples
} // namespace aura_shell
int main(int argc, char** argv) {
CommandLine::Init(argc, argv);
// The exit manager is in charge of calling the dtors of singleton objects.
base::AtExitManager exit_manager;
ui::RegisterPathProvider();
icu_util::Initialize();
ResourceBundle::InitSharedInstance("en-US");
// Create the message-loop here before creating the root window.
MessageLoop message_loop(MessageLoop::TYPE_UI);
ui::CompositorTestSupport::Initialize();
aura_shell::Shell::CreateInstance(new ShellDelegateImpl);
aura_shell::examples::InitWindowTypeLauncher();
aura::RootWindow::GetInstance()->Run();
aura_shell::Shell::DeleteInstance();
aura::RootWindow::DeleteInstance();
ui::CompositorTestSupport::Terminate();
return 0;
}
|