This repo is archived. You can view files and clone it, but cannot push or open issues or pull requests.
hf_naptar/AddDateWindow.cpp
2020-05-10 12:24:31 +02:00

67 lines
1.8 KiB
C++

#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;
}