11cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 20b15698a8c76bb8abc1b555c1d91892669b4118fDerek Sollenberger/* 31cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Copyright 2006 The Android Open Source Project 40b15698a8c76bb8abc1b555c1d91892669b4118fDerek Sollenberger * 51cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Use of this source code is governed by a BSD-style license that can be 61cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * found in the LICENSE file. 70b15698a8c76bb8abc1b555c1d91892669b4118fDerek Sollenberger */ 80b15698a8c76bb8abc1b555c1d91892669b4118fDerek Sollenberger 91cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger#ifndef SkOSWindow_MacCocoa_DEFINED 101cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger#define SkOSWindow_MacCocoa_DEFINED 110b15698a8c76bb8abc1b555c1d91892669b4118fDerek Sollenberger 120b15698a8c76bb8abc1b555c1d91892669b4118fDerek Sollenberger#include "SkWindow.h" 130b15698a8c76bb8abc1b555c1d91892669b4118fDerek Sollenberger 140b15698a8c76bb8abc1b555c1d91892669b4118fDerek Sollenbergerclass SkOSWindow : public SkWindow { 150b15698a8c76bb8abc1b555c1d91892669b4118fDerek Sollenbergerpublic: 160b15698a8c76bb8abc1b555c1d91892669b4118fDerek Sollenberger SkOSWindow(void* hwnd); 171cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger ~SkOSWindow(); 180b15698a8c76bb8abc1b555c1d91892669b4118fDerek Sollenberger void* getHWND() const { return fHWND; } 191cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 201cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger virtual bool onDispatchClick(int x, int y, Click::State state, 211cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger void* owner); 221cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger void detachGL(); 231cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger bool attachGL(); 241cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger void presentGL(); 251cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 260b15698a8c76bb8abc1b555c1d91892669b4118fDerek Sollenbergerprotected: 270b15698a8c76bb8abc1b555c1d91892669b4118fDerek Sollenberger // overrides from SkEventSink 280b15698a8c76bb8abc1b555c1d91892669b4118fDerek Sollenberger virtual bool onEvent(const SkEvent& evt); 290b15698a8c76bb8abc1b555c1d91892669b4118fDerek Sollenberger // overrides from SkWindow 300b15698a8c76bb8abc1b555c1d91892669b4118fDerek Sollenberger virtual void onHandleInval(const SkIRect&); 310b15698a8c76bb8abc1b555c1d91892669b4118fDerek Sollenberger // overrides from SkView 320b15698a8c76bb8abc1b555c1d91892669b4118fDerek Sollenberger virtual void onAddMenu(const SkOSMenu*); 331cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger virtual void onUpdateMenu(const SkOSMenu*); 340b15698a8c76bb8abc1b555c1d91892669b4118fDerek Sollenberger virtual void onSetTitle(const char[]); 350b15698a8c76bb8abc1b555c1d91892669b4118fDerek Sollenberger 360b15698a8c76bb8abc1b555c1d91892669b4118fDerek Sollenbergerprivate: 370b15698a8c76bb8abc1b555c1d91892669b4118fDerek Sollenberger void* fHWND; 381cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger bool fInvalEventIsPending; 391cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger void* fNotifier; 401cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger void* fGLContext; 410b15698a8c76bb8abc1b555c1d91892669b4118fDerek Sollenberger typedef SkWindow INHERITED; 420b15698a8c76bb8abc1b555c1d91892669b4118fDerek Sollenberger}; 430b15698a8c76bb8abc1b555c1d91892669b4118fDerek Sollenberger 440b15698a8c76bb8abc1b555c1d91892669b4118fDerek Sollenberger#endif 45