Age | Commit message (Collapse) | Author | |
---|---|---|---|
2019-04-10 | WindowServer: Factor out some parts of compose(). | Andreas Kling | |
The main compositing loop was getting pretty unwieldy. Break out some parts into functions so it's more understandable. | |||
2019-04-10 | LibGUI: Move frame painting from GFrame to StylePainter. | Andreas Kling | |
This way it can be used by others who might not have a GFrame object. | |||
2019-04-10 | GSpinBox: Put nice little arrow glyphs on the buttons. | Andreas Kling | |
2019-04-06 | Add a slight hover highlight to GButton and WSButton. :^) | Andreas Kling | |
2019-04-04 | Painter: Add text elision support (only right-hand side supported.) | Andreas Kling | |
Some window titles didn't fit on the taskbar buttons, so I needed a way to collapse the remaining part of the text into "..." | |||
2019-04-04 | LibGUI: Make it possible for GButton to be checkable. | Andreas Kling | |
2019-04-03 | AK: Add Eternal<T> and use it in various places. | Andreas Kling | |
This is useful for static locals that never need to be destroyed: Thing& Thing::the() { static Eternal<Thing> the; return the; } The object will be allocated in data segment memory and will never have its destructor invoked. | |||
2019-04-03 | GraphicsBitmap: Use MappedFile. | Andreas Kling | |
2019-04-03 | PNGLoader: Use MappedFile. | Andreas Kling | |
2019-04-03 | Font: Clean up AK::MappedFile and use it for mapping font files. | Andreas Kling | |
2019-04-02 | Move NetworkOrdered.h to AK/ since it's used in both kernel and userspace. | Andreas Kling | |
2019-03-31 | WindowServer: Add a WSCursor class (a bitmap and a hotspot.) | Andreas Kling | |
Also import a bunch of cursors I drew. Only the default ("arrow") cursor is ever used so far. | |||
2019-03-30 | LibGUI: Add a simple GSplitter container widget. | Andreas Kling | |
This allows you to put multiple widgets in a container and makes the space in between them draggable to resize the two adjacent widgets. | |||
2019-03-29 | Rename Painter::set_clip_rect() to add_clip_rect(). | Andreas Kling | |
It was confusing to see multiple calls to set_foo() in a row. Since this is an intersecting operation, let's call it add_clip_rect() instead. | |||
2019-03-29 | StylePainter: Fix underdraw in new button style. | Andreas Kling | |
2019-03-29 | LibGUI: Don't draw left and right side of surfaces that span entire window. | Andreas Kling | |
In other words, if a surface stretches from the left side of the window all the way to the right side, skip shading and highlighting the sides. This makes widgets blend together just slightly with the window. :^) | |||
2019-03-28 | StylePainter: Tweak ButtonStyle::Normal highlights. | Andreas Kling | |
2019-03-28 | Move LibGUI/GStyle to SharedGraphics/StylePainter. | Andreas Kling | |
I want to paint some buttons in WindowServer where we don't have LibGUI. | |||
2019-03-28 | LibGUI: Add a GPainter class that inherits from Painter. | Andreas Kling | |
This gets rid of the last little piece of LibGUI knowledge in Painter. | |||
2019-03-27 | Kernel: Add Inode::truncate(size). | Andreas Kling | |
- Use this to implement the O_TRUNC open flag. - Fix creat() to pass O_CREAT | O_TRUNC | O_WRONLY. - Make sure we truncate wherever appropriate. | |||
2019-03-25 | SharedGraphics: Font::width() shouldn't add spacing to the very last glyph. | Andreas Kling | |
2019-03-24 | SharedGraphics: Oops, I was compiling puff() in SLOW mode for testing. | Andreas Kling | |
2019-03-23 | Kernel: Introduce threads, and refactor everything in support of it. | Andreas Kling | |
The scheduler now operates on threads, rather than on processes. Each process has a main thread, and can have any number of additional threads. The process exits when the main thread exits. This patch doesn't actually spawn any additional threads, it merely does all the plumbing needed to make it possible. :^) | |||
2019-03-23 | FileManager: Add basic thumbnailing of PNG images. | Andreas Kling | |
These use nearest neighbor and are computed synchronously on directory load so it's neither fast nor very beautiful. These issues both need work on other parts of the system to fix. | |||
2019-03-22 | SharedGraphics: Add Painter::draw_scaled_bitmap(). | Andreas Kling | |
It's just a simple nearest-neighbor scale with alpha blending but it gets the job done. | |||
2019-03-22 | Use the PNG loader for all images, and get rid of the .rgb files. | Andreas Kling | |
2019-03-21 | PNGLoader: Reduce unfiltering branchiness even more. | Andreas Kling | |
Use a dummy scanline for y=0 filled with all zeroes to avoid having to check y on every iteration before grabbing color data from scanline[y - 1]. | |||
2019-03-21 | PNGLoader: Templatize the unfiltering functions to reduce branchiness. | Andreas Kling | |
This also allows us to dodge processing alpha values in non-alpha PNGs without a branch. | |||
2019-03-21 | PNGLoader: Reorganize the unfiltering code to make it easier to work with. | Andreas Kling | |
2019-03-21 | PNGLoader: Allocate enough space for the compressed data buffer up front. | Andreas Kling | |
This is a 2x speedup on wallpaper loading. | |||
2019-03-21 | PNGLoader: Remove a bunch of unnecessary data copying. | Andreas Kling | |
Use ByteBuffer::wrap() to avoid copying buffers around a bit. This is about a 10% speedup on loading a wallpaper-type PNG. | |||
2019-03-21 | PNGLoader: Support for color type 2 (RGB triplets) and multiple IDAT chunks. | Andreas Kling | |
2019-03-21 | SharedGraphics: Implement a simple PNG decoder. | Andreas Kling | |
This is extremely unoptimized, but it does successfully load "folder32.png" so it must be at least somewhat correct. :^) | |||
2019-03-20 | IRCClient: Add ability to change nickname. | Andreas Kling | |
2019-03-19 | LibGUI: More GInputBox refinements. | Andreas Kling | |
Fix some GBoxLayout bugs to make the buttons in GInputBox line up better. There are still some imperfections due to rounding errors. | |||
2019-03-18 | IRCClient: Colorize some channel messages (joins, parts, topics) | Andreas Kling | |
2019-03-18 | SharedGraphics: Add Color::to_string(). | Andreas Kling | |
This generates a string in the format "rgba(%d, %d, %d, %d)". | |||
2019-03-17 | Add client-side double buffering of window backing stores. | Andreas Kling | |
This prevents flicker and looks rather good. The main downside is that resizing gets even more sluggish. That's the price we pay for now. | |||
2019-03-17 | AK: Make ByteBuffer's copy() and wrap() take void*. | Andreas Kling | |
This way we don't have to cast whatever we're passing to copy()/wrap(). | |||
2019-03-09 | SharedGraphics: Allow passing a Font to text drawing functions. | Andreas Kling | |
This way we don't have to juggle around with calls to Painter::set_font() which simplifies a bunch of places. | |||
2019-03-09 | About+LibGUI: Use a GBoxLayout for the About app. | Andreas Kling | |
2019-03-09 | SharedGraphics: Add PainterStateSaver RAII helper and Point::operator-(). | Andreas Kling | |
Two little things to help tidy up a bit in WSWindowManager. | |||
2019-03-09 | SharedGraphics: Give painter a state stack and save()/restore() operations. | Andreas Kling | |
This will make some painting code a lot less confusing since there's no need to manually undo translations, clips, etc. | |||
2019-03-08 | Add a C++ helper class for working with shared buffers. | Andreas Kling | |
This is a bit more comfortable than passing the shared buffer ID manually everywhere and keeping track of size etc. | |||
2019-03-07 | LibGUI: Implement GToolbar separators. | Andreas Kling | |
2019-03-07 | GTextEditor: Add a ruler column that always shows the line numbers. | Andreas Kling | |
2019-03-07 | GTextEditor: Let's use a Vector for the line backing store. | Andreas Kling | |
I'm eventually gonna want to replace this with something more clever, like a automagically splicing vector or something, but for now, at least we move away from immutable Strings. | |||
2019-03-07 | GTextEditor: Improvements to cursor rendering. | Andreas Kling | |
The view now scrolls along with you as you move the cursor around. | |||
2019-03-06 | Add a bold variant of Katica and make that the system's default bold font. | Andreas Kling | |
..and do some minor tweaks to the font rendering code. | |||
2019-03-06 | More work on the variable-width font support. | Andreas Kling | |
Katica is now the default system font, and it looks quite nice. :^) I'm gonna need to refine the GTextBox movement stuff eventually, but it works well-enough for basic editing now. |