// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef UI_BASE_IME_COMPOSITION_UNDERLINE_H_
#define UI_BASE_IME_COMPOSITION_UNDERLINE_H_
#include <vector>
#include "base/basictypes.h"
#include "third_party/skia/include/core/SkColor.h"
namespace ui {
// Intentionally keep sync with blink::WebCompositionUnderline defined in:
// third_party/WebKit/public/web/WebCompositionUnderline.h
struct CompositionUnderline {
CompositionUnderline()
: start_offset(0),
end_offset(0),
color(SK_ColorTRANSPARENT),
thick(false),
background_color(SK_ColorTRANSPARENT) {}
// TODO(huangs): remove this constructor.
CompositionUnderline(uint32 s, uint32 e, SkColor c, bool t)
: start_offset(s),
end_offset(e),
color(c),
thick(t),
background_color(SK_ColorTRANSPARENT) {}
CompositionUnderline(uint32 s, uint32 e, SkColor c, bool t, SkColor bc)
: start_offset(s),
end_offset(e),
color(c),
thick(t),
background_color(bc) {}
bool operator==(const CompositionUnderline& rhs) const {
return (this->start_offset == rhs.start_offset) &&
(this->end_offset == rhs.end_offset) && (this->color == rhs.color) &&
(this->thick == rhs.thick) &&
(this->background_color == rhs.background_color);
}
bool operator!=(const CompositionUnderline& rhs) const {
return !(*this == rhs);
}
uint32 start_offset;
uint32 end_offset;
SkColor color;
bool thick;
SkColor background_color;
};
typedef std::vector<CompositionUnderline> CompositionUnderlines;
} // namespace ui
#endif // UI_BASE_IME_COMPOSITION_UNDERLINE_H_