script/dom/execcommand/commands/
defaultparagraphseparator.rs1use crate::dom::bindings::str::DOMString;
6use crate::dom::document::Document;
7use crate::dom::execcommand::basecommand::{BaseCommand, DefaultSingleLineContainerName};
8use crate::dom::selection::Selection;
9
10impl From<DefaultSingleLineContainerName> for DOMString {
11 fn from(default_single_line_container_name: DefaultSingleLineContainerName) -> Self {
12 match default_single_line_container_name {
13 DefaultSingleLineContainerName::Div => DOMString::from("div"),
14 DefaultSingleLineContainerName::Paragraph => DOMString::from("p"),
15 }
16 }
17}
18
19pub(crate) struct DefaultParagraphSeparatorCommand {}
20
21impl BaseCommand for DefaultParagraphSeparatorCommand {
22 fn execute(
24 &self,
25 _cx: &mut js::context::JSContext,
26 document: &Document,
27 _selection: &Selection,
28 value: DOMString,
29 ) -> bool {
30 let value = match value.to_ascii_lowercase().as_str() {
33 "div" => DefaultSingleLineContainerName::Div,
34 "p" => DefaultSingleLineContainerName::Paragraph,
35 _ => return false,
36 };
37
38 document.set_default_single_line_container_name(value);
39
40 true
41 }
42
43 fn current_value(&self, document: &Document) -> Option<DOMString> {
45 Some(document.default_single_line_container_name().into())
47 }
48}