src/gtksavedstatuses.h

Wed, 21 Dec 2005 18:43:39 +0000

author
Richard Laager <rlaager@pidgin.im>
date
Wed, 21 Dec 2005 18:43:39 +0000
changeset 12601
be19ef28e2ce
parent 12245
f16b735e91c9
child 13014
fa17f785b6fe
permissions
-rw-r--r--

[gaim-migrate @ 14935]
Jason LeBrun wrote to gaim-devel:

"I have found a small quirk in the way gdk_pixbuf_loader works. When you
are using it without signalling, the proper way to use it is to call
gdk_pixbuf_loader_close *before* calling gdk_pixbuf_loader_get_animation
or gdk_pixbuf_loader_get_pixbuf. The call to gdk_pixbuf_loader_close
signals that no more writes will be occuring.

In particular, this affects images that are less than 1k in size. If
gdk_pixbuf_loader_close is not called before _get_animation, the loader
will not return anything unless it has received more than 1k of data
(the file type sniffing buffer size) or it has been closed.

So, the proper order of calls for loaders in the gtk*.c code is:

gdk_pixbuf_loader_new();
gdk_pixbuf_loader_write();
gdk_pixbuf_loader_close();
gdk_pixbuf_loader_get_animation();"

I know we fixed a bug by changing this in one place. I've gone through and updated the rest.

10418
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
1 /**
10469
3edb0348ba88 [gaim-migrate @ 11751]
Mark Doliner <markdoliner@pidgin.im>
parents: 10447
diff changeset
2 * @file gtksavedstatuses.h GTK+ Saved Status Editor UI
10418
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
3 * @ingroup gtkui
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
4 *
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
5 * gaim
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
6 *
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
7 * Gaim is the legal property of its developers, whose names are too numerous
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
8 * to list here. Please refer to the COPYRIGHT file distributed with this
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
9 * source distribution.
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
10 *
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
11 * This program is free software; you can redistribute it and/or modify
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
12 * it under the terms of the GNU General Public License as published by
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
13 * the Free Software Foundation; either version 2 of the License, or
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
14 * (at your option) any later version.
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
15 *
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
16 * This program is distributed in the hope that it will be useful,
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
19 * GNU General Public License for more details.
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
20 *
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
21 * You should have received a copy of the GNU General Public License
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
22 * along with this program; if not, write to the Free Software
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
24 */
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
25 #ifndef _GAIM_GTKSAVEDSTATUSES_H_
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
26 #define _GAIM_GTKSAVEDSTATUSES_H_
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
27
10421
34797f8b5742 [gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents: 10418
diff changeset
28 #include "savedstatuses.h"
10418
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
29 #include "status.h"
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
30
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
31 /**
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
32 * Shows the status window.
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
33 */
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
34 void gaim_gtk_status_window_show(void);
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
35
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
36 /**
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
37 * Hides the status window.
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
38 */
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
39 void gaim_gtk_status_window_hide(void);
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
40
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
41 /**
10447
887380ec66f5 [gaim-migrate @ 11712]
Mark Doliner <markdoliner@pidgin.im>
parents: 10421
diff changeset
42 * Shows a status editor (used for adding a new saved status or
887380ec66f5 [gaim-migrate @ 11712]
Mark Doliner <markdoliner@pidgin.im>
parents: 10421
diff changeset
43 * editing an already existing saved status).
887380ec66f5 [gaim-migrate @ 11712]
Mark Doliner <markdoliner@pidgin.im>
parents: 10421
diff changeset
44 *
887380ec66f5 [gaim-migrate @ 11712]
Mark Doliner <markdoliner@pidgin.im>
parents: 10421
diff changeset
45 * @param status The saved status to edit, or @c NULL if you
887380ec66f5 [gaim-migrate @ 11712]
Mark Doliner <markdoliner@pidgin.im>
parents: 10421
diff changeset
46 * want to add a new saved status.
10421
34797f8b5742 [gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents: 10418
diff changeset
47 */
34797f8b5742 [gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents: 10418
diff changeset
48 void gaim_gtk_status_editor_show(GaimSavedStatus *status);
34797f8b5742 [gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents: 10418
diff changeset
49
34797f8b5742 [gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents: 10418
diff changeset
50 /**
10418
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
51 * Returns the gtkstatus handle.
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
52 *
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
53 * @return The handle to the GTK+ status system.
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
54 */
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
55 void *gaim_gtk_status_get_handle(void);
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
56
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
57 /**
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
58 * Initializes the GTK+ status system.
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
59 */
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
60 void gaim_gtk_status_init(void);
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
61
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
62 /**
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
63 * Uninitializes the GTK+ status system.
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
64 */
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
65 void gaim_gtk_status_uninit(void);
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
66
12195
ef8f46c29e77 [gaim-migrate @ 14497]
Sean Egan <seanegan@pidgin.im>
parents: 10469
diff changeset
67 /**
ef8f46c29e77 [gaim-migrate @ 14497]
Sean Egan <seanegan@pidgin.im>
parents: 10469
diff changeset
68 * Creates a dropdown menu of saved statuses and calls a callback
ef8f46c29e77 [gaim-migrate @ 14497]
Sean Egan <seanegan@pidgin.im>
parents: 10469
diff changeset
69 * when one is selected
ef8f46c29e77 [gaim-migrate @ 14497]
Sean Egan <seanegan@pidgin.im>
parents: 10469
diff changeset
70 *
12245
f16b735e91c9 [gaim-migrate @ 14547]
Mark Doliner <markdoliner@pidgin.im>
parents: 12195
diff changeset
71 * @param status The default saved_status to show as 'selected'
12195
ef8f46c29e77 [gaim-migrate @ 14497]
Sean Egan <seanegan@pidgin.im>
parents: 10469
diff changeset
72 * @param callback The callback to call when the selection changes
ef8f46c29e77 [gaim-migrate @ 14497]
Sean Egan <seanegan@pidgin.im>
parents: 10469
diff changeset
73 * @return The menu widget
ef8f46c29e77 [gaim-migrate @ 14497]
Sean Egan <seanegan@pidgin.im>
parents: 10469
diff changeset
74 */
ef8f46c29e77 [gaim-migrate @ 14497]
Sean Egan <seanegan@pidgin.im>
parents: 10469
diff changeset
75 GtkWidget *gaim_gtk_status_menu(GaimSavedStatus *status, GCallback callback);
ef8f46c29e77 [gaim-migrate @ 14497]
Sean Egan <seanegan@pidgin.im>
parents: 10469
diff changeset
76
10418
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
77 #endif /* _GAIM_GTKSAVEDSTATUSES_H_ */

mercurial