YggdrasilWM  0.1.1
A tiny window manager coded in C++
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
 CBar
 CBarsClass to manage the bars This class is a singleton and is responsible for managing the bars instanciate with createInstance and initialize with init should be destroyed with destroy when the program ends Bars::run runs in a separate thread, so all data must be passed through the TSBarsData class that handle synchronization
 CBaseX11Wrapper
 CBinarySpaceBinarySpace class This class represents a space in the layout. it's designed like a binary tree, with a parent, a right and a left child. Only leaf spaces have clients
 CBindingBinding store a binding to a command object
 CClientResponsible for managing the client windows. It creates a frame around the client window, Map the frame, Add the window to the save set, Reparent it, grab the buttons It also unframe the client window by removing the frame and reparenting the window to the root window It also move, resize, restack the client window
 CCommandBase
 CConfigDataBarConfigDataBar class Contains the configuration data for one bar in the window manager Inherits from ConfigDataBase class
 CConfigDataBarsConfigDataBars class
 CConfigDataBaseConfigDataBase class This class is an interface for the ConfigData classes This is a pure virtual class and should be inherited by the ConfigData classes
 CConfigDataBindingsConfigDataBindings class. This class is used to handle the bindings configuration it instanciates the bindings in a vector it handle grabbing keys and handle keypress events
 CConfigDataGroupConfigDataGroup class Store the configuration for a group from the config file. the logic of groups is handled by the Group class the logic of the layout of a group is handled in a sub class of LayoutManager class e.g. TreeLayoutManager
 CConfigDataGroupsConfigDataGroups class. stores an array of ConfigDataGroup created from the config file
 CConfigDataWidget
 CConfigFileHandlerHandle file I/O and JSON parsing for the configuration file. If no path is provided, it will search for the configuration file in the default paths
 CConfigHandlerConfigHandler class This class is responsible for handling the configuration It can be created with a file name or not, if not config files will be looked up in default path defined in ConfigFileHandler ConfigHandler is a Singleton class and should be created after the Logger class and before the WindowManager class
 CDeserializedXKeyEvent
 CEventHandlerEventHandler class. This class is responsible for handling the XEvents. It is a part of the WindowManager class The event handlers functions are private and are called by the dispatchEvent function
 CFocusGroupFocusGroup implement the mecanism to switch between group
 CGroupGroups are defined in the config file. Each group use a specific layout manager and manage it's list of clients, a client can be in multiple groups
 CGrowGrow a window
 CLayoutManagerLayoutManager class Interface for the layout managers
 CLoggerLogger class This class is responsible for logging. It can be created with a file name or an ostream. The log level can be set to filter the messages
 CMasterLayoutManager
 CMasterSpace
 CmockX11Wrapper
 CPointPoint struct This struct represents a 2D point
 CQuitQuit implement the mecanism to quit the window manager
 CSpawnImplement the mecanism to spawn a program
 CTreeLayoutManagerTreeLayoutManager class this class is a subclass of LayoutManager it handles the tree style layout When a client is added, it looks recursively for the biggest space and splits it in two placing the new client in the left space and the old client in the right space
 CTSBarsData
 CWidget
 CWindowManagerWindowManager class This class is responsible for managing the windows.in an X11 session. It is the main class of the project. It should be instantiated only via the static create function. You must use the init function to initialize the WindowManager. The Run function is the main loop of the WindowManager
 CX11Exception
 CX11Wrapper
 CYggdrasilException