psppire-delimited-text: Clear entire 'cache_starts' buffer.
[pspp] / src / ui / gui / psppire-dialog-action.h
index c0bab64e86e22200c73dcbba17da0fc7dfeb7223..8f79acc4c0dedd9dbec693543c5f1a60ded6dbd9 100644 (file)
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>. */
 
-/* 
-   This is a an abstract base class, deriving from GtkAction.
+/*
+   This is a an abstract base class, which implements GAction.
    It's purpose is to abstract the way in which dialog boxes behave.
-   That is, this action will fire whenever a dialog box is to be 
+   That is, this action will fire whenever a dialog box is to be
    popped up.
-   
-   Additionally, most dialog boxes generate syntax to 
+
+   Additionally, most dialog boxes generate syntax to
    be run by the pspp back-end.  This provides an abstraction
    to do that.  The programmer needs only to provide the function
    to generate the syntax.  This base class looks after the rest.
@@ -67,35 +67,42 @@ typedef struct _PsppireDialogActionClass  PsppireDialogActionClass;
 
 struct _PsppireDialogAction
 {
-  GtkAction parent;
+  GObject parent;
 
   /*< private >*/
-  GtkUIManager *uim;
-
+  GVariantType *parameter_type;
   GtkWidget *source;
   GtkWidget *dialog;
 
   GtkWidget *toplevel;
   PsppireDict *dict;
+
+  gboolean activated;
 };
 
 struct _PsppireDialogActionClass
 {
-  GtkActionClass parent_class;
-  void   (*activate) (PsppireDialogAction *);
-  char * (*generate_syntax) (PsppireDialogAction *);
+  GObjectClass parent_class;
+  GtkBuilder * (*initial_activate) (PsppireDialogAction *, GVariant *);
+  void   (*activate) (PsppireDialogAction *, GVariant *);
+  char * (*generate_syntax) (const PsppireDialogAction *);
 };
 
 GType psppire_dialog_action_get_type (void) ;
 
 typedef void (*PsppireDialogActionRefresh) (PsppireDialogAction *) ;
 
-void psppire_dialog_action_set_refresh (PsppireDialogAction *pda, 
+void psppire_dialog_action_set_refresh (PsppireDialogAction *pda,
                                        PsppireDialogActionRefresh refresh);
 
-void psppire_dialog_action_set_valid_predicate (PsppireDialogAction *act, 
+void psppire_dialog_action_set_valid_predicate (PsppireDialogAction *act,
                                                ContentsAreValid dialog_state_valid);
 
+GtkBuilder * psppire_dialog_action_get_xml (PsppireDialogAction *da);
+
+
+void psppire_dialog_action_activate_null (PsppireDialogAction *act);
+
 G_END_DECLS
 
 #endif /* __PSPPIRE_DIALOG_ACTION_H__ */