#include "pch.h" #include "app.h" #include "node_dialog_open.h" #include "node_dialog_browse.h" void App::dialog_newdoc() { if (canvas) { auto dialog = std::make_shared(); dialog->m_manager = &layout; dialog->init(); dialog->create(); dialog->loaded(); dialog->input->set_text("name"); layout[main_id]->add_child(dialog); layout[main_id]->update(); App::I.showKeyboard(); dialog->btn_ok->on_click = [this, dialog](Node*) { doc_name = dialog->input->m_string; if (auto docname = layout[main_id]->find("txt-docname")) docname->set_text(("Panodoc: " + doc_name).c_str()); layers->clear(); canvas->m_canvas->m_layers.clear(); canvas->m_canvas->m_order.clear(); canvas->reset_camera(); ActionManager::clear(); canvas->m_canvas->layer_add("Default"); layers->add_layer("Default"); dialog->destroy(); App::I.hideKeyboard(); }; dialog->btn_cancel->on_click = [this, dialog](Node*) { dialog->destroy(); App::I.hideKeyboard(); }; } } void App::dialog_open() { if (canvas) { // load thumbnail test auto dialog = std::make_shared(); dialog->m_manager = &layout; dialog->data_path = data_path; dialog->init(); dialog->create(); dialog->loaded(); layout[main_id]->add_child(dialog); layout[main_id]->update(); dialog->btn_ok->on_click = [this, dialog](Node*) { canvas->reset_camera(); layers->clear(); canvas->m_canvas->project_open(dialog->selected_path); doc_name = dialog->selected_name; if (auto docname = layout[main_id]->find("txt-docname")) docname->set_text(("Panodoc: " + doc_name).c_str()); for (auto& i : canvas->m_canvas->m_order) layers->add_layer(canvas->m_canvas->m_layers[i].m_name.c_str()); dialog->destroy(); ActionManager::clear(); }; } } void App::dialog_browse() { if (canvas) { // load thumbnail test auto dialog = std::make_shared(); dialog->m_manager = &layout; dialog->data_path = data_path; dialog->init(); dialog->create(); dialog->loaded(); layout[main_id]->add_child(dialog); layout[main_id]->update(); dialog->btn_ok->on_click = [this, dialog](Node*) { canvas->reset_camera(); layers->clear(); canvas->m_canvas->project_open(dialog->selected_path); doc_name = dialog->selected_name; if (auto docname = layout[main_id]->find("txt-docname")) docname->set_text(("Panodoc: " + doc_name).c_str()); for (auto& i : canvas->m_canvas->m_order) layers->add_layer(canvas->m_canvas->m_layers[i].m_name.c_str()); dialog->destroy(); ActionManager::clear(); }; } } void App::dialog_save() { if (canvas) { auto dialog = std::make_shared(); dialog->m_manager = &layout; dialog->init(); dialog->create(); dialog->loaded(); dialog->input->set_text(doc_name); App::I.showKeyboard(); layout[main_id]->add_child(dialog); layout[main_id]->update(); dialog->btn_ok->on_click = [this, dialog](Node*) { doc_name = dialog->input->m_string; if (auto docname = layout[main_id]->find("txt-docname")) docname->set_text(("Panodoc: " + doc_name).c_str()); canvas->m_canvas->project_save(data_path + "/" + doc_name + ".pano"); dialog->destroy(); App::I.hideKeyboard(); }; dialog->btn_cancel->on_click = [this, dialog](Node*) { dialog->destroy(); App::I.hideKeyboard(); }; } } void App::dialog_export() { if (canvas) { canvas->m_canvas->export_equirectangular(data_path); } } void App::dialog_layer_rename() { auto dialog = std::make_shared(); dialog->m_manager = &layout; dialog->data_path = data_path; dialog->init(); dialog->create(); dialog->loaded(); dialog->input->set_text(layers->m_current_layer->m_label_text); App::I.showKeyboard(); layout[main_id]->add_child(dialog); layout[main_id]->update(); dialog->btn_ok->on_click = [this,dialog](Node*) { layers->m_current_layer->set_name(dialog->get_name().c_str()); canvas->m_canvas->m_layers[canvas->m_canvas->m_current_layer_idx].m_name = dialog->get_name(); dialog->destroy(); App::I.hideKeyboard(); }; dialog->btn_cancel->on_click = [this, dialog](Node*) { dialog->destroy(); App::I.hideKeyboard(); }; popup->mouse_release(); popup->destroy(); }