67 lines
1.8 KiB
C++
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;
|
|
}
|