1656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/*
2656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * Copyright (C) 2010 Google Inc. All rights reserved.
3656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project *
4656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * Redistribution and use in source and binary forms, with or without
5656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * modification, are permitted provided that the following conditions are
6656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * met:
7656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project *
8656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project *     * Redistributions of source code must retain the above copyright
9656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * notice, this list of conditions and the following disclaimer.
10656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project *     * Redistributions in binary form must reproduce the above
11656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * copyright notice, this list of conditions and the following disclaimer
12656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * in the documentation and/or other materials provided with the
13656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * distribution.
14656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project *     * Neither the name of Google Inc. nor the names of its
15656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * contributors may be used to endorse or promote products derived from
16656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * this software without specific prior written permission.
17656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project *
18656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */
30656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
31656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef WebCompositionUnderline_h
32656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define WebCompositionUnderline_h
33656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
34656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include "../platform/WebColor.h"
35656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
36656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectnamespace blink {
37656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
38656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// Class WebCompositionUnderline is intended to be used with WebWidget's
39656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// setComposition() method.
40656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectstruct WebCompositionUnderline {
41656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project    WebCompositionUnderline()
42656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project        : startOffset(0)
43656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project        , endOffset(0)
44656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project        , color(0)
45656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project        , thick(false)
46656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project        , backgroundColor(0) { }
47656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
48656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project    WebCompositionUnderline(unsigned s, unsigned e, WebColor c, bool t, WebColor bc)
49656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project        : startOffset(s)
50656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project        , endOffset(e)
51656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project        , color(c)
52656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project        , thick(t)
53656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project        , backgroundColor(bc) { }
54656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
55656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project    bool operator<(const WebCompositionUnderline& other) const
56656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project    {
57656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project        return startOffset != other.startOffset ? startOffset < other.startOffset : endOffset < other.endOffset;
58656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project    }
59656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
60656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project    // Need to update IPC_STRUCT_TRAITS_BEGIN(blink::WebCompositionUnderline)
61656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project    // if members change.
62656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project    unsigned startOffset;
63656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project    unsigned endOffset;
64656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project    WebColor color;
65656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project    bool thick;
66656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project    WebColor backgroundColor;
67656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project};
68656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
69656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project} // namespace blink
70656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
71656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif
72656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project