changed author email
[guish.git] / src / widgets / page.h
blob7b02e931c3965bfde1f70b4efaff944c5e667765
1 /*************************************************************************
2 * Copyright (C) 2024 Francesco Palumbo <phranz.dev@gmail.com>, Naples (Italy)
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <https://www.gnu.org/licenses/>.
16 *************************************************************************/
18 #ifndef PAGE_H
19 #define PAGE_H
21 #include "../widget.h"
23 typedef struct vec_widget_t vec_widget_t;
25 enum ltype {
26 HL,
30 typedef struct page_t {
31 widget_t w;
33 int l;
34 vec_widget_t* subs;
35 int max_w;
36 int max_h;
37 align valign;
39 void (*free)(struct page_t*);
40 } page_t;
42 page_t* page_t_init(page_t*, int, int);
43 void page_t_free(page_t*);
45 void equalize(widget_t*);
46 void stylesubs(widget_t*, const char*);
47 void showsubs(widget_t*);
48 void hidesubs(widget_t*);
49 void freezesubs(widget_t*);
50 void unfreezesubs(widget_t*);
51 void setlayout(page_t*, int, int);
52 void embed(widget_t*, const char*);
53 void fit_to_cont(widget_t*);
54 void fitembed(widget_t*, const char*);
55 void untie(widget_t*, const char*);
56 void fituntie(widget_t*, const char*);
57 void explode(widget_t*);
58 void child_going(widget_t*, widget_t*);
59 void horizontal(widget_t*);
60 void swap(widget_t*, const char*, const char*);
61 void invert(widget_t*);
62 void vertical(widget_t*);
64 #endif