2002-01-09 09:36:35 +00:00
|
|
|
// -*- C++ -*-
|
2003-08-23 00:17:00 +00:00
|
|
|
/**
|
|
|
|
* \file FuncStatus.h
|
|
|
|
* This file is part of LyX, the document processor.
|
|
|
|
* Licence details can be found in the file COPYING.
|
|
|
|
*
|
|
|
|
* \author Jean-Marc Lasgouttes
|
|
|
|
*
|
|
|
|
* Full author contact details are available in file CREDITS.
|
|
|
|
*/
|
|
|
|
|
2002-01-09 09:36:35 +00:00
|
|
|
#ifndef FUNC_STATUS_H
|
|
|
|
#define FUNC_STATUS_H
|
|
|
|
|
2006-09-11 08:54:10 +00:00
|
|
|
#include "support/docstring.h"
|
2004-11-25 09:15:26 +00:00
|
|
|
|
2006-10-21 00:16:43 +00:00
|
|
|
|
|
|
|
namespace lyx {
|
|
|
|
|
2002-01-09 09:36:35 +00:00
|
|
|
/// The status of a function.
|
|
|
|
|
|
|
|
class FuncStatus
|
|
|
|
{
|
|
|
|
private:
|
|
|
|
|
|
|
|
enum StatusCodes {
|
2005-04-21 09:27:40 +00:00
|
|
|
/// Command can be executed
|
2002-01-09 09:36:35 +00:00
|
|
|
OK = 0,
|
2005-04-21 13:03:45 +00:00
|
|
|
/// This command does not exist, possibly because it is not
|
|
|
|
/// compiled in (e.g. LFUN_THESAURUS) or the user mistyped
|
|
|
|
/// it in the minibuffer. UNKNOWN commands have no menu entry.
|
2002-01-09 09:36:35 +00:00
|
|
|
UNKNOWN = 1,
|
2005-04-21 09:27:40 +00:00
|
|
|
/// Command cannot be executed
|
|
|
|
DISABLED = 2,
|
|
|
|
/// Command is on (i. e. the menu item has a checkmark
|
|
|
|
/// and the toolbar icon is pushed).
|
|
|
|
/// Not all commands use this
|
2002-01-09 09:36:35 +00:00
|
|
|
ON = 4,
|
2005-04-21 09:27:40 +00:00
|
|
|
/// Command is off (i. e. the menu item has no checkmark
|
|
|
|
/// and the toolbar icon is not pushed).
|
|
|
|
/// Not all commands use this
|
2002-01-09 09:36:35 +00:00
|
|
|
OFF = 8
|
|
|
|
};
|
|
|
|
|
|
|
|
unsigned int v_;
|
|
|
|
|
2006-10-21 00:16:43 +00:00
|
|
|
docstring message_;
|
2004-11-25 09:15:26 +00:00
|
|
|
|
2002-01-09 09:36:35 +00:00
|
|
|
public:
|
|
|
|
///
|
|
|
|
FuncStatus();
|
2004-11-25 09:15:26 +00:00
|
|
|
///
|
2003-10-21 16:15:14 +00:00
|
|
|
void clear();
|
2002-01-09 09:36:35 +00:00
|
|
|
///
|
2003-10-21 16:15:14 +00:00
|
|
|
void operator|=(FuncStatus const & f);
|
2002-01-09 09:36:35 +00:00
|
|
|
///
|
2003-10-21 16:15:14 +00:00
|
|
|
void unknown(bool b);
|
2002-01-09 09:36:35 +00:00
|
|
|
///
|
|
|
|
bool unknown() const;
|
2002-03-21 17:27:08 +00:00
|
|
|
|
2002-01-09 09:36:35 +00:00
|
|
|
///
|
2008-05-29 15:14:00 +00:00
|
|
|
void setEnabled(bool b);
|
2005-04-21 09:27:40 +00:00
|
|
|
/// tells whether it can be invoked (otherwise it will be grayed-out).
|
2004-03-18 13:57:20 +00:00
|
|
|
bool enabled() const;
|
2002-01-09 09:36:35 +00:00
|
|
|
|
|
|
|
///
|
2003-10-21 16:15:14 +00:00
|
|
|
void setOnOff(bool b);
|
2005-04-21 09:27:40 +00:00
|
|
|
/// tells whether the menu item should have a check mark
|
|
|
|
/// (or the toolbar icon should be pushed).
|
2003-10-21 16:15:14 +00:00
|
|
|
bool onoff(bool b) const;
|
2004-11-25 09:15:26 +00:00
|
|
|
|
|
|
|
///
|
2006-10-21 00:16:43 +00:00
|
|
|
void message(docstring const & m);
|
2004-11-25 09:15:26 +00:00
|
|
|
///
|
2006-10-21 00:16:43 +00:00
|
|
|
docstring const & message() const;
|
2002-01-09 09:36:35 +00:00
|
|
|
};
|
|
|
|
|
2006-10-21 00:16:43 +00:00
|
|
|
|
|
|
|
} // namespace lyx
|
|
|
|
|
2002-01-09 09:36:35 +00:00
|
|
|
#endif
|