1116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Copyright 2014 The Chromium Authors. All rights reserved.
2116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Use of this source code is governed by a BSD-style license that can be
3116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// found in the LICENSE file.
4116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
5116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "athena/activity/activity_widget_delegate.h"
6116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
7116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "athena/activity/activity_frame_view.h"
8116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "athena/activity/public/activity_view_model.h"
9116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "ui/views/view.h"
10116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "ui/views/window/client_view.h"
11116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
12116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace athena {
13116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
14116680a4aac90f2aa7413d9095a592090648e557Ben MurdochActivityWidgetDelegate::ActivityWidgetDelegate(ActivityViewModel* view_model)
15116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    : view_model_(view_model) {
16116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
17116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
18116680a4aac90f2aa7413d9095a592090648e557Ben MurdochActivityWidgetDelegate::~ActivityWidgetDelegate() {
19116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
20116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
21116680a4aac90f2aa7413d9095a592090648e557Ben Murdochbase::string16 ActivityWidgetDelegate::GetWindowTitle() const {
22116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  return view_model_->GetTitle();
23116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
24116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
25116680a4aac90f2aa7413d9095a592090648e557Ben Murdochvoid ActivityWidgetDelegate::DeleteDelegate() {
26116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  delete this;
27116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
28116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
29116680a4aac90f2aa7413d9095a592090648e557Ben Murdochviews::Widget* ActivityWidgetDelegate::GetWidget() {
30116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  return GetContentsView()->GetWidget();
31116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
32116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
33116680a4aac90f2aa7413d9095a592090648e557Ben Murdochconst views::Widget* ActivityWidgetDelegate::GetWidget() const {
34116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  return const_cast<ActivityWidgetDelegate*>(this)->GetWidget();
35116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
36116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
37116680a4aac90f2aa7413d9095a592090648e557Ben Murdochviews::View* ActivityWidgetDelegate::GetContentsView() {
38116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  return view_model_->GetContentsView();
39116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
40116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
41116680a4aac90f2aa7413d9095a592090648e557Ben Murdochviews::ClientView* ActivityWidgetDelegate::CreateClientView(
42116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    views::Widget* widget) {
43116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  return new views::ClientView(widget, view_model_->GetContentsView());
44116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
45116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
46116680a4aac90f2aa7413d9095a592090648e557Ben Murdochviews::NonClientFrameView* ActivityWidgetDelegate::CreateNonClientFrameView(
47116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    views::Widget* widget) {
48116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  return new ActivityFrameView(widget, view_model_);
49116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
50116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
51116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}  // namespace athena
52