2 * Copyright (C) 2004, 2005, 2006 Apple Computer, Inc. All rights reserved.
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
13 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 #ifndef WEBCORE_PLATFORM_WIDGET_H_
27 #define WEBCORE_PLATFORM_WIDGET_H_
29 #include <wtf/Platform.h>
40 typedef struct HWND__ *HWND;
41 typedef struct HINSTANCE__ *HINSTANCE;
45 typedef struct _GdkDrawable GdkDrawable;
52 class GraphicsContext;
73 virtual IntSize sizeHint() const;
75 virtual void setEnabled(bool);
76 virtual bool isEnabled() const;
83 void resize(int, int);
84 void resize(const IntSize&);
87 void move(const IntPoint&);
89 virtual void paint(GraphicsContext*, const IntRect&);
91 virtual IntRect frameGeometry() const;
92 virtual void setFrameGeometry(const IntRect&);
94 virtual int baselinePosition(int height) const; // relative to the top of the widget
96 virtual IntPoint mapFromGlobal(const IntPoint&) const;
98 float scaleFactor() const;
100 bool hasFocus() const;
103 virtual bool checksDescendantsForFocus() const;
105 virtual FocusPolicy focusPolicy() const;
107 const Font& font() const;
108 virtual void setFont(const Font&);
110 void setCursor(const Cursor&);
116 virtual void populate() {}
118 GraphicsContext* lockDrawingFocus();
119 void unlockDrawingFocus(GraphicsContext*);
120 void enableFlushDrawing();
121 void disableFlushDrawing();
123 void setIsSelected(bool);
125 void setClient(WidgetClient*);
126 WidgetClient* client() const;
128 virtual bool isFrameView() const;
132 HWND windowHandle() const;
133 void setWindowHandle(HWND);
134 // The global DLL or application instance used for all WebCore windows.
135 static HINSTANCE instanceHandle;
139 Widget(GdkDrawable* drawable);
140 virtual void setDrawable(GdkDrawable* drawable);
141 GdkDrawable* drawable() const;
145 Widget(NSView* view);
147 NSView* getView() const;
148 NSView* getOuterView() const;
149 void setView(NSView*);
151 void sendConsumedMouseUp();
153 static void beforeMouseDown(NSView*);
154 static void afterMouseDown(NSView*);
156 void addToSuperview(NSView* superview);
157 void removeFromSuperview();
159 static void setDeferFirstResponderChanges(bool);
166 } // namespace WebCore
168 #endif // WEBCORE_PLATFORM_WIDGET_H_