tag.c
changeset 284 5f5c56e104de
parent 277 1e7fa455e3b4
child 285 e864d658eb02
equal deleted inserted replaced
283:134804791d73 284:5f5c56e104de
    33 void (*arrange)(Arg *) = DEFMODE;
    33 void (*arrange)(Arg *) = DEFMODE;
    34 
    34 
    35 /* extern */
    35 /* extern */
    36 
    36 
    37 void
    37 void
    38 appendtag(Arg *arg)
       
    39 {
       
    40 	if(!sel)
       
    41 		return;
       
    42 
       
    43 	sel->tags[arg->i] = True;
       
    44 	settitle(sel);
       
    45 }
       
    46 
       
    47 void
       
    48 dofloat(Arg *arg)
    38 dofloat(Arg *arg)
    49 {
    39 {
    50 	Client *c;
    40 	Client *c;
    51 
    41 
    52 	for(c = clients; c; c = c->next) {
    42 	for(c = clients; c; c = c->next) {
   178 
   168 
   179 	for(i = 0; i < ntags; i++)
   169 	for(i = 0; i < ntags; i++)
   180 		if(c->tags[i] && seltag[i])
   170 		if(c->tags[i] && seltag[i])
   181 			return True;
   171 			return True;
   182 	return False;
   172 	return False;
   183 }
       
   184 
       
   185 void
       
   186 replacetag(Arg *arg)
       
   187 {
       
   188 	int i;
       
   189 
       
   190 	if(!sel)
       
   191 		return;
       
   192 
       
   193 	for(i = 0; i < ntags; i++)
       
   194 		sel->tags[i] = False;
       
   195 	appendtag(arg);
       
   196 }
   173 }
   197 
   174 
   198 void
   175 void
   199 restack()
   176 restack()
   200 {
   177 {
   279 		for(i = 0; i < ntags; i++)
   256 		for(i = 0; i < ntags; i++)
   280 			c->tags[i] = seltag[i];
   257 			c->tags[i] = seltag[i];
   281 }
   258 }
   282 
   259 
   283 void
   260 void
       
   261 tag(Arg *arg)
       
   262 {
       
   263 	unsigned int i;
       
   264 
       
   265 	if(!sel)
       
   266 		return;
       
   267 
       
   268 	for(i = 0; i < ntags; i++)
       
   269 		sel->tags[i] = False;
       
   270 	sel->tags[arg->i] = True;
       
   271 	settitle(sel);
       
   272 }
       
   273 
       
   274 void
   284 togglemode(Arg *arg)
   275 togglemode(Arg *arg)
   285 {
   276 {
   286 	arrange = arrange == dofloat ? dotile : dofloat;
   277 	arrange = arrange == dofloat ? dotile : dofloat;
       
   278 	arrange(NULL);
       
   279 }
       
   280 
       
   281 void
       
   282 toggletag(Arg *arg)
       
   283 {
       
   284 	unsigned int i;
       
   285 
       
   286 	if(!sel)
       
   287 		return;
       
   288 
       
   289 	sel->tags[arg->i] = !sel->tags[arg->i];
       
   290 	for(i = 0; i < ntags && !sel->tags[i]; i++);
       
   291 	if(i == ntags)
       
   292 		sel->tags[arg->i] = True;
       
   293 	settitle(sel);
       
   294 }
       
   295 
       
   296 
       
   297 void
       
   298 toggleview(Arg *arg)
       
   299 {
       
   300 	unsigned int i;
       
   301 
       
   302 	seltag[arg->i] = !seltag[arg->i];
       
   303 	for(i = 0; i < ntags && !seltag[i]; i++);
       
   304 	if(i == ntags)
       
   305 		seltag[arg->i] = True; /* cannot toggle last view */
   287 	arrange(NULL);
   306 	arrange(NULL);
   288 }
   307 }
   289 
   308 
   290 void
   309 void
   291 view(Arg *arg)
   310 view(Arg *arg)
   295 	for(i = 0; i < ntags; i++)
   314 	for(i = 0; i < ntags; i++)
   296 		seltag[i] = False;
   315 		seltag[i] = False;
   297 	seltag[arg->i] = True;
   316 	seltag[arg->i] = True;
   298 	arrange(NULL);
   317 	arrange(NULL);
   299 }
   318 }
   300 
       
   301 void
       
   302 toggleview(Arg *arg)
       
   303 {
       
   304 	unsigned int i;
       
   305 
       
   306 	seltag[arg->i] = !seltag[arg->i];
       
   307 	for(i = 0; !seltag[i] && i < ntags; i++);
       
   308 	if(i == ntags)
       
   309 		seltag[arg->i] = True; /* cannot toggle last view */
       
   310 	arrange(NULL);
       
   311 }