Merge remote-tracking branch 'origin/sheet'
[pspp] / src / ui / gui / var-type-dialog.h
index 170d503162d8f0d4a2ff12f5752d5b77f34b04cb..ee9b7b2ac567fb005588ad4ec8f7ea3576ef1fa5 100644 (file)
@@ -1,5 +1,5 @@
 /* PSPPIRE - a graphical user interface for PSPP.
-   Copyright (C) 2005  Free Software Foundation
+   Copyright (C) 2005, 2011, 2012  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
    along with this program.  If not, see <http://www.gnu.org/licenses/>. */
 
 
-#ifndef __PSPPIRE_VAR_TYPE_DIALOG_H
-#define __PSPPIRE_VAR_TYPE_DIALOG_H
+#ifndef PSPPIRE_VAR_TYPE_DIALOG_H
+#define PSPPIRE_VAR_TYPE_DIALOG_H 1
 
+#include "data/format.h"
+#include "psppire-dialog.h"
+
+G_BEGIN_DECLS
+
+#define PSPPIRE_TYPE_VAR_TYPE_DIALOG             (psppire_var_type_dialog_get_type())
+#define PSPPIRE_VAR_TYPE_DIALOG(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj),PSPPIRE_TYPE_VAR_TYPE_DIALOG,PsppireVarTypeDialog))
+#define PSPPIRE_VAR_TYPE_DIALOG_CLASS(class)     (G_TYPE_CHECK_CLASS_CAST ((class),PSPPIRE_TYPE_VAR_TYPE_DIALOG,PsppireVarTypeDialogClass))
+#define PSPPIRE_IS_VAR_TYPE_DIALOG(obj)          (G_TYPE_CHECK_INSTANCE_TYPE ((obj),PSPPIRE_TYPE_VAR_TYPE_DIALOG))
+#define PSPPIRE_IS_VAR_TYPE_DIALOG_CLASS(class)  (G_TYPE_CHECK_CLASS_TYPE ((class),PSPPIRE_TYPE_VAR_TYPE_DIALOG))
+#define PSPPIRE_VAR_TYPE_DIALOG_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS ((obj),PSPPIRE_TYPE_VAR_TYPE_DIALOG,PsppireVarTypeDialogClass))
+
+typedef struct _PsppireVarTypeDialog      PsppireVarTypeDialog;
+typedef struct _PsppireVarTypeDialogClass PsppireVarTypeDialogClass;
 
 /*  This module describes the behaviour of the Variable Type dialog box,
     used for input of the variable type parameter in the var sheet */
 
-#include <data/format.h>
-
 enum
   {
     BUTTON_NUMERIC,
@@ -39,16 +51,13 @@ enum
 
 struct variable;
 
-typedef void (*variable_changed_func)(struct variable *var);
+struct _PsppireVarTypeDialog {
+  PsppireDialog parent;
 
-struct var_type_dialog
-{
-  GtkWidget *window;
+  /* Format being edited. */
+  struct fmt_spec base_format;
 
-  /* Variable to be updated */
-  struct variable *pv;
-
-  /* Local copy of format specifier */
+  /* Current version of format. */
   struct fmt_spec fmt_l;
 
   /* Toggle Buttons */
@@ -57,9 +66,11 @@ struct var_type_dialog
   /* Decimals */
   GtkWidget *label_decimals;
   GtkWidget *entry_decimals;
+  GtkAdjustment *adj_decimals;
 
   /* Width */
   GtkWidget *entry_width;
+  GtkAdjustment *adj_width;
 
   /* Container for width/decimals entry/labels */
   GtkWidget *width_decimals;
@@ -84,14 +95,16 @@ struct var_type_dialog
   gint active_button;
 };
 
+struct _PsppireVarTypeDialogClass {
+  PsppireDialogClass parent_class;
+};
 
-struct var_type_dialog * var_type_dialog_create (GladeXML *xml);
-
+GType psppire_var_type_dialog_get_type (void) G_GNUC_CONST;
+PsppireVarTypeDialog* psppire_var_type_dialog_new (const struct fmt_spec *);
 
-void var_type_dialog_set_variable (struct var_type_dialog *dialog,
-                                 variable_changed_func set_variable_changed,
-                                 struct variable *var);
+gint psppire_var_type_dialog_run (GtkWindow *parent_window,
+                                  struct fmt_spec *format);
 
-void var_type_dialog_show (struct var_type_dialog *dialog);
+G_END_DECLS
 
-#endif
+#endif /* PSPPIRE_VAR_TYPE_DIALOG_H */