summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Jeske <stefan@gtk.org>1998-06-25 09:01:42 +0000
committerStefan Jeske <stefan@src.gnome.org>1998-06-25 09:01:42 +0000
commit37460b20782029bb9886e1cd45bc4a7ac5e44e50 (patch)
treec962e04aa8102d4b19257a7ff05f64b49be7ec3a
parent713cecba4cdf7004d19871b21d2c978ab292984c (diff)
downloadgtk+-37460b20782029bb9886e1cd45bc4a7ac5e44e50.tar.gz
Added functions gdk_text_height, gdk_string_height, gdk_char_height to
Thu Jun 25 10:50:34 1998 Stefan Jeske <stefan@gtk.org> * gdk/gdk.h gdk/gdkfont.c: Added functions gdk_text_height, gdk_string_height, gdk_char_height to retrieve the exact height of a text.
-rw-r--r--ChangeLog6
-rw-r--r--ChangeLog.pre-2-06
-rw-r--r--ChangeLog.pre-2-106
-rw-r--r--ChangeLog.pre-2-26
-rw-r--r--ChangeLog.pre-2-46
-rw-r--r--ChangeLog.pre-2-66
-rw-r--r--ChangeLog.pre-2-86
-rw-r--r--gdk/gdk.h33
-rw-r--r--gdk/gdkfont.c68
-rw-r--r--gdk/x11/gdkfont-x11.c68
10 files changed, 198 insertions, 13 deletions
diff --git a/ChangeLog b/ChangeLog
index c0adc68102..3882fc5a06 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Thu Jun 25 10:50:34 1998 Stefan Jeske <stefan@gtk.org>
+
+ * gdk/gdk.h gdk/gdkfont.c: Added functions gdk_text_height,
+ gdk_string_height, gdk_char_height to retrieve the exact
+ height of a text.
+
Thu Jun 25 07:53:51 BST 1998 Tony Gale <gale@gtk.org>
* docs/gtk_tut.sgml: add section on GtkCList widget, contributed
diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0
index c0adc68102..3882fc5a06 100644
--- a/ChangeLog.pre-2-0
+++ b/ChangeLog.pre-2-0
@@ -1,3 +1,9 @@
+Thu Jun 25 10:50:34 1998 Stefan Jeske <stefan@gtk.org>
+
+ * gdk/gdk.h gdk/gdkfont.c: Added functions gdk_text_height,
+ gdk_string_height, gdk_char_height to retrieve the exact
+ height of a text.
+
Thu Jun 25 07:53:51 BST 1998 Tony Gale <gale@gtk.org>
* docs/gtk_tut.sgml: add section on GtkCList widget, contributed
diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10
index c0adc68102..3882fc5a06 100644
--- a/ChangeLog.pre-2-10
+++ b/ChangeLog.pre-2-10
@@ -1,3 +1,9 @@
+Thu Jun 25 10:50:34 1998 Stefan Jeske <stefan@gtk.org>
+
+ * gdk/gdk.h gdk/gdkfont.c: Added functions gdk_text_height,
+ gdk_string_height, gdk_char_height to retrieve the exact
+ height of a text.
+
Thu Jun 25 07:53:51 BST 1998 Tony Gale <gale@gtk.org>
* docs/gtk_tut.sgml: add section on GtkCList widget, contributed
diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2
index c0adc68102..3882fc5a06 100644
--- a/ChangeLog.pre-2-2
+++ b/ChangeLog.pre-2-2
@@ -1,3 +1,9 @@
+Thu Jun 25 10:50:34 1998 Stefan Jeske <stefan@gtk.org>
+
+ * gdk/gdk.h gdk/gdkfont.c: Added functions gdk_text_height,
+ gdk_string_height, gdk_char_height to retrieve the exact
+ height of a text.
+
Thu Jun 25 07:53:51 BST 1998 Tony Gale <gale@gtk.org>
* docs/gtk_tut.sgml: add section on GtkCList widget, contributed
diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4
index c0adc68102..3882fc5a06 100644
--- a/ChangeLog.pre-2-4
+++ b/ChangeLog.pre-2-4
@@ -1,3 +1,9 @@
+Thu Jun 25 10:50:34 1998 Stefan Jeske <stefan@gtk.org>
+
+ * gdk/gdk.h gdk/gdkfont.c: Added functions gdk_text_height,
+ gdk_string_height, gdk_char_height to retrieve the exact
+ height of a text.
+
Thu Jun 25 07:53:51 BST 1998 Tony Gale <gale@gtk.org>
* docs/gtk_tut.sgml: add section on GtkCList widget, contributed
diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6
index c0adc68102..3882fc5a06 100644
--- a/ChangeLog.pre-2-6
+++ b/ChangeLog.pre-2-6
@@ -1,3 +1,9 @@
+Thu Jun 25 10:50:34 1998 Stefan Jeske <stefan@gtk.org>
+
+ * gdk/gdk.h gdk/gdkfont.c: Added functions gdk_text_height,
+ gdk_string_height, gdk_char_height to retrieve the exact
+ height of a text.
+
Thu Jun 25 07:53:51 BST 1998 Tony Gale <gale@gtk.org>
* docs/gtk_tut.sgml: add section on GtkCList widget, contributed
diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8
index c0adc68102..3882fc5a06 100644
--- a/ChangeLog.pre-2-8
+++ b/ChangeLog.pre-2-8
@@ -1,3 +1,9 @@
+Thu Jun 25 10:50:34 1998 Stefan Jeske <stefan@gtk.org>
+
+ * gdk/gdk.h gdk/gdkfont.c: Added functions gdk_text_height,
+ gdk_string_height, gdk_char_height to retrieve the exact
+ height of a text.
+
Thu Jun 25 07:53:51 BST 1998 Tony Gale <gale@gtk.org>
* docs/gtk_tut.sgml: add section on GtkCList widget, contributed
diff --git a/gdk/gdk.h b/gdk/gdk.h
index 7d1815340c..2713772066 100644
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -489,26 +489,33 @@ gint gdk_color_equal (GdkColor *colora,
/* Fonts
*/
GdkFont* gdk_font_load (const gchar *font_name);
-GdkFont* gdk_fontset_load (gchar *fontset_name);
-GdkFont* gdk_font_ref (GdkFont *font);
-void gdk_font_unref (GdkFont *font);
+GdkFont* gdk_fontset_load (gchar *fontset_name);
+GdkFont* gdk_font_ref (GdkFont *font);
+void gdk_font_unref (GdkFont *font);
gint gdk_font_id (const GdkFont *font);
gint gdk_font_equal (const GdkFont *fonta,
const GdkFont *fontb);
-gint gdk_string_width (GdkFont *font,
+gint gdk_string_width (GdkFont *font,
const gchar *string);
-gint gdk_text_width (GdkFont *font,
+gint gdk_text_width (GdkFont *font,
const gchar *text,
- gint text_length);
-gint gdk_char_width (GdkFont *font,
- gchar character);
-gint gdk_string_measure (GdkFont *font,
+ gint text_length);
+gint gdk_char_width (GdkFont *font,
+ gchar character);
+gint gdk_string_measure (GdkFont *font,
const gchar *string);
-gint gdk_text_measure (GdkFont *font,
+gint gdk_text_measure (GdkFont *font,
const gchar *text,
- gint text_length);
-gint gdk_char_measure (GdkFont *font,
- gchar character);
+ gint text_length);
+gint gdk_char_measure (GdkFont *font,
+ gchar character);
+gint gdk_string_height (GdkFont *font,
+ const gchar *string);
+gint gdk_text_height (GdkFont *font,
+ const gchar *text,
+ gint text_length);
+gint gdk_char_height (GdkFont *font,
+ gchar character);
/* Drawing
diff --git a/gdk/gdkfont.c b/gdk/gdkfont.c
index 352de2003f..acc82f2b62 100644
--- a/gdk/gdkfont.c
+++ b/gdk/gdkfont.c
@@ -385,3 +385,71 @@ gdk_char_measure (GdkFont *font,
return gdk_text_measure (font, &character, 1);
}
+
+gint
+gdk_string_height (GdkFont *font,
+ const gchar *string)
+{
+ g_return_val_if_fail (font != NULL, -1);
+ g_return_val_if_fail (string != NULL, -1);
+
+ return gdk_text_height (font, string, strlen (string));
+}
+
+gint
+gdk_text_height (GdkFont *font,
+ const gchar *text,
+ gint text_length)
+{
+ GdkFontPrivate *private;
+ XCharStruct overall;
+ XFontStruct *xfont;
+ XFontSet fontset;
+ XRectangle ink, log;
+ int direction;
+ int font_ascent;
+ int font_descent;
+ gint height;
+
+ g_return_val_if_fail (font != NULL, -1);
+ g_return_val_if_fail (text != NULL, -1);
+
+ private = (GdkFontPrivate*) font;
+
+ switch (font->type)
+ {
+ case GDK_FONT_FONT:
+ xfont = (XFontStruct *) private->xfont;
+ if ((xfont->min_byte1 == 0) && (xfont->max_byte1 == 0))
+ {
+ XTextExtents (xfont, text, text_length,
+ &direction, &font_ascent, &font_descent,
+ &overall);
+ }
+ else
+ {
+ XTextExtents16 (xfont, (XChar2b *) text, text_length / 2,
+ &direction, &font_ascent, &font_descent,
+ &overall);
+ }
+ height = overall.ascent + overall.descent;
+ break;
+ case GDK_FONT_FONTSET:
+ fontset = (XFontSet) private->xfont;
+ XmbTextExtents (fontset, text, text_length, &ink, &log);
+ height = log.height;
+ break;
+ default:
+ height = 0;
+ }
+ return height;
+}
+
+gint
+gdk_char_height (GdkFont *font,
+ gchar character)
+{
+ g_return_val_if_fail (font != NULL, -1);
+
+ return gdk_text_height (font, &character, 1);
+}
diff --git a/gdk/x11/gdkfont-x11.c b/gdk/x11/gdkfont-x11.c
index 352de2003f..acc82f2b62 100644
--- a/gdk/x11/gdkfont-x11.c
+++ b/gdk/x11/gdkfont-x11.c
@@ -385,3 +385,71 @@ gdk_char_measure (GdkFont *font,
return gdk_text_measure (font, &character, 1);
}
+
+gint
+gdk_string_height (GdkFont *font,
+ const gchar *string)
+{
+ g_return_val_if_fail (font != NULL, -1);
+ g_return_val_if_fail (string != NULL, -1);
+
+ return gdk_text_height (font, string, strlen (string));
+}
+
+gint
+gdk_text_height (GdkFont *font,
+ const gchar *text,
+ gint text_length)
+{
+ GdkFontPrivate *private;
+ XCharStruct overall;
+ XFontStruct *xfont;
+ XFontSet fontset;
+ XRectangle ink, log;
+ int direction;
+ int font_ascent;
+ int font_descent;
+ gint height;
+
+ g_return_val_if_fail (font != NULL, -1);
+ g_return_val_if_fail (text != NULL, -1);
+
+ private = (GdkFontPrivate*) font;
+
+ switch (font->type)
+ {
+ case GDK_FONT_FONT:
+ xfont = (XFontStruct *) private->xfont;
+ if ((xfont->min_byte1 == 0) && (xfont->max_byte1 == 0))
+ {
+ XTextExtents (xfont, text, text_length,
+ &direction, &font_ascent, &font_descent,
+ &overall);
+ }
+ else
+ {
+ XTextExtents16 (xfont, (XChar2b *) text, text_length / 2,
+ &direction, &font_ascent, &font_descent,
+ &overall);
+ }
+ height = overall.ascent + overall.descent;
+ break;
+ case GDK_FONT_FONTSET:
+ fontset = (XFontSet) private->xfont;
+ XmbTextExtents (fontset, text, text_length, &ink, &log);
+ height = log.height;
+ break;
+ default:
+ height = 0;
+ }
+ return height;
+}
+
+gint
+gdk_char_height (GdkFont *font,
+ gchar character)
+{
+ g_return_val_if_fail (font != NULL, -1);
+
+ return gdk_text_height (font, &character, 1);
+}