summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2004-09-07 16:16:09 +0000
committerMatthias Clasen <matthiasc@src.gnome.org>2004-09-07 16:16:09 +0000
commit8dd03834d32c5f94064591942d0b766900662b82 (patch)
tree7ac1b53a05b3a5ad6f517d8f501cee7800d378b3
parente1077caf3668212c75806f996e2733ef582a73e8 (diff)
downloadgdk-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--ChangeLog5
-rw-r--r--ChangeLog.pre-2-105
-rw-r--r--ChangeLog.pre-2-65
-rw-r--r--ChangeLog.pre-2-85
-rw-r--r--gtk/gtkstyle.c40
5 files changed, 50 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index a1e89f1be..9570e2975 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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)
{