OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ui/base/ime/win/imm32_manager.h" | 5 #include "ui/base/ime/win/imm32_manager.h" |
6 | 6 |
7 #include <msctf.h> | 7 #include <msctf.h> |
8 | 8 |
9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
76 scoped_ptr<uint32[]> clause_data(new uint32[clause_length]); | 76 scoped_ptr<uint32[]> clause_data(new uint32[clause_length]); |
77 if (clause_data.get()) { | 77 if (clause_data.get()) { |
78 ::ImmGetCompositionString(imm_context, GCS_COMPCLAUSE, | 78 ::ImmGetCompositionString(imm_context, GCS_COMPCLAUSE, |
79 clause_data.get(), clause_size); | 79 clause_data.get(), clause_size); |
80 for (int i = 0; i < clause_length - 1; ++i) { | 80 for (int i = 0; i < clause_length - 1; ++i) { |
81 ui::CompositionUnderline underline; | 81 ui::CompositionUnderline underline; |
82 underline.start_offset = clause_data[i]; | 82 underline.start_offset = clause_data[i]; |
83 underline.end_offset = clause_data[i+1]; | 83 underline.end_offset = clause_data[i+1]; |
84 underline.color = SK_ColorBLACK; | 84 underline.color = SK_ColorBLACK; |
85 underline.thick = false; | 85 underline.thick = false; |
| 86 underline.background_color = SK_ColorTRANSPARENT; |
86 | 87 |
87 // Use thick underline for the target clause. | 88 // Use thick underline for the target clause. |
88 if (underline.start_offset >= static_cast<unsigned>(target_start) && | 89 if (underline.start_offset >= static_cast<uint32>(target_start) && |
89 underline.end_offset <= static_cast<unsigned>(target_end)) { | 90 underline.end_offset <= static_cast<uint32>(target_end)) { |
90 underline.thick = true; | 91 underline.thick = true; |
91 } | 92 } |
92 underlines->push_back(underline); | 93 underlines->push_back(underline); |
93 } | 94 } |
94 } | 95 } |
95 } | 96 } |
96 } | 97 } |
97 | 98 |
98 // Checks if a given primary language ID is a RTL language. | 99 // Checks if a given primary language ID is a RTL language. |
99 bool IsRTLPrimaryLangID(LANGID lang) { | 100 bool IsRTLPrimaryLangID(LANGID lang) { |
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
335 // Retrieve the clause segmentations and convert them to underlines. | 336 // Retrieve the clause segmentations and convert them to underlines. |
336 if (lparam & GCS_COMPCLAUSE) { | 337 if (lparam & GCS_COMPCLAUSE) { |
337 GetCompositionUnderlines(imm_context, target_start, target_end, | 338 GetCompositionUnderlines(imm_context, target_start, target_end, |
338 &composition->underlines); | 339 &composition->underlines); |
339 } | 340 } |
340 | 341 |
341 // Set default underlines in case there is no clause information. | 342 // Set default underlines in case there is no clause information. |
342 if (!composition->underlines.size()) { | 343 if (!composition->underlines.size()) { |
343 CompositionUnderline underline; | 344 CompositionUnderline underline; |
344 underline.color = SK_ColorBLACK; | 345 underline.color = SK_ColorBLACK; |
| 346 underline.background_color = SK_ColorTRANSPARENT; |
345 if (target_start > 0) { | 347 if (target_start > 0) { |
346 underline.start_offset = 0; | 348 underline.start_offset = 0U; |
347 underline.end_offset = target_start; | 349 underline.end_offset = static_cast<uint32>(target_start); |
348 underline.thick = false; | 350 underline.thick = false; |
349 composition->underlines.push_back(underline); | 351 composition->underlines.push_back(underline); |
350 } | 352 } |
351 if (target_end > target_start) { | 353 if (target_end > target_start) { |
352 underline.start_offset = target_start; | 354 underline.start_offset = static_cast<uint32>(target_start); |
353 underline.end_offset = target_end; | 355 underline.end_offset = static_cast<uint32>(target_end); |
354 underline.thick = true; | 356 underline.thick = true; |
355 composition->underlines.push_back(underline); | 357 composition->underlines.push_back(underline); |
356 } | 358 } |
357 if (target_end < length) { | 359 if (target_end < length) { |
358 underline.start_offset = target_end; | 360 underline.start_offset = static_cast<uint32>(target_end); |
359 underline.end_offset = length; | 361 underline.end_offset = static_cast<uint32>(length); |
360 underline.thick = false; | 362 underline.thick = false; |
361 composition->underlines.push_back(underline); | 363 composition->underlines.push_back(underline); |
362 } | 364 } |
363 } | 365 } |
364 } | 366 } |
365 | 367 |
366 bool IMM32Manager::GetString(HIMC imm_context, | 368 bool IMM32Manager::GetString(HIMC imm_context, |
367 WPARAM lparam, | 369 WPARAM lparam, |
368 int type, | 370 int type, |
369 base::string16* result) { | 371 base::string16* result) { |
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
631 | IME_CMODE_KATAKANA | 633 | IME_CMODE_KATAKANA |
632 | IME_CMODE_FULLSHAPE); | 634 | IME_CMODE_FULLSHAPE); |
633 break; | 635 break; |
634 default: | 636 default: |
635 *open = FALSE; | 637 *open = FALSE; |
636 break; | 638 break; |
637 } | 639 } |
638 } | 640 } |
639 | 641 |
640 } // namespace ui | 642 } // namespace ui |
OLD | NEW |