forked from raboof/notion
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstatusbar.h
91 lines (72 loc) · 2.11 KB
/
statusbar.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
/*
* ion/mod_statusbar/statusbar.h
*
* Copyright (c) Tuomo Valkonen 1999-2007.
*
* See the included file LICENSE for details.
*/
#ifndef ION_MOD_STATUSBAR_STATUSBAR_H
#define ION_MOD_STATUSBAR_STATUSBAR_H
#include <libtu/ptrlist.h>
#include <libextl/extl.h>
#include <ioncore/common.h>
#include <ioncore/gr.h>
#include <ioncore/manage.h>
#include <ioncore/sizehint.h>
#define STATUSBAR_NX_STR "?"
typedef enum{
WSBELEM_ALIGN_LEFT=0,
WSBELEM_ALIGN_CENTER=1,
WSBELEM_ALIGN_RIGHT=2
} WSBElemAlign;
typedef enum{
WSBELEM_NONE=0,
WSBELEM_TEXT=1,
WSBELEM_METER=2,
WSBELEM_STRETCH=3,
WSBELEM_FILLER=4,
WSBELEM_SYSTRAY=5
} WSBElemType;
INTRSTRUCT(WSBElem);
DECLSTRUCT(WSBElem){
int type;
int align;
int stretch;
int text_w;
char *text;
int max_w;
char *tmpl;
StringId meter;
StringId attr;
int zeropad;
int x;
PtrList *traywins;
};
INTRCLASS(WStatusBar);
DECLCLASS(WStatusBar){
WWindow wwin;
GrBrush *brush;
WSBElem *elems;
int nelems;
int natural_w, natural_h;
int filleridx;
WStatusBar *sb_next, *sb_prev;
PtrList *traywins;
bool systray_enabled;
};
extern bool statusbar_init(WStatusBar *p, WWindow *parent,
const WFitParams *fp);
extern WStatusBar *create_statusbar(WWindow *parent, const WFitParams *fp);
extern void statusbar_deinit(WStatusBar *p);
extern WRegion *statusbar_load(WWindow *par, const WFitParams *fp,
ExtlTab tab);
extern void statusbar_set_natural_w(WStatusBar *p, const char *str);
extern void statusbar_size_hints(WStatusBar *p, WSizeHints *h);
extern void statusbar_updategr(WStatusBar *p);
extern void statusbar_set_contents(WStatusBar *sb, ExtlTab t);
extern void statusbar_set_template(WStatusBar *sb, const char *tmpl);
extern void statusbar_set_template_table(WStatusBar *sb, ExtlTab t);
extern ExtlTab statusbar_get_template_table(WStatusBar *sb);
extern WStatusBar *mod_statusbar_find_suitable(WClientWin *cwin,
const WManageParams *param);
#endif /* ION_MOD_STATUSBAR_STATUSBAR_H */