コード例 #1
0
ファイル: interpreter.cpp プロジェクト: sukee/kwm
// Command types
void KwmConfigCommand(std::vector<std::string> &Tokens)
{
    if(Tokens[1] == "reload")
    {
        KwmReloadConfig();
    }
    else if(Tokens[1] == "prefix")
    {
        KwmSetGlobalPrefix(Tokens[2]);
    }
    else if(Tokens[1] == "prefix-timeout")
    {
        double Value = 0;
        std::stringstream Stream(Tokens[2]);
        Stream >> Value;
        KwmSetGlobalPrefixTimeout(Value);
    }
コード例 #2
0
ファイル: interpreter.cpp プロジェクト: rmcintosh/kwm
internal void
KwmConfigCommand(std::vector<std::string> &Tokens)
{
    if(Tokens[1] == "reload")
    {
        KwmReloadConfig();
    }
    else if(Tokens[1] == "optimal-ratio")
    {
        KWMSettings.OptimalRatio = ConvertStringToDouble(Tokens[2]);
    }
    else if(Tokens[1] == "border")
    {
        if(Tokens[2] == "focused")
        {
            if(Tokens[3] == "on")
            {
                FocusedBorder.Enabled = true;
                UpdateBorder("focused");
            }
            else if(Tokens[3] == "off")
            {
                FocusedBorder.Enabled = false;
                UpdateBorder("focused");
            }
            else if(Tokens[3] == "size")
            {
                FocusedBorder.Width = ConvertStringToInt(Tokens[4]);
            }
            else if(Tokens[3] == "color")
            {
                FocusedBorder.Color = ConvertHexRGBAToColor(ConvertHexStringToInt(Tokens[4]));
                CreateColorFormat(&FocusedBorder.Color);
                mode *BindingMode = GetBindingMode("default");
                BindingMode->Color = FocusedBorder.Color;
            }
            else if(Tokens[3] == "radius")
            {
                FocusedBorder.Radius = ConvertStringToDouble(Tokens[4]);
            }
        }
        else if(Tokens[2] == "marked")
        {
            if(Tokens[3] == "on")
            {
                MarkedBorder.Enabled = true;
            }
            else if(Tokens[3] == "off")
            {
                MarkedBorder.Enabled = false;
                UpdateBorder("marked");
            }
            else if(Tokens[3] == "size")
            {
                MarkedBorder.Width = ConvertStringToInt(Tokens[4]);
            }
            else if(Tokens[3] == "color")
            {
                MarkedBorder.Color = ConvertHexRGBAToColor(ConvertHexStringToInt(Tokens[4]));
                CreateColorFormat(&MarkedBorder.Color);
            }
            else if(Tokens[3] == "radius")
            {
                MarkedBorder.Radius = ConvertStringToDouble(Tokens[4]);
            }
        }
    }
    else if(Tokens[1] == "float-non-resizable")
    {
        if(Tokens[2] == "off")
            KWMSettings.FloatNonResizable = false;
        else if(Tokens[2] == "on")
            KWMSettings.FloatNonResizable = true;
    }
    else if(Tokens[1] == "lock-to-container")
    {
        if(Tokens[2] == "off")
            KWMSettings.LockToContainer = false;
        else if(Tokens[2] == "on")
            KWMSettings.LockToContainer = true;
    }
    else if(Tokens[1] == "spawn")
    {
        if(Tokens[2] == "left")
            KWMSettings.SpawnAsLeftChild = true;
        else if(Tokens[2] == "right")
            KWMSettings.SpawnAsLeftChild = false;
    }
    else if(Tokens[1] == "tiling")
    {
        if(Tokens[2] == "bsp")
            KWMSettings.Space = SpaceModeBSP;
        else if(Tokens[2] == "monocle")
            KWMSettings.Space = SpaceModeMonocle;
        else if(Tokens[2] == "float")
            KWMSettings.Space = SpaceModeFloating;
    }
    else if(Tokens[1] == "space")
    {
        int ScreenID = ConvertStringToInt(Tokens[2]);
        int DesktopID = ConvertStringToInt(Tokens[3]);
        space_settings *SpaceSettings = GetSpaceSettingsForDesktopID(ScreenID, DesktopID);
        if(!SpaceSettings)
        {
            space_identifier Lookup = { ScreenID, DesktopID };
            space_settings NULLSpaceSettings = { KWMSettings.DefaultOffset, SpaceModeDefault, "", ""};

            space_settings *ScreenSettings = GetSpaceSettingsForDisplay(ScreenID);
            if(ScreenSettings)
                NULLSpaceSettings = *ScreenSettings;

            KWMSettings.SpaceSettings[Lookup] = NULLSpaceSettings;
            SpaceSettings = &KWMSettings.SpaceSettings[Lookup];
        }

        if(Tokens[4] == "mode")
        {
            if(Tokens[5] == "bsp")
                SpaceSettings->Mode = SpaceModeBSP;
            else if(Tokens[5] == "monocle")
                SpaceSettings->Mode = SpaceModeMonocle;
            else if(Tokens[5] == "float")
                SpaceSettings->Mode = SpaceModeFloating;
        }
        else if(Tokens[4] == "padding")
        {
            SpaceSettings->Offset.PaddingTop = ConvertStringToDouble(Tokens[5]);
            SpaceSettings->Offset.PaddingBottom = ConvertStringToDouble(Tokens[6]);
            SpaceSettings->Offset.PaddingLeft = ConvertStringToDouble(Tokens[7]);
            SpaceSettings->Offset.PaddingRight = ConvertStringToDouble(Tokens[8]);
        }
        else if(Tokens[4] == "gap")
        {
            SpaceSettings->Offset.VerticalGap = ConvertStringToDouble(Tokens[5]);
            SpaceSettings->Offset.HorizontalGap = ConvertStringToDouble(Tokens[6]);
        }
        else if(Tokens[4] == "name")
        {
            SpaceSettings->Name = Tokens[5];
        }
        else if(Tokens[4] == "tree")
        {
            SpaceSettings->Layout = Tokens[5];
        }
    }
    else if(Tokens[1] == "display")
    {
        int ScreenID = ConvertStringToInt(Tokens[2]);
        space_settings *DisplaySettings = GetSpaceSettingsForDisplay(ScreenID);
        if(!DisplaySettings)
        {
            space_settings NULLSpaceSettings = { KWMSettings.DefaultOffset, SpaceModeDefault, "", "" };
            KWMSettings.DisplaySettings[ScreenID] = NULLSpaceSettings;
            DisplaySettings = &KWMSettings.DisplaySettings[ScreenID];
        }

        if(Tokens[3] == "mode")
        {
            if(Tokens[4] == "bsp")
                DisplaySettings->Mode = SpaceModeBSP;
            else if(Tokens[4] == "monocle")
                DisplaySettings->Mode = SpaceModeMonocle;
            else if(Tokens[4] == "float")
                DisplaySettings->Mode = SpaceModeFloating;
        }
        else if(Tokens[3] == "padding")
        {
            DisplaySettings->Offset.PaddingTop = ConvertStringToDouble(Tokens[4]);
            DisplaySettings->Offset.PaddingBottom = ConvertStringToDouble(Tokens[5]);
            DisplaySettings->Offset.PaddingLeft = ConvertStringToDouble(Tokens[6]);
            DisplaySettings->Offset.PaddingRight = ConvertStringToDouble(Tokens[7]);
        }
        else if(Tokens[3] == "gap")
        {
            DisplaySettings->Offset.VerticalGap = ConvertStringToDouble(Tokens[4]);
            DisplaySettings->Offset.HorizontalGap = ConvertStringToDouble(Tokens[5]);
        }
    }
    else if(Tokens[1] == "focus-follows-mouse")
    {
        if(Tokens[2] == "toggle")
        {
            if(KWMSettings.Focus == FocusModeDisabled)
                KWMSettings.Focus = FocusModeAutoraise;
            else if(KWMSettings.Focus == FocusModeAutoraise)
                KWMSettings.Focus = FocusModeDisabled;
        }
        else if(Tokens[2] == "on")
            KWMSettings.Focus = FocusModeAutoraise;
        else if(Tokens[2] == "off")
            KWMSettings.Focus = FocusModeDisabled;
    }
    else if(Tokens[1] == "mouse-follows-focus")
    {
        if(Tokens[2] == "off")
            KWMSettings.UseMouseFollowsFocus = false;
        else if(Tokens[2] == "on")
            KWMSettings.UseMouseFollowsFocus = true;
    }
    else if(Tokens[1] == "standby-on-float")
    {
        if(Tokens[2] == "off")
            KWMSettings.StandbyOnFloat = false;
        else if(Tokens[2] == "on")
            KWMSettings.StandbyOnFloat = true;
    }
    else if(Tokens[1] == "cycle-focus")
    {
        if(Tokens[2] == "on")
            KWMSettings.Cycle = CycleModeScreen;
        else if(Tokens[2] == "off")
            KWMSettings.Cycle = CycleModeDisabled;;
    }
    else if(Tokens[1] == "hotkeys")
    {
        if(Tokens[2] == "off")
            KWMSettings.UseBuiltinHotkeys = false;
        else if(Tokens[2] == "on")
            KWMSettings.UseBuiltinHotkeys = true;
    }
    else if(Tokens[1] == "padding")
    {
        container_offset Offset = { ConvertStringToDouble(Tokens[2]),
                                    ConvertStringToDouble(Tokens[3]),
                                    ConvertStringToDouble(Tokens[4]),
                                    ConvertStringToDouble(Tokens[5]),
                                    0,
                                    0
                                  };

        SetDefaultPaddingOfDisplay(Offset);
    }
    else if(Tokens[1] == "gap")
    {
        container_offset Offset = { 0,
                                    0,
                                    0,
                                    0,
                                    ConvertStringToDouble(Tokens[2]),
                                    ConvertStringToDouble(Tokens[3])
                                  };

        SetDefaultGapOfDisplay(Offset);
    }
    else if(Tokens[1] == "split-ratio")
    {
        ChangeSplitRatio(ConvertStringToDouble(Tokens[2]));
    }
}