summaryrefslogtreecommitdiff
path: root/libnautilus-extensions/nautilus-scalable-font.h
diff options
context:
space:
mode:
Diffstat (limited to 'libnautilus-extensions/nautilus-scalable-font.h')
-rw-r--r--libnautilus-extensions/nautilus-scalable-font.h138
1 files changed, 138 insertions, 0 deletions
diff --git a/libnautilus-extensions/nautilus-scalable-font.h b/libnautilus-extensions/nautilus-scalable-font.h
new file mode 100644
index 000000000..f640e9b45
--- /dev/null
+++ b/libnautilus-extensions/nautilus-scalable-font.h
@@ -0,0 +1,138 @@
+/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
+
+/* nautilus-scalable-font.h - A GtkObject subclass for access to scalable fonts.
+
+ Copyright (C) 1999, 2000 Eazel, Inc.
+
+ The Gnome Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The Gnome Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the Gnome Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+
+ Authors: Ramiro Estrugo <ramiro@eazel.com>
+*/
+
+
+/* NautilusScalableFont is a GtkObject that provdes a simple
+ * interface to Raph Levien's librsvg FreeType2 bases anti aliased
+ * text rendering.
+ *
+ * Currently, Type1 only Type1 fonts are supported.
+ *
+ * Fonts are automatically queried and used if available. Right
+ * now this is fairly simple code which does not handle all the
+ * complexities of the hell that is x fonts.
+ *
+ * In the Star Trek future, we will use gnome-print (gnome-font?).
+ * However, we will keep the interface to scalable font usage simple
+ * and hidden behind this interface.
+ *
+ */
+
+#ifndef NAUTILUS_SCALABLE_FONT_H
+#define NAUTILUS_SCALABLE_FONT_H
+
+#include <gtk/gtkobject.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <libgnome/gnome-defs.h>
+#include <libnautilus-extensions/nautilus-string-list.h>
+#include <libart_lgpl/art_rect.h>
+
+BEGIN_GNOME_DECLS
+
+#define NAUTILUS_TYPE_SCALABLE_FONT (nautilus_scalable_font_get_type ())
+#define NAUTILUS_SCALABLE_FONT(obj) (GTK_CHECK_CAST ((obj), NAUTILUS_TYPE_SCALABLE_FONT, NautilusScalableFont))
+#define NAUTILUS_SCALABLE_FONT_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), NAUTILUS_TYPE_SCALABLE_FONT, NautilusScalableFontClass))
+#define NAUTILUS_IS_SCALABLE_FONT(obj) (GTK_CHECK_TYPE ((obj), NAUTILUS_TYPE_SCALABLE_FONT))
+#define NAUTILUS_IS_SCALABLE_FONT_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), NAUTILUS_TYPE_SCALABLE_FONT))
+
+typedef struct _NautilusScalableFont NautilusScalableFont;
+typedef struct _NautilusScalableFontClass NautilusScalableFontClass;
+typedef struct _NautilusScalableFontDetail NautilusScalableFontDetail;
+
+struct _NautilusScalableFont
+{
+ /* Superclass */
+ GtkObject object;
+
+ /* Private things */
+ NautilusScalableFontDetail *detail;
+};
+
+struct _NautilusScalableFontClass
+{
+ GtkObjectClass parent_class;
+};
+
+GtkType nautilus_scalable_font_get_type (void);
+GtkObject * nautilus_scalable_font_new (const char *family,
+ const char *weight,
+ const char *slant,
+ const char *set_width);
+void nautilus_scalable_font_measure_text (const NautilusScalableFont *font,
+ guint font_width,
+ guint font_height,
+ const char *text,
+ guint *text_width_out,
+ guint *text_height_out);
+void nautilus_scalable_font_measure_text_lines (NautilusScalableFont *font,
+ guint font_width,
+ guint font_height,
+ const char *text_lines[],
+ guint num_text_lines,
+ guint text_line_widths[],
+ guint text_line_heights[],
+ guint *max_width_out,
+ guint *total_height_out);
+void nautilus_scalable_font_draw_text (const NautilusScalableFont *font,
+ GdkPixbuf *destination_pixbuf,
+ const ArtIRect *destination_area,
+ guint font_width,
+ guint font_height,
+ const char *text,
+ guint32 color,
+ guchar overall_alpha);
+void nautilus_scalable_font_draw_text_lines (const NautilusScalableFont *font,
+ GdkPixbuf *destination_pixbuf,
+ const ArtIRect *destination_area,
+ guint font_width,
+ guint font_height,
+ const char *text_lines[],
+ const guint text_line_widths[],
+ const guint text_line_heights[],
+ GtkJustification justification,
+ const guint num_lines,
+ guint line_offset,
+ guint32 color,
+ guchar overall_alpha);
+guint nautilus_scalable_font_largest_fitting_font_size (const NautilusScalableFont *font,
+ const char *text,
+ guint available_width,
+ const guint font_sizes[],
+ guint num_font_sizes);
+NautilusScalableFont *nautilus_scalable_font_get_default_font (void);
+NautilusStringList * nautilus_scalable_font_get_font_family_list (void);
+gboolean nautilus_scalable_font_query_font (const char *family,
+ NautilusStringList **weights,
+ NautilusStringList **slants,
+ NautilusStringList **set_widths);
+gboolean nautilus_scalable_font_query_font (const char *family,
+ NautilusStringList **weights,
+ NautilusStringList **slants,
+ NautilusStringList **set_widths);
+
+END_GNOME_DECLS
+
+#endif /* NAUTILUS_SCALABLE_FONT_H */
+
+