15c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/* 25c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Copyright (C) 2011 Google Inc. All rights reserved. 35c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 45c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Redistribution and use in source and binary forms, with or without 55c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * modification, are permitted provided that the following conditions 65c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * are met: 75c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 85c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 1. Redistributions of source code must retain the above copyright 95c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * notice, this list of conditions and the following disclaimer. 105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 2. Redistributions in binary form must reproduce the above copyright 115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * notice, this list of conditions and the following disclaimer in the 125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * documentation and/or other materials provided with the distribution. 135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY 155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY 185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 265267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles)#ifndef WebTextInputInfo_h 275267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles)#define WebTextInputInfo_h 285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 295267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles)#include "../platform/WebString.h" 305267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles)#include "WebTextInputType.h" 315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)namespace blink { 335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 345267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles)struct WebTextInputInfo { 355267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) WebTextInputType type; 36c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) int flags; 375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 385267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) // The value of the currently focused input field. 395267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) WebString value; 405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 415267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) // The cursor position of the current selection start, or the caret position 425267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) // if nothing is selected. 435267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) int selectionStart; 445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 455267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) // The cursor position of the current selection end, or the caret position 465267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) // if nothing is selected. 475267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) int selectionEnd; 485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 495267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) // The start position of the current composition, or -1 if there is none. 505267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) int compositionStart; 515267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) 525267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) // The end position of the current composition, or -1 if there is none. 535267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) int compositionEnd; 545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 55e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch // The inputmode attribute value of the currently focused input field. 56e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch // This string is lower-case. 57e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch WebString inputMode; 58e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 5906f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) BLINK_EXPORT bool equals(const WebTextInputInfo&) const; 605267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) 615267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) WebTextInputInfo() 625267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) : type(WebTextInputTypeNone) 63c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) , flags(WebTextInputFlagNone) 645267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) , selectionStart(0) 655267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) , selectionEnd(0) 665267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) , compositionStart(-1) 675267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) , compositionEnd(-1) 685267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) { 695267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) } 705267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles)}; 715267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) 725267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles)inline bool operator==(const WebTextInputInfo& a, const WebTextInputInfo& b) 735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){ 745267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) return a.equals(b); 75926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)} 76926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 775267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles)inline bool operator!=(const WebTextInputInfo& a, const WebTextInputInfo& b) 78926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles){ 795267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) return !(a == b); 805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 8251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)} // namespace blink 835267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) 845267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles)#endif 85