Add a tile_grid_vertical layout that split vertically unlike the tile_grid

layout that split horizontally. Add tile_grid_horizontal too that is the
same as tile_grid. You should use the tile_grid_horizontal, tile_grid is
kept for backward compatibility
This commit is contained in:
Raphael Khaiat 2010-06-25 01:40:53 +02:00
parent fb0ddc6b73
commit cee16d6f7f
6 changed files with 48 additions and 14 deletions

View File

@ -386,7 +386,6 @@ conf_layout_section(void)
conf.colors.layout_bg = getcolor((fetch_opt_first(layouts, "#000000", "bg").str));
conf.keep_layout_geo = fetch_opt_first(layouts, "false", "keep_layout_geo").bool;
if((tmp = fetch_opt_first(layouts, "menu", "system").str) && !strcmp(tmp, "menu"))
conf.layout_system = True;

View File

@ -40,8 +40,10 @@ const func_name_list_t layout_list[] =
{"tile_left", tile_left },
{"tile_top", tile_top },
{"tile_bottom", tile_bottom },
{"tile_grid", grid },
{"grid", grid },
{"tile_grid", grid_horizontal },
{"tile_grid_horizontal", grid_horizontal },
{"tile_grid_vertical", grid_vertical },
{"grid", grid_horizontal },
{"mirror_vertical", mirror_vertical },
{"tile_mirror_vertical", mirror_vertical },
{"mirror_horizontal", mirror_horizontal },

View File

@ -270,7 +270,7 @@ uicb_set_layer(uicb_t cmd)
/** Grid layout function
*/
void
grid(int screen)
grid(int screen, Bool horizontal)
{
Client *c;
XRectangle sg = sgeo[screen];
@ -288,6 +288,14 @@ grid(int screen)
? rows - 1
: rows;
if(!horizontal)
{
unsigned int tmp;
tmp = cols;
cols = rows;
rows = tmp;
}
for(i = 0, c = tiled_client(screen, clients); c; c = tiled_client(screen, c->next), ++i)
{
/* Set client property */
@ -757,6 +765,26 @@ mirror_horizontal(int screen)
return;
}
/** Horizontal grid function
*/
void
grid_horizontal(int screen)
{
grid(screen, True);
return;
}
/** Vertical grid function
*/
void
grid_vertical(int screen)
{
grid(screen, False);
return;
}
/** Put the selected client to the master postion
* \param cmd uicb_t type unused
*/

View File

@ -486,8 +486,10 @@ tag_new(int s, char *name)
++conf.ntag[s];
if((!name || strlen(name) == 0)){
if(conf.tagnamecount){
if((!name || strlen(name) == 0))
{
if(conf.tagnamecount)
{
displayedName = (char*) malloc( sizeof(char)*2 );
sprintf(displayedName, "[%d]", conf.ntag[s]);
}

View File

@ -347,7 +347,7 @@ void layoutswitch(Bool b);
void maxlayout(int screen);
Client *tiled_client(int screen, Client *c);
/* tile {{{ */
void grid(int screen);
void grid(int screen, Bool horizontal);
void tile(int screen);
void tile_left(int screen);
void tile_top(int screen);
@ -355,6 +355,8 @@ Client *tiled_client(int screen, Client *c);
void mirror_vertical(int screen);
void mirror_horizontal(int screen);
void layer(int screen);
void grid_vertical(int screen);
void grid_horizontal(int screen);
/* }}} */
void uicb_togglemax(uicb_t);
void uicb_togglefree(uicb_t);

View File

@ -52,13 +52,14 @@
keep_layout_geo = false
# Tiling layouts.
[layout] type = "tile_right" symbol = "RIGHT" [/layout]
[layout] type = "tile_left" symbol = "LEFT" [/layout]
[layout] type = "tile_top" symbol = "TOP" [/layout]
[layout] type = "tile_bottom" symbol = "BOTTOM" [/layout]
[layout] type = "tile_grid" symbol = "GRID" [/layout]
[layout] type = "mirror_vertical" symbol = "MIRROR_V" [/layout]
[layout] type = "mirror_horizontal" symbol = "MIRROR_H" [/layout]
[layout] type = "tile_right" symbol = "RIGHT" [/layout]
[layout] type = "tile_left" symbol = "LEFT" [/layout]
[layout] type = "tile_top" symbol = "TOP" [/layout]
[layout] type = "tile_bottom" symbol = "BOTTOM" [/layout]
[layout] type = "tile_grid" symbol = "GRID_H" [/layout]
[layout] type = "tile_grid_vertical" symbol = "GRID_V" [/layout]
[layout] type = "mirror_vertical" symbol = "MIRROR_V" [/layout]
[layout] type = "mirror_horizontal" symbol = "MIRROR_H" [/layout]
# Other layouts.
[layout] type = "max" symbol = "MAX" [/layout]