aboutsummaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/views/SkOSWindow_Mac_Cocoa.h36
-rw-r--r--include/views/SkWindow.h4
2 files changed, 40 insertions, 0 deletions
diff --git a/include/views/SkOSWindow_Mac_Cocoa.h b/include/views/SkOSWindow_Mac_Cocoa.h
new file mode 100644
index 0000000000..612edc3e48
--- /dev/null
+++ b/include/views/SkOSWindow_Mac_Cocoa.h
@@ -0,0 +1,36 @@
+#ifndef SkOSWindow_MacCocoa_DEFINED
+#define SkOSWindow_MacCocoa_DEFINED
+
+#include "SkWindow.h"
+
+class SkOSWindow : public SkWindow {
+public:
+ SkOSWindow(void* hwnd);
+ ~SkOSWindow();
+ void* getHWND() const { return fHWND; }
+
+ virtual bool onDispatchClick(int x, int y, Click::State state,
+ void* owner);
+ void detachGL();
+ bool attachGL();
+ void presentGL();
+
+protected:
+ // overrides from SkEventSink
+ virtual bool onEvent(const SkEvent& evt);
+ // overrides from SkWindow
+ virtual void onHandleInval(const SkIRect&);
+ // overrides from SkView
+ virtual void onAddMenu(const SkOSMenu*);
+ virtual void onUpdateMenu(const SkOSMenu*);
+ virtual void onSetTitle(const char[]);
+
+private:
+ void* fHWND;
+ bool fInvalEventIsPending;
+ void* fNotifier;
+ void* fGLContext;
+ typedef SkWindow INHERITED;
+};
+
+#endif \ No newline at end of file
diff --git a/include/views/SkWindow.h b/include/views/SkWindow.h
index eda928c948..6fc72cb912 100644
--- a/include/views/SkWindow.h
+++ b/include/views/SkWindow.h
@@ -105,7 +105,11 @@ private:
#ifdef SK_USE_WXWIDGETS
#include "SkOSWindow_wxwidgets.h"
#elif defined(SK_BUILD_FOR_MAC)
+#ifdef Sk_MAC_COCOA
+ #include "SkOSWindow_Mac_Cocoa.h"
+#else
#include "SkOSWindow_Mac.h"
+#endif
#elif defined(SK_BUILD_FOR_WIN)
#include "SkOSWindow_Win.h"
#elif defined(ANDROID)