Index: chrome/browser/ui/webui/options2/chromeos/language_options_util.h |
diff --git a/chrome/browser/ui/webui/options2/chromeos/language_options_util.h b/chrome/browser/ui/webui/options2/chromeos/language_options_util.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..70f7307627969cc9cbe2a1074936b36303c7439c |
--- /dev/null |
+++ b/chrome/browser/ui/webui/options2/chromeos/language_options_util.h |
@@ -0,0 +1,83 @@ |
+// Copyright (c) 2011 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 CHROME_BROWSER_UI_WEBUI_OPTIONS2_CHROMEOS_LANGUAGE_OPTIONS_UTIL_H_ |
+#define CHROME_BROWSER_UI_WEBUI_OPTIONS2_CHROMEOS_LANGUAGE_OPTIONS_UTIL_H_ |
+#pragma once |
+ |
+#include <string> |
+ |
+#include "base/utf_string_conversions.h" |
+#include "base/values.h" |
+#include "chrome/browser/chromeos/language_preferences.h" |
+#include "ui/base/l10n/l10n_util.h" |
+ |
+namespace base { |
+class ListValue; |
+} |
+ |
+namespace chromeos { |
+ |
+// Returns an i18n-content value corresponding to |preference|. |
+template <typename T> |
+std::string GetI18nContentValue(const T& preference, const char* prefix) { |
+ return std::string(prefix) + preference.ibus_config_name; |
+} |
+ |
+// Returns a property name of templateData corresponding to |preference|. |
+template <typename T> |
+std::string GetTemplateDataPropertyName(const T& preference, |
+ const char* prefix) { |
+ return std::string(prefix) + preference.ibus_config_name + "Value"; |
+} |
+ |
+// Returns an property name of templateData corresponding the value of the min |
+// attribute. |
+template <typename T> |
+std::string GetTemplateDataMinName(const T& preference, const char* prefix) { |
+ return std::string(prefix) + preference.ibus_config_name + "Min"; |
+} |
+ |
+// Returns an property name of templateData corresponding the value of the max |
+// attribute. |
+template <typename T> |
+std::string GetTemplateDataMaxName(const T& preference, const char* prefix) { |
+ return std::string(prefix) + preference.ibus_config_name + "Max"; |
+} |
+ |
+// Creates a Value object from the given value. Here we use function |
+// overloading to handle string and integer preferences in |
+// CreateMultipleChoiceList. |
+Value* CreateValue(const char* in_value); |
+Value* CreateValue(int in_value); |
+ |
+// Creates a multiple choice list from the given preference. |
+template <typename T> |
+base::ListValue* CreateMultipleChoiceList( |
+ const language_prefs::LanguageMultipleChoicePreference<T>& preference) { |
+ int list_length = 0; |
+ for (size_t i = 0; |
+ i < language_prefs::LanguageMultipleChoicePreference<T>::kMaxItems; |
+ ++i) { |
+ if (preference.values_and_ids[i].item_message_id == 0) |
+ break; |
+ ++list_length; |
+ } |
+ DCHECK_GT(list_length, 0); |
+ |
+ base::ListValue* list_value = new base::ListValue(); |
+ for (int i = 0; i < list_length; ++i) { |
+ base::ListValue* option = new base::ListValue(); |
+ option->Append(CreateValue( |
+ preference.values_and_ids[i].ibus_config_value)); |
+ option->Append(base::Value::CreateStringValue(l10n_util::GetStringUTF16( |
+ preference.values_and_ids[i].item_message_id))); |
+ list_value->Append(option); |
+ } |
+ return list_value; |
+} |
+ |
+} // namespace chromeos |
+ |
+#endif // CHROME_BROWSER_UI_WEBUI_OPTIONS2_CHROMEOS_LANGUAGE_OPTIONS_UTIL_H_ |