add more functions to manipulate tags
This commit is contained in:
parent
541d0d631d
commit
2592d3032c
23
config.c
23
config.c
|
@ -376,23 +376,22 @@ config_parse_screen(cfg_t *cfg, int screen)
|
|||
if((i = cfg_size(cfg_tags, "tag")))
|
||||
for(--i; i >= 0; i--)
|
||||
{
|
||||
tag = p_new(Tag, 1);
|
||||
cfgsectmp = cfg_getnsec(cfg_tags, "tag", i);
|
||||
tag->name = a_strdup(cfg_title(cfgsectmp));
|
||||
tag->selected = False;
|
||||
tag->was_selected = False;
|
||||
|
||||
tmp = cfg_getstr(cfgsectmp, "layout");
|
||||
for(layout = virtscreen->layouts;
|
||||
layout && layout->arrange != name_func_lookup(tmp, LayoutList); layout = layout->next);
|
||||
layout && layout->arrange != name_func_lookup(tmp, LayoutList);
|
||||
layout = layout->next);
|
||||
if(!layout)
|
||||
tag->layout = virtscreen->layouts;
|
||||
else
|
||||
tag->layout = layout;
|
||||
tag->mwfact = cfg_getfloat(cfgsectmp, "mwfact");
|
||||
tag->nmaster = cfg_getint(cfgsectmp, "nmaster");
|
||||
tag->ncol = cfg_getint(cfgsectmp, "ncol");
|
||||
layout = virtscreen->layouts;
|
||||
|
||||
tag_list_push(&virtscreen->tags, tag);
|
||||
tag = tag_new(cfg_title(cfgsectmp),
|
||||
layout,
|
||||
cfg_getfloat(cfgsectmp, "mwfact"),
|
||||
cfg_getint(cfgsectmp, "nmaster"),
|
||||
cfg_getint(cfgsectmp, "ncol"));
|
||||
|
||||
tag_push_to_screen(tag, screen);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
39
tag.c
39
tag.c
|
@ -32,6 +32,35 @@
|
|||
|
||||
extern AwesomeConf globalconf;
|
||||
|
||||
Tag *
|
||||
tag_new(const char *name, Layout *layout, double mwfact, int nmaster, int ncol)
|
||||
{
|
||||
Tag *tag;
|
||||
|
||||
tag = p_new(Tag, 1);
|
||||
tag->name = a_strdup(name);
|
||||
tag->layout = layout;
|
||||
tag->mwfact = mwfact;
|
||||
tag->nmaster = nmaster;
|
||||
tag->ncol = ncol;
|
||||
|
||||
return tag;
|
||||
}
|
||||
|
||||
static void
|
||||
tag_append_to_screen(Tag *tag, int screen)
|
||||
{
|
||||
tag_list_append(&globalconf.screens[screen].tags, tag);
|
||||
widget_invalidate_cache(screen, WIDGET_CACHE_TAGS);
|
||||
}
|
||||
|
||||
void
|
||||
tag_push_to_screen(Tag *tag, int screen)
|
||||
{
|
||||
tag_list_push(&globalconf.screens[screen].tags, tag);
|
||||
widget_invalidate_cache(screen, WIDGET_CACHE_TAGS);
|
||||
}
|
||||
|
||||
void
|
||||
tag_client(Client *c, Tag *t)
|
||||
{
|
||||
|
@ -382,14 +411,8 @@ uicb_tag_create(int screen, char *arg)
|
|||
if(!a_strlen(arg))
|
||||
return;
|
||||
|
||||
tag = p_new(Tag, 1);
|
||||
tag->name = a_strdup(arg);
|
||||
tag->layout = globalconf.screens[screen].layouts;
|
||||
tag->mwfact = 0.5;
|
||||
tag->nmaster = 1;
|
||||
tag->ncol = 1;
|
||||
tag_list_append(&globalconf.screens[screen].tags, tag);
|
||||
widget_invalidate_cache(screen, WIDGET_CACHE_TAGS);
|
||||
tag = tag_new(arg, globalconf.screens[screen].layouts, 0.5, 1, 1);
|
||||
tag_append_to_screen(tag, screen);
|
||||
}
|
||||
|
||||
// vim: filetype=c:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=80
|
||||
|
|
2
tag.h
2
tag.h
|
@ -27,6 +27,8 @@
|
|||
/** Check if a client is tiled */
|
||||
#define IS_TILED(client, screen) (client && !client->isfloating && client_isvisible(client, screen))
|
||||
|
||||
Tag * tag_new(const char *, Layout *, double, int, int);
|
||||
void tag_push_to_screen(Tag *, int);
|
||||
Tag ** get_current_tags(int);
|
||||
void tag_client(Client *, Tag *);
|
||||
void untag_client(Client *, Tag *);
|
||||
|
|
Loading…
Reference in New Issue