Avi Drissman | 4a8573c | 2022-09-09 19:35:54 | [diff] [blame] | 1 | // Copyright 2013 The Chromium Authors |
[email protected] | 0cf6414 | 2013-10-19 13:52:39 | [diff] [blame] | 2 | // Use of this source code is governed by a BSD-style license that can be |
3 | // found in the LICENSE file. | ||||
4 | |||||
Haohao Wang | a35a46f | 2019-05-07 23:47:02 | [diff] [blame] | 5 | #ifndef CHROME_BROWSER_UI_TRANSLATE_TARGET_LANGUAGE_COMBOBOX_MODEL_H_ |
6 | #define CHROME_BROWSER_UI_TRANSLATE_TARGET_LANGUAGE_COMBOBOX_MODEL_H_ | ||||
[email protected] | 0cf6414 | 2013-10-19 13:52:39 | [diff] [blame] | 7 | |
dcheng | 9603ab9 | 2016-04-08 04:17:32 | [diff] [blame] | 8 | #include <memory> |
Jan Wilken Dörrie | ad587c3 | 2021-03-11 14:09:27 | [diff] [blame] | 9 | #include <string> |
dcheng | 9603ab9 | 2016-04-08 04:17:32 | [diff] [blame] | 10 | |
Keishi Hattori | 0e45c02 | 2021-11-27 09:25:52 | [diff] [blame] | 11 | #include "base/memory/raw_ptr.h" |
[email protected] | 0cf6414 | 2013-10-19 13:52:39 | [diff] [blame] | 12 | #include "ui/base/models/combobox_model.h" |
13 | |||||
Anthony Cui | 32520aa | 2022-04-13 19:51:55 | [diff] [blame] | 14 | class TranslateLanguageListModel; |
[email protected] | 0cf6414 | 2013-10-19 13:52:39 | [diff] [blame] | 15 | |
16 | // The model for the combobox to select a language. This is used for Translate | ||||
17 | // user interface to select language. | ||||
Haohao Wang | a35a46f | 2019-05-07 23:47:02 | [diff] [blame] | 18 | class TargetLanguageComboboxModel : public ui::ComboboxModel { |
[email protected] | 0cf6414 | 2013-10-19 13:52:39 | [diff] [blame] | 19 | public: |
Anthony Cui | 32520aa | 2022-04-13 19:51:55 | [diff] [blame] | 20 | TargetLanguageComboboxModel(int default_index, |
21 | TranslateLanguageListModel* model); | ||||
Peter Boström | 53c6c595 | 2021-09-17 09:41:26 | [diff] [blame] | 22 | |
23 | TargetLanguageComboboxModel(const TargetLanguageComboboxModel&) = delete; | ||||
24 | TargetLanguageComboboxModel& operator=(const TargetLanguageComboboxModel&) = | ||||
25 | delete; | ||||
26 | |||||
Haohao Wang | a35a46f | 2019-05-07 23:47:02 | [diff] [blame] | 27 | ~TargetLanguageComboboxModel() override; |
[email protected] | 0cf6414 | 2013-10-19 13:52:39 | [diff] [blame] | 28 | |
29 | // Overridden from ui::ComboboxModel: | ||||
Peter Kasting | c556641f | 2022-07-15 12:47:08 | [diff] [blame] | 30 | size_t GetItemCount() const override; |
31 | std::u16string GetItemAt(size_t index) const override; | ||||
Mohamed Mansour | bc07189 | 2023-12-07 04:08:03 | [diff] [blame] | 32 | std::optional<size_t> GetDefaultIndex() const override; |
[email protected] | 0cf6414 | 2013-10-19 13:52:39 | [diff] [blame] | 33 | |
34 | private: | ||||
35 | const int default_index_; | ||||
Anthony Cui | 32520aa | 2022-04-13 19:51:55 | [diff] [blame] | 36 | raw_ptr<TranslateLanguageListModel> model_; |
[email protected] | 0cf6414 | 2013-10-19 13:52:39 | [diff] [blame] | 37 | }; |
38 | |||||
Haohao Wang | a35a46f | 2019-05-07 23:47:02 | [diff] [blame] | 39 | #endif // CHROME_BROWSER_UI_TRANSLATE_TARGET_LANGUAGE_COMBOBOX_MODEL_H_ |