|
|
|
@ -154,7 +154,7 @@ void TileSheetEditorImGui::keyStateChanged(turbine::Key key, bool down) {
|
|
|
|
|
m_subsheetEditor.close();
|
|
|
|
|
m_exportMenu.close();
|
|
|
|
|
}
|
|
|
|
|
auto const popupOpen = m_subsheetEditor.isOpen() && m_exportMenu.isOpen();
|
|
|
|
|
auto const popupOpen = m_subsheetEditor.isOpen() || m_exportMenu.isOpen();
|
|
|
|
|
auto const pal = m_model.pal();
|
|
|
|
|
if (!popupOpen) {
|
|
|
|
|
auto const colorCnt = core::colorCnt(pal, m_model.palettePage());
|
|
|
|
@ -200,6 +200,17 @@ void TileSheetEditorImGui::keyStateChanged(turbine::Key key, bool down) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void TileSheetEditorImGui::draw(studio::StudioContext&) noexcept {
|
|
|
|
|
auto const popupOpen = m_subsheetEditor.isOpen() || m_exportMenu.isOpen();
|
|
|
|
|
if (!popupOpen && m_tool == TileSheetTool::Select) {
|
|
|
|
|
if (ImGui::IsKeyPressed(ImGuiKey_ModCtrl)) {
|
|
|
|
|
if (ImGui::IsKeyPressed(ImGuiKey_A)) {
|
|
|
|
|
auto const&img = m_model.activeSubSheet();
|
|
|
|
|
m_model.setSelection({{}, {img.columns * TileWidth, img.rows * TileHeight}});
|
|
|
|
|
} else if (ImGui::IsKeyPressed(ImGuiKey_G)) {
|
|
|
|
|
m_model.clearSelection();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
auto const paneSize = ImGui::GetContentRegionAvail();
|
|
|
|
|
auto const tileSheetParentSize = ImVec2(paneSize.x - m_palViewWidth, paneSize.y);
|
|
|
|
|
auto const fbSize = ox::Vec2(tileSheetParentSize.x - 16, tileSheetParentSize.y - 16);
|
|
|
|
@ -209,10 +220,10 @@ void TileSheetEditorImGui::draw(studio::StudioContext&) noexcept {
|
|
|
|
|
}
|
|
|
|
|
ImGui::EndChild();
|
|
|
|
|
ImGui::SameLine();
|
|
|
|
|
ImGui::BeginChild("Controls", ImVec2(m_palViewWidth - 8, paneSize.y), true);
|
|
|
|
|
ImGui::BeginChild("Controls", {m_palViewWidth - 8, paneSize.y}, true);
|
|
|
|
|
{
|
|
|
|
|
auto const controlsSize = ImGui::GetContentRegionAvail();
|
|
|
|
|
ImGui::BeginChild("ToolBox", ImVec2(m_palViewWidth - 24, 30), true);
|
|
|
|
|
ImGui::BeginChild("ToolBox", {m_palViewWidth - 24, 30}, true);
|
|
|
|
|
{
|
|
|
|
|
auto const btnSz = ImVec2(45, 14);
|
|
|
|
|
if (ImGui::Selectable("Select", m_tool == TileSheetTool::Select, 0, btnSz)) {
|
|
|
|
@ -232,15 +243,15 @@ void TileSheetEditorImGui::draw(studio::StudioContext&) noexcept {
|
|
|
|
|
ImGui::EndChild();
|
|
|
|
|
auto const ySize = controlsSize.y - 38;
|
|
|
|
|
// draw palette/color picker
|
|
|
|
|
ImGui::BeginChild("Palette", ImVec2(m_palViewWidth - 24, ySize / 2.f), true);
|
|
|
|
|
ImGui::BeginChild("Palette", {m_palViewWidth - 24, ySize / 2.f}, true);
|
|
|
|
|
{
|
|
|
|
|
drawPaletteSelector();
|
|
|
|
|
}
|
|
|
|
|
ImGui::EndChild();
|
|
|
|
|
ImGui::BeginChild("SubSheets", ImVec2(m_palViewWidth - 24, ySize / 2.f), true);
|
|
|
|
|
ImGui::BeginChild("SubSheets", {m_palViewWidth - 24, ySize / 2.f}, true);
|
|
|
|
|
{
|
|
|
|
|
static constexpr auto btnHeight = ig::BtnSz.y;
|
|
|
|
|
auto const btnSize = ImVec2(btnHeight, btnHeight);
|
|
|
|
|
auto const btnSize = ImVec2{btnHeight, btnHeight};
|
|
|
|
|
if (ig::PushButton("+", btnSize)) {
|
|
|
|
|
auto insertOnIdx = m_model.activeSubSheetIdx();
|
|
|
|
|
auto const&parent = m_model.activeSubSheet();
|
|
|
|
|