#include "filters.h" filters_window *filters_widgets = NULL; gboolean flag_filters[8]; filters_window *filters_setup_window(char* glade_path){ if (filters_widgets == NULL) { filters_widgets = malloc(sizeof(filters_window)); GtkBuilder *builder = gtk_builder_new_from_resource(glade_path); filters_widgets->Window = yon_gtk_builder_get_widget(builder,"wndFilters"); filters_widgets->chbFilterTypeQouota = yon_gtk_builder_get_widget(builder,"chbFilterTypeQouota"); filters_widgets->chbQuotaVolume = yon_gtk_builder_get_widget(builder,"chbQuotaVolume"); filters_widgets->chbSoftLimit = yon_gtk_builder_get_widget(builder,"chbSoftLimit"); filters_widgets->chbHardLimit = yon_gtk_builder_get_widget(builder,"chbHardLimit"); filters_widgets->chbSwapFileLimit = yon_gtk_builder_get_widget(builder,"chbSwapFileLimit"); filters_widgets->chbIOLimitWrite = yon_gtk_builder_get_widget(builder,"chbIOLimitWrite"); filters_widgets->chbCPULimit = yon_gtk_builder_get_widget(builder,"chbCPULimit"); filters_widgets->chbIOLimitRead = yon_gtk_builder_get_widget(builder,"chbIOLimitRead"); filters_widgets->btnFiltersCancel = yon_gtk_builder_get_widget(builder,"btnFiltersCancel"); filters_widgets->btnFiltersSave = yon_gtk_builder_get_widget(builder,"btnFiltersSave"); filters_event(filters_widgets); } filters_set_flag(); return filters_widgets; } void filters_event(filters_window *widgets) { g_signal_connect(G_OBJECT(widgets->btnFiltersCancel), "clicked",G_CALLBACK(filters_on_hide_subwindow),NULL); g_signal_connect(G_OBJECT(widgets->Window), "destroy", G_CALLBACK(filters_destroy), NULL); } void filters_destroy(GtkWidget *self) { filters_widgets = NULL; } void filters_localization(filters_window *widgets) { } void filters_on_hide_subwindow(GtkWidget *self) { gtk_widget_destroy(gtk_widget_get_toplevel(self)); filters_widgets = NULL; } filters_window *get_widget_filters() { return filters_widgets; } void filters_show(GtkWidget *self, char* glade_path) { if (filters_widgets != NULL) { gtk_widget_show_all(filters_widgets->Window); } else { filters_setup_window(glade_path); gtk_widget_show_all(filters_widgets->Window); } } gboolean* filters_get_flag() { flag_filters[0] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterTypeQouota)); flag_filters[1] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbQuotaVolume)); flag_filters[2] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbSoftLimit)); flag_filters[3] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbHardLimit)); flag_filters[4] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbSwapFileLimit)); flag_filters[5] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbCPULimit)); flag_filters[6] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbIOLimitWrite)); flag_filters[7] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbIOLimitRead)); return flag_filters; } void filters_init_flag() { flag_filters[0] = 1; flag_filters[1] = 1; flag_filters[2] = 1; flag_filters[3] = 1; flag_filters[4] = 1; flag_filters[5] = 1; flag_filters[6] = 1; flag_filters[7] = 1; } void filters_set_flag() { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterTypeQouota),flag_filters[0] ); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbQuotaVolume), flag_filters[1]); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbSoftLimit), flag_filters[2]); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbHardLimit), flag_filters[3]); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbSwapFileLimit), flag_filters[4]); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbCPULimit), flag_filters[5]); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbIOLimitWrite), flag_filters[6]); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbIOLimitRead), flag_filters[7]); }