Age | Commit message (Collapse) | Author | |
---|---|---|---|
2019-04-10 | LibCore: Add CEvent and make LibGUI/GEvent inherit from it. | Andreas Kling | |
2019-04-10 | Taskbar: Don't unconditionally update buttons on every state change. | Andreas Kling | |
2019-04-10 | Introduce LibCore and move GElapsedTimer => CElapsedTimer. | Andreas Kling | |
I need a layer somewhere between AK (usable both by userspace and kernel) and LibGUI (usable by userspace except WindowServer.) So here's LibCore. | |||
2019-04-10 | WindowServer: Give windows a "background color" to use for missing parts. | Andreas Kling | |
When resizing a window, we often end up having to paint some part of it without coverage in the current backing store. This patch makes those cases look nicer by having a fallback background color for each window, passed along with the CreateWindow client message. | |||
2019-04-10 | LibGUI: Add a simple GGroupBox widget. | Andreas Kling | |
This needs some work on the visual side, but it gets the job done already. | |||
2019-04-10 | FontEditor: Update the glyph map when changing a glyph's width. | Andreas Kling | |
2019-04-10 | FontEditor: Add a "Glyph width:" label and align some things. | Andreas Kling | |
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 | FontEditor: Tighten the window size a bit. | Andreas Kling | |
2019-04-10 | LibGUI: Turn GTextBox into a wrapper around a single-line GTextEditor. | Andreas Kling | |
2019-04-10 | FontEditor: Convert the glyph map and editor widgets to be GFrames. | Andreas Kling | |
2019-04-09 | LibGUI: Add a spinbox widget. | Andreas Kling | |
This is essentially a combo widget containing a single-line GTextEditor and two buttons for increment and decrement. The GTextEditor::on_change callback is hooked to prevent non-numeric input but it's not entirely perfect since that callback is asynchronous. This will work until we have some more sophisticated input validation mechanism though. | |||
2019-04-09 | Launcher: Add tooltips to LauncherButtons. | Andreas Kling | |
2019-04-08 | Taskbar: Replace TaskbarWidget with a simple GFrame. | Andreas Kling | |
There's no need for a custom widget here, at least not now. | |||
2019-04-08 | LibGUI: Make GSocket connection asynchronous. | Andreas Kling | |
Now connect() will return immediately. Later on, when the socket is actually connected, it will call GSocket::on_connected from the event loop. :^) | |||
2019-04-07 | Start working on a Downloader app and backing classes in LibGUI. | Andreas Kling | |
LibGUI is slowly becoming LibKitchensink but I'm okay with this for now. | |||
2019-04-06 | FontEditor: Remove weird focus rects and optimize repaint while drawing. | Andreas Kling | |
I added focus rects to these widgets because I had just started working on focus support and I was excited but it doesn't really make sense for these things to have focus rects. :^) While I was here I also optimized the repaint code to only update the edited glyph in the glyph map when editing its pixels. | |||
2019-04-06 | Taskbar: Show minimized window titles in [brackets]. | Andreas Kling | |
Had to plumb the minimization state from WindowServer to Toolbar in order to implement this. | |||
2019-04-05 | WindowServer: Merge WM_WindowAdded and WM_WindowStateChanged. | Andreas Kling | |
These events are identical, so it's silly to send both. Just broadcast window state changes everywhere instead, it doesn't matter when it was added as clients are learning about this asynchronously anyway. | |||
2019-04-04 | Taskbar: Make the window buttons slightly wider. | Andreas Kling | |
2019-04-04 | Taskbar: Only include "Normal" windows in the taskbar window list. | Andreas Kling | |
2019-04-04 | WindowServer: Add WM_SetActiveWindow client request and use it in Taskbar. | Andreas Kling | |
This makes it possible for Taskbar to switch windows. :^) | |||
2019-04-04 | Taskbar: Left-align the text on taskbar window buttons. | Andreas Kling | |
2019-04-04 | Taskbar: Plumb window active state from the WindowServer to the taskbar. | Andreas Kling | |
2019-04-04 | Taskbar: Tweak margins to look just right. | Andreas Kling | |
2019-04-04 | Taskbar: TaskbarWidget doesn't need a custom paint_event(). | Andreas Kling | |
2019-04-04 | Taskbar: More bringup work. We now see a basic window list. | Andreas Kling | |
2019-04-03 | Taskbar: Remove an accidentally committed dependency file. | Andreas Kling | |
2019-04-03 | Taskbar+LibGUI: More work on bringup. | Andreas Kling | |
2019-04-03 | Taskbar: Start working on a taskbar app. | Andreas Kling | |
I originally thought I would do this inside WindowServer, but let's try to make it as a standalone app that communicates with WindowServer instead. That will allow us to use LibGUI. :^) | |||
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 | FontEditor: Break out classes into separate files. | Andreas Kling | |
2019-04-02 | IRCClient: Crash if server name resolution fails. | Andreas Kling | |
This is just so that I can catch it immediately. It obviously needs a bit of work to feel right. | |||
2019-04-02 | IRCClient: Ask the user which IRC server to connect to on startup. | Andreas Kling | |
2019-04-02 | FileManager: Rename DirectoryTableView => DirectoryView. | Andreas Kling | |
2019-03-30 | Terminal+LibGUI: Make the terminal cursor blink. | Andreas Kling | |
Added a GTimer class to help with this. It's just a simple GObject subclass that sets up an event loop timer and invokes a callback on timeout. | |||
2019-03-30 | IRCClient: Fix wrong label in "Join channel" window. | Andreas Kling | |
2019-03-30 | IRCClient: Use GSplitter in the window layouts. | Andreas Kling | |
This really brings the UI to life in a pleasant way. It's a bit annoying that you can't initiate a resize by clicking on the shading of a splitter resizer that actually belongs to the neighboring GFrame, I'm not sure how to fix that yet but I'll think of something. | |||
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-30 | FileManager: Tweak look of thumbnailing progress bar. | Andreas Kling | |
Since it's inside a status bar, it looks a bit better when using a panel shape with sunken shadow. | |||
2019-03-30 | FileManager: Make the tree view follow the directory view navigations. | Andreas Kling | |
2019-03-30 | FileManager: Make the directory view follow the tree view selection. | Andreas Kling | |
2019-03-29 | GFileSystemModel: Add a "DirectoriesOnly" mode. | Andreas Kling | |
2019-03-29 | LibGUI: Start working on a GFileSystemModel and hook that up in FileManager. | Andreas Kling | |
This is a read-only model for the tree view, at least initially. We'll see where we take it from there once it's more polished. | |||
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 | GTreeView: A bunch of work on the tree view. | Andreas Kling | |
2019-03-29 | LibGUI: Expand GModelIndex a bit, adding internal data and model pointers. | Andreas Kling | |
This will be useful for implementing more complicated models. | |||
2019-03-29 | GModel: Add GModelIndex argument to row_count() and column_count(). | Andreas Kling | |
This is in preparation for supporting hierarchical models. | |||
2019-03-29 | IRCClient: Tweak size of window input boxes. | Andreas Kling | |
Now that GTextEditor is a GFrame, we need to make some room here for the frame around the editor. :^) | |||
2019-03-29 | GTextEditor: Keep tweaking the single-line look. | Andreas Kling | |