annotate src/gtkstock.c @ 12024:e67993da8a22

[gaim-migrate @ 14317] I strongly suspect CruiseControl is going to yell at me for this. A voice chat API, GUI + mediastreamer. This is what I'm using for Google Talk. This doesn't actually do anything at all. There's no code in the Jabber plugin yet to use this API (although it Works For Me). All it will do is compile and link. If you're lucky. To build this, you should install oRTP from Linphone, Speex and iLBC (also from linphone, I believe). To not build this, ./configure --disable-vv. Most of the configure.ac and Makefile.am hackery was lifted right out of Linphone with a few modifications. It seems to work if you have everything installed or if you --disable-vv. I haven't really tested not having everything installed and not --disabling-vv. It's kinda funky to include all of mediastreamer in the source tree like this, but linphone doesn't build it as a separate library. I'll probably wind up writing them a patch to build it as a .so so we can link it dynamically instead. This code certainly isn't finished. It'll adapt as I progress on the Google code, but it's certainly of more use here in CVS than in my personal tree. committer: Tailor Script <tailor@pidgin.im>
author Sean Egan <seanegan@gmail.com>
date Wed, 09 Nov 2005 08:07:20 +0000
parents c9188d3eb9d3
children e75ef7aa913e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10297
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
1 /**
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
2 * @file gtkstock.c GTK+ Stock resources
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
3 * @ingroup gtkui
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
4 *
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
5 * gaim
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
6 *
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
7 * Gaim is the legal property of its developers, whose names are too numerous
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
8 * to list here. Please refer to the COPYRIGHT file distributed with this
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
9 * source distribution.
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
10 *
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
11 * This program is free software; you can redistribute it and/or modify
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
12 * it under the terms of the GNU General Public License as published by
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
13 * the Free Software Foundation; either version 2 of the License, or
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
14 * (at your option) any later version.
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
15 *
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
16 * This program is distributed in the hope that it will be useful,
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
19 * GNU General Public License for more details.
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
20 *
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
21 * You should have received a copy of the GNU General Public License
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
22 * along with this program; if not, write to the Free Software
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
24 *
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
25 */
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
26 #include "internal.h"
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
27 #include "gtkgaim.h"
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
28
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
29 #include "gtkstock.h"
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
30
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
31 static struct StockIcon
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
32 {
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
33 const char *name;
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
34 const char *dir;
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
35 const char *filename;
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
36
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
37 } const stock_icons[] =
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
38 {
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
39 { GAIM_STOCK_ABOUT, "buttons", "about_menu.png" },
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
40 { GAIM_STOCK_ACCOUNTS, "buttons", "accounts.png" },
11370
2c3fb4a0f785 [gaim-migrate @ 13595]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
41 #if GTK_CHECK_VERSION(2,6,0)
2c3fb4a0f785 [gaim-migrate @ 13595]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
42 { GAIM_STOCK_ALIAS, NULL, GTK_STOCK_EDIT },
2c3fb4a0f785 [gaim-migrate @ 13595]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
43 #else
10297
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
44 { GAIM_STOCK_ALIAS, "buttons", "edit.png" },
11370
2c3fb4a0f785 [gaim-migrate @ 13595]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
45 #endif
10297
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
46 { GAIM_STOCK_BGCOLOR, "buttons", "change-bgcolor-small.png" },
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
47 { GAIM_STOCK_BLOCK, NULL, GTK_STOCK_STOP },
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
48 { GAIM_STOCK_CHAT, NULL, GTK_STOCK_JUMP_TO },
11370
2c3fb4a0f785 [gaim-migrate @ 13595]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
49 { GAIM_STOCK_CLEAR, NULL, GTK_STOCK_CLEAR },
10297
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
50 { GAIM_STOCK_DOWNLOAD, NULL, GTK_STOCK_GO_DOWN },
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
51 { GAIM_STOCK_DIALOG_AUTH, "dialogs", "gaim_auth.png" },
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
52 { GAIM_STOCK_DIALOG_COOL, "dialogs", "gaim_cool.png" },
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
53 { GAIM_STOCK_DIALOG_ERROR, "dialogs", "gaim_error.png" },
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
54 { GAIM_STOCK_DIALOG_INFO, "dialogs", "gaim_info.png" },
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
55 { GAIM_STOCK_DIALOG_QUESTION, "dialogs", "gaim_question.png" },
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
56 { GAIM_STOCK_DIALOG_WARNING, "dialogs", "gaim_warning.png" },
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
57 { GAIM_STOCK_FGCOLOR, "buttons", "change-fgcolor-small.png" },
11370
2c3fb4a0f785 [gaim-migrate @ 13595]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
58 #if GTK_CHECK_VERSION(2,6,0)
2c3fb4a0f785 [gaim-migrate @ 13595]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
59 { GAIM_STOCK_EDIT, NULL, GTK_STOCK_EDIT },
2c3fb4a0f785 [gaim-migrate @ 13595]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
60 #else
10297
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
61 { GAIM_STOCK_EDIT, "buttons", "edit.png" },
11370
2c3fb4a0f785 [gaim-migrate @ 13595]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
62 #endif
10297
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
63 { GAIM_STOCK_FILE_CANCELED, NULL, GTK_STOCK_CANCEL },
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
64 { GAIM_STOCK_FILE_DONE, NULL, GTK_STOCK_APPLY },
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
65 { GAIM_STOCK_FILE_TRANSFER, NULL, GTK_STOCK_REVERT_TO_SAVED },
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
66 { GAIM_STOCK_ICON_AWAY, "icons", "away.png" },
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
67 { GAIM_STOCK_ICON_AWAY_MSG, "icons", "msgpend.png" },
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
68 { GAIM_STOCK_ICON_CONNECT, "icons", "connect.png" },
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
69 { GAIM_STOCK_ICON_OFFLINE, "icons", "offline.png" },
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
70 { GAIM_STOCK_ICON_ONLINE, "icons", "online.png" },
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
71 { GAIM_STOCK_ICON_ONLINE_MSG, "icons", "msgunread.png" },
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
72 { GAIM_STOCK_IGNORE, NULL, GTK_STOCK_DIALOG_ERROR },
11271
b33eccbc3a10 [gaim-migrate @ 13454]
Richard Laager <rlaager@wiktel.com>
parents: 10871
diff changeset
73 { GAIM_STOCK_IM, "buttons", "send-im.png" },
10297
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
74 { GAIM_STOCK_IMAGE, "buttons", "insert-image-small.png" },
11370
2c3fb4a0f785 [gaim-migrate @ 13595]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
75 #if GTK_CHECK_VERSION(2,8,0)
2c3fb4a0f785 [gaim-migrate @ 13595]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
76 { GAIM_STOCK_INFO, NULL, GTK_STOCK_INFO },
2c3fb4a0f785 [gaim-migrate @ 13595]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
77 #else
2c3fb4a0f785 [gaim-migrate @ 13595]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
78 { GAIM_STOCK_INFO, "icons", "info.png" },
2c3fb4a0f785 [gaim-migrate @ 13595]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
79 #endif
10297
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
80 { GAIM_STOCK_INVITE, NULL, GTK_STOCK_JUMP_TO },
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
81 { GAIM_STOCK_LINK, "buttons", "insert-link-small.png" },
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
82 { GAIM_STOCK_LOGO, "gaim", "logo.png" },
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
83 { GAIM_STOCK_MODIFY, NULL, GTK_STOCK_PREFERENCES },
11370
2c3fb4a0f785 [gaim-migrate @ 13595]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
84 #if GTK_CHECK_VERSION(2,6,0)
2c3fb4a0f785 [gaim-migrate @ 13595]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
85 { GAIM_STOCK_PAUSE, NULL, GTK_STOCK_MEDIA_PAUSE },
2c3fb4a0f785 [gaim-migrate @ 13595]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
86 #else
10297
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
87 { GAIM_STOCK_PAUSE, "buttons", "pause.png" },
11370
2c3fb4a0f785 [gaim-migrate @ 13595]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
88 #endif
10297
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
89 { GAIM_STOCK_OPEN_MAIL, NULL, GTK_STOCK_JUMP_TO },
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
90 { GAIM_STOCK_SEND, "buttons", "send-im.png" },
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
91 { GAIM_STOCK_SIGN_ON, NULL, GTK_STOCK_EXECUTE },
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
92 { GAIM_STOCK_SIGN_OFF, NULL, GTK_STOCK_CLOSE },
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
93 { GAIM_STOCK_SMILEY, "buttons", "insert-smiley-small.png" },
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
94 { GAIM_STOCK_TEXT_BIGGER, "buttons", "text_bigger.png" },
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
95 { GAIM_STOCK_TEXT_NORMAL, "buttons", "text_normal.png" },
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
96 { GAIM_STOCK_TEXT_SMALLER, "buttons", "text_smaller.png" },
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
97 { GAIM_STOCK_TYPED, "gaim", "typed.png" },
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
98 { GAIM_STOCK_TYPING, "gaim", "typing.png" },
12024
e67993da8a22 [gaim-migrate @ 14317]
Sean Egan <seanegan@gmail.com>
parents: 11787
diff changeset
99 { GAIM_STOCK_VOICE_CHAT, "gaim", "phone.png" },
10643
868aafbe859b [gaim-migrate @ 12153]
Sean Egan <seanegan@gmail.com>
parents: 10297
diff changeset
100 { GAIM_STOCK_STATUS_ONLINE, "gaim", "status-online.png" },
868aafbe859b [gaim-migrate @ 12153]
Sean Egan <seanegan@gmail.com>
parents: 10297
diff changeset
101 { GAIM_STOCK_STATUS_OFFLINE, "gaim", "status-offline.png" },
868aafbe859b [gaim-migrate @ 12153]
Sean Egan <seanegan@gmail.com>
parents: 10297
diff changeset
102 { GAIM_STOCK_STATUS_AWAY, "gaim", "status-away.png" },
868aafbe859b [gaim-migrate @ 12153]
Sean Egan <seanegan@gmail.com>
parents: 10297
diff changeset
103 { GAIM_STOCK_STATUS_INVISIBLE,"gaim", "status-invisible.png" },
868aafbe859b [gaim-migrate @ 12153]
Sean Egan <seanegan@gmail.com>
parents: 10297
diff changeset
104 { GAIM_STOCK_STATUS_TYPING0, "gaim", "status-typing0.png" },
868aafbe859b [gaim-migrate @ 12153]
Sean Egan <seanegan@gmail.com>
parents: 10297
diff changeset
105 { GAIM_STOCK_STATUS_TYPING1, "gaim", "status-typing1.png" },
868aafbe859b [gaim-migrate @ 12153]
Sean Egan <seanegan@gmail.com>
parents: 10297
diff changeset
106 { GAIM_STOCK_STATUS_TYPING2, "gaim", "status-typing2.png" },
868aafbe859b [gaim-migrate @ 12153]
Sean Egan <seanegan@gmail.com>
parents: 10297
diff changeset
107 { GAIM_STOCK_STATUS_TYPING3, "gaim", "status-typing3.png" },
868aafbe859b [gaim-migrate @ 12153]
Sean Egan <seanegan@gmail.com>
parents: 10297
diff changeset
108 { GAIM_STOCK_STATUS_CONNECT0, "gaim", "status-connect0.png" },
868aafbe859b [gaim-migrate @ 12153]
Sean Egan <seanegan@gmail.com>
parents: 10297
diff changeset
109 { GAIM_STOCK_STATUS_CONNECT1, "gaim", "status-connect1.png" },
868aafbe859b [gaim-migrate @ 12153]
Sean Egan <seanegan@gmail.com>
parents: 10297
diff changeset
110 { GAIM_STOCK_STATUS_CONNECT2, "gaim", "status-connect2.png" },
868aafbe859b [gaim-migrate @ 12153]
Sean Egan <seanegan@gmail.com>
parents: 10297
diff changeset
111 { GAIM_STOCK_STATUS_CONNECT3, "gaim", "status-connect3.png" },
10297
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
112 { GAIM_STOCK_UPLOAD, NULL, GTK_STOCK_GO_UP },
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
113 { GAIM_STOCK_WARN, NULL, GTK_STOCK_DIALOG_WARNING }
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
114 };
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
115
10871
6240d7fd5b2c [gaim-migrate @ 12558]
Mark Doliner <mark@kingant.net>
parents: 10643
diff changeset
116 static const GtkStockItem stock_items[] =
10297
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
117 {
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
118 { GAIM_STOCK_ALIAS, N_("_Alias"), 0, 0, NULL },
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
119 { GAIM_STOCK_CHAT, N_("_Join"), 0, 0, NULL },
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
120 { GAIM_STOCK_INVITE, N_("_Invite"), 0, 0, NULL },
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
121 { GAIM_STOCK_MODIFY, N_("_Modify"), 0, 0, NULL },
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
122 { GAIM_STOCK_OPEN_MAIL, N_("_Open Mail"), 0, 0, NULL },
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
123 { GAIM_STOCK_PAUSE, N_("_Pause"), 0, 0, NULL },
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
124 { GAIM_STOCK_WARN, N_("_Warn"), 0, 0, NULL }
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
125 };
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
126
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
127 static gchar *
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
128 find_file(const char *dir, const char *base)
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
129 {
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
130 char *filename;
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
131
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
132 if (base == NULL)
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
133 return NULL;
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
134
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
135 if (!strcmp(dir, "gaim"))
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
136 filename = g_build_filename(DATADIR, "pixmaps", "gaim", base, NULL);
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
137 else
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
138 {
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
139 filename = g_build_filename(DATADIR, "pixmaps", "gaim", dir,
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
140 base, NULL);
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
141 }
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
142
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
143 if (!g_file_test(filename, G_FILE_TEST_EXISTS))
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
144 {
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
145 g_critical("Unable to load stock pixmap %s\n", base);
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
146
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
147 g_free(filename);
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
148
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
149 return NULL;
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
150 }
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
151
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
152 return filename;
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
153 }
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
154
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
155 static void
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
156 gaim_gtk_stock_versionize(GdkPixbuf **original, GtkWidget *widget) {
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
157 GdkPixmap *pixmap;
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
158 GtkStyle *style;
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
159 PangoContext *context;
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
160 PangoLayout *layout;
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
161 gchar *markup;
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
162 gint width, height;
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
163 gint lwidth = 0, lheight = 0;
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
164
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
165 style = gtk_widget_get_style(widget);
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
166
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
167 gdk_pixbuf_render_pixmap_and_mask(*original, &pixmap, NULL, 255);
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
168 width = gdk_pixbuf_get_width(*original);
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
169 height = gdk_pixbuf_get_height(*original);
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
170 g_object_unref(G_OBJECT(*original));
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
171
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
172 context = gtk_widget_get_pango_context(widget);
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
173 layout = pango_layout_new(context);
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
174
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
175 markup = g_strdup_printf("<span foreground=\"#FFFFFF\" size=\"larger\">%s</span>", VERSION);
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
176 pango_layout_set_font_description(layout, style->font_desc);
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
177 pango_layout_set_markup(layout, markup, strlen(markup));
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
178 g_free(markup);
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
179
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
180 pango_layout_get_pixel_size(layout, &lwidth, &lheight);
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
181 gdk_draw_layout(GDK_DRAWABLE(pixmap), style->bg_gc[GTK_STATE_NORMAL],
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
182 width - (lwidth + 3), height - (lheight + 1), layout);
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
183 g_object_unref(G_OBJECT(layout));
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
184
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
185 *original = gdk_pixbuf_get_from_drawable(NULL, pixmap, NULL,
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
186 0, 0, 0, 0,
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
187 width, height);
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
188 g_object_unref(G_OBJECT(pixmap));
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
189 }
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
190
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
191 void
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
192 gaim_gtk_stock_init(void)
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
193 {
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
194 static gboolean stock_initted = FALSE;
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
195 GtkIconFactory *icon_factory;
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
196 int i;
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
197 GtkWidget *win;
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
198
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
199 if (stock_initted)
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
200 return;
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
201
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
202 stock_initted = TRUE;
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
203
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
204 /* Setup the icon factory. */
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
205 icon_factory = gtk_icon_factory_new();
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
206
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
207 gtk_icon_factory_add_default(icon_factory);
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
208
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
209 /* Er, yeah, a hack, but it works. :) */
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
210 win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
211 gtk_widget_realize(win);
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
212
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
213 for (i = 0; i < G_N_ELEMENTS(stock_icons); i++)
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
214 {
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
215 GdkPixbuf *pixbuf;
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
216 GtkIconSet *iconset;
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
217 gchar *filename;
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
218
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
219 if (stock_icons[i].dir == NULL)
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
220 {
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
221 /* GTK+ Stock icon */
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
222 iconset = gtk_style_lookup_icon_set(gtk_widget_get_style(win),
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
223 stock_icons[i].filename);
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
224 }
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
225 else
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
226 {
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
227 filename = find_file(stock_icons[i].dir, stock_icons[i].filename);
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
228
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
229 if (filename == NULL)
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
230 continue;
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
231
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
232 pixbuf = gdk_pixbuf_new_from_file(filename, NULL);
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
233
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
234 g_free(filename);
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
235
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
236 if (!strcmp(stock_icons[i].name, GAIM_STOCK_LOGO))
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
237 gaim_gtk_stock_versionize(&pixbuf, win);
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
238
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
239 iconset = gtk_icon_set_new_from_pixbuf(pixbuf);
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
240
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
241 g_object_unref(G_OBJECT(pixbuf));
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
242 }
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
243
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
244 gtk_icon_factory_add(icon_factory, stock_icons[i].name, iconset);
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
245
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
246 gtk_icon_set_unref(iconset);
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
247 }
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
248
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
249 gtk_widget_destroy(win);
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
250
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
251 /* register custom icon sizes */
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
252 gtk_icon_size_register(GAIM_ICON_SIZE_LOGO, 330, 90);
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
253 gtk_icon_size_register(GAIM_ICON_SIZE_DIALOG_COOL, 40, 60);
10643
868aafbe859b [gaim-migrate @ 12153]
Sean Egan <seanegan@gmail.com>
parents: 10297
diff changeset
254 gtk_icon_size_register(GAIM_ICON_SIZE_STATUS, 30, 30);
10297
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
255
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
256 g_object_unref(G_OBJECT(icon_factory));
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
257
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
258 /* Register the stock items. */
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
259 gtk_stock_add_static(stock_items, G_N_ELEMENTS(stock_items));
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
260 }