Commit Graph

126 Commits

Author SHA1 Message Date
Alec Murphy
5192ae34ec System/Libraries/Html/Renderer: Set focus is autofocus attribute is present 2025-04-16 18:21:31 -04:00
Alec Murphy
5ea8809a34 System/Libraries/Html/Tokenizer: Support empty attributes 2025-04-16 18:04:54 -04:00
Alec Murphy
4ef542cf32 System/Libraries/Html/Renderer: Keep track of form element widgets
Save a pointer to the corresponding Gui widget for each form element as
an attribute in the @html_dom_node.

I'm not a fan of doing this, but it is probably one of the better
options considering the way things are currently implemented, and the
remaining work to be done.
2025-04-16 14:57:33 -04:00
Alec Murphy
99268200f4 System/Libraries/Html/Renderer: Fix BGR/RGB flip in background
This is no longer needed and breaks things, so let's revert it.
2025-04-16 14:55:31 -04:00
Alec Murphy
24500f52a3 System/Libraries/(Css,Graphics2D,Html): Support underlined text
This commit adds the necessary functions to minimally implement support
for CSS text-decoration: underline.
2025-04-16 14:53:16 -04:00
Alec Murphy
622c35e038 System/Libraries/Html/Renderer: Apply CSS and HTML Element attribute width/height values to form elements 2025-04-16 10:36:51 -04:00
Alec Murphy
e60ffee006 System/Libraries/Html/Renderer: Unset node->display_block based on CSS value 2025-04-16 10:19:50 -04:00
Alec Murphy
e3d6121fe3 System/Libraries/Css/Tokenizer: Include single/double quoted tokens in CSS value 2025-04-16 10:09:29 -04:00
Alec Murphy
58f2243bf1 System/Core/Compositor: Update defaults for TrueType fonts 2025-04-15 16:22:12 -04:00
Alec Murphy
0a579a4f09 System/Libraries/Html/Renderer: Handle italic/oblique text 2025-04-15 16:21:52 -04:00
Alec Murphy
97187728e8 System/Libraries/Html/Tokenizer: Add italic property to @html_dom_node 2025-04-15 16:21:07 -04:00
Alec Murphy
3b83397e60 System/Libraries/Html/Renderer: Render STRONG 2025-04-15 15:35:20 -04:00
Alec Murphy
60606317b2 System/Libraries/Html/Renderer: Render LI ordered/unordered items 2025-04-15 15:34:54 -04:00
Alec Murphy
49b1e82e55 System/Core/Compositor: Update defaults for TrueType fonts 2025-04-15 11:54:53 -04:00
Alec Murphy
d6ff8beb9f System/Libraries/Html/Renderer: Initial support for CSS font-weight 2025-04-15 11:52:43 -04:00
Alec Murphy
d60fc53798 System/Libraries/Graphics2D: Chop 16px off X2 max pos in @get_truetype_text_width()
This is a quick and dirty hack to compensate for artifacts at the far
right edge of the font rasterization buffer. Chopping off 16px allows us
to get the proper width of the rasterized text.
2025-04-15 11:45:47 -04:00
Alec Murphy
0d303b0134 System/Libraries/Html/Tokenizer: Add fontWeight property to @html_dom_node 2025-04-15 11:28:07 -04:00
Alec Murphy
ae42db0be5 System/Libraries/Html/Renderer: Implement some CSS default rules 2025-04-15 10:40:28 -04:00
Alec Murphy
def7d53101 System/Libraries/Html/Renderer: Increase background_ctx to max size before fill() 2025-04-15 10:03:04 -04:00
Alec Murphy
dfb73f029c Applications/Internet/Cyberia: Create background ctx and fill #ffffff when a new Renderer is created 2025-04-15 07:50:11 -04:00
Alec Murphy
c998d040ed System/Libraries/Html/Renderer: Create background_ctx for each HtmlRenderer instance 2025-04-14 21:16:04 -04:00
Alec Murphy
b5d27214a1 System/Libraries/Widget: Add disabled_image property to ButtonWidget class 2025-04-14 20:41:28 -04:00
Alec Murphy
96e0009173 System/Libraries/Gui: Add disabled property to Widget class 2025-04-14 20:41:03 -04:00
Alec Murphy
b30759c12e System/Libraries/Html/Renderer: Always return DEFAULT_FAVICON instead of NULL 2025-04-14 17:26:22 -04:00
Alec Murphy
10309b6b18 System/Libraries/Html/Renderer: Initial favicon support
This only supports RGBx color depths at the moment, but it's good enough
for most modern sites.
2025-04-14 16:45:51 -04:00
Alec Murphy
6532218883 System/Libraries/Html/Renderer: Handle node->textAlign a bit better
Just a few QoL tweaks for now, until we properly handle CSS, layout,
and everything else.
2025-04-14 10:53:05 -04:00
Alec Murphy
dd86ef6a44 Meta: Add some layout debugging stuff 2025-04-13 14:40:44 -04:00
Alec Murphy
08313be27f System/Libraries/Html/Renderer: Refactor @render_node_list 2025-04-13 14:39:24 -04:00
Alec Murphy
fc0c98ee2b System/Libraries/Html/Renderer: Add debug options 2025-04-12 20:12:43 -04:00
Alec Murphy
9e0668d0e0 System/Libraries/Html/Renderer: Initial support for node->textAlign
This only works for very simple cases, but it is enough for centering
and right-align text on sites like Wiby, and a centered Google logo. :^)
2025-04-12 19:57:49 -04:00
Alec Murphy
e8bc19b444 System/Libraries/Html/Renderer: Fix an oopsie woopsie (advance by code point, rather than byte) 2025-04-12 18:48:58 -04:00
Alec Murphy
d068f46bc6 Meta: Remove debugging stuff 2025-04-12 18:26:43 -04:00
Alec Murphy
3201b187ec System/Api/Dns: Remove some old Slon debugging stuff that breaks Catbox DNS lookup 2025-04-12 18:16:29 -04:00
Alec Murphy
df0adc0a15 Everywhere: Changes to @html_dom_node and TrueType API
CSS properties fontFamily and fontSize are part of @html_dom_node now,
and the TrueType API only accepts I32 code point streams, so we have
to preprocess UTF-8 streams before rendering text.
2025-04-12 18:09:26 -04:00
Alec Murphy
bef1c78c5d System/Utilities/TrueType: Change pointer type to I32* for @stbtt_RenderText() 2025-04-12 18:04:40 -04:00
Alec Murphy
b01e1171a3 System/Core/Compositor: Set defaults for TrueType font categories 2025-04-12 16:23:51 -04:00
Alec Murphy
6b09ccabb6 System/Libraries/Html: Add fontFamily attribute to @html_dom_node 2025-04-11 20:11:25 -04:00
Alec Murphy
8143d59620 System/Libraries/Css/Tokenizer: Split values on comma 2025-04-11 20:10:52 -04:00
Alec Murphy
603e1d15ab System/Libraries/Html/Renderer: Apply bgcolor/color element attribute values to CSS 2025-04-11 17:22:29 -04:00
Alec Murphy
17910faac2 System/Libraries/Html/Renderer: Match rules in accordance with CSS Specificity 2025-04-11 16:58:48 -04:00
Alec Murphy
3e8d126fbe System/Libraries/Html/Renderer: Add NULL check to @reflow_node_list() 2025-04-10 19:48:11 -04:00
Alec Murphy
c45b862b2b System/Libraries/Html/Renderer: Render INPUT type=checkbox 2025-04-10 14:49:35 -04:00
Alec Murphy
4992c222d7 System/Libraries/Html/Renderer: Render INPUT type=password 2025-04-10 11:41:13 -04:00
Alec Murphy
42e4f89b8b System/Libraries/Html/Renderer: Render INPUT type=text 2025-04-10 11:35:43 -04:00
Alec Murphy
5fb71f80ca System/Libraries/Widget: Eager repaint on widget->SetText() unless otherwise specified 2025-04-10 10:58:30 -04:00
Alec Murphy
d3048f31e5 Applications/Internet/Cyberia: Add web browser
This is the initial commit of the Cyberia web browser, Html and Css
libraries.
2025-04-10 10:51:59 -04:00
Alec Murphy
3545113247 System/Libraries/Gui: Add data attribute to Widget class 2025-04-10 10:47:37 -04:00
Alec Murphy
86190d4576 System/Core/Compositor: Hold F12 to display debug info 2025-04-10 10:08:38 -04:00
Alec Murphy
96226e6211 System/Libraries/Ipc: Add msg->timestamp to IpcMessage class 2025-04-10 08:37:57 -04:00
Alec Murphy
ebacbeafca System/Core/Compositor: Update menubar title in @compositor_refresh(win) 2025-04-10 08:28:49 -04:00