gui: Move some formatting functions into PSPP core.
authorBen Pfaff <blp@cs.stanford.edu>
Tue, 21 Jun 2011 14:00:33 +0000 (07:00 -0700)
committerBen Pfaff <blp@cs.stanford.edu>
Thu, 23 Jun 2011 15:50:24 +0000 (08:50 -0700)
src/data/format.c
src/data/format.h
src/data/variable.c
src/data/variable.h
src/ui/gui/psppire-var-store.c
src/ui/gui/var-display.c
src/ui/gui/var-display.h
src/ui/gui/variable-info-dialog.c

index 95e87a0daa7e7f32fc6b8bc7f7bd1d9bbcc19868..e15931ad1a2b4764547747945e9399305f2b8946 100644 (file)
@@ -912,6 +912,56 @@ fmt_date_template (enum fmt_type type)
     }
 }
 
+/* Returns a string representing the format TYPE for use in a GUI dialog. */
+const char *
+fmt_gui_name (enum fmt_type type)
+{
+  switch (type)
+    {
+    case FMT_F:
+      return _("Numeric");
+
+    case FMT_COMMA:
+      return _("Comma");
+
+    case FMT_DOT:
+      return _("Dot");
+
+    case FMT_E:
+      return _("Scientific");
+
+    case FMT_DATE:
+    case FMT_EDATE:
+    case FMT_SDATE:
+    case FMT_ADATE:
+    case FMT_JDATE:
+    case FMT_QYR:
+    case FMT_MOYR:
+    case FMT_WKYR:
+    case FMT_DATETIME:
+    case FMT_TIME:
+    case FMT_DTIME:
+    case FMT_WKDAY:
+    case FMT_MONTH:
+      return _("Date");
+
+    case FMT_DOLLAR:
+      return _("Dollar");
+
+    case FMT_CCA:
+    case FMT_CCB:
+    case FMT_CCC:
+    case FMT_CCD:
+    case FMT_CCE:
+      return _("Custom");
+
+    case FMT_A:
+      return _("String");
+
+    default:
+      return fmt_name (type);
+    }
+}
 \f
 /* Returns true if TYPE is a valid format type,
    false otherwise. */
index 481ac87fd2894119f6e184b74c4b8c87686dbf93..88a82ee970c11647cee853579ed8edd566c4d673 100644 (file)
@@ -125,6 +125,7 @@ int fmt_to_io (enum fmt_type) PURE_FUNCTION;
 bool fmt_from_io (int io, enum fmt_type *);
 
 const char *fmt_date_template (enum fmt_type) PURE_FUNCTION;
+const char *fmt_gui_name (enum fmt_type);
 \f
 /* Format settings.
 
index 35fdab29ebbef73d8ad59eba2be64b3e89fd6d86..41f9221d436c66201393d7bf4efe2b705bce840d 100644 (file)
@@ -636,6 +636,26 @@ measure_is_valid (enum measure m)
   return m == MEASURE_NOMINAL || m == MEASURE_ORDINAL || m == MEASURE_SCALE;
 }
 
+/* Returns a string version of measurement level M, for display to a user. */
+const char *
+measure_to_string (enum measure m)
+{
+  switch (m)
+    {
+    case MEASURE_NOMINAL:
+      return _("Nominal");
+
+    case MEASURE_ORDINAL:
+      return _("Ordinal");
+
+    case MEASURE_SCALE:
+      return _("Scale");
+
+    default:
+      return "Invalid";
+    }
+}
+
 /* Returns V's measurement level. */
 enum measure
 var_get_measure (const struct variable *v)
@@ -700,6 +720,26 @@ alignment_is_valid (enum alignment a)
   return a == ALIGN_LEFT || a == ALIGN_RIGHT || a == ALIGN_CENTRE;
 }
 
+/* Returns a string version of alignment A, for display to a user. */
+const char *
+alignment_to_string (enum alignment a)
+{
+  switch (a)
+    {
+    case ALIGN_LEFT:
+      return _("Left");
+
+    case ALIGN_RIGHT:
+      return _("Right");
+
+    case ALIGN_CENTRE:
+      return _("Center");
+
+    default:
+      return "Invalid";
+    }
+}
+
 /* Returns V's display alignment, which applies only to GUIs. */
 enum alignment
 var_get_alignment (const struct variable *v)
index 456d2aca688f618dcec6f01592fcc6278d88c4ee..aeed5a5e09e14e63e5c2ff73d70009c8b0a0c8c7 100644 (file)
@@ -112,6 +112,8 @@ enum measure
   };
 
 bool measure_is_valid (enum measure);
+const char *measure_to_string (enum measure);
+
 enum measure var_get_measure (const struct variable *);
 void var_set_measure (struct variable *, enum measure);
 
@@ -128,11 +130,12 @@ enum alignment
   {
     ALIGN_LEFT = 0,
     ALIGN_RIGHT = 1,
-    ALIGN_CENTRE = 2,
-    n_ALIGN
+    ALIGN_CENTRE = 2
   };
 
 bool alignment_is_valid (enum alignment);
+const char *alignment_to_string (enum alignment);
+
 enum alignment var_get_alignment (const struct variable *);
 void var_set_alignment (struct variable *, enum alignment);
 
index 0ef193946bbbd2cb82498abb6760743fd67ceec6..f924c17027fbf3c78547e63271fb4e38477ad4b4 100644 (file)
@@ -616,20 +616,6 @@ text_for_column (PsppireVarStore *vs,
                 const struct variable *pv, gint c, GError **err)
 {
   PsppireDict *dict = vs->dictionary;
-  static const gchar *const type_label[] =
-    {
-      N_("Numeric"),
-      N_("Comma"),
-      N_("Dot"),
-      N_("Scientific"),
-      N_("Date"),
-      N_("Dollar"),
-      N_("Custom"),
-      N_("String")
-    };
-
-  enum {VT_NUMERIC, VT_COMMA, VT_DOT, VT_SCIENTIFIC, VT_DATE, VT_DOLLAR,
-       VT_CUSTOM, VT_STRING};
 
   const struct fmt_spec *format = var_get_print_format (pv);
 
@@ -639,58 +625,7 @@ text_for_column (PsppireVarStore *vs,
       return xstrdup (var_get_name (pv));
       break;
     case PSPPIRE_VAR_STORE_COL_TYPE:
-      {
-       switch ( format->type )
-         {
-         case FMT_F:
-           return xstrdup (gettext (type_label[VT_NUMERIC]));
-           break;
-         case FMT_COMMA:
-           return xstrdup (gettext (type_label[VT_COMMA]));
-           break;
-         case FMT_DOT:
-           return xstrdup (gettext (type_label[VT_DOT]));
-           break;
-         case FMT_E:
-           return xstrdup (gettext (type_label[VT_SCIENTIFIC]));
-           break;
-         case FMT_DATE:
-         case FMT_EDATE:
-         case FMT_SDATE:
-         case FMT_ADATE:
-         case FMT_JDATE:
-         case FMT_QYR:
-         case FMT_MOYR:
-         case FMT_WKYR:
-         case FMT_DATETIME:
-         case FMT_TIME:
-         case FMT_DTIME:
-         case FMT_WKDAY:
-         case FMT_MONTH:
-           return xstrdup (gettext (type_label[VT_DATE]));
-           break;
-         case FMT_DOLLAR:
-           return xstrdup (gettext (type_label[VT_DOLLAR]));
-           break;
-         case FMT_CCA:
-         case FMT_CCB:
-         case FMT_CCC:
-         case FMT_CCD:
-         case FMT_CCE:
-           return xstrdup (gettext (type_label[VT_CUSTOM]));
-           break;
-         case FMT_A:
-           return xstrdup (gettext (type_label[VT_STRING]));
-           break;
-         default:
-            {
-              char str[FMT_STRING_LEN_MAX + 1];
-              g_warning ("Unknown format: `%s'\n",
-                        fmt_to_string (format, str));
-            }
-           break;
-         }
-      }
+      return xstrdup (fmt_gui_name (format->type));
       break;
     case PSPPIRE_VAR_STORE_COL_WIDTH:
       {
@@ -763,12 +698,12 @@ text_for_column (PsppireVarStore *vs,
        const gint align = var_get_alignment (pv);
 
        g_assert (align < n_ALIGNMENTS);
-       return xstrdup (gettext (alignments[align]));
+       return xstrdup (alignment_to_string (align));
       }
       break;
     case PSPPIRE_VAR_STORE_COL_MEASURE:
       {
-       return xstrdup (measure_to_string (pv, err));
+       return xstrdup (measure_to_string (var_get_measure (pv)));
       }
       break;
     }
index 72b5731ca90e956388b790f23780cf98449bdea1..db0020f4f426729160a6ab665e408b7da677239c 100644 (file)
 static const gchar none[] = N_("None");
 
 
-const gchar *
-measure_to_string (const struct variable *var, GError **err)
-{
-  const gint measure = var_get_measure (var);
-
-  g_assert (measure < n_MEASURES);
-  return gettext (measures[measure]);
-}
-
-
 gchar *
 missing_values_to_string (const PsppireDict *dict, const struct variable *pv, GError **err)
 {
index 62212c8e1e5fdd455d977d03e5d2470be2819603..3590d7cb81342b53299a8c0b7b5a5398baf7a044 100644 (file)
@@ -30,6 +30,5 @@ extern const gchar *const alignments[n_ALIGNMENTS + 1];
 extern const gchar *const measures[n_MEASURES + 1];
 
 gchar *missing_values_to_string (const PsppireDict *dict, const struct variable *pv, GError **err);
-const gchar *measure_to_string (const struct variable *var, GError **err);
 
 #endif
index 59206a837dfdfa1ca1cb606803a18046cb87bbff..d5b41a98686cb13172f22c1e1e69f2ccded41617 100644 (file)
@@ -90,7 +90,7 @@ populate_text (PsppireDictView *treeview, gpointer data)
   g_free (text);
 
   g_string_append_printf (gstring, _("Measurement Level: %s\n"),
-                         measure_to_string (var, NULL));
+                         measure_to_string (var_get_measure (var)));
 
 
   /* Value Labels */