Tue, 17 Oct 2006 08:13:41 +0000
[gaim-migrate @ 17495]
This should fix the statusbox issues that were keeping us from releasing beta
4 (and which were just really annoying). Thakn sadrul for most of this, I just
added the if (index == -1) bit. Anyway, the way this works now is that for
saved/popular statuses the primitive underlying that status is where the
dropdown for the statusbox starts. If we don't like that we can change it but
I'm not sure we'll find something better.
Also, this might plug a couple leaks, I'm not really sure but it certainly
looks right.
Up next, the patch to make the docklet use the per-protocol statuses in the
top section.
| 14478 | 1 | #include "gtkmodule.h" |
| 2 | ||
| 3 | /* This can't work at the moment since I don't have a typemap for Gtk::Widget. | |
| 4 | * I thought about using the one from libgtk2-perl but wasn't sure how to go | |
| 5 | * about doing that. | |
| 6 | Gtk::Widget | |
| 7 | gtk_imhtml_new(a, b) | |
| 8 | */ | |
| 9 | ||
| 10 | /* This can't work at the moment since I don't have a typemap for | |
| 11 | * Gtk::TextIter. | |
| 12 | * I thought about using the one from libgtk2-perl but wasn't sure how to go | |
| 13 | * about doing that. | |
| 14 | void | |
| 15 | gtk_imhtml_insert_html_at_iter(imhtml, text, options, iter) | |
| 14629 | 16 | Gaim::GtkUI::IMHtml imhtml |
| 14478 | 17 | const gchar * text |
| 14629 | 18 | Gaim::GtkUI::IMHtml::Options options |
| 14478 | 19 | Gtk::TextIter iter |
| 20 | */ | |
| 21 | ||
| 22 | /* This can't work at the moment since I don't have a typemap for Gtk::Widget. | |
| 23 | * I thought about using the one from libgtk2-perl but wasn't sure how to go | |
| 24 | * about doing that. | |
| 25 | void | |
| 26 | gtk_imhtml_delete(imhtml, start, end) | |
| 14629 | 27 | Gaim::GtkUI::IMHtml imhtml |
| 14478 | 28 | Gtk::TextIter start |
| 29 | Gtk::TextIter end | |
| 30 | */ | |
| 31 | ||
| 32 | /* This can't work at the moment since I don't have a typemap for Gtk::Widget. | |
| 33 | * I thought about using the one from libgtk2-perl but wasn't sure how to go | |
| 34 | * about doing that. | |
| 35 | void | |
| 36 | gtk_imhtml_insert_link(imhtml, mark, url, text) | |
| 14629 | 37 | Gaim::GtkUI::IMHtml imhtml |
| 14478 | 38 | Gtk::TextMark mark |
| 39 | const char * url | |
| 40 | const char * text | |
| 41 | */ | |
| 42 | ||
| 43 | /* This can't work at the moment since I don't have a typemap for Gtk::Widget. | |
| 44 | * I thought about using the one from libgtk2-perl but wasn't sure how to go | |
| 45 | * about doing that. | |
| 46 | void | |
| 47 | gtk_imhtml_insert_smiley_at_iter(imhtml, sml, smiley, iter) | |
| 14629 | 48 | Gaim::GtkUI::IMHtml imhtml |
| 14478 | 49 | const char * sml |
| 50 | char * smiley | |
| 51 | Gtk::TextIter iter | |
| 52 | ||
| 53 | void | |
| 54 | gtk_imhtml_insert_image_at_iter(imhtml, id, iter) | |
| 14629 | 55 | Gaim::GtkUI::IMHtml imhtml |
| 14478 | 56 | int id |
| 57 | Gtk::TextIter iter | |
| 58 | */ | |
| 59 | ||
| 60 | /* This can't work at the moment since I don't have a typemap for Gtk::Widget. | |
| 61 | * I thought about using the one from libgtk2-perl but wasn't sure how to go | |
| 62 | * about doing that. | |
| 63 | char * | |
| 64 | gtk_imhtml_get_markup_range(imhtml, start, end) | |
| 14629 | 65 | Gaim::GtkUI::IMHtml imhtml |
| 14478 | 66 | Gtk::TextIter start |
| 67 | Gtk::TextIter end | |
| 68 | */ | |
| 69 | ||
| 70 | /* This can't work at the moment since I don't have a typemap for Gtk::Widget. | |
| 71 | * I thought about using the one from libgtk2-perl but wasn't sure how to go | |
| 72 | * about doing that. | |
| 73 | char * | |
| 74 | gtk_imhtml_get_text(imhtml, start, end) | |
| 14629 | 75 | Gaim::GtkUI::IMHtml imhtml |
| 14478 | 76 | Gtk::TextIter start |
| 77 | Gtk::TextIter end | |
| 78 | */ | |
| 79 | ||
| 80 | /* This can't work at the moment since I don't have a typemap for Gdk::Pixbuf. | |
| 81 | * I thought about using the one from libgtk2-perl but wasn't sure how to go | |
| 82 | * about doing that. | |
| 14629 | 83 | Gaim::GtkUI::IMHtml::Scalable |
| 14478 | 84 | gtk_imhtml_image_new(img, filename, id) |
| 85 | Gdk::Pixbuf img | |
| 86 | const gchar * filename | |
| 87 | int id | |
| 88 | */ | |
| 89 | ||
| 90 | /* This can't work at the moment since I don't have a typemap for Gtk::Widget. | |
| 91 | * I thought about using the one from libgtk2-perl but wasn't sure how to go | |
| 92 | * about doing that. | |
| 93 | void | |
| 94 | gtk_imhtml_image_add_to(scale, imhtml, iter) | |
| 14629 | 95 | Gaim::GtkUI::IMHtml::Scalable scale |
| 96 | Gaim::GtkUI::IMHtml imhtml | |
| 14478 | 97 | Gtk::TextIter iter |
| 98 | */ | |
| 99 | ||
| 100 | /* This can't work at the moment since I don't have a typemap for Gtk::Widget. | |
| 101 | * I thought about using the one from libgtk2-perl but wasn't sure how to go | |
| 102 | * about doing that. | |
| 103 | void | |
| 104 | gtk_imhtml_hr_add_to(scale, imhtml, iter) | |
| 14629 | 105 | Gaim::GtkUI::IMHtml::Scalable scale |
| 106 | Gaim::GtkUI::IMHtml imhtml | |
| 14478 | 107 | Gtk::TextIter iter |
| 108 | */ | |
| 109 | ||
| 110 | /* This can't work at the moment since I don't have a typemap for gboolean *. | |
| 111 | void | |
| 112 | gtk_imhtml_get_current_format(imhtml, bold, italic, underline) | |
| 14629 | 113 | Gaim::GtkUI::IMHtml imhtml |
| 14478 | 114 | gboolean * bold |
| 115 | gboolean * italic | |
| 116 | gboolean * underline | |
| 117 | */ | |
| 118 | ||
| 14629 | 119 | MODULE = Gaim::GtkUI::IMHtml PACKAGE = Gaim::GtkUI::IMHtml PREFIX = gtk_imhtml_ |
| 14478 | 120 | PROTOTYPES: ENABLE |
| 121 | ||
| 14629 | 122 | Gaim::GtkUI::IMHtml::Smiley |
| 14478 | 123 | gtk_imhtml_smiley_get(imhtml, sml, text) |
| 14629 | 124 | Gaim::GtkUI::IMHtml imhtml |
| 14478 | 125 | const gchar * sml |
| 126 | const gchar * text | |
| 127 | ||
| 128 | void | |
| 129 | gtk_imhtml_associate_smiley(imhtml, sml, smiley) | |
| 14629 | 130 | Gaim::GtkUI::IMHtml imhtml |
| 14478 | 131 | const gchar * sml |
| 14629 | 132 | Gaim::GtkUI::IMHtml::Smiley smiley |
| 14478 | 133 | |
| 134 | void | |
| 135 | gtk_imhtml_remove_smileys(imhtml) | |
| 14629 | 136 | Gaim::GtkUI::IMHtml imhtml |
| 14478 | 137 | |
| 138 | void | |
| 139 | gtk_imhtml_set_funcs(imhtml, f) | |
| 14629 | 140 | Gaim::GtkUI::IMHtml imhtml |
| 141 | Gaim::GtkUI::IMHtml::Funcs f | |
| 14478 | 142 | |
| 143 | void | |
| 144 | gtk_imhtml_show_comments(imhtml, show) | |
| 14629 | 145 | Gaim::GtkUI::IMHtml imhtml |
| 14478 | 146 | gboolean show |
| 147 | ||
| 148 | const char * | |
| 149 | gtk_imhtml_get_protocol_name(imhtml) | |
| 14629 | 150 | Gaim::GtkUI::IMHtml imhtml |
| 14478 | 151 | |
| 152 | void | |
| 153 | gtk_imhtml_set_protocol_name(imhtml, protocol_name) | |
| 14629 | 154 | Gaim::GtkUI::IMHtml imhtml |
| 14478 | 155 | const gchar * protocol_name |
| 156 | ||
| 157 | void | |
| 158 | gtk_imhtml_append_text(imhtml, text, options) | |
| 14629 | 159 | Gaim::GtkUI::IMHtml imhtml |
| 14478 | 160 | const gchar * text |
| 14629 | 161 | Gaim::GtkUI::IMHtml::Options options |
| 14478 | 162 | |
| 163 | void | |
| 164 | gtk_imhtml_append_text_with_images(imhtml, text, options, unused = NULL) | |
| 14629 | 165 | Gaim::GtkUI::IMHtml imhtml |
| 14478 | 166 | const gchar * text |
| 14629 | 167 | Gaim::GtkUI::IMHtml::Options options |
| 14478 | 168 | SV *unused |
| 169 | PREINIT: | |
| 170 | GSList *t_GL; | |
| 171 | int i, t_len; | |
| 172 | PPCODE: | |
| 173 | t_GL = NULL; | |
| 174 | t_len = av_len((AV *)SvRV(unused)); | |
| 175 | ||
| 176 | for (i = 0; i < t_len; i++) { | |
| 177 | STRLEN t_sl; | |
| 178 | t_GL = g_slist_append(t_GL, SvPV(*av_fetch((AV *)SvRV(unused), i, 0), t_sl)); | |
| 179 | } | |
| 180 | gtk_imhtml_append_text_with_images(imhtml, text, options, t_GL); | |
| 181 | ||
| 182 | void | |
| 183 | gtk_imhtml_scroll_to_end(imhtml, smooth) | |
| 14629 | 184 | Gaim::GtkUI::IMHtml imhtml |
| 14478 | 185 | gboolean smooth |
| 186 | ||
| 187 | void | |
| 188 | gtk_imhtml_clear(imhtml) | |
| 14629 | 189 | Gaim::GtkUI::IMHtml imhtml |
| 14478 | 190 | |
| 191 | void | |
| 192 | gtk_imhtml_page_up(imhtml) | |
| 14629 | 193 | Gaim::GtkUI::IMHtml imhtml |
| 14478 | 194 | |
| 195 | void | |
| 196 | gtk_imhtml_page_down(imhtml) | |
| 14629 | 197 | Gaim::GtkUI::IMHtml imhtml |
| 14478 | 198 | |
| 199 | void | |
| 200 | gtk_imhtml_set_editable(imhtml, editable) | |
| 14629 | 201 | Gaim::GtkUI::IMHtml imhtml |
| 14478 | 202 | gboolean editable |
| 203 | ||
| 204 | void | |
| 205 | gtk_imhtml_set_whole_buffer_formatting_only(imhtml, wbo) | |
| 14629 | 206 | Gaim::GtkUI::IMHtml imhtml |
| 14478 | 207 | gboolean wbo |
| 208 | ||
| 209 | void | |
| 210 | gtk_imhtml_set_format_functions(imhtml, buttons) | |
| 14629 | 211 | Gaim::GtkUI::IMHtml imhtml |
| 212 | Gaim::GtkUI::IMHtml::Buttons buttons | |
| 14478 | 213 | |
| 14629 | 214 | Gaim::GtkUI::IMHtml::Buttons |
| 14478 | 215 | gtk_imhtml_get_format_functions(imhtml) |
| 14629 | 216 | Gaim::GtkUI::IMHtml imhtml |
| 14478 | 217 | |
| 218 | char * | |
| 219 | gtk_imhtml_get_current_fontface(imhtml) | |
| 14629 | 220 | Gaim::GtkUI::IMHtml imhtml |
| 14478 | 221 | |
| 222 | char * | |
| 223 | gtk_imhtml_get_current_forecolor(imhtml) | |
| 14629 | 224 | Gaim::GtkUI::IMHtml imhtml |
| 14478 | 225 | |
| 226 | char * | |
| 227 | gtk_imhtml_get_current_backcolor(imhtml) | |
| 14629 | 228 | Gaim::GtkUI::IMHtml imhtml |
| 14478 | 229 | |
| 230 | char * | |
| 231 | gtk_imhtml_get_current_background(imhtml) | |
| 14629 | 232 | Gaim::GtkUI::IMHtml imhtml |
| 14478 | 233 | |
| 234 | gint | |
| 235 | gtk_imhtml_get_current_fontsize(imhtml) | |
| 14629 | 236 | Gaim::GtkUI::IMHtml imhtml |
| 14478 | 237 | |
| 238 | gboolean | |
| 239 | gtk_imhtml_get_editable(imhtml) | |
| 14629 | 240 | Gaim::GtkUI::IMHtml imhtml |
| 14478 | 241 | |
| 242 | void | |
| 243 | gtk_imhtml_clear_formatting(imhtml) | |
| 14629 | 244 | Gaim::GtkUI::IMHtml imhtml |
| 14478 | 245 | |
| 246 | void | |
| 247 | gtk_imhtml_toggle_bold(imhtml) | |
| 14629 | 248 | Gaim::GtkUI::IMHtml imhtml |
| 14478 | 249 | |
| 250 | void | |
| 251 | gtk_imhtml_toggle_italic(imhtml) | |
| 14629 | 252 | Gaim::GtkUI::IMHtml imhtml |
| 14478 | 253 | |
| 254 | void | |
| 255 | gtk_imhtml_toggle_underline(imhtml) | |
| 14629 | 256 | Gaim::GtkUI::IMHtml imhtml |
| 14478 | 257 | |
| 258 | void | |
| 259 | gtk_imhtml_toggle_strike(imhtml) | |
| 14629 | 260 | Gaim::GtkUI::IMHtml imhtml |
| 14478 | 261 | |
| 262 | void | |
| 263 | gtk_imhtml_toggle_forecolor(imhtml, color) | |
| 14629 | 264 | Gaim::GtkUI::IMHtml imhtml |
| 14478 | 265 | const char * color |
| 266 | ||
| 267 | void | |
| 268 | gtk_imhtml_toggle_backcolor(imhtml, color) | |
| 14629 | 269 | Gaim::GtkUI::IMHtml imhtml |
| 14478 | 270 | const char * color |
| 271 | ||
| 272 | void | |
| 273 | gtk_imhtml_toggle_background(imhtml, color) | |
| 14629 | 274 | Gaim::GtkUI::IMHtml imhtml |
| 14478 | 275 | const char * color |
| 276 | ||
| 277 | void | |
| 278 | gtk_imhtml_toggle_fontface(imhtml, face) | |
| 14629 | 279 | Gaim::GtkUI::IMHtml imhtml |
| 14478 | 280 | const char * face |
| 281 | ||
| 282 | void | |
| 283 | gtk_imhtml_toggle_link(imhtml, url) | |
| 14629 | 284 | Gaim::GtkUI::IMHtml imhtml |
| 14478 | 285 | const char * url |
| 286 | ||
| 287 | void | |
| 288 | gtk_imhtml_insert_smiley(imhtml, sml, smiley) | |
| 14629 | 289 | Gaim::GtkUI::IMHtml imhtml |
| 14478 | 290 | const char * sml |
| 291 | char * smiley | |
| 292 | ||
| 293 | void | |
| 294 | gtk_imhtml_font_set_size(imhtml, size) | |
| 14629 | 295 | Gaim::GtkUI::IMHtml imhtml |
| 14478 | 296 | gint size |
| 297 | ||
| 298 | void | |
| 299 | gtk_imhtml_font_shrink(imhtml) | |
| 14629 | 300 | Gaim::GtkUI::IMHtml imhtml |
| 14478 | 301 | |
| 302 | void | |
| 303 | gtk_imhtml_font_grow(imhtml) | |
| 14629 | 304 | Gaim::GtkUI::IMHtml imhtml |
| 14478 | 305 | |
| 306 | char * | |
| 307 | gtk_imhtml_get_markup(imhtml) | |
| 14629 | 308 | Gaim::GtkUI::IMHtml imhtml |
| 14478 | 309 | |
| 14632 | 310 | # /* ETAN Test this, and document well that it returns an arrayref */ |
| 14629 | 311 | void |
| 14478 | 312 | gtk_imhtml_get_markup_lines(imhtml) |
| 14629 | 313 | Gaim::GtkUI::IMHtml imhtml |
| 314 | PREINIT: | |
| 315 | gint i; | |
| 316 | AV *lines; | |
| 317 | gchar **bufs; | |
| 318 | PPCODE: | |
| 319 | bufs = gtk_imhtml_get_markup_lines(imhtml); | |
| 320 | lines = newAV(); | |
| 14632 | 321 | for (i = 0; bufs[i] != NULL; i++) { |
| 14629 | 322 | av_push(lines, newSVpv(bufs[i], 0)); |
| 323 | } | |
| 324 | XPUSHs(sv_2mortal(newRV_noinc((SV *)lines))); | |
| 14478 | 325 | |
| 14629 | 326 | MODULE = Gaim::GtkUI::IMHtml PACKAGE = Gaim::GtkUI::IMHtml::Scalable PREFIX = gtk_imhtml_image_ |
| 14478 | 327 | PROTOTYPES: ENABLE |
| 328 | ||
| 329 | void | |
| 330 | gtk_imhtml_image_free(scale) | |
| 14629 | 331 | Gaim::GtkUI::IMHtml::Scalable scale |
| 14478 | 332 | |
| 333 | void | |
| 334 | gtk_imhtml_image_scale(scale, width, height) | |
| 14629 | 335 | Gaim::GtkUI::IMHtml::Scalable scale |
| 14478 | 336 | int width |
| 337 | int height | |
| 338 | ||
| 14629 | 339 | MODULE = Gaim::GtkUI::IMHtml PACKAGE = Gaim::GtkUI::IMHtml::Hr PREFIX = gtk_imhtml_hr_ |
| 14478 | 340 | PROTOTYPES: ENABLE |
| 341 | ||
| 14629 | 342 | Gaim::GtkUI::IMHtml::Scalable |
| 14478 | 343 | gtk_imhtml_hr_new() |
| 344 | ||
| 345 | void | |
| 346 | gtk_imhtml_hr_free(scale) | |
| 14629 | 347 | Gaim::GtkUI::IMHtml::Scalable scale |
| 14478 | 348 | |
| 349 | void | |
| 350 | gtk_imhtml_hr_scale(scale, width, height) | |
| 14629 | 351 | Gaim::GtkUI::IMHtml::Scalable scale |
| 14478 | 352 | int width |
| 353 | int height | |
| 354 | ||
| 14629 | 355 | MODULE = Gaim::GtkUI::IMHtml PACKAGE = Gaim::GtkUI::IMHtml::Search PREFIX = gtk_imhtml_search_ |
| 14478 | 356 | PROTOTYPES: ENABLE |
| 357 | ||
| 358 | gboolean | |
| 359 | gtk_imhtml_search_find(imhtml, text) | |
| 14629 | 360 | Gaim::GtkUI::IMHtml imhtml |
| 14478 | 361 | const gchar * text |
| 362 | ||
| 363 | void | |
| 364 | gtk_imhtml_search_clear(imhtml) | |
| 14629 | 365 | Gaim::GtkUI::IMHtml imhtml |