parent
eb8bb5e682
commit
3d3efda1cb
@ -0,0 +1,64 @@
|
||||
#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("<a href = \"\">",driver->name,"</a>",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;
|
||||
}
|
||||
@ -0,0 +1,58 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.38.2 -->
|
||||
<interface>
|
||||
<requires lib="gtk+" version="3.24"/>
|
||||
<requires lib="webkit2gtk" version="2.28"/>
|
||||
<object class="GtkWindow" id="MainWindow">
|
||||
<property name="width-request">500</property>
|
||||
<property name="height-request">350</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="icon-name">com.ublinux.ubl-settings-video</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="WebKitWebView" type-func="webkit_web_view_get_type" id="HTMLView">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child type="titlebar">
|
||||
<object class="GtkHeaderBar" id="SettingsBar">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="show-close-button">True</property>
|
||||
<child type="title">
|
||||
<object class="GtkLabel" id="HeadLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">Video adapter and display settings</property>
|
||||
<attributes>
|
||||
<attribute name="weight" value="bold"/>
|
||||
</attributes>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">32</property>
|
||||
<property name="icon-name">com.ublinux.ubl-settings-video</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</interface>
|
||||
Loading…
Reference in new issue