Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(101)

Side by Side Diff: athena/home/home_card_impl.cc

Issue 388703002: Introduce state to home card. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | athena/home/public/home_card.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "athena/home/public/home_card.h" 5 #include "athena/home/public/home_card.h"
6 6
7 #include "athena/home/app_list_view_delegate.h" 7 #include "athena/home/app_list_view_delegate.h"
8 #include "athena/home/public/app_model_builder.h" 8 #include "athena/home/public/app_model_builder.h"
9 #include "athena/input/public/accelerator_manager.h" 9 #include "athena/input/public/accelerator_manager.h"
10 #include "athena/screen/public/screen_manager.h" 10 #include "athena/screen/public/screen_manager.h"
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 86
87 void Init(); 87 void Init();
88 88
89 private: 89 private:
90 enum Command { 90 enum Command {
91 COMMAND_SHOW_HOME_CARD, 91 COMMAND_SHOW_HOME_CARD,
92 }; 92 };
93 void InstallAccelerators(); 93 void InstallAccelerators();
94 94
95 // Overridden from HomeCard: 95 // Overridden from HomeCard:
96 virtual void SetState(State state) OVERRIDE;
96 virtual void RegisterSearchProvider( 97 virtual void RegisterSearchProvider(
97 app_list::SearchProvider* search_provider) OVERRIDE; 98 app_list::SearchProvider* search_provider) OVERRIDE;
98 virtual void UpdateVirtualKeyboardBounds( 99 virtual void UpdateVirtualKeyboardBounds(
99 const gfx::Rect& bounds) OVERRIDE; 100 const gfx::Rect& bounds) OVERRIDE;
100 101
101 // AcceleratorHandler: 102 // AcceleratorHandler:
102 virtual bool IsCommandEnabled(int command_id) const OVERRIDE { return true; } 103 virtual bool IsCommandEnabled(int command_id) const OVERRIDE { return true; }
103 virtual bool OnAcceleratorFired(int command_id, 104 virtual bool OnAcceleratorFired(int command_id,
104 const ui::Accelerator& accelerator) OVERRIDE { 105 const ui::Accelerator& accelerator) OVERRIDE {
105 DCHECK_EQ(COMMAND_SHOW_HOME_CARD, command_id); 106 DCHECK_EQ(COMMAND_SHOW_HOME_CARD, command_id);
106 if (home_card_widget_->IsVisible()) 107 if (state_ == HIDDEN)
107 home_card_widget_->Hide(); 108 SetState(VISIBLE_CENTERED);
108 else 109 else
109 home_card_widget_->Show(); 110 SetState(HIDDEN);
110 return true; 111 return true;
111 } 112 }
112 113
113 scoped_ptr<AppModelBuilder> model_builder_; 114 scoped_ptr<AppModelBuilder> model_builder_;
114 115
116 HomeCard::State state_;
117
115 views::Widget* home_card_widget_; 118 views::Widget* home_card_widget_;
116 AppListViewDelegate* view_delegate_; 119 AppListViewDelegate* view_delegate_;
117 HomeCardLayoutManager* layout_manager_; 120 HomeCardLayoutManager* layout_manager_;
118 121
119 // Right now HomeCard allows only one search provider. 122 // Right now HomeCard allows only one search provider.
120 // TODO(mukai): port app-list's SearchController and Mixer. 123 // TODO(mukai): port app-list's SearchController and Mixer.
121 scoped_ptr<app_list::SearchProvider> search_provider_; 124 scoped_ptr<app_list::SearchProvider> search_provider_;
122 125
123 DISALLOW_COPY_AND_ASSIGN(HomeCardImpl); 126 DISALLOW_COPY_AND_ASSIGN(HomeCardImpl);
124 }; 127 };
125 128
126 HomeCardImpl::HomeCardImpl(AppModelBuilder* model_builder) 129 HomeCardImpl::HomeCardImpl(AppModelBuilder* model_builder)
127 : model_builder_(model_builder), 130 : model_builder_(model_builder),
131 state_(HIDDEN),
128 home_card_widget_(NULL), 132 home_card_widget_(NULL),
129 layout_manager_(NULL) { 133 layout_manager_(NULL) {
130 DCHECK(!instance); 134 DCHECK(!instance);
131 instance = this; 135 instance = this;
132 } 136 }
133 137
134 HomeCardImpl::~HomeCardImpl() { 138 HomeCardImpl::~HomeCardImpl() {
135 DCHECK(instance); 139 DCHECK(instance);
136 home_card_widget_->CloseNow(); 140 home_card_widget_->CloseNow();
137 view_delegate_ = NULL; 141 view_delegate_ = NULL;
138 instance = NULL; 142 instance = NULL;
139 } 143 }
140 144
145 void HomeCardImpl::SetState(HomeCard::State state) {
146 if (state == HIDDEN)
147 home_card_widget_->Hide();
148 else
149 home_card_widget_->Show();
150 state_ = state;
151 }
152
141 void HomeCardImpl::RegisterSearchProvider( 153 void HomeCardImpl::RegisterSearchProvider(
142 app_list::SearchProvider* search_provider) { 154 app_list::SearchProvider* search_provider) {
143 DCHECK(!search_provider_); 155 DCHECK(!search_provider_);
144 search_provider_.reset(search_provider); 156 search_provider_.reset(search_provider);
145 view_delegate_->RegisterSearchProvider(search_provider_.get()); 157 view_delegate_->RegisterSearchProvider(search_provider_.get());
146 } 158 }
147 159
148 void HomeCardImpl::UpdateVirtualKeyboardBounds( 160 void HomeCardImpl::UpdateVirtualKeyboardBounds(
149 const gfx::Rect& bounds) { 161 const gfx::Rect& bounds) {
150 layout_manager_->UpdateVirtualKeyboardBounds(bounds); 162 layout_manager_->UpdateVirtualKeyboardBounds(bounds);
(...skipping 12 matching lines...) Expand all
163 if (search_provider_) 175 if (search_provider_)
164 view_delegate_->RegisterSearchProvider(search_provider_.get()); 176 view_delegate_->RegisterSearchProvider(search_provider_.get());
165 app_list::AppListView* view = new app_list::AppListView(view_delegate_); 177 app_list::AppListView* view = new app_list::AppListView(view_delegate_);
166 view->InitAsBubbleAtFixedLocation( 178 view->InitAsBubbleAtFixedLocation(
167 container, 179 container,
168 0 /* initial_apps_page */, 180 0 /* initial_apps_page */,
169 gfx::Point(), 181 gfx::Point(),
170 views::BubbleBorder::FLOAT, 182 views::BubbleBorder::FLOAT,
171 true /* border_accepts_events */); 183 true /* border_accepts_events */);
172 home_card_widget_ = view->GetWidget(); 184 home_card_widget_ = view->GetWidget();
185 // TODO: the initial value might not be visible.
186 state_ = VISIBLE_CENTERED;
173 view->ShowWhenReady(); 187 view->ShowWhenReady();
174 } 188 }
175 189
176 void HomeCardImpl::InstallAccelerators() { 190 void HomeCardImpl::InstallAccelerators() {
177 const AcceleratorData accelerator_data[] = { 191 const AcceleratorData accelerator_data[] = {
178 {TRIGGER_ON_PRESS, ui::VKEY_L, ui::EF_CONTROL_DOWN, 192 {TRIGGER_ON_PRESS, ui::VKEY_L, ui::EF_CONTROL_DOWN,
179 COMMAND_SHOW_HOME_CARD, AF_NONE}, 193 COMMAND_SHOW_HOME_CARD, AF_NONE},
180 }; 194 };
181 AcceleratorManager::Get()->RegisterAccelerators( 195 AcceleratorManager::Get()->RegisterAccelerators(
182 accelerator_data, arraysize(accelerator_data), this); 196 accelerator_data, arraysize(accelerator_data), this);
(...skipping 15 matching lines...) Expand all
198 instance = NULL; 212 instance = NULL;
199 } 213 }
200 214
201 // static 215 // static
202 HomeCard* HomeCard::Get() { 216 HomeCard* HomeCard::Get() {
203 DCHECK(instance); 217 DCHECK(instance);
204 return instance; 218 return instance;
205 } 219 }
206 220
207 } // namespace athena 221 } // namespace athena
OLDNEW
« no previous file with comments | « no previous file | athena/home/public/home_card.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698