[gtk+] testgtk: Fix rotated text demo
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] testgtk: Fix rotated text demo
- Date: Fri, 10 Nov 2017 14:04:42 +0000 (UTC)
commit 93c42bcbe08c8ec3f44532d7ce81d418ac05635c
Author: Benjamin Otte <otte redhat com>
Date: Wed Nov 8 15:27:21 2017 +0100
testgtk: Fix rotated text demo
Use proper DrawingArea APIs here.
tests/testgtk.c | 31 +++++++++++++------------------
1 files changed, 13 insertions(+), 18 deletions(-)
---
diff --git a/tests/testgtk.c b/tests/testgtk.c
index 579e27b..dc256d6 100644
--- a/tests/testgtk.c
+++ b/tests/testgtk.c
@@ -1374,16 +1374,17 @@ on_rotated_text_unrealize (GtkWidget *widget)
g_object_set_data (G_OBJECT (widget), "text-gc", NULL);
}
-static gboolean
-on_rotated_text_draw (GtkWidget *widget,
- cairo_t *cr,
- GdkPixbuf *tile_pixbuf)
+static void
+on_rotated_text_draw (GtkDrawingArea *drawing_area,
+ cairo_t *cr,
+ int width,
+ int height,
+ gpointer tile_pixbuf)
{
static const gchar *words[] = { "The", "grand", "old", "Duke", "of", "York",
"had", "10,000", "men" };
int n_words;
int i;
- int width, height;
double radius;
PangoLayout *layout;
PangoContext *context;
@@ -1400,8 +1401,6 @@ on_rotated_text_draw (GtkWidget *widget,
else
cairo_set_source_rgb (cr, 0, 0, 0);
- width = gtk_widget_get_allocated_width (widget);
- height = gtk_widget_get_allocated_height (widget);
radius = MIN (width, height) / 2.;
cairo_translate (cr,
@@ -1409,7 +1408,7 @@ on_rotated_text_draw (GtkWidget *widget,
radius + (height - 2 * radius) / 2);
cairo_scale (cr, radius / DEFAULT_TEXT_RADIUS, radius / DEFAULT_TEXT_RADIUS);
- context = gtk_widget_get_pango_context (widget);
+ context = gtk_widget_get_pango_context (GTK_WIDGET (drawing_area));
layout = pango_layout_new (context);
desc = pango_font_description_from_string ("Sans Bold 30");
pango_layout_set_font_description (layout, desc);
@@ -1435,8 +1434,6 @@ on_rotated_text_draw (GtkWidget *widget,
}
g_object_unref (layout);
-
- return FALSE;
}
static void
@@ -1446,7 +1443,6 @@ create_rotated_text (GtkWidget *widget)
if (!window)
{
- GtkRequisition requisition;
GtkWidget *content_area;
GtkWidget *drawing_area;
GdkPixbuf *tile_pixbuf;
@@ -1473,18 +1469,17 @@ create_rotated_text (GtkWidget *widget)
tile_pixbuf = gdk_pixbuf_new_from_file ("marble.xpm", NULL);
- g_signal_connect (drawing_area, "draw",
- G_CALLBACK (on_rotated_text_draw), tile_pixbuf);
+ gtk_drawing_area_set_draw_func (GTK_DRAWING_AREA (drawing_area),
+ on_rotated_text_draw,
+ tile_pixbuf,
+ g_object_unref);
g_signal_connect (drawing_area, "unrealize",
G_CALLBACK (on_rotated_text_unrealize), NULL);
gtk_widget_show (gtk_bin_get_child (GTK_BIN (window)));
- gtk_widget_set_size_request (drawing_area, DEFAULT_TEXT_RADIUS * 2, DEFAULT_TEXT_RADIUS * 2);
- gtk_widget_get_preferred_size ( (window),
- &requisition, NULL);
- gtk_widget_set_size_request (drawing_area, -1, -1);
- gtk_window_resize (GTK_WINDOW (window), requisition.width, requisition.height);
+ gtk_drawing_area_set_content_width (GTK_DRAWING_AREA (drawing_area), DEFAULT_TEXT_RADIUS * 2);
+ gtk_drawing_area_set_content_height (GTK_DRAWING_AREA (drawing_area), DEFAULT_TEXT_RADIUS * 2);
}
if (!gtk_widget_get_visible (window))
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]