Esempio n. 1
0
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);
}
Esempio n. 2
0
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);
    }
}
Esempio n. 3
0
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);
}
Esempio n. 4
0
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);
    }
}
Esempio n. 5
0
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);
}
Esempio n. 6
0
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;
    }
}