ladybird/Applications
Andreas Kling 822dc56ef3 LibGUI: Introduce GML - a simple GUI Markup Language :^)
This patch replaces the UI-from-JSON mechanism with a more
human-friendly DSL.

The current implementation simply converts the GML into a JSON object
that can be consumed by GUI::Widget::load_from_json(). The parser is
not very helpful if you make a mistake.

The language offers a very simple way to instantiate any registered
Core::Object class by simply saying @ClassName

@GUI::Label {
    text: "Hello friends!"
    tooltip: ":^)"
}

Layouts are Core::Objects and can be assigned to the "layout" property:

@GUI::Widget {
    layout: @GUI::VerticalBoxLayout {
        spacing: 2
        margins: [8, 8, 8, 8]
    }
}

And finally, child objects are simply nested within their parent:

@GUI::Widget {
    layout: @GUI::HorizontalBoxLayout {
    }
    @GUI::Button {
        text: "OK"
    }
    @GUI::Button {
        text: "Cancel"
    }
}

This feels a *lot* more pleasant to write than the JSON we had. The fact
that no new code was being written with the JSON mechanism was pretty
telling, so let's approach this with developer convenience in mind. :^)
2020-12-20 11:59:40 +01:00
..
About Applications: Use GUI::Icon::default_icon to set application icon 2020-11-02 21:06:17 +01:00
Browser LibGUI: Introduce GML - a simple GUI Markup Language :^) 2020-12-20 11:59:40 +01:00
Calculator Calculator: Changed 'CE' Button from 'Clear Error' To 'Clear Entry' 2020-11-23 18:41:54 +01:00
Calendar Calendar: Use format instead of printf. 2020-10-05 14:19:24 +02:00
CrashDaemon CrashDaemon: Show source position in backtrace 2020-12-14 23:05:53 +01:00
Debugger Loader: Stabilize loader & Use shared libraries everywhere :^) 2020-12-14 23:05:53 +01:00
DisplaySettings DisplaySettings: Allow unsetting the wallpaper 2020-12-13 11:49:18 +01:00
FileManager FileManager: Fix assertion when drag&dropping a file to the desktop 2020-12-16 19:40:24 +01:00
FontEditor Applications: Use GUI::CommonActions for save and save as menu options 2020-11-02 13:14:58 +01:00
Help Help: Replace InProcessWebView with OutOfProcessWebView 2020-10-08 23:20:52 +02:00
HexEditor Applications: Use GUI::Icon::default_icon to set application icon 2020-11-02 21:06:17 +01:00
IRCClient IRCClient: Remove unnecessary temporary variable from connect() 2020-12-16 17:11:52 +01:00
KeyboardMapper Applications: Use pledge and unveil 2020-11-02 22:36:27 +01:00
KeyboardSettings KeyboardSettings: Use new format functions. 2020-10-06 15:28:39 +02:00
Piano Applications+Userland: Switch to new Audio::Loader API 2020-12-02 16:31:30 +01:00
PixelPaint PixelPaint: Use UndoStack instead of History 2020-11-22 16:07:00 +01:00
QuickShow Applications: Use GUI::Icon::default_icon to set application icon 2020-11-02 21:06:17 +01:00
SoundPlayer SoundPlayer: Accept drop events 2020-12-03 21:52:10 +01:00
Spreadsheet LibGUI: Introduce GML - a simple GUI Markup Language :^) 2020-12-20 11:59:40 +01:00
SystemMonitor SystemMonitor: Add Interrupts tab 2020-12-02 12:57:38 +01:00
Terminal Terminal: Wait on the utmpupdate process to finish 2020-11-30 11:34:08 +01:00
TextEditor LibGUI: Introduce GML - a simple GUI Markup Language :^) 2020-12-20 11:59:40 +01:00
ThemeEditor Applications: Use pledge and unveil 2020-11-02 22:36:27 +01:00
Welcome LibCore: Make IODevice::read_line() return a String 2020-12-13 11:54:11 +01:00
CMakeLists.txt CrashDaemon: Add service that acts on new coredumps 2020-12-14 23:05:53 +01:00