]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/xforms/FormTabular.h
use exclicit temp var
[lyx.git] / src / frontends / xforms / FormTabular.h
index c2f69e66ed8ca28942541e167be9ca3586b364b0..08002a16b1df8b86460f3a981471f8ff4af7bdc0 100644 (file)
@@ -5,10 +5,8 @@
  *           LyX, The Document Processor
  *      
  *         Copyright 1995 Matthias Ettrich
- *          Copyright 1995-2000 The LyX Team.
+ *          Copyright 1995-2001 The LyX Team.
  *
- *         This file copyright 1999-2000
- *         Allan Rae
  *======================================================*/
 /* FormTabular.h
  * FormTabular Interface Class
 #ifndef FORMTABULAR_H
 #define FORMTABULAR_H
 
-#include "DialogBase.h"
-#include "form_tabular.h"
-#ifdef SIGC_CXX_NAMESPACES
-using SigC::Connection;
+#include <boost/smart_ptr.hpp>
+
+#ifdef __GNUG__
+#pragma interface
 #endif
 
-class LyXView;
-class Dialogs;
+#include "FormInset.h"
+
 class InsetTabular;
+struct FD_form_tabular;
+struct FD_form_tabular_options;
+struct FD_form_column_options;
+struct FD_form_cell_options;
+struct FD_form_longtable_options;
 
 /** This class provides an XForms implementation of the FormTabular Dialog.
     The tabular dialog allows users to set/save their tabular.
  */
-class FormTabular : public DialogBase {
+class FormTabular : public FormInset {
 public:
-    /**@name Constructors and Destructors */
-    //@{
-    /// #FormTabular x(LyXFunc ..., Dialogs ...);#
-    FormTabular(LyXView *, Dialogs *);
-    ///
-    ~FormTabular();
-    //@}
-
-    /**@name Real per-instance Callback Methods */
-    //@{
-    static  int WMHideCB(FL_FORM *, void *);
-    static void CloseCB(FL_OBJECT *, long);
-    static void OKCB(FL_OBJECT *, long);
-    static void CancelCB(FL_OBJECT *, long);
-    static void ApplyCB(FL_OBJECT *, long);
-    static void InputCB(FL_OBJECT *, long);
-    //@}
+       /// #FormTabular x(LyXFunc ..., Dialogs ...);#
+       FormTabular(LyXView *, Dialogs *);
 
 private:
-    FormTabular() {}
-    FormTabular(FormTabular &) : DialogBase() {}
-    
-    /**@name Slot Methods */
-    //@{
-    /// Create the dialog if necessary, update it and display it.
-    void show();
-    void show_create();
-    void showInset(InsetTabular *);
-    /// Hide the dialog.
-    void hide();
-    void hide_create();
-    void hideInset(InsetTabular *);
-    /// Update the dialog.
-    void update();
-    void updateInset(InsetTabular *);
-    bool local_update(bool);
-    //@}
-    
-    /**@name Dialog internal methods */
-    //@{
-    /// Apply from dialog
-    void apply_create();
-    /// Build the dialog
-    void build();
-    ///
-    void SetTabularOptions(FL_OBJECT *, long);
-    ///
-    FD_form_tabular * build_tabular();
-    ///
-    FD_form_tabular_options * build_tabular_options();
-    ///
-    FD_form_column_options * build_column_options();
-    ///
-    FD_form_cell_options * build_cell_options();
-    ///
-    FD_form_longtable_options * build_longtable_options();
-    ///
-    FD_form_create_tabular * build_create_tabular();
-    ///
-    /// Explicitly free the dialog.
-    void free();
-    //@}
+       /// Pointer to the actual instantiation of the ButtonController.
+       virtual xformsBC & bc();
+       /** Redraw the form (on receipt of a Signal indicating, for example,
+           that the xforms colours have been re-mapped). */
+       virtual void redraw();
+       /// Disconnect signals. Also perform any necessary housekeeping.
+       virtual void disconnect();
+
+       /// Slot launching dialog to an existing inset
+       void showInset(InsetTabular *);
+       /// Slot launching dialog to an existing inset
+       void updateInset(InsetTabular *);
+       /// Update dialog before showing it
+       virtual void update();
+       /// Build the dialog
+       virtual void build();
+       /// Filter the inputs
+       virtual bool input(FL_OBJECT *, long);
+       /// Pointer to the actual instantiation of the xforms form
+       virtual FL_FORM * form() const;
+       ///
+       virtual int checkLongtableOptions(FL_OBJECT *, string &);
 
-    /**@name Private Data */
-    //@{
-    /// Real GUI implementation.
-    FD_form_tabular * dialog_;
-    ///
-    FD_form_tabular_options * tabular_options_;
-    ///
-    FD_form_column_options * column_options_;
-    ///
-    FD_form_cell_options * cell_options_;
-    ///
-    FD_form_longtable_options * longtable_options_;
-    ///
-    FD_form_create_tabular * create_tabular_;
-    ///
-    /// Which LyXView do we belong to?
-    LyXView * lv_;
-    Dialogs * d_;
-    /// Update connection.
-    Connection u_;
-    /// Hide connection.
-    Connection h_;
-    //@}
-    InsetTabular * inset_;
-    int actCell_;
+       /// Fdesign generated methods
+       FD_form_tabular * build_tabular();
+       ///
+       FD_form_tabular_options * build_tabular_options();
+       ///
+       FD_form_column_options * build_column_options();
+       ///
+       FD_form_cell_options * build_cell_options();
+       ///
+       FD_form_longtable_options * build_longtable_options();
+
+       /// Real GUI implementation.
+       boost::scoped_ptr<FD_form_tabular> dialog_;
+       ///
+       boost::scoped_ptr<FD_form_tabular_options> tabular_options_;
+       ///
+       boost::scoped_ptr<FD_form_column_options> column_options_;
+       ///
+       boost::scoped_ptr<FD_form_cell_options> cell_options_;
+       ///
+       boost::scoped_ptr<FD_form_longtable_options> longtable_options_;
+
+       /// pointer to the inset passed through showInset
+       InsetTabular * inset_;
+       ///
+       int actCell_;
+       /// The ButtonController
+       ButtonController<OkCancelReadOnlyPolicy, xformsBC> bc_;
+       /// if we are applying stuff during a close of the dialog
+       bool closing_;
 };
 
+
+inline
+xformsBC & FormTabular::bc()
+{
+       return bc_;
+}
 #endif