/***************************************************************************
*                                                                          *
*  Copyright (C) Golaem S.A.  All Rights Reserved.                         *
*                                                                          *
***************************************************************************/

#pragma once

#include "glmSmartPointer.h"
#include "glmVector2.h"
#include "glmVector4.h"
#include "glmCoreAPI.h"

namespace glm
{
    class AbstractGraphicalContainerNode;
    /**
	* \brief StickyNotes comments
	*/
    class GLM_CORE_API StickyNotes : public ReferenceCounter
    {
    public:
        /// Smart pointer definition
        typedef SmartPointer<StickyNotes> SP;

        /// The node is mark as selected or not
        bool _selected;

        glm::GlmString _title;
        glm::GlmString _text;
        int _textSize;

        Vector2 _pos;
        Vector2 _size;
        Vector4 _color;
        Vector4 _textColor;

        bool _showTitle;
        bool _titleOnTop;

        AbstractGraphicalContainerNode* _container;

    public:
        GLM_CLASS_STAT_ID( glm::MemoryStatIds::Editors)

        StickyNotes();

        virtual ~StickyNotes();

    protected:
        // cloning
        friend class CloneFactory;
        inline virtual StickyNotes* create() const;

    private:
        GLM_DISALLOW_COPY_AND_ASSIGN(StickyNotes);
    };

    //-------------------------------------------------------------------------
    inline StickyNotes* StickyNotes::create() const
    {
        StickyNotes* myNewStickyNotes = GLM_NEW(StickyNotes, myNewStickyNotes, getClassMemoryStatId());
        return myNewStickyNotes;
    }
} // namespace glm
