Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
d5e3260
Update GUI code for GTK4 compatibility
devin-ai-integration[bot] Apr 1, 2025
b03a819
Update CMakeLists.txt to detect GTK4 directly
devin-ai-integration[bot] Apr 1, 2025
ff4e06d
Update guigtk4.cpp to use C-style GTK4 API
devin-ai-integration[bot] Apr 1, 2025
80fdb45
Continue updating guigtk4.cpp to use C-style GTK4 API
devin-ai-integration[bot] Apr 1, 2025
c41a4c5
Update GtkGLWidget class to use C-style GTK4 API
devin-ai-integration[bot] Apr 1, 2025
dd7b3fb
Update GtkWindow class to use C-style GTK4 API
devin-ai-integration[bot] Apr 1, 2025
7fb8a13
Update MessageDialogImplGtk to use C-style GTK4 API
devin-ai-integration[bot] Apr 1, 2025
9b4d5a4
Update FileDialogImplGtk classes to use C-style GTK4 API
devin-ai-integration[bot] Apr 1, 2025
896cde6
Update FileDialogImplGtk classes to use get_widget() method for GTK4 …
devin-ai-integration[bot] Apr 1, 2025
f48d044
Update GTK_WINDOW and other GTK macros to use C-style casting for GTK…
devin-ai-integration[bot] Apr 1, 2025
d3aa733
Update FileDialogImplGtk to use C-style GTK4 API for FreezeChoices, T…
devin-ai-integration[bot] Apr 1, 2025
8da7ee7
Update FilterChanged method in FileDialogImplGtk to use C-style GTK4 API
devin-ai-integration[bot] Apr 1, 2025
edb844d
Update GTK4 API usage for message dialogs and browser URI handling
devin-ai-integration[bot] Apr 1, 2025
1f5e125
Fix GTK window casting issues for GTK4 compatibility
devin-ai-integration[bot] Apr 1, 2025
b31bf75
Fix Invalidate method to use get_gl_widget for proper rendering
devin-ai-integration[bot] Apr 1, 2025
1d58a0e
Fix GTK4 compatibility issues in dialog classes
devin-ai-integration[bot] Apr 1, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 20 additions & 2 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,14 @@ include_directories(

set(HAVE_SPACEWARE ${SPACEWARE_FOUND})

# Set C++17 standard required for GTK4
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# Check for GTK4
find_package(PkgConfig REQUIRED)
pkg_check_modules(GTKMM_4_0 gtkmm-4.0)

if(NOT WIN32 OR APPLE)
if(GTKMM_gtkmm-3.0_VERSION VERSION_LESS "3.24.0")
set(HAVE_GTK_FILECHOOSERNATIVE 0)
Expand Down Expand Up @@ -165,6 +173,7 @@ if(ENABLE_GUI OR ENABLE_CLI)
set(every_platform_SOURCES
platform/guiwin.cpp
platform/guigtk.cpp
platform/guigtk4.cpp
platform/guimac.mm
platform/guihtml.cpp)

Expand Down Expand Up @@ -418,8 +427,17 @@ if(ENABLE_GUI)
COMMENT "Copying UI script filemanagerui.sj"
VERBATIM)
else()
target_sources(solvespace PRIVATE
platform/guigtk.cpp)
# Check for GTK4 directly since gtkmm-4.0 might not be available
pkg_check_modules(GTK4 gtk4)
if(DEFINED GTK4_FOUND AND GTK4_FOUND)
target_sources(solvespace PRIVATE
platform/guigtk4.cpp)
message(STATUS "Using GTK4 for GUI")
else()
target_sources(solvespace PRIVATE
platform/guigtk.cpp)
message(STATUS "Using GTK3 for GUI")
endif()

target_include_directories(solvespace SYSTEM PRIVATE
${GTKMM_INCLUDE_DIRS}
Expand Down
Loading