Add GridModify tool, and visibility flag to grids
This commit is contained in:
parent
2325d84c22
commit
76dcd4eac5
15 changed files with 271 additions and 16 deletions
|
|
@ -6,6 +6,7 @@
|
|||
#include "../DrawComponents/DrawComponent.hpp"
|
||||
#include "EllipseDrawTool.hpp"
|
||||
#include "EyeDropperTool.hpp"
|
||||
#include "GridModifyTool.hpp"
|
||||
#include "../InputManager.hpp"
|
||||
#include "../SharedTypes.hpp"
|
||||
#include "../Server/CommandList.hpp"
|
||||
|
|
@ -231,6 +232,17 @@ void DrawingProgram::tool_options_gui() {
|
|||
}
|
||||
}
|
||||
|
||||
void DrawingProgram::modify_grid(const std::string& gridToModifyName) {
|
||||
if(world.gridMan.grids.contains(gridToModifyName)) {
|
||||
if(drawTool->get_type() != DrawingProgramToolType::GRIDMODIFY)
|
||||
switch_to_tool(DrawingProgramToolType::GRIDMODIFY);
|
||||
GridModifyTool* gridModToolPtr = static_cast<GridModifyTool*>(drawTool.get());
|
||||
gridModToolPtr->set_grid_name(gridToModifyName);
|
||||
}
|
||||
else if(drawTool->get_type() == DrawingProgramToolType::GRIDMODIFY)
|
||||
switch_to_tool(DrawingProgramToolType::EDIT);
|
||||
}
|
||||
|
||||
void DrawingProgram::update() {
|
||||
if(world.main.window.lastFrameTime > std::chrono::milliseconds(33)) { // Around 30FPS
|
||||
if(!badFrametimeTimePoint)
|
||||
|
|
|
|||
|
|
@ -55,6 +55,8 @@ class DrawingProgram {
|
|||
void switch_to_tool_ptr(std::unique_ptr<DrawingProgramToolBase> newTool);
|
||||
|
||||
void clear_draw_cache();
|
||||
|
||||
void modify_grid(const std::string& gridToModifyName);
|
||||
private:
|
||||
std::optional<std::chrono::steady_clock::time_point> badFrametimeTimePoint;
|
||||
std::optional<std::chrono::steady_clock::time_point> unorderedObjectsExistTimePoint;
|
||||
|
|
@ -122,4 +124,5 @@ class DrawingProgram {
|
|||
friend class DrawingProgramCache;
|
||||
friend class DrawingProgramSelection;
|
||||
friend class LassoSelectTool;
|
||||
friend class GridEditTool;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@
|
|||
#include "EyeDropperTool.hpp"
|
||||
#include "ScreenshotTool.hpp"
|
||||
#include "EditTool.hpp"
|
||||
#include "GridModifyTool.hpp"
|
||||
|
||||
DrawingProgramToolBase::DrawingProgramToolBase(DrawingProgram& initDrawP):
|
||||
drawP(initDrawP)
|
||||
|
|
@ -37,6 +38,8 @@ std::unique_ptr<DrawingProgramToolBase> DrawingProgramToolBase::allocate_tool_ty
|
|||
return std::make_unique<EyeDropperTool>(drawP);
|
||||
case DrawingProgramToolType::SCREENSHOT:
|
||||
return std::make_unique<ScreenshotTool>(drawP);
|
||||
case DrawingProgramToolType::GRIDMODIFY:
|
||||
return std::make_unique<GridModifyTool>(drawP);
|
||||
case DrawingProgramToolType::EDIT:
|
||||
return std::make_unique<EditTool>(drawP);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ enum class DrawingProgramToolType : int {
|
|||
TEXTBOX,
|
||||
EYEDROPPER,
|
||||
SCREENSHOT,
|
||||
GRIDMODIFY,
|
||||
EDIT
|
||||
};
|
||||
|
||||
|
|
|
|||
38
src/DrawingProgram/GridModifyTool.cpp
Normal file
38
src/DrawingProgram/GridModifyTool.cpp
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
#include "GridModifyTool.hpp"
|
||||
#include "DrawingProgram.hpp"
|
||||
#include "../MainProgram.hpp"
|
||||
#include "../DrawData.hpp"
|
||||
|
||||
GridModifyTool::GridModifyTool(DrawingProgram& initDrawP):
|
||||
DrawingProgramToolBase(initDrawP)
|
||||
{
|
||||
}
|
||||
|
||||
void GridModifyTool::set_grid_name(const std::string& gridToModifyName) {
|
||||
gridName = gridToModifyName;
|
||||
}
|
||||
|
||||
DrawingProgramToolType GridModifyTool::get_type() {
|
||||
return DrawingProgramToolType::GRIDMODIFY;
|
||||
}
|
||||
|
||||
void GridModifyTool::gui_toolbox() {
|
||||
Toolbar& t = drawP.world.main.toolbar;
|
||||
t.gui.push_id("Grid modify tool");
|
||||
t.gui.text_label_centered("Edit Grid");
|
||||
t.gui.text_label_centered(gridName);
|
||||
t.gui.pop_id();
|
||||
}
|
||||
|
||||
void GridModifyTool::tool_update() {
|
||||
}
|
||||
|
||||
bool GridModifyTool::prevent_undo_or_redo() {
|
||||
return false;
|
||||
}
|
||||
|
||||
void GridModifyTool::draw(SkCanvas* canvas, const DrawData& drawData) {
|
||||
}
|
||||
|
||||
void GridModifyTool::switch_tool(DrawingProgramToolType newTool) {
|
||||
}
|
||||
18
src/DrawingProgram/GridModifyTool.hpp
Normal file
18
src/DrawingProgram/GridModifyTool.hpp
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
#pragma once
|
||||
#include "DrawingProgramToolBase.hpp"
|
||||
|
||||
class DrawingProgram;
|
||||
|
||||
class GridModifyTool : public DrawingProgramToolBase {
|
||||
public:
|
||||
GridModifyTool(DrawingProgram& initDrawP);
|
||||
void set_grid_name(const std::string& gridToModifyName);
|
||||
virtual DrawingProgramToolType get_type() override;
|
||||
virtual void gui_toolbox() override;
|
||||
virtual void tool_update() override;
|
||||
virtual void draw(SkCanvas* canvas, const DrawData& drawData) override;
|
||||
virtual bool prevent_undo_or_redo() override;
|
||||
virtual void switch_tool(DrawingProgramToolType newTool) override;
|
||||
private:
|
||||
std::string gridName;
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue