Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / content / browser / web_contents / aura / image_window_delegate.h
1 // Copyright (c) 2013 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 CONTENT_BROWSER_WEB_CONTENTS_AURA_IMAGE_WINDOW_DELEGATE_H_
6 #define CONTENT_BROWSER_WEB_CONTENTS_AURA_IMAGE_WINDOW_DELEGATE_H_
7
8 #include "content/common/content_export.h"
9 #include "ui/aura/window_delegate.h"
10 #include "ui/gfx/image/image.h"
11 #include "ui/gfx/size.h"
12
13 namespace content {
14
15 // An ImageWindowDelegate paints an image for a Window. The delegate destroys
16 // itself when the Window is destroyed. The delegate does not consume any event.
17 class CONTENT_EXPORT ImageWindowDelegate : public aura::WindowDelegate {
18  public:
19   ImageWindowDelegate();
20
21   void SetImage(const gfx::Image& image);
22   bool has_image() const { return !image_.IsEmpty(); }
23
24  protected:
25   ~ImageWindowDelegate() override;
26
27   // Overridden from aura::WindowDelegate:
28   gfx::Size GetMinimumSize() const override;
29   gfx::Size GetMaximumSize() const override;
30   void OnBoundsChanged(const gfx::Rect& old_bounds,
31                        const gfx::Rect& new_bounds) override;
32   gfx::NativeCursor GetCursor(const gfx::Point& point) override;
33   int GetNonClientComponent(const gfx::Point& point) const override;
34   bool ShouldDescendIntoChildForEventHandling(
35       aura::Window* child,
36       const gfx::Point& location) override;
37   bool CanFocus() override;
38   void OnCaptureLost() override;
39   void OnPaint(gfx::Canvas* canvas) override;
40   void OnDeviceScaleFactorChanged(float device_scale_factor) override;
41   void OnWindowDestroying(aura::Window* window) override;
42   void OnWindowDestroyed(aura::Window* window) override;
43   void OnWindowTargetVisibilityChanged(bool visible) override;
44   bool HasHitTestMask() const override;
45   void GetHitTestMask(gfx::Path* mask) const override;
46
47  protected:
48   gfx::Image image_;
49   gfx::Size window_size_;
50
51   // Keeps track of whether the window size matches the image size or not. If
52   // the image size is smaller than the window size, then the delegate paints a
53   // white background for the missing regions.
54   bool size_mismatch_;
55
56   DISALLOW_COPY_AND_ASSIGN(ImageWindowDelegate);
57 };
58
59 }  // namespace content
60
61 #endif  // CONTENT_BROWSER_WEB_CONTENTS_AURA_IMAGE_WINDOW_DELEGATE_H_