| Index: sky/engine/public/web/WebWidget.h
|
| diff --git a/sky/engine/public/web/WebWidget.h b/sky/engine/public/web/WebWidget.h
|
| index 50ba10af3965213e61ff1e6a2d5bf12e39433d82..5305109a2f71fadb45aaeee9ebcb8ecb7eb01dc1 100644
|
| --- a/sky/engine/public/web/WebWidget.h
|
| +++ b/sky/engine/public/web/WebWidget.h
|
| @@ -54,49 +54,19 @@ template <typename T> class WebVector;
|
| class WebWidget {
|
| public:
|
| // This method closes and deletes the WebWidget.
|
| - virtual void close() { }
|
| + virtual void close() = 0;
|
|
|
| // Returns the current size of the WebWidget.
|
| - virtual WebSize size() { return WebSize(); }
|
| -
|
| - // Used to group a series of resize events. For example, if the user
|
| - // drags a resizer then willStartLiveResize will be called, followed by a
|
| - // sequence of resize events, ending with willEndLiveResize when the user
|
| - // lets go of the resizer.
|
| - virtual void willStartLiveResize() { }
|
| + virtual WebSize size() = 0;
|
|
|
| // Called to resize the WebWidget.
|
| - virtual void resize(const WebSize&) { }
|
| -
|
| - // Ends a group of resize events that was started with a call to
|
| - // willStartLiveResize.
|
| - virtual void willEndLiveResize() { }
|
| -
|
| - // Called to notify the WebWidget of entering/exiting fullscreen mode. The
|
| - // resize method may be called between will{Enter,Exit}FullScreen and
|
| - // did{Enter,Exit}FullScreen.
|
| - virtual void willEnterFullScreen() { }
|
| - virtual void didEnterFullScreen() { }
|
| - virtual void willExitFullScreen() { }
|
| - virtual void didExitFullScreen() { }
|
| -
|
| - // Called to update imperative animation state. This should be called before
|
| - // paint, although the client can rate-limit these calls.
|
| - // FIXME: Remove this function once Chrome side patch lands.
|
| - void animate(double monotonicFrameBeginTime)
|
| - {
|
| - beginFrame(WebBeginFrameArgs(monotonicFrameBeginTime));
|
| - }
|
| - virtual void beginFrame(const WebBeginFrameArgs& frameTime) { }
|
| -
|
| - // Called to notify that a previously begun frame was finished and
|
| - // committed to the compositor. This is used to schedule lower priority
|
| - // work after tasks such as input processing and painting.
|
| - virtual void didCommitFrameToCompositor() { }
|
| + virtual void resize(const WebSize&) = 0;
|
| +
|
| + virtual void beginFrame(const WebBeginFrameArgs& frameTime) = 0;
|
|
|
| // Called to layout the WebWidget. This MUST be called before Paint,
|
| // and it may result in calls to WebWidgetClient::didInvalidateRect.
|
| - virtual void layout() { }
|
| + virtual void layout() = 0;
|
|
|
| // Called to paint the rectangular region within the WebWidget
|
| // onto the specified canvas at (viewPort.x,viewPort.y). You MUST call
|
| @@ -105,32 +75,23 @@ public:
|
| // changes are made to the WebWidget (e.g., once events are
|
| // processed, it should be assumed that another call to layout is
|
| // warranted before painting again).
|
| - virtual void paint(WebCanvas*, const WebRect& viewPort) { }
|
| + virtual void paint(WebCanvas*, const WebRect& viewPort) = 0;
|
|
|
| // Returns true if we've started tracking repaint rectangles.
|
| - virtual bool isTrackingRepaints() const { return false; }
|
| -
|
| - // Indicates that the compositing surface associated with this WebWidget is
|
| - // ready to use.
|
| - virtual void setCompositorSurfaceReady() { }
|
| -
|
| - // Called to inform the WebWidget of a change in theme.
|
| - // Implementors that cache rendered copies of widgets need to re-render
|
| - // on receiving this message
|
| - virtual void themeChanged() { }
|
| + virtual bool isTrackingRepaints() const = 0;
|
|
|
| // Called to inform the WebWidget of an input event. Returns true if
|
| // the event has been processed, false otherwise.
|
| - virtual bool handleInputEvent(const WebInputEvent&) { return false; }
|
| + virtual bool handleInputEvent(const WebInputEvent&) = 0;
|
|
|
| // Called to inform the WebWidget of the mouse cursor's visibility.
|
| - virtual void setCursorVisibilityState(bool isVisible) { }
|
| + virtual void setCursorVisibilityState(bool isVisible) = 0;
|
|
|
| // Called to inform the WebWidget that mouse capture was lost.
|
| - virtual void mouseCaptureLost() { }
|
| + virtual void mouseCaptureLost() = 0;
|
|
|
| // Called to inform the WebWidget that it has gained or lost keyboard focus.
|
| - virtual void setFocus(bool) { }
|
| + virtual void setFocus(bool) = 0;
|
|
|
| // Called to inform the WebWidget of a new composition text.
|
| // If selectionStart and selectionEnd has the same value, then it indicates
|
| @@ -141,7 +102,7 @@ public:
|
| const WebString& text,
|
| const WebVector<WebCompositionUnderline>& underlines,
|
| int selectionStart,
|
| - int selectionEnd) { return false; }
|
| + int selectionEnd) = 0;
|
|
|
| enum ConfirmCompositionBehavior {
|
| DoNotKeepSelection,
|
| @@ -151,8 +112,8 @@ public:
|
| // Called to inform the WebWidget to confirm an ongoing composition.
|
| // This method is same as confirmComposition(WebString());
|
| // Returns true if there is an ongoing composition.
|
| - virtual bool confirmComposition() { return false; } // Deprecated
|
| - virtual bool confirmComposition(ConfirmCompositionBehavior selectionBehavior) { return false; }
|
| + virtual bool confirmComposition() = 0; // Deprecated
|
| + virtual bool confirmComposition(ConfirmCompositionBehavior selectionBehavior) = 0;
|
|
|
| // Called to inform the WebWidget to confirm an ongoing composition with a
|
| // new composition text. If the text is empty then the current composition
|
| @@ -160,57 +121,26 @@ public:
|
| // current selection and inserts the text. This method has no effect if
|
| // there is no ongoing composition and the text is empty.
|
| // Returns true if there is an ongoing composition or the text is inserted.
|
| - virtual bool confirmComposition(const WebString& text) { return false; }
|
| + virtual bool confirmComposition(const WebString& text) = 0;
|
|
|
| // Fetches the character range of the current composition, also called the
|
| // "marked range." Returns true and fills the out-paramters on success;
|
| // returns false on failure.
|
| - virtual bool compositionRange(size_t* location, size_t* length) { return false; }
|
| + virtual bool compositionRange(size_t* location, size_t* length) = 0;
|
|
|
| // Returns information about the current text input of this WebWidget.
|
| - virtual WebTextInputInfo textInputInfo() { return WebTextInputInfo(); }
|
| -
|
| - // Returns the anchor and focus bounds of the current selection.
|
| - // If the selection range is empty, it returns the caret bounds.
|
| - virtual bool selectionBounds(WebRect& anchor, WebRect& focus) const { return false; }
|
| + virtual WebTextInputInfo textInputInfo() = 0;
|
|
|
| // Called to notify that IME candidate window has changed its visibility or
|
| // its appearance. These calls correspond to trigger
|
| // candidatewindow{show,update,hide} events defined in W3C IME API.
|
| - virtual void didShowCandidateWindow() { }
|
| - virtual void didUpdateCandidateWindow() { }
|
| - virtual void didHideCandidateWindow() { }
|
| -
|
| - // Returns the text direction at the start and end bounds of the current selection.
|
| - // If the selection range is empty, it returns false.
|
| - virtual bool selectionTextDirection(WebTextDirection& start, WebTextDirection& end) const { return false; }
|
| -
|
| - // Returns true if the selection range is nonempty and its anchor is first
|
| - // (i.e its anchor is its start).
|
| - virtual bool isSelectionAnchorFirst() const { return false; }
|
| -
|
| - // Fetch the current selection range of this WebWidget. If there is no
|
| - // selection, it will output a 0-length range with the location at the
|
| - // caret. Returns true and fills the out-paramters on success; returns false
|
| - // on failure.
|
| - virtual bool caretOrSelectionRange(size_t* location, size_t* length) { return false; }
|
| -
|
| - // Changes the text direction of the selected input node.
|
| - virtual void setTextDirection(WebTextDirection) { }
|
| -
|
| - // Calling WebWidgetClient::requestPointerLock() will result in one
|
| - // return call to didAcquirePointerLock() or didNotAcquirePointerLock().
|
| - virtual void didAcquirePointerLock() { }
|
| - virtual void didNotAcquirePointerLock() { }
|
| -
|
| - // Pointer lock was held, but has been lost. This may be due to a
|
| - // request via WebWidgetClient::requestPointerUnlock(), or for other
|
| - // reasons such as the user exiting lock, window focus changing, etc.
|
| - virtual void didLosePointerLock() { }
|
| + virtual void didShowCandidateWindow() = 0;
|
| + virtual void didUpdateCandidateWindow() = 0;
|
| + virtual void didHideCandidateWindow() = 0;
|
|
|
| // The page background color. Can be used for filling in areas without
|
| // content.
|
| - virtual WebColor backgroundColor() const { return 0xFFFFFFFF; /* SK_ColorWHITE */ }
|
| + virtual WebColor backgroundColor() const = 0;
|
|
|
| protected:
|
| ~WebWidget() { }
|
|
|