#ifndef FORM_DOCUMENT_H
#define FORM_DOCUMENT_H
-#include "DialogBase.h"
-#include "support/utility.hpp"
+#include "FormBase.h"
#include <vector>
#ifdef __GNUG_
class Dialogs;
class Combox;
class BufferParams;
-class PreferencesPolicy;
-template <class x> class ButtonController;
struct FD_form_tabbed_document;
struct FD_form_doc_paper;
struct FD_form_doc_options;
struct FD_form_doc_bullet;
-#ifdef SIGC_CXX_NAMESPACES
-using SigC::Connection;
-#endif
-
/** This class provides an XForms implementation of the FormDocument Popup.
The table-layout-form here changes values for latex-tabulars
+ @author Jürgen Vigna
*/
-class FormDocument : public DialogBase, public noncopyable {
+class FormDocument : public FormBaseBD {
public:
- /// #FormDocument x(Communicator ..., Popups ...);#
- FormDocument(LyXView *, Dialogs *);
- ///
- ~FormDocument();
- ///
- static int WMHideCB(FL_FORM *, void *);
- ///
- static void OKCB(FL_OBJECT *, long);
- ///
- static void ApplyCB(FL_OBJECT *, long);
- ///
- static void CancelCB(FL_OBJECT *, long);
- ///
- static void RestoreCB(FL_OBJECT *, long);
- ///
- static void InputCB(FL_OBJECT *, long);
- ///
- static void ChoiceClassCB(FL_OBJECT *, long);
- ///
- static void ChoiceBulletSizeCB(FL_OBJECT * ob, long);
- ///
- static void InputBulletLaTeXCB(FL_OBJECT * ob, long);
- ///
- static void BulletDepthCB(FL_OBJECT * ob, long);
- ///
- static void BulletPanelCB(FL_OBJECT * ob, long);
- ///
- static void BulletBMTableCB(FL_OBJECT * ob, long);
- ///
- enum EnumPopupStatus {
- ///
- POPUP_UNMODIFIED,
- ///
- POPUP_MODIFIED,
- ///
- POPUP_READONLY
- };
+ /// #FormDocument x(Communicator ..., Popups ...);#
+ FormDocument(LyXView *, Dialogs *);
+ ///
+ ~FormDocument();
+ ///
+ static void ComboInputCB(int, void *, Combox *);
private:
- ///
- void EnableDocumentLayout();
- ///
- void DisableDocumentLayout();
- ///
- bool CheckDocumentInput(FL_OBJECT * ob, long);
- ///
- void ChoiceBulletSize(FL_OBJECT * ob, long);
- ///
- void InputBulletLaTeX(FL_OBJECT * ob, long);
- ///
- void BulletDepth(FL_OBJECT * ob, long);
- ///
- void BulletPanel(FL_OBJECT * ob, long);
- ///
- void BulletBMTable(FL_OBJECT * ob, long);
- ///
- void checkMarginValues();
- ///
- void CheckChoiceClass(FL_OBJECT * ob, long);
- ///
- void UpdateLayoutDocument(BufferParams const & params);
+ ///
+ enum State {
+ ///
+ INPUT,
+ ///
+ CHECKCHOICECLASS,
+ ///
+ CHOICEBULLETSIZE,
+ ///
+ INPUTBULLETLATEX,
+ ///
+ BULLETDEPTH1,
+ ///
+ BULLETDEPTH2,
+ ///
+ BULLETDEPTH3,
+ ///
+ BULLETDEPTH4,
+ ///
+ BULLETPANEL1,
+ ///
+ BULLETPANEL2,
+ ///
+ BULLETPANEL3,
+ ///
+ BULLETPANEL4,
+ ///
+ BULLETPANEL5,
+ ///
+ BULLETPANEL6,
+ ///
+ BULLETBMTABLE
+ };
+ /** Redraw the form (on receipt of a Signal indicating, for example,
+ that the xform colours have been re-mapped). */
+ virtual void redraw();
+ /// Build the dialog
+ virtual void build();
+ /// Filter the inputs
+ virtual bool input( FL_OBJECT *, long );
+ /// Update the popup.
+ virtual void update();
+ /// Apply from popup
+ virtual void apply();
+ /// Cancel from popup
+ virtual void cancel();
+
+ ///
+ virtual FL_FORM * form() const;
+
+ ///
+ bool CheckDocumentInput(FL_OBJECT * ob, long);
+ ///
+ void ChoiceBulletSize(FL_OBJECT * ob, long);
+ ///
+ void InputBulletLaTeX(FL_OBJECT * ob, long);
+ ///
+ void BulletDepth(FL_OBJECT * ob, State);
+ ///
+ void BulletPanel(FL_OBJECT * ob, State);
+ ///
+ void BulletBMTable(FL_OBJECT * ob, long);
+ ///
+ void checkMarginValues();
+ ///
+ void checkReadOnly();
+ ///
+ void CheckChoiceClass(FL_OBJECT * ob, long);
+ ///
+ void UpdateLayoutDocument(BufferParams const & params);
+
+ ///
+ void paper_update(BufferParams const &);
+ ///
+ void class_update(BufferParams const &);
+ ///
+ void language_update(BufferParams const &);
+ ///
+ void options_update(BufferParams const &);
+ ///
+ void bullets_update(BufferParams const &);
- /// Create the popup if necessary, update it and display it.
- void show();
- /// Hide the popup.
- void hide();
- /// Update the popup.
- void update();
- ///
- void paper_update(BufferParams const &);
- ///
- void class_update(BufferParams const &);
- ///
- void language_update(BufferParams const &);
- ///
- void options_update(BufferParams const &);
- ///
- void bullets_update(BufferParams const &);
- /// Apply from popup
- void apply();
- ///
- void paper_apply();
- ///
- bool class_apply();
- ///
- bool language_apply();
- ///
- bool options_apply();
- ///
- void bullets_apply();
- /// Cancel from popup
- void cancel();
- /// Build the popup
- void build();
- /// Explicitly free the popup.
- void free();
+ ///
+ void paper_apply();
+ ///
+ bool class_apply();
+ ///
+ bool language_apply();
+ ///
+ bool options_apply();
+ ///
+ void bullets_apply();
- /// Typedefinitions from the fdesign produced Header file
- FD_form_tabbed_document * build_tabbed_document();
- ///
- FD_form_doc_paper * build_doc_paper();
- ///
- FD_form_doc_class * build_doc_class();
- ///
- FD_form_doc_language * build_doc_language();
- ///
- FD_form_doc_options * build_doc_options();
- ///
- FD_form_doc_bullet * build_doc_bullet();
+ /// Typedefinitions from the fdesign produced Header file
+ FD_form_tabbed_document * build_tabbed_document();
+ ///
+ FD_form_doc_paper * build_doc_paper();
+ ///
+ FD_form_doc_class * build_doc_class();
+ ///
+ FD_form_doc_language * build_doc_language();
+ ///
+ FD_form_doc_options * build_doc_options();
+ ///
+ FD_form_doc_bullet * build_doc_bullet();
- /// Real GUI implementation.
- FD_form_tabbed_document * dialog_;
- ///
- FD_form_doc_paper * paper_;
- ///
- FD_form_doc_class * class_;
- ///
- FD_form_doc_language * language_;
- ///
- FD_form_doc_options * options_;
- ///
- FD_form_doc_bullet * bullets_;
- /// Which LyXView do we belong to?
- LyXView * lv_;
- ///
- Dialogs * d_;
- /// Update connection.
- Connection u_;
- /// Hide connection.
- Connection h_;
- /// has form contents changed? Used to control OK/Apply
- EnumPopupStatus status;
- ///
- int ActCell;
- ///
- int Confirmed;
- ///
- int current_bullet_panel;
- ///
- int current_bullet_depth;
- ///
- FL_OBJECT * fbullet;
- ///
- Combox * combo_language;
- ///
- ButtonController<PreferencesPolicy> * bc_;
+ /// Real GUI implementation.
+ FD_form_tabbed_document * dialog_;
+ ///
+ FD_form_doc_paper * paper_;
+ ///
+ FD_form_doc_class * class_;
+ ///
+ FD_form_doc_language * language_;
+ ///
+ FD_form_doc_options * options_;
+ ///
+ FD_form_doc_bullet * bullets_;
+ ///
+ int ActCell;
+ ///
+ int Confirmed;
+ ///
+ int current_bullet_panel;
+ ///
+ int current_bullet_depth;
+ ///
+ FL_OBJECT * fbullet;
+ ///
+ Combox * combo_language;
+ ///
+ Combox * combo_doc_class;
};
#endif