1 /**
2  * @file pidginstock.h GTK+ Stock resources
3  * @ingroup pidgin
4  */
5 
6 /* pidgin
7  *
8  * Pidgin is the legal property of its developers, whose names are too numerous
9  * to list here.  Please refer to the COPYRIGHT file distributed with this
10  * source distribution.
11  *
12  * This program is free software; you can redistribute it and/or modify
13  * it under the terms of the GNU General Public License as published by
14  * the Free Software Foundation; either version 2 of the License, or
15  * (at your option) any later version.
16  *
17  * This program is distributed in the hope that it will be useful,
18  * but WITHOUT ANY WARRANTY; without even the implied warranty of
19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20  * GNU General Public License for more details.
21  *
22  * You should have received a copy of the GNU General Public License
23  * along with this program; if not, write to the Free Software
24  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02111-1301  USA
25  */
26 #include <gtk/gtk.h>
27 #include "gtkstatus-icon-theme.h"
28 
29 #ifndef _PIDGIN_STOCK_H_
30 #define _PIDGIN_STOCK_H_
31 
32 /**************************************************************************/
33 /** @name Stock images                                                    */
34 /**************************************************************************/
35 /*@{*/
36 #define PIDGIN_STOCK_ACTION          "pidgin-action"
37 #define PIDGIN_STOCK_ALIAS           "pidgin-alias"
38 #define PIDGIN_STOCK_AWAY            "pidgin-away"
39 #define PIDGIN_STOCK_CHAT            "pidgin-chat"
40 #define PIDGIN_STOCK_CLEAR           "pidgin-clear"
41 #define PIDGIN_STOCK_CLOSE_TABS      "pidgin-close-tab"
42 #define PIDGIN_STOCK_DEBUG           "pidgin-debug"
43 #define PIDGIN_STOCK_DISCONNECT      "pidgin-disconnect"
44 #define PIDGIN_STOCK_DOWNLOAD        "pidgin-download"
45 #define PIDGIN_STOCK_EDIT            "pidgin-edit"
46 #define PIDGIN_STOCK_FGCOLOR         "pidgin-fgcolor"
47 #define PIDGIN_STOCK_FILE_CANCELED   "pidgin-file-cancelled"
48 #define PIDGIN_STOCK_FILE_DONE       "pidgin-file-done"
49 #define PIDGIN_STOCK_IGNORE          "pidgin-ignore"
50 #define PIDGIN_STOCK_INFO            "pidgin-info"
51 #define PIDGIN_STOCK_INVITE          "pidgin-invite"
52 #define PIDGIN_STOCK_MODIFY          "pidgin-modify"
53 #define PIDGIN_STOCK_ADD             "pidgin-add"
54 #define PIDGIN_STOCK_OPEN_MAIL       "pidgin-stock-open-mail"
55 #define PIDGIN_STOCK_PAUSE           "pidgin-pause"
56 #define PIDGIN_STOCK_POUNCE          "pidgin-pounce"
57 #define PIDGIN_STOCK_SIGN_OFF        "pidgin-sign-off"
58 #define PIDGIN_STOCK_SIGN_ON         "pidgin-sign-on"
59 #define PIDGIN_STOCK_TEXT_NORMAL     "pidgin-text-normal"
60 #define PIDGIN_STOCK_TYPED           "pidgin-typed"
61 #define PIDGIN_STOCK_UPLOAD          "pidgin-upload"
62 
63 /* Status icons */
64 #define PIDGIN_STOCK_STATUS_AVAILABLE  "pidgin-status-available"
65 #define PIDGIN_STOCK_STATUS_AVAILABLE_I "pidgin-status-available-i"
66 #define PIDGIN_STOCK_STATUS_AWAY       "pidgin-status-away"
67 #define PIDGIN_STOCK_STATUS_AWAY_I     "pidgin-status-away-i"
68 #define PIDGIN_STOCK_STATUS_BUSY       "pidgin-status-busy"
69 #define PIDGIN_STOCK_STATUS_BUSY_I     "pidgin-status-busy-i"
70 #define PIDGIN_STOCK_STATUS_CHAT       "pidgin-status-chat"
71 #define PIDGIN_STOCK_STATUS_INVISIBLE  "pidgin-status-invisible"
72 #define PIDGIN_STOCK_STATUS_XA         "pidgin-status-xa"
73 #define PIDGIN_STOCK_STATUS_XA_I       "pidgin-status-xa-i"
74 #define PIDGIN_STOCK_STATUS_LOGIN      "pidgin-status-login"
75 #define PIDGIN_STOCK_STATUS_LOGOUT     "pidgin-status-logout"
76 #define PIDGIN_STOCK_STATUS_OFFLINE    "pidgin-status-offline"
77 #define PIDGIN_STOCK_STATUS_OFFLINE_I  "pidgin-status-offline"
78 #define PIDGIN_STOCK_STATUS_PERSON     "pidgin-status-person"
79 #define PIDGIN_STOCK_STATUS_MESSAGE    "pidgin-status-message"
80 
81 /* Chat room emblems */
82 #define PIDGIN_STOCK_STATUS_IGNORED    "pidgin-status-ignored"
83 #define PIDGIN_STOCK_STATUS_FOUNDER    "pidgin-status-founder"
84 #define PIDGIN_STOCK_STATUS_OPERATOR   "pidgin-status-operator"
85 #define PIDGIN_STOCK_STATUS_HALFOP     "pidgin-status-halfop"
86 #define PIDGIN_STOCK_STATUS_VOICE      "pidgin-status-voice"
87 
88 /* Dialog icons */
89 #define PIDGIN_STOCK_DIALOG_AUTH	"pidgin-dialog-auth"
90 #define PIDGIN_STOCK_DIALOG_ERROR	"pidgin-dialog-error"
91 #define PIDGIN_STOCK_DIALOG_INFO	"pidgin-dialog-info"
92 #define PIDGIN_STOCK_DIALOG_MAIL	"pidgin-dialog-mail"
93 #define PIDGIN_STOCK_DIALOG_QUESTION	"pidgin-dialog-question"
94 #define PIDGIN_STOCK_DIALOG_COOL	"pidgin-dialog-cool"
95 #define PIDGIN_STOCK_DIALOG_WARNING	"pidgin-dialog-warning"
96 
97 /* StatusBox Animations */
98 #define PIDGIN_STOCK_ANIMATION_CONNECT0 "pidgin-anim-connect0"
99 #define PIDGIN_STOCK_ANIMATION_CONNECT1 "pidgin-anim-connect1"
100 #define PIDGIN_STOCK_ANIMATION_CONNECT2 "pidgin-anim-connect2"
101 #define PIDGIN_STOCK_ANIMATION_CONNECT3 "pidgin-anim-connect3"
102 #define PIDGIN_STOCK_ANIMATION_CONNECT4 "pidgin-anim-connect4"
103 #define PIDGIN_STOCK_ANIMATION_CONNECT5 "pidgin-anim-connect5"
104 #define PIDGIN_STOCK_ANIMATION_CONNECT6 "pidgin-anim-connect6"
105 #define PIDGIN_STOCK_ANIMATION_CONNECT7 "pidgin-anim-connect7"
106 #define PIDGIN_STOCK_ANIMATION_CONNECT8 "pidgin-anim-connect8"
107 #define PIDGIN_STOCK_ANIMATION_CONNECT9 "pidgin-anim-connect9"
108 #define PIDGIN_STOCK_ANIMATION_CONNECT10 "pidgin-anim-connect10"
109 #define PIDGIN_STOCK_ANIMATION_CONNECT11 "pidgin-anim-connect11"
110 #define PIDGIN_STOCK_ANIMATION_CONNECT12 "pidgin-anim-connect12"
111 #define PIDGIN_STOCK_ANIMATION_CONNECT13 "pidgin-anim-connect13"
112 #define PIDGIN_STOCK_ANIMATION_CONNECT14 "pidgin-anim-connect14"
113 #define PIDGIN_STOCK_ANIMATION_CONNECT15 "pidgin-anim-connect15"
114 #define PIDGIN_STOCK_ANIMATION_CONNECT16 "pidgin-anim-connect16"
115 #define PIDGIN_STOCK_ANIMATION_CONNECT17 "pidgin-anim-connect17"
116 #define PIDGIN_STOCK_ANIMATION_CONNECT18 "pidgin-anim-connect18"
117 #define PIDGIN_STOCK_ANIMATION_CONNECT19 "pidgin-anim-connect19"
118 #define PIDGIN_STOCK_ANIMATION_CONNECT20 "pidgin-anim-connect20"
119 #define PIDGIN_STOCK_ANIMATION_CONNECT21 "pidgin-anim-connect21"
120 #define PIDGIN_STOCK_ANIMATION_CONNECT22 "pidgin-anim-connect22"
121 #define PIDGIN_STOCK_ANIMATION_CONNECT23 "pidgin-anim-connect23"
122 #define PIDGIN_STOCK_ANIMATION_CONNECT24 "pidgin-anim-connect24"
123 #define PIDGIN_STOCK_ANIMATION_CONNECT25 "pidgin-anim-connect25"
124 #define PIDGIN_STOCK_ANIMATION_CONNECT26 "pidgin-anim-connect26"
125 #define PIDGIN_STOCK_ANIMATION_CONNECT27 "pidgin-anim-connect27"
126 #define PIDGIN_STOCK_ANIMATION_CONNECT28 "pidgin-anim-connect28"
127 #define PIDGIN_STOCK_ANIMATION_CONNECT29 "pidgin-anim-connect29"
128 #define PIDGIN_STOCK_ANIMATION_CONNECT30 "pidgin-anim-connect30"
129 #define PIDGIN_STOCK_ANIMATION_TYPING0	"pidgin-anim-typing0"
130 #define PIDGIN_STOCK_ANIMATION_TYPING1	"pidgin-anim-typing1"
131 #define PIDGIN_STOCK_ANIMATION_TYPING2	"pidgin-anim-typing2"
132 #define PIDGIN_STOCK_ANIMATION_TYPING3	"pidgin-anim-typing3"
133 #define PIDGIN_STOCK_ANIMATION_TYPING4	"pidgin-anim-typing4"
134 #define PIDGIN_STOCK_ANIMATION_TYPING5	"pidgin-anim-typing5"
135 
136 /* Toolbar (and menu) icons */
137 #define PIDGIN_STOCK_TOOLBAR_ACCOUNTS     "pidgin-accounts"
138 #define PIDGIN_STOCK_TOOLBAR_BGCOLOR      "pidgin-bgcolor"
139 #define PIDGIN_STOCK_TOOLBAR_BLOCK        "pidgin-block"
140 #define PIDGIN_STOCK_TOOLBAR_FGCOLOR      "pidgin-fgcolor"
141 #define PIDGIN_STOCK_TOOLBAR_SMILEY       "pidgin-smiley"
142 #define PIDGIN_STOCK_TOOLBAR_FONT_FACE	  "pidgin-font-face"
143 #define PIDGIN_STOCK_TOOLBAR_TEXT_SMALLER "pidgin-text-smaller"
144 #define PIDGIN_STOCK_TOOLBAR_TEXT_LARGER  "pidgin-text-larger"
145 #define PIDGIN_STOCK_TOOLBAR_INSERT       "pidgin-insert"
146 #define PIDGIN_STOCK_TOOLBAR_INSERT_IMAGE "pidgin-insert-image"
147 #define PIDGIN_STOCK_TOOLBAR_INSERT_LINK  "pidgin-insert-link"
148 #define PIDGIN_STOCK_TOOLBAR_MESSAGE_NEW  "pidgin-message-new"
149 #define PIDGIN_STOCK_TOOLBAR_PENDING      "pidgin-pending"
150 #define PIDGIN_STOCK_TOOLBAR_PLUGINS      "pidgin-plugins"
151 #define PIDGIN_STOCK_TOOLBAR_TYPING       "pidgin-typing"
152 #define PIDGIN_STOCK_TOOLBAR_USER_INFO    "pidgin-info"
153 #define PIDGIN_STOCK_TOOLBAR_UNBLOCK      "pidgin-unblock"
154 #define PIDGIN_STOCK_TOOLBAR_SELECT_AVATAR "pidgin-select-avatar"
155 #define PIDGIN_STOCK_TOOLBAR_SEND_FILE    "pidgin-send-file"
156 #define PIDGIN_STOCK_TOOLBAR_TRANSFER     "pidgin-transfer"
157 #ifdef USE_VV
158 #define PIDGIN_STOCK_TOOLBAR_AUDIO_CALL   "pidgin-audio-call"
159 #define PIDGIN_STOCK_TOOLBAR_VIDEO_CALL   "pidgin-video-call"
160 #define PIDGIN_STOCK_TOOLBAR_AUDIO_VIDEO_CALL "pidgin-audio-video-call"
161 #endif
162 #define PIDGIN_STOCK_TOOLBAR_SEND_ATTENTION	"pidgin-send-attention"
163 
164 /* Tray icons */
165 #define PIDGIN_STOCK_TRAY_AVAILABLE       "pidgin-tray-available"
166 #define PIDGIN_STOCK_TRAY_INVISIBLE	  "pidgin-tray-invisible"
167 #define PIDGIN_STOCK_TRAY_AWAY	  	  "pidgin-tray-away"
168 #define PIDGIN_STOCK_TRAY_BUSY            "pidgin-tray-busy"
169 #define PIDGIN_STOCK_TRAY_XA              "pidgin-tray-xa"
170 #define PIDGIN_STOCK_TRAY_OFFLINE         "pidgin-tray-offline"
171 #define PIDGIN_STOCK_TRAY_CONNECT         "pidgin-tray-connect"
172 #define PIDGIN_STOCK_TRAY_PENDING         "pidgin-tray-pending"
173 #define PIDGIN_STOCK_TRAY_EMAIL		  "pidgin-tray-email"
174 
175 
176 /*@}*/
177 
178 /**
179  * For using icons that aren't one of the default GTK_ICON_SIZEs
180  */
181 #define PIDGIN_ICON_SIZE_TANGO_MICROSCOPIC    "pidgin-icon-size-tango-microscopic"
182 #define PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL    "pidgin-icon-size-tango-extra-small"
183 #define PIDGIN_ICON_SIZE_TANGO_SMALL          "pidgin-icon-size-tango-small"
184 #define PIDGIN_ICON_SIZE_TANGO_MEDIUM         "pidgin-icon-size-tango-medium"
185 #define PIDGIN_ICON_SIZE_TANGO_LARGE          "pidgin-icon-size-tango-large"
186 #define PIDGIN_ICON_SIZE_TANGO_HUGE           "pidgin-icon-size-tango-huge"
187 
188 /**
189  * extends PidginIconTheme (gtkicon-theme.h)
190  * A pidgin stock icon theme.
191  * This object represents a Pidgin stock icon theme.
192  *
193  * PidginStockIconTheme is a PidginIconTheme Object.
194  */
195 typedef struct _PidginStockIconTheme        PidginStockIconTheme;
196 typedef struct _PidginStockIconThemeClass   PidginStockIconThemeClass;
197 
198 #define PIDGIN_TYPE_STOCK_ICON_THEME            (pidgin_stock_icon_theme_get_type ())
199 #define PIDGIN_STOCK_ICON_THEME(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), PIDGIN_TYPE_STOCK_ICON_THEME, PidginStockIconTheme))
200 #define PIDGIN_STOCK_ICON_THEME_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), PIDGIN_TYPE_STOCK_ICON_THEME, PidginStockIconThemeClass))
201 #define PIDGIN_IS_STOCK_ICON_THEME(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PIDGIN_TYPE_STOCK_ICON_THEME))
202 #define PIDGIN_IS_STOCK_ICON_THEME_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PIDGIN_TYPE_STOCK_ICON_THEME))
203 #define PIDGIN_STOCK_ICON_THEME_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), PIDGIN_TYPE_STOCK_ICON_THEME, PidginStockIconThemeClass))
204 
205 struct _PidginStockIconTheme
206 {
207 	PidginIconTheme parent;
208 };
209 
210 struct _PidginStockIconThemeClass
211 {
212 	PidginIconThemeClass parent_class;
213 };
214 
215 G_BEGIN_DECLS
216 
217 /**
218  * GObject foo.
219  * @internal.
220  */
221 GType pidgin_stock_icon_theme_get_type(void);
222 
223 /**
224  * Loades all of the icons from the status icon theme into Pidgin stock
225  *
226  * @param theme		the theme to load, or null to load all the default icons
227  */
228 void pidgin_stock_load_status_icon_theme(PidginStatusIconTheme *theme);
229 
230 
231 void pidgin_stock_load_stock_icon_theme(PidginStockIconTheme *theme);
232 
233 /**
234  * Sets up the purple stock repository.
235  */
236 void pidgin_stock_init(void);
237 
238 G_END_DECLS
239 #endif /* _PIDGIN_STOCK_H_ */
240