1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-20 01:45:08 +00:00
Commit graph

1186 commits

Author SHA1 Message Date
thatlittlegit
4755f355c6 LibGUI: Add Yes/No and Yes/No/Cancel MessageBoxes 2020-02-17 16:28:21 +01:00
Andreas Kling
a78bc5e6fc LibGUI: Generate NotificationServer IPC messages during build
I hacked this to skip using flock since NotificationServer and LibGUI
depend on each other. There's probably a better solution.
2020-02-16 22:37:04 +01:00
Andreas Kling
30549502ca LibGUI: Generate NotificationServerEndpoint.h if needed 2020-02-16 22:28:48 +01:00
Andreas Kling
9f54ea9bcd NotificationServer: Add a system service for desktop notifications
This patch adds NotificationServer, which runs as the "notify" user
and provides an IPC API for desktop notifications.

LibGUI gains the GUI::Notification class for showing notifications.

NotificationServer is spawned on demand and will unspawn after
dimissing all visible notifications. :^)

Finally, this also comes with a small /bin/notify utility.
2020-02-16 21:58:17 +01:00
Tibor Nagy
c7f549ba19 LibGUI: Add mouse wheel event and step property to Slider 2020-02-16 21:58:01 +01:00
Andreas Kling
fe343a0497 LibGUI: ItemView painting was not respecting the frame thickness
Fixes #1112.
2020-02-16 09:50:38 +01:00
Andreas Kling
2143da6434 LibGUI: Add forwarding header
This patch adds <LibGUI/Forward.h> and uses it a bunch.
It also dragged various header dependency reduction changes into it.
2020-02-16 09:41:56 +01:00
Tibor Nagy
9041e95e79 LibGUI: Render ScrollBar buttons as pressed when they are being pressed 2020-02-16 09:41:40 +01:00
Tibor Nagy
fc24b2b57d LibGUI: Make ResizeCorner theme-aware 2020-02-16 08:01:20 +01:00
Tibor Nagy
7ec1b2e44b LibGUI: Unfocused TextEditors should use inactive selection colors 2020-02-15 18:42:13 +01:00
Tibor Nagy
4d95163400 LibGUI: Use inactive selection colors from palette instead of hardcoding them 2020-02-15 18:42:13 +01:00
Andreas Kling
0e3a9d8e9d LibCore: Reduce header dependencies of EventLoop 2020-02-15 02:09:00 +01:00
Andreas Kling
b011ea9962 LibGUI: Reduce menu-related header dependencies 2020-02-15 01:56:30 +01:00
Andreas Kling
9e83bbe1cd LibGUI: Reduce header dependencies of GUI::Action 2020-02-15 01:34:00 +01:00
Andreas Kling
10ccc9e11c LibGUI: Don't leak every tooltip window ever :^) 2020-02-15 01:27:37 +01:00
Andreas Kling
dcb0766d3f LibGUI: Remove some header dependencies from Application.h 2020-02-15 01:18:32 +01:00
Andreas Kling
9c0c677d57 LibGfx: Reduce header dependencies of Bitmap and Font 2020-02-15 01:03:37 +01:00
Andreas Kling
e1ff4fa034 LibGUI: Remove more header dependencies from Widget.h 2020-02-15 00:24:14 +01:00
Andreas Kling
69400c2ca1 LibCore: Replace manual forward declarations with <LibCore/Forward.h> 2020-02-15 00:13:44 +01:00
Andreas Kling
6a3cd11a80 AK: Remove manual forward declarations with <AK/Forward.h> 2020-02-15 00:12:31 +01:00
Andreas Kling
a368cf7d51 LibGfx: Replace manual forward declarations with <LibGfx/Forward.h> 2020-02-15 00:10:34 +01:00
Andreas Kling
34c7322d77 LibGUI: Remove some header dependencies from Widget.h 2020-02-14 23:53:11 +01:00
Andreas Kling
08cae2773d LibGfx: More work on header dependency reduction 2020-02-14 23:33:21 +01:00
Andreas Kling
3fe2640c8c LibGfx: Add forward declaration header
This patch adds <LibGfx/Forward.h> with forward declarations for Gfx.
2020-02-14 23:31:18 +01:00
Andreas Kling
8f7333f080 LibCore: Add a forward declaration header
This patch adds <LibCore/Forward.h> and uses it in various places to
shrink the header dependency graph.
2020-02-14 23:31:18 +01:00
Andreas Kling
3bbf4610d2 AK: Add a forward declaration header
You can now #include <AK/Forward.h> to get most of the AK types as
forward declarations.

Header dependency explosion is one of the main contributors to compile
times at the moment, so this is a step towards smaller include graphs.
2020-02-14 23:31:18 +01:00
Andreas Kling
5884ef8425 LibGUI: Add missing Event.cpp file 2020-02-14 17:35:04 +01:00
Andreas Kling
814d59f462 LibGUI: Port the drag&drop code to Core::MimeData 2020-02-14 13:18:59 +01:00
Andreas Kling
2c14e46b96 LibGUI: Indicate ItemView drag acceptance with a little rectangle
If an index accepts a drag, we now draw a little rectangle around it
when the drag moves over it.
2020-02-13 21:50:50 +01:00
Andreas Kling
f0ae353c9e LibGUI: Allow dropping drags on AbstractView
You can now drop things on an AbstractView, which will ask its model if
the drag is acceptable to drop at the index where it's dropped.

If it's accepted by the model, the view will fire the on_drop hook.
2020-02-13 21:49:14 +01:00
Andreas Kling
8b3864c70a LibGUI: Have FileSystemModel accept url-list drags onto directories 2020-02-13 21:48:32 +01:00
Andreas Kling
6e7ca44dee LibGUI: Add GUI::Model::accepts_drag(index, data_type)
This allows a model to indicate whether it would accept a drag with a
given data type being dropped on a given index.
2020-02-13 21:45:46 +01:00
Andreas Kling
3ce80bec97 WindowServer+LibGUI: Add a "drag move" event
This allows windows/widgets to learn when something is being dragged
over them. They can then repaint themselves somehow to indicate that
they are willing to accept a drop.

Currently this is piggybacking somewhat on the mouse event mechanism
in WindowServer. I'm not sure that's the best design but it seemed
easier to do it this way right now.
2020-02-13 21:43:32 +01:00
Andreas Kling
f88fe5dc3f LibGUI: Don't assert when hovering spacing around single-child Splitter
Fixes #1215.
2020-02-13 20:00:01 +01:00
Andreas Kling
0cdf68f668 LibGUI: Always unhighlight table view column headers when cursor leaves
If the cursor left a table view column header while also pressing it,
we would keep the header highlighted. This was not consistent with how
regular buttons behaved.
2020-02-12 19:35:25 +01:00
Andreas Kling
29aee5e0d6 LibGUI: Make last auto-sized widget in a BoxLayout fill remaining space
Since space is divided evenly between widgets with SizePolicy::Fill,
we were sometimes ending up with a couple of unused pixels after the
last widget (due to rounding.)

Fix this by always giving the slack pixels at the end to the very last
auto-sized widget in the layout.

This fixes an issue where it was sometimes possible to click on an
"unreachable" part of a Splitter widget. :^)
2020-02-12 14:05:50 +01:00
Andreas Kling
5e42fe76d6 LibGUI: Use Core::DateTime in FileSystemModel 2020-02-11 20:43:32 +01:00
Andreas Kling
92e2afe584 LibGUI: Tweak C++ syntax highlighting colors a bit :^) 2020-02-11 13:07:21 +01:00
Andreas Kling
9a09437c46 LibGUI: Splitter should forget resize candidates after cursor leaves
Otherwise we'll keep highlighting the grabbable rect even after the
cursor has left the splitter widget.
2020-02-11 11:53:38 +01:00
Andreas Kling
8a605922bb LibGUI: Make splitters 1px wider as 3px is slightly too narrow 2020-02-11 11:53:38 +01:00
Andreas Kling
1fc887c576 LibGUI: Only highlight grabbable area between a Splitter's children
We were previously cheating by setting the entire splitter's background
color to the hover highlight color. This looked goofy whenever there
were transparent widgets inside a splitter, since the highlighted color
would shine through when hovering.

This was especially noticeable in SystemMonitor, which now looks much
better. :^)
2020-02-11 11:53:38 +01:00
Andreas Kling
f4fa758959 LibGUI: Add a Widget::did_layout() that gets called after layout
This will allow widgets to implement post-layout behaviors.
2020-02-11 11:53:38 +01:00
Andreas Kling
7aa62665a3 LibGUI: Factor out Splitter hit testing into a separate function 2020-02-11 11:53:38 +01:00
Andreas Kling
7323d085dd LibGUI: Single-line GUI::TextEditor should not have "go to line" action 2020-02-10 19:49:49 +01:00
Andreas Kling
bb8e65be41 LibGUI+HackStudio: Move syntax highlighting from HackStudio to LibGUI
This patch introduces the GUI::SyntaxHighlighter class, which can be
attached to a GUI::TextEditor to provide syntax highlighting.

The C++ syntax highlighting from HackStudio becomes a new class called
GUI::CppSyntaxHighlighter. This will make it possible to get C++ syntax
highlighting in any app that uses a GUI::TextEditor. :^)

Sidenote: It does feel a bit weird having a C++ lexer in a GUI toolkit
library, and we'll probably end up moving this out to a separate place
as this functionality grows larger.
2020-02-07 20:07:15 +01:00
Andreas Kling
6a9cc66b97 LibGUI: Remove leading G from filenames 2020-02-06 20:33:02 +01:00
Andreas Kling
2e219255a2 IPCCompiler: Put message classes in the Messages namespace 2020-02-06 20:21:49 +01:00
Andreas Kling
73110e25a9 WindowServer: Move classes into WindowServer namespace
Also remove the leading WS from names and filenames.
2020-02-06 20:03:37 +01:00
Andreas Kling
d17e23bd27 LibCore: Remove leading C from filenames 2020-02-06 15:04:03 +01:00
Andreas Kling
7415e6ef9f LibIPC: Remove leading I from filenames 2020-02-06 14:54:09 +01:00