Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(730)

Side by Side Diff: ui/base/ime/win/imm32_manager.cc

Issue 1868363002: Replace scoped_ptr with std::unique_ptr in //ui (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@scopedptrcc
Patch Set: scopedptrui: rebase-make_scoped_ptr Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « ui/base/ime/linux/linux_input_method_context_factory.h ('k') | ui/base/l10n/formatter.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 <stdint.h> 7 #include <stdint.h>
8 8
9 #include <memory>
10
9 #include "base/macros.h" 11 #include "base/macros.h"
10 #include "base/memory/scoped_ptr.h"
11 #include "base/strings/string16.h" 12 #include "base/strings/string16.h"
12 #include "base/strings/string_util.h" 13 #include "base/strings/string_util.h"
13 #include "base/strings/utf_string_conversions.h" 14 #include "base/strings/utf_string_conversions.h"
14 #include "base/win/scoped_comptr.h" 15 #include "base/win/scoped_comptr.h"
15 #include "third_party/skia/include/core/SkColor.h" 16 #include "third_party/skia/include/core/SkColor.h"
16 #include "ui/base/ime/composition_text.h" 17 #include "ui/base/ime/composition_text.h"
17 18
18 // Following code requires wchar_t to be same as char16. It should always be 19 // Following code requires wchar_t to be same as char16. It should always be
19 // true on Windows. 20 // true on Windows.
20 static_assert(sizeof(wchar_t) == sizeof(base::char16), 21 static_assert(sizeof(wchar_t) == sizeof(base::char16),
(...skipping 13 matching lines...) Expand all
34 35
35 // Helper function for IMM32Manager::GetCompositionInfo() method, to get the 36 // Helper function for IMM32Manager::GetCompositionInfo() method, to get the
36 // target range that's selected by the user in the current composition string. 37 // target range that's selected by the user in the current composition string.
37 void GetCompositionTargetRange(HIMC imm_context, int* target_start, 38 void GetCompositionTargetRange(HIMC imm_context, int* target_start,
38 int* target_end) { 39 int* target_end) {
39 int attribute_size = ::ImmGetCompositionString(imm_context, GCS_COMPATTR, 40 int attribute_size = ::ImmGetCompositionString(imm_context, GCS_COMPATTR,
40 NULL, 0); 41 NULL, 0);
41 if (attribute_size > 0) { 42 if (attribute_size > 0) {
42 int start = 0; 43 int start = 0;
43 int end = 0; 44 int end = 0;
44 scoped_ptr<char[]> attribute_data(new char[attribute_size]); 45 std::unique_ptr<char[]> attribute_data(new char[attribute_size]);
45 if (attribute_data.get()) { 46 if (attribute_data.get()) {
46 ::ImmGetCompositionString(imm_context, GCS_COMPATTR, 47 ::ImmGetCompositionString(imm_context, GCS_COMPATTR,
47 attribute_data.get(), attribute_size); 48 attribute_data.get(), attribute_size);
48 for (start = 0; start < attribute_size; ++start) { 49 for (start = 0; start < attribute_size; ++start) {
49 if (IsTargetAttribute(attribute_data[start])) 50 if (IsTargetAttribute(attribute_data[start]))
50 break; 51 break;
51 } 52 }
52 for (end = start; end < attribute_size; ++end) { 53 for (end = start; end < attribute_size; ++end) {
53 if (!IsTargetAttribute(attribute_data[end])) 54 if (!IsTargetAttribute(attribute_data[end]))
54 break; 55 break;
55 } 56 }
56 } 57 }
57 *target_start = start; 58 *target_start = start;
58 *target_end = end; 59 *target_end = end;
59 } 60 }
60 } 61 }
61 62
62 // Helper function for IMM32Manager::GetCompositionInfo() method, to get 63 // Helper function for IMM32Manager::GetCompositionInfo() method, to get
63 // underlines information of the current composition string. 64 // underlines information of the current composition string.
64 void GetCompositionUnderlines(HIMC imm_context, 65 void GetCompositionUnderlines(HIMC imm_context,
65 int target_start, 66 int target_start,
66 int target_end, 67 int target_end,
67 ui::CompositionUnderlines* underlines) { 68 ui::CompositionUnderlines* underlines) {
68 int clause_size = ::ImmGetCompositionString(imm_context, GCS_COMPCLAUSE, 69 int clause_size = ::ImmGetCompositionString(imm_context, GCS_COMPCLAUSE,
69 NULL, 0); 70 NULL, 0);
70 int clause_length = clause_size / sizeof(uint32_t); 71 int clause_length = clause_size / sizeof(uint32_t);
71 if (clause_length) { 72 if (clause_length) {
72 scoped_ptr<uint32_t[]> clause_data(new uint32_t[clause_length]); 73 std::unique_ptr<uint32_t[]> clause_data(new uint32_t[clause_length]);
73 if (clause_data.get()) { 74 if (clause_data.get()) {
74 ::ImmGetCompositionString(imm_context, GCS_COMPCLAUSE, 75 ::ImmGetCompositionString(imm_context, GCS_COMPCLAUSE,
75 clause_data.get(), clause_size); 76 clause_data.get(), clause_size);
76 for (int i = 0; i < clause_length - 1; ++i) { 77 for (int i = 0; i < clause_length - 1; ++i) {
77 ui::CompositionUnderline underline; 78 ui::CompositionUnderline underline;
78 underline.start_offset = clause_data[i]; 79 underline.start_offset = clause_data[i];
79 underline.end_offset = clause_data[i+1]; 80 underline.end_offset = clause_data[i+1];
80 underline.color = SK_ColorBLACK; 81 underline.color = SK_ColorBLACK;
81 underline.thick = false; 82 underline.thick = false;
82 underline.background_color = SK_ColorTRANSPARENT; 83 underline.background_color = SK_ColorTRANSPARENT;
(...skipping 439 matching lines...) Expand 10 before | Expand all | Expand 10 after
522 523
523 // Retrieve the number of layouts installed in this system. 524 // Retrieve the number of layouts installed in this system.
524 int size = GetKeyboardLayoutList(0, NULL); 525 int size = GetKeyboardLayoutList(0, NULL);
525 if (size <= 0) { 526 if (size <= 0) {
526 layout = RTL_KEYBOARD_LAYOUT_ERROR; 527 layout = RTL_KEYBOARD_LAYOUT_ERROR;
527 return false; 528 return false;
528 } 529 }
529 530
530 // Retrieve the keyboard layouts in an array and check if there is an RTL 531 // Retrieve the keyboard layouts in an array and check if there is an RTL
531 // layout in it. 532 // layout in it.
532 scoped_ptr<HKL[]> layouts(new HKL[size]); 533 std::unique_ptr<HKL[]> layouts(new HKL[size]);
533 ::GetKeyboardLayoutList(size, layouts.get()); 534 ::GetKeyboardLayoutList(size, layouts.get());
534 for (int i = 0; i < size; ++i) { 535 for (int i = 0; i < size; ++i) {
535 if (IsRTLPrimaryLangID( 536 if (IsRTLPrimaryLangID(
536 PRIMARYLANGID(reinterpret_cast<uintptr_t>(layouts[i])))) { 537 PRIMARYLANGID(reinterpret_cast<uintptr_t>(layouts[i])))) {
537 layout = RTL_KEYBOARD_LAYOUT_INSTALLED; 538 layout = RTL_KEYBOARD_LAYOUT_INSTALLED;
538 return true; 539 return true;
539 } 540 }
540 } 541 }
541 542
542 layout = RTL_KEYBOARD_LAYOUT_NOT_INSTALLED; 543 layout = RTL_KEYBOARD_LAYOUT_NOT_INSTALLED;
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
613 | IME_CMODE_KATAKANA 614 | IME_CMODE_KATAKANA
614 | IME_CMODE_FULLSHAPE); 615 | IME_CMODE_FULLSHAPE);
615 break; 616 break;
616 default: 617 default:
617 *open = FALSE; 618 *open = FALSE;
618 break; 619 break;
619 } 620 }
620 } 621 }
621 622
622 } // namespace ui 623 } // namespace ui
OLDNEW
« no previous file with comments | « ui/base/ime/linux/linux_input_method_context_factory.h ('k') | ui/base/l10n/formatter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698