SkOSWindow_Mac.h revision 3c4d032aeb2831a64fd6eff570667d590e3ed209
1
2/*
3 * Copyright 2006 The Android Open Source Project
4 *
5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file.
7 */
8
9#ifndef SkOSWindow_MacCocoa_DEFINED
10#define SkOSWindow_MacCocoa_DEFINED
11
12#include "SkWindow.h"
13
14class SkOSWindow : public SkWindow {
15public:
16    SkOSWindow(void* hwnd);
17    ~SkOSWindow();
18    void*   getHWND() const { return fHWND; }
19
20    virtual bool onDispatchClick(int x, int y, Click::State state,
21                                 void* owner);
22
23    enum SkBackEndTypes {
24        kNone_BackEndType,
25        kNativeGL_BackEndType,
26    };
27
28    void    detach();
29    bool    attach(SkBackEndTypes attachType);
30    void    present();
31
32protected:
33    // overrides from SkEventSink
34    virtual bool onEvent(const SkEvent& evt);
35    // overrides from SkWindow
36    virtual void onHandleInval(const SkIRect&);
37    // overrides from SkView
38    virtual void onAddMenu(const SkOSMenu*);
39    virtual void onUpdateMenu(const SkOSMenu*);
40    virtual void onSetTitle(const char[]);
41
42private:
43    void*   fHWND;
44    bool    fInvalEventIsPending;
45    void*   fNotifier;
46    void*   fGLContext;
47    typedef SkWindow INHERITED;
48};
49
50#endif
51