placement.hh (680B)
1 #ifndef __PLACEMENT_H_GUARD__ 2 #define __PLACEMENT_H_GUARD__ 3 4 #include "../winsys/geometry.hh" 5 #include "../winsys/decoration.hh" 6 7 #include <cstdlib> 8 #include <optional> 9 10 typedef class Client* Client_ptr; 11 12 struct PlacementTarget final 13 { 14 enum class TargetType 15 { 16 Client, 17 Tab, 18 Layout 19 }; 20 21 TargetType type; 22 union 23 { 24 Client_ptr client; 25 std::size_t tab; 26 }; 27 }; 28 29 struct Placement final 30 { 31 enum class PlacementMethod 32 { 33 Free, 34 Tile, 35 }; 36 37 PlacementMethod method; 38 Client_ptr client; 39 winsys::Decoration decoration; 40 std::optional<winsys::Region> region; 41 }; 42 43 #endif//__PLACEMENT_H_GUARD__