jcs ratpoison hax
1/* Copyright (C) 2000, 2001, 2002, 2003, 2004 Shawn Betts <sabetts@vcn.bc.ca>
2 *
3 * This file is part of ratpoison.
4 *
5 * ratpoison is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2, or (at your option)
8 * any later version.
9 *
10 * ratpoison is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this software; see the file COPYING. If not, write to
17 * the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
18 * Boston, MA 02111-1307 USA
19 */
20
21#ifndef GROUP_H
22#define GROUP_H
23
24void init_groups (void);
25void free_groups (void);
26
27void group_add_window (rp_group *g, rp_window *w);
28void group_resort_window (rp_group *g, rp_window_elem *w);
29void group_free (rp_group *g);
30rp_group *group_new (int number, char *name);
31int group_delete_group (rp_group *g);
32
33void group_del_window (rp_group *g, rp_window *win);
34void groups_del_window (rp_window *win);
35
36void group_map_window (rp_group *g, rp_window *win);
37void groups_map_window (rp_window *win);
38
39void group_unmap_window (rp_group *g, rp_window *win);
40void groups_unmap_window (rp_window *win);
41
42struct numset *group_get_numset (void);
43void get_group_list (char *delim, struct sbuf *buffer, int *mark_start,
44 int *mark_end);
45
46rp_window *group_prev_window (rp_group *g, rp_window *win);
47rp_window *group_next_window (rp_group *g, rp_window *win);
48rp_group *groups_find_group_by_name (char *s, int exact_match);
49rp_group *groups_find_group_by_number (int n);
50rp_group *groups_find_group_by_window (rp_window *win);
51rp_group *groups_find_group_by_group (rp_group *g);
52
53rp_window *group_last_window (rp_group *g, rp_screen *screen);
54
55rp_group *group_prev_group (void);
56rp_group *group_next_group (void);
57rp_group *group_last_group (void);
58
59void group_resort_group (rp_group *g);
60
61rp_group *group_add_new_group (char *name);
62void group_rename (rp_group *g, char *name);
63
64rp_window_elem *group_find_window (struct list_head *list, rp_window *win);
65rp_window_elem *group_find_window_by_number (rp_group *g, int num);
66
67void group_move_window (rp_group *to, rp_window *win);
68void groups_merge (rp_group *from, rp_group *to);
69
70void set_current_group (rp_group *g);
71
72rp_window *group_last_window_by_class (rp_group *g, char *class);
73rp_window *group_last_window_by_class_complement (rp_group *g, char *class);
74#endif