]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/xforms/FormCitation.h
remove defaults stuff, let Qt handle no toolbar
[lyx.git] / src / frontends / xforms / FormCitation.h
index 7d55579d43d49e57bd3f48f821ab280842b15d2e..7d58e12d726fc903119fade3302facb64a7f62b8 100644 (file)
 // -*- C++ -*-
-/* This file is part of
- * ====================================================== 
+/**
+ * \file FormCitation.h
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
  *
- *           LyX, The Document Processor
+ * \author Angus Leeming
  *
- *           Copyright 2000 The LyX Team.
- *
- * ======================================================
+ * Full author contact details are available in file CREDITS
  */
 
 #ifndef FORMCITATION_H
 #define FORMCITATION_H
 
-#include "DialogBase.h"
-#include "LString.h"
-#include <vector>
-#include "form_citation.h"
 
-class Dialogs;
-// same arguement as in Dialogs.h s/LyX/UI/
-class LyXView;
-class InsetCitation;
+#include "FormDialogView.h"
+#include "biblio.h"
 
-/** This class provides an XForms implementation of the FormCitation Dialog.
+/** This class provides an XForms implementation of the Citation Dialog.
  */
-class FormCitation : public DialogBase {
+class ControlCitation;
+struct FD_citation;
+
+class FormCitation : public FormController<ControlCitation, FormView<FD_citation> > {
 public:
+       ///
+       FormCitation(Dialog &);
+private:
        ///
        enum State {
-               DOWN,
-               UP,
-               DELETE,
-               ADD,
-               BIBBRSR,
-               CITEBRSR,
+               ///
                ON,
+               ///
                OFF
        };
-       /**@name Constructors and Destructors */
-       //@{
-       /// #FormCitation x(LyXFunc ..., Dialogs ...);#
-       FormCitation(LyXView *, Dialogs *);
-       ///
-       ~FormCitation();
-       //@}
 
-       /**@name Real per-instance Callback Methods */
-       //@{
-       static  int WMHideCB(FL_FORM *, void *);
-       static void OKCB(FL_OBJECT *, long);
-       static void CancelCB(FL_OBJECT *, long);
-       static void InputCB(FL_OBJECT *, long);
-       //@}
-
-private:
-       FormCitation() {}
-       FormCitation(FormCitation &) : DialogBase() {}
-       
-       /**@name Slot Methods */
-       //@{
-       /// Create the dialog if necessary, update it and display it.
-       void createInset( string const & );
-       /// 
-       void showInset( InsetCitation * );
-       /// 
-       void show();
+       /// Set the Params variable for the Controller.
+       virtual void apply();
+       /// Build the dialog.
+       virtual void build();
        /// Hide the dialog.
-       void hide();
-       /// Not used but we've got to implement it.
-       void update();
-       //@}
+       virtual void hide();
+       /// Update dialog before/whilst showing it.
+       virtual void update();
+       /// Filter the inputs on callback from xforms
+       virtual ButtonPolicy::SMInput input(FL_OBJECT *, long);
 
-       /**@name Dialog internal methods */
-       //@{
-       /// Apply from dialog
-       void apply();
-       /// Filter the inputs
-       void input( State );
-       /// Build the dialog
-       void build();
-       ///
-       void updateCitekeys( string const & );
-       ///
-       void updateBrowser( FL_OBJECT *, std::vector<string> const & ) const;
-       ///
-       void setBibButtons( State ) const;
-       ///
-       void setCiteButtons( State ) const;
-       ///
-       void setSize( int, bool ) const;
-       ///
-       FD_form_citation * build_citation();
-       /// Explicitly free the dialog.
-       void free();
-       //@}
+       /// search for a citation
+       void findBiblio(biblio::Direction const dir);
 
-       /**@name Private Data */
-       //@{
-       /// Real GUI implementation.
-       FD_form_citation * dialog_;
-       /** Which LyXFunc do we use?
-           We could modify Dialogs to have a visible LyXFunc* instead and
-           save a couple of bytes per dialog.
-       */
-       LyXView * lv_;
-       /** Which Dialogs do we belong to?
-           Used so we can get at the signals we have to connect to.
-       */
-       Dialogs * d_;
-       /// Update connection.
-       Connection u_;
-       /// Hide connection.
-       Connection h_;
        ///
-       InsetCitation * inset_;
+       void updateBrowser(FL_OBJECT *, std::vector<string> const &) const;
        ///
-       bool dialogIsOpen;
-       ///
-       string textAfter;
+       void setBibButtons(State) const;
        ///
+       void setCiteButtons(State) const;
+
+       /// used keys (left panel)
        std::vector<string> citekeys;
-       ///
+       /// available keys (right panel)
        std::vector<string> bibkeys;
-       ///
-       std::vector<string> bibkeysInfo;
-       //@}
 };
 
-#endif
+#endif // FORMCITATION_H