// -*- C++ -*- /** * \file ProgressInterface.h * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * * \author Peter Kümmel * * Full author contact details are available in file CREDITS. */ #ifndef LYX_SUPPORT_PROGRESSINTERFACE_H #define LYX_SUPPORT_PROGRESSINTERFACE_H #include "support/strfwd.h" class QString; namespace lyx { namespace support { class ProgressInterface { public: virtual ~ProgressInterface() {} /// will be Signals in Qt classes virtual void processStarted(QString const &) = 0; virtual void processFinished(QString const &) = 0; virtual void appendMessage(QString const &) = 0; virtual void appendError(QString const &) = 0; virtual void clearMessages() = 0; virtual void lyxerrFlush() = 0; /// Alert interface virtual void warning(QString const & title, QString const & message) = 0; virtual void toggleWarning(QString const & title, QString const & msg, QString const & formatted) = 0; virtual void error(QString const & title, QString const & message, QString const & details) = 0; virtual void information(QString const & title, QString const & message) = 0; virtual int prompt(docstring const & title, docstring const & question, int default_button, int cancel_button, docstring const & b1, docstring const & b2) = 0; virtual void lyxerrConnect() = 0; virtual void lyxerrDisconnect() = 0; static void setInstance(ProgressInterface*); static ProgressInterface* instance(); protected: ProgressInterface() {} }; } // namespace support } // namespace lyx #endif // LYX_SUPPORT_PROGRESSINTERFACE_H