]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/GuiTabular.h
If we are in a closeEvent, we don't want to close all buffers, because these may...
[lyx.git] / src / frontends / qt4 / GuiTabular.h
index d9bcc9abe25d429ce51be56e4a4e14135f6f875c..158a0ad6f1434842904c5f32203a4fde510f7773 100644 (file)
@@ -6,8 +6,8 @@
  *
  * \author John Levon
  * \author Kalle Dalheimer
- * \author Jürgen Spitzmüller
- * \author Herbert Voß
+ * \author Jürgen Spitzmüller
+ * \author Herbert Voß
  *
  * Full author contact details are available in file CREDITS.
  */
 #ifndef GUITABULAR_H
 #define GUITABULAR_H
 
-#include "GuiDialogView.h"
-#include "ControlTabular.h"
+#include "GuiDialog.h"
 #include "ui_TabularUi.h"
-
-#include <QDialog>
+#include "insets/InsetTabular.h"
 
 namespace lyx {
 namespace frontend {
 
-class GuiTabular;
-
-class GuiTabularDialog : public QDialog, public Ui::TabularUi
+class GuiTabular : public GuiDialog, public Ui::TabularUi
 {
        Q_OBJECT
+
 public:
-       GuiTabularDialog(GuiTabular * form);
-
-protected Q_SLOTS:
-       virtual void change_adaptor();
-
-       virtual void topspace_changed();
-       virtual void bottomspace_changed();
-       virtual void interlinespace_changed();
-       virtual void booktabsChanged(bool);
-       virtual void close_clicked();
-       virtual void borderSet_clicked();
-       virtual void borderUnset_clicked();
-       virtual void leftBorder_changed();
-       virtual void rightBorder_changed();
-       virtual void topBorder_changed();
-       virtual void bottomBorder_changed();
-       virtual void multicolumn_clicked();
-       virtual void rotateTabular();
-       virtual void rotateCell();
-       virtual void hAlign_changed(int align);
-       virtual void vAlign_changed(int align);
-       virtual void specialAlignment_changed();
-       virtual void width_changed();
-       virtual void longTabular();
-       virtual void ltNewpage_clicked();
-       virtual void ltHeaderStatus_clicked();
-       virtual void ltHeaderBorderAbove_clicked();
-       virtual void ltHeaderBorderBelow_clicked();
-       virtual void ltFirstHeaderStatus_clicked();
-       virtual void ltFirstHeaderBorderAbove_clicked();
-       virtual void ltFirstHeaderBorderBelow_clicked();
-       virtual void ltFirstHeaderEmpty_clicked();
-       virtual void ltFooterStatus_clicked();
-       virtual void ltFooterBorderAbove_clicked();
-       virtual void ltFooterBorderBelow_clicked();
-       virtual void ltLastFooterStatus_clicked();
-       virtual void ltLastFooterBorderAbove_clicked();
-       virtual void ltLastFooterBorderBelow_clicked();
-       virtual void ltLastFooterEmpty_clicked();
-
-protected:
-       virtual void closeEvent(QCloseEvent * e);
+       GuiTabular(GuiView & lv);
+       ~GuiTabular();
+
+private Q_SLOTS:
+       void change_adaptor();
+
+       void topspace_changed();
+       void bottomspace_changed();
+       void interlinespace_changed();
+       void booktabsChanged(bool);
+       void close_clicked();
+       void borderSet_clicked();
+       void borderUnset_clicked();
+       void leftBorder_changed();
+       void rightBorder_changed();
+       void topBorder_changed();
+       void bottomBorder_changed();
+       void multicolumn_clicked();
+       void rotateTabular();
+       void rotateCell();
+       void hAlign_changed(int align);
+       void vAlign_changed(int align);
+       void tableAlignment_changed(int align);
+       void specialAlignment_changed();
+       void width_changed();
+       void longTabular();
+       void ltNewpage_clicked();
+       void ltHeaderStatus_clicked();
+       void ltHeaderBorderAbove_clicked();
+       void ltHeaderBorderBelow_clicked();
+       void ltFirstHeaderStatus_clicked();
+       void ltFirstHeaderBorderAbove_clicked();
+       void ltFirstHeaderBorderBelow_clicked();
+       void ltFirstHeaderEmpty_clicked();
+       void ltFooterStatus_clicked();
+       void ltFooterBorderAbove_clicked();
+       void ltFooterBorderBelow_clicked();
+       void ltLastFooterStatus_clicked();
+       void ltLastFooterBorderAbove_clicked();
+       void ltLastFooterBorderBelow_clicked();
+       void ltLastFooterEmpty_clicked();
+       void ltAlignment_clicked();
+       void on_captionStatusCB_toggled();
 
 private:
-       GuiTabular * form_;
-};
+       ///
+       bool isValid() { return true; }
+       /// update borders
+       void update_borders();
+       /// update
+       void updateContents();
+       /// save some values before closing the gui
+       void closeGUI();
+       ///
+       bool initialiseParams(std::string const & data);
+       /// clean-up on hide.
+       void clearParams();
+       /// We use set() instead.
+       void dispatchParams() {};
+       ///
+       bool isBufferDependent() const { return true; }
+       ///
+       FuncCode getLfun() const { return LFUN_TABULAR_FEATURE; }
 
+       ///
+       Tabular::idx_type getActiveCell() const;
+       /// set a parameter
+       void set(Tabular::Feature, std::string const & arg = std::string());
 
-class GuiTabular : public GuiView<GuiTabularDialog> 
-{
-public:
-       friend class GuiTabularDialog;
+       void setSpecial(std::string const & special);
 
-       GuiTabular(Dialog &);
+       void setWidth(std::string const & width);
 
-       /// parent controller
-       ControlTabular & controller()
-       { return static_cast<ControlTabular &>(this->getController()); }
-       /// parent controller
-       ControlTabular const & controller() const
-       { return static_cast<ControlTabular const &>(this->getController()); }
-protected:
-       virtual bool isValid();
+       void toggleMultiColumn();
 
-private:
-       /// We can't use this ...
-       virtual void apply() {}
-       /// update borders
-       virtual void update_borders();
-       /// update
-       virtual void update_contents();
-       /// build the dialog
-       virtual void build_dialog();
-       /// save some values before closing the gui
-       virtual void closeGUI();
+       void rotateTabular(bool yes);
+       void rotateCell(bool yes);
+
+       enum HALIGN { LEFT, RIGHT, CENTER, BLOCK };
+
+       void halign(HALIGN h);
+
+       enum VALIGN { TOP, MIDDLE, BOTTOM };
+
+       void valign(VALIGN h);
+
+       void booktabs(bool yes);
+
+       void longTabular(bool yes);
+
+       bool funcEnabled(Tabular::Feature f) const;
+
+       ///
+       Tabular::idx_type active_cell_;
+       ///
+       Tabular tabular_;
 };
 
 } // namespace frontend