added nodes.

This commit is contained in:
Christoph Holzheuer
2026-04-02 15:15:28 +02:00
parent b05180f575
commit 0b54793b08
43 changed files with 4371 additions and 0 deletions

View File

@@ -0,0 +1,46 @@
#ifndef NTX_HEADNODE_H
#define NTX_HEADNODE_H
#include <ntxinode.h>
#include <ntxclipboard.h>
#include <memory>
namespace ntx
{
class NtxINode;
using NtxNodePtr = std::shared_ptr<NtxINode>;
class NtxHeadNode
{
public:
NtxHeadNode() = default;
~NtxHeadNode() = default;
NtxHeadNode(const NtxHeadNode&) = delete;
NtxHeadNode& operator=(const NtxHeadNode&) = delete;
NtxHeadNode(NtxHeadNode&&) = default;
NtxHeadNode& operator=(NtxHeadNode&&) = default;
bool copyNode(NtxNodePtr node);
bool cutNode(NtxNodePtr node);
NtxNodePtr pasteNode(NtxNodePtr parent, int index = -1);
bool addNode(NtxNodePtr parent, NtxNodePtr node, int index = -1);
bool deleteNode(NtxNodePtr node);
bool hasClipboard() const;
void clearClipboard();
NtxNodePtr peekClipboard() const;
private:
NtxClipboard m_clipboard; // ← Eigene Klasse als Member!
bool m_isCutOperation{false};
bool validateNode(NtxNodePtr node) const;
bool canAddToParent(NtxNodePtr parent, NtxNodePtr child) const;
};
} // namespace ntx
#endif // NTX_HEADNODE_H