|
|
|
|
@ -53,7 +53,7 @@ void on_plug_removed(GtkSocket* self, actionWidgets *widgets){
|
|
|
|
|
gtk_widget_set_vexpand(widgets->socketplace,0);
|
|
|
|
|
gtk_widget_set_vexpand(widgets->HideWhileLaunch,1);
|
|
|
|
|
//printf("Plug has been removed!\n\n\n");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void on_Item_activated(GtkIconView* self, GtkTreePath* path, actionWidgets *applist){
|
|
|
|
|
@ -88,6 +88,12 @@ void on_gnome_Item_activated(GtkIconView* self, GtkTreePath* path, actionWidgets
|
|
|
|
|
gtk_widget_destroy(applist->socket);
|
|
|
|
|
}
|
|
|
|
|
applist->socket=create_socket(applist);
|
|
|
|
|
char *socket_id=malloc(sizeof(gtk_socket_get_id(GTK_SOCKET(applist->socket)))/sizeof(int));
|
|
|
|
|
sprintf(socket_id,"%d",gtk_socket_get_id(GTK_SOCKET(applist->socket)));
|
|
|
|
|
socket_id=yon_char_get_augumented("../ubl-info/ubl-info-bin --socket-id=",socket_id);
|
|
|
|
|
socket_id=yon_char_get_augumented(socket_id," &");
|
|
|
|
|
system(socket_id);
|
|
|
|
|
|
|
|
|
|
gtk_tree_model_get_iter(gtk_icon_view_get_model(self),&iter,path);
|
|
|
|
|
gtk_tree_model_get(gtk_icon_view_get_model(self),&iter,1,&name,-1);
|
|
|
|
|
|
|
|
|
|
@ -212,6 +218,7 @@ int on_settings_accept(GtkWidget *button, dictionary **widgetsDs){
|
|
|
|
|
load_apps_with_clear(IV,widgets->applist,widgets->appssize);
|
|
|
|
|
}
|
|
|
|
|
g_key_file_save_to_file(gfile,ConfigPath,NULL);
|
|
|
|
|
//gtk_widget_hide(widgets->SettingsWindow);
|
|
|
|
|
gtk_window_present(GTK_WINDOW(widgets->SettingsWindow));
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
@ -279,6 +286,10 @@ int on_settings_cancel(GtkWidget *button, actionWidgets *widgets){
|
|
|
|
|
setup_config();
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
void on_caution_understand(GtkWidget *button,actionWidgets *widgets){
|
|
|
|
|
gtk_widget_hide(widgets->CautionWindow);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void on_section_settings_open(GtkButton* self,dictionary *cWidgets){
|
|
|
|
|
actionWidgets *widgets=(actionWidgets*)cWidgets->data;
|
|
|
|
|
if (widgets->SettingsSections==NULL){
|
|
|
|
|
@ -558,28 +569,37 @@ void on_resized (GtkWidget *window, GdkEventConfigure *event, dictionary *widget
|
|
|
|
|
if (main_config.windowWidth<1024){
|
|
|
|
|
if (stld==0){
|
|
|
|
|
stld=1;
|
|
|
|
|
char *details=gtk_label_get_label(GTK_LABEL(widgets->GnomeInfoDetailsLabel));
|
|
|
|
|
//gtk_window_set_resizable(GTK_WINDOW(window),0);
|
|
|
|
|
// yon_switch_theme(&widgetsD,yon_dictionary_find(&widgetsD,"Main"));
|
|
|
|
|
details[12]='0';
|
|
|
|
|
details[13]='9';
|
|
|
|
|
printf("SSSSS\n");
|
|
|
|
|
gtk_label_set_markup(GTK_LABEL(widgets->GnomeInfoDetailsLabel),details);
|
|
|
|
|
GtkWidget *logo = gtk_builder_get_object(widgets->builder,"GnomeInfoLogo");
|
|
|
|
|
gtk_image_set_from_pixbuf(GTK_IMAGE(logo),gdk_pixbuf_new_from_file_at_scale(LogoPath,256,256,1,NULL));
|
|
|
|
|
// gtk_window_resize(GTK_WINDOW(widgets->window),main_config.windowWidth,main_config.windowHeight);
|
|
|
|
|
// gtk_widget_hide(widgets->window);
|
|
|
|
|
main_config.WindowTheme=0;
|
|
|
|
|
// char *details=gtk_label_get_label(GTK_LABEL(widgets->GnomeInfoDetailsLabel));
|
|
|
|
|
gtk_window_set_resizable(GTK_WINDOW(window),0);
|
|
|
|
|
gtk_window_get_position(GTK_WINDOW(window),&main_config.windowPosX,&main_config.windowPosY);
|
|
|
|
|
gtk_window_get_size(GTK_WINDOW(window),&main_config.windowWidth,&main_config.windowHeight);
|
|
|
|
|
yon_switch_theme(&widgetsD,yon_dictionary_find(&widgetsD,"Main"));
|
|
|
|
|
main_config.iconsize=24;
|
|
|
|
|
|
|
|
|
|
for (dictionary *dict=widgets->ICSys->first;dict!=NULL;dict=dict->next){
|
|
|
|
|
IVGraphicals *IV=(IVGraphicals*)dict->data;
|
|
|
|
|
load_apps_with_clear(IV,widgets->applist,widgets->appssize);
|
|
|
|
|
}
|
|
|
|
|
// details[12]='0';
|
|
|
|
|
// details[13]='9';
|
|
|
|
|
// printf("SSSSS\n");
|
|
|
|
|
// gtk_label_set_markup(GTK_LABEL(widgets->GnomeInfoDetailsLabel),details);
|
|
|
|
|
// GtkWidget *logo = gtk_builder_get_object(widgets->builder,"GnomeInfoLogo");
|
|
|
|
|
// gtk_image_set_from_pixbuf(GTK_IMAGE(logo),gdk_pixbuf_new_from_file_at_scale(LogoPath,256,256,1,NULL));
|
|
|
|
|
gtk_window_resize(GTK_WINDOW(widgets->window),main_config.windowWidth,main_config.windowHeight);
|
|
|
|
|
gtk_widget_hide(widgets->window);
|
|
|
|
|
}
|
|
|
|
|
}else {
|
|
|
|
|
if (stld==1){
|
|
|
|
|
stld=0;
|
|
|
|
|
char *details=gtk_label_get_label(GTK_LABEL(widgets->GnomeInfoDetailsLabel));
|
|
|
|
|
details[12]='1';
|
|
|
|
|
details[13]='2';
|
|
|
|
|
printf("SSSSS\n");
|
|
|
|
|
gtk_label_set_markup(GTK_LABEL(widgets->GnomeInfoDetailsLabel),details);
|
|
|
|
|
GtkWidget *logo = gtk_builder_get_object(widgets->builder,"GnomeInfoLogo");
|
|
|
|
|
gtk_image_set_from_pixbuf(GTK_IMAGE(logo),gdk_pixbuf_new_from_file_at_scale(LogoPath,512,512,1,NULL));
|
|
|
|
|
// char *details=gtk_label_get_label(GTK_LABEL(widgets->GnomeInfoDetailsLabel));
|
|
|
|
|
// details[12]='1';
|
|
|
|
|
// details[13]='2';
|
|
|
|
|
// printf("SSSSS\n");
|
|
|
|
|
// gtk_label_set_markup(GTK_LABEL(widgets->GnomeInfoDetailsLabel),details);
|
|
|
|
|
// GtkWidget *logo = gtk_builder_get_object(widgets->builder,"GnomeInfoLogo");
|
|
|
|
|
// gtk_image_set_from_pixbuf(GTK_IMAGE(logo),gdk_pixbuf_new_from_file_at_scale(LogoPath,512,512,1,NULL));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -588,12 +608,8 @@ void on_resized (GtkWidget *window, GdkEventConfigure *event, dictionary *widget
|
|
|
|
|
void on_resized_done (GtkWidget *window, GdkEvent *event, dictionary *widgetsD){
|
|
|
|
|
actionWidgets *widgets=(actionWidgets*)widgetsD->data;
|
|
|
|
|
if (event->type==GDK_CONFIGURE){
|
|
|
|
|
int x,y;
|
|
|
|
|
gtk_window_get_size(GTK_WINDOW(window),&x,&y);
|
|
|
|
|
if (x<1024&&y<720){
|
|
|
|
|
if (stld==1){
|
|
|
|
|
gtk_window_set_resizable(GTK_WINDOW(window),1);
|
|
|
|
|
printf("AAAAA\n");
|
|
|
|
|
// gtk_widget_hide(widgets->window);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -963,27 +979,6 @@ int setup_config(){
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
int yon_theme_copy_undependent(actionWidgets *source, actionWidgets *dest){
|
|
|
|
|
dest->DialogOpenDocumentation=source->DialogOpenDocumentation;
|
|
|
|
|
dest->CancelHelpButton=source->CancelHelpButton;
|
|
|
|
|
dest->ReadHelpButton=source->ReadHelpButton;
|
|
|
|
|
dest->AlwaysOpenDocumentation=source->AlwaysOpenDocumentation;
|
|
|
|
|
dest->helpHeader=source->helpHeader;
|
|
|
|
|
dest->helpText=source->helpText;
|
|
|
|
|
dest->appSettings=source->appSettings;
|
|
|
|
|
dest->SettingsWindow=source->SettingsWindow;
|
|
|
|
|
dest->settingsSizeSlider=source->settingsSizeSlider;
|
|
|
|
|
dest->settingsThemeChooser=source->settingsThemeChooser;
|
|
|
|
|
dest->settingsCancel=source->settingsCancel;
|
|
|
|
|
dest->settingsAccept=source->settingsAccept;
|
|
|
|
|
dest->MenuItemSettings=source->MenuItemSettings;
|
|
|
|
|
dest->MenuItemDocumentation=source->MenuItemDocumentation;
|
|
|
|
|
dest->LabelTitle=source->LabelTitle;
|
|
|
|
|
dest->settingsSubmenuLabelSize=source->settingsSubmenuLabelSize;
|
|
|
|
|
dest->settingsSubmenuLabelTheme=source->settingsSubmenuLabelTheme;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
char *yon_cut(char *source, int size, int startpos){
|
|
|
|
|
char *cut=NULL;
|
|
|
|
|
cut=malloc(size+1);
|
|
|
|
|
@ -1132,7 +1127,9 @@ dictionary *yon_section_new(dictionary *section, char *section_name, char *categ
|
|
|
|
|
void yon_icv_resize_item(dictionary *icdict, GtkWidget *paned){
|
|
|
|
|
for (dictionary *dict=icdict->first;dict!=NULL;dict=dict->next){
|
|
|
|
|
IVGraphicals *icv=(IVGraphicals*)dict->data;
|
|
|
|
|
gtk_icon_view_set_item_width(GTK_ICON_VIEW(icv->IV),gtk_paned_get_position(GTK_PANED(paned)));
|
|
|
|
|
int width=gtk_paned_get_position(GTK_PANED(paned));
|
|
|
|
|
if (width < 115) width=115;
|
|
|
|
|
gtk_icon_view_set_item_width(GTK_ICON_VIEW(icv->IV),width);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -1184,6 +1181,7 @@ void yon_switch_theme(dictionary **dict, dictionary *newone){
|
|
|
|
|
gdk_monitor_get_workarea(gdk_display_get_monitor(gdk_screen_get_display(gtk_window_get_screen(GTK_WINDOW(widgets->window))),0),&workarea);
|
|
|
|
|
gtk_window_get_size(GTK_WINDOW(widgets->window),&x, &y);
|
|
|
|
|
if (workarea.width<1024&&workarea.height<720||x<1024&&y<720){
|
|
|
|
|
gtk_widget_show(widgets->CautionWindow);
|
|
|
|
|
dictionary *founddict=yon_dictionary_find(dict,"Main");
|
|
|
|
|
dct=yon_dictionary_find(dict,"Gnome");
|
|
|
|
|
yon_switch_theme(&dct,founddict);
|
|
|
|
|
@ -1192,6 +1190,7 @@ void yon_switch_theme(dictionary **dict, dictionary *newone){
|
|
|
|
|
main_config.WindowTheme=0;
|
|
|
|
|
main_config.curThemeName="Main";
|
|
|
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->settingsThemeChooser),0);
|
|
|
|
|
gtk_window_present(GTK_WINDOW(widgets->CautionWindow));
|
|
|
|
|
} else{
|
|
|
|
|
main_config.WindowTheme=1;
|
|
|
|
|
main_config.curThemeName="Gnome";
|
|
|
|
|
@ -1374,63 +1373,25 @@ dictionary *yon_theme_new(dictionary **widgetss, GtkBuilder *builder, char *them
|
|
|
|
|
curWidgets->GnomeInfoDetailsLabel=GTK_WIDGET(gtk_builder_get_object(curWidgets->builder,yon_char_get_augumented(theme_id,"InfoDetailsLabel")));
|
|
|
|
|
curWidgets->SettingsSections=NULL;
|
|
|
|
|
gtk_style_context_add_class(gtk_widget_get_style_context(curWidgets->icvpack),"iconview");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (curWidgets->GnomeInfoLabel!=NULL&&curWidgets->GnomeInfoDetailsLabel!=NULL){
|
|
|
|
|
FILE *fp;
|
|
|
|
|
char path[1035];
|
|
|
|
|
char *loc=setlocale(LC_ALL,NULL);
|
|
|
|
|
if (strcmp(loc,"ru_RU.UTF-8")==0)
|
|
|
|
|
fp = popen("screenfetch -N -n | sed 's/OS:/Система:/' | sed 's/Kernel:/Ядро:/g' | sed 's/Uptime:/Время работы:/g' | \
|
|
|
|
|
sed 's/Packages:/Установлено пакетов:/g' | sed 's/Shell:/Оболочка:/g' | sed 's/Resolution:/Разрешение:/g' | sed 's/DE:/Среда рабочего стола:/g' | \
|
|
|
|
|
sed 's/WM:/Оконный менеджер:/g' | sed 's/WM Theme:/Тема оконного менеджера:/g' | sed 's/GTK Theme:/Тема GTK:/g' | sed 's/Icon Theme:/Тема значков:/g' | sed 's/Font:/Шрифт:/g' | \
|
|
|
|
|
sed 's/Disk:/Диск:/g' | sed 's/RAM:/Оперативная память:/g'", "r");
|
|
|
|
|
else fp = popen("screenfetch -n -w -N", "r");
|
|
|
|
|
if (fp == NULL) {
|
|
|
|
|
printf("Failed to run command\n" );
|
|
|
|
|
exit(1);
|
|
|
|
|
}
|
|
|
|
|
char *line=NULL;
|
|
|
|
|
line="";
|
|
|
|
|
char *prevline="";
|
|
|
|
|
char *pth;
|
|
|
|
|
char *preph="";
|
|
|
|
|
line="";
|
|
|
|
|
while (fgets(path, sizeof(path),fp)!=NULL){
|
|
|
|
|
|
|
|
|
|
line=strstr(path,": ");
|
|
|
|
|
if (line!=NULL){
|
|
|
|
|
int size=strlen(path)-strlen(line);
|
|
|
|
|
pth=yon_cut(path,size,0);
|
|
|
|
|
pth=yon_char_get_augumented("<span color='#1a5fb4'>",pth);
|
|
|
|
|
pth=yon_char_get_augumented(pth,"</span>");
|
|
|
|
|
line=yon_char_get_augumented(pth,line);
|
|
|
|
|
} else {
|
|
|
|
|
line=path;
|
|
|
|
|
pth="<span size=\"12pt\">\n";
|
|
|
|
|
line=yon_char_get_augumented(pth,line);
|
|
|
|
|
}
|
|
|
|
|
prevline=yon_char_get_augumented(prevline,line);
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
prevline=yon_char_get_augumented(prevline,"</span>");;
|
|
|
|
|
gtk_label_set_text(GTK_LABEL(curWidgets->GnomeInfoDetailsLabel),prevline);
|
|
|
|
|
// gtk_label_set_text(GTK_LABEL(curWidgets->GnomeInfoLabel),pth);
|
|
|
|
|
gtk_label_set_markup (GTK_LABEL(curWidgets->GnomeInfoDetailsLabel),prevline);;
|
|
|
|
|
// gtk_label_set_markup (GTK_LABEL(curWidgets->GnomeInfoLabel), pth);;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
curWidgets->socket=GTK_WIDGET(create_socket(curWidgets));
|
|
|
|
|
|
|
|
|
|
if (curWidgets->ButtonBackToMain!=NULL)
|
|
|
|
|
gtk_button_set_label(GTK_BUTTON(curWidgets->ButtonBackToMain),_("Back to settings"));
|
|
|
|
|
gtk_window_set_title(GTK_WINDOW(curWidgets->window),"UBLinux Settings Manager");
|
|
|
|
|
g_signal_connect(G_OBJECT(curWidgets->window), "destroy", G_CALLBACK(gtk_main_quit), NULL);
|
|
|
|
|
if (curWidgets->GnomePaned!=NULL){
|
|
|
|
|
gtk_paned_set_position(GTK_PANED(curWidgets->GnomePaned),main_config.iconSegmentSize);
|
|
|
|
|
g_signal_connect(G_OBJECT(curWidgets->GnomePaned), "notify::position", G_CALLBACK(on_paned_move), curWidgets);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
if (strcmp(theme_id,"Gnome")==0){
|
|
|
|
|
char *socket_id=malloc(sizeof(gtk_socket_get_id(GTK_SOCKET(curWidgets->socket)))/sizeof(int));
|
|
|
|
|
sprintf(socket_id,"%d",gtk_socket_get_id(GTK_SOCKET(curWidgets->socket)));
|
|
|
|
|
socket_id=yon_char_get_augumented("../ubl-info/ubl-info-bin --socket-id=",socket_id);
|
|
|
|
|
socket_id=yon_char_get_augumented(socket_id," &");
|
|
|
|
|
system(socket_id);
|
|
|
|
|
g_signal_connect(G_OBJECT(curWidgets->window), "configure-event", G_CALLBACK(on_resized), widgets);
|
|
|
|
|
// g_signal_connect(G_OBJECT(curWidgets->window), "event-after", G_CALLBACK(on_resized_done), widgets);
|
|
|
|
|
g_signal_connect(G_OBJECT(curWidgets->window), "event-after", G_CALLBACK(on_resized_done), widgets);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
if (curWidgets->ButtonBackToMain!=NULL)
|
|
|
|
|
@ -1466,9 +1427,11 @@ dictionary *yon_theme_new(dictionary **widgetss, GtkBuilder *builder, char *them
|
|
|
|
|
curWidgets->SectionSettingsClearEntryButton=GTK_WIDGET(gtk_builder_get_object(curWidgets->builder,"SectionSettingsClearEntryButton"));
|
|
|
|
|
curWidgets->SectionSettingsSaveButton=GTK_WIDGET(gtk_builder_get_object(curWidgets->builder,"SectionSettingsSaveButton"));
|
|
|
|
|
curWidgets->SectionSettingsCloseButton=GTK_WIDGET(gtk_builder_get_object(curWidgets->builder,"SectionSettingsCloseButton"));
|
|
|
|
|
curWidgets->CautionWindow=GTK_WIDGET(gtk_builder_get_object(curWidgets->builder,"CautionWindow"));
|
|
|
|
|
curWidgets->CautionUnderstandButton=GTK_WIDGET(gtk_builder_get_object(curWidgets->builder,"CautionUnderstandButton"));
|
|
|
|
|
curWidgets->applist=applist;
|
|
|
|
|
curWidgets->appssize=appsize;
|
|
|
|
|
curWidgets->socket=GTK_WIDGET(create_socket(curWidgets));
|
|
|
|
|
|
|
|
|
|
gtk_widget_set_size_request(curWidgets->window,800,600);
|
|
|
|
|
gtk_window_resize(GTK_WINDOW(curWidgets->window),main_config.windowWidth,main_config.windowHeight);
|
|
|
|
|
gtk_window_set_icon_from_file(GTK_WINDOW(curWidgets->window),AppIconPath,NULL);
|
|
|
|
|
@ -1489,7 +1452,8 @@ dictionary *yon_theme_new(dictionary **widgetss, GtkBuilder *builder, char *them
|
|
|
|
|
g_signal_connect(G_OBJECT(curWidgets->SectionSettingsClearEntryButton), "clicked", G_CALLBACK(on_sections_new_clear), curWidgets);
|
|
|
|
|
g_signal_connect(G_OBJECT(curWidgets->SectionSettingsCloseButton), "clicked", G_CALLBACK(on_sections_close), curWidgets);
|
|
|
|
|
g_signal_connect(G_OBJECT(curWidgets->SectionSettingsSaveButton), "clicked", G_CALLBACK(on_sections_save), curWidgets);
|
|
|
|
|
}// сделать функцию для сигналов окна секций, секции для настроек в словарь
|
|
|
|
|
g_signal_connect(G_OBJECT(curWidgets->CautionUnderstandButton), "clicked", G_CALLBACK(on_caution_understand), curWidgets);
|
|
|
|
|
}
|
|
|
|
|
gtk_label_set_text(GTK_LABEL(curWidgets->LabelTitle),_("UBLinux Settings Manager"));
|
|
|
|
|
gtk_label_set_text(GTK_LABEL(curWidgets->settingsSubmenuLabelSize),_("Icon size"));
|
|
|
|
|
gtk_label_set_text(GTK_LABEL(curWidgets->settingsSubmenuLabelTheme),_("Window theme"));
|
|
|
|
|
@ -1529,6 +1493,7 @@ int main(int argc, char *argv[]){
|
|
|
|
|
load_apps((IVGraphicals*)cur->data,widg->applist,widg->appssize);
|
|
|
|
|
}
|
|
|
|
|
yon_show_icon_views(widg->ICSys,widg);
|
|
|
|
|
yon_icv_resize_item(widg->ICSys,widg->GnomePaned);
|
|
|
|
|
theme="Main";
|
|
|
|
|
main_config.WindowTheme=0;
|
|
|
|
|
widgets->next=yon_dictionary_create_empty();
|
|
|
|
|
@ -1570,6 +1535,7 @@ int main(int argc, char *argv[]){
|
|
|
|
|
}
|
|
|
|
|
yon_show_icon_views(widg->ICSys,widg);
|
|
|
|
|
main_config.WindowTheme=0;
|
|
|
|
|
yon_icv_resize_item(widg->ICSys,widg->GnomePaned);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|