Relieve tree.c from non tree related functions

This commit is contained in:
Bastien Dejean 2012-12-26 22:48:07 +01:00
parent 92c52517da
commit e016b801f0
4 changed files with 45 additions and 44 deletions

41
tree.c
View file

@ -786,44 +786,3 @@ void update_vacant_state(node_t *n)
p = p->parent;
}
}
monitor_t *find_monitor(char *name)
{
for (monitor_t *m = mon_head; m != NULL; m = m->next)
if (strcmp(m->name, name) == 0)
return m;
return NULL;
}
void add_desktop(monitor_t *m, char *name)
{
desktop_t *d = make_desktop(name);
if (m->desk == NULL) {
m->desk = d;
m->desk_head = d;
m->desk_tail = d;
} else {
m->desk_tail->next = d;
d->prev = m->desk_tail;
m->desk_tail = d;
}
num_desktops++;
ewmh_update_number_of_desktops();
ewmh_update_desktop_names();
put_status();
}
void add_monitor(xcb_rectangle_t *rect)
{
monitor_t *m = make_monitor(rect);
if (mon == NULL) {
mon = m;
mon_head = m;
mon_tail = m;
} else {
mon_tail->next = m;
m->prev = mon_tail;
mon_tail = m;
}
num_monitors++;
}

3
tree.h
View file

@ -40,8 +40,5 @@ void cycle_leaf(monitor_t *, desktop_t *, node_t *, cycle_dir_t, skip_client_t);
void nearest_leaf(monitor_t *, desktop_t *, node_t *, nearest_arg_t, skip_client_t);
void circulate_leaves(monitor_t *, desktop_t *, circulate_dir_t);
void update_vacant_state(node_t *);
void add_desktop(monitor_t *, char *);
void add_monitor(xcb_rectangle_t *);
monitor_t *find_monitor(char *);
#endif

42
types.c
View file

@ -3,6 +3,7 @@
#include <xcb/xcb.h>
#include <xcb/xcb_event.h>
#include "bspwm.h"
#include "ewmh.h"
#include "settings.h"
#include "types.h"
#include "tree.h"
@ -32,6 +33,29 @@ monitor_t *make_monitor(xcb_rectangle_t *rect)
return m;
}
monitor_t *find_monitor(char *name)
{
for (monitor_t *m = mon_head; m != NULL; m = m->next)
if (strcmp(m->name, name) == 0)
return m;
return NULL;
}
void add_monitor(xcb_rectangle_t *rect)
{
monitor_t *m = make_monitor(rect);
if (mon == NULL) {
mon = m;
mon_head = m;
mon_tail = m;
} else {
mon_tail->next = m;
m->prev = mon_tail;
mon_tail = m;
}
num_monitors++;
}
void remove_monitor(monitor_t *m)
{
while (m->desk_head != NULL)
@ -62,6 +86,24 @@ desktop_t *make_desktop(const char *name)
return d;
}
void add_desktop(monitor_t *m, char *name)
{
desktop_t *d = make_desktop(name);
if (m->desk == NULL) {
m->desk = d;
m->desk_head = d;
m->desk_tail = d;
} else {
m->desk_tail->next = d;
d->prev = m->desk_tail;
m->desk_tail = d;
}
num_desktops++;
ewmh_update_number_of_desktops();
ewmh_update_desktop_names();
put_status();
}
void remove_desktop(monitor_t *m, desktop_t *d)
{
while (d->root != NULL)

View file

@ -191,8 +191,11 @@ typedef struct {
node_t *make_node(void);
monitor_t *make_monitor(xcb_rectangle_t *);
monitor_t *find_monitor(char *);
void add_monitor(xcb_rectangle_t *);
void remove_monitor(monitor_t *);
desktop_t *make_desktop(const char *);
void add_desktop(monitor_t *, char *);
void remove_desktop(monitor_t *, desktop_t *);
client_t *make_client(xcb_window_t);
rule_t *make_rule(void);