Rev Author Line No. Line
23 ovan 1 #ifndef CURSOR
2 #define CURSOR
3  
4 #include "interface.h"
5  
6 namespace sleek
7 {
8     namespace gui
9     {
10         class interface;
11         class cursor : public std::enable_shared_from_this<cursor>
12         {
13             public:
14                 cursor(interface*) noexcept;
15                 virtual ~cursor() noexcept;
16  
17                 virtual INTERFACE_GUI_CODE getType() const noexcept { return IGT_CURSOR; }
18  
19                 inline std::shared_ptr<cursor> getptr() noexcept
20                 {
21                     return shared_from_this();
22                 }
23  
24                 virtual void showCursor(bool) noexcept;
25                 virtual void showTexture(bool) noexcept;
26                 virtual bool manage(device::input*) noexcept;
27                 virtual void setTexture(std::shared_ptr<driver::texture>) noexcept;
28                 virtual void setPosition(const math::vec2i&) noexcept;
29  
30                 virtual std::shared_ptr<driver::material> getMaterial() const noexcept;
31                 virtual std::shared_ptr<driver::texture> getTexture() const noexcept;
32  
33                 virtual math::vec2i getPosition() const noexcept;
34                 virtual bool textureIsShow() const noexcept;
35                 virtual bool cursorIsShow() const noexcept;
36  
37                 virtual void render() noexcept;
38             protected:
39                 bool isRender, isVisible;
40                 std::shared_ptr<driver::material> rnd;
41                 std::shared_ptr<driver::texture> tex;
42                 interface *mom;
43             private:
44                 math::vec2i pos;
45         };
46     }
47 }
48 #endif // NODE