summaryrefslogtreecommitdiff
path: root/Base
AgeCommit message (Collapse)Author
2019-11-25LibHTML: Implement basic <form> and <input> element supportAndreas Kling
This patch adds "submit" inputs and default (text box) inputs, as well as form elements that can be submitted. Layout of input elements is implemented via a new LayoutWidget class that allows you to put an arbitrary GWidget in the layout tree. At the moment, the DOM node sets the initial size of the LayoutWidget, and then the positioning is done by the normal layout algorithm. We also now support submitting a <form method="GET">, which does a full replacing load with a URL based on the form's action + a query string built from the name/value of input elements within the submitted form. This is pretty neat! :^)
2019-11-25Base: Import the 1st and 2nd Acid tests for web standards complianceAndreas Kling
Getting these to work will take a lot of work, but most of it will be pretty fun, so I guess we start by importing them. :^)
2019-11-25LibHTML: Draw each CSS border edge separately with their own styleAndreas Kling
The borders still look very wrong with any border-width other than 1, but at least we can see that they have the right color, and end up in mostly the right place :^)
2019-11-25Base: Add trq.json and en.jsonHüseyin ASLITÜRK
2019-11-22WindowServer: Add an audio icon to the menu barAndreas Kling
Clicking on this icon toggles the AudioServer muted state. It currently does not react to muted state changes caused by other programs, since it has no way of learning about those from AudioServer, other than performing a synchronous IPC call (GetMuted), which we don't want to be doing in the WindowServer :^)
2019-11-22Docs: Add avol(1)Andreas Kling
2019-11-21LibHTML: Handle stand-alone attribute selectorsAndreas Kling
A selector like "[foo]" is now parsed as a universal selector component with an attribute match type. Pretty neat :^)
2019-11-21LibHTML: Implement some attribute selector supportAndreas Kling
This patch adds a[foo] and a[foo=bar] attribute selectors. Note that an attribute selector is an optional part of a selector component, and not a component on its own.
2019-11-18little: Make this build by default, and add some curliesAndreas Kling
2019-11-17Docs: Add note about EINVAL to isatty(3)Andreas Kling
2019-11-17Docs: Add isatty(3) man pageAndreas Kling
2019-11-17Docs: Add uname(1) and uname(2) man pagesAndreas Kling
2019-11-17Docs: Add info about -T and -t to crash(1)Andreas Kling
2019-11-12Base: Add Help.af :^)Andreas Kling
Whoops, I forgot to add an .af file for the Help app!
2019-11-12Katica10: Tweak the 'L' and 'Q' glyphsAndreas Kling
2019-11-11Launcher: Remove the Launcher app, and all hacks in support of itAndreas Kling
The Launcher's functionality has been replaced by the app shortcuts in the system menu. There were various window management hacks to ensure that the launcher stayed below all other windows while also being movable, etc.
2019-11-11Base: Add .af files for Minesweeper, Snake and VisualBuilderAndreas Kling
2019-11-11Base: Add Piano.af and SoundPlayer.afAndreas Kling
2019-11-11Base: Put DisplayProperties, FontEditor and PaintBrush into a categoryAndreas Kling
These apps are now in a "Graphics" category :^)
2019-11-11Base: Add TextEditor.afAndreas Kling
2019-11-11WindowServer: Populate system menu with app launchers from /res/appsAndreas Kling
The new system directory /res/apps now contains ".af" files describing applications (name, category, executable path, and icon.) These are used to populate the system menu with application shortcuts. This will replace the Launcher app. :^)
2019-11-10HackStudio: Use a visually distinct icon for the cursor toolAndreas Kling
Using the default cursor bitmap as the cursor tool icon in HackStudio was predictably making it impossible to tell if it's the real cursor or not. Replace it with a color-inverted cursor. :^)
2019-11-10HackStudio: Use the GWidget class registry to populate the toolbarAndreas Kling
This will allow HackStudio to learn about new GWidget types without having to do anything in HackStudio :^)
2019-11-10Base: Add link to bettermotherfuckingwebsite in welcome.htmlMarcel Schneider
2019-11-09SoundPlayer: Added 32x32 icon for the about dialogTill Mayer
2019-11-09FileManager: Remember my last position and size.Hüseyin ASLITÜRK
2019-11-09HackStudio: Start fleshing out the GUI for a GUI designer :^)Andreas Kling
I'll be reconstructing parts of the VisualBuilder application here and then we can retire VisualBuilder entirely once all the functionality is available in HackStudio.
2019-11-07Base: Add a local copy of bettermotherfuckingwebsite.com for testingAndreas Kling
2019-11-04SoundPlayer: Added playback control icons and application iconTill Mayer
2019-11-04FileManager: Remember my last view mode (#731)Hüseyin ASLITÜRK
2019-10-30HackStudio: Show documentation preview in tooltip on identifier hoverAndreas Kling
When hovering over a C++ token that we have a man page for, we now show the man page in a tooltip window. This feels rather bulky at the moment, but the basic mechanism is quite neat and just needs a bunch of tuning.
2019-10-28HackStudio: Add little icons for ".cpp" and ".h" filesAndreas Kling
This makes it easier to tell them apart in locator suggestions. :^)
2019-10-25HackStudio: Start building a C++ lexer to help with syntax highlightingAndreas Kling
2019-10-24HackStudio: Add some toolbar icons to liven up the UI a bit :^)Andreas Kling
2019-10-23HackStudio: Add "little" test project file listAndreas Kling
2019-10-22HackStudio: Add a simple "Run" actionAndreas Kling
Ctrl+R will now execute "make run" in the project directory. :^)
2019-10-22HackStudio: Show the currently open file in bold (in the project list)Andreas Kling
Also import a little default C++ project called "little" :^)
2019-10-21HackStudio: Add a simple app icon and some initial menusAndreas Kling
2019-10-20LibHTML: Implement "text-align: justify"Andreas Kling
In order for this to work nicely, I made the line box classes use float instead of int for its geometry information. Justification works by distributing all of the whitespace on the line (including the trailing whitespace before the line break) evenly across the spaces in-between words. We should probably use floating point (or maybe fixed point?) for all the layout metrics stuff. But one thing at a time. :^)
2019-10-20LibHTML+Browser: Support scrolling to anchor with <a href="#foo">Andreas Kling
This patch implements basic support for <a href="#foo"> fragment links. To figure out where we actually want to scroll to, we have to do something different based on the layout node's box type. So if it's a regular LayoutBox we can just use the LayoutBox::position(). However, if it's an inline layout node, we use the position of the first line box fragment in the containing block contributed by this layout node or one of its descendants.
2019-10-19LibHTML: Implement basic tiled background image supportAndreas Kling
It's now possible to set a page background image via <body background>. Also, HtmlView now officially handles rendering the body element's background (color, image or both.) LayoutBox is responsible for all other background rendering. Note that it's not yet possible to use CSS background-image properties directly, since we can't parse them yet. :^)
2019-10-16LibHTML: Add the <center> elementAndreas Kling
This is really just "center { display: block; text-align: center; }" in the default stylesheet, but it totally works!
2019-10-16LibHTML: Implement CSS text-align: left/center/rightAndreas Kling
This was easier than I imagined; we just shift each line box to the left based on the alignment and the remaining space on each line. :^)
2019-10-14LibHTML: Implement basic :hover pseudo-class supportAndreas Kling
This is currently very aggressive. Whenever the Document's hovered node changes, we invalidate all style and do a full relayout. It does look cool though. So cool that I'm adding it to the default stylesheet. :^)
2019-10-13HexEditor: Initial application releaseBrandon Scott
The very first release of the Hex Editor for Serenity.
2019-10-13LibHTML: Handle comments in the CSS parserAndreas Kling
Turn consume_whitespace() into consume_whitespace_or_comments() and have it swallow /* comments */ as well.
2019-10-12LibHTML: Add Comment and CharacterData nodes and improve HTML parsingAndreas Kling
This patch adds the CharacterData subclass of Node, which is now the parent class of Text and a new Comment class. A Comment node is one of these in HTML: <!--hello friends--> Since these occur somewhat frequently on the web, we need to be able to parse them. This patch also adds a child rejection mechanism to the DOM tree. Nodes can now override is_child_allowed(Node) and return false if they don't want a particular Node to become a child of theirs. This is used to prevent Document from taking on unwanted children.
2019-10-12LibHTML: Implement the <br> element for line breakingAndreas Kling
The <br> element will produce a special LayoutBreak node in the layout tree, which forces a break in the line layout whenever encountered. This patch also makes LayoutBlock use the current line-height as the minimum effective height for each line box. This ensures that having multiple <br> elements in a row doesn't create 0-height line boxes.
2019-10-10LibGUI+WindowServer: Add a "Hand" cursor to the standard cursorsAndreas Kling
2019-10-09LibHTML: Implement the <blink> elementAndreas Kling
Just in time for Serenity's 1st birthday, here is the <blink> element! This patch adds a bunch of different mechanisms to enable partial repaints of the layout tree (LayoutNode::set_needs_display())) It also adds LayoutNode::is_visible(), which can be toggled to prevent a LayoutNode from rendering anything (it still takes up space though.)