update copyright year
[claws.git] / src / stock_pixmap.h
1 /*
2  * Claws Mail -- a GTK based, lightweight, and fast e-mail client
3  * Copyright (C) 1999-2022 the Claws Mail team and Hiroyuki Yamamoto
4  *
5  * This program 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 3 of the License, or
8  * (at your option) any later version.
9  *
10  * This program 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 program. If not, see <http://www.gnu.org/licenses/>.
17  */
18
19 #ifndef __STOCK_PIXMAP_H__
20 #define __STOCK_PIXMAP_H__
21
22 #include <glib.h>
23 #include <gtk/gtk.h>
24
25 typedef enum
26 {
27         PRIV_PIXMAP_CLAWS_MAIL_ICON,
28         PRIV_PIXMAP_CLAWS_MAIL_ICON_64,
29         PRIV_PIXMAP_CLAWS_MAIL_LOGO,
30         PRIV_PIXMAP_EMPTY,              /* last entry */
31         N_PRIV_PIXMAPS
32 } PrivPixmap;
33
34 typedef enum
35 {
36         STOCK_PIXMAP_ADDR_ONE,
37         STOCK_PIXMAP_ADDR_TWO,
38         STOCK_PIXMAP_ADDRESS,
39         STOCK_PIXMAP_ADDRESS_BOOK,
40         STOCK_PIXMAP_ADDRESS_SEARCH,
41         STOCK_PIXMAP_ANONYMOUS,
42         STOCK_PIXMAP_BOOK,
43         STOCK_PIXMAP_CATEGORY,
44         STOCK_PIXMAP_CHECKBOX_OFF,
45         STOCK_PIXMAP_CHECKBOX_ON,
46         STOCK_PIXMAP_CHECK_SPELLING,
47         STOCK_PIXMAP_CLIP,
48         STOCK_PIXMAP_CLIP_KEY,
49         STOCK_PIXMAP_CLIP_GPG_SIGNED,
50         STOCK_PIXMAP_CLOSE,
51         STOCK_PIXMAP_COMPLETE,
52         STOCK_PIXMAP_CONTINUE,
53         STOCK_PIXMAP_DELETED,
54         STOCK_PIXMAP_DIR_CLOSE,
55         STOCK_PIXMAP_DIR_CLOSE_HRM,
56         STOCK_PIXMAP_DIR_OPEN,
57         STOCK_PIXMAP_DIR_OPEN_HRM,
58         STOCK_PIXMAP_DIR_CLOSE_MARK,
59         STOCK_PIXMAP_DIR_CLOSE_HRM_MARK,
60         STOCK_PIXMAP_DIR_OPEN_MARK,
61         STOCK_PIXMAP_DIR_OPEN_HRM_MARK,
62         STOCK_PIXMAP_DOWN_ARROW,
63         STOCK_PIXMAP_UP_ARROW,
64         STOCK_PIXMAP_EDIT_EXTERN,
65         STOCK_PIXMAP_ERROR,
66         STOCK_PIXMAP_EXEC,
67         STOCK_PIXMAP_FORWARDED,
68         STOCK_PIXMAP_GROUP,
69         STOCK_PIXMAP_IGNORETHREAD,
70         STOCK_PIXMAP_INBOX_CLOSE,
71         STOCK_PIXMAP_INBOX_CLOSE_HRM,
72         STOCK_PIXMAP_INBOX_OPEN,
73         STOCK_PIXMAP_INBOX_OPEN_HRM,
74         STOCK_PIXMAP_INBOX_CLOSE_MARK,
75         STOCK_PIXMAP_INBOX_CLOSE_HRM_MARK,
76         STOCK_PIXMAP_INBOX_OPEN_MARK,
77         STOCK_PIXMAP_INBOX_OPEN_HRM_MARK,
78         STOCK_PIXMAP_INSERT_FILE,
79         STOCK_PIXMAP_INTERFACE,
80         STOCK_PIXMAP_JPILOT,
81         STOCK_PIXMAP_KEY,
82         STOCK_PIXMAP_KEY_SIGN,
83         STOCK_PIXMAP_LDAP,
84         STOCK_PIXMAP_LINEWRAP_CURRENT,
85         STOCK_PIXMAP_LINEWRAP_ALL,
86         STOCK_PIXMAP_LOCKED,
87         STOCK_PIXMAP_MAIL_DRAFT,
88         STOCK_PIXMAP_MAIL_ATTACH,
89         STOCK_PIXMAP_MAIL_COMPOSE,
90         STOCK_PIXMAP_MAIL_FORWARD,
91         STOCK_PIXMAP_MAIL_PRIVACY_ENCRYPTED,
92         STOCK_PIXMAP_MAIL_PRIVACY_SIGNED,
93         STOCK_PIXMAP_MAIL_RECEIVE,
94         STOCK_PIXMAP_MAIL_RECEIVE_ALL,
95         STOCK_PIXMAP_MAIL_REPLY,
96         STOCK_PIXMAP_MAIL_REPLY_TO_ALL,
97         STOCK_PIXMAP_MAIL_REPLY_TO_AUTHOR,
98         STOCK_PIXMAP_MAIL_REPLY_TO_LIST,
99         STOCK_PIXMAP_MAIL_SEND,
100         STOCK_PIXMAP_MAIL_SEND_QUEUE,
101         STOCK_PIXMAP_MAIL_SIGN,
102         STOCK_PIXMAP_OPEN_MAIL,
103         STOCK_PIXMAP_MARK,
104         STOCK_PIXMAP_NEW,
105         STOCK_PIXMAP_NEWS_COMPOSE,
106         STOCK_PIXMAP_OUTBOX_CLOSE,
107         STOCK_PIXMAP_OUTBOX_CLOSE_HRM,
108         STOCK_PIXMAP_OUTBOX_OPEN,
109         STOCK_PIXMAP_OUTBOX_OPEN_HRM,
110         STOCK_PIXMAP_OUTBOX_CLOSE_MARK,
111         STOCK_PIXMAP_OUTBOX_CLOSE_HRM_MARK,
112         STOCK_PIXMAP_OUTBOX_OPEN_MARK,
113         STOCK_PIXMAP_OUTBOX_OPEN_HRM_MARK,
114         STOCK_PIXMAP_REPLIED,
115         STOCK_PIXMAP_REPLIED_AND_FORWARDED,
116         STOCK_PIXMAP_PASTE,
117         STOCK_PIXMAP_PREFERENCES,
118         STOCK_PIXMAP_PROPERTIES,
119         STOCK_PIXMAP_QUEUE_CLOSE,
120         STOCK_PIXMAP_QUEUE_CLOSE_HRM,
121         STOCK_PIXMAP_QUEUE_OPEN,
122         STOCK_PIXMAP_QUEUE_OPEN_HRM,
123         STOCK_PIXMAP_TRASH_OPEN,
124         STOCK_PIXMAP_TRASH_OPEN_HRM,
125         STOCK_PIXMAP_TRASH_CLOSE,
126         STOCK_PIXMAP_TRASH_CLOSE_HRM,
127         STOCK_PIXMAP_QUEUE_CLOSE_MARK,
128         STOCK_PIXMAP_QUEUE_CLOSE_HRM_MARK,
129         STOCK_PIXMAP_QUEUE_OPEN_MARK,
130         STOCK_PIXMAP_QUEUE_OPEN_HRM_MARK,
131         STOCK_PIXMAP_TRASH_OPEN_MARK,
132         STOCK_PIXMAP_TRASH_OPEN_HRM_MARK,
133         STOCK_PIXMAP_TRASH_CLOSE_MARK,
134         STOCK_PIXMAP_TRASH_CLOSE_HRM_MARK,
135         STOCK_PIXMAP_UNREAD,
136         STOCK_PIXMAP_VCARD,
137         STOCK_PIXMAP_ONLINE,
138         STOCK_PIXMAP_OFFLINE,
139         STOCK_PIXMAP_NOTICE_WARN,               /* small warning */
140         STOCK_PIXMAP_NOTICE_ERROR,              /* small error   */
141         STOCK_PIXMAP_NOTICE_NOTE,               /* small message */
142         STOCK_PIXMAP_QUICKSEARCH,               /* quicksearch pixmap */
143         STOCK_PIXMAP_GPG_SIGNED,
144         STOCK_PIXMAP_GO_FOLDERS,
145         STOCK_PIXMAP_DRAFTS_CLOSE,
146         STOCK_PIXMAP_DRAFTS_OPEN,
147         STOCK_PIXMAP_DRAFTS_CLOSE_MARK,
148         STOCK_PIXMAP_DRAFTS_OPEN_MARK,
149         STOCK_PIXMAP_MIME_TEXT_PLAIN,
150         STOCK_PIXMAP_MIME_TEXT_HTML,
151         STOCK_PIXMAP_MIME_TEXT_PATCH,
152         STOCK_PIXMAP_MIME_APPLICATION,
153         STOCK_PIXMAP_MIME_IMAGE,
154         STOCK_PIXMAP_MIME_AUDIO,
155         STOCK_PIXMAP_MIME_TEXT_ENRICHED,
156         STOCK_PIXMAP_MIME_UNKNOWN,
157         STOCK_PIXMAP_MIME_PDF,
158         STOCK_PIXMAP_MIME_PS,
159         STOCK_PIXMAP_MIME_TEXT_CALENDAR,
160         STOCK_PIXMAP_MIME_PGP_SIG,
161         STOCK_PIXMAP_PRINTER_BTN,
162         STOCK_PIXMAP_PRINTER,
163         STOCK_PIXMAP_PRIVACY_SIGNED,
164         STOCK_PIXMAP_PRIVACY_PASSED,
165         STOCK_PIXMAP_PRIVACY_FAILED,
166         STOCK_PIXMAP_PRIVACY_UNKNOWN,
167         STOCK_PIXMAP_PRIVACY_EXPIRED,
168         STOCK_PIXMAP_PRIVACY_WARN,
169         STOCK_PIXMAP_PRIVACY_EMBLEM_ENCRYPTED,
170         STOCK_PIXMAP_PRIVACY_EMBLEM_SIGNED,
171         STOCK_PIXMAP_PRIVACY_EMBLEM_PASSED,
172         STOCK_PIXMAP_PRIVACY_EMBLEM_FAILED,
173         STOCK_PIXMAP_PRIVACY_EMBLEM_WARN,
174         STOCK_PIXMAP_MIME_MESSAGE,
175         STOCK_PIXMAP_READ,
176         STOCK_PIXMAP_DELETE,
177         STOCK_PIXMAP_DELETE_DUP,
178         STOCK_PIXMAP_CANCEL,
179         STOCK_PIXMAP_TRASH,
180         STOCK_PIXMAP_MAIL_COMPOSE_LOGO,
181         STOCK_PIXMAP_DIR_NOSELECT_CLOSE, 
182         STOCK_PIXMAP_DIR_NOSELECT_CLOSE_MARK, 
183         STOCK_PIXMAP_DIR_NOSELECT_OPEN, 
184         STOCK_PIXMAP_DIR_SUBS_CLOSE_MARK, 
185         STOCK_PIXMAP_DIR_SUBS_CLOSE, 
186         STOCK_PIXMAP_DIR_SUBS_OPEN, 
187         STOCK_PIXMAP_SPAM,
188         STOCK_PIXMAP_SPAM_BTN,
189         STOCK_PIXMAP_HAM_BTN,
190         STOCK_PIXMAP_MOVED,
191         STOCK_PIXMAP_COPIED,
192         STOCK_PIXMAP_SELECTION,
193         STOCK_PIXMAP_WATCHTHREAD,
194         STOCK_PIXMAP_TRAY_NEWMAIL_OFFLINE,
195         STOCK_PIXMAP_TRAY_NEWMAIL,
196         STOCK_PIXMAP_TRAY_NEWMARKEDMAIL_OFFLINE,
197         STOCK_PIXMAP_TRAY_NEWMARKEDMAIL,
198         STOCK_PIXMAP_TRAY_NOMAIL_OFFLINE,
199         STOCK_PIXMAP_TRAY_NOMAIL,
200         STOCK_PIXMAP_TRAY_UNREADMAIL_OFFLINE,
201         STOCK_PIXMAP_TRAY_UNREADMAIL,
202         STOCK_PIXMAP_TRAY_UNREADMARKEDMAIL_OFFLINE,
203         STOCK_PIXMAP_TRAY_UNREADMARKEDMAIL,
204         STOCK_PIXMAP_DOC_INDEX,
205         STOCK_PIXMAP_DOC_INDEX_CLOSE,
206         STOCK_PIXMAP_DOC_INFO,
207         STOCK_PIXMAP_FIRST_ARROW,
208         STOCK_PIXMAP_LAST_ARROW,
209         STOCK_PIXMAP_LEFT_ARROW,
210         STOCK_PIXMAP_RIGHT_ARROW,
211         STOCK_PIXMAP_ROTATE_LEFT,
212         STOCK_PIXMAP_ROTATE_RIGHT,
213         STOCK_PIXMAP_ZOOM_FIT,
214         STOCK_PIXMAP_ZOOM_IN,
215         STOCK_PIXMAP_ZOOM_OUT,
216         STOCK_PIXMAP_ZOOM_WIDTH,
217         STOCK_PIXMAP_MARK_IGNORETHREAD,
218         STOCK_PIXMAP_MARK_WATCHTHREAD,
219         STOCK_PIXMAP_MARK_MARK,
220         STOCK_PIXMAP_MARK_UNMARK,
221         STOCK_PIXMAP_MARK_LOCKED,
222         STOCK_PIXMAP_MARK_UNLOCKED,
223         STOCK_PIXMAP_MARK_ALLREAD,
224         STOCK_PIXMAP_MARK_ALLUNREAD,
225         STOCK_PIXMAP_MARK_READ,
226         STOCK_PIXMAP_MARK_UNREAD,
227         STOCK_PIXMAP_EMPTY,              /* last entry */
228         N_STOCK_PIXMAPS
229 } StockPixmap;
230
231 typedef enum {
232         OVERLAY_NONE,
233         OVERLAY_TOP_LEFT,
234         OVERLAY_TOP_CENTER,
235         OVERLAY_TOP_RIGHT,
236         OVERLAY_MID_LEFT,
237         OVERLAY_MID_CENTER,
238         OVERLAY_MID_RIGHT,
239         OVERLAY_BOTTOM_LEFT,
240         OVERLAY_BOTTOM_CENTER,
241         OVERLAY_BOTTOM_RIGHT
242 } OverlayPosition;
243
244 GtkWidget *priv_pixmap_widget   (PrivPixmap       icon);
245 PrivPixmap priv_pixmap_get_icon    (gchar *file);
246 gint priv_pixbuf_gdk            (PrivPixmap icon, GdkPixbuf **pixbuf);
247
248 GtkWidget *stock_pixmap_widget  (StockPixmap      icon);
249 gint stock_pixbuf_gdk           (StockPixmap icon, GdkPixbuf **pixbuf);
250
251 GList *stock_pixmap_themes_list_new     (void);
252 void stock_pixmap_themes_list_free      (GList *list);
253 void stock_pixmap_invalidate_all_icons  (void);
254 gchar *stock_pixmap_get_name         (StockPixmap icon);
255 StockPixmap stock_pixmap_get_icon    (gchar *file);
256 GtkWidget *stock_pixmap_widget_with_overlay (StockPixmap         icon,
257                                              StockPixmap         overlay,
258                                              OverlayPosition     pos,
259                                              gint                border_x,
260                                              gint                border_y);
261 gchar *stock_pixmap_get_system_theme_dir_for_theme(const gchar *theme);
262 const char **stock_pixmap_theme_extensions(void);
263
264 #endif /* __STOCK_PIXMAP_H__ */