- add third_party src.
[platform/framework/web/crosswalk.git] / src / xwalk / runtime / browser / ui / native_app_window_mac.h
1 // Copyright (c) 2013 Intel Corporation. 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 XWALK_RUNTIME_BROWSER_UI_NATIVE_APP_WINDOW_MAC_H_
6 #define XWALK_RUNTIME_BROWSER_UI_NATIVE_APP_WINDOW_MAC_H_
7
8 #import <Cocoa/Cocoa.h>
9
10 #include "xwalk/runtime/browser/ui/native_app_window.h"
11 #include "ui/gfx/image/image_skia.h"
12 #include "ui/gfx/rect.h"
13
14 namespace xwalk {
15
16 class NativeAppWindowMac : public NativeAppWindow {
17  public:
18   explicit NativeAppWindowMac(const NativeAppWindow::CreateParams& params);
19   virtual ~NativeAppWindowMac();
20
21   // NativeAppWindow implementation.
22   virtual gfx::NativeWindow GetNativeWindow() const OVERRIDE;
23   virtual void UpdateIcon(const gfx::Image& icon) OVERRIDE;
24   virtual void UpdateTitle(const string16& title) OVERRIDE;
25   virtual gfx::Rect GetRestoredBounds() const OVERRIDE;
26   virtual gfx::Rect GetBounds() const OVERRIDE;
27   virtual void SetBounds(const gfx::Rect& bounds) OVERRIDE;
28   virtual void Focus() OVERRIDE;
29   virtual void Show() OVERRIDE;
30   virtual void Hide() OVERRIDE;
31   virtual void Maximize() OVERRIDE;
32   virtual void Minimize() OVERRIDE;
33   virtual void SetFullscreen(bool fullscreen) OVERRIDE;
34   virtual void Restore() OVERRIDE;
35   virtual void FlashFrame(bool flash) OVERRIDE;
36   virtual void Close() OVERRIDE;
37   virtual bool IsActive() const OVERRIDE;
38   virtual bool IsMaximized() const OVERRIDE;
39   virtual bool IsMinimized() const OVERRIDE;
40   virtual bool IsFullscreen() const OVERRIDE;
41
42  protected:
43   content::WebContents* web_contents_;
44
45   NSWindow* window_;
46   string16 title_;
47
48   bool is_fullscreen_;
49   gfx::Size minimum_size_;
50   gfx::Size maximum_size_;
51   bool resizable_;
52   NSInteger attention_request_id_;  // identifier from requestUserAttention
53
54  private:
55   DISALLOW_COPY_AND_ASSIGN(NativeAppWindowMac);
56 };
57
58 }  // namespace xwalk
59
60 #endif  // XWALK_RUNTIME_BROWSER_UI_NATIVE_APP_WINDOW_MAC_H_