Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / ui / ozone / platform / caca / ozone_platform_caca.cc
index a5a6b02..6746129 100644 (file)
@@ -4,15 +4,15 @@
 
 #include "ui/ozone/platform/caca/ozone_platform_caca.h"
 
-#include "ui/base/cursor/ozone/cursor_factory_ozone.h"
-#include "ui/ozone/ime/input_method_context_factory_ozone.h"
-#include "ui/ozone/ozone_platform.h"
-#include "ui/ozone/platform/caca/caca_connection.h"
-#include "ui/ozone/platform/caca/caca_event_factory.h"
-#include "ui/ozone/platform/caca/caca_surface_factory.h"
+#include "ui/ozone/platform/caca/caca_event_source.h"
+#include "ui/ozone/platform/caca/caca_window.h"
+#include "ui/ozone/platform/caca/caca_window_manager.h"
+#include "ui/ozone/public/cursor_factory_ozone.h"
+#include "ui/ozone/public/ozone_platform.h"
 
 #if defined(OS_CHROMEOS)
 #include "ui/ozone/common/chromeos/native_display_delegate_ozone.h"
+#include "ui/ozone/common/chromeos/touchscreen_device_manager_ozone.h"
 #endif
 
 namespace ui {
@@ -21,24 +21,30 @@ namespace {
 
 class OzonePlatformCaca : public OzonePlatform {
  public:
-  OzonePlatformCaca()
-      : surface_factory_ozone_(&connection_),
-        event_factory_ozone_(&connection_) {}
+  OzonePlatformCaca() {}
   virtual ~OzonePlatformCaca() {}
 
   // OzonePlatform:
-  virtual gfx::SurfaceFactoryOzone* GetSurfaceFactoryOzone() OVERRIDE {
-    return &surface_factory_ozone_;
+  virtual ui::SurfaceFactoryOzone* GetSurfaceFactoryOzone() OVERRIDE {
+    return window_manager_.get();
   }
-  virtual EventFactoryOzone* GetEventFactoryOzone() OVERRIDE {
-    return &event_factory_ozone_;
+  virtual CursorFactoryOzone* GetCursorFactoryOzone() OVERRIDE {
+    return cursor_factory_ozone_.get();
   }
-  virtual InputMethodContextFactoryOzone* GetInputMethodContextFactoryOzone()
-      OVERRIDE {
-    return &input_method_context_factory_ozone_;
+  virtual GpuPlatformSupport* GetGpuPlatformSupport() OVERRIDE {
+    return NULL;  // no GPU support
   }
-  virtual CursorFactoryOzone* GetCursorFactoryOzone() OVERRIDE {
-    return &cursor_factory_ozone_;
+  virtual GpuPlatformSupportHost* GetGpuPlatformSupportHost() OVERRIDE {
+    return NULL;  // no GPU support
+  }
+  virtual scoped_ptr<PlatformWindow> CreatePlatformWindow(
+      PlatformWindowDelegate* delegate,
+      const gfx::Rect& bounds) OVERRIDE {
+    scoped_ptr<CacaWindow> caca_window(new CacaWindow(
+        delegate, window_manager_.get(), event_source_.get(), bounds));
+    if (!caca_window->Initialize())
+      return scoped_ptr<PlatformWindow>();
+    return caca_window.PassAs<PlatformWindow>();
   }
 
 #if defined(OS_CHROMEOS)
@@ -46,15 +52,25 @@ class OzonePlatformCaca : public OzonePlatform {
       OVERRIDE {
     return scoped_ptr<NativeDisplayDelegate>(new NativeDisplayDelegateOzone());
   }
+  virtual scoped_ptr<TouchscreenDeviceManager>
+      CreateTouchscreenDeviceManager() OVERRIDE {
+    return scoped_ptr<TouchscreenDeviceManager>(
+        new TouchscreenDeviceManagerOzone());
+  }
 #endif
 
+  virtual void InitializeUI() OVERRIDE {
+    window_manager_.reset(new CacaWindowManager);
+    event_source_.reset(new CacaEventSource());
+    cursor_factory_ozone_.reset(new CursorFactoryOzone());
+  }
+
+  virtual void InitializeGPU() OVERRIDE {}
+
  private:
-  CacaConnection connection_;
-  CacaSurfaceFactory surface_factory_ozone_;
-  CacaEventFactory event_factory_ozone_;
-  // This creates a minimal input context.
-  InputMethodContextFactoryOzone input_method_context_factory_ozone_;
-  CursorFactoryOzone cursor_factory_ozone_;
+  scoped_ptr<CacaWindowManager> window_manager_;
+  scoped_ptr<CacaEventSource> event_source_;
+  scoped_ptr<CursorFactoryOzone> cursor_factory_ozone_;
 
   DISALLOW_COPY_AND_ASSIGN(OzonePlatformCaca);
 };