Mike Welsh
66256dd3be
swf: SwfStr no longer contains encoding
...
SwfStr is now an unsized slice analogous to `str` or `bstr`.
The desired encoding must be supplied when converting to String.
2021-01-20 15:02:31 -08:00
Mike Welsh
1d9c11e145
swf: Add SwfStr type to handle encodings in SWF<6
2021-01-20 15:02:31 -08:00
Mike Welsh
19034b76e4
swf: Return slices in swf::Reader
...
Avoid copies by returning slices of the decompressed input.
2021-01-20 15:02:31 -08:00
Mike Welsh
fae1d6fd6a
chore: Appease clippy
2021-01-04 13:17:26 -08:00
Mike Welsh
326a5b6212
core: Move device font to Library ( fix #1995 )
2020-12-17 23:20:22 -08:00
jmckiern
beed570475
core: Add string_utils char boundary functions
2020-12-17 16:15:24 -08:00
jmckiern
b81cb1a3eb
core: Extend text input to deal with multibyte chars
2020-12-17 16:15:24 -08:00
relrelb
2e0509694c
docs: Miscellaneous spelling corrections
2020-11-12 13:34:05 -08:00
Mike Welsh
316bc4e920
chore: Appease clippy
2020-11-09 01:52:57 -08:00
Nathan Adams
c910824de8
core: Fix caret position in multi layout text
2020-11-02 11:43:10 -08:00
Mike Welsh
10aaae9247
chore: Appease nightly clippy
2020-10-10 00:03:25 -07:00
Nathan Adams
4a83641a6c
core: Support \r newlines in texts - fixes #1071 , #808
2020-09-19 16:18:35 -07:00
Luca Weiss
d5cb396331
*: fix spelling mistakes
2020-09-19 16:17:58 -07:00
Mike Welsh
2f84d468ee
text: Default text span color should be black
...
Previosuly color defaulted to 0% alpha, causing text to be
invisible if the text field did not specify a defualt color.
2020-09-18 18:58:09 -07:00
Mike Welsh
f55bac2014
text: HTML tags and attributes are case insensitive ( fix #1021 )
...
Use eq_ignore_ascii_case when parsing HTML tags. Different versions
of Flash may export HTML tags with different cases, so this will
work a little better; however, we'll need a true HTML parser to
handle this robustly (for opening and closing tags with different
cases, for example).
2020-08-24 11:27:14 -07:00
Mike Welsh
febada8a8e
text: Fix duplicated characters when parsing HTML entities ( fix #1026 )
2020-08-24 11:27:14 -07:00
David Wendt
7b7f0b20e6
Consolidate all of our copied `CollectWrapper`s.
2020-08-14 20:52:09 -04:00
David Wendt
a19595c8b4
Embed `UpdateContext` in `Activation` directly.
...
The process of constructing an `Activation` now involves calling `UpdateContext.reborrow`, which "sheds" a lifetime by copying all of the borrows into a new "owned" context with that lifetime.
Likewise, to call out to functions that don't need an `Activation`, just borrow the context out of the current activation. You can also construct child-frame activations by reborrowing the parent activation's context.
2020-08-01 15:49:19 -04:00
David Wendt
7c7b019087
Move AVM1 inside UpdateContext.
2020-08-01 13:44:04 -04:00
David Wendt
14bfbc358f
wip: Move UpdateContext into Activation
2020-08-01 13:33:04 -04:00
Nathan Adams
fba8ccda81
avm1: Rename Avm1String to AvmString
2020-07-13 10:12:54 -07:00
Nathan Adams
ad733f2f21
avm1: Add Avm1String which wraps Gc<String>
2020-07-13 10:12:54 -07:00
Nathan Adams
016b9db3c5
avm1: Change Value::String(String) to Value::String(Gc<String>)
2020-07-13 10:12:54 -07:00
Nathan Adams
c4980d0bf5
core: Make XMLName::node_name return Cow<str>. It's not always owned, and we don't always need it to be.
2020-07-03 17:30:59 -07:00
Nathan Adams
c976cf8efb
avm1: Replace action.avm() with activation.avm to help with borrow checker in next commit
2020-07-03 17:24:20 -07:00
Nathan Adams
8bc3eedc43
avm1: Rename StackFrame to Activation now that they're merged
2020-07-02 00:09:43 +02:00
Nathan Adams
f85684fec0
avm1: Move current_swf_version and is_case_sensitive from avm1 to stackframe
2020-06-29 10:10:11 +02:00
Nathan Adams
da8ca1379f
avm1: Change from 'avm, context' to 'activation, context' and restructured to support this
2020-06-29 10:09:38 +02:00
Nathan Adams
70e4a40f01
avm1: Allow for user errors inside avm1::error::Error
2020-06-25 02:03:15 -07:00
David Wendt
74af7b345c
Adjust `BoxBounds` to use `Copy` instead of `Clone`.
2020-06-24 23:40:27 -04:00
David Wendt
d7a257f93f
Adjust `LayoutContext` and `LayoutBox` to construct a `Vec` of boxes rather than an intrusive, garbage-collected linked list.
2020-06-24 23:34:38 -04:00
David Wendt
453cf6c0f1
Remove *extremely* out of date documentation on `BoxBounds`.
2020-06-24 22:36:36 -04:00
David Wendt
2723c3f6d9
Rename `Collec` to `CollectWrapper`
2020-06-24 22:34:04 -04:00
David Wendt
5b36522258
Remove out-of-date doccomment on `LayoutBox`.
2020-06-24 22:19:16 -04:00
David Wendt
e4d4d996f9
Don't push each line of text down with the leading adjustment.
...
We already adjust the cursor with the same adjustment, so we don't need to move the text down.
2020-06-24 21:32:59 -04:00
Mike Welsh
0f794489a4
text: Don't create underline drawing if no underline exists
2020-06-24 12:53:51 -07:00
Mike Welsh
3558e42c34
text: Always fallback to Noto Sans if text field is set to use device fonts
2020-06-24 12:19:06 -07:00
Mike Welsh
f591e1dafc
text: process_html_entity returns a Cow
2020-06-24 11:56:20 -07:00
Mike Welsh
b47e84b131
text: Derive Default for TextFormat
2020-06-24 10:44:34 -07:00
David Wendt
12495de91e
Generate `LI`s when newlines are encountered with bullets on.
2020-06-22 19:45:39 -04:00
David Wendt
ed5f3cdd0e
Don't attempt to use non-embedded fonts. Instead, replace all of them with Noto (like EditText used to do).
2020-06-22 19:02:32 -04:00
David Wendt
7a9796a2f9
Restore BR parsing.
...
Note that this won't actually work since we're behind an XML parser that chokes on implicitly self-closing HTML tags.
2020-06-20 20:15:00 -04:00
David Wendt
c1ad37a0f6
Implement text span raising, sans list items.
...
During the raising process, we maintain a list of pointers to the lowest-most `textformat`, `p`, `font`, `a`, `b`, `i`, and `u` in the document that we are appending to. When we get a new one of any of those elements, we clear the rest off the stack. This forces us to add HTML in the same order Flash does.
LIs are not yet supported because they require us to process text line-by-line which doesn't mesh with this model.
There's also a test but the XML DOM generates HTML strings with the wrong attribute order, so the test fails spuriously.
2020-06-20 20:14:57 -04:00
David Wendt
e036d6594b
Add some entity support to HTML parsing.
2020-06-20 20:08:22 -04:00
David Wendt
88fcb98913
Allow disabling entity processing when parsing XML.
...
This necessitated a change to edittext_bullet, which turns out is accidentally an entity test, too. It now no longer uses entities so that it won't spuriously fail due to an entity related problem.
2020-06-20 20:06:21 -04:00
David Wendt
f097a6584e
Implement underlines.
2020-06-20 19:56:01 -04:00
David Wendt
d63b3f23e9
Add support for inserting arbitrary drawings into the layout.
2020-06-20 19:56:00 -04:00
David Wendt
1c371c3a95
Render bullets.
...
Bullets are implemented by rendering U+2022 as if it were normal text, but always placed 18px from the left of the line. This appears to be sort of what Flash does.
2020-06-20 19:55:59 -04:00
David Wendt
a3dfa8c21f
Bulleted lists get 35px of additional left-margin and do not respect alignment at all.
2020-06-20 19:55:59 -04:00
David Wendt
8628261dc8
Add a bunch of necessary fixes to default text formatting and HTML format extraction.
...
This also replaces the `edittext_html_defaults` test with a more robust test that checks the default format and global format of SWF-based, text, and HTML test vectors.
2020-06-20 19:55:57 -04:00