Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / athena / content / app_activity_proxy.h
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
3 // found in the LICENSE file.
4
5 #ifndef ATHENA_CONTENT_APP_ACTIVITY_PROXY_H_
6 #define ATHENA_CONTENT_APP_ACTIVITY_PROXY_H_
7
8 #include <vector>
9
10 #include "athena/activity/public/activity.h"
11 #include "athena/activity/public/activity_view_model.h"
12 #include "athena/content/content_proxy.h"
13 #include "base/memory/scoped_ptr.h"
14
15 namespace athena {
16
17 class AppActivity;
18 class AppActivityRegistry;
19
20 // This activity object is a proxy placeholder for the application while it is
21 // unloaded. When selected it will launch the application again and destroy
22 // itself indirectly.
23 class AppActivityProxy : public Activity,
24                          public ActivityViewModel {
25  public:
26   // The |replaced_activity| is the activity which this proxy replaces. Note
27   // that after the Init() call got called, this object will become invalid.
28   // The |creator| should be informed when the object goes away.
29   AppActivityProxy(AppActivity* replaced_activity,
30                    AppActivityRegistry* creator);
31
32  protected:
33   virtual ~AppActivityProxy();
34
35  // Activity overrides:
36   virtual ActivityViewModel* GetActivityViewModel() OVERRIDE;
37   virtual void SetCurrentState(ActivityState state) OVERRIDE;
38   virtual ActivityState GetCurrentState() OVERRIDE;
39   virtual bool IsVisible() OVERRIDE;
40   virtual ActivityMediaState GetMediaState() OVERRIDE;
41   virtual aura::Window* GetWindow() OVERRIDE;
42   virtual content::WebContents* GetWebContents() OVERRIDE;
43
44   // ActivityViewModel overrides:
45   virtual void Init() OVERRIDE;
46   virtual SkColor GetRepresentativeColor() const OVERRIDE;
47   virtual base::string16 GetTitle() const OVERRIDE;
48   virtual gfx::ImageSkia GetIcon() const OVERRIDE;
49   virtual bool UsesFrame() const OVERRIDE;
50   virtual views::View* GetContentsView() OVERRIDE;
51   virtual views::Widget* CreateWidget() OVERRIDE;
52   virtual gfx::ImageSkia GetOverviewModeImage() OVERRIDE;
53   virtual void PrepareContentsForOverview() OVERRIDE;
54   virtual void ResetContentsView() OVERRIDE;
55
56  private:
57   // The creator of this object which needs to be informed if the object gets
58   // destroyed or the application should get restarted.
59   AppActivityRegistry* app_activity_registry_;
60
61   // The presentation values.
62   const base::string16 title_;
63   const SkColor color_;
64
65   // The activity which gets replaced. It is used to sort the activity against
66   // upon initialization. Once moved, this value gets reset since the object
67   // can go away at any time.
68   AppActivity* replaced_activity_;
69
70   // The associated view.
71   views::View* view_;
72
73   // The content proxy.
74   scoped_ptr<ContentProxy> content_proxy_;
75
76   DISALLOW_COPY_AND_ASSIGN(AppActivityProxy);
77 };
78
79 }  // namespace athena
80
81 #endif  // ATHENA_CONTENT_APP_ACTIVITY_PROXY_H_