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