From aed5a39d399f8cf6b69f32fe3e87d46254d7433a Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Mon, 18 Dec 2023 11:49:41 +0600 Subject: [PATCH 1/4] Added checking for webkit and vte compilation --- source/CMakeLists.txt | 7 +++--- ...lsettings-gtk3.c => libublsettings-gtk3.c} | 18 +++++++++++++-- ...lsettings-gtk3.h => libublsettings-gtk3.h} | 22 ++++++++++++++++--- 3 files changed, 39 insertions(+), 8 deletions(-) rename source/{ublsettings-gtk3.c => libublsettings-gtk3.c} (99%) rename source/{ublsettings-gtk3.h => libublsettings-gtk3.h} (96%) diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index 8bf5c23..624f5f4 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.9) -project(ublsettings-gtk3 VERSION 0) +project(libublsettings-gtk3 VERSION 0) include(GNUInstallDirs) find_package(PkgConfig REQUIRED) @@ -32,8 +32,8 @@ endif() # -fstack-clash-protection -fcf-protection") add_library(${PROJECT_NAME} SHARED - ublsettings-gtk3.c - ublsettings-gtk3.h) + ${PROJECT_NAME}.c + ${PROJECT_NAME}.h) set(LIBRARIES @@ -53,6 +53,7 @@ set_target_properties(${PROJECT_NAME} PROPERTIES LINKER_LANGUAGE C) set_target_properties(${PROJECT_NAME} PROPERTIES VERSION ${PROJECT_VERSION}) set_target_properties(${PROJECT_NAME} PROPERTIES SOVERSION ${PROJECT_VERSION_MAJOR}) set_target_properties(${PROJECT_NAME} PROPERTIES PUBLIC_HEADER ${PROJECT_NAME}.h) +set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "") install(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} diff --git a/source/ublsettings-gtk3.c b/source/libublsettings-gtk3.c similarity index 99% rename from source/ublsettings-gtk3.c rename to source/libublsettings-gtk3.c index 7aacb74..a742576 100644 --- a/source/ublsettings-gtk3.c +++ b/source/libublsettings-gtk3.c @@ -1,9 +1,11 @@ -#include "ublsettings-gtk3.h" +#include "libublsettings-gtk3.h" #ifdef __GTK_H__ static render_data render; +#ifndef VTE_DISABLE + static void child_ready(VteTerminal *terminal, GPid pid, GError *error, gpointer user_data) { if (!terminal) return; @@ -98,7 +100,7 @@ void yon_terminal_integrated_start(GtkWidget *terminal, char* command, void *end vte_terminal_set_scroll_on_keystroke(VTE_TERMINAL(terminal), TRUE); gtk_widget_show_all(terminal); } - +#endif // Window config functions #define check_window_config_setup if(__yon_window_config_target_window) @@ -822,6 +824,8 @@ void yon_ubl_setup_sockets(GtkWidget *main_window, GtkWidget *left_window, GtkWi } } +#ifndef WEBKIT_DISABLE + void yon_ubl_browser_window_open(char *link, char *browser_window_name){ GtkWidget *browser=gtk_window_new(GTK_WINDOW_TOPLEVEL); GtkWidget *web_place=gtk_box_new(GTK_ORIENTATION_VERTICAL,0); @@ -838,4 +842,14 @@ void yon_ubl_browser_window_open(char *link, char *browser_window_name){ gtk_box_pack_start(GTK_BOX(web_place),WebView,1,1,0); gtk_widget_show_all(browser); } +#else + +void yon_ubl_browser_window_open(char *link, char *browser_window_name){ + char *user=getenv("SUDO_USER"); + if (!user) + user=getlogin(); + char *command=yon_char_unite("sudo -u ",user," xdg-open ", link,NULL); + yon_launch_app(command); +} +#endif #endif \ No newline at end of file diff --git a/source/ublsettings-gtk3.h b/source/libublsettings-gtk3.h similarity index 96% rename from source/ublsettings-gtk3.h rename to source/libublsettings-gtk3.h index 67a93d5..5356bf6 100644 --- a/source/ublsettings-gtk3.h +++ b/source/libublsettings-gtk3.h @@ -3,12 +3,12 @@ #include #include #include -#include -#include -#include +#include #ifdef __GTK_H__ +#ifndef VTE_DISABLE +#include /** * void yon_terminal_integrated_launch(GtkWidget *place_to_show, void *endwork_function, void* endwork_function_argument) * [EN] @@ -34,6 +34,7 @@ void yon_terminal_integrated_launch(GtkWidget *place_to_show, char* command, voi */ void yon_terminal_integrated_start(GtkWidget *terminal, char* command, void *endwork_function, void* endwork_function_argument); +#endif /**YON_TYPE * [EN] * @@ -383,6 +384,9 @@ void _yon_ubl_header_setup_resource(GtkWidget *Overlay, GtkWidget *Head, GtkWidg */ void yon_ubl_setup_sockets(GtkWidget *main_window, GtkWidget *left_window, GtkWidget *right_window, int socket_main_id, int socket_left_id, int socket_right_id); +#ifndef WEBKIT_DISABLE +#include + /**yon_ubl_browser_window_open(char *link, char *browser_window_name) * [EN] * Launches integrated browser window, named [browser_window_name] at header with [link]. @@ -390,5 +394,17 @@ void yon_ubl_setup_sockets(GtkWidget *main_window, GtkWidget *left_window, GtkWi * Открывает встроенный браузер с именем [browser_window_name] и показываемой страницей по ссылке [link] */ void yon_ubl_browser_window_open(char *link, char *browser_window_name); +#else + +/**yon_ubl_browser_window_open(char *link, char *browser_window_name) + * [EN] + * Launches browser with [link]. + * [browser_window_name] is't used. It's needed for compatibility with webkit version of that function. + * [RU] + * Открывает браузер со страницей по ссылке [link] + * [browser_window_name] не используется. Нужна для совместимости с webkit версией этой функции. +*/ +void yon_ubl_browser_window_open(char *link, char *browser_window_name); +#endif #endif #endif \ No newline at end of file -- 2.35.1 From 4dfd962e661ac58a566b41e7e0decd830afc9f58 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Mon, 18 Dec 2023 11:58:44 +0600 Subject: [PATCH 2/4] vte and webkit are optional --- source/CMakeLists.txt | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index 624f5f4..1b61aea 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -38,11 +38,21 @@ add_library(${PROJECT_NAME} SHARED set(LIBRARIES ${GTK_LIBRARIES} -${WEBKIT_LIBRARIES} -${VTE291_LIBRARIES} ublsettings pthread) +if (VTE291) +list(APPEND LIBRARIES ${VTE291_LIBRARIES}) +else() +add_definitions(-DVTE_DISABLE) +endif() + +if (WEBKIT_LIBRARIES_FOUND) +list(APPEND LIBRARIES ${WEBKIT_LIBRARIES}) +else() +add_definitions(-DWEBKIT_DISABLE) +endif() + message(${CMAKE_INSTALL_LIBDIR}) target_include_directories(${PROJECT_NAME} PUBLIC ${PROJECT_BINARY_DIR}) -- 2.35.1 From ef086ba837c933927ac405153b3c2fd99f1a005a Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Mon, 18 Dec 2023 12:01:04 +0600 Subject: [PATCH 3/4] Description updates --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 994165d..09ab2f8 100644 --- a/README.md +++ b/README.md @@ -4,10 +4,10 @@ In order to build you will need: - CMake - C compiler -- [ublsettings](https://gitea.ublinux.ru/Applications/libublsettings) +- [libublsettings](https://gitea.ublinux.ru/Applications/libublsettings) - GTK+ 3 & dependencies - webkit2gtk (optional) -- vte-2.91 +- vte-2.91(optional) Once you have all the necessary dependencies, you can use: ```sh @@ -28,11 +28,11 @@ $ sudo make uninstall # Library usage Libublsettings-gtk3 provides librariy: ```C - #include + #include ``` ## ublsettings-gtk3 ublsettings-gtk3 provides various utility functions used in ubl-settings- applications. They are divided into sections as: -- **Terminal functions** yon_launch +- **Pipe functions** yon_launch - **GTK functions** yon_gtk and yon_ubl_gtk - **GTK VTE functions** yon_terminal - **GTK Webkit functions** yon_ubl_browser -- 2.35.1 From b9a9ecc2e5470f87ef66d2e671cc2b24cd8e88de Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Mon, 18 Dec 2023 12:01:52 +0600 Subject: [PATCH 4/4] Description updates --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 09ab2f8..390cea4 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,6 @@ Libublsettings-gtk3 provides librariy: ``` ## ublsettings-gtk3 ublsettings-gtk3 provides various utility functions used in ubl-settings- applications. They are divided into sections as: -- **Pipe functions** yon_launch - **GTK functions** yon_gtk and yon_ubl_gtk - **GTK VTE functions** yon_terminal - **GTK Webkit functions** yon_ubl_browser -- 2.35.1