[Commit] gwaterfall/src main.c,1.2,1.3 waterfall.c,1.4,1.5 waterfall.h,1.2,1.3
Noah Levitt
commit@keithp.com
Mon, 28 Apr 2003 19:21:47 -0700
- Previous message: [Commit] libic/src icimage.h,1.7,1.8 icint.h,1.8,1.9
- Next message: [Commit] gwaterfall/src main.c,1.3,1.4 waterfall.c,1.5,1.6 waterfall.h,1.3,1.4
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Committed by: nlevitt
Update of /local/src/CVS/gwaterfall/src
In directory home.keithp.com:/tmp/cvs-serv23166/src
Modified Files:
main.c waterfall.c waterfall.h
Log Message:
Add subpixel rendering option.
Index: main.c
===================================================================
RCS file: /local/src/CVS/gwaterfall/src/main.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- main.c 28 Apr 2003 05:09:00 -0000 1.2
+++ main.c 29 Apr 2003 02:21:45 -0000 1.3
@@ -24,6 +24,7 @@
static GtkWidget *page_label = NULL;
static GtkWidget *style_combo = NULL;
static GtkWidget *autohint_check_button = NULL;
+static GtkWidget *rgba_hbox = NULL;
static void
@@ -176,6 +177,8 @@
{
waterfall_set_antialias (waterfall,
gtk_toggle_button_get_active (toggle_button));
+ gtk_widget_set_sensitive (rgba_hbox,
+ waterfall_get_antialias (waterfall));
}
@@ -404,12 +407,113 @@
}
+static void
+set_rgba_none (GtkMenuItem *menu_item,
+ Waterfall *waterfall)
+{
+ waterfall_set_rgba (waterfall, FC_RGBA_NONE);
+}
+
+
+static void
+set_rgba_rgb (GtkMenuItem *menu_item,
+ Waterfall *waterfall)
+{
+ waterfall_set_rgba (waterfall, FC_RGBA_RGB);
+}
+
+
+static void
+set_rgba_bgr (GtkMenuItem *menu_item,
+ Waterfall *waterfall)
+{
+ waterfall_set_rgba (waterfall, FC_RGBA_BGR);
+}
+
+
+static void
+set_rgba_vrgb (GtkMenuItem *menu_item,
+ Waterfall *waterfall)
+{
+ waterfall_set_rgba (waterfall, FC_RGBA_VRGB);
+}
+
+
+static void
+set_rgba_vbgr (GtkMenuItem *menu_item,
+ Waterfall *waterfall)
+{
+ waterfall_set_rgba (waterfall, FC_RGBA_VBGR);
+}
+
+
+static GtkWidget *
+construct_rgba_menu (Waterfall *waterfall)
+{
+ GtkWidget *option_menu;
+ GtkWidget *menu;
+ GtkWidget *menu_item;
+ GtkWidget *label;
+
+ rgba_hbox = gtk_hbox_new (FALSE, 6);
+ gtk_widget_show (rgba_hbox);
+
+ label = gtk_label_new ("Subpixel smoothing:");
+ gtk_widget_show (label);
+ gtk_box_pack_start (GTK_BOX (rgba_hbox), label, FALSE, FALSE, 0);
+
+ menu = gtk_menu_new ();
+ gtk_widget_show (menu);
+
+ menu_item = gtk_menu_item_new_with_label ("None");
+ gtk_widget_show (menu_item);
+ gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
+ g_signal_connect (menu_item, "activate",
+ G_CALLBACK (set_rgba_none), waterfall);
+
+ menu_item = gtk_menu_item_new_with_label ("RGB");
+ gtk_widget_show (menu_item);
+ gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
+ g_signal_connect (menu_item, "activate",
+ G_CALLBACK (set_rgba_rgb), waterfall);
+
+ menu_item = gtk_menu_item_new_with_label ("BGR");
+ gtk_widget_show (menu_item);
+ gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
+ g_signal_connect (menu_item, "activate",
+ G_CALLBACK (set_rgba_bgr), waterfall);
+
+ menu_item = gtk_menu_item_new_with_label ("VRGB");
+ gtk_widget_show (menu_item);
+ gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
+ g_signal_connect (menu_item, "activate",
+ G_CALLBACK (set_rgba_vrgb), waterfall);
+
+ menu_item = gtk_menu_item_new_with_label ("VBGR");
+ gtk_widget_show (menu_item);
+ gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
+ g_signal_connect (menu_item, "activate",
+ G_CALLBACK (set_rgba_vbgr), waterfall);
+
+ option_menu = gtk_option_menu_new ();
+ gtk_widget_show (option_menu);
+ gtk_box_pack_start (GTK_BOX (rgba_hbox), option_menu, FALSE, FALSE, 0);
+ gtk_option_menu_set_menu (GTK_OPTION_MENU (option_menu), menu);
+
+ gtk_widget_set_sensitive (rgba_hbox,
+ waterfall_get_antialias (waterfall));
+
+ return rgba_hbox;
+}
+
+
static GtkWidget *
construct_options_bar (Waterfall *waterfall)
{
GtkWidget *vbox;
GtkWidget *hbox;
GtkWidget *check_button;
+ GtkWidget *separator;
vbox = gtk_vbox_new (FALSE, 6);
gtk_widget_show (vbox);
@@ -427,6 +531,10 @@
construct_font_style_chooser (waterfall),
FALSE, FALSE, 0);
+ separator = gtk_vseparator_new ();
+ gtk_widget_show (separator);
+ gtk_box_pack_start (GTK_BOX (hbox), separator, FALSE, FALSE, 0);
+
check_button = gtk_check_button_new_with_label ("Hinting");
gtk_widget_show (check_button);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_button),
@@ -445,6 +553,10 @@
g_signal_connect (G_OBJECT (autohint_check_button), "toggled",
G_CALLBACK (autohint_toggled), waterfall);
+ separator = gtk_vseparator_new ();
+ gtk_widget_show (separator);
+ gtk_box_pack_start (GTK_BOX (hbox), separator, FALSE, FALSE, 0);
+
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),
@@ -453,10 +565,21 @@
g_signal_connect (G_OBJECT (check_button), "toggled",
G_CALLBACK (antialias_toggled), waterfall);
+ gtk_box_pack_start (GTK_BOX (hbox), construct_rgba_menu (waterfall),
+ FALSE, FALSE, 0);
+
+ hbox = gtk_hbox_new (FALSE, 12);
+ gtk_widget_show (hbox);
+ gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
+
gtk_box_pack_start (GTK_BOX (hbox), construct_size_bar (waterfall),
FALSE, FALSE, 0);
- gtk_box_pack_start (GTK_BOX (vbox), construct_page_navigator (waterfall),
+ separator = gtk_vseparator_new ();
+ gtk_widget_show (separator);
+ gtk_box_pack_start (GTK_BOX (hbox), separator, FALSE, FALSE, 0);
+
+ gtk_box_pack_start (GTK_BOX (hbox), construct_page_navigator (waterfall),
FALSE, FALSE, 0);
return vbox;
Index: waterfall.c
===================================================================
RCS file: /local/src/CVS/gwaterfall/src/waterfall.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- waterfall.c 28 Apr 2003 05:09:00 -0000 1.4
+++ waterfall.c 29 Apr 2003 02:21:45 -0000 1.5
@@ -81,6 +81,7 @@
FcPatternAddBool (pattern, FC_HINTING, waterfall->hint);
FcPatternAddBool (pattern, FC_ANTIALIAS, waterfall->antialias);
FcPatternAddBool (pattern, FC_AUTOHINT, waterfall->autohint);
+ FcPatternAddInteger (pattern, FC_RGBA, waterfall->rgba);
match = XftFontMatch (GDK_DISPLAY (), gdk_x11_get_default_screen (),
pattern, &result);
@@ -257,6 +258,7 @@
waterfall->hint = TRUE;
waterfall->antialias = TRUE;
waterfall->autohint = FALSE;
+ waterfall->rgba = FC_RGBA_NONE;
waterfall->page = -1;
gtk_widget_set_events (GTK_WIDGET (waterfall), GDK_EXPOSURE_MASK);
@@ -530,5 +532,25 @@
return count == 0;
}
+
+
+gint
+waterfall_get_rgba (Waterfall *waterfall)
+{
+ return waterfall->rgba;
+}
+
+
+void
+waterfall_set_rgba (Waterfall *waterfall,
+ gboolean rgba)
+{
+ if (rgba != waterfall->rgba)
+ {
+ waterfall->rgba = rgba;
+ queue_redraw (waterfall);
+ }
+}
+
Index: waterfall.h
===================================================================
RCS file: /local/src/CVS/gwaterfall/src/waterfall.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- waterfall.h 28 Apr 2003 05:09:00 -0000 1.2
+++ waterfall.h 29 Apr 2003 02:21:45 -0000 1.3
@@ -56,6 +56,7 @@
gboolean hint;
gboolean antialias;
gboolean autohint;
+ gint rgba; /* subpixel geometry */
gint page;
};
@@ -99,6 +100,9 @@
gboolean waterfall_get_autohint (Waterfall *waterfall);
void waterfall_set_autohint (Waterfall *waterfall,
gboolean autohint);
+gint waterfall_get_rgba (Waterfall *waterfall);
+void waterfall_set_rgba (Waterfall *waterfall,
+ gboolean rgba);
G_END_DECLS
- Previous message: [Commit] libic/src icimage.h,1.7,1.8 icint.h,1.8,1.9
- Next message: [Commit] gwaterfall/src main.c,1.3,1.4 waterfall.c,1.5,1.6 waterfall.h,1.3,1.4
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]