@ -52,14 +52,13 @@ void on_monitor_config_save(GtkWidget *self, monitor_edit_window *window){
config - > position_port = ( char * ) gtk_combo_box_text_get_active_text ( GTK_COMBO_BOX_TEXT ( window - > templateMonitorConfigurationPositionPortCombo ) ) ;
}
config - > resolution = yon_char_divide_search ( gtk_combo_box_text_get_active_text ( GTK_COMBO_BOX_TEXT ( window - > templateMonitorConfigurationResolutionCombo ) ) , " " , - 1 ) ;
if ( gtk_combo_box_get_active ( GTK_COMBO_BOX ( window - > templateMonitorConfigurationResolutionCombo ) ) ! = 0 ) {
config - > resolution = ( char * ) gtk_combo_box_text_get_active_text ( GTK_COMBO_BOX_TEXT ( window - > templateMonitorConfigurationResolutionCombo ) ) ;
int rotation = gtk_combo_box_get_active ( GTK_COMBO_BOX ( window - > templateMonitorConfigurationRotationCombo ) ) ;
if ( rotation = = 1 ) config - > rotation = rotation ;
else if ( rotation = = 2 ) config - > rotation = rotation ;
else if ( rotation = = 3 ) config - > rotation = rotation ;
else config - > rotation = 0 ;
if ( gtk_combo_box_get_active ( GTK_COMBO_BOX ( window - > templateMonitorConfigurationResolutionCombo ) ) ! = 0 ) {
char * resolution = ( char * ) gtk_combo_box_text_get_active_text ( GTK_COMBO_BOX_TEXT ( window - > templateMonitorConfigurationResolutionCombo ) ) ;
}
if ( gtk_combo_box_get_active ( GTK_COMBO_BOX ( window - > templateMonitorConfigurationResolutionCombo ) ) ! = 0 ) {
char * frequency = ( char * ) gtk_combo_box_text_get_active_text ( GTK_COMBO_BOX_TEXT ( window - > templateMonitorConfigurationFrequencyCombo ) ) ;
@ -72,6 +71,99 @@ void on_monitor_config_save(GtkWidget *self, monitor_edit_window *window){
on_subwindow_close ( self ) ;
}
void on_terminal_done ( GtkWidget * terminal , int size , widgets_dict * widgets ) {
char * text = vte_terminal_get_text_range ( VTE_TERMINAL ( terminal ) , 0 , 0 , 0 , 10 , NULL , NULL , NULL ) ;
printf ( " \" %s \" \n " , text ) ;
gtk_widget_destroy ( terminal ) ;
}
void on_terminal_more ( GtkWidget * self , widgets_dict * widgets ) {
int active = gtk_revealer_get_child_revealed ( GTK_REVEALER ( widgets - > TerminalMoreRevieler ) ) ;
if ( active = = 1 ) active = 0 ;
else active = 1 ;
gtk_revealer_set_reveal_child ( GTK_REVEALER ( widgets - > TerminalMoreRevieler ) , active ) ;
}
void on_terminal_destroy ( GtkWidget * self , widgets_dict * widgets ) {
gtk_revealer_set_reveal_child ( GTK_REVEALER ( widgets - > TerminalRevealer ) , 0 ) ;
gtk_widget_destroy ( widgets - > TerminalRevealer ) ;
yon_proprieary_get ( ) ;
yon_gtk_list_store_fill_with_proprietaries ( videoconfig . list ) ;
}
static void child_ready ( VteTerminal * terminal , GPid pid , GError * error , gpointer user_data )
{
if ( ! terminal ) return ;
if ( pid = = - 1 ) printf ( " Error \n \n \n " ) ;
else vte_terminal_feed_child ( VTE_TERMINAL ( terminal ) , ( char * ) user_data , strlen ( ( char * ) user_data ) ) ;
}
void on_terminal_check_progress ( VteTerminal * terminal , widgets_dict * widgets ) {
char * text = vte_terminal_get_text ( terminal , NULL , NULL , NULL ) ;
// printf("%d - %s\n",rows, text);
gtk_progress_bar_set_fraction ( GTK_PROGRESS_BAR ( widgets - > TerminalInfoLabel ) , ( double ) yon_char_find_count ( text , " :: " ) / 4 ) ;
}
void yon_terminal_start ( widgets_dict * widgets , char * usr_command ) {
char * * command = new_arr ( char * , 2 ) ;
gchar * * envp = g_get_environ ( ) ;
command [ 0 ] = ( gchar * ) g_strdup ( g_environ_getenv ( envp , " SHELL " ) ) ;
command [ 1 ] = NULL ;
char * * env = new_arr ( char * , 2 ) ;
env [ 0 ] = " " ;
env [ 1 ] = NULL ;
GtkBuilder * builder = gtk_builder_new_from_file ( glade_path ) ;
widgets - > TerminalBox = yon_gtk_builder_get_widget ( builder , " TerminalBox " ) ;
widgets - > TerminalRevealer = yon_gtk_builder_get_widget ( builder , " TerminalRevealer " ) ;
widgets - > TerminalMoreRevieler = yon_gtk_builder_get_widget ( builder , " TerminalMoreRevieler " ) ;
widgets - > TerminalMoreButton = yon_gtk_builder_get_widget ( builder , " TerminalMoreButton " ) ;
widgets - > TerminalScroll = yon_gtk_builder_get_widget ( builder , " TerminalScroll " ) ;
widgets - > TerminalInfoLabel = yon_gtk_builder_get_widget ( builder , " TerminalInfoLabel " ) ;
GtkWidget * terminal = yon_gtk_builder_get_widget ( builder , " TerminalTerminal " ) ;
vte_terminal_set_size ( VTE_TERMINAL ( terminal ) , 10 , 15 ) ;
gtk_widget_set_app_paintable ( terminal , 1 ) ;
gtk_style_context_add_class ( gtk_widget_get_style_context ( terminal ) , " opacited " ) ;
gtk_style_context_add_class ( gtk_widget_get_style_context ( terminal ) , " workingbg " ) ;
gtk_overlay_add_overlay ( GTK_OVERLAY ( widgets - > TerminalOverlay ) , widgets - > TerminalRevealer ) ;
g_signal_connect ( G_OBJECT ( terminal ) , " child-exited " , G_CALLBACK ( on_terminal_done ) , widgets ) ;
g_signal_connect ( G_OBJECT ( terminal ) , " contents-changed " , G_CALLBACK ( on_terminal_check_progress ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > TerminalMoreButton ) , " clicked " , G_CALLBACK ( on_terminal_more ) , widgets ) ;
g_signal_connect ( G_OBJECT ( terminal ) , " destroy " , G_CALLBACK ( on_terminal_destroy ) , widgets ) ;
gtk_revealer_set_reveal_child ( GTK_REVEALER ( widgets - > TerminalRevealer ) , 1 ) ;
VtePty * pty = vte_pty_new_sync ( VTE_PTY_DEFAULT , NULL , NULL ) ;
vte_terminal_set_pty ( VTE_TERMINAL ( terminal ) , pty ) ;
char * install_command = yon_char_unite ( " tput cup 0 0 && tput ed; " , usr_command , " ; sleep 5;exit 0 " , " \n " , NULL ) ;
vte_terminal_spawn_async ( VTE_TERMINAL ( terminal ) ,
VTE_PTY_DEFAULT ,
NULL ,
command ,
NULL ,
0 ,
NULL , NULL ,
NULL ,
- 1 ,
NULL ,
child_ready ,
install_command ) ;
vte_pty_spawn_async ( pty ,
NULL ,
command ,
NULL ,
0 ,
NULL , NULL ,
NULL ,
- 1 ,
NULL ,
NULL ,
NULL ) ;
vte_terminal_set_scrollback_lines ( VTE_TERMINAL ( terminal ) , 100 ) ;
vte_terminal_set_scroll_on_output ( VTE_TERMINAL ( terminal ) , TRUE ) ;
vte_terminal_set_scroll_on_keystroke ( VTE_TERMINAL ( terminal ) , TRUE ) ;
gtk_widget_show_all ( widgets - > TerminalRevealer ) ;
}
void on_driver_pack_install ( GtkWidget * self , widgets_dict * widgets ) {
GtkTreeIter iter ;
char * name ;
@ -79,8 +171,8 @@ void on_driver_pack_install(GtkWidget *self,widgets_dict *widgets){
GtkTreeSelection * selection = gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > proprietaryTreeView ) ) ;
gtk_tree_selection_get_selected ( selection , & list_s , & iter ) ;
gtk_tree_model_get ( list_s , & iter , 1 , & name , - 1 ) ;
pthread_t tid ;
pthread_create ( & tid , NULL , ( void * ) yon_launch_with_output , ( void * ) yon_char_get_augumented ( install_proprietary_command , name ) ) ;
yon_terminal_start ( widgets , yon_char_get_augumented ( install_proprietary_command , name ) ) ;
}
@ -92,9 +184,7 @@ void on_driver_install(GtkWidget *self,widgets_dict *widgets){
GtkTreeSelection * selection = gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > driversTreeView ) ) ;
gtk_tree_selection_get_selected ( selection , & list_s , & iter ) ;
gtk_tree_model_get ( list_s , & iter , 1 , & name , - 1 ) ;
pthread_t tid ;
pthread_create ( & tid , NULL , ( void * ) yon_launch_with_output , ( void * ) yon_char_get_augumented ( install_proprietary_command , name ) ) ;
yon_terminal_start ( widgets , yon_char_get_augumented ( install_proprietary_command , name ) ) ;
}
void on_driver_pack_delete ( GtkWidget * self , widgets_dict * widgets ) {
@ -105,9 +195,7 @@ void on_driver_pack_delete(GtkWidget *self,widgets_dict *widgets){
GtkTreeSelection * selection = gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > proprietaryTreeView ) ) ;
gtk_tree_selection_get_selected ( selection , & list_s , & iter ) ;
gtk_tree_model_get ( list_s , & iter , 1 , & name , - 1 ) ;
pthread_t tid ;
pthread_create ( & tid , NULL , ( void * ) yon_launch_with_output , ( void * ) yon_char_get_augumented ( delete_proprietary_command , name ) ) ;
yon_terminal_start ( widgets , yon_char_get_augumented ( delete_proprietary_command , name ) ) ;
}
void on_driver_delete ( GtkWidget * self , widgets_dict * widgets ) {
@ -118,9 +206,7 @@ void on_driver_delete(GtkWidget *self,widgets_dict *widgets){
GtkTreeSelection * selection = gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > driversTreeView ) ) ;
gtk_tree_selection_get_selected ( selection , & list_s , & iter ) ;
gtk_tree_model_get ( list_s , & iter , 1 , & name , - 1 ) ;
pthread_t tid ;
pthread_create ( & tid , NULL , ( void * ) yon_launch_with_output , ( void * ) yon_char_get_augumented ( delete_proprietary_command , name ) ) ;
yon_terminal_start ( widgets , yon_char_get_augumented ( delete_proprietary_command , name ) ) ;
}
void on_driver_pack_info ( GtkWidget * self , widgets_dict * widgets ) {
@ -185,20 +271,6 @@ void on_port_chosen_changed(GtkWidget *self, monitor_edit_window *window){
}
}
void on_save_driver_configuration ( GtkWidget * self , combo_tree * widgets ) {
GtkTreeIter iter ;
char * name ;
GtkTreeModel * list_s = GTK_TREE_MODEL ( videoconfig . list ) ;
GtkTreeSelection * selection = gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > tree ) ) ;
gtk_tree_selection_get_selected ( selection , & list_s , & iter ) ;
gtk_tree_model_get ( list_s , & iter , 0 , & name , - 1 ) ;
int ret = yon_gtk_combo_box_text_find ( widgets - > combo , name ) ;
if ( ret ! = - 1 )
gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > combo ) , ret ) ;
on_subwindow_close ( self ) ;
}
void on_sensitive_change ( GtkWidget * self , GtkWidget * toggle )
{
int state = gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( self ) ) ;
@ -216,18 +288,13 @@ void on_sensitive_change_reversed(GtkWidget *self, GtkWidget *toggle)
void on_auto_choose_drivers ( GtkWidget * self , widgets_dict * widgets )
{
int state = gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( self ) ) ;
videoconfig . autoChooseDrivers = state ;
gtk_widget_set_sensitive ( widgets - > mainDriverFailsafeNvidiaLabel , ! state ) ;
gtk_widget_set_sensitive ( widgets - > mainDriverFailsafeAMDCombo , ! state ) ;
gtk_widget_set_sensitive ( widgets - > mainDriverFailsafeAMDLabel , ! state ) ;
gtk_widget_set_sensitive ( widgets - > mainDriverFailsafeNvidiaCombo , ! state ) ;
}
// void on_closed_configuration(GtkWidget *self, MonitorSettings *monitors)
// {
// gtk_widget_destroy(monitors->templateMonitorConfigurationWindow);
// }
char * yon_configuration_get_save_command ( char * command ) {
char * str = NULL ;
char * dntus = NULL ;
@ -236,20 +303,33 @@ char *yon_configuration_get_save_command(char *command){
if ( videoconfig . autoChooseDrivers = = 0 ) {
if ( strcmp ( videoconfig . failsafenVidia , dntus ) ! = 0 )
str = yon_char_get_augumented ( str , yon_char_get_augumented ( " FAILSAFENVIDIA= " , videoconfig . failsafenVidia ) ) ;
else
str = yon_char_get_augumented ( str , " FAILSAFENVIDIA= \" \" " ) ;
if ( strcmp ( videoconfig . failsafeATI , dntus ) ! = 0 )
str = yon_char_get_augumented ( str , yon_char_get_augumented ( " FAILSAFEATI= " , videoconfig . failsafeATI ) ) ;
else
str = yon_char_get_augumented ( str , " FAILSAFEATI= \" \" " ) ;
str = yon_char_get_augumented ( str , " VGADRV_AUTO=NO " ) ;
} else {
str = yon_char_unite ( str , " FAILSAFENVIDIA= \" \" FAILSAFEATI= \" \" VGADRV_AUTO=YES " , NULL ) ;
}
if ( strcmp ( videoconfig . optirun , dntus ) ! = 0 & & strcmp ( videoconfig . optirun , " " ) ! = 0 )
str = yon_char_get_augumented ( str , yon_char_get_augumented ( " OPTIRUN= " , videoconfig . optirun ) ) ;
str = yon_char_get_augumented ( str , yon_char_unite ( " OPTIRUN= " , " \" " , videoconfig . optirun , " \" " , NULL ) ) ;
else
str = yon_char_get_augumented ( str , yon_char_unite ( " OPTIRUN= \" \" " , NULL ) ) ;
if ( strcmp ( videoconfig . primusrun , dntus ) ! = 0 & & strcmp ( videoconfig . primusrun , " " ) ! = 0 )
str = yon_char_get_augumented ( str , yon_char_get_augumented ( " PRIMUSRUN= " , videoconfig . primusrun ) ) ;
str = yon_char_get_augumented ( str , yon_char_unite ( " PRIMUSRUN= " , " \" " , videoconfig . primusrun , " \" " , NULL ) ) ;
else
str = yon_char_get_augumented ( str , yon_char_unite ( " PRIMUSRUN= \" \" " , NULL ) ) ;
dictionary * dict = NULL ;
for ( int i = 0 ; i < videoconfig . portssize ; i + + )
str = yon_char_unite ( str , " XORG_MONITOR[ " , videoconfig . ports [ i ] , " ]= \" \" " , NULL ) ;
if ( videoconfig . monitors )
for_dictionaries ( dict , videoconfig . monitors ) {
if ( yon_dictionary_get_data ( dict , monitorconfig * ) - > stringparameters ) {
str = yon_char_get_augumented ( str , yon_config_make_save_parameter_with_multiple_arguments ( yon_dictionary_get_data ( dict , monitorconfig * ) - > stringparameters , XORG_MONITOR ( dict - > key ) , " , " ) ) ;
str = yon_char_unite ( str , " XORG_MONITOR[ " , dict - > key , " ]= \" " , yon_dictionary_get_data ( dict , monitorconfig * ) - > stringparameters , " \" " , NULL ) ;
}
}
@ -281,8 +361,8 @@ char *yon_configuration_get_remove_command(char *command){
str = yon_char_get_augumented ( str , " OPTIRUN " ) ;
str = yon_char_get_augumented ( str , " PRIMUSRUN " ) ;
dictionary * dict = NULL ;
for_dictionaries ( dict , videoconfig . monitors ) {
str = yon_char_get_augumented ( str , yon_char_get_augumented ( " XORG_MONITOR[" , yon_char_get_augumented ( dict - > key , " ] " ) ) ) ;
for ( int i = 0 ; i < videoconfig . portssize ; i + + ) {
str = yon_char_get_augumented ( str , yon_char_get_augumented ( " " , XORG_MONITOR ( videoconfig . ports [ i ] ) ) ) ;
}
if ( strcmp ( str , command ) ! = 0 )
return str ;
@ -297,10 +377,11 @@ void on_configuration_save_local(GtkWidget *self, widgets_dict *widgets)
str = yon_configuration_get_save_command ( save_drivers_local_command ) ;
delstr = yon_configuration_get_remove_command ( remove_drivers_local_command ) ;
if ( delstr ) {
printf ( " %s \n \n " , delstr ) ;
yon_config_save ( delstr ) ;
}
if ( str ) {
printf ( str ) ;
printf ( " %s \n \n " , str ) ;
yon_config_save ( str ) ;
videoconfig . status_render . text_to_render = LOCAL_SAVE_SUCCESS ;
@ -335,7 +416,7 @@ void on_configuration_save_global(GtkWidget *self, widgets_dict *widgets)
str = yon_char_get_augumented ( str , yon_char_get_augumented ( " " , videoconfig . optirun ) ) ;
if ( videoconfig . primusrun )
str = yon_char_get_augumented ( str , yon_char_get_augumented ( " " , videoconfig . primusrun ) ) ;
printf ( str ) ;
// printf(str);
yon_config_save ( str ) ;
}
@ -390,9 +471,9 @@ void on_monitor_delete(GtkWidget *self,monitor_view windowd){
monitor_window * window = yon_dictionary_get_data ( windowd , monitor_window * ) ;
if ( window & & window - > config ) {
gtk_container_remove ( GTK_CONTAINER ( gtk_widget_get_parent ( window - > templateMonitorscreenOverlay ) ) , window - > templateMonitorscreenOverlay ) ;
yon_dictionary_rip ( windowd ) ;
videoconfig . monitor_visuals = yon_dictionary_rip ( windowd ) ;
gtk_widget_destroy ( window - > templateMonitorscreenOverlay ) ;
yon_dictionary_rip ( window - > config ) ;
videoconfig . monitors = yon_dictionary_rip ( window - > config ) ;
free ( window ) ;
}
}
@ -419,6 +500,22 @@ void on_monitor_add(GtkWidget *self,monitor_window *window){
}
}
// void on_monitor_string_edit(GtkWidget *self,monitor_edit_window *monitor){
// int size=0;
// config_str rtn = yon_char_parse((char*)gtk_entry_get_text(GTK_ENTRY(monitor->templateMonitorConfigurationParameterLineEntry)),&size,",");
// if (yon_char_parsed_check_exist(rtn,size,"enable")!=-1) GTK_CHECK_BUTTON(monitor->templateMonitorConfigurationEnableCheck));
// if (yon_char_parsed_check_exist(rtn,size,"")!=-1) GTK_COMBO_BOX_TEXT(monitor->templateMonitorConfigurationResolutionCombo));
// if (yon_char_parsed_check_exist(rtn,size,"")!=-1) GTK_COMBO_BOX_TEXT(monitor->templateMonitorConfigurationFrequencyCombo));
// if (yon_char_parsed_check_exist(rtn,size,"rotate")!=-1) GTK_COMBO_BOX_TEXT(monitor->templateMonitorConfigurationRotationCombo));
// if (yon_char_parsed_check_exist(rtn,size,"")!=-1) GTK_COMBO_BOX_TEXT(monitor->templateMonitorConfigurationPositionPosCombo));
// if (yon_char_parsed_check_exist(rtn,size,"")!=-1) GTK_COMBO_BOX_TEXT(monitor->templateMonitorConfigurationPositionPortCombo));
// if (yon_char_parsed_check_exist(rtn,size,"")!=-1) GTK_CHECK_BUTTON(monitor->templateMonitorConfigurationDoNotSwitchOffCheck));
// if (yon_char_parsed_check_exist(rtn,size,"")!=-1) GTK_CHECK_BUTTON(monitor->templateMonitorConfigurationModelineCVTCheck));
// if (yon_char_parsed_check_exist(rtn,size,"")!=-1) GTK_CHECK_BUTTON(monitor->templateMonitorConfigurationUseCVTReducedCheck));
// if (yon_char_parsed_check_exist(rtn,size,"")!=-1) GTK_CHECK_BUTTON(monitor->templateMonitorConfigurationModelineGTFCheck));
// if (yon_char_parsed_check_exist(rtn,size,"")!=-1) GTK_CHECK_BUTTON(monitor->templateMonitorConfigurationMainCheck));
// }
void on_monitor_configure ( GtkWidget * self , monitor_window * window ) {
if ( window & & window - > config ) {
monitor_edit_window * monitors = new ( monitor_edit_window ) ;
@ -436,7 +533,6 @@ void on_monitor_configure(GtkWidget *self,monitor_window *window){
monitors - > templateMonitorConfigurationFrequencyLabel = GTK_WIDGET ( gtk_builder_get_object ( builder , " templateMonitorConfigurationFrequencyLabel " ) ) ;
monitors - > templateMonitorConfigurationFrequencyCombo = GTK_WIDGET ( gtk_builder_get_object ( builder , " templateMonitorConfigurationFrequencyCombo " ) ) ;
monitors - > templateMonitorConfigurationRotationLabel = GTK_WIDGET ( gtk_builder_get_object ( builder , " templateMonitorConfigurationRotationLabel " ) ) ;
// monitors->templateMonitorConfigurationDoNotSwitchOffLabel = GTK_WIDGET(gtk_builder_get_object(builder, "templateMonitorConfigurationDoNotSwitchOffLabel"));
monitors - > templateMonitorConfigurationRotationCombo = GTK_WIDGET ( gtk_builder_get_object ( builder , " templateMonitorConfigurationRotationCombo " ) ) ;
monitors - > templateMonitorConfigurationPositionLabel = GTK_WIDGET ( gtk_builder_get_object ( builder , " templateMonitorConfigurationPositionLabel " ) ) ;
monitors - > templateMonitorConfigurationPositionPosCombo = GTK_WIDGET ( gtk_builder_get_object ( builder , " templateMonitorConfigurationPositionPosCombo " ) ) ;
@ -484,7 +580,7 @@ void on_monitor_configure(GtkWidget *self,monitor_window *window){
dictionary * dict = NULL ;
for ( int i = 0 ; i < videoconfig . portssize ; i + + ) {
dictionary * check_if_exists = yon_dictionary_find ( & videoconfig . monitors , videoconfig . ports [ i ] ) ;
if ( ! yon_dictionary_get_data ( check_if_exists , monitorconfig * ) - > stringparameters )
if ( ! check_if_exists | | ! yon_dictionary_get_data ( check_if_exists , monitorconfig * ) - > stringparameters | | check_if_exists = = monitors - > config )
gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT ( monitors - > templateMonitorConfigurationPortCombo ) , videoconfig . ports [ i ] ) ;
}
@ -558,33 +654,6 @@ void yon_monitor_window_update(monitor_edit_window *window){
}
void yon_popen ( thread_input * input ) {
* ( FILE * * ) input - > data = popen ( input - > command , " r " ) ;
}
void yon_launch_with_output ( char * command ) {
pthread_t tid ;
FILE * output = NULL ;
FILE * * output_file = & output ;
thread_input input ;
input . command = command ;
input . data = output_file ;
pthread_create ( & tid , NULL , ( void * ) yon_popen , & input ) ;
// char **output_strings = NULL;
// output_strings = malloc(sizeof(char));
// int i = 0;
// char str[1000];
// memset(str, 0, 1000);
// while (1){
// if (output){
// if (fgets(str, 1000, output)){
// videoconfig.status_render.text_to_render=str;
// videoconfig.status_render.type=BACKGROUND_IMAGE_SUCCESS_TYPE;
// _yon_ubl_status_box_render(&videoconfig.status_render);
// }
// }
// }
}
/**void yon_monitor_view_draw_all(GtkWidget *cnt)
* [ EN ]
@ -606,7 +675,9 @@ void yon_monitor_view_draw_all(GtkWidget *cnt){
for_dictionaries ( dict , videoconfig . monitor_visuals ) {
monitor_window * window = yon_dictionary_get_data ( dict , monitor_window * ) ;
if ( dict - > first = = dict ) { }
else gtk_box_pack_start ( GTK_BOX ( container ) , window - > templateMonitorscreenOverlay , 0 , 0 , 0 ) ;
else {
gtk_box_pack_start ( GTK_BOX ( container ) , window - > templateMonitorscreenOverlay , 0 , 0 , 0 ) ;
}
}
monitor_window * window = yon_dictionary_get_data ( videoconfig . monitor_visuals - > first , monitor_window * ) ;
gtk_box_pack_start ( GTK_BOX ( container ) , window - > templateMonitorscreenOverlay , 0 , 0 , 0 ) ;
@ -644,8 +715,20 @@ void yon_monitor_view_update(){
gtk_label_set_text ( GTK_LABEL ( monitor - > templateMonitorInfoNameLabel ) , yon_char_get_augumented ( MONITOR_LABEL , monitor - > config - > key ) ) ;
else
gtk_label_set_text ( GTK_LABEL ( monitor - > templateMonitorInfoNameLabel ) , yon_char_get_augumented ( MONITOR_LABEL , " " ) ) ;
monitorconfig * params = yon_dictionary_get_data ( yon_dictionary_get_data ( dict , monitor_window * ) - > config , monitorconfig * ) ;
gtk_widget_set_sensitive ( yon_dictionary_get_data ( dict , monitor_window * ) - > templateMonitorImage , params - > enable ) ;
if ( config - > resolution )
gtk_label_set_text ( GTK_LABEL ( monitor - > templateMonitorInfoResolutionLabel ) , config - > resolution ) ;
else if ( params - > stringparameters ) {
int size = 0 ;
config_str rtn = yon_char_parse ( params - > stringparameters , & size , " , " ) ;
char * res = yon_char_parsed_get_resolution ( rtn , size ) ;
if ( res & & strcmp ( res , " " ) ! = 0 )
gtk_label_set_text ( GTK_LABEL ( monitor - > templateMonitorInfoResolutionLabel ) , res ) ;
else
gtk_label_set_text ( GTK_LABEL ( monitor - > templateMonitorInfoResolutionLabel ) , PARAMETER_DEFAULT_LABEL ) ;
}
else
gtk_label_set_text ( GTK_LABEL ( monitor - > templateMonitorInfoResolutionLabel ) , PARAMETER_DEFAULT_LABEL ) ;
}
@ -828,9 +911,9 @@ void on_config_fill_interface(widgets_dict *widgets)
gtk_combo_box_text_remove_all ( GTK_COMBO_BOX_TEXT ( widgets - > mainDriverFailsafeNvidiaCombo ) ) ;
str = videoconfig . failsafenVidia ;
gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT ( widgets - > mainDriverFailsafeNvidiaCombo ) , _ ( " Don't use " ) ) ;
gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT ( widgets - > mainDriverFailsafeNvidiaCombo ) , _ ( " fbdev " ) ) ;
if ( str )
gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT ( widgets - > mainDriverFailsafeNvidiaCombo ) , DONT_USE_LABEL ) ;
gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT ( widgets - > mainDriverFailsafeNvidiaCombo ) , FBDEV_LABEL ) ;
if ( str & & videoconfig . autoChooseDrivers = = 0 )
{
gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > mainDriverFailsafeNvidiaCombo ) , 1 ) ;
}
@ -839,14 +922,17 @@ void on_config_fill_interface(widgets_dict *widgets)
gtk_combo_box_text_remove_all ( GTK_COMBO_BOX_TEXT ( widgets - > mainDriverFailsafeAMDCombo ) ) ;
str = videoconfig . failsafeATI ;
gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT ( widgets - > mainDriverFailsafeAMDCombo ) , _ ( " Don't use " ) ) ;
gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT ( widgets - > mainDriverFailsafeAMDCombo ) , _ ( " fbdev " ) ) ;
if ( str )
gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT ( widgets - > mainDriverFailsafeAMDCombo ) , DONT_USE_LABEL ) ;
gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT ( widgets - > mainDriverFailsafeAMDCombo ) , FBDEV_LABEL ) ;
if ( str & & videoconfig . autoChooseDrivers = = 0 )
{
gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > mainDriverFailsafeAMDCombo ) , 1 ) ;
}
else
gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > mainDriverFailsafeAMDCombo ) , 0 ) ;
if ( videoconfig . autoChooseDrivers = = 1 ) {
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( widgets - > mainDriverAutomaticallyChooseCheck ) , 1 ) ;
}
dictionary * dict = NULL ;
}
@ -854,34 +940,55 @@ void on_config_fill_interface(widgets_dict *widgets)
* [ EN ]
*/
dictionary * yon_proprieary_get ( ) {
videoconfig . proprietary = NULL ;
int drivers_size = 0 ;
config_str drivers = yon_config_load ( get_proprietary_drivers_command , & drivers_size ) ;
int size = 0 ;
char * * rtn = yon_config_load ( get_proprietary_drivers_command , & size ) ;
for ( int i = 0 ; i < size ; i + + ) {
rtn [ i ] = yon_char_divide_search ( rtn [ i ] , " \n " , - 1 ) ;
char * key = yon_char_new ( rtn [ i ] ) ;
if ( key [ 0 ] = = ' : ' )
yon_char_divide_search ( key , " : " , - 1 ) ;
key = yon_char_divide_search ( key , " : " , - 1 ) ;
if ( i = = 0 ) videoconfig . proprietary = yon_dictionary_create_with_data ( key , rtn [ i ] ) ;
else videoconfig . proprietary = yon_dictionary_create_with_data_connected ( videoconfig . proprietary , key , rtn [ i ] ) ;
char * * rtn = yon_config_load ( get_proprietary_drivers_info_command , & size ) ;
for ( int drivers_found = 0 ; drivers_found < drivers_size ; drivers_found + + ) {
drivers [ drivers_found ] = yon_char_divide_search ( drivers [ drivers_found ] , " \n " , - 1 ) ;
for ( int i = 0 ; i < size ; i + + ) {
rtn [ i ] = yon_char_divide_search ( rtn [ i ] , " \n " , - 1 ) ;
char * key = yon_char_new ( rtn [ i ] ) ;
if ( key [ 0 ] = = ' : ' )
yon_char_divide_search ( key , " : " , - 1 ) ;
key = yon_char_divide_search ( key , " : " , - 1 ) ;
char * driver_name = yon_char_divide_search ( yon_char_new ( drivers [ drivers_found ] ) , " " , - 1 ) ;
if ( strcmp ( key , driver_name ) = = 0 )
if ( i = = 0 ) videoconfig . proprietary = yon_dictionary_create_with_data ( drivers [ drivers_found ] , rtn [ i ] ) ;
else videoconfig . proprietary = yon_dictionary_create_with_data_connected ( videoconfig . proprietary , drivers [ drivers_found ] , rtn [ i ] ) ;
}
}
}
/**void yon_gtk_list_store_fill_with_proprietaries(GtkListStore *list)
* [ EN ]
*/
void yon_gtk_list_store_fill_with_proprietaries ( GtkListStore * list ) {
dictionary * dict = NULL ;
gtk_list_store_clear ( list ) ;
for_dictionaries ( dict , videoconfig . proprietary ) {
GtkTreeIter iter ;
int size = 0 ;
config_str str = yon_char_parse ( ( char * ) dict - > data , & size , " : " ) ;
gtk_list_store_append ( list , & iter ) ;
gtk_list_store_set ( list , & iter , 1 , str [ 1 ] , 2 , str [ 2 ] , 3 , str [ 3 ] , 4 , str [ 4 ] , - 1 ) ;
gtk_list_store_set ( list , & iter , 1 , str [ 0 ] , 2 , str [ 1 ] , 3 , str [ 2 ] , 4 , str [ 3 ] , - 1 ) ;
if ( strstr ( dict - > key , " installed " ) )
gtk_list_store_set ( list , & iter , 0 , 1 , - 1 ) ;
}
}
char * yon_char_remove_brackets ( char * source ) {
if ( source ) {
char * src = yon_char_new ( source ) ;
if ( src [ 0 ] = = ' \" ' ) yon_char_divide_search ( src , " \" " , - 1 ) ;
if ( src [ strlen ( src ) - 1 ] = = ' \" ' ) src = yon_char_divide_search ( src , " \" " , - 1 ) ;
return src ;
}
return NULL ;
}
/**void yon_setup_config(char *configcommand)
* [ EN ]
*/
@ -901,35 +1008,48 @@ void yon_setup_config(char *configcommand)
videoconfig . configsize = 0 ;
videoconfig . loaded_config = yon_ubl_load_global_config ( command , & videoconfig . configsize ) ;
char * param = NULL ;
param = yon_config_get_parameter ( videoconfig . loaded_config , videoconfig . configsize , " VGADRV_AUTO " ) ;
if ( param ) {
yon_char_divide_search ( param , " = " , - 1 ) ;
if ( strcmp ( param , " " ) ! = 0 )
videoconfig . autoChooseDrivers = 1 ;
}
param = yon_config_get_parameter ( videoconfig . loaded_config , videoconfig . configsize , " FAILSAFENVIDIA " ) ;
if ( param ) {
yon_char_divide_search ( param , " = " , - 1 ) ;
if ( strcmp ( param , " " ) ! = 0 )
videoconfig . failsafenVidia = yon_char_new ( param ) ;
}
param = yon_config_get_parameter ( videoconfig . loaded_config , videoconfig . configsize , " FAILSAFEATI " ) ;
if ( param ) {
yon_char_divide_search ( param , " = " , - 1 ) ;
if ( strcmp ( param , " " ) ! = 0 )
videoconfig . failsafeATI = yon_char_new ( param ) ;
}
param = yon_config_get_parameter ( videoconfig . loaded_config , videoconfig . configsize , " OPTIRUN " ) ;
if ( param ) {
yon_char_divide_search ( param , " = " , - 1 ) ;
videoconfig . optirun = yon_char_new ( param ) ;
videoconfig . optirun = yon_char_remove_brackets ( yon_char_new ( param ) ) ;
if ( strcmp ( videoconfig . optirun , " " ) = = 0 ) videoconfig . optirun = NULL ;
}
param = yon_config_get_parameter ( videoconfig . loaded_config , videoconfig . configsize , " PRIMUSRUN " ) ;
if ( param ) {
yon_char_divide_search ( param , " = " , - 1 ) ;
videoconfig . primusrun = yon_char_new ( param ) ;
videoconfig . primusrun = yon_char_remove_brackets ( yon_char_new ( param ) ) ;
if ( strcmp ( videoconfig . primusrun , " " ) = = 0 ) videoconfig . primusrun = NULL ;
}
for ( int i = 0 ; i < videoconfig . portssize ; i + + ) {
videoconfig . ports [ i ] = yon_char_divide_search ( videoconfig . ports [ i ] , " \n " , - 1 ) ;
param = yon_config_get_parameter ( videoconfig . loaded_config , videoconfig . configsize , XORG_MONITOR ( videoconfig . ports [ i ] ) ) ;
videoconfig . monitors = yon_monitor_config_new ( videoconfig . ports [ i ] ) ;
if ( param ) {
char * leftover = yon_char_new ( param ) ;
yon_char_divide_search ( leftover , " = " , - 1 ) ;
if ( param & & strcmp ( leftover , " " ) ! = 0 ) {
videoconfig . monitors = yon_monitor_config_new ( videoconfig . ports [ i ] ) ;
yon_char_divide_search ( param , " = " , - 1 ) ;
yon_monitor_config_update ( yon_dictionary_get_data ( videoconfig . monitors , monitorconfig * ) , videoconfig . ports [ i ] , param ) ;
}
@ -942,40 +1062,6 @@ void yon_setup_config(char *configcommand)
yon_proprieary_get ( ) ;
}
driver_window * on_driver_window_open ( GtkWidget * self , GtkWidget * comboe )
{
GtkBuilder * builder = gtk_builder_new_from_file ( glade_path ) ;
driver_window * widgets = NULL ;
widgets = malloc ( sizeof ( driver_window ) ) ;
widgets - > window = yon_gtk_builder_get_widget ( builder , " ProprietaryDriverChooseWindow " ) ;
widgets - > propriearyTreeView = yon_gtk_builder_get_widget ( builder , " propriearyTreeView " ) ;
widgets - > ProprietaryDriverColumn = GTK_TREE_VIEW_COLUMN ( gtk_builder_get_object ( builder , " ProprietaryDriverColumn " ) ) ;
widgets - > ProprietaryDescriptionColumn = GTK_TREE_VIEW_COLUMN ( gtk_builder_get_object ( builder , " ProprietaryDescriptionColumn " ) ) ;
widgets - > ProprietaryCloseButton = yon_gtk_builder_get_widget ( builder , " ProprietaryCloseButton " ) ;
widgets - > ProprietaryAcceptButton = yon_gtk_builder_get_widget ( builder , " ProprietaryAcceptButton " ) ;
if ( ! videoconfig . list )
videoconfig . list = GTK_LIST_STORE ( gtk_builder_get_object ( builder , " liststore6 " ) ) ;
gtk_list_store_clear ( videoconfig . list ) ;
yon_gtk_list_store_fill_with_proprietaries ( videoconfig . list ) ;
gtk_button_set_label ( GTK_BUTTON ( widgets - > ProprietaryCloseButton ) , _ ( " Cancel " ) ) ;
gtk_button_set_label ( GTK_BUTTON ( widgets - > ProprietaryAcceptButton ) , _ ( " Accept " ) ) ;
gtk_tree_view_set_model ( GTK_TREE_VIEW ( widgets - > propriearyTreeView ) , GTK_TREE_MODEL ( videoconfig . list ) ) ;
gtk_tree_view_column_set_title ( GTK_TREE_VIEW_COLUMN ( widgets - > ProprietaryDriverColumn ) , _ ( " Installed " ) ) ;
gtk_tree_view_column_set_title ( GTK_TREE_VIEW_COLUMN ( widgets - > ProprietaryDriverColumn ) , _ ( " Package " ) ) ;
gtk_tree_view_column_set_title ( GTK_TREE_VIEW_COLUMN ( widgets - > ProprietaryDriverColumn ) , _ ( " Supported Devices " ) ) ;
gtk_tree_view_column_set_title ( GTK_TREE_VIEW_COLUMN ( widgets - > ProprietaryDriverColumn ) , _ ( " Driver " ) ) ;
gtk_tree_view_column_set_title ( GTK_TREE_VIEW_COLUMN ( widgets - > ProprietaryDescriptionColumn ) , _ ( " Description " ) ) ;
gtk_widget_show ( widgets - > window ) ;
g_signal_connect ( G_OBJECT ( widgets - > ProprietaryCloseButton ) , " clicked " , G_CALLBACK ( on_subwindow_close ) , NULL ) ;
combo_tree * trcm = NULL ;
trcm = malloc ( sizeof ( combo_tree ) ) ;
trcm - > combo = comboe ;
trcm - > tree = widgets - > propriearyTreeView ;
g_signal_connect ( G_OBJECT ( widgets - > ProprietaryAcceptButton ) , " clicked " , G_CALLBACK ( on_save_driver_configuration ) , trcm ) ;
}
/** monitor_config yon_monitor_config_new(char *port)
* [ EN ]
*/
@ -1037,8 +1123,12 @@ void yon_monitor_config_update(monitorconfig* monitor, char *port, char *config_
monitor - > position = 3 ;
if ( yon_char_parsed_check_exist ( cnf , size , " ab: " ) ! = - 1 )
monitor - > position = 3 ;
if ( yon_char_parsed_check_exist ( cnf , size , " rotate: " ) ! = - 1 )
monitor - > rotation = 0 ;
if ( yon_char_parsed_check_exist ( cnf , size , " rotate:left " ) ! = - 1 )
monitor - > rotation = 1 ;
if ( yon_char_parsed_check_exist ( cnf , size , " rotate:right " ) ! = - 1 )
monitor - > rotation = 2 ;
if ( yon_char_parsed_check_exist ( cnf , size , " rotate:invert " ) ! = - 1 )
monitor - > rotation = 3 ;
if ( yon_char_parsed_check_exist ( cnf , size , " dpms " ) ! = - 1 )
monitor - > dpms = 1 ;
if ( yon_char_parsed_check_exist ( cnf , size , " nodpms " ) ! = - 1 )
@ -1047,21 +1137,25 @@ void yon_monitor_config_update(monitorconfig* monitor, char *port, char *config_
monitor - > cvt = 1 ;
if ( yon_char_parsed_check_exist ( cnf , size , " reduced " ) ! = - 1 )
monitor - > reduced = 1 ;
if ( yon_char_parsed_check_exist ( cnf , size , " r " ) ! = - 1 )
if ( yon_char_parsed_check_exist ( cnf , size , " r , " ) ! = - 1 )
monitor - > reduced = 1 ;
if ( yon_char_parsed_check_exist ( cnf , size , " gtf " ) ! = - 1 )
monitor - > gtf = 1 ;
}
}
int yon_char_get_if_resolution ( char * parsed_string ) {
char * left = NULL , * right = NULL ;
right = yon_char_new ( parsed_string ) ;
left = yon_char_divide_search ( right , " x " , 1 ) ;
if ( left & & right )
if ( atoi ( left ) & & atoi ( right ) )
return 1 ;
return 0 ;
char * yon_char_parsed_get_resolution ( config_str parsed_string , int size ) {
char * left = NULL , * right = NULL , * freq = NULL ;
for ( int i = 0 ; i < size ; i + + ) {
right = yon_char_new ( parsed_string [ i ] ) ;
left = yon_char_divide_search ( right , " x " , 1 ) ;
if ( freq = strstr ( left , " x " ) )
left = yon_char_divide_search ( left , " x " , - 1 ) ;
if ( left & & right )
if ( atoi ( left ) & & atoi ( right ) )
return parsed_string [ i ] ;
}
return NULL ;
}
void yon_monitor_view_new ( monitor_config monitor ) {
@ -1142,6 +1236,42 @@ void yon_monitor_set_resolutions(){
}
void yon_adapter_window_setup ( widgets_dict * widgets ) {
int size = 0 ;
gtk_overlay_add_overlay ( GTK_OVERLAY ( widgets - > InformationOverlay ) , widgets - > InformationCompanyLogoImage ) ;
config_str rtn = yon_config_load ( get_adapter_info , & size ) ;
char * desc = yon_config_get_parameter ( rtn , size , " description " ) ;
yon_char_divide_search ( desc , " = " , - 1 ) ;
char * product = yon_config_get_parameter ( rtn , size , " product " ) ;
yon_char_divide_search ( product , " = " , - 1 ) ;
char * vendor = yon_config_get_parameter ( rtn , size , " vendor " ) ;
yon_char_divide_search ( vendor , " = " , - 1 ) ;
char * driver_use = yon_config_get_parameter ( rtn , size , " Kernel_driver_in_use " ) ;
yon_char_divide_search ( driver_use , " = " , - 1 ) ;
char * driver_all = yon_config_get_parameter ( rtn , size , " Kernel_modules " ) ;
yon_char_divide_search ( driver_all , " = " , - 1 ) ;
char * final_text = yon_char_unite ( " <span size= \" 12pt \" ><span weight='bold' color='#1a5fb4'> " , DESCRIPTION_LABEL , " :</span> " , _ ( desc ) ,
" \n <span weight='bold' color='#1a5fb4'> " , VENDOR_LABEL , " :</span> " , vendor ,
" \n <span weight='bold' color='#1a5fb4'> " , MODEL_LABEL , " :</span> " , product ,
" \n <span weight='bold' color='#1a5fb4'> " , USED_KERNEL_DRIVER_LABEL , " :</span> " , driver_use ,
" \n <span weight='bold' color='#1a5fb4'> " , AVALIABLE_KERNEL_DRIVERS_LABEL , " :</span> " , driver_all , " </span> " , NULL ) ;
gtk_label_set_markup ( GTK_LABEL ( gtk_builder_get_object ( widgets - > builder , " InformationLabel " ) ) , final_text ) ;
if ( strcmp ( vendor , " Intel Corporation " ) = = 0 ) {
GtkIconTheme * icthm = gtk_icon_theme_get_default ( ) ;
gtk_image_set_from_pixbuf ( GTK_IMAGE ( widgets - > InformationCompanyLogoImage ) , gtk_icon_info_load_icon ( gtk_icon_theme_lookup_icon_for_scale ( icthm , " com.ublinux.ubl-settings-video.intel-logo " , 64 , 1 , GTK_ICON_LOOKUP_FORCE_SVG ) , NULL ) ) ;
}
else if ( strcmp ( vendor , " NVidia Corporation " ) = = 0 ) {
GtkIconTheme * icthm = gtk_icon_theme_get_default ( ) ;
gtk_image_set_from_pixbuf ( GTK_IMAGE ( widgets - > InformationCompanyLogoImage ) , gtk_icon_info_load_icon ( gtk_icon_theme_lookup_icon_for_scale ( icthm , " com.ublinux.ubl-settings-video.nvidia-logo " , 64 , 1 , GTK_ICON_LOOKUP_FORCE_SVG ) , NULL ) ) ;
}
else if ( strcmp ( vendor , " AMD Corporation " ) = = 0 ) {
GtkIconTheme * icthm = gtk_icon_theme_get_default ( ) ;
gtk_image_set_from_pixbuf ( GTK_IMAGE ( widgets - > InformationCompanyLogoImage ) , gtk_icon_info_load_icon ( gtk_icon_theme_lookup_icon_for_scale ( icthm , " com.ublinux.ubl-settings-video.amd-logo " , 64 , 1 , GTK_ICON_LOOKUP_FORCE_SVG ) , NULL ) ) ;
}
else {
gtk_widget_destroy ( widgets - > InformationCompanyLogoImage ) ;
}
}
/** void yon_setup_widgets(widgets_dict *widgets)
* [ EN ]
* Sets up every element on main window
@ -1224,6 +1354,7 @@ void yon_setup_widgets(widgets_dict *widgets)
widgets - > driversInfoButton = yon_gtk_builder_get_widget ( widgets - > builder , " driversInfoButton " ) ;
widgets - > driversDeleteButton = yon_gtk_builder_get_widget ( widgets - > builder , " driversDeleteButton " ) ;
widgets - > driversInstallButton = yon_gtk_builder_get_widget ( widgets - > builder , " driversInstallButton " ) ;
widgets - > TerminalOverlay = yon_gtk_builder_get_widget ( widgets - > builder , " TerminalOverlay " ) ;
widgets - > driversTreeSelection = GTK_TREE_SELECTION ( gtk_builder_get_object ( widgets - > builder , " driversTreeSelection " ) ) ;
widgets - > proprietartInstalledColumn = GTK_TREE_VIEW_COLUMN ( gtk_builder_get_object ( widgets - > builder , " proprietartInstalledColumn " ) ) ;
@ -1232,6 +1363,15 @@ void yon_setup_widgets(widgets_dict *widgets)
widgets - > ProprietaryDescriptionColumn = GTK_TREE_VIEW_COLUMN ( gtk_builder_get_object ( widgets - > builder , " ProprietaryDescriptionColumn " ) ) ;
widgets - > ProprietarySupportedColumn = GTK_TREE_VIEW_COLUMN ( gtk_builder_get_object ( widgets - > builder , " ProprietarySupportedColumn " ) ) ;
widgets - > DriverModulesTab = GTK_WIDGET ( gtk_builder_get_object ( widgets - > builder , " DriverModulesTab " ) ) ;
widgets - > DriversTab = GTK_WIDGET ( gtk_builder_get_object ( widgets - > builder , " DriversTab " ) ) ;
widgets - > MainTabLabel = GTK_WIDGET ( gtk_builder_get_object ( widgets - > builder , " MainTabLabel " ) ) ;
widgets - > DriversTabLabel = GTK_WIDGET ( gtk_builder_get_object ( widgets - > builder , " DriversTabLabel " ) ) ;
widgets - > InformationTabLabel = GTK_WIDGET ( gtk_builder_get_object ( widgets - > builder , " InformationTabLabel " ) ) ;
widgets - > InformationFrameLabel = GTK_WIDGET ( gtk_builder_get_object ( widgets - > builder , " InformationFrameLabel " ) ) ;
widgets - > InformationOverlay = GTK_WIDGET ( gtk_builder_get_object ( widgets - > builder , " InformationOverlay " ) ) ;
widgets - > InformationCompanyLogoImage = GTK_WIDGET ( gtk_builder_get_object ( widgets - > builder , " InformationCompanyLogoImage " ) ) ;
widgets - > driverInstalledColumn = GTK_TREE_VIEW_COLUMN ( gtk_builder_get_object ( widgets - > builder , " driverInstalledColumn " ) ) ;
widgets - > driverPackageColumn = GTK_TREE_VIEW_COLUMN ( gtk_builder_get_object ( widgets - > builder , " driverPackageColumn " ) ) ;
widgets - > driverDriverColumn = GTK_TREE_VIEW_COLUMN ( gtk_builder_get_object ( widgets - > builder , " driverDriverColumn " ) ) ;
@ -1273,60 +1413,59 @@ void yon_setup_widgets(widgets_dict *widgets)
g_signal_connect ( G_OBJECT ( widgets - > mainHeaderSaveGlobalMenuItem ) , " activate " , G_CALLBACK ( on_configuration_save_global ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > mainHeaderSaveLocalMenuItem ) , " activate " , G_CALLBACK ( on_configuration_save_local ) , widgets ) ;
gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT ( widgets - > mainDriverFailsafeNvidiaCombo ) , _ ( " Off " ) ) ;
gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT ( widgets - > mainDriverFailsafeNvidiaCombo ) , _ ( " fbdev " ) ) ;
gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT ( widgets - > mainDriverFailsafeAMDCombo ) , _ ( " Off " ) ) ;
gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT ( widgets - > mainDriverFailsafeAMDCombo ) , _ ( " fbdev " ) ) ;
gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT ( widgets - > mainExtraFixGapCombo ) , _ ( " 1st variant. May cause perfomance drops in video games " ) ) ;
gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT ( widgets - > mainExtraFixGapCombo ) , _ ( " 2nd variant. May not work on specific video cards " ) ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > headInfoLabel ) , _ ( " Video output configuration " ) ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > mainDriverFailsafeNvidiaLabel ) , _ ( " Failsafe driver nVidia: " ) ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > mainDriverFailsafeAMDLabel ) , _ ( " Failsafe driver AMD/ATI: " ) ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > mainDriverFrameLabel ) , _ ( " Driver " ) ) ;
// gtk_label_set_text(GTK_LABEL(widgets->monitorConfigurationMethodLabel),_("Configuration method"));
gtk_label_set_text ( GTK_LABEL ( widgets - > mainMonitorConfigurationFrameLabel ) , _ ( " Monitor configuration " ) ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > mainHybridGraphicsFrameLabel ) , _ ( " Hybrid graphics " ) ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > mainExtraFixGapLabel ) , _ ( " Fix frame gap (nVidia) " ) ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > mainExtraFrameLabel ) , _ ( " Extra " ) ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > mainHeaderTitleLabel ) , _ ( " UBlinux Video Configuration " ) ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > mainHeaderConfigLoadLabel ) , _ ( " Load " ) ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > mainHeaderSaveConfigurationLabel ) , _ ( " Save " ) ) ;
gtk_button_set_label ( GTK_BUTTON ( widgets - > mainHybridGraphicsDiscreteCheck ) , _ ( " On " ) ) ;
gtk_button_set_label ( GTK_BUTTON ( widgets - > mainDriverAutomaticallyChooseCheck ) , _ ( " Automatically choose and use driver " ) ) ;
gtk_button_set_label ( GTK_BUTTON ( widgets - > mainExtraLaunchOptirunCheck ) , _ ( " Launch programms through optirun (nVidia): " ) ) ;
gtk_button_set_label ( GTK_BUTTON ( widgets - > mainExtraLaunchPrismusunCheck ) , _ ( " Launch programs through primusun (nVidia): " ) ) ;
gtk_button_set_label ( GTK_BUTTON ( widgets - > mainHybridGraphicsDiscreteCheck ) , _ ( " discrete video only (AMD/ATI) " ) ) ;
gtk_menu_item_set_label ( GTK_MENU_ITEM ( widgets - > mainHeaderLoadGlobalMenuItem ) , _ ( " Load from global configuration " ) ) ;
gtk_menu_item_set_label ( GTK_MENU_ITEM ( widgets - > mainHeaderLoadLocalMenuItem ) , _ ( " Load from local configuration " ) ) ;
gtk_menu_item_set_label ( GTK_MENU_ITEM ( widgets - > mainHeaderSaveGlobalLocalMenuItem ) , _ ( " Save to global an local configuration " ) ) ;
gtk_menu_item_set_label ( GTK_MENU_ITEM ( widgets - > mainHeaderSaveGlobalMenuItem ) , _ ( " Save to global configuration " ) ) ;
gtk_menu_item_set_label ( GTK_MENU_ITEM ( widgets - > mainHeaderSaveLocalMenuItem ) , _ ( " Save to local configuration " ) ) ;
gtk_menu_item_set_label ( GTK_MENU_ITEM ( widgets - > mainHeaderSettingsDocumentationMenuItem ) , _ ( " Documentation " ) ) ;
gtk_menu_item_set_label ( GTK_MENU_ITEM ( widgets - > mainHeaderSettingsAboutMenuItem ) , _ ( " About " ) ) ;
gtk_tree_view_column_set_title ( GTK_TREE_VIEW_COLUMN ( widgets - > ProprietaryDriverColumn ) , _ ( " Installed " ) ) ;
gtk_tree_view_column_set_title ( GTK_TREE_VIEW_COLUMN ( widgets - > ProprietaryDriverColumn ) , _ ( " Package " ) ) ;
gtk_tree_view_column_set_title ( GTK_TREE_VIEW_COLUMN ( widgets - > ProprietaryDriverColumn ) , _ ( " Supported Devices " ) ) ;
gtk_tree_view_column_set_title ( GTK_TREE_VIEW_COLUMN ( widgets - > ProprietaryDriverColumn ) , _ ( " Driver " ) ) ;
gtk_tree_view_column_set_title ( GTK_TREE_VIEW_COLUMN ( widgets - > ProprietaryDescriptionColumn ) , _ ( " Description " ) ) ;
// gtk_button_set_label(GTK_BUTTON(widgets->mainExtraLaunchThroughButton),_("Change"));
gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT ( widgets - > mainDriverFailsafeNvidiaCombo ) , OFF_LABEL ) ;
gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT ( widgets - > mainDriverFailsafeNvidiaCombo ) , FBDEV_LABEL ) ;
gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT ( widgets - > mainDriverFailsafeAMDCombo ) , OFF_LABEL ) ;
gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT ( widgets - > mainDriverFailsafeAMDCombo ) , FBDEV_LABEL ) ;
gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT ( widgets - > mainExtraFixGapCombo ) , GAP_FIX_1_LABEL ) ;
gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT ( widgets - > mainExtraFixGapCombo ) , GAP_FIX_2_LABEL ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > headInfoLabel ) , HEADER_LABEL ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > mainDriverFailsafeNvidiaLabel ) , FAILSAFE_NVIDIA_LABEL ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > mainDriverFailsafeAMDLabel ) , FAILSAFE_ATI_LABEL ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > mainDriverFrameLabel ) , DRIVER_LABEL ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > mainMonitorConfigurationFrameLabel ) , MONITOR_CONFIGURATION_LABEL ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > mainHybridGraphicsFrameLabel ) , HYBRID_GRAPHICS_LABEL ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > mainExtraFixGapLabel ) , FIX_GAP_LABEL ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > mainExtraFrameLabel ) , EXTRA_LABEL ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > mainHeaderTitleLabel ) , TITLE_LABEL ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > mainHeaderConfigLoadLabel ) , LOAD_LABEL ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > mainHeaderSaveConfigurationLabel ) , SAVE_LABEL ) ;
gtk_button_set_label ( GTK_BUTTON ( widgets - > mainHybridGraphicsDiscreteCheck ) , ON_LABEL ) ;
gtk_button_set_label ( GTK_BUTTON ( widgets - > mainDriverAutomaticallyChooseCheck ) , AUTO_CHOOSE_DRIVERS_LABEL ) ;
gtk_button_set_label ( GTK_BUTTON ( widgets - > mainExtraLaunchOptirunCheck ) , LAUNCH_OPTIRUN_LABEL ) ;
gtk_button_set_label ( GTK_BUTTON ( widgets - > mainExtraLaunchPrismusunCheck ) , LAUNCH_PRIMUSRUN_LABEL ) ;
gtk_button_set_label ( GTK_BUTTON ( widgets - > mainHybridGraphicsDiscreteCheck ) , DISCRETE_ONLY_LABEL ) ;
gtk_menu_item_set_label ( GTK_MENU_ITEM ( widgets - > mainHeaderLoadGlobalMenuItem ) , LOAD_GLOBAL_LABEL ) ;
gtk_menu_item_set_label ( GTK_MENU_ITEM ( widgets - > mainHeaderLoadLocalMenuItem ) , LOAD_LOCAL_LABEL ) ;
gtk_menu_item_set_label ( GTK_MENU_ITEM ( widgets - > mainHeaderSaveGlobalLocalMenuItem ) , SAVE_GLOBAL_LOCAL_LABEL ) ;
gtk_menu_item_set_label ( GTK_MENU_ITEM ( widgets - > mainHeaderSaveGlobalMenuItem ) , SAVE_GLOBAL_LABEL ) ;
gtk_menu_item_set_label ( GTK_MENU_ITEM ( widgets - > mainHeaderSaveLocalMenuItem ) , SAVE_LOCAL_LABEL ) ;
gtk_menu_item_set_label ( GTK_MENU_ITEM ( widgets - > mainHeaderSettingsDocumentationMenuItem ) , DOCUMENTATION_LABEL ) ;
gtk_menu_item_set_label ( GTK_MENU_ITEM ( widgets - > mainHeaderSettingsAboutMenuItem ) , ABOUT_LABEL ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > DriverModulesTab ) , DRIVER_MODULES_LABEL ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > DriversTab ) , DRIVERS_LABEL ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > MainTabLabel ) , MAIN_SETTINGS_LABEL ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > DriversTabLabel ) , DRIVERS_LABEL ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > InformationTabLabel ) , INFORMATION_LABEL ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > InformationFrameLabel ) , DEVICES_DRIVERS_LABEL ) ;
gtk_tree_view_column_set_title ( GTK_TREE_VIEW_COLUMN ( widgets - > ProprietaryDriverColumn ) , INSTALLED_LABEL ) ;
gtk_tree_view_column_set_title ( GTK_TREE_VIEW_COLUMN ( widgets - > ProprietaryDriverColumn ) , PACKAGE_LABEL ) ;
gtk_tree_view_column_set_title ( GTK_TREE_VIEW_COLUMN ( widgets - > ProprietaryDriverColumn ) , SUPPORTED_LABEL ) ;
gtk_tree_view_column_set_title ( GTK_TREE_VIEW_COLUMN ( widgets - > ProprietaryDriverColumn ) , DRIVER_LABEL ) ;
gtk_tree_view_column_set_title ( GTK_TREE_VIEW_COLUMN ( widgets - > ProprietaryDescriptionColumn ) , DESCRIPTION_LABEL ) ;
yon_ubl_header_setup ( widgets - > mainHeadOverlay , widgets - > headBox , widgets - > mainHeadBackgroundImage , banner_path ) ;
// gtk_overlay_add_overlay(GTK_OVERLAY(widgets->mainHeadOverlay),widgets->headBox);
yon_monitor_view_setup ( widgets - > mainMonitorVisualConfigurationBox ) ;
yon_monitor_view_update ( ) ;
videoconfig . status_render . icon = widgets - > mainStatusIcon ;
videoconfig . status_render . label = widgets - > mainStatusLabel ;
videoconfig . status_render . box = widgets - > mainStatusBox ;
// gtk_image_set_from_file(GTK_IMAGE(widgets->mainHeadBackgroundImage),banner_path);
// MonitorSettings *monitors = yon_setup_monitor_settings();
// videoconfig.monitors=yon_dictionary_pack_monitors(monitors,yon_check_for_monitors());
// widgets->overlays = yon_dictionary_pack_overlays(monitors);
// yon_dictionary_gtk_pack_start_multiple_widgets(widgets->overlays, widgets->mainMonitorVisualConfigurationBox, 0, 0, 0);
// yon_dictionary_gtk_pack_start_multiple_widgets(widgets->monitors,widgets->mainMonitorConfigurationBox,0,0,0);
}
int main ( int argc , char * argv [ ] )
@ -1341,6 +1480,7 @@ int main(int argc, char *argv[])
widgets_dict widgets ;
yon_setup_widgets ( & widgets ) ;
yon_gtk_list_store_fill_with_proprietaries ( videoconfig . list ) ;
yon_gtk_list_store_fill_with_proprietaries ( videoconfig . modulelist ) ;
gtk_widget_show ( widgets . MainWindow ) ;
// yon_fill_ui(&widgets);
videoconfig . status_render . text_to_render = LOCAL_LOAD_SUCCESS ;
@ -1348,11 +1488,13 @@ int main(int argc, char *argv[])
yon_ubl_status_box_render ( & videoconfig . status_render ) ;
on_config_fill_interface ( & widgets ) ;
yon_monitor_set_resolutions ( ) ;
yon_adapter_window_setup ( & widgets ) ;
GtkCssProvider * css = gtk_css_provider_new ( ) ;
gtk_css_provider_load_from_path ( css , CssPath , NULL ) ;
gtk_style_context_add_provider_for_screen ( gdk_screen_get_default ( ) ,
GTK_STYLE_PROVIDER ( css ) ,
- 1 ) ;
yon_monitor_view_update ( ) ;
gtk_main ( ) ;
return 0 ;
}