void ComboBox::NotifySelectionChange() { auto event = TryGetEventFromPropertyMap<SelectionChangeEvent>(GetPropertyMap(), kSelectionChangeEventPropertyName); if (event != nullptr) { event->Trigger(std::dynamic_pointer_cast<ComboBox>(shared_from_this())); } }
void CheckBox::SetCanBeIndeterminate(bool can_be_ndeterminate) { GetPropertyMap().SetProperty(kCanBeIndeterminatePropertyName, can_be_ndeterminate); if (! can_be_ndeterminate && (GetCheckState() == CheckState::Indeterminate)) { SetCheckState(CheckState::Checked); } }
void ClickableControl::Click() { MouseClick(); auto click_event = TryGetEventFromPropertyMap<ClickEvent>(GetPropertyMap(), kClickEventPropertyName); if (click_event != nullptr) { click_event->Trigger(std::dynamic_pointer_cast<ClickableControl>(shared_from_this())); } }
bool ComboBox::IsEditable() const { auto is_editable = GetPropertyMap().TryGetProperty<bool>(kIsEditablePropertyName); if (is_editable != nullptr) { return *is_editable; } else { return nullptr; } }
std::size_t ComboBox::GetMaximumVisibleItemCount() const { auto count = GetPropertyMap().TryGetProperty<std::size_t>(kMaximumVisibleItemCountPropertyName); if (count != nullptr) { return *count; } else { return std::numeric_limits<std::size_t>::max(); } }
std::size_t ComboBox::GetMinimumVisibleItemCount() const { auto count = GetPropertyMap().TryGetProperty<std::size_t>(kMinimumVisibleItemCountPropertyName); if (count != nullptr) { return *count; } else { return 1; } }
float ComboBox::GetDropDownButtonWidth() const { auto width = GetPropertyMap().TryGetProperty<float>(kDropDownButtonWidthPropertyName); if (width != nullptr) { return *width; } else { return 12; } }
const ColorPicker CheckBox::GetBoxBackgroundColorPicker() const { auto color_picker = GetPropertyMap().TryGetProperty<ColorPicker>(kBoxBackgroundColorPickerPropertyName); if ( (color_picker != nullptr) && (*color_picker != nullptr) ) { return *color_picker; } else { return internal::GetBoxBackgroundColorPicker(); } }
const ColorPicker ComboBox::GetDropDownButtonColorPicker() const { auto color_picker = GetPropertyMap().TryGetProperty<ColorPicker>(kDropDownButtonColorPickerPropertyName); if (color_picker != nullptr) { return *color_picker; } else { return [](const Control&) { return Color::Black; }; } }
bool CheckBox::CanAutoChangeCheckState() const { auto value = GetPropertyMap().TryGetProperty<bool>(kCanAutoChangeCheckStatePropertyName); if (value != nullptr) { return *value; } else { return true; } }
bool CheckBox::CanBeIndeterminate() const { auto value = GetPropertyMap().TryGetProperty<bool>(kCanBeIndeterminatePropertyName); if (value != nullptr) { return *value; } else { return false; } }
void CheckBox::SetCheckState(CheckState check_state) { if (check_state_ == check_state) { return; } check_state_ = check_state; NeedRepaint(); auto event = TryGetEventFromPropertyMap<CheckStateChangeEvent>(GetPropertyMap(), kCheckStateChangeEventPropertyName); if (event != nullptr) { event->Trigger(std::dynamic_pointer_cast<CheckBox>(shared_from_this())); } }
void MetaEditor::selectE2Property() { QStringList codes; { AddMetadata addproperty(GetPropertyMap(), this); if (addproperty.exec() == QDialog::Accepted) { codes = addproperty.GetSelectedEntries(); } } foreach(QString code, codes) { if (code.startsWith("dir:")) { QStringList parts = code.split(':'); QString content = parts.at(1); insertChild(code, content); } else if (code == "opf:scheme") { insertChild(code); } else if (code == "xml:lang") { QStringList langcodes; AddMetadata addvalue(Language::instance()->GetLangMap(), this); if (addvalue.exec() == QDialog::Accepted) { langcodes = addvalue.GetSelectedEntries(); } QString lang= "en"; if (!langcodes.isEmpty()) { lang = langcodes.at(0); } insertChild(code, lang); } else if (code == "opf:role") { QStringList rolecodes; AddMetadata addrole(MarcRelators::instance()->GetCodeMap(), this); if (addrole.exec() == QDialog::Accepted) { rolecodes = addrole.GetSelectedEntries(); } QString role = "aut"; if (!rolecodes.isEmpty()) { role = rolecodes.at(0); } insertChild(code, role); code = "opf:scheme"; QString scheme = "marc:relators"; insertChild(code, scheme); } else { insertChild(code); } } }
void MetaEditor::selectProperty() { QStringList codes; { AddMetadata addproperty(GetPropertyMap(), this); if (addproperty.exec() == QDialog::Accepted) { codes = addproperty.GetSelectedEntries(); } } foreach(QString code, codes) { if (code.startsWith("title-type:")) { QStringList parts = code.split(':'); QString content = parts.at(1); code = parts.at(0); insertChild(code, content); } else if (code.startsWith("collection-type:")) { QStringList parts = code.split(':'); QString content = parts.at(1); code = parts.at(0); insertChild(code, content); } else if (code.startsWith("dir:")) { QStringList parts = code.split(':'); QString content = parts.at(1); code = parts.at(0); insertChild(code, content); } else if (code == "source-of") { QString content = "pagination"; insertChild(code, content); } else if (code == "group-position") { QString content = "1"; insertChild(code, content); } else if (code == "display-seq") { QString content = "1"; insertChild(code, content); } else if (code == "scheme") { insertChild(code); } else if ((code == "altlang") || (code == "xml:lang")) { QStringList langcodes; AddMetadata addvalue(Language::instance()->GetLangMap(), this); if (addvalue.exec() == QDialog::Accepted) { langcodes = addvalue.GetSelectedEntries(); } QString lang= "en"; if (!langcodes.isEmpty()) { lang = langcodes.at(0); } insertChild(code, lang); } else if (code == "role") { QStringList rolecodes; AddMetadata addrole(MarcRelators::instance()->GetCodeMap(), this); if (addrole.exec() == QDialog::Accepted) { rolecodes = addrole.GetSelectedEntries(); } QString role = "aut"; if (!rolecodes.isEmpty()) { role = rolecodes.at(0); } insertChild(code, role); code = "scheme"; QString scheme = "marc:relators"; insertChild(code, scheme); } else if (code == "identifier-type") { insertChild(code); code = "scheme"; insertChild(code); } else { insertChild(code); } } }
void ComboBox::SetDropDownButtonWidth(float width) { GetPropertyMap().SetProperty(kDropDownButtonWidthPropertyName, width); NeedRepaint(); }
ClickableControl::ClickEvent::Proxy ClickableControl::GetClickEvent() { return GetEventProxyFromPropertyMap<ClickEvent>(GetPropertyMap(), kClickEventPropertyName); }
CheckBox::CheckStateChangeEvent::Proxy CheckBox::GetCheckStateChangeEvent() { return GetEventProxyFromPropertyMap<CheckStateChangeEvent>(GetPropertyMap(), kCheckStateChangeEventPropertyName); }
void ComboBox::SetMaximumVisibleItemCount(std::size_t count) { GetPropertyMap().SetProperty(kMaximumVisibleItemCountPropertyName, count); }
void CheckBox::SetCanAutoChangeCheckState(bool can_change) { GetPropertyMap().SetProperty(kCanAutoChangeCheckStatePropertyName, can_change); }
void CheckBox::SetBoxBackgroundColorPicker(const ColorPicker& color_picker) { GetPropertyMap().SetProperty(kBoxBackgroundColorPickerPropertyName, color_picker); NeedRepaint(); }
void ComboBox::SetDropDownButtonColorPicker(const ColorPicker& color_picker) { GetPropertyMap().SetProperty(kDropDownButtonColorPickerPropertyName, color_picker); NeedRepaint(); }
void ComboBox::SetIsEditable(bool is_editable) { GetPropertyMap().SetProperty(kIsEditablePropertyName, is_editable); edit_text_box_->SetIsVisible(is_editable); }
ComboBox::SelectionChangeEvent::Proxy ComboBox::GetSelectionChangeEvent() { return GetEventProxyFromPropertyMap<SelectionChangeEvent>(GetPropertyMap(), kSelectionChangeEventPropertyName); }