#include "filters.h" filters_window *filters_widgets = NULL; filters_window *filters_setup_window(char* glade_path){ if (filters_widgets == NULL) { filters_widgets = malloc(sizeof(filters_window)); GtkBuilder *builder = gtk_builder_new_from_file(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); } 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); } }