#include "AddDateWindow.h" AddDateWindow::AddDateWindow(Naptar& np) : Gtk::Dialog(),error_window(NULL),np(np) { set_title("Dátum Hozzáadása"); set_icon_name("x-office-calendar"); set_default_size(400,300); set_position(Gtk::WindowPosition::WIN_POS_CENTER); calendar = Gtk::Calendar(); get_vbox()->add(calendar); label = Gtk::Label("Megjegyzés"); get_vbox()->add(label); entry = Gtk::Entry(); get_vbox()->add(entry); cancel_button = add_button("Mégse",1); cancel_button->signal_clicked().connect( sigc::mem_fun(*this,&AddDateWindow::close) ); ok_button = add_button("Alkalmaz",0); ok_button->signal_clicked().connect( sigc::mem_fun(*this,&AddDateWindow::addToCalendar) ); show_all_children(); } AddDateWindow::~AddDateWindow(){ delete cancel_button; delete ok_button; } void AddDateWindow::addToCalendar() { int ev,honap,nap; calendar.get_date((guint&)ev,(guint&)honap,(guint&)nap); if(!np.foglalt(ev,honap+1,nap)){ np.hozzaad(new Datum(ev,honap+1,nap,entry.get_buffer()->get_text().c_str())); close(); }else{ createErrorWindow(); } } void AddDateWindow::errorWinClose() { delete error_window; error_window= NULL; } void AddDateWindow::createErrorWindow() { if(error_window != NULL) return; error_window = new ErrorWindow; error_window->signal_hide().connect(sigc::mem_fun(*this, &AddDateWindow::errorWinClose)); error_window->show(); } AddDateWindow::ErrorWindow::ErrorWindow(): text("Hiba! A kivánt már foglalt!"){ set_default_size(350,100); set_title("Hiba"); set_icon_name("dialog-cancel"); get_vbox()->add(text); btn = add_button("Ok",0); btn->signal_clicked().connect( sigc::mem_fun(*this,&AddDateWindow::ErrorWindow::close) ); show_all_children(); } AddDateWindow::ErrorWindow::~ErrorWindow(){ delete btn; }