summaryrefslogtreecommitdiff
path: root/Applications/Taskbar/TaskbarWindow.cpp
AgeCommit message (Collapse)Author
2020-02-06LibGUI: Remove leading G from filenamesAndreas Kling
2020-02-06LibCore: Remove leading C from filenamesAndreas Kling
2020-02-06LibGUI: Rename {H,V}BoxLayout => {Horizontal,Vertical}BoxLayoutAndreas Kling
2020-02-06LibGfx: Unpublish Gfx::Rect from global namespaceAndreas Kling
2020-02-06LibDraw: Put all classes in the Gfx namespaceAndreas Kling
I started adding things to a Draw namespace, but it somehow felt really wrong seeing Draw::Rect and Draw::Bitmap, etc. So instead, let's rename the library to LibGfx. :^)
2020-02-02LibGUI: Put all classes in the GUI namespace and remove the leading GAndreas Kling
This took me a moment. Welcome to the new world of GUI::Widget! :^)
2020-02-02LibCore: Put all classes in the Core namespace and remove the leading CAndreas Kling
I've been wanting to do this for a long time. It's time we start being consistent about how this stuff works. The new convention is: - "LibFoo" is a userspace library that provides the "Foo" namespace. That's it :^) This was pretty tedious to convert and I didn't even start on LibGUI yet. But it's coming up next.
2020-02-02LibGUI: Add GHBoxLayout and GVBoxLayout convenience classesAndreas Kling
2020-01-18Meta: Add license header to source filesAndreas Kling
As suggested by Joshua, this commit adds the 2-clause BSD license as a comment block to the top of every source file. For the first pass, I've just added myself for simplicity. I encourage everyone to add themselves as copyright holders of any file they've added or modified in some significant way. If I've added myself in error somewhere, feel free to replace it with the appropriate copyright holder instead. Going forward, all new source files should include a license header.
2020-01-01AK: Move the userspace SharedBuffer from LibC to AKAndreas Kling
This always felt out-of-place in LibC.
2019-12-04Taskbar: Add a quick launch barSergey Bugaev
This is a tiny bar at the left of the taskbar where you can put your most used apps to launch them with a single click. In a way, it's another replacement for the Launcher, in addition to the app menu. Unlike the launcher and the menu, it's not meant to be the primary way to launch apps; it's only a faster way to launch a few most often used utilities.
2019-12-02WindowServer: Port to the new IPC systemAndreas Kling
This patch introduces code generation for the WindowServer IPC with its clients. The client/server endpoints are defined by the two .ipc files in Servers/WindowServer/: WindowServer.ipc and WindowClient.ipc It now becomes significantly easier to add features and capabilities to WindowServer since you don't have to know nearly as much about all the intricate paths that IPC messages take between LibGUI and WSWindow. The new system also uses significantly less IPC bandwidth since we're now doing packed serialization instead of passing fixed-sized structs of ~600 bytes for each message. Some repaint coalescing optimizations are lost in this conversion and we'll need to look at how to implement those in the new world. The old CoreIPC::Client::Connection and CoreIPC::Server::Connection classes are removed by this patch and replaced by use of ConnectionNG, which will be renamed eventually. Goodbye, old WindowServer IPC. You served us well :^)
2019-11-08LibGUI: Rename GEventLoop.{cpp,h} => GWindowServerConnectionAndreas Kling
The GEventLoop class is long gone, and the only class in these files is GWindowServerConnection, so let's update the file names. :^)
2019-09-22LibCore: Make CObject reference-countedAndreas Kling
Okay, I've spent a whole day on this now, and it finally kinda works! With this patch, CObject and all of its derived classes are reference counted instead of tree-owned. The previous, Qt-like model was nice and familiar, but ultimately also outdated and difficult to reason about. CObject-derived types should now be stored in RefPtr/NonnullRefPtr and each class can be constructed using the forwarding construct() helper: auto widget = GWidget::construct(parent_widget); Note that construct() simply forwards all arguments to an existing constructor. It is inserted into each class by the C_OBJECT macro, see CObject.h to understand how that works. CObject::delete_later() disappears in this patch, as there is no longer a single logical owner of a CObject.
2019-09-21LibGUI: Convert custom widgets and subclasses to ObjectPtrAndreas Kling
2019-09-21LibGUI: Convert GFrame to ObjectPtrAndreas Kling
2019-07-28WindowServer+LibGUI: Remove old "icon path" way of doing things.Andreas Kling
Now that we can set icons directly "by bitmap", there's no need for passing around the icon paths anymore, so get rid of all the IPC and API related to that. :^)
2019-07-28WindowServer+LibGUI: Pass window icons as shared buffers rather than paths.Andreas Kling
Now that we support more than 2 clients per shared buffer, we can use them for window icons. I didn't do that previously since it would have made the Taskbar process unable to access the icons. This opens up some nice possibilities for programmatically generated icons.
2019-07-23LibGUI: Get rid of GWindow::should_exit_event_loop_on_close().Andreas Kling
This behavior and API was extremely counter-intuitive since our default behavior was for applications to never exit after you close all of their windows. Now that we exit the event loop by default when the very last GWindow is deleted, we don't have to worry about this.
2019-07-20GWidget: Add set_preferred_size(width, height) overload.Andreas Kling
It was annoying to always write set_preferred_size({ width, height }). :^)
2019-06-07Applications: Run clang-format on everything.Andreas Kling
2019-05-24LibGUI: Add a GAbstractButton base class for button widgets.Andreas Kling
This patch moves GButton and GRadioButton to inherit from it. This allows them to share code for mouse event handling, etc.
2019-04-23WindowServer+TaskBar: Add a taskbar window button popup menu.Andreas Kling
This patch only hooks up the minimize and unminimize actions.
2019-04-20WindowServer: Introduce a WM event mask so Taskbar can ignore window rects.Andreas Kling
Taskbar was waking up to do nothing every time a window rect changed.
2019-04-18WindowServer: Generate a separate WM event for window icon changes.Andreas Kling
2019-04-13WindowServer+LibGUI: Add ability to set per-window icons.Andreas Kling
The icons are passed around as filesystem paths for now, since the shared memory bitmaps only support 2 sides.
2019-04-10Taskbar: Don't unconditionally update buttons on every state change.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-08Taskbar: Replace TaskbarWidget with a simple GFrame.Andreas Kling
There's no need for a custom widget here, at least not now.
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-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: More bringup work. We now see a basic window list.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. :^)