#include "MainWindow.h" void MainWindow::markDay(){ cal->clear_marks(); int ev,honap,nap; cal->get_date((guint&)ev,(guint&)honap,(guint&)nap); for(int x=1; x < 32;++x){ if(np.foglalt(ev, honap+1, x)) cal->mark_day(x); } } void MainWindow::daySelected(){ int ev,honap,nap; cal->get_date((guint&)ev,(guint&)honap,(guint&)nap); Datum day(ev,honap+1,nap); if(np.foglalt(day)) for(Naptar::iterator it = np.begin();it != np.end();++it){ if(*it == day) label->set_label(it->getMegjegyzes()); } else label->set_label("Erre a napra nincs bejegyzés!"); } void MainWindow::about(){ if(aboutw != NULL) return; aboutw = new AboutWindow; aboutw->signal_hide().connect(sigc::mem_fun(*this, &MainWindow::aboutWinClose)); aboutw->show(); } void MainWindow::aboutWinClose(){ delete aboutw; aboutw = NULL; } void MainWindow::addDate() { if(addDatew != NULL) return; addDatew = new AddDateWindow(np); addDatew->signal_hide().connect(sigc::mem_fun(*this, &MainWindow::addDateWinClose)); addDatew->show(); } void MainWindow::addAnniversary(){ if(addDatew != NULL) return; addDatew = new AnniversaryWindow(np); addDatew->signal_hide().connect(sigc::mem_fun(*this, &MainWindow::addDateWinClose)); addDatew->show(); } void MainWindow::addDateWinClose(){ delete addDatew; addDatew = NULL; markDay(); daySelected(); } MainWindow::MainWindow(BaseObjectType* b,const Glib::RefPtr& refGlade) : Gtk::Window(b), np(),builder(refGlade),aboutw(NULL),addDatew(NULL){ builder->get_widget("cal",cal); builder->get_widget("label",label); cal->signal_day_selected().connect(sigc::mem_fun(*this,&MainWindow::daySelected) ); cal->signal_prev_month().connect(sigc::mem_fun(*this,&MainWindow::markDay) ); cal->signal_next_month().connect(sigc::mem_fun(*this,&MainWindow::markDay) ); cal->signal_prev_year().connect(sigc::mem_fun(*this,&MainWindow::markDay) ); cal->signal_next_year().connect(sigc::mem_fun(*this,&MainWindow::markDay) ); builder->get_widget("import",mitem); mitem->signal_activate().connect(sigc::mem_fun(*this,&MainWindow::importFile)); builder->get_widget("export",mitem); mitem->signal_activate().connect(sigc::mem_fun(*this,&MainWindow::exportFile)); builder->get_widget("quit",mitem); mitem->signal_activate().connect(sigc::mem_fun(*this,&Gtk::Window::close)); builder->get_widget("about",mitem); mitem->signal_activate().connect(sigc::mem_fun(*this,&MainWindow::about)); builder->get_widget("add-date",mitem); mitem->signal_activate().connect(sigc::mem_fun(*this,&MainWindow::addDate)); builder->get_widget("add-anv",mitem); mitem->signal_activate().connect(sigc::mem_fun(*this,&MainWindow::addAnniversary)); daySelected(); markDay(); } MainWindow::~MainWindow() { delete cal; delete label; } void MainWindow::importFile() { Gtk::FileChooserDialog dialog("Kérem válasszon egy CSV fájlt",Gtk::FILE_CHOOSER_ACTION_OPEN); dialog.set_transient_for(*this); Glib::RefPtr file_filter1 = Gtk::FileFilter::create(); file_filter1->add_pattern("*.csv"); file_filter1->set_name("Pontosvesszővel elválasztott CSV fájl"); dialog.add_filter(file_filter1); dialog.add_button("_Mégse", Gtk::RESPONSE_CANCEL); dialog.add_button("Kiválasztás", Gtk::RESPONSE_OK); int result = dialog.run(); if(result == Gtk::RESPONSE_OK) np.importCSV(dialog.get_filename().c_str()); } void MainWindow::exportFile() { Gtk::FileChooserDialog dialog("Válasszon mentési helyet",Gtk::FILE_CHOOSER_ACTION_SAVE); dialog.set_transient_for(*this); Glib::RefPtr file_filter1 = Gtk::FileFilter::create(); file_filter1->add_pattern("*.csv"); file_filter1->set_name("Pontosvesszővel elválasztott CSV fájl"); dialog.add_filter(file_filter1); dialog.add_button("_Mégse", Gtk::RESPONSE_CANCEL); dialog.add_button("Kiválasztás", Gtk::RESPONSE_OK); int result = dialog.run(); if(result == Gtk::RESPONSE_OK) np.exportCSV(dialog.get_filename().c_str()); }