/* Copyright 2003-2005 ROBLOX Corporation, All Rights Reserved */ #pragma once #include "V8DataModel/MouseCommand.h" namespace RBX { class ModelTool : public MouseCommand { private: typedef MouseCommand Super; protected: shared_ptr topInstance; /*override*/ void onMouseHover(const shared_ptr& inputObject); /*override*/ void render3dAdorn(Adorn* adorn); public: ModelTool(Workspace* workspace); ~ModelTool(); }; extern const char* const sAnchorTool; class AnchorTool : public Named { private: bool allAnchored; protected: /*override*/ void onMouseHover(const shared_ptr& inputObject); /*override*/ shared_ptr onMouseDown(const shared_ptr& inputObject); /*override*/ const std::string getCursorName() const; /*override*/ shared_ptr onMouseUp(const shared_ptr& inputObject) {return shared_from(this);} // sticky public: AnchorTool(Workspace* workspace) : Named(workspace) , allAnchored(false) {} static bool allChildrenAnchored(Instance* test); }; extern const char* const sLockTool; class LockTool : public Named { protected: /*override*/ shared_ptr onMouseDown(const shared_ptr& inputObject); /*override*/ const std::string getCursorName() const; /*override*/ shared_ptr onMouseUp(const shared_ptr& inputObject) {return shared_from(this);} // sticky public: LockTool(Workspace* workspace) : Named(workspace) {} }; } // namespace RBX