// -*- C++ -*-
-/* This file is part of
- * ======================================================
- *
- * LyX, The Document Processor
- *
- * Copyright (C) 2000 The LyX Team.
+/**
+ * \file FormDocument.h
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
*
- * @author Jürgen Vigna
+ * \author Jürgen Vigna
*
- *======================================================*/
+ * Full author contact details are available in file CREDITS.
+ */
#ifndef FORM_DOCUMENT_H
#define FORM_DOCUMENT_H
+#include "FormBase.h"
+#include "BranchList.h"
+
+#include <boost/scoped_ptr.hpp>
+
+#include "lyx_forms.h"
#include <vector>
-#include <boost/smart_ptr.hpp>
-#include "FormBaseDeprecated.h"
-#include "xformsBC.h"
-#ifdef __GNUG_
-#pragma interface
-#endif
+class ControlDocument;
-class LyXView;
-class Dialogs;
-class Combox;
class BufferParams;
-struct FD_form_tabbed_document;
-struct FD_form_doc_paper;
-struct FD_form_doc_class;
-struct FD_form_doc_language;
-struct FD_form_doc_options;
-struct FD_form_doc_bullet;
+class FormColorpicker;
+
+struct FD_document;
+struct FD_document_paper;
+struct FD_document_class;
+struct FD_document_language;
+struct FD_document_options;
+struct FD_document_bullet;
+struct FD_document_branch;
+
+namespace {
+
+enum GuiColors {
+ GUI_COLOR_CHOICE = FL_FREE_COL15
+};
-/** This class provides an XForms implementation of the FormDocument Popup.
- The table-layout-form here changes values for latex-tabulars
- @author Jürgen Vigna
+
+}
+
+
+/** This class provides an XForms implementation of the FormDocument dialog.
+ * The table-layout-form here changes values for latex-tabulars
*/
-class FormDocument : public FormBaseBD {
+class FormDocument : public FormCB<ControlDocument, FormDB<FD_document> > {
public:
- /// #FormDocument x(Communicator ..., Popups ...);#
- FormDocument(LyXView *, Dialogs *);
- ///
- static void ComboInputCB(int, void *, Combox *);
+ FormDocument();
private:
- ///
- enum State {
- ///
- INPUT,
- ///
- CHECKCHOICECLASS,
- ///
- CHOICEBULLETSIZE,
- ///
- INPUTBULLETLATEX,
- ///
- BULLETDEPTH1,
- ///
- BULLETDEPTH2,
- ///
- BULLETDEPTH3,
- ///
- BULLETDEPTH4,
- ///
- BULLETPANEL1,
- ///
- BULLETPANEL2,
- ///
- BULLETPANEL3,
- ///
- BULLETPANEL4,
- ///
- BULLETPANEL5,
- ///
- BULLETPANEL6,
- ///
- BULLETBMTABLE
- };
- /// 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();
/// Build the dialog
virtual void build();
/// Filter the inputs
- virtual bool input( FL_OBJECT *, long );
- /// Update the popup.
+ virtual ButtonPolicy::SMInput input( FL_OBJECT *, long);
+ /// Update the dialog.
virtual void update();
- /// Apply from popup
+ /// Apply from dialog
virtual void apply();
- /// Cancel from popup
- virtual void cancel();
///
- virtual FL_FORM * form() const;
-
- ///
- bool CheckDocumentInput(FL_OBJECT * ob, long);
+ void branch_input(FL_OBJECT *);
///
void ChoiceBulletSize(FL_OBJECT * ob, long);
///
void InputBulletLaTeX(FL_OBJECT * ob, long);
///
- void BulletDepth(FL_OBJECT * ob, State);
+ void BulletDepth(FL_OBJECT * ob);
///
- void BulletPanel(FL_OBJECT * ob, State);
+ void BulletPanel(FL_OBJECT * ob);
///
void BulletBMTable(FL_OBJECT * ob, long);
///
- void checkMarginValues();
- ///
void checkReadOnly();
///
- void CheckChoiceClass(FL_OBJECT * ob, long);
+ void CheckChoiceClass();
///
void UpdateLayoutDocument(BufferParams const & params);
+ ///
+ void UpdateClassParams(BufferParams const & params);
///
void paper_update(BufferParams const &);
void options_update(BufferParams const &);
///
void bullets_update(BufferParams const &);
-
- ///
- void paper_apply();
- ///
- bool class_apply();
- ///
- bool language_apply();
///
- bool options_apply();
- ///
- void bullets_apply();
+ void branch_update(BufferParams const &);
- /// Typedefinitions from the fdesign produced Header file
- FD_form_tabbed_document * build_tabbed_document();
///
- FD_form_doc_paper * build_doc_paper();
+ void paper_apply(BufferParams &);
+ ///
+ bool class_apply(BufferParams &);
///
- FD_form_doc_class * build_doc_class();
+ bool language_apply(BufferParams &);
///
- FD_form_doc_language * build_doc_language();
+ bool options_apply(BufferParams &);
///
- FD_form_doc_options * build_doc_options();
+ void bullets_apply(BufferParams &);
///
- FD_form_doc_bullet * build_doc_bullet();
+ void branch_apply(BufferParams &);
/// Real GUI implementation.
- boost::scoped_ptr<FD_form_tabbed_document> dialog_;
+ boost::scoped_ptr<FD_document_paper> paper_;
///
- boost::scoped_ptr<FD_form_doc_paper> paper_;
+ boost::scoped_ptr<FD_document_class> class_;
///
- boost::scoped_ptr<FD_form_doc_class> class_;
+ boost::scoped_ptr<FD_document_language> language_;
///
- boost::scoped_ptr<FD_form_doc_language> language_;
+ boost::scoped_ptr<FD_document_options> options_;
///
- boost::scoped_ptr<FD_form_doc_options> options_;
+ boost::scoped_ptr<FD_document_bullet> bullets_;
///
- boost::scoped_ptr<FD_form_doc_bullet> bullets_;
+ boost::scoped_ptr<FD_document_branch> branch_;
+ ///
+ boost::scoped_ptr<FormColorpicker> picker_;
///
int ActCell;
///
///
FL_OBJECT * fbullet;
///
- boost::scoped_ptr<Combox> combo_language;
- ///
- boost::scoped_ptr<Combox> combo_doc_class;
- /// The ButtonController
- ButtonController<NoRepeatedApplyReadOnlyPolicy, xformsBC> bc_;
+ std::vector<std::string> lang_;
+ /// Contains all legal branches for this doc
+ BranchList branchlist_;
};
-
-inline
-xformsBC & FormDocument::bc()
-{
- return bc_;
-}
-
#endif