This repository has been archived by the owner on Jul 14, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 3
/
icons.h
91 lines (80 loc) · 2.95 KB
/
icons.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
/*
* Icon releated definitions
*
*
* Copyright 1989 Massachusetts Institute of Technology
*
* $XConsortium: icons.h,v 1.4 89/07/18 17:16:24 jim Exp $
*
* 10-Apr-89 Tom LaStrange Initial Version.
*
* Copyright 1992 Claude Lecommandeur.
*/
#ifndef _CTWM_ICONS_H
#define _CTWM_ICONS_H
/* Where did the Image for the Icon come from? */
typedef enum {
match_none,
match_list, /* shared Image: iconslist and Scr->ImageCache */
match_icon_pixmap_hint, /* Pixmap copied from IconPixmapHint */
match_net_wm_icon, /* Pixmap created from NET_WM_ICON */
match_unknown_default, /* shared Image: Scr->UnknownImage */
} Matchtype;
struct Icon {
Matchtype match;
Window w; /* the icon window */
OtpWinList *otp; /* OnTopPriority info for the icon */
Window bm_w; /* the icon bitmap window */
Image *image; /* image icon structure */
int x; /* icon text x coordinate */
int y; /* icon text y coordiante */
int w_x; /* x coor of the icon window !!untested!! */
int w_y; /* y coor of the icon window !!untested!! */
int w_width; /* width of the icon window */
int w_height; /* height of the icon window */
int width; /* width of the icon bitmap */
int height; /* height of the icon bitmap */
Pixel border; /* border color */
ColorPair iconc;
int border_width;
struct IconRegion *ir;
bool has_title, title_shrunk;
bool w_not_ours; /* Icon.w comes from IconWindowHint */
};
struct IconRegion {
struct IconRegion *next;
int x, y, w, h;
RegGravity grav1, grav2;
int stepx, stepy; // allocation granularity
TitleJust TitleJustification;
IRJust Justification;
IRAlignement Alignement;
name_list *clientlist;
struct IconEntry *entries;
};
struct IconEntry {
struct IconEntry *next;
int x, y, w, h;
TwmWindow *twm_win;
bool used;
};
/* Placement and IconsRegion handling */
name_list **AddIconRegion(const char *geom, RegGravity grav1, RegGravity grav2,
int stepx, int stepy, const char *ijust,
const char *just, const char *align);
/* Icon [window] creation/destruction */
void CreateIconWindow(TwmWindow *tmp_win, int def_x, int def_y);
void DeleteIconsList(TwmWindow *tmp_win);
void DeleteIcon(Icon *icon);
void ReleaseIconImage(Icon *icon);
/* Handling for bringing them up or down */
void IconUp(TwmWindow *tmp_win);
void IconDown(TwmWindow *tmp_win);
/* Drawing */
void PaintIcon(TwmWindow *tmp_win);
void ShrinkIconTitle(TwmWindow *tmp_win);
void ExpandIconTitle(TwmWindow *tmp_win);
int GetIconOffset(Icon *icon);
void RedoIcon(TwmWindow *win);
void RedoIconName(TwmWindow *win);
#endif /* _CTWM_ICONS_H */