kranewm

An ICCCM & EWMH compliant X11 reparenting, dynamic window manager, written in C++
git clone git://git.deurzen.net/kranewm
Log | Files | Refs | LICENSE

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__