pidgin/gtkimhtml.c

branch
cpw.qulogic.gtk3-required
changeset 33176
6594cdb0ab40
parent 33170
ce4447562d64
child 33258
7f35c2552b63
equal deleted inserted replaced
33175:02f19be61040 33176:6594cdb0ab40
543 } else { 543 } else {
544 g_object_set(G_OBJECT(tag), "foreground", visited ? "#800000" : "blue", NULL); 544 g_object_set(G_OBJECT(tag), "foreground", visited ? "#800000" : "blue", NULL);
545 } 545 }
546 } 546 }
547 547
548 #if GTK_CHECK_VERSION(3,0,0)
549 static gboolean
550 gtk_imhtml_tip_paint(GtkIMHtml *imhtml, cairo_t *cr, GtkWidget *w)
551 #else
548 static gint 552 static gint
549 gtk_imhtml_tip_paint (GtkIMHtml *imhtml) 553 gtk_imhtml_tip_paint(GtkIMHtml *imhtml, GdkEvent *event, GtkWidget *w)
554 #endif
550 { 555 {
551 PangoLayout *layout; 556 PangoLayout *layout;
552 cairo_t *cr = gdk_cairo_create(gtk_widget_get_window(imhtml->tip_window)); 557 GtkStyle *style;
553 558
554 g_return_val_if_fail(GTK_IS_IMHTML(imhtml), FALSE); 559 g_return_val_if_fail(GTK_IS_IMHTML(imhtml), FALSE);
555 560
556 layout = gtk_widget_create_pango_layout(imhtml->tip_window, imhtml->tip); 561 layout = gtk_widget_create_pango_layout(imhtml->tip_window, imhtml->tip);
557 562 style = gtk_widget_get_style(imhtml->tip_window);
558 gtk_paint_flat_box (gtk_widget_get_style(imhtml->tip_window), cr, 563
559 GTK_STATE_NORMAL, GTK_SHADOW_OUT, imhtml->tip_window, "tooltip", 564 #if GTK_CHECK_VERSION(3,0,0)
560 0, 0, -1, -1); 565 gtk_paint_flat_box(style, cr,
561 566 GTK_STATE_NORMAL, GTK_SHADOW_OUT,
562 gtk_paint_layout (gtk_widget_get_style(imhtml->tip_window), cr, 567 imhtml->tip_window, "tooltip",
563 GTK_STATE_NORMAL, TRUE, imhtml->tip_window, NULL, 4, 4, layout); 568 0, 0, -1, -1);
564 569
565 cairo_destroy(cr); 570 gtk_paint_layout(style, cr,
571 GTK_STATE_NORMAL, TRUE, imhtml->tip_window, NULL,
572 4, 4, layout);
573 #else
574 gtk_paint_flat_box(style, gtk_widget_get_window(imhtml->tip_window),
575 GTK_STATE_NORMAL, GTK_SHADOW_OUT,
576 NULL, imhtml->tip_window,
577 "tooltip", 0, 0, -1, -1);
578
579 gtk_paint_layout(style, gtk_widget_get_window(imhtml->tip_window),
580 GTK_STATE_NORMAL, FALSE, NULL, imhtml->tip_window, NULL,
581 4, 4, layout);
582 #endif
583
566 g_object_unref(layout); 584 g_object_unref(layout);
567 return FALSE; 585 return FALSE;
568 } 586 }
569 587
570 static gint 588 static gint
598 gtk_window_set_title(GTK_WINDOW(imhtml->tip_window), "GtkIMHtml"); 616 gtk_window_set_title(GTK_WINDOW(imhtml->tip_window), "GtkIMHtml");
599 gtk_window_set_resizable (GTK_WINDOW (imhtml->tip_window), FALSE); 617 gtk_window_set_resizable (GTK_WINDOW (imhtml->tip_window), FALSE);
600 gtk_widget_set_name (imhtml->tip_window, "gtk-tooltips"); 618 gtk_widget_set_name (imhtml->tip_window, "gtk-tooltips");
601 gtk_window_set_type_hint (GTK_WINDOW (imhtml->tip_window), 619 gtk_window_set_type_hint (GTK_WINDOW (imhtml->tip_window),
602 GDK_WINDOW_TYPE_HINT_TOOLTIP); 620 GDK_WINDOW_TYPE_HINT_TOOLTIP);
603 g_signal_connect_swapped (G_OBJECT (imhtml->tip_window), "expose_event", 621 #if GTK_CHECK_VERSION(3,0,0)
604 G_CALLBACK (gtk_imhtml_tip_paint), imhtml); 622 g_signal_connect_swapped(G_OBJECT(imhtml->tip_window), "draw",
623 G_CALLBACK(gtk_imhtml_tip_paint), imhtml);
624 #else
625 g_signal_connect_swapped(G_OBJECT(imhtml->tip_window), "expose_event",
626 G_CALLBACK(gtk_imhtml_tip_paint), imhtml);
627 #endif
605 628
606 gtk_widget_ensure_style (imhtml->tip_window); 629 gtk_widget_ensure_style (imhtml->tip_window);
607 layout = gtk_widget_create_pango_layout(imhtml->tip_window, imhtml->tip); 630 layout = gtk_widget_create_pango_layout(imhtml->tip_window, imhtml->tip);
608 font = pango_context_load_font(pango_layout_get_context(layout), 631 font = pango_context_load_font(pango_layout_get_context(layout),
609 style->font_desc); 632 style->font_desc);

mercurial