#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 {
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)
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);
};