From 0073d1f9c30e4ece68b474d3f2c48dad0e309792 Mon Sep 17 00:00:00 2001 From: James H Date: Mon, 3 Jan 2022 14:13:43 +0000 Subject: [PATCH] Add gtk example --- CMakeLists.txt | 10 ++++++++++ src/CMakeLists.txt | 20 ++++++++++++++++++++ src/main.cpp | 19 +++++++++++++++++++ 3 files changed, 49 insertions(+) create mode 100644 CMakeLists.txt create mode 100644 src/CMakeLists.txt create mode 100644 src/main.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..d576911 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,10 @@ +cmake_minimum_required(VERSION 3.10) +set(CMAKE_CXX_STANDARD 17) + +project(PiCamera) + +# Find gtk+-2.0 library +find_package(PkgConfig REQUIRED) +pkg_check_modules(GTK2 REQUIRED gtk+-2.0) + +add_subdirectory(src) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000..2357e16 --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,20 @@ +add_executable( + JAMCS + main.cpp +) +target_include_directories( + JAMCS + PRIVATE + ${GTK2_INCLUDE_DIRS} +) +target_link_directories( + JAMCS + PRIVATE + ${GTK2_LIBRARY_DIRS} +) +target_link_libraries( + JAMCS + PRIVATE + ${GTK2_LIBRARIES} +) +add_definitions (${GTK2_CFLAGS_OTHER}) diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..8870a9f --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,19 @@ +#include + +void end_program(GtkWidget *wid, gpointer ptr) +{ + gtk_main_quit(); +} + +int main(int argc, char* argv[]) +{ + gtk_init(&argc, &argv); + GtkWidget *win = gtk_window_new(GTK_WINDOW_TOPLEVEL); + GtkWidget *btn = gtk_button_new_with_label("Close Window"); + g_signal_connect(btn, "clicked", G_CALLBACK(end_program), NULL); + g_signal_connect(win, "delete_event", G_CALLBACK(end_program), NULL); + gtk_container_add(GTK_CONTAINER(win), btn); + gtk_widget_show_all(win); + gtk_main(); + return 0; +}