diff options
author | Matthias Clasen <mclasen@redhat.com> | 2004-09-07 16:16:09 +0000 |
---|---|---|
committer | Matthias Clasen <matthiasc@src.gnome.org> | 2004-09-07 16:16:09 +0000 |
commit | 8dd03834d32c5f94064591942d0b766900662b82 (patch) | |
tree | 7ac1b53a05b3a5ad6f517d8f501cee7800d378b3 | |
parent | e1077caf3668212c75806f996e2733ef582a73e8 (diff) | |
download | gdk-pixbuf-8dd03834d32c5f94064591942d0b766900662b82.tar.gz |
Draw expanders a bit better.
2004-09-07 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkstyle.c (gtk_default_draw_expander): Draw expanders a bit
better.
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | ChangeLog.pre-2-10 | 5 | ||||
-rw-r--r-- | ChangeLog.pre-2-6 | 5 | ||||
-rw-r--r-- | ChangeLog.pre-2-8 | 5 | ||||
-rw-r--r-- | gtk/gtkstyle.c | 40 |
5 files changed, 50 insertions, 10 deletions
@@ -1,3 +1,8 @@ +2004-09-07 Matthias Clasen <mclasen@redhat.com> + + * gtk/gtkstyle.c (gtk_default_draw_expander): Draw expanders a bit + better. + Sun Sep 5 17:14:16 2004 Matthias Clasen <maclas@gmx.de> * gtk/gtkmain.c: diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index a1e89f1be..9570e2975 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,8 @@ +2004-09-07 Matthias Clasen <mclasen@redhat.com> + + * gtk/gtkstyle.c (gtk_default_draw_expander): Draw expanders a bit + better. + Sun Sep 5 17:14:16 2004 Matthias Clasen <maclas@gmx.de> * gtk/gtkmain.c: diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index a1e89f1be..9570e2975 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,8 @@ +2004-09-07 Matthias Clasen <mclasen@redhat.com> + + * gtk/gtkstyle.c (gtk_default_draw_expander): Draw expanders a bit + better. + Sun Sep 5 17:14:16 2004 Matthias Clasen <maclas@gmx.de> * gtk/gtkmain.c: diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index a1e89f1be..9570e2975 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,8 @@ +2004-09-07 Matthias Clasen <mclasen@redhat.com> + + * gtk/gtkstyle.c (gtk_default_draw_expander): Draw expanders a bit + better. + Sun Sep 5 17:14:16 2004 Matthias Clasen <maclas@gmx.de> * gtk/gtkmain.c: diff --git a/gtk/gtkstyle.c b/gtk/gtkstyle.c index e9a0d3693..c64dc312b 100644 --- a/gtk/gtkstyle.c +++ b/gtk/gtkstyle.c @@ -4966,9 +4966,26 @@ create_expander_affine (gdouble affine[6], width = expander_size / 4.0; height = expander_size / 2.0; - - s = sin (degrees * G_PI / 180.0); - c = cos (degrees * G_PI / 180.0); + + switch (degrees) + { + case 0: + s = 0.0; + c = 1.0; + break; + case 90: + s = 1.0; + c = 0.0; + break; + case 180: + s = 0.0; + c = -1.0; + break; + default: + s = sin (degrees * G_PI / 180.0); + c = cos (degrees * G_PI / 180.0); + break; + } affine[0] = c; affine[1] = s; @@ -5016,12 +5033,12 @@ gtk_default_draw_expander (GtkStyle *style, gint expander_size; GdkPoint points[3]; gint i; - gint line_width; + gint line_width, o; gdouble affine[6]; gint degrees = 0; gtk_widget_style_get (widget, - "expander_size", &expander_size, + "expander-size", &expander_size, NULL); line_width = MAX (1, expander_size/7); @@ -5031,13 +5048,16 @@ gtk_default_draw_expander (GtkStyle *style, gdk_gc_set_clip_rectangle (style->base_gc[GTK_STATE_NORMAL], area); } - expander_size -= (line_width * 2 - 2); + /* a rough estimate of how much the joins of the triangle will overshoot. + * 2.4 ~ 1 / tan (45 / 2) + */ + o = ceil (2.4 * line_width / 2.0); points[0].x = line_width / 2; - points[0].y = line_width / 2; - points[1].x = expander_size / 2 + line_width / 2; - points[1].y = expander_size / 2 + line_width / 2; + points[0].y = o; + points[1].x = expander_size / 2 + line_width / 2 - o; + points[1].y = expander_size / 2; points[2].x = line_width / 2; - points[2].y = expander_size + line_width / 2; + points[2].y = expander_size - o; switch (expander_style) { |