#include "view_temp_u_g_p.h" temp_set_window *temp_widgets = NULL; char* flag_temp_u_g_p; char* set_add_edit; char* _glade_path = NULL; vector* vec_temp = NULL; temp_set_window *get_widget_temp() { return temp_widgets; } void set_vector(vector* _vec_temp) { vec_temp = _vec_temp; } temp_set_window *temp_setup_window_base(char* __glade_path) { _glade_path = __glade_path; if (temp_widgets == NULL) { temp_widgets = malloc(sizeof(temp_set_window)); GtkBuilder *builder = gtk_builder_new_from_resource(_glade_path); temp_widgets->Window = yon_gtk_builder_get_widget(builder,"QuotasEditWindow"); temp_widgets->btnSaveTempSave = yon_gtk_builder_get_widget(builder,"quotegroupSaveButton"); temp_widgets->btnTempCancel = yon_gtk_builder_get_widget(builder,"quotegroupCancelButton"); temp_setup_window_custom(temp_widgets, builder); temp_init_windows(); temp_localization(temp_widgets); temp_event(temp_widgets); } return temp_widgets; } temp_set_window *temp_setup_window_custom(temp_set_window* temp_widgets, GtkBuilder *builder) { temp_widgets->lblSetUGP = yon_gtk_builder_get_widget(builder, "lblSetUGP"); temp_widgets->btnOpenUserGroup = yon_gtk_builder_get_widget(builder, "btnOpenUserGroup"); temp_widgets->btnReviewProject = yon_gtk_builder_get_widget(builder, "btnReviewProject"); temp_widgets->btnGenerateProject = yon_gtk_builder_get_widget(builder, "btnGenerateProject"); temp_widgets->lblSetUGPData = yon_gtk_builder_get_widget(builder, "lblSetUGPData"); temp_widgets->entryCatalogProject = yon_gtk_builder_get_widget(builder, "entryCatalogProject"); temp_widgets->chbAuto = yon_gtk_builder_get_widget(builder, "chbAuto"); temp_widgets->btnGenerateProject = yon_gtk_builder_get_widget(builder, "btnGenerateProject"); temp_widgets->entryProjectName = yon_gtk_builder_get_widget(builder, "entryProjectName"); temp_widgets->boxProjectAddEdit = yon_gtk_builder_get_widget(builder, "boxProjectAddEdit"); temp_widgets->boxProject = yon_gtk_builder_get_widget(builder, "boxProject"); temp_widgets->boxProjectAddEditboxProjectId = yon_gtk_builder_get_widget(builder, "boxProjectAddEditboxProjectId"); temp_widgets->lblOpenUserGroup = yon_gtk_builder_get_widget(builder, "lblOpenUserGroup"); temp_widgets->lblHeadQuotasEditWindow = yon_gtk_builder_get_widget(builder, "lblHeadQuotasEditWindow"); temp_widgets->quotegroupSizeSoftLimitCheck = yon_gtk_builder_get_widget(builder, "quotegroupSizeSoftLimitCheck"); temp_widgets->quotegroupSizeSoftLimitSpin = yon_gtk_builder_get_widget(builder, "quotegroupSizeSoftLimitSpin"); temp_widgets->quotegroupSizeSoftLimitCombo = yon_gtk_builder_get_widget(builder, "quotegroupSizeSoftLimitCombo"); temp_widgets->quotegroupSizeHardLimitCheck = yon_gtk_builder_get_widget(builder, "quotegroupSizeHardLimitCheck"); temp_widgets->quotegroupSizeHardLimitSpin = yon_gtk_builder_get_widget(builder, "quotegroupSizeHardLimitSpin"); temp_widgets->quotegroupSizeHardLimitCombo = yon_gtk_builder_get_widget(builder, "quotegroupSizeHardLimitCombo"); temp_widgets->quotegroupFilesSoftLimitCheck = yon_gtk_builder_get_widget(builder, "quotegroupFilesSoftLimitCheck"); temp_widgets->quotegroupFilesSoftLimitSpin = yon_gtk_builder_get_widget(builder, "quotegroupFilesSoftLimitSpin"); temp_widgets->quotegroupFilesHardLimitCheck = yon_gtk_builder_get_widget(builder, "quotegroupFilesHardLimitCheck"); temp_widgets->quotegroupFilesHardLimitSpin = yon_gtk_builder_get_widget(builder, "quotegroupFilesHardLimitSpin"); temp_widgets->entryProjectId = yon_gtk_builder_get_widget(builder, "entryProjectId"); temp_widgets->lblSetNameDevice = yon_gtk_builder_get_widget(builder, "lblSetNameDevice"); temp_widgets->lblCatalogProjectEdit = yon_gtk_builder_get_widget(builder, "lblCatalogProjectEdit"); temp_widgets->lblProjectIdValueEdit = yon_gtk_builder_get_widget(builder, "lblProjectIdValueEdit"); table_u_g_set_flag(flag_temp_u_g_p); table_u_g_set_glade_path(_glade_path); if (strcmp(flag_temp_u_g_p,"project")==0) { gtk_widget_hide(temp_widgets->lblSetUGP); gtk_widget_hide(temp_widgets->lblSetUGPData); gtk_widget_hide(temp_widgets->btnOpenUserGroup); if (strcmp(set_add_edit, "add")==0) { gtk_widget_hide(temp_widgets->lblCatalogProjectEdit); gtk_widget_hide(temp_widgets->lblProjectIdValueEdit); gtk_label_set_label(GTK_LABEL(temp_widgets->lblHeadQuotasEditWindow), _("Settings disk quotas - Addition")); } else { gtk_widget_hide(temp_widgets->btnReviewProject); gtk_widget_hide(temp_widgets->entryCatalogProject); gtk_widget_hide(temp_widgets->chbAuto); gtk_widget_hide(temp_widgets->entryProjectId); gtk_widget_hide(temp_widgets->btnGenerateProject); gtk_label_set_label(GTK_LABEL(temp_widgets->lblHeadQuotasEditWindow), _("Settings disk quotas - Editing")); } } else { gtk_widget_hide(temp_widgets->boxProjectAddEditboxProjectId); if (strcmp(flag_temp_u_g_p, "user")==0) { gtk_label_set_label(GTK_LABEL(temp_widgets->lblOpenUserGroup), _("Users")); } else if (strcmp(flag_temp_u_g_p, "group")==0) { gtk_label_set_label(GTK_LABEL(temp_widgets->lblOpenUserGroup), _("Groups")); } if (strcmp(set_add_edit, "add")==0) { gtk_widget_hide(temp_widgets->boxProject); gtk_widget_hide(temp_widgets->boxProjectAddEdit); gtk_widget_hide(temp_widgets->lblSetUGPData); gtk_label_set_label(GTK_LABEL(temp_widgets->lblHeadQuotasEditWindow), _("Settings disk quotas - Addition")); } else { gtk_widget_hide(temp_widgets->boxProject); gtk_widget_hide(temp_widgets->boxProjectAddEdit); gtk_widget_hide(temp_widgets->btnOpenUserGroup); gtk_label_set_label(GTK_LABEL(temp_widgets->lblHeadQuotasEditWindow), _("Settings disk quotas - Editing")); } } } void set_temp_menu(char* _flag_temp_u_g_p, char* _set_add_edit) { flag_temp_u_g_p = _flag_temp_u_g_p; set_add_edit = _set_add_edit; } void temp_show(GtkWidget *self, char* _glade_path) { if (temp_widgets != NULL) { gtk_widget_show(temp_widgets->Window); temp_init_windows(); event_toggled_all(); } else { temp_setup_window_base(_glade_path); gtk_widget_show(temp_widgets->Window); event_toggled_all(); } } void temp_localization(temp_set_window* temp_widgets) { } void temp_init_windows() { } void temp_event(temp_set_window* temp_widgets) { g_signal_connect(G_OBJECT(temp_widgets->btnTempCancel),"clicked",G_CALLBACK(temp_on_destroy_subwindow),NULL); g_signal_connect(G_OBJECT(temp_widgets->Window), "destroy", G_CALLBACK(temp_destroy), NULL); g_signal_connect(G_OBJECT(temp_widgets->quotegroupSizeSoftLimitCheck), "toggled", G_CALLBACK(event_toggled_all), NULL); g_signal_connect(G_OBJECT(temp_widgets->quotegroupSizeHardLimitCheck), "toggled", G_CALLBACK(event_toggled_all), NULL); g_signal_connect(G_OBJECT(temp_widgets->quotegroupFilesSoftLimitCheck), "toggled", G_CALLBACK(event_toggled_all), NULL); g_signal_connect(G_OBJECT(temp_widgets->quotegroupFilesHardLimitCheck), "toggled", G_CALLBACK(event_toggled_all), NULL); g_signal_connect(G_OBJECT(temp_widgets->btnSaveTempSave),"clicked",G_CALLBACK(temp_on_destroy_subwindow),NULL); if (strcmp(flag_temp_u_g_p,"project")==0) { g_signal_connect(G_OBJECT(temp_widgets->btnOpenUserGroup),"clicked",G_CALLBACK(wrapper_show_file_manager),NULL); } else { g_signal_connect(G_OBJECT(temp_widgets->btnOpenUserGroup),"clicked",G_CALLBACK(table_u_g_show),_glade_path); } } void event_toggled_all() { philos_set_active_widgets(temp_widgets->quotegroupSizeSoftLimitCheck, temp_widgets->quotegroupSizeSoftLimitSpin, temp_widgets->quotegroupSizeSoftLimitCombo); philos_set_active_widgets(temp_widgets->quotegroupSizeHardLimitCheck, temp_widgets->quotegroupSizeHardLimitSpin, temp_widgets->quotegroupSizeHardLimitCombo ); philos_set_active_widgets(temp_widgets->quotegroupFilesSoftLimitCheck, temp_widgets->quotegroupFilesSoftLimitSpin, NULL ); philos_set_active_widgets(temp_widgets->quotegroupFilesHardLimitCheck, temp_widgets->quotegroupFilesHardLimitSpin, NULL); } void wrapper_show_file_manager() { GtkBuilder *builder = gtk_builder_new_from_resource(_glade_path); show_file_manger(temp_widgets, builder); gtk_widget_show(temp_widgets->wndChooseFileWallpaper); gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(temp_widgets->wndChooseFileWallpaper),"/home/"); } void temp_destroy(GtkWidget *self) { temp_widgets = NULL; } void temp_on_destroy_subwindow(GtkWidget *self) { gtk_widget_destroy(gtk_widget_get_toplevel(self)); temp_widgets = NULL; } void show_file_manger(temp_set_window* temp_widgets, GtkBuilder *builder) { temp_widgets->wndChooseFileWallpaper = yon_gtk_builder_get_widget(builder,"wndChooseFileWallpaper"); temp_widgets->btnFilemangerOk = yon_gtk_builder_get_widget(builder,"btnFilemangerOk"); temp_widgets->btnFilemangerExit = yon_gtk_builder_get_widget(builder,"btnFilemangerExit"); g_signal_connect(G_OBJECT(temp_widgets->btnFilemangerOk),"clicked",G_CALLBACK(btn_ok_file_manager), NULL); g_signal_connect(G_OBJECT(temp_widgets->btnFilemangerExit),"clicked",G_CALLBACK(destroy_file_manager), NULL); } void destroy_file_manager(GtkWidget *self) { gtk_widget_destroy(gtk_widget_get_toplevel(self)); temp_widgets->wndChooseFileWallpaper = NULL; temp_widgets->btnFilemangerOk = NULL; temp_widgets->btnFilemangerExit = NULL; } void btn_ok_file_manager(GtkWidget *self) { char* path_project = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(temp_widgets->wndChooseFileWallpaper)); gtk_entry_set_text(GTK_ENTRY(temp_widgets->entryCatalogProject), path_project); destroy_file_manager(self); } void set_edit_gui_data_base(config_all* all_config, int index) { config_u_g_p* _config = (config_u_g_p*)vec_temp->pfVectorGet(vec_temp, index); if (_config && index >= 0) { set_widget(temp_widgets->quotegroupSizeSoftLimitCheck, temp_widgets->quotegroupSizeSoftLimitSpin, temp_widgets->quotegroupSizeSoftLimitCombo, _config->soft_restriction_size, _config->soft_restriction_size_pow ); set_widget(temp_widgets->quotegroupSizeHardLimitCheck, temp_widgets->quotegroupSizeHardLimitSpin, temp_widgets->quotegroupSizeHardLimitCombo, _config->severe_limitation_size, _config->severe_limitation_size_pow ); set_widget(temp_widgets->quotegroupFilesSoftLimitCheck, temp_widgets->quotegroupFilesSoftLimitSpin, NULL, _config->soft_restriction_file, 0 ); set_widget(temp_widgets->quotegroupFilesHardLimitCheck, temp_widgets->quotegroupFilesHardLimitSpin, NULL, _config->severe_limitation_file, 0 ); if (strcmp(flag_temp_u_g_p,"project") == 0) { if (strcmp(set_add_edit, "add")==0) { } else { gtk_entry_set_text(GTK_ENTRY(temp_widgets->entryProjectId), fill_tree_view_id(_config->id)); gtk_label_set_label(GTK_LABEL(temp_widgets->lblCatalogProjectEdit), _config->UNIX_file); gtk_label_set_label(GTK_LABEL(temp_widgets->lblProjectIdValueEdit), format_actors(&_config->actors)); } } else { } } } void set_time_spin(hotebook* widgets, size_t seconds_file, size_t seconds_size) { me_time t_file = time_convert(seconds_file); me_time t_size = time_convert(seconds_size); if (seconds_file!=-1) { gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->spinWeeksFile), t_file.weeks); gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->spinDaysFile), t_file.days); gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->spinHoursFile), t_file.hours); gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->spinMinutesFile), t_file.minutes); } else { gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->spinWeeksFile), 0); gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->spinDaysFile), 0); gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->spinHoursFile), 0); gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->spinMinutesFile), 0); } if (seconds_size!=-1) { gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->spinWeeksSize), t_size.weeks); gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->spinDaysSize), t_size.days); gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->spinHoursSize), t_size.hours); gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->spinMinutesSize), t_size.minutes); } else { gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->spinWeeksSize), 0); gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->spinDaysSize), 0); gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->spinHoursSize), 0); gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->spinMinutesSize), 0); } } void set_widget(GtkWidget* check, GtkWidget* spin, GtkWidget* combo, int value_spin, int pow_mem_size) { if (value_spin>0) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check),1); gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin), value_spin); if (combo) { gtk_combo_box_set_active(GTK_COMBO_BOX(combo), pow_mem_size); } } else { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check),0); gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin), 0); if (combo) { gtk_combo_box_set_active(GTK_COMBO_BOX(combo), 0); } } } void get_edit_gui_data_base(config_all* all_config, int index) { config_u_g_p* _config = (config_u_g_p*)vec_temp->pfVectorGet(vec_temp, index); if (_config && index >= 0) { _config = get_temp_gui_data_base(_config); vec_temp->pfVectorSet(vec_temp, index, _config); } } void get_add_gui_data_base(config_all* all_config) { config_u_g_p* _config = malloc(sizeof(config_u_g_p)); if (_config) { _config = get_temp_gui_data_base(_config); vec_temp->pfVectorAdd(vec_temp, _config); } } config_u_g_p* get_temp_gui_data_base(config_u_g_p* _config) { set_widget_config(temp_widgets->quotegroupSizeSoftLimitCheck, temp_widgets->quotegroupSizeSoftLimitSpin, temp_widgets->quotegroupSizeSoftLimitCombo, &_config->soft_restriction_size, &_config->soft_restriction_size_pow ); set_widget_config(temp_widgets->quotegroupSizeHardLimitCheck, temp_widgets->quotegroupSizeHardLimitSpin, temp_widgets->quotegroupSizeHardLimitCombo, &_config->severe_limitation_size, &_config->severe_limitation_size_pow ); set_widget_config(temp_widgets->quotegroupFilesSoftLimitCheck, temp_widgets->quotegroupFilesSoftLimitSpin, NULL, &_config->soft_restriction_file, NULL ); set_widget_config(temp_widgets->quotegroupFilesHardLimitCheck, temp_widgets->quotegroupFilesHardLimitSpin, NULL, &_config->severe_limitation_file, NULL ); if (strcmp(flag_temp_u_g_p,"project") == 0) { } else { } return _config; } void set_widget_config(GtkWidget* check, GtkWidget* spin, GtkWidget* combo, size_t* value, int* mem_size) { gboolean active = active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(check)); if (active) { (*value) = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(spin)); if (combo) { if ((*value) != 0) { (*mem_size) = gtk_combo_box_get_active(GTK_COMBO_BOX(combo)); } else { (*mem_size) = -3; } } } else { (*value) = 0; if (combo) { (*mem_size) = -3; } } }