Exemple #1
0
internal void
KwmScratchpadCommand(std::vector<std::string> &Tokens, int ClientSockFD)
{
    if(Tokens[1] == "show")
    {
        ShowScratchpadWindow(ConvertStringToInt(Tokens[2]));
    }
    else if(Tokens[1] == "toggle")
    {
        ToggleScratchpadWindow(ConvertStringToInt(Tokens[2]));
    }
    else if(Tokens[1] == "hide")
    {
        HideScratchpadWindow(ConvertStringToInt(Tokens[2]));
    }
    else if(Tokens[1] == "add")
    {
        ax_application *Application = AXLibGetFocusedApplication();
        if(Application && Application->Focus)
            AddWindowToScratchpad(Application->Focus);
    }
    else if(Tokens[1] == "remove")
    {
        ax_application *Application = AXLibGetFocusedApplication();
        if(Application && Application->Focus)
            RemoveWindowFromScratchpad(Application->Focus);
    }
    else if(Tokens[1] == "list")
    {
        KwmWriteToSocket(ClientSockFD, GetWindowsOnScratchpad());
    }
}
Exemple #2
0
double my_atof( char *str )
{
	double frac = 0;
	double res = 0;
	int pot;
	int i = 0, k;
	char *pc1, *pc2, *pc3;
	/*get number till .*/
	pc1 = strchr( str, '.' ); /* set pointer to first occurence of . */
	k = pc1 - str; 
	res = (double) ConvertStringToInt( str, i, k );
	/*get fractional part*/
	pc2 = strchr( str, 'e' );
	i = k+1;
	k = pc2 - str;
	frac = (double) ConvertStringToInt( str, i, k );
	res = res + ( frac / pow(10, pc2-1 - pc1)); /* add fractional part to result */
	/* add 10^pot to result */
	pc3 = strchr( str, '\0' );
	i = k+1;
	k = pc3 - str;
	pot = ConvertStringToInt( str, i, k);
	res *= pow ( 10, pot ); 
	
	return res;
}
bool DEdgeMask2::AnalyseString(const char *string, int *vect, IScriptEnvironment* env)
{
	int length = strlen(string);
	char separator[12] = {'0','1','2','3','4','5','6','7','8','9','-',0};

   int pos;
	int count = 0;
	int prevpos = 0;
	bool answer = false;
	while ( (pos = strspn(string + prevpos,separator)) > 0)
	{
		prevpos = prevpos + pos + strcspn(string+prevpos+pos,separator);
		count++;
	}
	
	if (count != 9) env->ThrowError("DEdgeMask: matrix must have 9 values");
	
	prevpos = 0;
	count = 0;
	while ( (pos = strspn(string+prevpos,separator)) > 0)
	{
		vect[count] = ConvertStringToInt(string + prevpos, pos);
		answer |= ( vect[count] < 0 );
		prevpos = prevpos + pos + strcspn(string+prevpos+pos,separator);
		count++;
	}

	vect[count] = ConvertStringToInt(string + prevpos, length - prevpos);
	answer |= ( vect[count] < 0 );

	return answer;
}
Exemple #4
0
internal void
KwmTreeCommand(std::vector<std::string> &Tokens)
{
    if(Tokens[1] == "-pseudo")
    {
        if(Tokens[2] == "create")
            CreatePseudoNode();
        else if(Tokens[2] == "destroy")
            RemovePseudoNode();
    }
    else if(Tokens[1] == "rotate")
    {
        if(Tokens[2] == "90" || Tokens[2] == "270" || Tokens[2] == "180")
        {
            RotateBSPTree(ConvertStringToInt(Tokens[2]));
        }
    }
    else if(Tokens[1] == "save")
    {
        ax_display *Display = AXLibMainDisplay();
        space_info *SpaceInfo = &WindowTree[Display->Space->Identifier];
        SaveBSPTreeToFile(Display, SpaceInfo, Tokens[2]);
    }
    else if(Tokens[1] == "restore")
    {
        LoadWindowNodeTree(AXLibMainDisplay(), Tokens[2]);
    }
}
Exemple #5
0
internal void
KwmDisplayCommand(std::vector<std::string> &Tokens)
{
    if(Tokens[1] == "-f")
    {
        if(Tokens[2] == "prev")
        {
            ax_display *Display = AXLibMainDisplay();
            if(Display)
                FocusDisplay(AXLibPreviousDisplay(Display));
        }
        else if(Tokens[2] == "next")
        {
            ax_display *Display = AXLibMainDisplay();
            if(Display)
                FocusDisplay(AXLibNextDisplay(Display));
        }
        else
        {
            int DisplayID = ConvertStringToInt(Tokens[2]);
            ax_display *Display = AXLibArrangementDisplay(DisplayID);
            if(Display)
                FocusDisplay(Display);
        }
    }
    else if(Tokens[1] == "-c")
    {
        if(Tokens[2] == "optimal")
            KWMSettings.SplitMode = SPLIT_OPTIMAL;
        else if(Tokens[2] == "vertical")
            KWMSettings.SplitMode = SPLIT_VERTICAL;
        else if(Tokens[2] == "horizontal")
            KWMSettings.SplitMode = SPLIT_HORIZONTAL;
    }
}
Exemple #6
0
internal bool
ParseProperties(tokenizer *Tokenizer, window_properties *Properties)
{
    if(RequireToken(Tokenizer, Token_Equals))
    {
        if(RequireToken(Tokenizer, Token_OpenBrace))
        {
            Properties->Scratchpad = -1;
            Properties->Display = -1;
            Properties->Space = -1;
            Properties->Float = -1;
            bool ValidState = true;

            while(ValidState)
            {
                token Token = GetToken(Tokenizer);
                switch(Token.Type)
                {
                    case Token_SemiColon: { continue; } break;
                    case Token_CloseBrace: { ValidState = false; } break;
                    case Token_Identifier:
                    {
                        if(TokenEquals(Token, "float"))
                        {
                            std::string Value;
                            if(ParseIdentifier(Tokenizer, &Value))
                            {
                                if(Value == "true")
                                    Properties->Float = 1;
                                else if(Value == "false")
                                    Properties->Float = 0;
                            }
                        }
                        else if(TokenEquals(Token, "display"))
                        {
                            std::string Value;
                            if(ParseIdentifier(Tokenizer, &Value))
                                Properties->Display = ConvertStringToInt(Value);
                        }
                        else if(TokenEquals(Token, "space"))
                        {
                            std::string Value;
                            if(ParseIdentifier(Tokenizer, &Value))
                                Properties->Space = ConvertStringToInt(Value);
                        }
                        else if(TokenEquals(Token, "scratchpad"))
                        {
                            std::string Value;
                            if(ParseIdentifier(Tokenizer, &Value))
                            {
                                if(Value == "visible")
                                    Properties->Scratchpad = 1;
                                else if(Value == "hidden")
                                    Properties->Scratchpad = 0;
                            }
                        }
                        else if(TokenEquals(Token, "role"))
                        {
                            std::string Value;
                            if(ParseIdentifier(Tokenizer, &Value))
                                    Properties->Role = Value;
                        }
                    } break;
                    default: { ReportInvalidRule("Expected token of type Token_Identifier: '" + std::string(Token.Text, Token.TextLength) + "'"); } break;
                }
            }

            return true;
        }
        else
        {
            ReportInvalidRule("Expected token '{'");
        }
    }
    else
    {
        ReportInvalidRule("Expected token '='");
    }

    return false;
}
Exemple #7
0
bool Sprite::Load( const std::string& filename )
{
	std::fstream config(filename.c_str());
	if (!config)
	{
		std::cout << "Error opening sprite config file : " << filename << std::endl;
		return false;
	}

	std::string line;
	std::vector<std::string> description;
	int start_frame;
	
	while(std::getline(config, line)) 
	{
		size_t pos = line.find(" ")+1;
        
        // check for comments
        if (line[0] == '#')
            continue;
        
        std::string temp = line.substr(pos);
		description.push_back(temp);
	}

	config.close();
    auto st = description[0].substr(0, description[0].size()-1);
	sprite = SDL_LoadBMP(st.c_str());
    if (!sprite) {
        auto a  = SDL_GetError();
        std::cout << a << std::endl;
    }
	frame_width = ConvertStringToInt(description[1]);
	frame_height = ConvertStringToInt(description[2]);
	start_frame = ConvertStringToInt(description[3]);
    name = common::FStripPathAndExtension(description[0]);
    
	if (sprite == nullptr) 
		return false;

	Uint32 colourkey = SDL_MapRGB(sprite->format, 255, 0, 255);
	SDL_SetColorKey(sprite, SDL_SRCCOLORKEY | SDL_RLEACCEL, colourkey);

#ifdef _DEBUG
	printf ("sprite w = %d.\n", sprite->clip_rect.w);
	printf ("sprite h = %d.\n", sprite->clip_rect.h);
	printf ("sprite x = %d.\n", sprite->clip_rect.x);
	printf ("sprite y = %d.\n", sprite->clip_rect.y);
#endif

	source.h = frame_height;
	source.w = frame_width;

#pragma region OPENGL_LOAD
#ifdef USING_OPENGL
	nOfColors = sprite->format->BytesPerPixel;
	if (nOfColors == 4)     // contains an alpha channel
	{
		if (sprite->format->Rmask == 0x000000ff)
			texture_format = GL_RGBA;
		else
			texture_format = GL_BGRA;
	} else if (nOfColors == 3)     // no alpha channel
	{
		if (sprite->format->Rmask == 0x000000ff)
			texture_format = GL_RGB;
		else
			texture_format = GL_BGR;
	} else {
		printf("warning: the image is not truecolor..  this will probably break\n");
		// this error should not go unhandled
	}

	// Have OpenGL generate a texture object handle for us
	glGenTextures( 1, &texture );

	// Bind the texture object
	glBindTexture( GL_TEXTURE_2D, texture );

	// Set the texture's stretching properties
	glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
	glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );

	// Edit the texture object's image data using the information SDL_Surface gives us
	glTexImage2D( GL_TEXTURE_2D, 0, nOfColors, sprite->w, sprite->h, 0,
		texture_format, GL_UNSIGNED_BYTE, sprite->pixels );
#endif
#pragma endregion OPENGL_LOAD

	return true;
}
Exemple #8
0
internal void
KwmWindowCommand(std::vector<std::string> &Tokens)
{
    if(Tokens[1] == "-f")
    {
        if(Tokens[2] == "north")
            ShiftWindowFocusDirected(0);
        else if(Tokens[2] == "east")
            ShiftWindowFocusDirected(90);
        else if(Tokens[2] == "south")
            ShiftWindowFocusDirected(180);
        else if(Tokens[2] == "west")
            ShiftWindowFocusDirected(270);
        else if(Tokens[2] == "prev")
            ShiftWindowFocus(-1);
        else if(Tokens[2] == "next")
            ShiftWindowFocus(1);
        else if(Tokens[2] == "curr")
            FocusWindowBelowCursor();
        else
            FocusWindowByID(ConvertStringToUint(Tokens[2]));
    }
    else if(Tokens[1] == "-fm")
    {
        if(Tokens[2] == "prev")
            ShiftSubTreeWindowFocus(-1);
        else if(Tokens[2] == "next")
            ShiftSubTreeWindowFocus(1);
    }
    else if(Tokens[1] == "-s")
    {
        if(Tokens[2] == "north")
            SwapFocusedWindowDirected(0);
        else if(Tokens[2] == "east")
            SwapFocusedWindowDirected(90);
        else if(Tokens[2] == "south")
            SwapFocusedWindowDirected(180);
        else if(Tokens[2] == "west")
            SwapFocusedWindowDirected(270);
        else if(Tokens[2] == "prev")
            SwapFocusedWindowWithNearest(-1);
        else if(Tokens[2] == "next")
            SwapFocusedWindowWithNearest(1);
        else if(Tokens[2] == "mark")
            SwapFocusedWindowWithMarked();
    }
    else if(Tokens[1] == "-z")
    {
        if(Tokens[2] == "fullscreen")
            ToggleFocusedWindowFullscreen();
        else if(Tokens[2] == "parent")
            ToggleFocusedWindowParentContainer();
    }
    else if(Tokens[1] == "-t")
    {
        if(Tokens[2] == "focused")
            ToggleFocusedWindowFloating();
    }
    else if(Tokens[1] == "-r")
    {
        if(Tokens[2] == "focused")
            ResizeWindowToContainerSize();
    }
    else if(Tokens[1] == "-c")
    {
        if(Tokens[2] == "split-mode")
        {
            if(Tokens[3] == "toggle")
            {
                ToggleFocusedNodeSplitMode();
            }
        }
        else if(Tokens[2] == "type")
        {
            if(Tokens[3] == "monocle")
                ChangeTypeOfFocusedNode(NodeTypeLink);
            else if(Tokens[3] == "bsp")
                ChangeTypeOfFocusedNode(NodeTypeTree);
            else if(Tokens[3] == "toggle")
                ToggleTypeOfFocusedNode();
        }
        else if(Tokens[2] == "reduce" || Tokens[2] == "expand")
        {
            double Ratio = ConvertStringToDouble(Tokens[3]);
            Ratio = Tokens[2] == "reduce" ? -Ratio : Ratio;

            if(Tokens.size() == 5)
            {
                if(Tokens[4] == "north")
                    ModifyContainerSplitRatio(Ratio, 0);
                else if(Tokens[4] == "east")
                    ModifyContainerSplitRatio(Ratio, 90);
                else if(Tokens[4] == "south")
                    ModifyContainerSplitRatio(Ratio, 180);
                else if(Tokens[4] == "west")
                    ModifyContainerSplitRatio(Ratio, 270);
            }
            else
            {
                ModifyContainerSplitRatio(Ratio);
            }
        }
    }
    else if(Tokens[1] == "-m")
    {
        if(Tokens[2] == "space")
        {
            if(Tokens[3] == "previous")
                GoToPreviousSpace(true);
            else
                MoveFocusedWindowToSpace(Tokens[3]);
        }
        else if(Tokens[2] == "display")
        {
            ax_window *Window = FocusedApplication ? FocusedApplication->Focus : NULL;
            if(!Window)
                return;

            if(Tokens[3] == "prev")
                MoveWindowToDisplay(Window, -1, true);
            else if(Tokens[3] == "next")
                MoveWindowToDisplay(Window, 1, true);
            else
                MoveWindowToDisplay(Window, ConvertStringToInt(Tokens[3]), false);
        }
        else if(Tokens[2] == "north")
        {
            ax_window *Window = FocusedApplication ? FocusedApplication->Focus : NULL;
            if(Window)
                DetachAndReinsertWindow(Window->ID, 0);
        }
        else if(Tokens[2] == "east")
        {
            ax_window *Window = FocusedApplication ? FocusedApplication->Focus : NULL;
            if(Window)
                DetachAndReinsertWindow(Window->ID, 90);
        }
        else if(Tokens[2] == "south")
        {
            ax_window *Window = FocusedApplication ? FocusedApplication->Focus : NULL;
            if(Window)
                DetachAndReinsertWindow(Window->ID, 180);
        }
        else if(Tokens[2] == "west")
        {
            ax_window *Window = FocusedApplication ? FocusedApplication->Focus : NULL;
            if(Window)
                DetachAndReinsertWindow(Window->ID, 270);
        }
        else if(Tokens[2] == "mark")
        {
            if(MarkedWindow)
                DetachAndReinsertWindow(MarkedWindow->ID, 0);
        }
        else
        {
            int XOff = ConvertStringToInt(Tokens[2]);
            int YOff = ConvertStringToInt(Tokens[3]);
            MoveFloatingWindow(XOff, YOff);
        }
    }
    else if(Tokens[1] == "-mk")
    {
        if(Tokens[2] == "focused")
        {
            MarkFocusedWindowContainer();
            return;
        }

        ax_window *ClosestWindow = NULL;
        std::string Output = "-1";
        int Degrees = 0;

        if(Tokens[2] == "north")
            Degrees = 0;
        else if(Tokens[2] == "east")
            Degrees = 90;
        else if(Tokens[2] == "south")
            Degrees = 180;
        else if(Tokens[2] == "west")
            Degrees = 270;

        bool Wrap = Tokens[3] == "wrap" ? true : false;
        if((FindClosestWindow(Degrees, &ClosestWindow, Wrap)) &&
           (ClosestWindow))
            MarkWindowContainer(ClosestWindow);
    }
}
Exemple #9
0
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]));
    }
}
Exemple #10
0
internal void
KwmQueryCommand(std::vector<std::string> &Tokens, int ClientSockFD)
{
    if(Tokens[1] == "tiling")
    {
        if(Tokens[2] == "mode")
            KwmWriteToSocket(ClientSockFD, GetActiveTilingMode());
        else if(Tokens[2] == "spawn")
            KwmWriteToSocket(ClientSockFD, GetActiveSpawnPosition());
        else if(Tokens[2] == "split-mode")
            KwmWriteToSocket(ClientSockFD, GetActiveSplitMode());
        else if(Tokens[2] == "split-ratio")
            KwmWriteToSocket(ClientSockFD, GetActiveSplitRatio());
    }
    else if(Tokens[1] == "window")
    {
        if(Tokens[2] == "focused")
        {
            if(Tokens[3] == "id")
                KwmWriteToSocket(ClientSockFD, GetIdOfFocusedWindow());
            else if(Tokens[3] == "name")
                KwmWriteToSocket(ClientSockFD, GetNameOfFocusedWindow());
            else if(Tokens[3] == "split")
                KwmWriteToSocket(ClientSockFD, GetSplitModeOfFocusedWindow());
            else if(Tokens[3] == "float")
                KwmWriteToSocket(ClientSockFD, GetFloatStatusOfFocusedWindow());
            else
                KwmWriteToSocket(ClientSockFD, GetWindowIdInDirectionOfFocusedWindow(Tokens[3]));
        }
        else if(Tokens[2] == "marked")
        {
            if(Tokens[3] == "id")
                KwmWriteToSocket(ClientSockFD, GetIdOfMarkedWindow());
            else if(Tokens[3] == "name")
                KwmWriteToSocket(ClientSockFD, GetNameOfMarkedWindow());
            else if(Tokens[3] == "split")
                KwmWriteToSocket(ClientSockFD, GetSplitModeOfMarkedWindow());
            else if(Tokens[3] == "float")
                KwmWriteToSocket(ClientSockFD, GetFloatStatusOfMarkedWindow());
        }
        else if(Tokens[2] == "parent")
        {
            int FirstID = ConvertStringToInt(Tokens[3]);
            int SecondID = ConvertStringToInt(Tokens[4]);
            KwmWriteToSocket(ClientSockFD, GetStateOfParentNode(FirstID, SecondID));
        }
        else if(Tokens[2] == "child")
        {
            int WindowID = ConvertStringToInt(Tokens[3]);
            KwmWriteToSocket(ClientSockFD, GetPositionInNode(WindowID));
        }
        else if(Tokens[2] == "list")
        {
            KwmWriteToSocket(ClientSockFD, GetWindowList());
        }
    }
    else if(Tokens[1] == "space")
    {
        if(Tokens[2] == "active")
        {
            if(Tokens[3] == "tag")
                KwmWriteToSocket(ClientSockFD, GetTagOfCurrentSpace());
            else if(Tokens[3] == "name")
                KwmWriteToSocket(ClientSockFD, GetNameOfCurrentSpace());
            else if(Tokens[3] == "id")
                KwmWriteToSocket(ClientSockFD, GetIdOfCurrentSpace());
            else if(Tokens[3] == "mode")
                KwmWriteToSocket(ClientSockFD, GetModeOfCurrentSpace());
        }
        else if(Tokens[2] == "previous")
        {
            if(Tokens[3] == "name")
                KwmWriteToSocket(ClientSockFD, GetNameOfPreviousSpace());
            else if(Tokens[3] == "id")
                KwmWriteToSocket(ClientSockFD, GetIdOfPreviousSpace());
        }
        else if(Tokens[2] == "list")
            KwmWriteToSocket(ClientSockFD, GetListOfSpaces());
    }
    else if(Tokens[1] == "border")
    {
        if(Tokens[2] == "focused")
            KwmWriteToSocket(ClientSockFD, GetStateOfFocusedBorder());
        else if(Tokens[2] == "marked")
            KwmWriteToSocket(ClientSockFD, GetStateOfMarkedBorder());
    }
    else if(Tokens[1] == "cycle-focus")
    {
        KwmWriteToSocket(ClientSockFD, GetStateOfCycleFocus());
    }
    else if(Tokens[1] == "float-non-resizable")
    {
        KwmWriteToSocket(ClientSockFD, GetStateOfFloatNonResizable());
    }
    else if(Tokens[1] == "lock-to-container")
    {
        KwmWriteToSocket(ClientSockFD, GetStateOfLockToContainer());
    }
    else if(Tokens[1] == "standby-on-float")
    {
        KwmWriteToSocket(ClientSockFD, GetStateOfStandbyOnFloat());
    }
    else if(Tokens[1] == "focus-follows-mouse")
    {
        KwmWriteToSocket(ClientSockFD, GetStateOfFocusFollowsMouse());
    }
    else if(Tokens[1] == "mouse-follows-focus")
    {
        KwmWriteToSocket(ClientSockFD, GetStateOfMouseFollowsFocus());
    }
}