[Commit] gwaterfall/src main.c,1.3,1.4 waterfall.c,1.5,1.6 waterfall.h,1.3,1.4

Noah Levitt commit@keithp.com
Mon, 28 Apr 2003 20:09:47 -0700


Committed by: nlevitt

Update of /local/src/CVS/gwaterfall/src
In directory home.keithp.com:/tmp/cvs-serv23562

Modified Files:
	main.c waterfall.c waterfall.h 
Log Message:
Add aspect option.


Index: main.c
===================================================================
RCS file: /local/src/CVS/gwaterfall/src/main.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- main.c	29 Apr 2003 02:21:45 -0000	1.3
+++ main.c	29 Apr 2003 03:09:45 -0000	1.4
@@ -200,12 +200,21 @@
 
 static void
 increment_changed (GtkAdjustment *adjustment,
-                  Waterfall *waterfall)
+                   Waterfall *waterfall)
 {
   waterfall_set_increment (waterfall, gtk_adjustment_get_value (adjustment));
 }
 
 
+static void
+aspect_changed (GtkAdjustment *adjustment,
+                Waterfall *waterfall)
+{
+  waterfall_set_aspect (waterfall, 
+                        gtk_adjustment_get_value (adjustment));
+}
+
+
 static GtkWidget *
 construct_size_bar (Waterfall *waterfall)
 {
@@ -257,6 +266,33 @@
 }
 
 
+static GtkWidget *
+construct_aspect_bar (Waterfall *waterfall)
+{
+  GtkWidget *hbox;
+  GtkObject *adjustment;
+  GtkWidget *spin_button;
+  GtkWidget *label;
+
+  hbox = gtk_hbox_new (FALSE, 6);
+  gtk_widget_show (hbox);
+
+  label = gtk_label_new ("Aspect:");
+  gtk_widget_show (label);
+  gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
+
+  adjustment = gtk_adjustment_new (waterfall_get_aspect (waterfall),
+                                   0.01, 100.0, 0.05, 0.5, 0);
+  g_signal_connect (adjustment, "value-changed",
+                    G_CALLBACK (aspect_changed), waterfall);
+  spin_button = gtk_spin_button_new (GTK_ADJUSTMENT (adjustment), 0, 1);
+  gtk_widget_show (spin_button);
+  gtk_box_pack_start (GTK_BOX (hbox), spin_button, FALSE, FALSE, 0);
+
+  return hbox;
+}
+
+
 static void
 set_page_label (Waterfall *waterfall)
 {
@@ -566,6 +602,13 @@
                     G_CALLBACK (antialias_toggled), waterfall);
 
   gtk_box_pack_start (GTK_BOX (hbox), construct_rgba_menu (waterfall), 
+                      FALSE, FALSE, 0);
+
+  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_aspect_bar (waterfall), 
                       FALSE, FALSE, 0);
 
   hbox = gtk_hbox_new (FALSE, 12);

Index: waterfall.c
===================================================================
RCS file: /local/src/CVS/gwaterfall/src/waterfall.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- waterfall.c	29 Apr 2003 02:21:45 -0000	1.5
+++ waterfall.c	29 Apr 2003 03:09:45 -0000	1.6
@@ -75,13 +75,12 @@
   if (waterfall->font_style != NULL)
     FcPatternAddString (pattern, FC_STYLE, waterfall->font_style);
 
-  if (size)
-    FcPatternAddDouble (pattern, FC_PIXEL_SIZE, size);
-
+  FcPatternAddDouble (pattern, FC_PIXEL_SIZE, size);
   FcPatternAddBool (pattern, FC_HINTING, waterfall->hint);
   FcPatternAddBool (pattern, FC_ANTIALIAS, waterfall->antialias);
   FcPatternAddBool (pattern, FC_AUTOHINT, waterfall->autohint);
   FcPatternAddInteger (pattern, FC_RGBA, waterfall->rgba);
+  FcPatternAddDouble (pattern, FC_ASPECT, waterfall->aspect);
 
   match = XftFontMatch (GDK_DISPLAY (), gdk_x11_get_default_screen (), 
                         pattern, &result);
@@ -259,6 +258,7 @@
   waterfall->antialias = TRUE;
   waterfall->autohint = FALSE;
   waterfall->rgba = FC_RGBA_NONE;
+  waterfall->aspect = 1.0;
   waterfall->page = -1;
 
   gtk_widget_set_events (GTK_WIDGET (waterfall), GDK_EXPOSURE_MASK);
@@ -554,3 +554,19 @@
 
 
 
+gdouble 
+waterfall_get_aspect (Waterfall *waterfall)
+{
+  return waterfall->aspect;
+}
+
+
+void waterfall_set_aspect (Waterfall *waterfall,
+                           gdouble aspect)
+{
+  if (aspect != waterfall->aspect)
+    {
+      waterfall->aspect = aspect;
+      queue_redraw (waterfall);
+    }
+}

Index: waterfall.h
===================================================================
RCS file: /local/src/CVS/gwaterfall/src/waterfall.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- waterfall.h	29 Apr 2003 02:21:45 -0000	1.3
+++ waterfall.h	29 Apr 2003 03:09:45 -0000	1.4
@@ -57,6 +57,7 @@
   gboolean antialias;
   gboolean autohint;
   gint rgba; /* subpixel geometry */
+  gdouble aspect;
 
   gint page;
 };
@@ -103,6 +104,9 @@
 gint waterfall_get_rgba (Waterfall *waterfall);
 void waterfall_set_rgba (Waterfall *waterfall, 
                          gboolean rgba);
+gdouble waterfall_get_aspect (Waterfall *waterfall);
+void waterfall_set_aspect (Waterfall *waterfall,
+                           gdouble aspect);
 
 
 G_END_DECLS