comparison pidgin/gtkblist.c @ 15475:20cd2ea47648

tooltip tweaks
author Sean Egan <seanegan@gmail.com>
date Tue, 30 Jan 2007 07:56:37 +0000
parents fdba26a13731
children 5551adcf8f97
comparison
equal deleted inserted replaced
15474:fdba26a13731 15475:20cd2ea47648
2270 pango_layout_set_width(td->name_layout, 300000); 2270 pango_layout_set_width(td->name_layout, 300000);
2271 2271
2272 pango_layout_get_size (td->name_layout, &td->name_width, &td->name_height); 2272 pango_layout_get_size (td->name_layout, &td->name_width, &td->name_height);
2273 td->name_width = PANGO_PIXELS(td->name_width) + SMALL_SPACE + PRPL_SIZE; 2273 td->name_width = PANGO_PIXELS(td->name_width) + SMALL_SPACE + PRPL_SIZE;
2274 td->name_height = MAX(PANGO_PIXELS(td->name_height), PRPL_SIZE + SMALL_SPACE); 2274 td->name_height = MAX(PANGO_PIXELS(td->name_height), PRPL_SIZE + SMALL_SPACE);
2275 2275 #if 0 /* PRPL Icon as avatar */
2276 if(!td->avatar && full) { 2276 if(!td->avatar && full) {
2277 td->avatar = gaim_gtk_create_prpl_icon(account, PIDGIN_PRPL_ICON_LARGE); 2277 td->avatar = gaim_gtk_create_prpl_icon(account, PIDGIN_PRPL_ICON_LARGE);
2278 td->avatar_is_prpl_icon = TRUE; 2278 td->avatar_is_prpl_icon = TRUE;
2279 } 2279 }
2280 #endif
2280 td->avatar_width = gdk_pixbuf_get_width(td->avatar); 2281 td->avatar_width = gdk_pixbuf_get_width(td->avatar);
2281 td->avatar_height = gdk_pixbuf_get_height(td->avatar); 2282 td->avatar_height = gdk_pixbuf_get_height(td->avatar);
2282 2283
2283 g_free(tooltip_text); 2284 g_free(tooltip_text);
2284 return td; 2285 return td;
2287 static void gaim_gtk_blist_paint_tip(GtkWidget *widget, GdkEventExpose *event, GaimBlistNode *node) 2288 static void gaim_gtk_blist_paint_tip(GtkWidget *widget, GdkEventExpose *event, GaimBlistNode *node)
2288 { 2289 {
2289 GtkStyle *style; 2290 GtkStyle *style;
2290 int current_height, max_width; 2291 int current_height, max_width;
2291 GList *l; 2292 GList *l;
2293 int prpl_col = 0;
2292 2294
2293 if(gtkblist->tooltipdata == NULL) 2295 if(gtkblist->tooltipdata == NULL)
2294 return; 2296 return;
2295 2297
2296 style = gtkblist->tipwindow->style; 2298 style = gtkblist->tipwindow->style;
2302 { 2304 {
2303 struct tooltip_data *td = l->data; 2305 struct tooltip_data *td = l->data;
2304 max_width = MAX(max_width, 2306 max_width = MAX(max_width,
2305 TOOLTIP_BORDER + STATUS_SIZE + SMALL_SPACE + 2307 TOOLTIP_BORDER + STATUS_SIZE + SMALL_SPACE +
2306 MAX(td->width, td->name_width) + SMALL_SPACE + td->avatar_width + TOOLTIP_BORDER); 2308 MAX(td->width, td->name_width) + SMALL_SPACE + td->avatar_width + TOOLTIP_BORDER);
2309 prpl_col = MAX(prpl_col,
2310 TOOLTIP_BORDER + STATUS_SIZE + SMALL_SPACE + td->name_width - PRPL_SIZE);
2307 } 2311 }
2308 2312
2309 current_height = 12; 2313 current_height = 12;
2310 for(l = gtkblist->tooltipdata; l; l = l->next) 2314 for(l = gtkblist->tooltipdata; l; l = l->next)
2311 { 2315 {
2326 td->avatar, 0, 0, max_width - (td->avatar_width + TOOLTIP_BORDER), 2330 td->avatar, 0, 0, max_width - (td->avatar_width + TOOLTIP_BORDER),
2327 current_height, -1 , -1, GDK_RGB_DITHER_NONE, 0, 0); 2331 current_height, -1 , -1, GDK_RGB_DITHER_NONE, 0, 0);
2328 if (!td->avatar_is_prpl_icon) 2332 if (!td->avatar_is_prpl_icon)
2329 gdk_draw_pixbuf(GDK_DRAWABLE(gtkblist->tipwindow->window), NULL, td->prpl_icon, 2333 gdk_draw_pixbuf(GDK_DRAWABLE(gtkblist->tipwindow->window), NULL, td->prpl_icon,
2330 0, 0, 2334 0, 0,
2331 TOOLTIP_BORDER + STATUS_SIZE + SMALL_SPACE + td->name_width - PRPL_SIZE, 2335 prpl_col,
2332 current_height + ((td->name_height / 2) - (PRPL_SIZE / 2)), 2336 current_height + ((td->name_height / 2) - (PRPL_SIZE / 2)),
2333 -1 , -1, GDK_RGB_DITHER_NONE, 0, 0); 2337 -1 , -1, GDK_RGB_DITHER_NONE, 0, 0);
2334 2338
2335 #else 2339 #else
2336 gdk_pixbuf_render_to_drawable(td->status_icon, GDK_DRAWABLE(gtkblist->tipwindow->window), NULL, 0, 0, 12, current_height, -1, -1, GDK_RGB_DITHER_NONE, 0, 0); 2340 gdk_pixbuf_render_to_drawable(td->status_icon, GDK_DRAWABLE(gtkblist->tipwindow->window), NULL, 0, 0, 12, current_height, -1, -1, GDK_RGB_DITHER_NONE, 0, 0);