Start on gui programming

This commit is contained in:
balhau 2021-06-24 21:48:14 +01:00
parent 8ea10129ac
commit be0b83f80f
No known key found for this signature in database
GPG key ID: BE6343D39997BF6C
4 changed files with 48 additions and 2 deletions

View file

@ -1,12 +1,21 @@
project(cpplab) project(cpplab)
cmake_minimum_required(VERSION 3.10) cmake_minimum_required(VERSION 3.10)
FIND_PACKAGE(GTK)
IF(GTK_FOUND)
INCLUDE_DIRECTORIES(${GTK_INCLUDE_DIR})
ADD_EXECUTABLE(my_gtk_exe my_gtk_exe.cxx)
TARGET_LINK_LIBRARIES(my_gtk_exe ${GTK_LIBRARIES})
ENDIF(GTK_FOUND)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
#Set c++ c11 version #Set c++ c11 version
set (CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD 11)
add_subdirectory(src) add_subdirectory(src)
add_subdirectory(include) add_subdirectory(include)
@ -21,4 +30,5 @@ set(CPACK_GENERATOR "STGZ;TGZ;TZ;DEB")
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "CppLab") SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "CppLab")
SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE.txt") SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE.txt")
set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_SOURCE_DIR}/README.md") set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_SOURCE_DIR}/README.md")
include(CPack) include(CPack)

View file

@ -2,4 +2,5 @@ add_subdirectory(bmath)
add_subdirectory(cpu) add_subdirectory(cpu)
add_subdirectory(dtstruct) add_subdirectory(dtstruct)
add_subdirectory(opengl) add_subdirectory(opengl)
add_subdirectory(misc) add_subdirectory(misc)
add_subdirectory(gui)

12
src/gui/CMakeLists.txt Normal file
View file

@ -0,0 +1,12 @@
FIND_PACKAGE(GTK)
FIND_PACKAGE(GDK)
IF(GTK_FOUND)
message(STATUS "GTK found compiling GUI apps")
ADD_DEFINITIONS(${GTK3_CFLAGS_OTHER})
ADD_EXECUTABLE(gtk1 gtk1.cpp)
INCLUDE_DIRECTORIES(${GTK_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(gtk1 ${GTK_LIBRARIES})
ELSE()
message(STATUS "GTK not found.")
ENDIF(GTK_FOUND)

23
src/gui/gtk1.cpp Normal file
View file

@ -0,0 +1,23 @@
// Include gtk
//#include <gtk/gtk.h>
#include <gtk-2.0/gdk/gdk.h>
#include <gtk-2.0/gtk/gtk.h>
static void on_activate (GtkApplication *app) {
// Create a new window
GtkWidget *window = gtk_application_window_new (app);
// Create a new button
GtkWidget *button = gtk_button_new_with_label ("Hello, World!");
// When the button is clicked, close the window passed as an argument
g_signal_connect_swapped (button, "clicked", G_CALLBACK (gtk_window_close), window);
gtk_window_set_child (GTK_WINDOW (window), button);
gtk_window_present (GTK_WINDOW (window));
}
int main (int argc, char *argv[]) {
// Create a new application
GtkApplication *app = gtk_application_new ("com.example.GtkApplication",
G_APPLICATION_FLAGS_NONE);
g_signal_connect (app, "activate", G_CALLBACK (on_activate), NULL);
return g_application_run (G_APPLICATION (app), argc, argv);
}