Mercurial > pidgin.yaz
annotate src/stock.c @ 5294:d579d5367836
[gaim-migrate @ 5666]
When you "get info" for AIM now, and someone has their info set to
"http://google.com" (and not
"<A HREF="http://google.com">http://google.com</a> the link will now
be clickable. The function I changed is used by irc, gg, jabber, toc,
and zephyr, so I'm not sure what side affects this might have. It
should all be good though.
If anyone thinks this should be reverted, feel free.
Oh, and I'll be really busy with exams for the next 9 or so days.
committer: Tailor Script <tailor@pidgin.im>
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Sun, 04 May 2003 03:32:18 +0000 |
parents | 5ec912df7a18 |
children | fe76565d93c4 |
rev | line source |
---|---|
4359 | 1 /** |
2 * @file stock.c GTK+ Stock resources | |
3 * | |
4 * gaim | |
5 * | |
6 * Copyright (C) 2002-2003, Christian Hammond <chipx86@gnupdate.org> | |
7 * | |
8 * This program is free software; you can redistribute it and/or modify | |
9 * it under the terms of the GNU General Public License as published by | |
10 * the Free Software Foundation; either version 2 of the License, or | |
11 * (at your option) any later version. | |
12 * | |
13 * This program is distributed in the hope that it will be useful, | |
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
16 * GNU General Public License for more details. | |
17 * | |
18 * You should have received a copy of the GNU General Public License | |
19 * along with this program; if not, write to the Free Software | |
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
21 * | |
22 */ | |
23 #include "stock.h" | |
24 #include "core.h" | |
25 #include <gtk/gtk.h> | |
26 #include <string.h> | |
27 | |
4363
65d98b565fbe
[gaim-migrate @ 4629]
Christian Hammond <chipx86@chipx86.com>
parents:
4359
diff
changeset
|
28 #ifdef _WIN32 |
65d98b565fbe
[gaim-migrate @ 4629]
Christian Hammond <chipx86@chipx86.com>
parents:
4359
diff
changeset
|
29 #include "win32dep.h" |
65d98b565fbe
[gaim-migrate @ 4629]
Christian Hammond <chipx86@chipx86.com>
parents:
4359
diff
changeset
|
30 #endif |
65d98b565fbe
[gaim-migrate @ 4629]
Christian Hammond <chipx86@chipx86.com>
parents:
4359
diff
changeset
|
31 |
4359 | 32 static struct StockIcon |
33 { | |
34 const char *name; | |
35 const char *dir; | |
36 const char *filename; | |
37 | |
38 } const stock_icons[] = | |
39 { | |
5024 | 40 { GAIM_STOCK_ABOUT, "buttons", "about_menu.png" }, |
41 { GAIM_STOCK_ACCOUNTS, "buttons", "accounts.png" }, | |
42 { GAIM_STOCK_BGCOLOR, "buttons", "change-bgcolor-small.png" }, | |
43 { GAIM_STOCK_BLOCK, NULL, GTK_STOCK_STOP }, | |
44 { GAIM_STOCK_CHAT, NULL, GTK_STOCK_JUMP_TO }, | |
45 { GAIM_STOCK_DOWNLOAD, NULL, GTK_STOCK_GO_DOWN }, | |
46 { GAIM_STOCK_DIALOG_AUTH, "dialogs", "gaim_auth.png" }, | |
47 { GAIM_STOCK_DIALOG_COOL, "dialogs", "gaim_cool.png" }, | |
48 { GAIM_STOCK_DIALOG_ERROR, "dialogs", "gaim_error.png" }, | |
49 { GAIM_STOCK_DIALOG_INFO, "dialogs", "gaim_info.png" }, | |
50 { GAIM_STOCK_DIALOG_QUESTION, "dialogs", "gaim_question.png" }, | |
51 { GAIM_STOCK_DIALOG_WARNING, "dialogs", "gaim_warning.png" }, | |
52 { GAIM_STOCK_FGCOLOR, "buttons", "change-fgcolor-small.png" }, | |
53 { GAIM_STOCK_EDIT, "buttons", "edit.png" }, | |
54 { GAIM_STOCK_FILE_CANCELED, NULL, GTK_STOCK_CANCEL }, | |
55 { GAIM_STOCK_FILE_DONE, NULL, GTK_STOCK_APPLY }, | |
56 { GAIM_STOCK_FILE_TRANSFER, NULL, GTK_STOCK_REVERT_TO_SAVED }, | |
57 { GAIM_STOCK_ICON_AWAY, "icons", "away.png" }, | |
58 { GAIM_STOCK_ICON_AWAY_MSG, "icons", "msgpend.png" }, | |
59 { GAIM_STOCK_ICON_CONNECT, "icons", "connect.png" }, | |
60 { GAIM_STOCK_ICON_OFFLINE, "icons", "offline.png" }, | |
61 { GAIM_STOCK_ICON_ONLINE, "icons", "online.png" }, | |
62 { GAIM_STOCK_ICON_ONLINE_MSG, "icons", "msgunread.png" }, | |
63 { GAIM_STOCK_IGNORE, NULL, GTK_STOCK_DIALOG_ERROR }, | |
64 { GAIM_STOCK_IM, NULL, GTK_STOCK_CONVERT }, | |
65 { GAIM_STOCK_IMAGE, "buttons", "insert-image-small.png" }, | |
66 { GAIM_STOCK_INFO, NULL, GTK_STOCK_FIND }, | |
67 { GAIM_STOCK_INVITE, NULL, GTK_STOCK_JUMP_TO }, | |
68 { GAIM_STOCK_LINK, "buttons", "insert-link-small.png" }, | |
69 { GAIM_STOCK_LOGO, "gaim", "logo.png" }, | |
70 { GAIM_STOCK_PRIVACY, NULL, GTK_STOCK_PROPERTIES }, | |
71 { GAIM_STOCK_SEND, NULL, GTK_STOCK_CONVERT }, | |
72 { GAIM_STOCK_SIGN_ON, NULL, GTK_STOCK_EXECUTE }, | |
73 { GAIM_STOCK_SIGN_OFF, NULL, GTK_STOCK_CLOSE }, | |
74 { GAIM_STOCK_SMILEY, "buttons", "insert-smiley-small.png" }, | |
75 { GAIM_STOCK_TEXT_BIGGER, "buttons", "text_bigger.png" }, | |
76 { GAIM_STOCK_TEXT_NORMAL, "buttons", "text_normal.png" }, | |
77 { GAIM_STOCK_TEXT_SMALLER, "buttons", "text_smaller.png" }, | |
78 { GAIM_STOCK_TYPED, "gaim", "typed.png" }, | |
79 { GAIM_STOCK_TYPING, "gaim", "typing.png" }, | |
80 { GAIM_STOCK_UPLOAD, NULL, GTK_STOCK_GO_UP }, | |
81 { GAIM_STOCK_WARN, NULL, GTK_STOCK_DIALOG_WARNING } | |
4359 | 82 }; |
83 | |
84 static gint stock_icon_count = sizeof(stock_icons) / sizeof(*stock_icons); | |
85 | |
86 static gchar * | |
87 find_file(const char *dir, const char *base) | |
88 { | |
89 char *filename; | |
90 | |
91 if (base == NULL) | |
92 return NULL; | |
93 | |
94 if (!strcmp(dir, "gaim")) | |
95 filename = g_build_filename(DATADIR, "pixmaps", "gaim", base, NULL); | |
96 else | |
5024 | 97 filename = g_build_filename(DATADIR, "pixmaps", "gaim", dir, base, NULL); |
4359 | 98 |
99 if (!g_file_test(filename, G_FILE_TEST_EXISTS)) { | |
4866
703e02e52262
[gaim-migrate @ 5196]
Christian Hammond <chipx86@chipx86.com>
parents:
4736
diff
changeset
|
100 g_critical("Unable to load stock pixmap %s\n", base); |
4359 | 101 |
102 g_free(filename); | |
103 | |
104 return NULL; | |
105 } | |
106 | |
107 return filename; | |
108 } | |
109 | |
110 void | |
111 setup_stock() | |
112 { | |
113 GtkIconFactory *icon_factory; | |
114 int i; | |
4670
ada933d434cb
[gaim-migrate @ 4981]
Christian Hammond <chipx86@chipx86.com>
parents:
4514
diff
changeset
|
115 GtkWidget *win; |
4359 | 116 |
117 /* Setup the icon factory. */ | |
118 icon_factory = gtk_icon_factory_new(); | |
119 | |
120 gtk_icon_factory_add_default(icon_factory); | |
121 | |
4670
ada933d434cb
[gaim-migrate @ 4981]
Christian Hammond <chipx86@chipx86.com>
parents:
4514
diff
changeset
|
122 /* Er, yeah, a hack, but it works. :) */ |
ada933d434cb
[gaim-migrate @ 4981]
Christian Hammond <chipx86@chipx86.com>
parents:
4514
diff
changeset
|
123 win = gtk_window_new(GTK_WINDOW_TOPLEVEL); |
ada933d434cb
[gaim-migrate @ 4981]
Christian Hammond <chipx86@chipx86.com>
parents:
4514
diff
changeset
|
124 gtk_widget_realize(win); |
ada933d434cb
[gaim-migrate @ 4981]
Christian Hammond <chipx86@chipx86.com>
parents:
4514
diff
changeset
|
125 |
4359 | 126 for (i = 0; i < stock_icon_count; i++) { |
127 GdkPixbuf *pixbuf; | |
128 GtkIconSet *iconset; | |
129 gchar *filename; | |
130 | |
131 if (stock_icons[i].dir == NULL) { | |
4670
ada933d434cb
[gaim-migrate @ 4981]
Christian Hammond <chipx86@chipx86.com>
parents:
4514
diff
changeset
|
132 |
4359 | 133 /* GTK+ Stock icon */ |
4670
ada933d434cb
[gaim-migrate @ 4981]
Christian Hammond <chipx86@chipx86.com>
parents:
4514
diff
changeset
|
134 iconset = gtk_style_lookup_icon_set(gtk_widget_get_style(win), |
ada933d434cb
[gaim-migrate @ 4981]
Christian Hammond <chipx86@chipx86.com>
parents:
4514
diff
changeset
|
135 stock_icons[i].filename); |
4359 | 136 } |
137 else { | |
138 filename = find_file(stock_icons[i].dir, stock_icons[i].filename); | |
139 | |
140 if (filename == NULL) | |
141 continue; | |
142 | |
143 pixbuf = gdk_pixbuf_new_from_file(filename, NULL); | |
144 | |
145 g_free(filename); | |
146 | |
147 iconset = gtk_icon_set_new_from_pixbuf(pixbuf); | |
148 } | |
149 | |
150 gtk_icon_factory_add(icon_factory, stock_icons[i].name, iconset); | |
151 | |
152 gtk_icon_set_unref(iconset); | |
153 } | |
154 | |
4670
ada933d434cb
[gaim-migrate @ 4981]
Christian Hammond <chipx86@chipx86.com>
parents:
4514
diff
changeset
|
155 gtk_widget_destroy(win); |
ada933d434cb
[gaim-migrate @ 4981]
Christian Hammond <chipx86@chipx86.com>
parents:
4514
diff
changeset
|
156 |
5024 | 157 /* register logo icon size */ |
158 gtk_icon_size_register(GAIM_ICON_SIZE_LOGO, 210, 150); | |
159 | |
4359 | 160 g_object_unref(G_OBJECT(icon_factory)); |
161 } |