ladybird/DevTools/HackStudio
Andreas Kling 411058b2a3 WindowServer+LibGUI: Implement basic color theming
Color themes are loaded from .ini files in /res/themes/
The theme can be switched from the "Themes" section in the system menu.

The basic mechanism is that WindowServer broadcasts a SharedBuffer with
all of the color values of the current theme. Clients receive this with
the response to their initial WindowServer::Greet handshake.

When the theme is changed, WindowServer tells everyone by sending out
an UpdateSystemTheme message with a new SharedBuffer to use.

This does feel somewhat bloated somehow, but I'm sure we can iterate on
it over time and improve things.

To get one of the theme colors, use the Color(SystemColor) constructor:

    painter.fill_rect(rect, SystemColor::HoverHighlight);

Some things don't work 100% right without a reboot. Specifically, when
constructing a GWidget, it will set its own background and foreground
colors based on the current SystemColor::Window and SystemColor::Text.
The widget is then stuck with these values, and they don't update on
system theme change, only on app restart.

All in all though, this is pretty cool. Merry Christmas! :^)
2019-12-23 20:33:01 +01:00
..
CppLexer.cpp AK: Use size_t for the length of strings 2019-12-09 17:51:21 +01:00
CppLexer.h AK: Use size_t for the length of strings 2019-12-09 17:51:21 +01:00
CursorTool.cpp LibDraw: Add Rect::from_two_points(Point, Point) 2019-11-17 16:37:42 +01:00
CursorTool.h HackStudio: Move the rubber-banding state into CursorTool 2019-11-16 22:26:46 +01:00
Editor.cpp HackStudio: Highlight matching pairs of [ and ] as well 2019-11-23 17:49:14 +01:00
Editor.h HackStudio: Highlight matching pairs of [ and ] as well 2019-11-23 17:49:14 +01:00
EditorWrapper.cpp HackStudio: Draw a brownish frame around the current editor widget 2019-10-27 20:44:37 +01:00
EditorWrapper.h HackStudio: Allow switching between editors with Ctrl+E / Ctrl+Shift+E 2019-11-05 20:56:36 +01:00
FindInFilesWidget.cpp HackStudio: Use a table view in the "find in files" widget 2019-12-10 22:07:52 +01:00
FindInFilesWidget.h HackStudio: Use a table view in the "find in files" widget 2019-12-10 22:07:52 +01:00
FormEditorWidget.cpp HackStudio: Show the edited form widget's widget tree in the tree view 2019-11-11 22:20:02 +01:00
FormEditorWidget.h HackStudio: Reflect widget selections in the form widget tree view 2019-11-11 22:20:02 +01:00
FormWidget.cpp WindowServer+LibGUI: Implement basic color theming 2019-12-23 20:33:01 +01:00
FormWidget.h HackStudio: Move the rubber-banding state into CursorTool 2019-11-16 22:26:46 +01:00
Locator.cpp HackStudio: Add little icons for ".cpp" and ".h" files 2019-10-28 19:08:48 +01:00
Locator.h HackStudio: Remove unnecessary Locator::keydown_event() 2019-10-28 19:08:48 +01:00
main.cpp HackStudio: Show the project file list in a tree view 2019-12-23 10:55:34 +01:00
Makefile Build: clean up build system, use one shared Makefile 2019-12-20 20:20:54 +01:00
ProcessStateWidget.cpp Kernel: Expose per-thread information in /proc/all 2019-11-26 21:37:30 +01:00
ProcessStateWidget.h HackStudio: Show the slave pty's PGID in the ProcessStateWidget 2019-10-24 20:56:13 +02:00
Project.cpp HackStudio: Show the project name as the root in the project tree 2019-12-23 10:55:34 +01:00
Project.h HackStudio: Show the project name as the root in the project tree 2019-12-23 10:55:34 +01:00
ProjectFile.cpp HackStudio: Use GTextDoument::find_all() to implement find-in-files 2019-11-01 21:31:06 +01:00
ProjectFile.h HackStudio: Use GTextDoument::find_all() to implement find-in-files 2019-11-01 21:31:06 +01:00
TerminalWrapper.cpp HackStudio: Do not spawn an intermediary shell 2019-11-14 20:10:16 +01:00
TerminalWrapper.h HackStudio: Add TerminalWrapper::kill_running_command() 2019-11-14 20:10:16 +01:00
Tool.cpp HackStudio: Introduce a Tool class with subs CursorTool and WidgetTool 2019-11-10 21:45:32 +01:00
Tool.h HackStudio: Move the rubber-banding state into CursorTool 2019-11-16 22:26:46 +01:00
WidgetTool.cpp HackStudio: Allow moving the selected widgets using the arrow keys 2019-11-10 22:40:58 +01:00
WidgetTool.h HackStudio: Allow moving the selected widgets using the arrow keys 2019-11-10 22:40:58 +01:00
WidgetTreeModel.cpp HackStudio: Reflect widget selections in the form widget tree view 2019-11-11 22:20:02 +01:00
WidgetTreeModel.h HackStudio: Reflect widget selections in the form widget tree view 2019-11-11 22:20:02 +01:00