Add gtk example

This commit is contained in:
James H
2022-01-03 14:13:43 +00:00
parent e750a4f523
commit 0073d1f9c3
3 changed files with 49 additions and 0 deletions

10
CMakeLists.txt Normal file
View File

@@ -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)

20
src/CMakeLists.txt Normal file
View File

@@ -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})

19
src/main.cpp Normal file
View File

@@ -0,0 +1,19 @@
#include <gtk/gtk.h>
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;
}