Added the Variable Information dialog.
authorJohn Darrington <john@darrington.wattle.id.au>
Mon, 30 Apr 2007 08:58:14 +0000 (08:58 +0000)
committerJohn Darrington <john@darrington.wattle.id.au>
Mon, 30 Apr 2007 08:58:14 +0000 (08:58 +0000)
22 files changed:
glade.patch
glade/bbox.c
glade/dialog.c
glade/psppire.xml
po/de.po
po/pspp.pot
src/ui/gui/ChangeLog
src/ui/gui/automake.mk
src/ui/gui/data-editor.c
src/ui/gui/data-editor.glade
src/ui/gui/data-editor.h
src/ui/gui/dict-display.c
src/ui/gui/dict-display.h
src/ui/gui/psppire-buttonbox.c
src/ui/gui/psppire-buttonbox.h
src/ui/gui/psppire-dialog.h
src/ui/gui/psppire-var-store.c
src/ui/gui/psppire.glade
src/ui/gui/var-display.c [new file with mode: 0644]
src/ui/gui/var-display.h [new file with mode: 0644]
src/ui/gui/variable-info-dialog.c [new file with mode: 0644]
src/ui/gui/variable-info-dialog.h [new file with mode: 0644]

index 80a5aa01db65d1110c62ca5362295e2ee60bf786..66b8cd8a8148e0825adcf000bc9a099bc5d41651 100644 (file)
@@ -1,7 +1,16 @@
---- /Scratch/john/tmp.vKHTg31290/share/pspp/data-editor.glade  2007-03-31 12:55:02.000000000 +0800
-+++ src/ui/gui/data-editor.glade       2007-03-31 13:04:27.000000000 +0800
-@@ -494,7 +494,7 @@
+--- xxx        2007-04-29 11:57:19.000000000 +0800
++++ src/ui/gui/data-editor.glade       2007-04-29 11:57:37.000000000 +0800
+@@ -526,7 +526,7 @@
+                     <property name="visible">True</property>
                      <property name="sensitive">False</property>
+                     <property name="tooltip" translatable="yes">Recall</property>
+-                    <property name="stock_id">gtk-missing-image</property>
++                    <property name="stock_id">pspp-recent-dialogs</property>
+                   </widget>
+                   <packing>
+                     <property name="expand">False</property>
+@@ -588,7 +588,7 @@
+                     <property name="visible">True</property>
                      <property name="tooltip" translatable="yes">Variables</property>
                      <property name="use_underline">True</property>
 -                    <property name="stock_id">gtk-missing-image</property>
@@ -9,7 +18,7 @@
                    </widget>
                    <packing>
                      <property name="expand">False</property>
-@@ -535,7 +535,7 @@
+@@ -629,7 +629,7 @@
                      <property name="sensitive">False</property>
                      <property name="tooltip" translatable="yes">Insert Case</property>
                      <property name="use_underline">True</property>
@@ -18,7 +27,7 @@
                    </widget>
                    <packing>
                      <property name="expand">False</property>
-@@ -547,7 +547,7 @@
+@@ -641,7 +641,7 @@
                      <property name="sensitive">False</property>
                      <property name="tooltip" translatable="yes">Insert Variable</property>
                      <property name="use_underline">True</property>
@@ -27,7 +36,7 @@
                    </widget>
                    <packing>
                      <property name="expand">False</property>
-@@ -567,7 +567,7 @@
+@@ -661,7 +661,7 @@
                      <property name="visible">True</property>
                      <property name="tooltip" translatable="yes">Split File</property>
                      <property name="use_underline">True</property>
@@ -36,7 +45,7 @@
                    </widget>
                    <packing>
                      <property name="expand">False</property>
-@@ -578,7 +578,7 @@
+@@ -672,7 +672,7 @@
                      <property name="visible">True</property>
                      <property name="tooltip" translatable="yes">Weight Cases</property>
                      <property name="use_underline">True</property>
@@ -45,7 +54,7 @@
                    </widget>
                    <packing>
                      <property name="expand">False</property>
-@@ -590,7 +590,7 @@
+@@ -684,7 +684,7 @@
                      <property name="sensitive">False</property>
                      <property name="tooltip" translatable="yes">Select Cases</property>
                      <property name="use_underline">True</property>
@@ -54,7 +63,7 @@
                    </widget>
                    <packing>
                      <property name="expand">False</property>
-@@ -610,7 +610,7 @@
+@@ -704,7 +704,7 @@
                      <property name="visible">True</property>
                      <property name="tooltip" translatable="yes">Value Labels</property>
                      <property name="use_underline">True</property>
index 9ce8c34d90ffa198fd9bc478fbff5d60e930a57e..f8a80c6b460d4d47a8880dbe44558bd6d4fd4697 100644 (file)
@@ -37,7 +37,7 @@ glade_psppire_button_box_get_internal_child (GladeWidgetAdaptor  *adaptor,
   g_print ("%s\n", __FUNCTION__);
 #endif
 
-  return bbox;
+  return GTK_WIDGET (bbox);
 }
 
 
index ac6f2a22c0a2c8489ce61bb04c2dbefea0d0dc64..2d67443c0ed48efeec74e9c6c20847057f5272aa 100644 (file)
@@ -2,7 +2,7 @@
 #include <gtk/gtk.h>
 
 #include "psppire-dialog.h"
-
+#include <string.h>
 #include <glade-gtk.h>
 #include <assert.h>
 
index 847afb266641409da3b7b8e4ce9faf628a506c39..7feb13139546011da4bffcf09a0ec8cf77177c5a 100644 (file)
     <properties>
       <property id="child"  disabled="True" />
       <property id="visible" ignore="True" default="True" />
+
+      <property id="buttons">
+         <displayable-values>
+           <value id="PSPPIRE_BUTTON_OK_MASK"     name="OK"></value>
+           <value id="PSPPIRE_BUTTON_CANCEL_MASK" name="Cancel"></value>
+           <value id="PSPPIRE_BUTTON_HELP_MASK"   name="Help"></value>
+           <value id="PSPPIRE_BUTTON_RESET_MASK"  name="Reset"></value>
+           <value id="PSPPIRE_BUTTON_PASTE_MASK"  name="Paste"></value>
+         </displayable-values>
+      </property>
+
     </properties>
 
     <packing-defaults>
index 15363df4ebd3f260baf0dfd4b8027c9dc6639ddb..8c48fdb6a84e85426b8156e73ddbf3db48869b7e 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PSPP 0.4.2\n"
 "Report-Msgid-Bugs-To: pspp-dev@gnu.org\n"
-"POT-Creation-Date: 2007-04-28 11:18+0800\n"
+"POT-Creation-Date: 2007-04-29 12:09+0800\n"
 "PO-Revision-Date: 2006-05-26 17:49+0800\n"
 "Last-Translator: John Darrington <john@darrington.wattle.id.au>\n"
 "Language-Team: German <pspp-dev@gnu.org>\n"
@@ -309,14 +309,14 @@ msgid "%s variables are not compatible with %s format %s."
 msgstr ""
 
 #: src/data/format.c:310 src/data/por-file-reader.c:489
-#: src/data/sys-file-reader.c:629 src/ui/gui/data-editor.glade:1127
-#: src/ui/gui/psppire-var-store.c:481
+#: src/data/sys-file-reader.c:629 src/ui/gui/data-editor.glade:1157
+#: src/ui/gui/psppire-var-store.c:486
 msgid "String"
 msgstr "Zeichenkette"
 
 #: src/data/format.c:310 src/data/por-file-reader.c:489
-#: src/data/sys-file-reader.c:629 src/ui/gui/data-editor.glade:1023
-#: src/ui/gui/psppire-var-store.c:474
+#: src/data/sys-file-reader.c:629 src/ui/gui/data-editor.glade:1053
+#: src/ui/gui/psppire-var-store.c:479
 msgid "Numeric"
 msgstr "Nummer"
 
@@ -3415,24 +3415,6 @@ msgstr ""
 msgid "Closing `%s': %s."
 msgstr ""
 
-#: src/language/tests/check-model.q:139
-msgid "PATH and SEARCH subcommands are mutually exclusive.  Ignoring PATH."
-msgstr ""
-
-#: src/language/tests/check-model.q:157
-msgid "At least one value must be specified on PATH."
-msgstr ""
-
-#: src/language/tests/check-model.q:168
-#, c-format
-msgid "Hash bits adjusted to %d."
-msgstr ""
-
-#: src/language/tests/check-model.q:209
-#, c-format
-msgid "error opening \"%s\" for writing"
-msgstr ""
-
 #: src/language/tests/float-format.c:126
 #, c-format
 msgid "%d-byte string needed but %d-byte string supplied."
@@ -4199,88 +4181,98 @@ msgstr ""
 msgid "Compute new values for a variable"
 msgstr "Unpassend Wert für Variable"
 
-#: src/ui/gui/data-editor.c:636
+#: src/ui/gui/data-editor.c:265 src/ui/gui/data-editor.glade:259
+#: src/ui/gui/data-editor.glade:589
+msgid "Variables"
+msgstr "Variableansicht"
+
+#: src/ui/gui/data-editor.c:266
+#, fuzzy
+msgid "Jump to Variable"
+msgstr "Variableansicht"
+
+#: src/ui/gui/data-editor.c:655
 msgid "Font Selection"
 msgstr "Schriftwahlung"
 
-#: src/ui/gui/data-editor.c:814
+#: src/ui/gui/data-editor.c:833
 msgid "No Split"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:822
+#: src/ui/gui/data-editor.c:841
 #, fuzzy
 msgid "Split by "
 msgstr "Alle Datei"
 
-#: src/ui/gui/data-editor.c:847
+#: src/ui/gui/data-editor.c:866
 msgid "Filter off"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:860
+#: src/ui/gui/data-editor.c:879
 #, c-format
 msgid "Filter by %s"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:878
+#: src/ui/gui/data-editor.c:897
 msgid "Weights off"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:891
+#: src/ui/gui/data-editor.c:910
 #, c-format
 msgid "Weight by %s"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:914 src/ui/gui/data-editor.c:1145
-#: src/ui/gui/data-editor.glade:465
+#: src/ui/gui/data-editor.c:933 src/ui/gui/data-editor.c:1164
+#: src/ui/gui/data-editor.glade:496
 msgid "Open"
 msgstr "Öffen"
 
-#: src/ui/gui/data-editor.c:915
+#: src/ui/gui/data-editor.c:934
 msgid "Open a data file"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:923 src/ui/gui/data-editor.c:1030
-#: src/ui/gui/data-editor.glade:475
+#: src/ui/gui/data-editor.c:942 src/ui/gui/data-editor.c:1049
+#: src/ui/gui/data-editor.glade:506
 msgid "Save"
 msgstr "Speichen"
 
-#: src/ui/gui/data-editor.c:924 src/ui/gui/data-editor.c:934
+#: src/ui/gui/data-editor.c:943 src/ui/gui/data-editor.c:953
 #, fuzzy
 msgid "Save data to file"
 msgstr "Speichern unter"
 
-#: src/ui/gui/data-editor.c:933
+#: src/ui/gui/data-editor.c:952
 #, fuzzy
 msgid "Save As"
 msgstr "Speichern unter"
 
-#: src/ui/gui/data-editor.c:942
+#: src/ui/gui/data-editor.c:961
 msgid "New"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:943
+#: src/ui/gui/data-editor.c:962
 msgid "New data file"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:1038 src/ui/gui/data-editor.c:1153
+#: src/ui/gui/data-editor.c:1057 src/ui/gui/data-editor.c:1172
 msgid "System Files (*.sav)"
 msgstr "Systemedatein (*.sav)"
 
-#: src/ui/gui/data-editor.c:1044 src/ui/gui/data-editor.c:1159
+#: src/ui/gui/data-editor.c:1063 src/ui/gui/data-editor.c:1178
 msgid "Portable Files (*.por) "
 msgstr "Tragbardatein (*.por)"
 
-#: src/ui/gui/data-editor.c:1050 src/ui/gui/data-editor.c:1165
+#: src/ui/gui/data-editor.c:1069 src/ui/gui/data-editor.c:1184
 #: src/ui/gui/syntax-editor.c:141 src/ui/gui/syntax-editor.c:527
 msgid "All Files"
 msgstr "Alle Datei"
 
-#: src/ui/gui/data-editor.c:1058
+#: src/ui/gui/data-editor.c:1077
 #, fuzzy
 msgid "System File"
 msgstr "Systemedatein (*.sav)"
 
-#: src/ui/gui/data-editor.c:1063
+#: src/ui/gui/data-editor.c:1082
 #, fuzzy
 msgid "Portable File"
 msgstr "Tragbardatein (*.por)"
@@ -4347,8 +4339,8 @@ msgstr "Schrift"
 msgid "Grid Lines"
 msgstr "Glitten"
 
-#: src/ui/gui/data-editor.glade:240 src/ui/gui/data-editor.glade:675
-#: src/ui/gui/data-editor.glade:1385 src/ui/gui/data-editor.glade:1563
+#: src/ui/gui/data-editor.glade:240 src/ui/gui/data-editor.glade:705
+#: src/ui/gui/data-editor.glade:1415 src/ui/gui/data-editor.glade:1593
 msgid "Value Labels"
 msgstr "Werten"
 
@@ -4356,11 +4348,7 @@ msgstr "Werten"
 msgid "Data"
 msgstr "Daten"
 
-#: src/ui/gui/data-editor.glade:259 src/ui/gui/data-editor.glade:559
-msgid "Variables"
-msgstr "Variableansicht"
-
-#: src/ui/gui/data-editor.glade:278 src/ui/gui/data-editor.glade:612
+#: src/ui/gui/data-editor.glade:278 src/ui/gui/data-editor.glade:642
 #, fuzzy
 msgid "Insert Variable"
 msgstr "Variableansicht"
@@ -4370,12 +4358,12 @@ msgstr "Variableansicht"
 msgid "Insert Cases"
 msgstr "_Stecken"
 
-#: src/ui/gui/data-editor.glade:294 src/ui/gui/data-editor.glade:548
-#: src/ui/gui/data-editor.glade:1929
+#: src/ui/gui/data-editor.glade:294 src/ui/gui/data-editor.glade:579
+#: src/ui/gui/data-editor.glade:1959
 msgid "Go To Case"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:307 src/ui/gui/data-editor.glade:1994
+#: src/ui/gui/data-editor.glade:307 src/ui/gui/data-editor.glade:2024
 msgid "Sort Cases"
 msgstr ""
 
@@ -4392,16 +4380,16 @@ msgstr "Alle Datei"
 msgid "Aggregate"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:352 src/ui/gui/data-editor.glade:632
+#: src/ui/gui/data-editor.glade:352 src/ui/gui/data-editor.glade:662
 #, fuzzy
 msgid "Split File"
 msgstr "Alle Datei"
 
-#: src/ui/gui/data-editor.glade:360 src/ui/gui/data-editor.glade:655
+#: src/ui/gui/data-editor.glade:360 src/ui/gui/data-editor.glade:685
 msgid "Select Cases"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:367 src/ui/gui/data-editor.glade:643
+#: src/ui/gui/data-editor.glade:367 src/ui/gui/data-editor.glade:673
 msgid "Weight Cases"
 msgstr ""
 
@@ -4418,194 +4406,208 @@ msgstr ""
 msgid "Ran_k Cases"
 msgstr "_Stecken"
 
-#: src/ui/gui/data-editor.glade:409 src/ui/gui/syntax-editor.glade:233
+#: src/ui/gui/data-editor.glade:410
+msgid "_Utilities"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:420
+#, fuzzy
+msgid "_Variables"
+msgstr "Variableansicht"
+
+#: src/ui/gui/data-editor.glade:429
+#, fuzzy
+msgid "Data File _Comments"
+msgstr "Datei Fehler"
+
+#: src/ui/gui/data-editor.glade:440 src/ui/gui/syntax-editor.glade:233
 #, fuzzy
 msgid "_Windows"
 msgstr "_Datei"
 
-#: src/ui/gui/data-editor.glade:416 src/ui/gui/syntax-editor.glade:242
+#: src/ui/gui/data-editor.glade:447 src/ui/gui/syntax-editor.glade:242
 msgid "_Minimise All Windows"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:427 src/ui/gui/syntax-editor.glade:254
+#: src/ui/gui/data-editor.glade:458 src/ui/gui/syntax-editor.glade:254
 msgid "_Help"
 msgstr "_Hilfe"
 
-#: src/ui/gui/data-editor.glade:434 src/ui/gui/syntax-editor.glade:263
+#: src/ui/gui/data-editor.glade:465 src/ui/gui/syntax-editor.glade:263
 msgid "_Reference Manual"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:441 src/ui/gui/syntax-editor.glade:271
+#: src/ui/gui/data-editor.glade:472 src/ui/gui/syntax-editor.glade:271
 msgid "_About"
 msgstr "_Info"
 
-#: src/ui/gui/data-editor.glade:486
+#: src/ui/gui/data-editor.glade:517
 msgid "Print"
 msgstr "Drucken"
 
-#: src/ui/gui/data-editor.glade:497
+#: src/ui/gui/data-editor.glade:528
 msgid "Recall"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:517
+#: src/ui/gui/data-editor.glade:548
 msgid "Undo"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:528
+#: src/ui/gui/data-editor.glade:559
 msgid "Redo"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:580
+#: src/ui/gui/data-editor.glade:610
 msgid "Find"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:600
+#: src/ui/gui/data-editor.glade:630
 #, fuzzy
 msgid "Insert Case"
 msgstr "_Stecken"
 
-#: src/ui/gui/data-editor.glade:687
+#: src/ui/gui/data-editor.glade:717
 msgid "Use Sets"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:769
+#: src/ui/gui/data-editor.glade:799
 msgid "Data View"
 msgstr "Datenansicht"
 
-#: src/ui/gui/data-editor.glade:796
+#: src/ui/gui/data-editor.glade:826
 msgid "Variable View"
 msgstr "Variableansicht"
 
-#: src/ui/gui/data-editor.glade:826
+#: src/ui/gui/data-editor.glade:856
 msgid "Information Area"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:845
+#: src/ui/gui/data-editor.glade:875
 msgid "Processor Area"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:870
+#: src/ui/gui/data-editor.glade:900
 msgid "OMS Area"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:895
+#: src/ui/gui/data-editor.glade:925
 msgid "Case Counter Area"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:920
+#: src/ui/gui/data-editor.glade:950
 msgid "Filter Use Status Area"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:946
+#: src/ui/gui/data-editor.glade:976
 msgid "Weight Status Area"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:972
+#: src/ui/gui/data-editor.glade:1002
 #, fuzzy
 msgid "Split File Status Area"
 msgstr "Alle Datei"
 
-#: src/ui/gui/data-editor.glade:1002
+#: src/ui/gui/data-editor.glade:1032
 msgid "Variable Type"
 msgstr "Variableansicht"
 
-#: src/ui/gui/data-editor.glade:1037 src/ui/gui/psppire-var-store.c:475
+#: src/ui/gui/data-editor.glade:1067 src/ui/gui/psppire-var-store.c:480
 msgid "Comma"
 msgstr "Komma"
 
-#: src/ui/gui/data-editor.glade:1052 src/ui/gui/psppire-var-store.c:476
+#: src/ui/gui/data-editor.glade:1082 src/ui/gui/psppire-var-store.c:481
 msgid "Dot"
 msgstr "Punkt"
 
-#: src/ui/gui/data-editor.glade:1067
+#: src/ui/gui/data-editor.glade:1097
 msgid "Scientific notation"
 msgstr "Wissenschaftlichnotation"
 
-#: src/ui/gui/data-editor.glade:1082 src/ui/gui/psppire-var-store.c:478
+#: src/ui/gui/data-editor.glade:1112 src/ui/gui/psppire-var-store.c:483
 msgid "Date"
 msgstr "Datum"
 
-#: src/ui/gui/data-editor.glade:1097 src/ui/gui/psppire-var-store.c:479
+#: src/ui/gui/data-editor.glade:1127 src/ui/gui/psppire-var-store.c:484
 msgid "Dollar"
 msgstr "Euro"
 
-#: src/ui/gui/data-editor.glade:1112
+#: src/ui/gui/data-editor.glade:1142
 msgid "Custom currency"
 msgstr "Spezialwährung"
 
-#: src/ui/gui/data-editor.glade:1204
+#: src/ui/gui/data-editor.glade:1234
 msgid "positive"
 msgstr "positiv"
 
-#: src/ui/gui/data-editor.glade:1210
+#: src/ui/gui/data-editor.glade:1240
 msgid "negative"
 msgstr "negativ"
 
-#: src/ui/gui/data-editor.glade:1223
+#: src/ui/gui/data-editor.glade:1253
 msgid "Sample"
 msgstr "Muster"
 
-#: src/ui/gui/data-editor.glade:1271
+#: src/ui/gui/data-editor.glade:1301
 msgid "Decimal Places:"
 msgstr "Dezimalstellen:"
 
-#: src/ui/gui/data-editor.glade:1312
+#: src/ui/gui/data-editor.glade:1342
 msgid "Width:"
 msgstr "Große:"
 
-#: src/ui/gui/data-editor.glade:1469
+#: src/ui/gui/data-editor.glade:1499
 msgid "Value:"
 msgstr "Werte:"
 
-#: src/ui/gui/data-editor.glade:1480
+#: src/ui/gui/data-editor.glade:1510
 msgid "Value Label:"
 msgstr "Kennsatz:"
 
-#: src/ui/gui/data-editor.glade:1627
+#: src/ui/gui/data-editor.glade:1657
 msgid "Missing Values"
 msgstr "Lösewerten"
 
-#: src/ui/gui/data-editor.glade:1691
+#: src/ui/gui/data-editor.glade:1721
 msgid "_No missing values"
 msgstr "_Kein Lösewerten"
 
-#: src/ui/gui/data-editor.glade:1708
+#: src/ui/gui/data-editor.glade:1738
 msgid "_Discrete missing values"
 msgstr "_Diskret Lösewerten"
 
-#: src/ui/gui/data-editor.glade:1792
+#: src/ui/gui/data-editor.glade:1822
 msgid "_Range plus one optional discrete missing value"
 msgstr "Wertebereich und ein optional Lösewert"
 
-#: src/ui/gui/data-editor.glade:1816
+#: src/ui/gui/data-editor.glade:1846
 msgid "_Low:"
 msgstr "_Tief:"
 
-#: src/ui/gui/data-editor.glade:1845
+#: src/ui/gui/data-editor.glade:1875
 msgid "_High:"
 msgstr "_Hoch:"
 
-#: src/ui/gui/data-editor.glade:1886
+#: src/ui/gui/data-editor.glade:1916
 msgid "Di_screte value:"
 msgstr "Di_skretwerte"
 
-#: src/ui/gui/data-editor.glade:1946
+#: src/ui/gui/data-editor.glade:1976
 msgid "Case Number:"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:2055 src/ui/gui/psppire.glade:1171
+#: src/ui/gui/data-editor.glade:2085 src/ui/gui/psppire.glade:1171
 msgid "Sort by:"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:2104 src/ui/gui/psppire.glade:1224
+#: src/ui/gui/data-editor.glade:2134 src/ui/gui/psppire.glade:1224
 msgid "Ascending"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:2117 src/ui/gui/psppire.glade:1234
+#: src/ui/gui/data-editor.glade:2147 src/ui/gui/psppire.glade:1234
 msgid "Descending"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:2133 src/ui/gui/psppire.glade:1250
+#: src/ui/gui/data-editor.glade:2163 src/ui/gui/psppire.glade:1250
 msgid "Sort Order"
 msgstr ""
 
@@ -4653,18 +4655,56 @@ msgstr "Unpassend Wert für Variable"
 msgid "Incorrect range specification"
 msgstr "Falshe Spannweitebeschreibung"
 
-#: src/ui/gui/psppire-buttonbox.c:130
+#: src/ui/gui/psppire-buttonbox.c:146
+msgid "Buttons"
+msgstr ""
+
+#: src/ui/gui/psppire-buttonbox.c:147
+msgid "The mask that decides what buttons appear in the button box"
+msgstr ""
+
+#: src/ui/gui/psppire-buttonbox.c:245 src/ui/gui/psppire-buttonbox.c:397
+msgid "Continue"
+msgstr ""
+
+#: src/ui/gui/psppire-buttonbox.c:255
 #, fuzzy
 msgid "_Paste"
 msgstr "Datum"
 
+#: src/ui/gui/psppire-buttonbox.c:395
+msgid "OK"
+msgstr ""
+
+#: src/ui/gui/psppire-buttonbox.c:396
+msgid "Go To"
+msgstr ""
+
+#: src/ui/gui/psppire-buttonbox.c:398
+msgid "Cancel"
+msgstr ""
+
+#: src/ui/gui/psppire-buttonbox.c:399
+#, fuzzy
+msgid "Help"
+msgstr "_Hilfe"
+
+#: src/ui/gui/psppire-buttonbox.c:400
+msgid "Reset"
+msgstr ""
+
+#: src/ui/gui/psppire-buttonbox.c:401
+#, fuzzy
+msgid "Paste"
+msgstr "Datum"
+
 #: src/ui/gui/psppire-data-store.c:750
 msgid "var"
 msgstr ""
 
-#: src/ui/gui/psppire-data-store.c:831 src/ui/gui/psppire-var-store.c:551
-#: src/ui/gui/psppire-var-store.c:561 src/ui/gui/psppire-var-store.c:571
-#: src/ui/gui/psppire-var-store.c:769
+#: src/ui/gui/psppire-data-store.c:831 src/ui/gui/psppire-var-store.c:556
+#: src/ui/gui/psppire-var-store.c:566 src/ui/gui/psppire-var-store.c:576
+#: src/ui/gui/psppire-var-store.c:714
 #, c-format
 msgid "%d"
 msgstr ""
@@ -4843,15 +4883,33 @@ msgstr ""
 msgid "Functions:"
 msgstr ""
 
-#: src/ui/gui/psppire-var-store.c:470
+#: src/ui/gui/psppire.glade:1643
+msgid "Variable Information:"
+msgstr ""
+
+#: src/ui/gui/psppire.glade:1669
+msgid ""
+"\n"
+"\n"
+"\n"
+"\n"
+"\n"
+"\n"
+"\n"
+"\n"
+"\n"
+"\n"
+msgstr ""
+
+#: src/ui/gui/psppire-var-store.c:472
 msgid "None"
 msgstr "Keine"
 
-#: src/ui/gui/psppire-var-store.c:477
+#: src/ui/gui/psppire-var-store.c:482
 msgid "Scientific"
 msgstr "Wissenschäflich"
 
-#: src/ui/gui/psppire-var-store.c:480
+#: src/ui/gui/psppire-var-store.c:485
 msgid "Custom"
 msgstr "Spezial"
 
index d404c4489f87eeff5ca826c3cb5f552b5d25a232..42bfa2afd8406efceddb4bf03ba15e681fd03b84 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: pspp-dev@gnu.org\n"
-"POT-Creation-Date: 2007-04-28 11:18+0800\n"
+"POT-Creation-Date: 2007-04-29 12:09+0800\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -308,14 +308,14 @@ msgid "%s variables are not compatible with %s format %s."
 msgstr ""
 
 #: src/data/format.c:310 src/data/por-file-reader.c:489
-#: src/data/sys-file-reader.c:629 src/ui/gui/data-editor.glade:1127
-#: src/ui/gui/psppire-var-store.c:481
+#: src/data/sys-file-reader.c:629 src/ui/gui/data-editor.glade:1157
+#: src/ui/gui/psppire-var-store.c:486
 msgid "String"
 msgstr ""
 
 #: src/data/format.c:310 src/data/por-file-reader.c:489
-#: src/data/sys-file-reader.c:629 src/ui/gui/data-editor.glade:1023
-#: src/ui/gui/psppire-var-store.c:474
+#: src/data/sys-file-reader.c:629 src/ui/gui/data-editor.glade:1053
+#: src/ui/gui/psppire-var-store.c:479
 msgid "Numeric"
 msgstr ""
 
@@ -3409,24 +3409,6 @@ msgstr ""
 msgid "Closing `%s': %s."
 msgstr ""
 
-#: src/language/tests/check-model.q:139
-msgid "PATH and SEARCH subcommands are mutually exclusive.  Ignoring PATH."
-msgstr ""
-
-#: src/language/tests/check-model.q:157
-msgid "At least one value must be specified on PATH."
-msgstr ""
-
-#: src/language/tests/check-model.q:168
-#, c-format
-msgid "Hash bits adjusted to %d."
-msgstr ""
-
-#: src/language/tests/check-model.q:209
-#, c-format
-msgid "error opening \"%s\" for writing"
-msgstr ""
-
 #: src/language/tests/float-format.c:126
 #, c-format
 msgid "%d-byte string needed but %d-byte string supplied."
@@ -4190,84 +4172,93 @@ msgstr ""
 msgid "Compute new values for a variable"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:636
+#: src/ui/gui/data-editor.c:265 src/ui/gui/data-editor.glade:259
+#: src/ui/gui/data-editor.glade:589
+msgid "Variables"
+msgstr ""
+
+#: src/ui/gui/data-editor.c:266
+msgid "Jump to Variable"
+msgstr ""
+
+#: src/ui/gui/data-editor.c:655
 msgid "Font Selection"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:814
+#: src/ui/gui/data-editor.c:833
 msgid "No Split"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:822
+#: src/ui/gui/data-editor.c:841
 msgid "Split by "
 msgstr ""
 
-#: src/ui/gui/data-editor.c:847
+#: src/ui/gui/data-editor.c:866
 msgid "Filter off"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:860
+#: src/ui/gui/data-editor.c:879
 #, c-format
 msgid "Filter by %s"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:878
+#: src/ui/gui/data-editor.c:897
 msgid "Weights off"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:891
+#: src/ui/gui/data-editor.c:910
 #, c-format
 msgid "Weight by %s"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:914 src/ui/gui/data-editor.c:1145
-#: src/ui/gui/data-editor.glade:465
+#: src/ui/gui/data-editor.c:933 src/ui/gui/data-editor.c:1164
+#: src/ui/gui/data-editor.glade:496
 msgid "Open"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:915
+#: src/ui/gui/data-editor.c:934
 msgid "Open a data file"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:923 src/ui/gui/data-editor.c:1030
-#: src/ui/gui/data-editor.glade:475
+#: src/ui/gui/data-editor.c:942 src/ui/gui/data-editor.c:1049
+#: src/ui/gui/data-editor.glade:506
 msgid "Save"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:924 src/ui/gui/data-editor.c:934
+#: src/ui/gui/data-editor.c:943 src/ui/gui/data-editor.c:953
 msgid "Save data to file"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:933
+#: src/ui/gui/data-editor.c:952
 msgid "Save As"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:942
+#: src/ui/gui/data-editor.c:961
 msgid "New"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:943
+#: src/ui/gui/data-editor.c:962
 msgid "New data file"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:1038 src/ui/gui/data-editor.c:1153
+#: src/ui/gui/data-editor.c:1057 src/ui/gui/data-editor.c:1172
 msgid "System Files (*.sav)"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:1044 src/ui/gui/data-editor.c:1159
+#: src/ui/gui/data-editor.c:1063 src/ui/gui/data-editor.c:1178
 msgid "Portable Files (*.por) "
 msgstr ""
 
-#: src/ui/gui/data-editor.c:1050 src/ui/gui/data-editor.c:1165
+#: src/ui/gui/data-editor.c:1069 src/ui/gui/data-editor.c:1184
 #: src/ui/gui/syntax-editor.c:141 src/ui/gui/syntax-editor.c:527
 msgid "All Files"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:1058
+#: src/ui/gui/data-editor.c:1077
 msgid "System File"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:1063
+#: src/ui/gui/data-editor.c:1082
 msgid "Portable File"
 msgstr ""
 
@@ -4330,8 +4321,8 @@ msgstr ""
 msgid "Grid Lines"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:240 src/ui/gui/data-editor.glade:675
-#: src/ui/gui/data-editor.glade:1385 src/ui/gui/data-editor.glade:1563
+#: src/ui/gui/data-editor.glade:240 src/ui/gui/data-editor.glade:705
+#: src/ui/gui/data-editor.glade:1415 src/ui/gui/data-editor.glade:1593
 msgid "Value Labels"
 msgstr ""
 
@@ -4339,11 +4330,7 @@ msgstr ""
 msgid "Data"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:259 src/ui/gui/data-editor.glade:559
-msgid "Variables"
-msgstr ""
-
-#: src/ui/gui/data-editor.glade:278 src/ui/gui/data-editor.glade:612
+#: src/ui/gui/data-editor.glade:278 src/ui/gui/data-editor.glade:642
 msgid "Insert Variable"
 msgstr ""
 
@@ -4351,12 +4338,12 @@ msgstr ""
 msgid "Insert Cases"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:294 src/ui/gui/data-editor.glade:548
-#: src/ui/gui/data-editor.glade:1929
+#: src/ui/gui/data-editor.glade:294 src/ui/gui/data-editor.glade:579
+#: src/ui/gui/data-editor.glade:1959
 msgid "Go To Case"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:307 src/ui/gui/data-editor.glade:1994
+#: src/ui/gui/data-editor.glade:307 src/ui/gui/data-editor.glade:2024
 msgid "Sort Cases"
 msgstr ""
 
@@ -4372,15 +4359,15 @@ msgstr ""
 msgid "Aggregate"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:352 src/ui/gui/data-editor.glade:632
+#: src/ui/gui/data-editor.glade:352 src/ui/gui/data-editor.glade:662
 msgid "Split File"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:360 src/ui/gui/data-editor.glade:655
+#: src/ui/gui/data-editor.glade:360 src/ui/gui/data-editor.glade:685
 msgid "Select Cases"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:367 src/ui/gui/data-editor.glade:643
+#: src/ui/gui/data-editor.glade:367 src/ui/gui/data-editor.glade:673
 msgid "Weight Cases"
 msgstr ""
 
@@ -4396,191 +4383,203 @@ msgstr ""
 msgid "Ran_k Cases"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:409 src/ui/gui/syntax-editor.glade:233
+#: src/ui/gui/data-editor.glade:410
+msgid "_Utilities"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:420
+msgid "_Variables"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:429
+msgid "Data File _Comments"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:440 src/ui/gui/syntax-editor.glade:233
 msgid "_Windows"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:416 src/ui/gui/syntax-editor.glade:242
+#: src/ui/gui/data-editor.glade:447 src/ui/gui/syntax-editor.glade:242
 msgid "_Minimise All Windows"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:427 src/ui/gui/syntax-editor.glade:254
+#: src/ui/gui/data-editor.glade:458 src/ui/gui/syntax-editor.glade:254
 msgid "_Help"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:434 src/ui/gui/syntax-editor.glade:263
+#: src/ui/gui/data-editor.glade:465 src/ui/gui/syntax-editor.glade:263
 msgid "_Reference Manual"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:441 src/ui/gui/syntax-editor.glade:271
+#: src/ui/gui/data-editor.glade:472 src/ui/gui/syntax-editor.glade:271
 msgid "_About"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:486
+#: src/ui/gui/data-editor.glade:517
 msgid "Print"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:497
+#: src/ui/gui/data-editor.glade:528
 msgid "Recall"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:517
+#: src/ui/gui/data-editor.glade:548
 msgid "Undo"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:528
+#: src/ui/gui/data-editor.glade:559
 msgid "Redo"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:580
+#: src/ui/gui/data-editor.glade:610
 msgid "Find"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:600
+#: src/ui/gui/data-editor.glade:630
 msgid "Insert Case"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:687
+#: src/ui/gui/data-editor.glade:717
 msgid "Use Sets"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:769
+#: src/ui/gui/data-editor.glade:799
 msgid "Data View"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:796
+#: src/ui/gui/data-editor.glade:826
 msgid "Variable View"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:826
+#: src/ui/gui/data-editor.glade:856
 msgid "Information Area"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:845
+#: src/ui/gui/data-editor.glade:875
 msgid "Processor Area"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:870
+#: src/ui/gui/data-editor.glade:900
 msgid "OMS Area"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:895
+#: src/ui/gui/data-editor.glade:925
 msgid "Case Counter Area"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:920
+#: src/ui/gui/data-editor.glade:950
 msgid "Filter Use Status Area"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:946
+#: src/ui/gui/data-editor.glade:976
 msgid "Weight Status Area"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:972
+#: src/ui/gui/data-editor.glade:1002
 msgid "Split File Status Area"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:1002
+#: src/ui/gui/data-editor.glade:1032
 msgid "Variable Type"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:1037 src/ui/gui/psppire-var-store.c:475
+#: src/ui/gui/data-editor.glade:1067 src/ui/gui/psppire-var-store.c:480
 msgid "Comma"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:1052 src/ui/gui/psppire-var-store.c:476
+#: src/ui/gui/data-editor.glade:1082 src/ui/gui/psppire-var-store.c:481
 msgid "Dot"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:1067
+#: src/ui/gui/data-editor.glade:1097
 msgid "Scientific notation"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:1082 src/ui/gui/psppire-var-store.c:478
+#: src/ui/gui/data-editor.glade:1112 src/ui/gui/psppire-var-store.c:483
 msgid "Date"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:1097 src/ui/gui/psppire-var-store.c:479
+#: src/ui/gui/data-editor.glade:1127 src/ui/gui/psppire-var-store.c:484
 msgid "Dollar"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:1112
+#: src/ui/gui/data-editor.glade:1142
 msgid "Custom currency"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:1204
+#: src/ui/gui/data-editor.glade:1234
 msgid "positive"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:1210
+#: src/ui/gui/data-editor.glade:1240
 msgid "negative"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:1223
+#: src/ui/gui/data-editor.glade:1253
 msgid "Sample"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:1271
+#: src/ui/gui/data-editor.glade:1301
 msgid "Decimal Places:"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:1312
+#: src/ui/gui/data-editor.glade:1342
 msgid "Width:"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:1469
+#: src/ui/gui/data-editor.glade:1499
 msgid "Value:"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:1480
+#: src/ui/gui/data-editor.glade:1510
 msgid "Value Label:"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:1627
+#: src/ui/gui/data-editor.glade:1657
 msgid "Missing Values"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:1691
+#: src/ui/gui/data-editor.glade:1721
 msgid "_No missing values"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:1708
+#: src/ui/gui/data-editor.glade:1738
 msgid "_Discrete missing values"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:1792
+#: src/ui/gui/data-editor.glade:1822
 msgid "_Range plus one optional discrete missing value"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:1816
+#: src/ui/gui/data-editor.glade:1846
 msgid "_Low:"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:1845
+#: src/ui/gui/data-editor.glade:1875
 msgid "_High:"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:1886
+#: src/ui/gui/data-editor.glade:1916
 msgid "Di_screte value:"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:1946
+#: src/ui/gui/data-editor.glade:1976
 msgid "Case Number:"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:2055 src/ui/gui/psppire.glade:1171
+#: src/ui/gui/data-editor.glade:2085 src/ui/gui/psppire.glade:1171
 msgid "Sort by:"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:2104 src/ui/gui/psppire.glade:1224
+#: src/ui/gui/data-editor.glade:2134 src/ui/gui/psppire.glade:1224
 msgid "Ascending"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:2117 src/ui/gui/psppire.glade:1234
+#: src/ui/gui/data-editor.glade:2147 src/ui/gui/psppire.glade:1234
 msgid "Descending"
 msgstr ""
 
-#: src/ui/gui/data-editor.glade:2133 src/ui/gui/psppire.glade:1250
+#: src/ui/gui/data-editor.glade:2163 src/ui/gui/psppire.glade:1250
 msgid "Sort Order"
 msgstr ""
 
@@ -4628,17 +4627,53 @@ msgstr ""
 msgid "Incorrect range specification"
 msgstr ""
 
-#: src/ui/gui/psppire-buttonbox.c:130
+#: src/ui/gui/psppire-buttonbox.c:146
+msgid "Buttons"
+msgstr ""
+
+#: src/ui/gui/psppire-buttonbox.c:147
+msgid "The mask that decides what buttons appear in the button box"
+msgstr ""
+
+#: src/ui/gui/psppire-buttonbox.c:245 src/ui/gui/psppire-buttonbox.c:397
+msgid "Continue"
+msgstr ""
+
+#: src/ui/gui/psppire-buttonbox.c:255
 msgid "_Paste"
 msgstr ""
 
+#: src/ui/gui/psppire-buttonbox.c:395
+msgid "OK"
+msgstr ""
+
+#: src/ui/gui/psppire-buttonbox.c:396
+msgid "Go To"
+msgstr ""
+
+#: src/ui/gui/psppire-buttonbox.c:398
+msgid "Cancel"
+msgstr ""
+
+#: src/ui/gui/psppire-buttonbox.c:399
+msgid "Help"
+msgstr ""
+
+#: src/ui/gui/psppire-buttonbox.c:400
+msgid "Reset"
+msgstr ""
+
+#: src/ui/gui/psppire-buttonbox.c:401
+msgid "Paste"
+msgstr ""
+
 #: src/ui/gui/psppire-data-store.c:750
 msgid "var"
 msgstr ""
 
-#: src/ui/gui/psppire-data-store.c:831 src/ui/gui/psppire-var-store.c:551
-#: src/ui/gui/psppire-var-store.c:561 src/ui/gui/psppire-var-store.c:571
-#: src/ui/gui/psppire-var-store.c:769
+#: src/ui/gui/psppire-data-store.c:831 src/ui/gui/psppire-var-store.c:556
+#: src/ui/gui/psppire-var-store.c:566 src/ui/gui/psppire-var-store.c:576
+#: src/ui/gui/psppire-var-store.c:714
 #, c-format
 msgid "%d"
 msgstr ""
@@ -4806,15 +4841,33 @@ msgstr ""
 msgid "Functions:"
 msgstr ""
 
-#: src/ui/gui/psppire-var-store.c:470
+#: src/ui/gui/psppire.glade:1643
+msgid "Variable Information:"
+msgstr ""
+
+#: src/ui/gui/psppire.glade:1669
+msgid ""
+"\n"
+"\n"
+"\n"
+"\n"
+"\n"
+"\n"
+"\n"
+"\n"
+"\n"
+"\n"
+msgstr ""
+
+#: src/ui/gui/psppire-var-store.c:472
 msgid "None"
 msgstr ""
 
-#: src/ui/gui/psppire-var-store.c:477
+#: src/ui/gui/psppire-var-store.c:482
 msgid "Scientific"
 msgstr ""
 
-#: src/ui/gui/psppire-var-store.c:480
+#: src/ui/gui/psppire-var-store.c:485
 msgid "Custom"
 msgstr ""
 
index 812fdce8ba67038dc9059d7a98df62b8ee43cc62..fa19479df9f927778b85c1e6e7a6d85b6895f985 100644 (file)
@@ -1,3 +1,17 @@
+2007-04-30 John Darrington <john@darrington.wattle.id.au>
+
+       * var-display.c var-display.h variable-info-dialog.c
+       variable-info-dialog.h : New files. 
+
+       * data-editor.c : 
+
+       * psppire-buttonbox.c psppire-buttonbox.h : Added the "buttons"
+       property, and optional  GOTO and CONTINUE buttons.
+
+       * psppire-dialog.h: Added response codes for the new buttons.
+
+       * psppire-var-store.c : Moved some code to var-display.[ch]
+
 2007-04-25 John Darrington <john@darrington.wattle.id.au>
 
        * icons/scalable/splash.c icons/splash.png : More eye candy.
index 2f4d884d96ced6f6d712ee0fd3628f3846ce0e4c..314ae3598f72570cb9525f12a156167426bd035b 100644 (file)
@@ -126,10 +126,14 @@ src_ui_gui_psppire_SOURCES = \
        src/ui/gui/transpose-dialog.h \
        src/ui/gui/val-labs-dialog.c \
        src/ui/gui/val-labs-dialog.h \
+       src/ui/gui/var-display.c \
+       src/ui/gui/var-display.h \
        src/ui/gui/var-sheet.c \
        src/ui/gui/var-sheet.h \
        src/ui/gui/var-type-dialog.c \
        src/ui/gui/var-type-dialog.h \
+       src/ui/gui/variable-info-dialog.c \
+       src/ui/gui/variable-info-dialog.h \
        src/ui/gui/weight-cases-dialog.c \
        src/ui/gui/weight-cases-dialog.h \
        src/ui/gui/window-manager.c \
index f733c15256d8a38bb9fb46f548e32e720edc3aaa..5efa3ca6ada343af791439671f04f542cc46b3d2 100644 (file)
@@ -36,6 +36,7 @@
 #include "transpose-dialog.h"
 #include "sort-cases-dialog.h"
 #include "compute-dialog.h"
+#include "variable-info-dialog.h"
 #include "dict-display.h"
 
 #define _(msgid) gettext (msgid)
@@ -57,7 +58,6 @@ static void insert_variable (GtkCheckMenuItem *m, gpointer data);
 
 
 /* Switch between the VAR SHEET and the DATA SHEET */
-enum {PAGE_DATA_SHEET = 0, PAGE_VAR_SHEET};
 
 static gboolean click2column (GtkWidget *w, gint col, gpointer data);
 
@@ -260,6 +260,14 @@ new_data_editor (void)
   g_signal_connect (de->invoke_compute_dialog, "activate",
                    G_CALLBACK (compute_dialog), de);
 
+  de->invoke_variable_info_dialog  =
+    gtk_action_new ("variable-info-dialog",
+                   _("Variables"),
+                   _("Jump to Variable"),
+                   "pspp-goto-variable");
+
+  g_signal_connect (de->invoke_variable_info_dialog, "activate",
+                   G_CALLBACK (variable_info_dialog), de);
 
   e->window = GTK_WINDOW (get_widget_assert (de->xml, "data_editor"));
 
@@ -274,6 +282,9 @@ new_data_editor (void)
                            de->action_data_open);
 
 
+
+
+
 #if RECENT_LISTS_AVAILABLE
   {
     GtkRecentManager *rm = gtk_recent_manager_get_default ();
@@ -364,6 +375,10 @@ new_data_editor (void)
                            get_widget_assert (de->xml, "transform_compute")
                            );
 
+  gtk_action_connect_proxy (de->invoke_variable_info_dialog,
+                           get_widget_assert (de->xml, "utilities_variables")
+                           );
+
 
   g_signal_connect (get_widget_assert (de->xml,"help_about"),
                    "activate",
@@ -451,6 +466,10 @@ new_data_editor (void)
                            get_widget_assert (de->xml, "button-save")
                            );
 
+  gtk_action_connect_proxy (de->invoke_variable_info_dialog,
+                           get_widget_assert (de->xml, "button-goto-variable")
+                           );
+
   gtk_action_connect_proxy (de->invoke_weight_cases_dialog,
                            get_widget_assert (de->xml, "button-weight-cases")
                            );
index ddd62ba57e5dee99c8de515675855c9adae21596..63ddf452f462662425830df6969c8d1c84806071 100644 (file)
                 </child>
               </widget>
             </child>
+            <child>
+              <widget class="GtkMenuItem" id="utilities">
+                <property name="visible">True</property>
+                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                <property name="label" translatable="yes">_Utilities</property>
+                <property name="use_underline">True</property>
+                <child>
+                  <widget class="GtkMenu" id="menu1">
+                    <property name="visible">True</property>
+                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                    <child>
+                      <widget class="GtkMenuItem" id="utilities_variables">
+                        <property name="visible">True</property>
+                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                        <property name="label" translatable="yes">_Variables</property>
+                        <property name="use_underline">True</property>
+                      </widget>
+                    </child>
+                    <child>
+                      <widget class="GtkMenuItem" id="utilities_comments">
+                        <property name="visible">True</property>
+                        <property name="sensitive">False</property>
+                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                        <property name="label" translatable="yes">Data File _Comments</property>
+                        <property name="use_underline">True</property>
+                      </widget>
+                    </child>
+                  </widget>
+                </child>
+              </widget>
+            </child>
             <child>
               <widget class="GtkMenuItem" id="windows">
                 <property name="visible">True</property>
                 <child>
                   <widget class="GtkToolButton" id="button-goto-variable">
                     <property name="visible">True</property>
-                    <property name="sensitive">False</property>
                     <property name="tooltip" translatable="yes">Variables</property>
                     <property name="use_underline">True</property>
                     <property name="stock_id">pspp-goto-variable</property>
index 42266408636b0574bd0521af5c32e0e3a4fd9d29..9b8da82615dc5ef0832b4d3686460ca8596e8f68 100644 (file)
@@ -40,6 +40,8 @@ struct data_editor
   GtkAction *invoke_sort_cases_dialog;
   GtkAction *invoke_compute_dialog;
 
+  GtkAction *invoke_variable_info_dialog;
+
   GladeXML *xml;
 
   gboolean save_as_portable;
@@ -57,5 +59,7 @@ void new_data_window (GtkMenuItem *, gpointer);
 
 void data_editor_select_sheet (struct data_editor *de, gint page);
 
+enum {PAGE_DATA_SHEET = 0, PAGE_VAR_SHEET};
+
 
 #endif
index 13269b639c25d6b7933bc8f72d6d356d6f00771e..5129f13988c433b3d3171bf939c5773956273611 100644 (file)
@@ -92,7 +92,7 @@ var_icon_cell_data_func (GtkTreeViewColumn *col,
 }
 
 
-static void
+void
 get_base_model (GtkTreeModel *top_model, GtkTreeIter *top_iter,
                GtkTreeModel **model, GtkTreeIter *iter
                )
index 71479ba5503f47881d2edb4c6ce39d5a07d9e883..22cb3816295143abca280a93c2d2fb45d1e2bfe6 100644 (file)
@@ -57,3 +57,8 @@ void insert_source_row_into_entry (GtkTreeIter source_iter,
 /* A FilterItemsFunc function for GtkEntry widgets */
 gboolean is_currently_in_entry (GtkTreeModel *model, GtkTreeIter *iter,
                                PsppireSelector *selector);
+
+
+void get_base_model (GtkTreeModel *top_model, GtkTreeIter *top_iter,
+                    GtkTreeModel **model, GtkTreeIter *iter
+                    );
index 400c0c1f5410649af4c6a80d37284d9dbceefc00..921375f82e82e21fd6d090e949cdebea4e92d6c0 100644 (file)
@@ -31,6 +31,8 @@
 #define _(msgid) gettext (msgid)
 #define N_(msgid) msgid
 
+GType psppire_button_flags_get_type (void);
+
 
 static void psppire_button_box_class_init          (PsppireButtonBoxClass *);
 static void psppire_button_box_init                (PsppireButtonBox      *);
@@ -63,89 +65,234 @@ psppire_button_box_get_type (void)
   return button_box_type;
 }
 
+enum {
+  PROP_BUTTONS = 1
+};
+
 static void
-psppire_button_box_class_init (PsppireButtonBoxClass *class)
+psppire_buttonbox_set_property (GObject         *object,
+                              guint            prop_id,
+                              const GValue    *value,
+                              GParamSpec      *pspec)
 {
+  gint i;
+  guint flags;
+  PsppireButtonBox *bb = PSPPIRE_BUTTONBOX (object);
+  if ( prop_id != PROP_BUTTONS)
+    {
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      return ;
+    }
+
+  flags = g_value_get_flags (value);
+
+  for (i = 0 ; i < n_PsppireButtonBoxButtons ; ++i )
+    g_object_set (bb->button[i], "visible", 0x01 & (flags >> i)  , NULL);
 }
 
 static void
-close_dialog (GtkWidget *w, gpointer data)
+psppire_buttonbox_get_property (GObject         *object,
+                              guint            prop_id,
+                              GValue          *value,
+                              GParamSpec      *pspec)
 {
-  PsppireDialog *dialog;
+  guint flags = 0;
+  gint i;
 
-  dialog = PSPPIRE_DIALOG (gtk_widget_get_toplevel (w));
+  PsppireButtonBox *bb = PSPPIRE_BUTTONBOX (object);
 
-  dialog->response = GTK_RESPONSE_CANCEL;
+  if  (PROP_BUTTONS != prop_id)
+    {
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      return;
+    }
+
+  for (i = 0 ; i < n_PsppireButtonBoxButtons ; ++i )
+    {
+      gboolean visibility;
+      g_object_get (bb->button[i], "visible", &visibility, NULL);
+
+      if ( visibility )
+       flags |= (0x01 << i);
+    }
+
+  g_value_set_flags (value, flags);
+}
+
+
+typedef enum
+  {
+    PSPPIRE_BUTTON_OK_MASK     = (1 << PSPPIRE_BUTTON_OK),
+    PSPPIRE_BUTTON_GOTO_MASK   = (1 << PSPPIRE_BUTTON_GOTO),
+    PSPPIRE_BUTTON_CONTINUE_MASK = (1 << PSPPIRE_BUTTON_CONTINUE),
+    PSPPIRE_BUTTON_CANCEL_MASK = (1 << PSPPIRE_BUTTON_CANCEL),
+    PSPPIRE_BUTTON_HELP_MASK   = (1 << PSPPIRE_BUTTON_HELP),
+    PSPPIRE_BUTTON_RESET_MASK  = (1 << PSPPIRE_BUTTON_RESET),
+    PSPPIRE_BUTTON_PASTE_MASK  = (1 << PSPPIRE_BUTTON_PASTE)
+  } PsppireButtonMask;
+
+static GParamSpec *button_flags;
+
+static void
+psppire_button_box_class_init (PsppireButtonBoxClass *class)
+{
+  GObjectClass *object_class = G_OBJECT_CLASS (class);
+
+  object_class->set_property = psppire_buttonbox_set_property;
+  object_class->get_property = psppire_buttonbox_get_property;
+
+  button_flags =
+    g_param_spec_flags ("buttons",
+                       _("Buttons"),
+                       _("The mask that decides what buttons appear in the button box"),
+                       G_TYPE_PSPPIRE_BUTTON_MASK,
+                       PSPPIRE_BUTTON_OK_MASK |
+                       PSPPIRE_BUTTON_CANCEL_MASK |
+                       PSPPIRE_BUTTON_RESET_MASK |
+                       PSPPIRE_BUTTON_HELP_MASK |
+                       PSPPIRE_BUTTON_PASTE_MASK,
+                       G_PARAM_READWRITE);
+
+
+  g_object_class_install_property (object_class,
+                                  PROP_BUTTONS,
+                                  button_flags);
 
-  psppire_dialog_close (dialog);
 }
 
 static void
-ok_button_clicked (GtkWidget *w, gpointer data)
+close_and_respond (GtkWidget *w, gint response)
 {
   PsppireDialog *dialog;
 
-  dialog = PSPPIRE_DIALOG (gtk_widget_get_toplevel (w));
+  GtkWidget *toplevel = gtk_widget_get_toplevel (w);
+
+  /* If we're not in a psppire dialog (for example when in glade)
+     then do nothing */
+  if ( ! PSPPIRE_IS_DIALOG (toplevel))
+    return;
+
+  dialog = PSPPIRE_DIALOG (toplevel);
 
-  dialog->response = GTK_RESPONSE_OK;
+  dialog->response = response;
 
   psppire_dialog_close (dialog);
 }
 
 
 static void
-paste_button_clicked (GtkWidget *w, gpointer data)
+close_dialog (GtkWidget *w, gpointer data)
 {
-  PsppireDialog *dialog;
+  close_and_respond (w, GTK_RESPONSE_CLOSE);
+}
+
+
+static void
+ok_button_clicked (GtkWidget *w, gpointer data)
+{
+  close_and_respond (w, GTK_RESPONSE_OK);
+}
 
-  dialog = PSPPIRE_DIALOG (gtk_widget_get_toplevel (w));
 
-  dialog->response = PSPPIRE_RESPONSE_PASTE;
+static void
+paste_button_clicked (GtkWidget *w, gpointer data)
+{
+  close_and_respond (w, PSPPIRE_RESPONSE_PASTE);
+}
 
-  psppire_dialog_close (dialog);
+static void
+goto_button_clicked (GtkWidget *w, gpointer data)
+{
+  close_and_respond (w, PSPPIRE_RESPONSE_GOTO);
 }
 
 
 static void
 refresh_clicked (GtkWidget *w, gpointer data)
 {
+  GtkWidget *toplevel = gtk_widget_get_toplevel (w);
   PsppireDialog *dialog;
 
-  dialog = PSPPIRE_DIALOG (gtk_widget_get_toplevel (w));
+  if ( ! PSPPIRE_IS_DIALOG (toplevel))
+    return;
+
+  dialog = PSPPIRE_DIALOG (toplevel);
 
   psppire_dialog_reload (dialog);
 }
 
 
 static void
-psppire_button_box_init (PsppireButtonBox *button_box)
+psppire_button_box_init (PsppireButtonBox *bb)
 {
-  GtkWidget *button ;
 
-  button = gtk_button_new_from_stock (GTK_STOCK_OK);
-  gtk_box_pack_start_defaults (GTK_BOX (button_box), button);
-  g_signal_connect (button, "clicked", G_CALLBACK (ok_button_clicked), NULL);
-  gtk_widget_show (button);
+  bb->button[PSPPIRE_BUTTON_OK] = gtk_button_new_from_stock (GTK_STOCK_OK);
+  gtk_box_pack_start_defaults (GTK_BOX (bb), bb->button[PSPPIRE_BUTTON_OK]);
+  g_signal_connect (bb->button[PSPPIRE_BUTTON_OK], "clicked",
+                   G_CALLBACK (ok_button_clicked), NULL);
+  g_object_set (bb->button[PSPPIRE_BUTTON_OK], "no-show-all", TRUE, NULL);
+
+
+  bb->button[PSPPIRE_BUTTON_GOTO] =
+    gtk_button_new_from_stock (GTK_STOCK_JUMP_TO);
+  gtk_box_pack_start_defaults (GTK_BOX (bb), bb->button[PSPPIRE_BUTTON_GOTO]);
+  g_signal_connect (bb->button[PSPPIRE_BUTTON_GOTO], "clicked",
+                   G_CALLBACK (goto_button_clicked), NULL);
+  g_object_set (bb->button[PSPPIRE_BUTTON_GOTO], "no-show-all", TRUE, NULL);
+
+
+  bb->button[PSPPIRE_BUTTON_CONTINUE] =
+    gtk_button_new_with_mnemonic (_("Continue"));
+
+  gtk_box_pack_start_defaults (GTK_BOX (bb),
+                              bb->button[PSPPIRE_BUTTON_CONTINUE]);
+
+  g_object_set (bb->button[PSPPIRE_BUTTON_CONTINUE],
+               "no-show-all", TRUE, NULL);
+
 
-  button = gtk_button_new_with_mnemonic (_("_Paste"));
-  g_signal_connect (button, "clicked", G_CALLBACK (paste_button_clicked),
-                   NULL);
-  gtk_box_pack_start_defaults (GTK_BOX (button_box), button);
-  gtk_widget_show (button);
 
-  button = gtk_button_new_from_stock (GTK_STOCK_CANCEL);
-  g_signal_connect (button, "clicked", G_CALLBACK (close_dialog), NULL);
-  gtk_box_pack_start_defaults (GTK_BOX (button_box), button);
-  gtk_widget_show (button);
+  bb->button[PSPPIRE_BUTTON_PASTE] = gtk_button_new_with_mnemonic (_("_Paste"));
+  g_signal_connect (bb->button[PSPPIRE_BUTTON_PASTE], "clicked",
+                   G_CALLBACK (paste_button_clicked), NULL);
+  gtk_box_pack_start_defaults (GTK_BOX (bb), bb->button[PSPPIRE_BUTTON_PASTE]);
+  g_object_set (bb->button[PSPPIRE_BUTTON_PASTE], "no-show-all", TRUE, NULL);
 
-  button = gtk_button_new_from_stock (GTK_STOCK_REFRESH);
-  g_signal_connect (button, "clicked", G_CALLBACK (refresh_clicked), NULL);
-  gtk_box_pack_start_defaults (GTK_BOX (button_box), button);
-  gtk_widget_show (button);
+  bb->button[PSPPIRE_BUTTON_CANCEL] = gtk_button_new_from_stock (GTK_STOCK_CANCEL);
+  g_signal_connect (bb->button[PSPPIRE_BUTTON_CANCEL], "clicked",
+                   G_CALLBACK (close_dialog), NULL);
+  gtk_box_pack_start_defaults (GTK_BOX (bb), bb->button[PSPPIRE_BUTTON_CANCEL]);
+  g_object_set (bb->button[PSPPIRE_BUTTON_CANCEL], "no-show-all", TRUE, NULL);
 
-  button = gtk_button_new_from_stock (GTK_STOCK_HELP);
-  gtk_box_pack_start_defaults (GTK_BOX (button_box), button);
-  gtk_widget_show (button);
+
+  bb->button[PSPPIRE_BUTTON_RESET] = gtk_button_new_from_stock (GTK_STOCK_REFRESH);
+  g_signal_connect (bb->button[PSPPIRE_BUTTON_RESET], "clicked",
+                   G_CALLBACK (refresh_clicked), NULL);
+  gtk_box_pack_start_defaults (GTK_BOX (bb), bb->button[PSPPIRE_BUTTON_RESET]);
+  g_object_set (bb->button[PSPPIRE_BUTTON_RESET], "no-show-all", TRUE, NULL);
+
+
+  bb->button[PSPPIRE_BUTTON_HELP] = gtk_button_new_from_stock (GTK_STOCK_HELP);
+  gtk_box_pack_start_defaults (GTK_BOX (bb), bb->button[PSPPIRE_BUTTON_HELP]);
+  g_object_set (bb->button[PSPPIRE_BUTTON_HELP], "no-show-all", TRUE, NULL);
+
+
+  /* Set the default visibilities */
+  {
+    GValue value = { 0 };
+    guint flags;
+    gint i;
+    g_value_init (&value, button_flags->value_type);
+    g_param_value_set_default(button_flags, &value);
+
+
+    flags = g_value_get_flags (&value);
+
+    for (i = 0 ; i < n_PsppireButtonBoxButtons ; ++i )
+      g_object_set (bb->button[i], "visible", 0x01 & (flags >> i)  , NULL);
+
+    g_value_unset (&value);
+  }
 
 }
 
@@ -235,3 +382,30 @@ _psppire_button_box_child_requisition (GtkWidget *widget,
   if (height)
     *height = needed_height;
 }
+
+
+GType
+psppire_button_flags_get_type (void)
+{
+  static GType ftype = 0;
+  if (ftype == 0)
+    {
+      static const GFlagsValue values[] =
+       {
+         { PSPPIRE_BUTTON_OK_MASK,     "PSPPIRE_BUTTON_OK_MASK",     N_("OK") },
+         { PSPPIRE_BUTTON_GOTO_MASK,   "PSPPIRE_BUTTON_GOTO_MASK", N_("Go To") },
+         { PSPPIRE_BUTTON_CONTINUE_MASK,"PSPPIRE_BUTTON_CONTINUE_MASK", N_("Continue") },
+         { PSPPIRE_BUTTON_CANCEL_MASK, "PSPPIRE_BUTTON_CANCEL_MASK", N_("Cancel") },
+         { PSPPIRE_BUTTON_HELP_MASK,   "PSPPIRE_BUTTON_HELP_MASK",   N_("Help") },
+         { PSPPIRE_BUTTON_RESET_MASK,  "PSPPIRE_BUTTON_RESET_MASK",  N_("Reset") },
+         { PSPPIRE_BUTTON_PASTE_MASK,  "PSPPIRE_BUTTON_PASTE_MASK",  N_("Paste") },
+         { 0, NULL, NULL }
+       };
+
+      ftype = g_flags_register_static
+       (g_intern_static_string ("PsppireButtonFlags"), values);
+
+    }
+  return ftype;
+}
+
index 91d355511256d72e6f58871799de541e15ab0c9e..c002fd4b8a7f6cb715329902073c1c5e0e88386c 100644 (file)
@@ -38,9 +38,24 @@ G_BEGIN_DECLS
 typedef struct _PsppireButtonBox       PsppireButtonBox;
 typedef struct _PsppireButtonBoxClass  PsppireButtonBoxClass;
 
+enum
+  {
+    PSPPIRE_BUTTON_OK = 0,
+    PSPPIRE_BUTTON_GOTO,
+    PSPPIRE_BUTTON_CONTINUE,
+    PSPPIRE_BUTTON_CANCEL,
+    PSPPIRE_BUTTON_HELP,
+    PSPPIRE_BUTTON_RESET,
+    PSPPIRE_BUTTON_PASTE,
+    n_PsppireButtonBoxButtons
+  };
+
 struct _PsppireButtonBox
 {
   GtkButtonBox parent;
+
+  /* <private> */
+  GtkWidget *button[n_PsppireButtonBoxButtons];
 };
 
 struct _PsppireButtonBoxClass
@@ -57,6 +72,10 @@ _psppire_button_box_child_requisition (GtkWidget *widget,
                                       int       *nvis_children,
                                       int       *nvis_secondaries,
                                       int       *width,
+
+
+#define G_TYPE_PSPPIRE_BUTTON_MASK \
+  (psppire_button_flags_get_type())
                                       int       *height);
 
 G_END_DECLS
index 17d8b50fd3956b9e8e31e785e20b417f79207bc9..71015f38727399645dd881d3b2670a49e69d7dbb 100644 (file)
 #include <glib-object.h>
 #include <gtk/gtkwindow.h>
 
-#define PSPPIRE_RESPONSE_PASTE 1
 
+#define PSPPIRE_RESPONSE_PASTE 1
+#define PSPPIRE_RESPONSE_GOTO 2
+#define PSPPIRE_RESPONSE_CONTINUE 3
 
 G_BEGIN_DECLS
 
index 3b3011f0a10a4837c70daa0a408196957b4c4c0f..d156e79932e0fccc1a6d86b576a60105b322a8d4 100644 (file)
@@ -43,6 +43,7 @@
 #include "missing-val-dialog.h"
 #include <data/value-labels.h>
 
+#include "var-display.h"
 
 #define TRAILING_ROWS 40
 
@@ -51,6 +52,10 @@ static void         psppire_var_store_class_init      (PsppireVarStoreClass *cla
 static void         psppire_var_store_sheet_model_init (GSheetModelIface *iface);
 static void         psppire_var_store_finalize        (GObject           *object);
 
+
+gchar * missing_values_to_string (const struct variable *pv, GError **err);
+
+
 static gchar *psppire_var_store_get_string (const GSheetModel *sheet_model, gint row, gint column);
 
 static gboolean  psppire_var_store_clear (GSheetModel *model,  gint row, gint col);
@@ -157,7 +162,7 @@ psppire_var_store_item_editable (PsppireVarStore *var_store, gint row, gint colu
   if ( VAR_STRING == var_get_type (pv) && column == COL_DECIMALS )
     return FALSE;
 
-  write_spec =var_get_write_format (pv);
+  write_spec = var_get_print_format (pv);
 
   switch ( write_spec->type )
     {
@@ -464,11 +469,11 @@ psppire_var_store_set_string (GSheetModel *model,
 }
 
 
+const static gchar none[] = N_("None");
+
 static  gchar *
 text_for_column (const struct variable *pv, gint c, GError **err)
 {
-  static gchar none[] = N_("None");
-
   static const gchar *const type_label[] =
     {
       N_("Numeric"),
@@ -580,63 +585,7 @@ text_for_column (const struct variable *pv, gint c, GError **err)
 
     case COL_MISSING:
       {
-       gchar *s;
-       const struct missing_values *miss = var_get_missing_values (pv);
-       if ( mv_is_empty (miss))
-         return g_locale_to_utf8 (gettext (none), -1, 0, 0, err);
-       else
-         {
-           if ( ! mv_has_range (miss))
-             {
-               GString *gstr = g_string_sized_new (10);
-               const int n = mv_n_values (miss);
-               gchar *mv[4] = {0,0,0,0};
-               gint i;
-               for (i = 0 ; i < n; ++i )
-                 {
-                   union value v;
-                   mv_peek_value (miss, &v, i);
-                   mv[i] = value_to_text (v, *write_spec);
-                   if ( i > 0 )
-                     g_string_append (gstr, ", ");
-                   g_string_append (gstr, mv[i]);
-                   g_free (mv[i]);
-                 }
-               s = pspp_locale_to_utf8 (gstr->str, gstr->len, err);
-               g_string_free (gstr, TRUE);
-             }
-           else
-             {
-               GString *gstr = g_string_sized_new (10);
-               gchar *l, *h;
-               union value low, high;
-               mv_peek_range (miss, &low.f, &high.f);
-
-               l = value_to_text (low, *write_spec);
-               h = value_to_text (high, *write_spec);
-
-               g_string_printf (gstr, "%s - %s", l, h);
-               g_free (l);
-               g_free (h);
-
-               if ( mv_has_value (miss))
-                 {
-                   gchar *ss = 0;
-                   union value v;
-                   mv_peek_value (miss, &v, 0);
-
-                   ss = value_to_text (v, *write_spec);
-
-                   g_string_append (gstr, ", ");
-                   g_string_append (gstr, ss);
-                   free (ss);
-                 }
-               s = pspp_locale_to_utf8 (gstr->str, gstr->len, err);
-               g_string_free (gstr, TRUE);
-             }
-
-           return s;
-         }
+       return missing_values_to_string (pv, err);
       }
       break;
     case COL_VALUES:
@@ -678,11 +627,7 @@ text_for_column (const struct variable *pv, gint c, GError **err)
       break;
     case COL_MEASURE:
       {
-       const gint measure = var_get_measure (pv);
-
-       g_assert (measure < n_MEASURES);
-       return g_locale_to_utf8 (gettext (measures[measure]),
-                                -1, 0, 0, err);
+       return measure_to_string (pv, err);
       }
       break;
     }
@@ -783,3 +728,6 @@ psppire_var_store_sheet_row_init (GSheetRowIface *iface)
 
   iface->get_button_label = geometry_get_button_label;
 }
+
+
+
index a436b6c74e5bd6105b1ff2b92b42cfcdd3b6236a..ef00c41e42184d679289b4873fb835377583e3b5 100644 (file)
       </widget>
     </child>
   </widget>
+  <widget class="PsppireDialog" id="variable-info-dialog">
+    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+    <property name="title">Variables</property>
+    <property name="modal">True</property>
+    <child internal-child="hbox">
+      <widget class="GtkHBox" id="dialog-hbox6">
+        <property name="visible">True</property>
+        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+        <property name="spacing">5</property>
+        <child>
+          <widget class="GtkScrolledWindow" id="scrolledwindow11">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+            <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
+            <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+            <property name="shadow_type">GTK_SHADOW_IN</property>
+            <child>
+              <widget class="GtkTreeView" id="treeview2">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                <property name="headers_visible">False</property>
+                <property name="reorderable">True</property>
+                <property name="fixed_height_mode">True</property>
+              </widget>
+            </child>
+          </widget>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+            <property name="padding">5</property>
+          </packing>
+        </child>
+        <child>
+          <widget class="GtkVBox" id="vbox23">
+            <property name="visible">True</property>
+            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+            <property name="spacing">5</property>
+            <child>
+              <widget class="GtkLabel" id="label24">
+                <property name="visible">True</property>
+                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                <property name="xalign">0</property>
+                <property name="label" translatable="yes">Variable Information:</property>
+              </widget>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="padding">5</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkScrolledWindow" id="scrolledwindow12">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
+                <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                <property name="shadow_type">GTK_SHADOW_IN</property>
+                <child>
+                  <widget class="GtkTextView" id="textview1">
+                    <property name="height_request">200</property>
+                    <property name="visible">True</property>
+                    <property name="events">GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                    <property name="editable">False</property>
+                    <property name="wrap_mode">GTK_WRAP_WORD_CHAR</property>
+                    <property name="left_margin">3</property>
+                    <property name="cursor_visible">False</property>
+                    <property name="accepts_tab">False</property>
+                    <property name="text" translatable="yes">
+
+
+
+
+
+
+
+
+
+</property>
+                  </widget>
+                </child>
+              </widget>
+              <packing>
+                <property name="padding">5</property>
+                <property name="position">2</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="PsppireHButtonBox" id="psppire-hbuttonbox3">
+                <property name="visible">True</property>
+                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                <property name="border_width">5</property>
+                <property name="homogeneous">True</property>
+                <property name="buttons">PSPPIRE_BUTTON_GOTO_MASK | PSPPIRE_BUTTON_CANCEL_MASK | PSPPIRE_BUTTON_HELP_MASK | PSPPIRE_BUTTON_PASTE_MASK</property>
+              </widget>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="pack_type">GTK_PACK_END</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </widget>
+          <packing>
+            <property name="padding">5</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+      </widget>
+    </child>
+  </widget>
 </glade-interface>
diff --git a/src/ui/gui/var-display.c b/src/ui/gui/var-display.c
new file mode 100644 (file)
index 0000000..3245e1a
--- /dev/null
@@ -0,0 +1,107 @@
+#include "var-display.h"
+
+#include <data/variable.h>
+#include <stdlib.h>
+
+#include "var-sheet.h"
+#include <gettext.h>
+#define _(msgid) gettext (msgid)
+#define N_(msgid) msgid
+
+#include "helper.h"
+
+const static gchar none[] = N_("None");
+
+gchar *
+name_to_string (const struct variable *var, GError **err)
+{
+  const char *name = var_get_name (var);
+  g_assert (name);
+
+  return pspp_locale_to_utf8 (name, -1, err);
+}
+
+
+gchar *
+label_to_string (const struct variable *var, GError **err)
+{
+  const char *label = var_get_label (var);
+
+  if ( ! label ) return g_strdup (none);
+
+  return pspp_locale_to_utf8 (label, -1, err);
+}
+
+gchar *
+measure_to_string (const struct variable *var, GError **err)
+{
+  const gint measure = var_get_measure (var);
+
+  g_assert (measure < n_MEASURES);
+  return g_locale_to_utf8 (gettext (measures[measure]),
+                          -1, 0, 0, err);
+}
+
+
+gchar *
+missing_values_to_string (const struct variable *pv, GError **err)
+{
+  const struct fmt_spec *fmt =  var_get_print_format (pv);
+  gchar *s;
+  const struct missing_values *miss = var_get_missing_values (pv);
+  if ( mv_is_empty (miss))
+    return g_locale_to_utf8 (gettext (none), -1, 0, 0, err);
+  else
+    {
+      if ( ! mv_has_range (miss))
+       {
+         GString *gstr = g_string_sized_new (10);
+         const int n = mv_n_values (miss);
+         gchar *mv[4] = {0,0,0,0};
+         gint i;
+         for (i = 0 ; i < n; ++i )
+           {
+             union value v;
+             mv_peek_value (miss, &v, i);
+             mv[i] = value_to_text (v, *fmt);
+             if ( i > 0 )
+               g_string_append (gstr, ", ");
+             g_string_append (gstr, mv[i]);
+             g_free (mv[i]);
+           }
+         s = pspp_locale_to_utf8 (gstr->str, gstr->len, err);
+         g_string_free (gstr, TRUE);
+       }
+      else
+       {
+         GString *gstr = g_string_sized_new (10);
+         gchar *l, *h;
+         union value low, high;
+         mv_peek_range (miss, &low.f, &high.f);
+
+         l = value_to_text (low, *fmt);
+         h = value_to_text (high, *fmt);
+
+         g_string_printf (gstr, "%s - %s", l, h);
+         g_free (l);
+         g_free (h);
+
+         if ( mv_has_value (miss))
+           {
+             gchar *ss = 0;
+             union value v;
+             mv_peek_value (miss, &v, 0);
+
+             ss = value_to_text (v, *fmt);
+
+             g_string_append (gstr, ", ");
+             g_string_append (gstr, ss);
+             free (ss);
+           }
+         s = pspp_locale_to_utf8 (gstr->str, gstr->len, err);
+         g_string_free (gstr, TRUE);
+       }
+
+      return s;
+    }
+}
diff --git a/src/ui/gui/var-display.h b/src/ui/gui/var-display.h
new file mode 100644 (file)
index 0000000..a67a7cb
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+   PSPPIRE --- A Graphical User Interface for PSPP
+   Copyright (C) 2007  Free Software Foundation
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program 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 General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+   02110-1301, USA. */
+
+
+#ifndef VAR_DISPLAY_H
+#define VAR_DISPLAY 1
+
+#include <glib.h>
+
+struct variable;
+
+
+gchar * name_to_string (const struct variable *var, GError **err);
+
+
+gchar * missing_values_to_string (const struct variable *pv, GError **err);
+
+gchar * measure_to_string (const struct variable *var, GError **err);
+
+gchar * label_to_string (const struct variable *var, GError **err);
+
+
+#endif
diff --git a/src/ui/gui/variable-info-dialog.c b/src/ui/gui/variable-info-dialog.c
new file mode 100644 (file)
index 0000000..e5d8d05
--- /dev/null
@@ -0,0 +1,248 @@
+/*
+    PSPPIRE --- A Graphical User Interface for PSPP
+    Copyright (C) 2007  Free Software Foundation
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program 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 General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+    02110-1301, USA. */
+
+
+#include <gtk/gtk.h>
+#include <glade/glade.h>
+#include <gtksheet/gtksheet.h>
+
+#include "dict-display.h"
+#include "var-display.h"
+#include <data/variable.h>
+#include <data/value-labels.h>
+#include "data-editor.h"
+#include "psppire-dialog.h"
+#include "psppire-var-store.h"
+#include "helper.h"
+#include <gtksheet/gtksheet.h>
+
+#include <language/syntax-string-source.h>
+#include "syntax-editor.h"
+
+
+#include <gettext.h>
+#define _(msgid) gettext (msgid)
+#define N_(msgid) msgid
+
+
+static struct variable *
+get_selected_variable (GtkTreeView *treeview)
+{
+  struct variable *var;
+  GtkTreeModel *top_model;
+  GtkTreeIter top_iter;
+
+  GtkTreeModel *model;
+  GtkTreeIter iter;
+
+  GtkTreeSelection *selection = gtk_tree_view_get_selection (treeview);
+
+  if (! gtk_tree_selection_get_selected (selection,
+                                        &top_model, &top_iter))
+    {
+      return NULL;
+    }
+
+  get_base_model (top_model, &top_iter, &model, &iter);
+
+  g_assert (PSPPIRE_IS_DICT (model));
+
+  gtk_tree_model_get (model,
+                     &iter, DICT_TVM_COL_VAR, &var, -1);
+
+  return var;
+}
+
+
+
+static void
+populate_text (GtkTreeView *treeview, gpointer data)
+{
+  gchar *text = 0;
+  GString *gstring;
+
+  GtkTextBuffer *textbuffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW(data));
+  const struct variable *var = get_selected_variable (treeview);
+
+  gstring = g_string_sized_new (200);
+  text = name_to_string (var, NULL);
+  g_string_assign (gstring, text);
+  g_free (text);
+  g_string_append (gstring, "\n");
+
+
+  text = label_to_string (var, NULL);
+  g_string_append_printf (gstring, _("Label: %s\n"), text);
+  g_free (text);
+
+  {
+    const struct fmt_spec *fmt = var_get_print_format (var);
+    char buffer[FMT_STRING_LEN_MAX + 1];
+
+    fmt_to_string (fmt, buffer);
+    /* No conversion necessary.  buffer will always be ascii */
+    g_string_append_printf (gstring, _("Type: %s\n"), buffer);
+  }
+
+  text = missing_values_to_string (var, NULL);
+  g_string_append_printf (gstring, _("Missing Values: %s\n"),
+                         text);
+  g_free (text);
+
+  text = measure_to_string (var, NULL);
+  g_string_append_printf (gstring, _("Measurement Level: %s\n"),
+                         text);
+  g_free (text);
+
+
+
+  /* Value Labels */
+  if ( var_has_value_labels (var))
+    {
+      struct val_labs_iterator *vli = 0;
+      struct val_lab *vl;
+      const struct val_labs *labs = var_get_value_labels (var);
+
+      g_string_append (gstring, "\n");
+      g_string_append (gstring, _("Value Labels:\n"));
+
+#if 1
+      for (vl = val_labs_first_sorted (labs, &vli);
+          vl;
+          vl = val_labs_next (labs, &vli))
+       {
+         gchar *const vstr  =
+           value_to_text (vl->value,  *var_get_print_format (var));
+
+         text = pspp_locale_to_utf8 (vl->label, -1, NULL);
+
+         g_string_append_printf (gstring, _("%s %s\n"), vstr, text);
+
+         g_free (text);
+         g_free (vstr);
+       }
+#endif
+    }
+
+  gtk_text_buffer_set_text (textbuffer, gstring->str, gstring->len);
+
+  g_string_free (gstring, TRUE);
+}
+
+static gchar * generate_syntax (GtkTreeView *treeview);
+
+
+void
+variable_info_dialog (GObject *o, gpointer data)
+{
+  struct data_editor *de = data;
+
+  gint response ;
+
+  GladeXML *xml = XML_NEW ("psppire.glade");
+
+  GtkWidget *dialog = get_widget_assert (xml, "variable-info-dialog");
+  GtkWidget *treeview = get_widget_assert (xml, "treeview2");
+  GtkWidget *textview = get_widget_assert (xml, "textview1");
+
+  GtkSheet *var_sheet =
+    GTK_SHEET (get_widget_assert (de->xml, "variable_sheet"));
+
+
+  PsppireVarStore *vs = PSPPIRE_VAR_STORE (gtk_sheet_get_model (var_sheet));
+
+  gtk_window_set_transient_for (GTK_WINDOW (dialog), de->parent.window);
+
+  attach_dictionary_to_treeview (GTK_TREE_VIEW (treeview),
+                                vs->dict,
+                                GTK_SELECTION_SINGLE,
+                                NULL );
+
+
+  g_signal_connect (treeview, "cursor-changed", G_CALLBACK (populate_text),
+                   textview);
+
+
+  gtk_text_view_set_indent (GTK_TEXT_VIEW (textview), -5);
+
+  response = psppire_dialog_run (PSPPIRE_DIALOG (dialog));
+
+  switch (response)
+    {
+    case PSPPIRE_RESPONSE_GOTO:
+      {
+       gint row, col;
+       GtkNotebook *notebook = GTK_NOTEBOOK
+         (get_widget_assert (de->xml,"notebook"));
+
+       const struct variable *var =
+         get_selected_variable (GTK_TREE_VIEW (treeview));
+
+
+       if (PAGE_VAR_SHEET == gtk_notebook_get_current_page (notebook))
+         {
+           GtkSheet *var_sheet =
+             GTK_SHEET (get_widget_assert (de->xml, "variable_sheet"));
+
+           gtk_sheet_get_active_cell (var_sheet, &row, &col);
+           row = var_get_dict_index (var);
+           gtk_sheet_set_active_cell (var_sheet, row, col);
+         }
+       else
+         {
+           GtkSheet *data_sheet =
+             GTK_SHEET (get_widget_assert (de->xml, "data_sheet"));
+
+           gtk_sheet_get_active_cell (data_sheet, &row, &col);
+           col = var_get_dict_index (var);
+           gtk_sheet_set_active_cell (data_sheet, row, col);
+         }
+      }
+      break;
+    case PSPPIRE_RESPONSE_PASTE:
+      {
+       gchar *syntax = generate_syntax (GTK_TREE_VIEW (treeview));
+
+       struct syntax_editor *se =
+         (struct syntax_editor *) window_create (WINDOW_SYNTAX, NULL);
+
+       gtk_text_buffer_insert_at_cursor (se->buffer, syntax, -1);
+
+       g_free (syntax);
+      }
+      break;
+    default:
+      break;
+    }
+
+  g_object_unref (xml);
+
+}
+
+static gchar *
+generate_syntax (GtkTreeView *treeview)
+{
+  const struct variable *var = get_selected_variable (treeview);
+
+  if ( NULL == var)
+    return g_strdup ("");
+
+  return g_strdup (var_get_name (var));
+}
+
diff --git a/src/ui/gui/variable-info-dialog.h b/src/ui/gui/variable-info-dialog.h
new file mode 100644 (file)
index 0000000..b066c66
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+    PSPPIRE --- A Graphical User Interface for PSPP
+    Copyright (C) 2007  Free Software Foundation
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program 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 General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+    02110-1301, USA. */
+
+#ifndef __VARIABLE_DIALOG_H
+#define __VARIABLE_DIALOG_H
+
+
+#include <gtk/gtk.h>
+#include <glade/glade.h>
+
+void variable_info_dialog (GObject *o, gpointer data);
+
+#endif