diff options
Diffstat (limited to 'res')
| -rw-r--r-- | res/CMakeLists.txt | 44 | ||||
| -rw-r--r-- | res/tests/main.cpp | 12 | ||||
| -rw-r--r-- | res/tests/windows.cpp | 13 | ||||
| -rw-r--r-- | res/windows/main_window.ui | 49 | ||||
| -rw-r--r-- | res/windows/windows.cmb | 36 |
5 files changed, 154 insertions, 0 deletions
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 + "$<$<AND:$<CXX_COMPILER_ID:GNU,Clang>,$<CONFIG:Debug>>:-fprofile-arcs>" + "$<$<AND:$<CXX_COMPILER_ID:GNU,Clang>,$<CONFIG:Debug>>:-ftest-coverage>" +) + +target_link_libraries("res" PUBLIC + "$<$<AND:$<CXX_COMPILER_ID:GNU,Clang>,$<CONFIG:Debug>>:gcov>" + + "PkgConfig::adwaita" + "PkgConfig::gtkmm" +) + +target_link_options("res" PRIVATE + "$<$<AND:$<CXX_COMPILER_ID:GNU,Clang>,$<CONFIG:Debug>>:--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" + + "$<$<CXX_COMPILER_ID:GNU,Clang>:-Wl,--whole-archive>" + "turns::res" + "$<$<CXX_COMPILER_ID:GNU,Clang>:-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 <catch2/catch_session.hpp> + +#include <adwaita.h> +#include <gtkmm/init.h> + +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 <catch2/catch_test_macros.hpp> + +#include <gtkmm/builder.h> + +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 @@ +<?xml version='1.0' encoding='UTF-8'?> +<!-- Created with Cambalache 0.90.4 --> +<interface> + <!-- interface-name main_window.ui --> + <requires lib="gtk" version="4.14"/> + <requires lib="libadwaita" version="1.5"/> + <requires lib="gio" version="2.0"/> + <object class="AdwApplicationWindow" id="main_window"> + <property name="content"> + <object class="AdwToolbarView"> + <property name="content"> + <object class="GtkScrolledWindow"> + <child> + <object class="GtkListBox" id="entry_list"/> + </child> + </object> + </property> + <child type="top"> + <object class="AdwHeaderBar" id="header"> + <property name="title-widget"> + <object class="AdwWindowTitle"> + <property name="title">Turns</property> + </object> + </property> + <child type="start"> + <object class="GtkMenuButton" id="open_menu"> + <property name="icon-name">open-menu</property> + <property name="menu-model">main_menu</property> + </object> + </child> + <child type="start"> + <object class="GtkButton" id="add_participant"> + <property name="icon-name">contact-new</property> + </object> + </child> + </object> + </child> + </object> + </property> + <property name="height-request">720</property> + <property name="width-request">360</property> + </object> + <menu id="main_menu"> + <item> + <attribute name="action">app.quit</attribute> + <attribute name="label">Quit</attribute> + </item> + </menu> +</interface> 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 @@ +<?xml version='1.0' encoding='UTF-8' standalone='no'?> +<!DOCTYPE cambalache-project SYSTEM "cambalache-project.dtd"> +<cambalache-project version="0.17.3" target_tk="gtk-4.0"> + <ui> + (1,None,"main_window.ui","main_window.ui",None,None,None,None,None,None,None) + </ui> + <ui_library> + (1,"gtk","4.14",None), + (1,"libadwaita","1.5",None) + </ui_library> + <object> + (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) + </object> + <object_property> + (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) + </object_property> +</cambalache-project> |
