Added functions for managing parameters for custom windows

pull/62/head
parent 3039ea1b55
commit 5f7b869288

@ -10,7 +10,9 @@ config main_config;
* [RU] * [RU]
* Закрывает окно, в котором расположен виджет [self]. * Закрывает окно, в котором расположен виджет [self].
*/ */
void on_close_subwindow(GtkWidget *self){ void on_close_subwindow(GtkWidget *self, char *window){
if(window)
yon_window_config_custom_window_set(GTK_WINDOW(gtk_widget_get_toplevel(self)),window);
gtk_widget_destroy(gtk_widget_get_toplevel(self)); gtk_widget_destroy(gtk_widget_get_toplevel(self));
} }
@ -281,6 +283,7 @@ void on_inspector_open(GtkWidget *self, main_window *widgets){
window->UpdateButton=yon_gtk_builder_get_widget(builder,"UpdateButton"); window->UpdateButton=yon_gtk_builder_get_widget(builder,"UpdateButton");
window->LoggingTerminal=yon_gtk_builder_get_widget(builder,"LoggingTerminal"); window->LoggingTerminal=yon_gtk_builder_get_widget(builder,"LoggingTerminal");
window->JournalActionsBox=yon_gtk_builder_get_widget(builder,"JournalActionsBox"); window->JournalActionsBox=yon_gtk_builder_get_widget(builder,"JournalActionsBox");
yon_window_config_custom_window_setup(GTK_WINDOW(window->MainWindow),"InspectorWindow");
gtk_window_set_title(GTK_WINDOW(window->MainWindow),TITLE_LABEL); gtk_window_set_title(GTK_WINDOW(window->MainWindow),TITLE_LABEL);
gtk_window_set_transient_for(GTK_WINDOW(window->MainWindow),GTK_WINDOW(widgets->Window)); gtk_window_set_transient_for(GTK_WINDOW(window->MainWindow),GTK_WINDOW(widgets->Window));
GtkTreeModel *model = GTK_TREE_MODEL(widgets->list); GtkTreeModel *model = GTK_TREE_MODEL(widgets->list);
@ -305,6 +308,7 @@ void on_inspector_open(GtkWidget *self, main_window *widgets){
g_signal_connect(G_OBJECT(window->ShowAllBootsButton),"clicked", G_CALLBACK(on_inspector_update),window); g_signal_connect(G_OBJECT(window->ShowAllBootsButton),"clicked", G_CALLBACK(on_inspector_update),window);
g_signal_connect(G_OBJECT(window->ShowAllUnitsButton),"clicked", G_CALLBACK(on_inspector_update),window); g_signal_connect(G_OBJECT(window->ShowAllUnitsButton),"clicked", G_CALLBACK(on_inspector_update),window);
g_signal_connect(G_OBJECT(window->ShowInitTreeButton),"clicked", G_CALLBACK(on_inspector_update),window); g_signal_connect(G_OBJECT(window->ShowInitTreeButton),"clicked", G_CALLBACK(on_inspector_update),window);
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->MainTree)),&model,&iter)){ if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->MainTree)),&model,&iter)){
gtk_tree_model_get(model,&iter,0,&name,1,&paths,-1); gtk_tree_model_get(model,&iter,0,&name,1,&paths,-1);
if (strcmp(name,"journald")){ if (strcmp(name,"journald")){
@ -455,7 +459,7 @@ void on_rules_accept(GtkWidget *self, dictionary *dict){
!public_read&&public_write&&public_exec ? 3 : \ !public_read&&public_write&&public_exec ? 3 : \
0; 0;
gtk_entry_set_text(entry,yon_char_unite(yon_char_from_int(owner),yon_char_from_int(group),yon_char_from_int(public),NULL)); gtk_entry_set_text(entry,yon_char_unite(yon_char_from_int(owner),yon_char_from_int(group),yon_char_from_int(public),NULL));
gtk_widget_destroy(window->Window); on_close_subwindow(window->Window,"RulesWindow");
} }
void on_rules_update(GtkWidget *self, logrotate_rules_window *window){ void on_rules_update(GtkWidget *self, logrotate_rules_window *window){
@ -513,11 +517,12 @@ void on_rules_open(GtkWidget *self,GtkEntry *entry){
window->FinalEntry=yon_gtk_builder_get_widget(builder,"FinalEntry"); window->FinalEntry=yon_gtk_builder_get_widget(builder,"FinalEntry");
window->CancelButton=yon_gtk_builder_get_widget(builder,"CancelButton"); window->CancelButton=yon_gtk_builder_get_widget(builder,"CancelButton");
window->SaveButton=yon_gtk_builder_get_widget(builder,"SaveButton"); window->SaveButton=yon_gtk_builder_get_widget(builder,"SaveButton");
yon_window_config_custom_window_set(GTK_WINDOW(window->Window),"RulesWindow");
gtk_window_set_title(GTK_WINDOW(window->Window),TITLE_LABEL); gtk_window_set_title(GTK_WINDOW(window->Window),TITLE_LABEL);
dictionary *dict = NULL; dictionary *dict = NULL;
yon_dictionary_add_or_create_if_exists_with_data(dict,"entry",entry); yon_dictionary_add_or_create_if_exists_with_data(dict,"entry",entry);
yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window); yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window);
g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_close_subwindow),NULL); g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_close_subwindow),"RulesWindow");
g_signal_connect(G_OBJECT(window->SaveButton),"clicked",G_CALLBACK(on_rules_accept),dict); g_signal_connect(G_OBJECT(window->SaveButton),"clicked",G_CALLBACK(on_rules_accept),dict);
g_signal_connect(G_OBJECT(window->UserReadCheck),"toggled",G_CALLBACK(on_rules_update),window); g_signal_connect(G_OBJECT(window->UserReadCheck),"toggled",G_CALLBACK(on_rules_update),window);
@ -546,7 +551,7 @@ void on_filechooser_save(GtkWidget *self, dictionary *dict){
logrotate_filechooser_window *dialog = yon_dictionary_get_data(dict->first->next,logrotate_filechooser_window*); logrotate_filechooser_window *dialog = yon_dictionary_get_data(dict->first->next,logrotate_filechooser_window*);
char *filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog->FileChooser)); char *filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog->FileChooser));
gtk_entry_set_text(GTK_ENTRY(window->FileAmountEntry),filename); gtk_entry_set_text(GTK_ENTRY(window->FileAmountEntry),filename);
gtk_widget_destroy(dialog->FileChooser); on_close_subwindow(dialog->FileChooser,"FileDialog");
} }
void on_filechooser_open(GtkWidget *self, logrotate_configure_window *window){ void on_filechooser_open(GtkWidget *self, logrotate_configure_window *window){
@ -556,6 +561,7 @@ void on_filechooser_open(GtkWidget *self, logrotate_configure_window *window){
dialog->FileOrDirCheck = yon_gtk_builder_get_widget(builder,"FileOrDirCheck"); dialog->FileOrDirCheck = yon_gtk_builder_get_widget(builder,"FileOrDirCheck");
dialog->CancelButton = yon_gtk_builder_get_widget(builder,"CancelButton"); dialog->CancelButton = yon_gtk_builder_get_widget(builder,"CancelButton");
dialog->AcceptButton = yon_gtk_builder_get_widget(builder,"AcceptButton"); dialog->AcceptButton = yon_gtk_builder_get_widget(builder,"AcceptButton");
yon_window_config_custom_window_set(GTK_WINDOW(dialog->FileChooser),"FileDialog");
gtk_window_set_transient_for(GTK_WINDOW(window->MainWindow),GTK_WINDOW(window->MainWindow)); gtk_window_set_transient_for(GTK_WINDOW(window->MainWindow),GTK_WINDOW(window->MainWindow));
dictionary *dict = NULL; dictionary *dict = NULL;
@ -563,7 +569,7 @@ void on_filechooser_open(GtkWidget *self, logrotate_configure_window *window){
yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window); yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window);
yon_dictionary_add_or_create_if_exists_with_data(dict,"dialog",dialog); yon_dictionary_add_or_create_if_exists_with_data(dict,"dialog",dialog);
g_signal_connect(G_OBJECT(dialog->FileOrDirCheck),"toggled",G_CALLBACK(on_filechooser_mode_switch),dialog); g_signal_connect(G_OBJECT(dialog->FileOrDirCheck),"toggled",G_CALLBACK(on_filechooser_mode_switch),dialog);
g_signal_connect(G_OBJECT(dialog->CancelButton),"clicked",G_CALLBACK(on_close_subwindow),NULL); g_signal_connect(G_OBJECT(dialog->CancelButton),"clicked",G_CALLBACK(on_close_subwindow),"FileDialog");
g_signal_connect(G_OBJECT(dialog->AcceptButton),"clicked",G_CALLBACK(on_filechooser_save),dict); g_signal_connect(G_OBJECT(dialog->AcceptButton),"clicked",G_CALLBACK(on_filechooser_save),dict);
gtk_widget_show(dialog->FileChooser); gtk_widget_show(dialog->FileChooser);
} }
@ -854,7 +860,7 @@ void on_logrotate_save(GtkWidget *self, dictionary *dict){
} }
paths=yon_char_replace(paths,",","\n"); paths=yon_char_replace(paths,",","\n");
gtk_list_store_set(main_config.logrotate_list,&iter,0,log_name,1,paths,2,gtk_entry_get_text(GTK_ENTRY(window->LogDescriptionEntry)),-1); gtk_list_store_set(main_config.logrotate_list,&iter,0,log_name,1,paths,2,gtk_entry_get_text(GTK_ENTRY(window->LogDescriptionEntry)),-1);
on_close_subwindow(window->MainWindow); on_close_subwindow(window->MainWindow,"LogrotateWindow");
} }
} }
@ -923,6 +929,8 @@ logrotate_configure_window *yon_logrotate_window_new(char *paths, logrotate_wind
window->CommandAfterEntry=yon_gtk_builder_get_widget(builder,"CommandAfterEntry"); window->CommandAfterEntry=yon_gtk_builder_get_widget(builder,"CommandAfterEntry");
window->EndworkCommandEntry=yon_gtk_builder_get_widget(builder,"EndworkCommandEntry"); window->EndworkCommandEntry=yon_gtk_builder_get_widget(builder,"EndworkCommandEntry");
window->StatusBox=yon_gtk_builder_get_widget(builder,"StatusBox"); window->StatusBox=yon_gtk_builder_get_widget(builder,"StatusBox");
yon_window_config_custom_window_get(GTK_WINDOW(window->MainWindow),"LogrotateWindow");
gtk_window_set_title(GTK_WINDOW(window->MainWindow),TITLE_LABEL); gtk_window_set_title(GTK_WINDOW(window->MainWindow),TITLE_LABEL);
if (dialog) if (dialog)
gtk_window_set_transient_for(GTK_WINDOW(window->MainWindow),GTK_WINDOW(dialog->Window)); gtk_window_set_transient_for(GTK_WINDOW(window->MainWindow),GTK_WINDOW(dialog->Window));
@ -1308,13 +1316,14 @@ void on_logrotate_tab_open(GtkWidget *self, main_window *widgets){
window->AddButton = yon_gtk_builder_get_widget(builder,"AddButton"); window->AddButton = yon_gtk_builder_get_widget(builder,"AddButton");
window->RemoveButton = yon_gtk_builder_get_widget(builder,"RemoveButton"); window->RemoveButton = yon_gtk_builder_get_widget(builder,"RemoveButton");
window->StatusBox = yon_gtk_builder_get_widget(builder,"StatusBox"); window->StatusBox = yon_gtk_builder_get_widget(builder,"StatusBox");
yon_window_config_custom_window_get(GTK_WINDOW(window->Window),"LogrotateTabWindow");
gtk_window_set_title(GTK_WINDOW(window->Window),TITLE_LABEL); gtk_window_set_title(GTK_WINDOW(window->Window),TITLE_LABEL);
gtk_tree_view_set_model(GTK_TREE_VIEW(window->MainTree),GTK_TREE_MODEL(main_config.logrotate_list)); gtk_tree_view_set_model(GTK_TREE_VIEW(window->MainTree),GTK_TREE_MODEL(main_config.logrotate_list));
gtk_tree_view_set_model(GTK_TREE_VIEW(window->AppsMainTree),GTK_TREE_MODEL(main_config.logrotate_apps_list)); gtk_tree_view_set_model(GTK_TREE_VIEW(window->AppsMainTree),GTK_TREE_MODEL(main_config.logrotate_apps_list));
g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_close_subwindow),NULL); g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_close_subwindow),"LogrotateTabWindow");
g_signal_connect(G_OBJECT(window->SaveButton),"clicked",G_CALLBACK(on_close_subwindow),NULL); g_signal_connect(G_OBJECT(window->SaveButton),"clicked",G_CALLBACK(on_close_subwindow),"LogrotateTabWindow");
g_signal_connect(G_OBJECT(window->AddButton),"clicked",G_CALLBACK(on_logrotate_add),window); g_signal_connect(G_OBJECT(window->AddButton),"clicked",G_CALLBACK(on_logrotate_add),window);
g_signal_connect(G_OBJECT(window->RemoveButton),"clicked",G_CALLBACK(on_logrotate_remove),window); g_signal_connect(G_OBJECT(window->RemoveButton),"clicked",G_CALLBACK(on_logrotate_remove),window);
g_signal_connect(G_OBJECT(window->ConfigureButton),"clicked",G_CALLBACK(on_logrotate_edit),window); g_signal_connect(G_OBJECT(window->ConfigureButton),"clicked",G_CALLBACK(on_logrotate_edit),window);
@ -1461,7 +1470,7 @@ void on_journald_save(GtkWidget *self, journald_window *window){
yon_config_register(JOURNALD("MaxLevelConsole"),"logging",yon_char_from_int(forwardempty-1)); yon_config_register(JOURNALD("MaxLevelConsole"),"logging",yon_char_from_int(forwardempty-1));
else else
yon_config_remove_by_key(JOURNALD("MaxLevelConsole")); yon_config_remove_by_key(JOURNALD("MaxLevelConsole"));
on_close_subwindow(window->MainWindow); on_close_subwindow(window->MainWindow,"JournaldWindow");
} }
journald_window *yon_journald_open(GtkWidget *self, main_window *widgets){ journald_window *yon_journald_open(GtkWidget *self, main_window *widgets){
@ -1502,6 +1511,8 @@ journald_window *yon_journald_open(GtkWidget *self, main_window *widgets){
window->LowerTimeButton=yon_gtk_builder_get_widget(builder,"LowerTimeButton"); window->LowerTimeButton=yon_gtk_builder_get_widget(builder,"LowerTimeButton");
window->headerTopic=yon_gtk_builder_get_widget(builder,"headerTopic"); window->headerTopic=yon_gtk_builder_get_widget(builder,"headerTopic");
yon_window_config_custom_window_get(GTK_WINDOW(window->MainWindow),"JournaldWindow");
gtk_window_set_transient_for(GTK_WINDOW(window->MainWindow),GTK_WINDOW(widgets->Window)); gtk_window_set_transient_for(GTK_WINDOW(window->MainWindow),GTK_WINDOW(widgets->Window));
{ {
int sz; int sz;
@ -1511,7 +1522,7 @@ journald_window *yon_journald_open(GtkWidget *self, main_window *widgets){
} }
gtk_window_set_title(GTK_WINDOW(window->MainWindow),TITLE_LABEL); gtk_window_set_title(GTK_WINDOW(window->MainWindow),TITLE_LABEL);
g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_close_subwindow),NULL); g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_close_subwindow),"JournaldWindow");
g_signal_connect(G_OBJECT(window->SaveButton),"clicked",G_CALLBACK(on_journald_save),window); g_signal_connect(G_OBJECT(window->SaveButton),"clicked",G_CALLBACK(on_journald_save),window);
g_signal_connect(G_OBJECT(window->LogIntervalCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button),window->LogIntervalSpin); g_signal_connect(G_OBJECT(window->LogIntervalCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button),window->LogIntervalSpin);
@ -1631,11 +1642,15 @@ void on_log_save(GtkWidget *self, dictionary *dict){
if (!yon_char_is_empty(name)){ if (!yon_char_is_empty(name)){
GtkTreeModel *model = GTK_TREE_MODEL(widgets->list); GtkTreeModel *model = GTK_TREE_MODEL(widgets->list);
GtkTreeIter iter; GtkTreeIter iter;
if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->MainTree)),&model,&iter)) if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->MainTree)),&model,&iter)){
gtk_list_store_append(widgets->list,&iter); gtk_list_store_append(widgets->list,&iter);
yon_window_config_custom_window_set(GTK_WINDOW(window->MainWindow),"AddWindow");
} else {
yon_window_config_custom_window_set(GTK_WINDOW(window->MainWindow),"EditWindow");
}
gtk_list_store_set(widgets->list,&iter,0,name,1,pathse,2,&desc ? desc : "",-1); gtk_list_store_set(widgets->list,&iter,0,name,1,pathse,2,&desc ? desc : "",-1);
} }
on_close_subwindow(self); on_close_subwindow(self,NULL);
} }
add_log_window *on_add_open(main_window *widgets){ add_log_window *on_add_open(main_window *widgets){
@ -1660,7 +1675,6 @@ add_log_window *on_add_open(main_window *widgets){
dictionary *dict = NULL; dictionary *dict = NULL;
yon_dictionary_add_or_create_if_exists_with_data(dict,"widgets",widgets); yon_dictionary_add_or_create_if_exists_with_data(dict,"widgets",widgets);
yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window); yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window);
g_signal_connect(G_OBJECT(window->CancelButton),"clicked", G_CALLBACK(on_close_subwindow),NULL);
g_signal_connect(G_OBJECT(window->SaveButton),"clicked", G_CALLBACK(on_log_save),dict); g_signal_connect(G_OBJECT(window->SaveButton),"clicked", G_CALLBACK(on_log_save),dict);
return window; return window;
} }
@ -1728,6 +1742,8 @@ void on_log_add(GtkWidget *self, main_window *widgets){
GtkTreeModel *model = GTK_TREE_MODEL(widgets->list); GtkTreeModel *model = GTK_TREE_MODEL(widgets->list);
GtkTreeIter iter; GtkTreeIter iter;
add_log_window *window = on_add_open(widgets); add_log_window *window = on_add_open(widgets);
yon_window_config_custom_window_get(GTK_WINDOW(window->MainWindow),"AddWindow");
g_signal_connect(G_OBJECT(window->CancelButton),"clicked", G_CALLBACK(on_close_subwindow),"AddWindow");
gtk_tree_selection_unselect_all(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->MainTree))); gtk_tree_selection_unselect_all(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->MainTree)));
gtk_widget_show(window->MainWindow); gtk_widget_show(window->MainWindow);
gtk_widget_hide(window->StatisticsFrame); gtk_widget_hide(window->StatisticsFrame);
@ -1740,6 +1756,8 @@ void on_log_edit(GtkWidget *self,main_window *widgets){
GtkTreeIter iter; GtkTreeIter iter;
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->MainTree)),&model,&iter)){ if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->MainTree)),&model,&iter)){
add_log_window *window = on_add_open(widgets); add_log_window *window = on_add_open(widgets);
g_signal_connect(G_OBJECT(window->CancelButton),"clicked", G_CALLBACK(on_close_subwindow),"EditWindow");
yon_window_config_custom_window_get(GTK_WINDOW(window->MainWindow),"EditWindow");
gtk_widget_show(window->MainWindow); gtk_widget_show(window->MainWindow);
gtk_widget_hide(window->StatisticsFrame); gtk_widget_hide(window->StatisticsFrame);
char *name; char *name;

@ -1334,12 +1334,17 @@ config_str yon_config_load(char *command, int *str_len){
} }
} }
/**int yon_config_save_registered(char *path, char *section) /**int yon_config_save_registered(char *path)
* [EN] * [EN]
* Saves config with [command] * Saves config at [path] config.
* [path] can be:
* system
* global
* [RU] * [RU]
* Выполняет команду [command], добавляя в конец все записи конфига в таком виде: * Сохраняет конфигурацию в [path] конфиг.
* [ПАРАМЕТР1]="[значения1]" [ПАРАМЕТР2]="[значения2]" * [path] может быть
* system - локальный конфиг
* global - глобальный конфиг
*/ */
int yon_config_save_registered(char *path){ int yon_config_save_registered(char *path){
check_config{ check_config{
@ -1376,10 +1381,15 @@ int yon_config_save_registered(char *path){
/**int yon_config_force_save_registered(char *path, char *section) /**int yon_config_force_save_registered(char *path, char *section)
* [EN] * [EN]
* Saves config with [command] * Force config to save at [path] config ignoring parameter save status.
* [path] can be:
* system
* global
* [RU] * [RU]
* Выполняет команду [command], добавляя в конец все записи конфига в таком виде: * Принудительно сохраняет конфигурацию в [path] конфиг игнорируя статус параметра.
* [ПАРАМЕТР1]="[значения1]" [ПАРАМЕТР2]="[значения2]" * [path] может быть
* system - локальный конфиг
* global - глобальный конфиг
*/ */
int yon_config_force_save_registered(char *path){ int yon_config_force_save_registered(char *path){
check_config{ check_config{
@ -1868,6 +1878,17 @@ void yon_terminal_integrated_start(GtkWidget *terminal, char* command, void *end
} }
} }
void yon_window_config_add_instant_parameter(char *param_name, char *section, void *tracked_value, enum YON_TYPE val_type){
switch (val_type){
case YON_TYPE_BOOLEAN: g_key_file_set_boolean(__yon_window_config_file,section,param_name,*((gboolean*)tracked_value));
break;
case YON_TYPE_INT: g_key_file_set_integer(__yon_window_config_file,section,param_name,*((int*)tracked_value));
break;
case YON_TYPE_STRING: g_key_file_set_string(__yon_window_config_file,section,param_name,(char*)tracked_value);
break;
}
}
void yon_window_config_erase_custom_parameter(char *param_name, char *section){ void yon_window_config_erase_custom_parameter(char *param_name, char *section){
__yon_custom_parameter *param = NULL; __yon_custom_parameter *param = NULL;
param = yon_remalloc(param,sizeof(__yon_custom_parameter)); param = yon_remalloc(param,sizeof(__yon_custom_parameter));
@ -1901,6 +1922,81 @@ void yon_terminal_integrated_start(GtkWidget *terminal, char* command, void *end
} }
} }
void yon_on_window_config_custom_window_destroy(GtkWindow *window, char *window_name){
if (!gtk_window_is_maximized(window)){
int height=0;
int width=0;
int X=0;
int Y=0;
gtk_window_get_position(window,&X,&Y);
yon_window_config_add_instant_parameter(yon_char_append(window_name,"PosX"),"window",&X,YON_TYPE_INT);
yon_window_config_add_instant_parameter(yon_char_append(window_name,"PosY"),"window",&Y,YON_TYPE_INT);
}
}
void yon_on_window_config_custom_window_resize(GtkWindow *window, char *window_name){
if (!gtk_window_is_maximized(window)){
int height=0;
int width=0;
int X=0;
int Y=0;
gtk_window_get_size(window,&width,&height);
gtk_window_get_position(window,&X,&Y);
yon_window_config_add_instant_parameter(yon_char_append(window_name,"Width"),"window",&width,YON_TYPE_INT);
yon_window_config_add_instant_parameter(yon_char_append(window_name,"Height"),"window",&height,YON_TYPE_INT);
yon_window_config_add_instant_parameter(yon_char_append(window_name,"PosX"),"window",&X,YON_TYPE_INT);
yon_window_config_add_instant_parameter(yon_char_append(window_name,"PosY"),"window",&Y,YON_TYPE_INT);
}
}
void yon_window_config_custom_window_setup(GtkWindow *window, char *window_name){
int height=0;
int width=0;
int X=0;
int Y=0;
yon_window_config_get_parameter("window",yon_char_append(window_name,"Width"),&width,YON_TYPE_INT);
yon_window_config_get_parameter("window",yon_char_append(window_name,"Height"),&height,YON_TYPE_INT);
yon_window_config_get_parameter("window",yon_char_append(window_name,"PosX"),&X,YON_TYPE_INT);
yon_window_config_get_parameter("window",yon_char_append(window_name,"PosY"),&Y,YON_TYPE_INT);
if (width&&height)
gtk_window_resize(window,width,height);
if (X&&Y)
gtk_window_move(window,X,Y);
char *signals_window_name = yon_char_new(window_name);
g_signal_connect(G_OBJECT(window),"check-resize",G_CALLBACK(yon_on_window_config_custom_window_resize),signals_window_name);
g_signal_connect(G_OBJECT(window),"delete-event",G_CALLBACK(yon_on_window_config_custom_window_destroy),signals_window_name);
}
void yon_window_config_custom_window_get(GtkWindow *window, char *window_name){
int height=0;
int width=0;
int X=0;
int Y=0;
yon_window_config_get_parameter("window",yon_char_append(window_name,"Width"),&width,YON_TYPE_INT);
yon_window_config_get_parameter("window",yon_char_append(window_name,"Height"),&height,YON_TYPE_INT);
yon_window_config_get_parameter("window",yon_char_append(window_name,"PosX"),&X,YON_TYPE_INT);
yon_window_config_get_parameter("window",yon_char_append(window_name,"PosY"),&Y,YON_TYPE_INT);
if (width&&height)
gtk_window_resize(window,width,height);
if (X&&Y)
gtk_window_move(window,X,Y);
}
void yon_window_config_custom_window_set(GtkWindow *window, char *window_name){
int height=0;
int width=0;
int X=0;
int Y=0;
gtk_window_get_size(window,&width,&height);
gtk_window_get_position(window,&X,&Y);
yon_window_config_add_instant_parameter(yon_char_append(window_name,"Width"),"window",&width,YON_TYPE_INT);
yon_window_config_add_instant_parameter(yon_char_append(window_name,"Height"),"window",&height,YON_TYPE_INT);
yon_window_config_add_instant_parameter(yon_char_append(window_name,"PosX"),"window",&X,YON_TYPE_INT);
yon_window_config_add_instant_parameter(yon_char_append(window_name,"PosY"),"window",&Y,YON_TYPE_INT);
}
GtkWidget *yon_ubl_menu_item_about_new(char *buttonname){ GtkWidget *yon_ubl_menu_item_about_new(char *buttonname){
GtkWidget *menu_item = gtk_menu_item_new(); GtkWidget *menu_item = gtk_menu_item_new();
gtk_style_context_add_class(gtk_widget_get_style_context(menu_item),"menuitembottom"); gtk_style_context_add_class(gtk_widget_get_style_context(menu_item),"menuitembottom");

@ -288,6 +288,12 @@ void yon_window_config_erase_custom_parameter(char *param_name, char *section);
int yon_window_config_get_parameter(char *section, char *config_parameter, void *return_value, enum YON_TYPE type); int yon_window_config_get_parameter(char *section, char *config_parameter, void *return_value, enum YON_TYPE type);
void yon_window_config_custom_window_setup(GtkWindow *window, char *window_name);
void yon_window_config_custom_window_get(GtkWindow *window, char *window_name);
void yon_window_config_custom_window_set(GtkWindow *window, char *window_name);
int yon_gtk_combo_box_fill(GtkWidget *combo, char **parameters,int size); int yon_gtk_combo_box_fill(GtkWidget *combo, char **parameters,int size);
int yon_gtk_combo_box_text_find(GtkWidget *combo_box, char *text_to_find); int yon_gtk_combo_box_text_find(GtkWidget *combo_box, char *text_to_find);

Loading…
Cancel
Save