1
2/*
3 * Copyright 2011 Google Inc.
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#ifndef SkOSWindow_iOS_DEFINED
9#define SkOSWindow_iOS_DEFINED
10
11#include "SkWindow.h"
12
13class SkOSWindow : public SkWindow {
14public:
15    SkOSWindow(void* hwnd);
16    ~SkOSWindow();
17    void*   getHWND() const { return fHWND; }
18
19    enum SkBackEndTypes {
20        kNone_BackEndType,
21        kNativeGL_BackEndType,
22    };
23
24    struct AttachmentInfo {
25        int fSampleCount;
26        int fStencilBits;
27    };
28
29    void    detach();
30    bool    attach(SkBackEndTypes attachType, int msaaSampleCount, AttachmentInfo*);
31    void    present();
32
33protected:
34    // overrides from SkEventSink
35    virtual bool onEvent(const SkEvent& evt);
36    // overrides from SkWindow
37    virtual void onHandleInval(const SkIRect&);
38    // overrides from SkView
39    virtual void onAddMenu(const SkOSMenu*);
40    virtual void onUpdateMenu(SkOSMenu*);
41    virtual void onSetTitle(const char[]);
42
43private:
44    void*   fHWND;
45    bool    fInvalEventIsPending;
46    void*   fNotifier;
47    typedef SkWindow INHERITED;
48};
49
50#endif
51