#include "ubl-settings-video.h" void on_devices_info_clicked(GtkWidget *, driver_struct* driver){ GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_html); GtkWidget *MainWindow = yon_gtk_builder_get_widget(builder, "MainWindow"); GtkWidget *HTMLView = yon_gtk_builder_get_widget(builder,"HTMLView"); yon_gtk_window_setup(GTK_WINDOW(MainWindow),NULL,SUPPORTED_LABEL,icon_name,"html_window"); int size; config_str fl = yon_resource_open_file(html_path(driver->name),&size); char *full_text = yon_char_parsed_to_string(fl,size,"\n"); webkit_web_view_load_html(WEBKIT_WEB_VIEW(HTMLView),full_text,""); gtk_widget_show(MainWindow); } void yon_driver_struct_update(driver_struct *driver){ char *driver_link = yon_char_unite("",driver->name,"",NULL); gtk_label_set_markup(GTK_LABEL(driver->DriverLabel),driver_link); gtk_label_set_text(GTK_LABEL(driver->KernelLabel),driver->kernel); gtk_label_set_text(GTK_LABEL(driver->DevicesLabel),driver->devices); gtk_label_set_text(GTK_LABEL(driver->DescriptionLabel),driver->description); gtk_widget_set_visible(driver->ModuleInstalledCheck,driver->module_exist); gtk_widget_set_visible(driver->PackageInstalledCheck,driver->package_exist); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(driver->ModuleInstalledCheck),driver->module_installed); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(driver->PackageInstalledCheck),driver->package_installed); int size; config_str html = yon_resource_open_file(html_path(driver->name),&size); if (!size) gtk_widget_hide(driver->DevicesInfoButton); else yon_char_parsed_free(html,size); } void on_link_activate(GtkWidget *, char*, driver_struct *driver){ yon_ubl_status_box_render(yon_char_get_localised_from_lib(INFO_PROCESS_LABEL),BACKGROUND_IMAGE_INFO_TYPE); char *command = get_info_proprietary_command(yon_char_is_empty(driver->module)?driver->package:driver->module); g_thread_new("info_thread",yon_driver_info_launch,(void*)command); } driver_struct *yon_driver_struct_new(){ driver_struct *driver = new(driver_struct); GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_driver); driver->MainBox = yon_gtk_builder_get_widget(builder,"MainBox"); driver->ModuleInstalledCheck = yon_gtk_builder_get_widget(builder,"ModuleInstalledCheck"); driver->PackageInstalledCheck = yon_gtk_builder_get_widget(builder,"PackageInstalledCheck"); driver->KernelLabel = yon_gtk_builder_get_widget(builder,"KernelLabel"); driver->DriverLabel = yon_gtk_builder_get_widget(builder,"DriverLabel"); driver->DescriptionLabel = yon_gtk_builder_get_widget(builder,"DescriptionLabel"); driver->DevicesBox = yon_gtk_builder_get_widget(builder,"DevicesBox"); driver->DevicesInfoButton = yon_gtk_builder_get_widget(builder,"DevicesInfoButton"); driver->DevicesLabel = yon_gtk_builder_get_widget(builder,"DevicesLabel"); driver->name = NULL; driver->kernel = NULL; driver->module = NULL; driver->package = NULL; driver->module_installed = 0; driver->package_installed = 0; driver->module_exist = 0; driver->package_exist = 0; g_signal_connect(G_OBJECT(driver->DevicesInfoButton),"clicked", G_CALLBACK(on_devices_info_clicked),driver); g_signal_connect(G_OBJECT(driver->DriverLabel),"activate-link", G_CALLBACK(on_link_activate),driver); return driver; }