X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fxforms%2FFormDocument.h;h=429d036e796c9bda8e74cbcdba8b2ef5f34322f3;hb=d5443737342903de489d527802cd2cdd38987d74;hp=323b2ebc1b2aff6fb4c621de46065fc1eb85cacd;hpb=5f3c7736a28b13d30eb0bfc2bd7661f091a7d606;p=lyx.git diff --git a/src/frontends/xforms/FormDocument.h b/src/frontends/xforms/FormDocument.h index 323b2ebc1b..429d036e79 100644 --- a/src/frontends/xforms/FormDocument.h +++ b/src/frontends/xforms/FormDocument.h @@ -1,193 +1,141 @@ // -*- 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 "DialogBase.h" -#include "support/utility.hpp" -#include +#include "FormDialogView.h" +#include "BranchList.h" -#ifdef __GNUG_ -#pragma interface -#endif +#include + +#include "lyx_forms.h" +#include -class LyXView; -class Dialogs; -class Combox; class BufferParams; -class NoRepeatedApplyReadOnlyPolicy; -template class ButtonController; -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; +namespace lyx { +namespace frontend { -#ifdef SIGC_CXX_NAMESPACES -using SigC::Connection; -#endif +class ControlDocument; +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; -/** This class provides an XForms implementation of the FormDocument Popup. - The table-layout-form here changes values for latex-tabulars +/** This class provides an XForms implementation of the FormDocument dialog. + * The table-layout-form here changes values for latex-tabulars */ -class FormDocument : public DialogBase, public noncopyable { +class FormDocument + : public FormController > { 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(Dialog &); private: - /// - 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 checkReadOnly(); - /// - void CheckChoiceClass(FL_OBJECT * ob, long); - /// - void UpdateLayoutDocument(BufferParams const & params); + /** 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 ButtonPolicy::SMInput input( FL_OBJECT *, long); + /// Update the dialog. + virtual void update(); + /// Apply from dialog + virtual void apply(); + + /// + void branch_input(FL_OBJECT *); + /// + void ChoiceBulletSize(FL_OBJECT * ob, long); + /// + void InputBulletLaTeX(FL_OBJECT * ob, long); + /// + void BulletDepth(FL_OBJECT * ob); + /// + void BulletPanel(FL_OBJECT * ob); + /// + void BulletBMTable(FL_OBJECT * ob, long); + /// + void checkReadOnly(); + /// + void CheckChoiceClass(); + /// + void UpdateLayoutDocument(BufferParams const & params); + /// + void UpdateClassParams(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 &); + /// + void branch_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(BufferParams &); + /// + bool class_apply(BufferParams &); + /// + bool language_apply(BufferParams &); + /// + void options_apply(BufferParams &); + /// + void bullets_apply(BufferParams &); + /// + void branch_apply(BufferParams &); - /// 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(); + void rebuild_all_branches_browser(); + void rebuild_selected_branches_browser(); - /// 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 * bc_; + /// Real GUI implementation. + boost::scoped_ptr paper_; + /// + boost::scoped_ptr class_; + /// + boost::scoped_ptr language_; + /// + boost::scoped_ptr options_; + /// + boost::scoped_ptr bullets_; + /// + boost::scoped_ptr branch_; + /// + boost::scoped_ptr picker_; + /// + int ActCell; + /// + int Confirmed; + /// + int current_bullet_panel; + /// + int current_bullet_depth; + /// + FL_OBJECT * fbullet; + /// + std::vector lang_; + /// Contains all legal branches for this doc + BranchList branchlist_; }; +} // namespace frontend +} // namespace lyx + #endif