Start on gui programming
This commit is contained in:
parent
8ea10129ac
commit
be0b83f80f
4 changed files with 48 additions and 2 deletions
|
@ -1,12 +1,21 @@
|
|||
project(cpplab)
|
||||
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_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
||||
|
||||
#Set c++ c11 version
|
||||
set (CMAKE_CXX_STANDARD 11)
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
|
||||
add_subdirectory(src)
|
||||
add_subdirectory(include)
|
||||
|
@ -21,4 +30,5 @@ set(CPACK_GENERATOR "STGZ;TGZ;TZ;DEB")
|
|||
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "CppLab")
|
||||
SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE.txt")
|
||||
set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_SOURCE_DIR}/README.md")
|
||||
|
||||
include(CPack)
|
||||
|
|
|
@ -2,4 +2,5 @@ add_subdirectory(bmath)
|
|||
add_subdirectory(cpu)
|
||||
add_subdirectory(dtstruct)
|
||||
add_subdirectory(opengl)
|
||||
add_subdirectory(misc)
|
||||
add_subdirectory(misc)
|
||||
add_subdirectory(gui)
|
12
src/gui/CMakeLists.txt
Normal file
12
src/gui/CMakeLists.txt
Normal 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
23
src/gui/gtk1.cpp
Normal 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);
|
||||
}
|
Loading…
Reference in a new issue