Index: ui/ozone/platform/caca/caca_window.h |
diff --git a/ui/ozone/platform/caca/caca_connection.h b/ui/ozone/platform/caca/caca_window.h |
similarity index 51% |
rename from ui/ozone/platform/caca/caca_connection.h |
rename to ui/ozone/platform/caca/caca_window.h |
index 052985e7266d25820ed9e1d681ec60a4e3de6c8f..493af8cbbe4b7c2bde6860b527d077eeadb8eb2d 100644 |
--- a/ui/ozone/platform/caca/caca_connection.h |
+++ b/ui/ozone/platform/caca/caca_window.h |
@@ -2,37 +2,65 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#ifndef UI_OZONE_PLATFORM_CACA_CACA_CONNECTION_H_ |
-#define UI_OZONE_PLATFORM_CACA_CACA_CONNECTION_H_ |
+#ifndef UI_OZONE_PLATFORM_CACA_CACA_WINDOW_H_ |
+#define UI_OZONE_PLATFORM_CACA_CACA_WINDOW_H_ |
#include <caca.h> |
+#include "base/debug/stack_trace.h" |
#include "base/macros.h" |
+#include "base/memory/weak_ptr.h" |
#include "ui/gfx/geometry/size.h" |
+#include "ui/ozone/common/platform_window_base.h" |
#include "ui/ozone/platform/caca/scoped_caca_types.h" |
namespace ui { |
+class CacaEventFactory; |
+class CacaWindowManager; |
+class PlatformWindowDelegate; |
+ |
// Basic initialization of Libcaca. This needs to be shared between SFO and EFO |
// since both need the |display_| to draw and process events respectively. |
// Note, |canvas_| needs to be here since it is needed for creating a |
// |display_|. |
-class CacaConnection { |
+class CacaWindow : public PlatformWindowBase { |
public: |
- CacaConnection(); |
- ~CacaConnection(); |
+ CacaWindow(PlatformWindowDelegate* delegate, |
+ CacaWindowManager* manager, |
+ CacaEventFactory* event_factory, |
+ const gfx::Rect& bounds); |
+ virtual ~CacaWindow(); |
bool Initialize(); |
+ virtual gfx::AcceleratedWidget GetAcceleratedWidget() OVERRIDE; |
+ |
+ virtual gfx::Rect GetBounds() const OVERRIDE; |
+ |
+ virtual void SetBounds(const gfx::Rect& bounds) OVERRIDE {} |
+ |
+ void OnCacaQuit(); |
+ |
+ void OnCacaResize(); |
+ |
// This is the Caca canvas size. |
gfx::Size physical_size() const { return physical_size_; } |
gfx::Size bitmap_size() const { return bitmap_size_; } |
caca_display_t* display() const { return display_.get(); } |
private: |
+ // Event polling. |
+ void TryProcessingEvent(); |
+ |
// Sync sizes with libcaca. |
void UpdateDisplaySize(); |
+ PlatformWindowDelegate* delegate_; |
+ CacaWindowManager* manager_; |
+ CacaEventFactory* event_factory_; |
+ gfx::AcceleratedWidget widget_; |
+ |
ScopedCacaCanvas canvas_; |
ScopedCacaDisplay display_; |
@@ -43,9 +71,11 @@ class CacaConnection { |
// Size of the backing buffer we draw into. Size in pixels. |
gfx::Size bitmap_size_; |
- DISALLOW_COPY_AND_ASSIGN(CacaConnection); |
+ base::WeakPtrFactory<CacaWindow> weak_ptr_factory_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(CacaWindow); |
}; |
} // namespace ui |
-#endif // UI_OZONE_PLATFORM_CACA_CACA_CONNECTION_H_ |
+#endif // UI_OZONE_PLATFORM_CACA_CACA_WINDOW_H_ |