diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index 38f9bfd..49706e3 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -70,6 +70,8 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissin set(SOURCE_FILES + view_set_disk.c + view_set_disk.h controler.h controler.c view_check_user_table.c diff --git a/source/view_set_disk.c b/source/view_set_disk.c new file mode 100644 index 0000000..7a653f9 --- /dev/null +++ b/source/view_set_disk.c @@ -0,0 +1,137 @@ +#include "view_set_disk.h" + +view_device_set_window *obj_view_device_widgets = NULL; +char* view_device_glade_path = NULL; +int view_device_index = 0; +char* view_device_set_add_edit = NULL; + + +void get_spin_time_gui(vector* vec_u_g_p, hotebook* view_device_widgets) { + if (index_selected != -1) { + config_u_g_p* _config = (config_u_g_p*)vec_u_g_p->pfVectorGet(vec_u_g_p, index_selected); + int spin_week_size = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(obj_view_device_widgets->spinWeeksSize)); + int spin_days_size = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(obj_view_device_widgets->spinDaysSize)); + int spin_hours_size = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(obj_view_device_widgets->spinHoursSize)); + int spin_minutes_size = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(obj_view_device_widgets->spinMinutesSize)); + size_t second_size = spin_week_size*7*24*3600+spin_days_size*24*3600+spin_hours_size*3600+spin_minutes_size*60; + int spin_week_file = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(obj_view_device_widgets->spinWeeksFile)); + int spin_days_file = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(obj_view_device_widgets->spinDaysFile)); + int spin_hours_file = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(obj_view_device_widgets->spinHoursFile)); + int spin_minutes_file = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(obj_view_device_widgets->spinMinutesFile)); + size_t second_file = spin_week_file*7*24*3600+spin_days_file*24*3600+spin_hours_file*3600+spin_minutes_file*60; + set_time_spin(second_file, second_size); + _config->deferring_size = second_size; + _config->deferring_file = second_file; + vec_u_g_p->pfVectorSet(vec_u_g_p, index_selected, _config); + } +} + +void set_view_device_menu(char* _set_add_edit) { + view_device_set_add_edit = _set_add_edit; +} + +void set_time_spin(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(obj_view_device_widgets->spinWeeksFile), t_file.weeks); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(obj_view_device_widgets->spinDaysFile), t_file.days); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(obj_view_device_widgets->spinHoursFile), t_file.hours); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(obj_view_device_widgets->spinMinutesFile), t_file.minutes); + } + else { + gtk_spin_button_set_value(GTK_SPIN_BUTTON(obj_view_device_widgets->spinWeeksFile), 0); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(obj_view_device_widgets->spinDaysFile), 0); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(obj_view_device_widgets->spinHoursFile), 0); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(obj_view_device_widgets->spinMinutesFile), 0); + } + if (seconds_size!=-1) { + gtk_spin_button_set_value(GTK_SPIN_BUTTON(obj_view_device_widgets->spinWeeksSize), t_size.weeks); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(obj_view_device_widgets->spinDaysSize), t_size.days); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(obj_view_device_widgets->spinHoursSize), t_size.hours); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(obj_view_device_widgets->spinMinutesSize), t_size.minutes); + } + else { + gtk_spin_button_set_value(GTK_SPIN_BUTTON(obj_view_device_widgets->spinWeeksSize), 0); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(obj_view_device_widgets->spinDaysSize), 0); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(obj_view_device_widgets->spinHoursSize), 0); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(obj_view_device_widgets->spinMinutesSize), 0); + } +} +view_device_set_window* get_widget_view_device() { + return obj_view_device_widgets; +} + +void view_device_set_index(int _index) { + view_device_index = _index; +} + +view_device_set_window *view_device_setup_window_base(char* __glade_path) { + view_device_glade_path = __glade_path; + if (obj_view_device_widgets == NULL) { + obj_view_device_widgets = malloc(sizeof(view_device_set_window)); + GtkBuilder *builder = gtk_builder_new_from_resource(__glade_path); + obj_view_device_widgets->Window = yon_gtk_builder_get_widget(builder,"SetDeviceWindow"); + obj_view_device_widgets->btnSaveTempSave = yon_gtk_builder_get_widget(builder,"SetDeviceSaveButton"); + obj_view_device_widgets->btnTempCancel = yon_gtk_builder_get_widget(builder,"SetDeviceCancelButton"); + view_device_setup_window_custom(obj_view_device_widgets, builder); + view_device_event(obj_view_device_widgets); + } + return obj_view_device_widgets; +} +view_device_set_window *view_device_setup_window_custom(view_device_set_window* view_device_view_device_widgets, GtkBuilder *builder) { + obj_view_device_widgets->spinWeeksFile = yon_gtk_builder_get_widget(builder,"spinWeeksFile"); + obj_view_device_widgets->spinDaysFile = yon_gtk_builder_get_widget(builder,"spinDaysFile"); + obj_view_device_widgets->spinHoursFile = yon_gtk_builder_get_widget(builder,"spinHoursFile"); + obj_view_device_widgets->spinMinutesFile = yon_gtk_builder_get_widget(builder,"spinMinutesFile"); + + obj_view_device_widgets->spinWeeksSize = yon_gtk_builder_get_widget(builder,"spinWeeksSize"); + obj_view_device_widgets->spinDaysSize = yon_gtk_builder_get_widget(builder,"spinDaysSize"); + obj_view_device_widgets->spinHoursSize = yon_gtk_builder_get_widget(builder,"spinHoursSize"); + obj_view_device_widgets->spinMinutesSize = yon_gtk_builder_get_widget(builder,"spinMinutesSize"); + obj_view_device_widgets->lblNameDevice = yon_gtk_builder_get_widget(builder,"lblNameDevice"); + obj_view_device_widgets->DeviceCombo = yon_gtk_builder_get_widget(builder,"DeviceCombo"); + if (strcmp(view_device_set_add_edit, "add") == 0) { + gtk_widget_hide(obj_view_device_widgets->lblNameDevice); + device_fill_disk(obj_view_device_widgets->DeviceCombo); + } + else { + gtk_widget_hide(obj_view_device_widgets->DeviceCombo); + } +} + +void view_device_show(GtkWidget *self, char* __glade_path) { + if (obj_view_device_widgets != NULL) { + gtk_widget_show(obj_view_device_widgets->Window); + } + else { + view_device_setup_window_base(__glade_path); + gtk_widget_show(obj_view_device_widgets->Window); + } +} + +void view_device_event(view_device_set_window* view_device_view_device_widgets) { + g_signal_connect(G_OBJECT(obj_view_device_widgets->Window), "destroy", G_CALLBACK(view_device_destroy), NULL); + g_signal_connect(G_OBJECT(obj_view_device_widgets->btnSaveTempSave),"clicked",G_CALLBACK(view_device_on_destroy_subwindow), NULL); + g_signal_connect(G_OBJECT(obj_view_device_widgets->btnTempCancel),"clicked",G_CALLBACK(view_device_on_destroy_subwindow), NULL); +} +void view_device_on_destroy_subwindow(GtkWidget *self) { + if (self) { + gtk_widget_destroy(gtk_widget_get_toplevel(self)); + obj_view_device_widgets = NULL; + + } +} + +void view_device_destroy(GtkWidget *self) { + if (self) { + obj_view_device_widgets = NULL; + } +} + +void view_device_get_gui() { + char* disk = yon_char_new(gtk_combo_box_text_get_active_text(GTK_COMBO_BOX(obj_view_device_widgets->DeviceCombo))); + disk = yon_char_divide_search(disk, " ", -1); + int status = gtk_combo_box_get_active_id(GTK_COMBO_BOX(obj_view_device_widgets->cmbDeviceSetStatus)); + +} \ No newline at end of file diff --git a/source/view_set_disk.h b/source/view_set_disk.h new file mode 100644 index 0000000..e22bbc1 --- /dev/null +++ b/source/view_set_disk.h @@ -0,0 +1,42 @@ + +#include +#include +#include "model/ubl-utils.h" +#include +#include +#include +#include +#include +#include +#include +#include "../compile/ubl-cmake.h" +#include "model/model.h" +#include "model/load.h" + + +typedef struct { + GtkWidget* Window; + GtkWidget* btnSaveTempSave; + GtkWidget* btnTempCancel; + + GtkWidget* spinWeeksFile; + GtkWidget* spinDaysFile; + GtkWidget* spinHoursFile; + GtkWidget* spinMinutesFile; + + GtkWidget* spinWeeksSize; + GtkWidget* spinDaysSize; + GtkWidget* spinHoursSize; + GtkWidget* spinMinutesSize; + GtkWidget* lblNameDevice; + GtkWidget* DeviceCombo; + char* name; +} view_device_set_window; + +void set_view_device_menu(char* _set_add_edit); +void view_device_show(GtkWidget *self, char* __glade_path); +void view_device_event(view_device_set_window* view_device_view_device_widgets); +void view_device_on_destroy_subwindow(GtkWidget *self); +void view_device_destroy(GtkWidget *self); +view_device_set_window *view_device_setup_window_base(char* __glade_path); +view_device_set_window *view_device_setup_window_custom(view_device_set_window* view_device_view_device_widgets, GtkBuilder *builder); \ No newline at end of file