summaryrefslogtreecommitdiff
path: root/Applications
AgeCommit message (Collapse)Author
2019-04-10LibCore: Add CEvent and make LibGUI/GEvent inherit from it.Andreas Kling
2019-04-10Taskbar: Don't unconditionally update buttons on every state change.Andreas Kling
2019-04-10Introduce 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-10WindowServer: 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-10LibGUI: Add a simple GGroupBox widget.Andreas Kling
This needs some work on the visual side, but it gets the job done already.
2019-04-10FontEditor: Update the glyph map when changing a glyph's width.Andreas Kling
2019-04-10FontEditor: Add a "Glyph width:" label and align some things.Andreas Kling
2019-04-10LibGUI: 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-10FontEditor: Tighten the window size a bit.Andreas Kling
2019-04-10LibGUI: Turn GTextBox into a wrapper around a single-line GTextEditor.Andreas Kling
2019-04-10FontEditor: Convert the glyph map and editor widgets to be GFrames.Andreas Kling
2019-04-09LibGUI: 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-09Launcher: Add tooltips to LauncherButtons.Andreas Kling
2019-04-08Taskbar: Replace TaskbarWidget with a simple GFrame.Andreas Kling
There's no need for a custom widget here, at least not now.
2019-04-08LibGUI: 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-07Start 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-06FontEditor: 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-06Taskbar: 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-05WindowServer: 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-04Taskbar: Make the window buttons slightly wider.Andreas Kling
2019-04-04Taskbar: Only include "Normal" windows in the taskbar window list.Andreas Kling
2019-04-04WindowServer: Add WM_SetActiveWindow client request and use it in Taskbar.Andreas Kling
This makes it possible for Taskbar to switch windows. :^)
2019-04-04Taskbar: Left-align the text on taskbar window buttons.Andreas Kling
2019-04-04Taskbar: Plumb window active state from the WindowServer to the taskbar.Andreas Kling
2019-04-04Taskbar: Tweak margins to look just right.Andreas Kling
2019-04-04Taskbar: TaskbarWidget doesn't need a custom paint_event().Andreas Kling
2019-04-04Taskbar: More bringup work. We now see a basic window list.Andreas Kling
2019-04-03Taskbar: Remove an accidentally committed dependency file.Andreas Kling
2019-04-03Taskbar+LibGUI: More work on bringup.Andreas Kling
2019-04-03Taskbar: 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-03AK: 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-03FontEditor: Break out classes into separate files.Andreas Kling
2019-04-02IRCClient: 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-02IRCClient: Ask the user which IRC server to connect to on startup.Andreas Kling
2019-04-02FileManager: Rename DirectoryTableView => DirectoryView.Andreas Kling
2019-03-30Terminal+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-30IRCClient: Fix wrong label in "Join channel" window.Andreas Kling
2019-03-30IRCClient: 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-30LibGUI: 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-30FileManager: 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-30FileManager: Make the tree view follow the directory view navigations.Andreas Kling
2019-03-30FileManager: Make the directory view follow the tree view selection.Andreas Kling
2019-03-29GFileSystemModel: Add a "DirectoriesOnly" mode.Andreas Kling
2019-03-29LibGUI: 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-29Rename 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-29GTreeView: A bunch of work on the tree view.Andreas Kling
2019-03-29LibGUI: Expand GModelIndex a bit, adding internal data and model pointers.Andreas Kling
This will be useful for implementing more complicated models.
2019-03-29GModel: Add GModelIndex argument to row_count() and column_count().Andreas Kling
This is in preparation for supporting hierarchical models.
2019-03-29IRCClient: 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-29GTextEditor: Keep tweaking the single-line look.Andreas Kling