You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
96 lines
4.7 KiB
96 lines
4.7 KiB
#include "ubl-settings-video.h"
|
|
|
|
void on_devices_button_clicked(GtkWidget *, main_window *widgets){
|
|
GtkWidget *selection = GTK_WIDGET(gtk_list_box_get_selected_row(GTK_LIST_BOX(widgets->DriversList)));
|
|
if (selection){
|
|
driver_struct *driver = g_object_get_data(G_OBJECT(selection),"driver_struct");
|
|
on_devices_info_clicked(NULL,driver);
|
|
}
|
|
}
|
|
|
|
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_install_buttons_set_sensitive(main_window *widgets,int state){
|
|
GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->DriversList));
|
|
for (GList *iter = list;iter;iter=iter->next){
|
|
driver_struct *driver = g_object_get_data(G_OBJECT(iter->data),"driver_struct");
|
|
gtk_widget_set_sensitive(driver->ModuleInstalledCheck,state);
|
|
gtk_widget_set_sensitive(driver->PackageInstalledCheck,state);
|
|
}
|
|
g_list_free(list);
|
|
}
|
|
|
|
void yon_driver_struct_update(main_window *widgets,driver_struct *driver){
|
|
driver->module_installed = yon_packages_check_installed(driver->module);
|
|
driver->package_installed = yon_packages_check_installed(driver->package);
|
|
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);
|
|
g_signal_handlers_block_by_func(G_OBJECT(driver->ModuleInstalledCheck),G_CALLBACK(on_install_activate),widgets);
|
|
g_signal_handlers_block_by_func(G_OBJECT(driver->PackageInstalledCheck),G_CALLBACK(on_install_activate),widgets);
|
|
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);
|
|
g_signal_handlers_unblock_by_func(G_OBJECT(driver->ModuleInstalledCheck),G_CALLBACK(on_install_activate),widgets);
|
|
g_signal_handlers_unblock_by_func(G_OBJECT(driver->PackageInstalledCheck),G_CALLBACK(on_install_activate),widgets);
|
|
int size;
|
|
char *driver_link = NULL;
|
|
config_str html = yon_resource_open_file(html_path(driver->name),&size);
|
|
if (!size){
|
|
driver_link = yon_char_new(driver->name);
|
|
driver->supported_devices_avaliable=0;
|
|
} else {
|
|
driver_link = yon_char_unite("<a href = \"\">",driver->name,"</a>",NULL);
|
|
yon_char_parsed_free(html,size);
|
|
driver->supported_devices_avaliable=1;
|
|
}
|
|
|
|
gtk_label_set_markup(GTK_LABEL(driver->DriverLabel),driver_link);
|
|
free(driver_link);
|
|
}
|
|
|
|
void on_link_activate(GtkWidget *, char*, driver_struct *driver){
|
|
on_devices_info_clicked(NULL,driver);
|
|
}
|
|
|
|
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->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;
|
|
driver->supported_devices_avaliable=0;
|
|
|
|
g_object_set_data(G_OBJECT(driver->ModuleInstalledCheck),"driver_struct",driver);
|
|
g_object_set_data(G_OBJECT(driver->PackageInstalledCheck),"driver_struct",driver);
|
|
|
|
g_signal_connect(G_OBJECT(driver->DriverLabel),"activate-link", G_CALLBACK(on_link_activate),driver);
|
|
return driver;
|
|
} |