diff options
Diffstat (limited to 'indra/newview/llappviewerlistener.h')
-rw-r--r-- | indra/newview/llappviewerlistener.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/indra/newview/llappviewerlistener.h b/indra/newview/llappviewerlistener.h new file mode 100644 index 0000000000..73227cb95a --- /dev/null +++ b/indra/newview/llappviewerlistener.h @@ -0,0 +1,37 @@ +/** + * @file llappviewerlistener.h + * @author Nat Goodspeed + * @date 2009-06-18 + * @brief Wrap subset of LLAppViewer API in event API + * + * $LicenseInfo:firstyear=2009&license=viewergpl$ + * Copyright (c) 2009, Linden Research, Inc. + * $/LicenseInfo$ + */ + +#if ! defined(LL_LLAPPVIEWERLISTENER_H) +#define LL_LLAPPVIEWERLISTENER_H + +#include "lleventdispatcher.h" +#include <boost/function.hpp> + +class LLAppViewer; +class LLSD; + +/// Listen on an LLEventPump with specified name for LLAppViewer request events. +class LLAppViewerListener: public LLDispatchListener +{ +public: + typedef boost::function<LLAppViewer*(void)> LLAppViewerGetter; + /// Specify the pump name on which to listen, and bind the LLAppViewer + /// instance to use (e.g. LLAppViewer::instance()). + LLAppViewerListener(const std::string& pumpname, const LLAppViewerGetter& getter); + +private: + void requestQuit(const LLSD& event); + void forceQuit(const LLSD& event); + + LLAppViewerGetter mAppViewerGetter; +}; + +#endif /* ! defined(LL_LLAPPVIEWERLISTENER_H) */ |