Upstream version 10.38.220.0
[platform/framework/web/crosswalk.git] / src / ozone / wayland / shell / wl_shell_surface.h
1 // Copyright 2014 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 OZONE_WAYLAND_SHELL_WL_SHELL_SURFACE_H_
6 #define OZONE_WAYLAND_SHELL_WL_SHELL_SURFACE_H_
7
8 #include "ozone/wayland/shell/shell_surface.h"
9
10 namespace ozonewayland {
11
12 class WaylandSurface;
13 class WaylandWindow;
14
15 class WLShellSurface : public WaylandShellSurface {
16  public:
17   WLShellSurface();
18   virtual ~WLShellSurface();
19
20   virtual void InitializeShellSurface(WaylandWindow* window,
21                                       WaylandWindow::ShellType type) OVERRIDE;
22   virtual void UpdateShellSurface(WaylandWindow::ShellType type,
23                                   WaylandShellSurface* shell_parent,
24                                   unsigned x,
25                                   unsigned y) OVERRIDE;
26   virtual void SetWindowTitle(const base::string16& title) OVERRIDE;
27   virtual void Maximize() OVERRIDE;
28   virtual void Minimize() OVERRIDE;
29   virtual void Unminimize() OVERRIDE;
30   virtual bool IsMinimized() const OVERRIDE;
31
32   static void HandleConfigure(void* data,
33                               struct wl_shell_surface* shell_surface,
34                               uint32_t edges,
35                               int32_t width,
36                               int32_t height);
37   static void HandlePopupDone(void* data,
38                               struct wl_shell_surface* shell_surface);
39   static void HandlePing(void* data,
40                          struct wl_shell_surface* shell_surface,
41                          uint32_t serial);
42
43  private:
44   wl_shell_surface* shell_surface_;
45   DISALLOW_COPY_AND_ASSIGN(WLShellSurface);
46 };
47
48 }  // namespace ozonewayland
49
50 #endif  // OZONE_WAYLAND_SHELL_WL_SHELL_SURFACE_H_