From 856f683dc99e8bb0e42276c59598ff633ca0995e Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Mon, 14 Sep 2020 16:38:28 +0200 Subject: [PATCH] Browser: Generate the main browser window UI from JSON :^) --- Applications/Browser/BrowserWindow.json | 18 ++++++++++++++++++ Applications/Browser/CMakeLists.txt | 3 +++ Applications/Browser/main.cpp | 9 +++------ 3 files changed, 24 insertions(+), 6 deletions(-) create mode 100644 Applications/Browser/BrowserWindow.json diff --git a/Applications/Browser/BrowserWindow.json b/Applications/Browser/BrowserWindow.json new file mode 100644 index 0000000000..35557091f8 --- /dev/null +++ b/Applications/Browser/BrowserWindow.json @@ -0,0 +1,18 @@ +{ + "name": "browser", + "fill_with_background_color": true, + + "layout": { + "class": "GUI::VerticalBoxLayout", + "spacing": 2 + }, + + "children": [ + { + "class": "GUI::TabWidget", + "name": "tab_widget", + "container_padding": 0, + "uniform_tabs": true + } + ] +} diff --git a/Applications/Browser/CMakeLists.txt b/Applications/Browser/CMakeLists.txt index f501eb82c8..0db53b2546 100644 --- a/Applications/Browser/CMakeLists.txt +++ b/Applications/Browser/CMakeLists.txt @@ -1,3 +1,5 @@ +compile_json_gui(BrowserWindow.json BrowserWindowUI.h browser_window_ui_json) + set(SOURCES BookmarksBarWidget.cpp BrowserConsoleClient.cpp @@ -8,6 +10,7 @@ set(SOURCES main.cpp Tab.cpp WindowActions.cpp + BrowserWindowUI.h ) serenity_bin(Browser) diff --git a/Applications/Browser/main.cpp b/Applications/Browser/main.cpp index 8c6191f8fa..b3b19a90bc 100644 --- a/Applications/Browser/main.cpp +++ b/Applications/Browser/main.cpp @@ -30,6 +30,7 @@ #include "Tab.h" #include "WindowActions.h" #include +#include #include #include #include @@ -134,14 +135,10 @@ int main(int argc, char** argv) window->set_title("Browser"); auto& widget = window->set_main_widget(); - widget.set_fill_with_background_color(true); - widget.set_layout(); - widget.layout()->set_spacing(2); + widget.load_from_json(browser_window_ui_json); - auto& tab_widget = widget.add(); + auto& tab_widget = static_cast(*widget.find_descendant_by_name("tab_widget")); tab_widget.set_text_alignment(Gfx::TextAlignment::CenterLeft); - tab_widget.set_container_padding(0); - tab_widget.set_uniform_tabs(true); auto default_favicon = Gfx::Bitmap::load_from_file("/res/icons/16x16/filetype-html.png"); ASSERT(default_favicon);