#pragma once
#include <string>

class asIScriptFunction;
class CScriptAny;

namespace Deer {
    namespace EditorEngine {
        // Set up the colums to fit the pixelSize elements
        void setupAutomaticColumns(int pixelSize);
        // Set up the colums to the number
        void setupColumns(int);
        // Iterates to the next column
        void nextColumn();
        // Ends the columns made with setupColumns
        void endColumns();

        // Renders a component node
        bool componentNode(std::string&, CScriptAny*, asIScriptFunction*);
        // Renders a component node with option to menu
        bool componentNode_contextMenu(std::string&, CScriptAny*, asIScriptFunction*, asIScriptFunction*);
        // Renders a tree leaf
        void treeNode(std::string&, bool);
        // Renders a tree node with its sub nodes
        bool treeNodeRecursive(std::string&, bool, CScriptAny*, asIScriptFunction&);

        void space();
        void space_params(int, int);
    }
}