#ifndef ASH_SYSTEM_IME_IME_DETAILED_VIEW_H_
#define ASH_SYSTEM_IME_IME_DETAILED_VIEW_H_
#include <stddef.h>
#include "ash/public/cpp/ime_info.h"
#include "ash/system/ime_menu/ime_list_view.h"
#include "base/memory/raw_ptr.h"
#include "ui/base/metadata/metadata_header_macros.h"
namespace views {
class ImageView;
}
namespace ash {
class ImeControllerImpl;
class IMEDetailedView : public ImeListView {
METADATA_HEADER(IMEDetailedView, ImeListView)
public:
IMEDetailedView(DetailedViewDelegate* delegate,
ImeControllerImpl* ime_controller);
IMEDetailedView(const IMEDetailedView&) = delete;
IMEDetailedView& operator=(const IMEDetailedView&) = delete;
~IMEDetailedView() override = default;
void Update(const std::string& current_ime_id,
const std::vector<ImeInfo>& list,
const std::vector<ImeMenuItem>& property_list,
bool show_keyboard_toggle,
SingleImeBehavior single_ime_behavior) override;
views::ImageView* controlled_setting_icon() {
return controlled_setting_icon_;
}
private:
void ResetImeListView() override;
void CreateExtraTitleRowButtons() override;
void ShowSettings();
const raw_ptr<ImeControllerImpl> ime_controller_;
raw_ptr<views::Button, DanglingUntriaged> settings_button_ = nullptr;
raw_ptr<views::ImageView> controlled_setting_icon_ = nullptr;
};
}
#endif