From f597be870eec6d04de6bed0effa7dd23bcb72bf8 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Thu, 11 Jul 2024 13:17:03 +0200 Subject: initial commit --- res/CMakeLists.txt | 44 +++++++++++++++++++++++++++++++++++++++++ res/tests/main.cpp | 12 ++++++++++++ res/tests/windows.cpp | 13 ++++++++++++ res/windows/main_window.ui | 49 ++++++++++++++++++++++++++++++++++++++++++++++ res/windows/windows.cmb | 36 ++++++++++++++++++++++++++++++++++ 5 files changed, 154 insertions(+) create mode 100644 res/CMakeLists.txt create mode 100644 res/tests/main.cpp create mode 100644 res/tests/windows.cpp create mode 100644 res/windows/main_window.ui create mode 100644 res/windows/windows.cmb (limited to 'res') diff --git a/res/CMakeLists.txt b/res/CMakeLists.txt new file mode 100644 index 0000000..4969787 --- /dev/null +++ b/res/CMakeLists.txt @@ -0,0 +1,44 @@ +# Library + +add_library("res") + +target_add_glib_resources("res" + PREFIX "turns" + UI_FILES + "windows/main_window.ui" +) + +target_compile_options("res" PRIVATE + "$<$,$>:-fprofile-arcs>" + "$<$,$>:-ftest-coverage>" +) + +target_link_libraries("res" PUBLIC + "$<$,$>:gcov>" + + "PkgConfig::adwaita" + "PkgConfig::gtkmm" +) + +target_link_options("res" PRIVATE + "$<$,$>:--coverage>" +) + +add_library("turns::res" ALIAS "res") + +# Tests + +add_executable("res-tests" + "tests/main.cpp" + "tests/windows.cpp" +) + +target_link_libraries("res-tests" + "Catch2::Catch2" + + "$<$:-Wl,--whole-archive>" + "turns::res" + "$<$:-Wl,--no-whole-archive>" +) + +catch_discover_tests("res-tests") \ No newline at end of file diff --git a/res/tests/main.cpp b/res/tests/main.cpp new file mode 100644 index 0000000..02173f9 --- /dev/null +++ b/res/tests/main.cpp @@ -0,0 +1,12 @@ +#include + +#include +#include + +auto main(int argc, char * argv[]) -> int +{ + Gtk::init_gtkmm_internals(); + adw_init(); + + return Catch::Session().run(argc, argv); +} \ No newline at end of file diff --git a/res/tests/windows.cpp b/res/tests/windows.cpp new file mode 100644 index 0000000..9daab51 --- /dev/null +++ b/res/tests/windows.cpp @@ -0,0 +1,13 @@ +#include + +#include + +TEST_CASE("GResource for main_window") +{ + auto builder = Gtk::Builder::create_from_resource("/turns/windows/main_window.ui"); + + SECTION("can create Gtk.Builder for the main window UI definition") + { + REQUIRE(builder); + } +} \ No newline at end of file diff --git a/res/windows/main_window.ui b/res/windows/main_window.ui new file mode 100644 index 0000000..5489996 --- /dev/null +++ b/res/windows/main_window.ui @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + Turns + + + + + open-menu + main_menu + + + + + contact-new + + + + + + + 720 + 360 + + + + app.quit + Quit + + + diff --git a/res/windows/windows.cmb b/res/windows/windows.cmb new file mode 100644 index 0000000..e911ec0 --- /dev/null +++ b/res/windows/windows.cmb @@ -0,0 +1,36 @@ + + + + + (1,None,"main_window.ui","main_window.ui",None,None,None,None,None,None,None) + + + (1,"gtk","4.14",None), + (1,"libadwaita","1.5",None) + + + (1,1,"AdwApplicationWindow","main_window",None,None,None,None,-1,None,None), + (1,2,"AdwToolbarView",None,1,None,None,None,-1,None,None), + (1,3,"AdwHeaderBar","header",2,None,"top",None,-1,None,None), + (1,4,"GtkScrolledWindow",None,2,None,None,None,-1,None,None), + (1,5,"GtkListBox","entry_list",4,None,None,None,-1,None,None), + (1,6,"AdwWindowTitle",None,3,None,None,None,-1,None,None), + (1,7,"GtkMenuButton","open_menu",3,None,"start",None,None,None,None), + (1,8,"GtkButton","add_participant",3,None,"start",None,None,None,None), + (1,9,"(menu)","main_menu",None,None,None,None,-1,None,None), + (1,10,"(item)",None,9,None,None,None,-1,None,None) + + + (1,1,"AdwApplicationWindow","content",None,None,None,None,None,2,None,None,None,None), + (1,1,"GtkWidget","height-request","720",None,None,None,None,None,None,None,None,None), + (1,1,"GtkWidget","width-request","360",None,None,None,None,None,None,None,None,None), + (1,2,"AdwToolbarView","content",None,None,None,None,None,4,None,None,None,None), + (1,3,"AdwHeaderBar","title-widget",None,None,None,None,None,6,None,None,None,None), + (1,6,"AdwWindowTitle","title","Turns",None,None,None,None,None,None,None,None,None), + (1,7,"GtkMenuButton","icon-name","open-menu",None,None,None,None,None,None,None,None,None), + (1,7,"GtkMenuButton","menu-model","9",None,None,None,None,None,None,None,None,None), + (1,8,"GtkButton","icon-name","contact-new",None,None,None,None,None,None,None,None,None), + (1,10,"(item)","action","app.quit",None,None,None,None,None,None,None,None,None), + (1,10,"(item)","label","Quit",None,None,None,None,None,None,None,None,None) + + -- cgit v1.2.3