#ifndef _LLXDO_SLOT_ #define _LLXDO_SLOT_ #include #define GMENU_I_KNOW_THIS_IS_UNSTABLE #include #include #include #define LLXDO_SLOT_EMPTY 0 #define LLXDO_SLOT_DESKTOP 1 namespace net { namespace lliurex { namespace llxdo { class Slot : public lgi::Widget { public: int type; virtual void Draw(cairo_t * cairo)=0; virtual std::vector Serialize()=0; }; class EmptySlot : public Slot { private: cairo_surface_t * srf_empty; cairo_surface_t * srf_add; public: EmptySlot(); void Draw(cairo_t * cairo); std::vector Serialize(); }; class SlotDesktop: public Slot { private: GDesktopAppInfo * app_info; cairo_surface_t * srf_normal; public: SlotDesktop(GDesktopAppInfo * app_info); void Draw(cairo_t * cairo); std::vector Serialize(); }; } } } #endif