Files
viseq/src/clipboard.h
T

45 lines
1.2 KiB
C++
Raw Normal View History

#pragma once
#include "midi-node.h"
#include "node.h"
namespace VISEQ::APP {
class Clipboard {
public:
Clipboard() {}
GRAPH::NODES::VEC_SPTR_Node clipboard;
GRAPH::NODES::VEC_SPTR_Node pasteNodes(){
return clipboard;
}
void copyNodes(GRAPH::NODES::VEC_SPTR_Node _nodes, Vec2Df position){
for(auto n: _nodes){
copyNode(n, position + n->drag_offset);
}
}
void copyNodes(std::vector<std::shared_ptr<GRAPH::NODES::MidiNode>> _nodes, Vec2Df position){
for(auto n: _nodes){
copyNode(n, position + n->drag_offset);
}
}
GRAPH::NODES::SPTR_Node copyNode(GRAPH::NODES::SPTR_Node n, Vec2Df position){
std::cout << "copy basenode" << std::endl;
clipboard.insert(clipboard.end(), std::make_shared<GRAPH::NODES::Node>(*n));
clipboard.back()->setPosition(position);
return clipboard.back();
}
GRAPH::NODES::SPTR_Node copyNode(std::shared_ptr<GRAPH::NODES::MidiNode> n, Vec2Df position){
std::cout << "copy midinode" << std::endl;
clipboard.insert(clipboard.end(), std::make_shared<GRAPH::NODES::MidiNode>(*n));
clipboard.back()->setPosition(position);
return clipboard.back();
}
};
}