Added webkit2gtk-dependent function, which opens integrated browser window if webkit is present in system or opens common browser if not

pull/13/head
parent 88edccbe08
commit 10bcd56688

@ -971,4 +971,45 @@ void yon_ubl_setup_sockets(GtkWidget *main_window, GtkWidget *left_window, GtkWi
}
}
#ifdef WEBKIT_FOUND
/**yon_ubl_browser_window_open(char *link, char *browser_window_name)
* [EN]
* Launches integrated browser window, named [browser_window_name] at header with [link].
* [RU]
* Открывает встроенный браузер с именем [browser_window_name] и показываемой страницей по ссылке [link]
*/
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);
GtkWidget *header=gtk_header_bar_new();
GtkWidget *header_label=gtk_label_new(browser_window_name);
GtkWidget *WebView=webkit_web_view_new();
gtk_container_add(GTK_CONTAINER(browser),web_place);
gtk_window_set_titlebar(GTK_WINDOW(browser),header);
gtk_window_set_title(GTK_WINDOW(browser),browser_window_name);
gtk_widget_set_size_request(browser,800,600);
gtk_header_bar_set_custom_title(GTK_HEADER_BAR(header),header_label);
gtk_header_bar_set_show_close_button(GTK_HEADER_BAR(header),1);
webkit_web_view_load_uri(WEBKIT_WEB_VIEW(WebView),link);
gtk_box_pack_start(GTK_BOX(web_place),WebView,1,1,0);
gtk_widget_show_all(browser);
}
#else
/**yon_ubl_browser_window_open(char *link, char *browser_window_name)
* [EN]
* Launches browser with [link].
* [RU]
* Открывает браузер со страницей по ссылке [link]
*/
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

@ -11,6 +11,10 @@
#include <gtk/gtk.h>
#include <gtk/gtkx.h>
#include "ubl-settings-video-cm.h"
#ifdef WEBKIT_FOUND
#include <webkit2/webkit2.h>
#endif
#define DesktopPath "/usr/share/applications/"
#define for_dictionaries(obj, obj1) for (obj = obj1->first; obj != NULL; obj = obj->next)
@ -214,5 +218,11 @@ typedef struct {
void _yon_ubl_header_setup(GtkWidget *Overlay, GtkWidget *Head, GtkWidget *Image, char *image_path);
void _yon_ubl_status_box_render(render_data *datav);
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);
#ifdef WEBKIT_FOUND
void yon_ubl_browser_window_open(char *link, char *browser_window_name);
#else
void yon_ubl_browser_window_open(char *link, char *browser_window_name);
#endif
#endif
#endif
Loading…
Cancel
Save