Commit 0059564d authored by Peter Boström's avatar Peter Boström Committed by Commit Bot

Make DialogModel checkbox settable on construction

Adds DialogModelCheckbox::Params with SetIsChecked().

Bug: 1106422, 1150027
Change-Id: Ia981f12b6d67250e3898c687ba9312b669ba2c2d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2545769
Auto-Submit: Peter Boström <pbos@chromium.org>
Commit-Queue: Scott Violet <sky@chromium.org>
Reviewed-by: default avatarScott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#828549}
parent 29763df2
...@@ -88,9 +88,11 @@ void DialogModel::AddBodyText(const DialogModelLabel& label) { ...@@ -88,9 +88,11 @@ void DialogModel::AddBodyText(const DialogModelLabel& label) {
AddField(std::make_unique<DialogModelBodyText>(GetPassKey(), this, label)); AddField(std::make_unique<DialogModelBodyText>(GetPassKey(), this, label));
} }
void DialogModel::AddCheckbox(int unique_id, const DialogModelLabel& label) { void DialogModel::AddCheckbox(int unique_id,
const DialogModelLabel& label,
const DialogModelCheckbox::Params& params) {
AddField(std::make_unique<DialogModelCheckbox>(GetPassKey(), this, unique_id, AddField(std::make_unique<DialogModelCheckbox>(GetPassKey(), this, unique_id,
label)); label, params));
} }
void DialogModel::AddCombobox(base::string16 label, void DialogModel::AddCombobox(base::string16 label,
......
...@@ -191,8 +191,11 @@ class COMPONENT_EXPORT(UI_BASE) DialogModel final { ...@@ -191,8 +191,11 @@ class COMPONENT_EXPORT(UI_BASE) DialogModel final {
} }
// Adds a checkbox. See DialogModel::AddCheckbox(). // Adds a checkbox. See DialogModel::AddCheckbox().
Builder& AddCheckbox(int unique_id, const DialogModelLabel& label) { Builder& AddCheckbox(int unique_id,
model_->AddCheckbox(unique_id, label); const DialogModelLabel& label,
const DialogModelCheckbox::Params& params =
DialogModelCheckbox::Params()) {
model_->AddCheckbox(unique_id, label, params);
return *this; return *this;
} }
...@@ -238,7 +241,10 @@ class COMPONENT_EXPORT(UI_BASE) DialogModel final { ...@@ -238,7 +241,10 @@ class COMPONENT_EXPORT(UI_BASE) DialogModel final {
void AddBodyText(const DialogModelLabel& label); void AddBodyText(const DialogModelLabel& label);
// Adds a checkbox ([checkbox] label) at the end of the dialog model. // Adds a checkbox ([checkbox] label) at the end of the dialog model.
void AddCheckbox(int unique_id, const DialogModelLabel& label); void AddCheckbox(int unique_id,
const DialogModelLabel& label,
const DialogModelCheckbox::Params& params =
DialogModelCheckbox::Params());
// Adds a labeled combobox (label: [model]) at the end of the dialog model. // Adds a labeled combobox (label: [model]) at the end of the dialog model.
void AddCombobox(base::string16 label, void AddCombobox(base::string16 label,
......
...@@ -165,16 +165,20 @@ DialogModelBodyText::DialogModelBodyText(util::PassKey<DialogModel> pass_key, ...@@ -165,16 +165,20 @@ DialogModelBodyText::DialogModelBodyText(util::PassKey<DialogModel> pass_key,
DialogModelBodyText::~DialogModelBodyText() = default; DialogModelBodyText::~DialogModelBodyText() = default;
DialogModelCheckbox::DialogModelCheckbox(util::PassKey<DialogModel> pass_key, DialogModelCheckbox::DialogModelCheckbox(
DialogModel* model, util::PassKey<DialogModel> pass_key,
int unique_id, DialogModel* model,
const DialogModelLabel& label) int unique_id,
const DialogModelLabel& label,
const DialogModelCheckbox::Params& params)
: DialogModelField(pass_key, : DialogModelField(pass_key,
model, model,
kCheckbox, kCheckbox,
unique_id, unique_id,
base::flat_set<Accelerator>()), base::flat_set<Accelerator>()),
label_(label) {} label_(label),
is_checked_(params.is_checked_) {}
DialogModelCheckbox::~DialogModelCheckbox() = default; DialogModelCheckbox::~DialogModelCheckbox() = default;
......
...@@ -219,12 +219,31 @@ class COMPONENT_EXPORT(UI_BASE) DialogModelBodyText : public DialogModelField { ...@@ -219,12 +219,31 @@ class COMPONENT_EXPORT(UI_BASE) DialogModelBodyText : public DialogModelField {
// Field class representing a checkbox with descriptive text. // Field class representing a checkbox with descriptive text.
class COMPONENT_EXPORT(UI_BASE) DialogModelCheckbox : public DialogModelField { class COMPONENT_EXPORT(UI_BASE) DialogModelCheckbox : public DialogModelField {
public: public:
class COMPONENT_EXPORT(UI_BASE) Params {
public:
Params() = default;
Params(const Params&) = delete;
Params& operator=(const Params&) = delete;
~Params() = default;
Params& SetIsChecked(bool is_checked) {
is_checked_ = is_checked;
return *this;
}
private:
friend class DialogModelCheckbox;
bool is_checked_ = false;
};
// Note that this is constructed through a DialogModel which adds it to model // Note that this is constructed through a DialogModel which adds it to model
// fields. // fields.
DialogModelCheckbox(util::PassKey<DialogModel> pass_key, DialogModelCheckbox(util::PassKey<DialogModel> pass_key,
DialogModel* model, DialogModel* model,
int unique_id, int unique_id,
const DialogModelLabel& label); const DialogModelLabel& label,
const Params& params);
DialogModelCheckbox(const DialogModelCheckbox&) = delete; DialogModelCheckbox(const DialogModelCheckbox&) = delete;
DialogModelCheckbox& operator=(const DialogModelCheckbox&) = delete; DialogModelCheckbox& operator=(const DialogModelCheckbox&) = delete;
~DialogModelCheckbox() override; ~DialogModelCheckbox() override;
...@@ -238,7 +257,7 @@ class COMPONENT_EXPORT(UI_BASE) DialogModelCheckbox : public DialogModelField { ...@@ -238,7 +257,7 @@ class COMPONENT_EXPORT(UI_BASE) DialogModelCheckbox : public DialogModelField {
private: private:
const DialogModelLabel label_; const DialogModelLabel label_;
bool is_checked_ = false; bool is_checked_;
}; };
// Field class representing a combobox and corresponding label to describe the // Field class representing a combobox and corresponding label to describe the
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment