Merge pull request 'master' (#3) from YanTheKaller/libublsettings-gtk3:master into master

Reviewed-on: #3
pull/4/head^2 v1.2
Dmitry Razumov 2 years ago
commit 9ca64c9ed6

@ -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,10 @@ $ sudo make uninstall
# Library usage
Libublsettings-gtk3 provides librariy:
```C
#include <ublsettings-gtk3.h>
#include <libublsettings-gtk3.h>
```
## ublsettings-gtk3
ublsettings-gtk3 provides various utility functions used in ubl-settings- applications. They are divided into sections as:
- **Terminal functions** yon_launch
- **GTK functions** yon_gtk and yon_ubl_gtk
- **GTK VTE functions** yon_terminal
- **GTK Webkit functions** yon_ubl_browser

@ -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,17 +32,27 @@ 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
${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})
@ -53,6 +63,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}

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

@ -3,12 +3,12 @@
#include <gtk/gtk.h>
#include <gdk/gdk.h>
#include <gtk/gtkx.h>
#include <vte/vte.h>
#include <webkit2/webkit2.h>
#include <ublsettings.h>
#include <libublsettings.h>
#ifdef __GTK_H__
#ifndef VTE_DISABLE
#include <vte/vte.h>
/**
* 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 <webkit2/webkit2.h>
/**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
Loading…
Cancel
Save