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

603 commits

Author SHA1 Message Date
Hüseyin ASLITÜRK
c6944f8cc2 LibGUI: Use parrent window icon for MessageBox dialog icon 2020-04-12 18:08:11 +02:00
Andreas Kling
235ae80e5e LibGUI: Make TableView ignore custom colors for selected rows
This allows them to look selected instead.
2020-04-12 15:23:24 +02:00
Andreas Kling
5390d53a80 LibGUI: Remove debug spam in AbstractView::did_update_model() 2020-04-12 14:20:04 +02:00
Andreas Kling
8e4751a963 LibGUI: Add a way for models to update without invalidating indexes
This is really just a workaround to keep SystemMonitor's process table
working right wrt selection retention during resorts (while also doing
full index invalidation on things like ProfileViewer inversion.)

It's starting to feel like the model abstraction is not super great
and we'll need a better approach if we want to actually build some more
dynamic functionality into our views.
2020-04-12 12:03:33 +02:00
Andreas Kling
c199b0e1aa LibGUI: Fill whole TableView cells with custom background color
This was easier than I expected. :^)
2020-04-11 19:20:40 +02:00
Andreas Kling
3a65e9107e LibGUI: Respect Model::Role::BackgroundColor
This implementation is very gappy, but the basic feature allows us to
highlight cells with a custom background color.
2020-04-11 18:56:15 +02:00
Hüseyin ASLITÜRK
bc323c488e LibGUI: Add ColorInput component
ColorInput is a new GUI component for selecting color using ColorPicker dialog.
It is simplify usage of ColorPicker dialog and more elegant view of current selected color.
2020-04-10 11:25:49 +02:00
Andreas Kling
a06548eaf7 LibGUI: Keep still-valid indexes in selection after a model update
This is a stop-gap patch solution for the annoying problem of models
being bad at updating. At least the process table will retain your
selection in SystemMonitor now.
2020-04-09 09:53:28 +02:00
VAN BOSSUYT Nicolas
f85aa8462f LibGUI: Thumbnail keep the aspect ratio of the original file. 2020-04-07 21:27:31 +02:00
VAN BOSSUYT Nicolas
e9de8a445f LibGUI: Center the icon in ItemView when smaller than 32px. 2020-04-07 21:27:31 +02:00
VAN BOSSUYT Nicolas
694e4e9168 Resources: Added filetype icon for object, library, text and unknown. 2020-04-07 21:27:31 +02:00
Emanuel Sprung
154dcd1ed6 AK: Allow %m.nf specifier for double/float in printf to set fraction with
This patch adds the missing part for the printf of double values to specify
the length of the fraction part. For GVariant, a default of %.2 is used.
2020-04-07 09:02:02 +02:00
VAN BOSSUYT Nicolas
5d2bfbd20b LibGUI: Added the new icons to FileSystemModel. 2020-04-06 14:44:09 +02:00
Andreas Kling
e323246517 Meta: Add missing copyright headers 2020-04-06 11:09:01 +02:00
Oriko
12c7375cdd LibGUI: Add remove_tab and on_change to TabWidget 2020-04-06 09:01:42 +02:00
Andreas Kling
26eeaef0a8 LibGUI: Add MenuBar::add_menu(name)
This allows us to construct menus in a more natural way:

    auto& file_menu = menubar->add_menu("File");
    file_menu.add_action(...);

Instead of the old way:

    auto file_menu = GUI::Menu::construct();
    file_menu->add_action(...);
    menubar->add_menu(file_menu);
2020-04-04 12:58:05 +02:00
Andreas Kling
2463a285ee LibGUI: Make GUI::TabWidget::add_tab<T>() return a T&
Since the newly constructed sub-widget is owned by the TabWidget,
we can simply return a T& here. :^)
2020-04-04 11:10:07 +02:00
Andreas Kling
37af1d74cc LibGUI: Fix CppLexer assertion on incomplete #include statements
Thanks to @NotKyon for reporting this bug with a solid analysis.

Fixes #1488.
2020-04-04 11:00:14 +02:00
Andreas Kling
9430918026 LibGUI: Move ColorPicker's helper classes fully into ColorPicker.cpp
Since these are not used by the outside world, no need to expose them.
2020-04-04 10:38:39 +02:00
Hüseyin ASLITÜRK
177b30629c LibGUI: Add color palette and custom color selection in the ColorPicker 2020-04-04 10:32:44 +02:00
Andreas Kling
031d242e0e LibGUI: Clear any hovered index when the cursor leaves an AbstractView 2020-04-03 21:14:34 +02:00
Sergey Bugaev
7bd077a3ae LibGUI: Fix index invalidation
When the model gets updated, we have to let go of the old indexes,
because they're invalid from that moment on.

Fixes https://github.com/SerenityOS/serenity/issues/1541
2020-03-30 23:05:14 +02:00
Andreas Kling
b4fde72013 LibGUI: Brighten icons when hovering items in item views
View classes now track their hovered item and paint them in a slightly
brighter shade to liven up the user interface. :^)
2020-03-30 19:57:44 +02:00
Andreas Kling
add93bf593 LibGUI: Brighten buttons when hovering over them :^) 2020-03-30 19:40:44 +02:00
Andreas Kling
012a4eb0b5 WindowServer+NotificationServer: Vertical title bar for notifications
This patch adds a specialized window type for notifications. They now
have a title bar on the right-hand side, with a close button.

This removes the need for the "Done" button in notifications, giving us
a bit more horizontal space overall.

Design based on a mock-up from @xTibor :^)
2020-03-30 17:03:15 +02:00
Tibor Nagy
317a0d666b LibGUI: AboutDialog now inherits the icon of its parent window 2020-03-30 10:52:09 +02:00
Andreas Kling
8c5fa05c39 WindowServer: Use Gfx::ShareableBitmap for SetWindowIconBitmap 2020-03-29 19:37:23 +02:00
Andreas Kling
7cfe712f4d LibGfx+LibIPC: Add Gfx::ShareableBitmap, a bitmap for easy IPC usage
With this patch, it's now possible to pass a Gfx::ShareableBitmap in an
IPC message. As long as the message itself is synchronous, the bitmap
will be adopted by the receiving end, and disowned by the sender nicely
without any accounting effort like we've had to do in the past.

Use this in NotificationServer to allow sending arbitrary bitmaps as
icons instead of paths-to-icons.
2020-03-29 19:37:23 +02:00
Andreas Kling
ae9fe60412 LibGUI: Make Label::set_icon() take a const Gfx::Bitmap* 2020-03-29 19:37:23 +02:00
Hüseyin ASLITÜRK
f88b90f6fd LibGUI: Desktop, add methods for set background color and wallpaper mode 2020-03-29 19:36:37 +02:00
Hüseyin ASLITÜRK
7194b4823e LibGUI: ComboBox, add "set_selected_index" method
Easy way to set selected item.
2020-03-29 19:36:37 +02:00
Emanuel Sprung
4d50398f02 LibGUI: Add store(), add() and remove() methods to JsonArrayModel
This patchset adds the methods to alter an JSON model and store it back
to the disk.
2020-03-27 14:12:18 +01:00
Andreas Kling
faedb763ca NotificationServer: Allow showing an icon in notifications
We currently use icon paths for this because I didn't want to deal with
implementing icon bitmap sharing right now. In the future it would be
better to post a bitmap somehow instead of a path.
2020-03-26 20:38:28 +01:00
Andreas Kling
96c7e2cd6d LibGUI: Make a new connection to NotificationServer each time
Since NotificationServer is a spawn-on-demand + die-when-not-used type
of service, we can't expect a singleton connection to it to remain open
and useful.

We solve this for now by making a new IPC connection for every new
notification sent. Maybe there's a better solution for this.
2020-03-26 20:10:03 +01:00
Andreas Kling
424a3f5ac3 WindowServer+LibGUI: Add a way to get notified at display refresh rate
This patch adds GUI::DisplayLink, a mechanism for registering callbacks
that will fire at the display refresh rate.

Note that we don't actually know the screen refresh rate, but this is
instead completely driven by WindowServer's compositing timer. For all
current intents and purposes it does the job well enough. :^)
2020-03-22 21:13:23 +01:00
Andreas Kling
7f8dc347b5 LibGUI: Allow constructing Variant from FlyString 2020-03-22 19:06:31 +01:00
Andreas Kling
ec6e55cfc6 LibGUI: Don't spam WindowServer with SetWindowOverrideCursor messages
Remember the override cursor in GUI::Window and avoid sending a message
to WindowServer when possible.

This removes a lot of synchronous IPC between Browser and WindowServer,
which noticeably improves DOM event responsiveness. :^)
2020-03-22 01:07:07 +01:00
Tibor Nagy
9e6e731a78 LibGUI: Remove G prefix from macros 2020-03-19 23:17:34 +01:00
Tibor Nagy
9570efa698 LibGUI: Remove friend classes of TextDocumentLine
They were unused. Also GTextEditor doesn't exist anymore and GCC
was silently ignoring this declaration.
2020-03-19 22:52:44 +01:00
Tibor Nagy
30964ba7d0 LibGUI: Remove remaining G prefixes 2020-03-19 22:52:44 +01:00
Oriko
a115702746 HackStudio: Expand project tree view by default 2020-03-18 16:33:54 +01:00
Oriko
2a32330257 LibGUI: Add a ThemeChange event 2020-03-16 13:39:34 +01:00
Oriko
2b162ef794 LibGUI: Use themes for syntax highlighting 2020-03-16 13:39:34 +01:00
Oriko
d439013903 LibGUI: Highlight new JS tokens 2020-03-14 11:30:31 +01:00
Oriko
b4381be0ba LibGUI: Add missing copyright headers 2020-03-13 23:09:58 +01:00
Oriko
196352ef67 LibGUI: Add Javascript syntax highlighter 2020-03-13 22:53:13 +01:00
Oriko
c02037e944 LibGUI: Abstract token pair matching 2020-03-13 22:53:13 +01:00
Oriko
137d68a2ae HackStudio: Abstract over syntax highlighter 2020-03-12 19:04:59 +01:00
Oriko
6d89f48dd8 LibGUI: Add underlines to highlighting 2020-03-12 19:04:59 +01:00
Tibor Nagy
b58893cfe1 LibGUI: Take scroll offset into account on ItemView rubberband selection
Same kind of issue as #1271.
2020-03-12 15:48:32 +01:00