diff options
Diffstat (limited to 'indra/newview/llconfirmationmanager.h')
-rw-r--r-- | indra/newview/llconfirmationmanager.h | 106 |
1 files changed, 53 insertions, 53 deletions
diff --git a/indra/newview/llconfirmationmanager.h b/indra/newview/llconfirmationmanager.h index d791a8b41a..10a72a5102 100644 --- a/indra/newview/llconfirmationmanager.h +++ b/indra/newview/llconfirmationmanager.h @@ -1,25 +1,25 @@ -/** +/** * @file llconfirmationmanager.h * @brief LLConfirmationManager class definition * * $LicenseInfo:firstyear=2006&license=viewerlgpl$ * Second Life Viewer Source Code * Copyright (C) 2010, Linden Research, Inc. - * + * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; * version 2.1 of the License only. - * + * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * + * * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA * $/LicenseInfo$ */ @@ -30,56 +30,56 @@ class LLConfirmationManager { public: - class ListenerBase - { - public: - virtual ~ListenerBase(); - virtual void confirmed(const std::string& password) = 0; - }; + class ListenerBase + { + public: + virtual ~ListenerBase(); + virtual void confirmed(const std::string& password) = 0; + }; + + enum Type { TYPE_NONE, TYPE_CLICK, TYPE_PASSWORD }; + + static void confirm(Type type, + const std::string& purchase, ListenerBase* listener); + static void confirm(const std::string& type, + const std::string& purchase, ListenerBase* listener); + // note: these take control of, and delete the listener when done + + template <class T> + class Listener : public ListenerBase + { + public: + typedef void (T::*ConfirmationMemberFunction)(const std::string&); + + Listener(T& object, ConfirmationMemberFunction function) + : mObject(object), mFunction(function) + { } + + void confirmed(const std::string& password) + { + (mObject.*mFunction)(password); + } - enum Type { TYPE_NONE, TYPE_CLICK, TYPE_PASSWORD }; - - static void confirm(Type type, - const std::string& purchase, ListenerBase* listener); - static void confirm(const std::string& type, - const std::string& purchase, ListenerBase* listener); - // note: these take control of, and delete the listener when done + private: + T& mObject; + ConfirmationMemberFunction mFunction; + }; - template <class T> - class Listener : public ListenerBase - { - public: - typedef void (T::*ConfirmationMemberFunction)(const std::string&); - - Listener(T& object, ConfirmationMemberFunction function) - : mObject(object), mFunction(function) - { } - - void confirmed(const std::string& password) - { - (mObject.*mFunction)(password); - } - - private: - T& mObject; - ConfirmationMemberFunction mFunction; - }; + template <class T> + static void confirm(Type type, + const std::string& action, + T& obj, void(T::*func)(const std::string&)) + { + confirm(type, action, new Listener<T>(obj, func)); + } - template <class T> - static void confirm(Type type, - const std::string& action, - T& obj, void(T::*func)(const std::string&)) - { - confirm(type, action, new Listener<T>(obj, func)); - } - - template <class T> - static void confirm(const std::string& type, - const std::string& action, - T& obj, void(T::*func)(const std::string&)) - { - confirm(type, action, new Listener<T>(obj, func)); - } + template <class T> + static void confirm(const std::string& type, + const std::string& action, + T& obj, void(T::*func)(const std::string&)) + { + confirm(type, action, new Listener<T>(obj, func)); + } }; -#endif +#endif |