48 lines
1.7 KiB
C++
48 lines
1.7 KiB
C++
//
|
|
// Created by tv on 28.06.23.
|
|
//
|
|
|
|
#include "RailSelectWidget.h"
|
|
#include "MainWindow.h"
|
|
#include <imgui.h>
|
|
#include "IconsFontAwesome6.h"
|
|
#include "MainViewport.h"
|
|
|
|
RailSelectWidget::RailSelectWidget(): Graphics::Widget("Rails",false) {
|
|
|
|
}
|
|
|
|
void RailSelectWidget::Draw() {
|
|
auto wind = GetMainWindow();
|
|
|
|
for(auto railIter = wind->loadedMap.Rails.begin();railIter != wind->loadedMap.Rails.end();railIter++){
|
|
Rail &rail = *railIter;
|
|
if(ImGui::Selectable((rail.Name + ": " + rail.Type + "##" + std::to_string(rail.runtimeID)).c_str(), wind->selectedElem == &rail)){
|
|
wind->selectedElem = &rail;
|
|
}
|
|
|
|
if(ImGui::IsMouseClicked(ImGuiMouseButton_Right) && ImGui::IsItemHovered()){
|
|
ImGui::OpenPopup((std::string("Right Click Menu: RailSelect ") + std::to_string(rail.runtimeID)).c_str());
|
|
//ImGui::OpenPopup((std::string("Change Name##: ObjSelect ") + (std::to_string(obj.runtimeID))).c_str());
|
|
}
|
|
if(ImGui::BeginPopup((std::string("Right Click Menu: RailSelect ") + std::to_string(rail.runtimeID)).c_str())){
|
|
if(ImGui::MenuItem((std::string("Delete##: RailSelect ") + std::to_string(rail.runtimeID)).c_str())){
|
|
std::cout << "Deleting " + rail.Name << std::endl;
|
|
wind->loadedMap.Rails.erase(railIter);
|
|
wind->selectedElem = nullptr;
|
|
ImGui::EndPopup();
|
|
break;
|
|
}
|
|
|
|
ImGui::EndPopup();
|
|
}
|
|
}
|
|
|
|
if(ImGui::Button(ICON_FA_PLUS)){
|
|
wind->selectedElem = nullptr;
|
|
|
|
auto vp = g_getMainViewport();
|
|
Vector3 pos = {vp->camPos.x, -vp->camPos.y, vp->camPos.z};
|
|
wind->loadedMap.Rails.emplace_back(pos);
|
|
}
|
|
}
|