3 * \file ControlCommand.h
4 * This file is part of LyX, the document processor.
5 * Licence details can be found in the file COPYING.
7 * \author Angus Leeming
9 * Full author contact details are available in file CREDITS.
11 * ControlCommand is a controller class for dialogs that create or modify
12 * an inset derived from InsetCommand.
15 #ifndef CONTROLCOMMAND_H
16 #define CONTROLCOMMAND_H
20 #include "insets/insetcommandparams.h"
25 class ControlCommand : public Dialog::Controller {
27 /** LFUN_INSET_APPLY requires a name, "citation", "ref" etc so that
28 it knows what to do with the rest of the contents.
29 An empty name indicates that no action will occur on 'Apply'.
31 ControlCommand(Dialog &, std::string const & lfun_name = std::string());
33 InsetCommandParams & params() { return params_; }
35 InsetCommandParams const & params() const { return params_; }
37 virtual bool initialiseParams(std::string const & data);
39 virtual void clearParams();
41 virtual void dispatchParams();
43 virtual bool isBufferDependent() const { return true; }
47 InsetCommandParams params_;
48 /// Flags what action is taken by Kernel::dispatch()
49 std::string const lfun_name_;
52 } // namespace frontend
55 #endif // CONTROLCOMMAND_H