Mercurial > pidgin
view finch/libgnt/gntwindow.h @ 17284:37499e926a42
Add new MsimMessage element type, MSIM_TYPE_RAW, for fields in incoming
protocol messages that don't have any type information associated with them.
These elements will be unescaped if used as strings, in msim_msg_get_string(),
and won't be escaped if serialized into a protocol message in msim_msg_element_pack().
On the other hand, MSIM_TYPE_STRING will be escaped when packed. Previously,
everything was MSIM_TYPE_STRING, leading to more complicated escaping.
Now, an instant message "foo/bar\baz" will be represented as follows:
bm(raw): 1
f(raw): 180301984
cv(raw): 673
msg(raw): foo/1bar/2baz
And it will be interpreted by the receiving client correctly--
msim_msg_get_string(..., "msg") will be "foo/bar\baz".
author | Jeffrey Connelly <jaconnel@calpoly.edu> |
---|---|
date | Sat, 02 Jun 2007 02:43:43 +0000 |
parents | f00f2e283ffb |
children | 3c3fc1432a01 8410511f4dbb |
line wrap: on
line source
#ifndef GNT_WINDOW_H #define GNT_WINDOW_H #include "gnt.h" #include "gntbox.h" #include "gntcolors.h" #include "gntkeys.h" #include "gntmenu.h" #define GNT_TYPE_WINDOW (gnt_window_get_gtype()) #define GNT_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GNT_TYPE_WINDOW, GntWindow)) #define GNT_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GNT_TYPE_WINDOW, GntWindowClass)) #define GNT_IS_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GNT_TYPE_WINDOW)) #define GNT_IS_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GNT_TYPE_WINDOW)) #define GNT_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GNT_TYPE_WINDOW, GntWindowClass)) #define GNT_WINDOW_FLAGS(obj) (GNT_WINDOW(obj)->priv.flags) #define GNT_WINDOW_SET_FLAGS(obj, flags) (GNT_WINDOW_FLAGS(obj) |= flags) #define GNT_WINDOW_UNSET_FLAGS(obj, flags) (GNT_WINDOW_FLAGS(obj) &= ~(flags)) typedef struct _GntWindow GntWindow; typedef struct _GntWindowPriv GntWindowPriv; typedef struct _GntWindowClass GntWindowClass; struct _GntWindow { GntBox parent; GntMenu *menu; }; struct _GntWindowClass { GntBoxClass parent; void (*gnt_reserved1)(void); void (*gnt_reserved2)(void); void (*gnt_reserved3)(void); void (*gnt_reserved4)(void); }; G_BEGIN_DECLS GType gnt_window_get_gtype(void); #define gnt_vwindow_new(homo) gnt_window_box_new(homo, TRUE) #define gnt_hwindow_new(homo) gnt_window_box_new(homo, FALSE) GntWidget *gnt_window_new(void); GntWidget *gnt_window_box_new(gboolean homo, gboolean vert); void gnt_window_set_menu(GntWindow *window, GntMenu *menu); G_END_DECLS #endif /* GNT_WINDOW_H */