void ChangePaddingOfDisplay(const std::string &Side, int Offset) { screen_info *Screen = GetDisplayOfMousePointer(); if(Side == "left") { if(Screen->Space[Screen->ActiveSpace].PaddingLeft + Offset >= 0) Screen->Space[Screen->ActiveSpace].PaddingLeft += Offset; } else if(Side == "right") { if(Screen->Space[Screen->ActiveSpace].PaddingRight + Offset >= 0) Screen->Space[Screen->ActiveSpace].PaddingRight += Offset; } else if(Side == "top") { if(Screen->Space[Screen->ActiveSpace].PaddingTop + Offset >= 0) Screen->Space[Screen->ActiveSpace].PaddingTop += Offset; } else if(Side == "bottom") { if(Screen->Space[Screen->ActiveSpace].PaddingBottom + Offset >= 0) Screen->Space[Screen->ActiveSpace].PaddingBottom += Offset; } SetRootNodeContainer(Screen, Screen->Space[Screen->ActiveSpace].RootNode); CreateNodeContainers(Screen, Screen->Space[Screen->ActiveSpace].RootNode, true); ApplyNodeContainer(Screen->Space[Screen->ActiveSpace].RootNode); }
void ChangePaddingOfDisplay(const std::string &Side, int Offset) { screen_info *Screen = GetDisplayOfMousePointer(); space_info *Space = &Screen->Space[Screen->ActiveSpace]; if(Side == "left") { if(Space->Offset.PaddingLeft + Offset >= 0) Space->Offset.PaddingLeft += Offset; } else if(Side == "right") { if(Space->Offset.PaddingRight + Offset >= 0) Space->Offset.PaddingRight += Offset; } else if(Side == "top") { if(Space->Offset.PaddingTop + Offset >= 0) Space->Offset.PaddingTop += Offset; } else if(Side == "bottom") { if(Space->Offset.PaddingBottom + Offset >= 0) Space->Offset.PaddingBottom += Offset; } if(Space->RootNode) { if(Space->Mode == SpaceModeBSP) { SetRootNodeContainer(Screen, Space->RootNode); CreateNodeContainers(Screen, Space->RootNode, true); } else if(Space->Mode == SpaceModeMonocle) { tree_node *CurrentNode = Space->RootNode; while(CurrentNode) { SetRootNodeContainer(Screen, CurrentNode); CurrentNode = CurrentNode->RightChild; } } ApplyNodeContainer(Space->RootNode, Space->Mode); } }
void ChangeGapOfDisplay(const std::string &Side, int Offset) { screen_info *Screen = GetDisplayOfMousePointer(); if(Side == "vertical") { if(Screen->Space[Screen->ActiveSpace].VerticalGap + Offset >= 0) Screen->Space[Screen->ActiveSpace].VerticalGap += Offset; } else if(Side == "horizontal") { if(Screen->Space[Screen->ActiveSpace].HorizontalGap + Offset >= 0) Screen->Space[Screen->ActiveSpace].HorizontalGap += Offset; } CreateNodeContainers(Screen, Screen->Space[Screen->ActiveSpace].RootNode, true); ApplyNodeContainer(Screen->Space[Screen->ActiveSpace].RootNode); }
void ChangeGapOfDisplay(const std::string &Side, int Offset) { screen_info *Screen = GetDisplayOfMousePointer(); space_info *Space = &Screen->Space[Screen->ActiveSpace]; if(Side == "vertical") { if(Space->Offset.VerticalGap + Offset >= 0) Space->Offset.VerticalGap += Offset; } else if(Side == "horizontal") { if(Space->Offset.HorizontalGap + Offset >= 0) Space->Offset.HorizontalGap += Offset; } if(Space->RootNode && Space->Mode == SpaceModeBSP) { CreateNodeContainers(Screen, Space->RootNode, true); ApplyNodeContainer(Space->RootNode, Space->Mode); } }
void ToggleFocusedNodeSplitMode() { ax_display *Display = AXLibMainDisplay(); space_info *SpaceInfo = &WindowTree[Display->Space->Identifier]; if(!FocusedApplication) return; ax_window *Window = FocusedApplication->Focus; if(!Window) return; tree_node *Node = GetTreeNodeFromWindowID(SpaceInfo->RootNode, Window->ID); if(!Node) return; tree_node *Parent = Node->Parent; if(!Parent || IsLeafNode(Parent)) return; Parent->SplitMode = Parent->SplitMode == SPLIT_VERTICAL ? SPLIT_HORIZONTAL : SPLIT_VERTICAL; CreateNodeContainers(Display, Parent, false); ApplyTreeNodeContainer(Parent); }
void UpdateSpaceOfScreen(space_info *Space, screen_info *Screen) { if(Space->RootNode) { if(Space->Settings.Mode == SpaceModeBSP) { SetRootNodeContainer(Screen, Space->RootNode); CreateNodeContainers(Screen, Space->RootNode, true); } else if(Space->Settings.Mode == SpaceModeMonocle) { link_node *Link = Space->RootNode->List; while(Link) { SetLinkNodeContainer(Screen, Link); Link = Link->Next; } } ApplyTreeNodeContainer(Space->RootNode); Space->NeedsUpdate = false; } }