[Commit] gwaterfall/src main.c,1.1,1.2 waterfall.c,1.3,1.4 waterfall.h,1.1,1.2
Noah Levitt
commit@keithp.com
Sun, 27 Apr 2003 22:09:02 -0700
Committed by: nlevitt
Update of /local/src/CVS/gwaterfall/src
In directory home.keithp.com:/tmp/cvs-serv12833
Modified Files:
main.c waterfall.c waterfall.h
Log Message:
Add autohinting option.
Index: main.c
===================================================================
RCS file: /local/src/CVS/gwaterfall/src/main.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- main.c 28 Apr 2003 02:45:45 -0000 1.1
+++ main.c 28 Apr 2003 05:09:00 -0000 1.2
@@ -23,6 +23,7 @@
static GtkWidget *page_label = NULL;
static GtkWidget *style_combo = NULL;
+static GtkWidget *autohint_check_button = NULL;
static void
@@ -46,15 +47,14 @@
list = FcFontList (0, pattern, set);
FcPatternDestroy (pattern);
- g_assert (list->nfont > 0);
-
for (i = 0; i < list->nfont; i++)
{
FcPatternGetString (list->fonts[i], FC_STYLE, 0, &style);
styles = g_list_append (styles, style);
}
- gtk_combo_set_popdown_strings (GTK_COMBO (style_combo), styles);
+ if (styles)
+ gtk_combo_set_popdown_strings (GTK_COMBO (style_combo), styles);
FcFontSetDestroy (list);
}
@@ -116,6 +116,11 @@
FcPatternGetString (list->fonts[i], FC_FAMILY, 0, &family_name);
family_names = g_list_append (family_names, family_name);
}
+ /*
+ family_names = g_list_append (family_names, "Serif");
+ family_names = g_list_append (family_names, "Sans");
+ family_names = g_list_append (family_names, "Monospace");
+ */
family_names = g_list_sort (family_names, (GCompareFunc) FcStrCmpIgnoreCase);
gtk_combo_set_popdown_strings (GTK_COMBO (combo), family_names);
@@ -150,6 +155,18 @@
{
waterfall_set_hint (waterfall,
gtk_toggle_button_get_active (toggle_button));
+
+ gtk_widget_set_sensitive (autohint_check_button,
+ gtk_toggle_button_get_active (toggle_button));
+}
+
+
+static void
+autohint_toggled (GtkToggleButton *toggle_button,
+ Waterfall *waterfall)
+{
+ waterfall_set_autohint (waterfall,
+ gtk_toggle_button_get_active (toggle_button));
}
@@ -410,7 +427,7 @@
construct_font_style_chooser (waterfall),
FALSE, FALSE, 0);
- check_button = gtk_check_button_new_with_mnemonic ("_Hinting");
+ check_button = gtk_check_button_new_with_label ("Hinting");
gtk_widget_show (check_button);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_button),
waterfall_get_hint (waterfall));
@@ -418,7 +435,17 @@
g_signal_connect (G_OBJECT (check_button), "toggled",
G_CALLBACK (hint_toggled), waterfall);
- check_button = gtk_check_button_new_with_mnemonic ("_Anti-Aliasing");
+ autohint_check_button = gtk_check_button_new_with_label ("Autohinting");
+ gtk_widget_show (autohint_check_button);
+ gtk_widget_set_sensitive (autohint_check_button,
+ waterfall_get_hint (waterfall));
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (autohint_check_button),
+ waterfall_get_autohint (waterfall));
+ gtk_box_pack_start (GTK_BOX (hbox), autohint_check_button, FALSE, FALSE, 0);
+ g_signal_connect (G_OBJECT (autohint_check_button), "toggled",
+ G_CALLBACK (autohint_toggled), waterfall);
+
+ check_button = gtk_check_button_new_with_label ("Anti-Aliasing");
gtk_widget_show (check_button);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_button),
waterfall_get_antialias (waterfall));
Index: waterfall.c
===================================================================
RCS file: /local/src/CVS/gwaterfall/src/waterfall.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- waterfall.c 28 Apr 2003 03:18:26 -0000 1.3
+++ waterfall.c 28 Apr 2003 05:09:00 -0000 1.4
@@ -80,6 +80,7 @@
FcPatternAddBool (pattern, FC_HINTING, waterfall->hint);
FcPatternAddBool (pattern, FC_ANTIALIAS, waterfall->antialias);
+ FcPatternAddBool (pattern, FC_AUTOHINT, waterfall->autohint);
match = XftFontMatch (GDK_DISPLAY (), gdk_x11_get_default_screen (),
pattern, &result);
@@ -255,6 +256,7 @@
waterfall->increment = 1.0;
waterfall->hint = TRUE;
waterfall->antialias = TRUE;
+ waterfall->autohint = FALSE;
waterfall->page = -1;
gtk_widget_set_events (GTK_WIDGET (waterfall), GDK_EXPOSURE_MASK);
@@ -399,6 +401,25 @@
if (antialias != waterfall->antialias)
{
waterfall->antialias = antialias;
+ queue_redraw (waterfall);
+ }
+}
+
+
+gboolean
+waterfall_get_autohint (Waterfall *waterfall)
+{
+ return waterfall->autohint;
+}
+
+
+void
+waterfall_set_autohint (Waterfall *waterfall,
+ gboolean autohint)
+{
+ if (autohint != waterfall->autohint)
+ {
+ waterfall->autohint = autohint;
queue_redraw (waterfall);
}
}
Index: waterfall.h
===================================================================
RCS file: /local/src/CVS/gwaterfall/src/waterfall.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- waterfall.h 28 Apr 2003 02:45:45 -0000 1.1
+++ waterfall.h 28 Apr 2003 05:09:00 -0000 1.2
@@ -55,6 +55,7 @@
gboolean hint;
gboolean antialias;
+ gboolean autohint;
gint page;
};
@@ -95,6 +96,9 @@
gint page);
gboolean waterfall_is_page_empty (Waterfall *waterfall,
gint page);
+gboolean waterfall_get_autohint (Waterfall *waterfall);
+void waterfall_set_autohint (Waterfall *waterfall,
+ gboolean autohint);
G_END_DECLS