sbDOMEventListenerCallback.h
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* vim: set sw=2 :miv */
3 /*
4  *=BEGIN SONGBIRD GPL
5  *
6  * This file is part of the Songbird web player.
7  *
8  * Copyright(c) 2005-2010 POTI, Inc.
9  * http://www.songbirdnest.com
10  *
11  * This file may be licensed under the terms of of the
12  * GNU General Public License Version 2 (the ``GPL'').
13  *
14  * Software distributed under the License is distributed
15  * on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either
16  * express or implied. See the GPL for the specific language
17  * governing rights and limitations.
18  *
19  * You should have received a copy of the GPL along with this
20  * program. If not, go to http://www.gnu.org/licenses/gpl.html
21  * or write to the Free Software Foundation, Inc.,
22  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
23  *
24  *=END SONGBIRD GPL
25  */
26 
27 #ifndef SBDOMEVENTLISTENERSCALLBACK_H__
28 #define SBDOMEVENTLISTENERSCALLBACK_H__
29 
30 #include <nsIDOMEventListener.h>
31 
37 {
38 public:
39 
41 
42 protected:
44 };
45 
48 
62 template <class O, class F, class T>
64 {
65 public:
66  NS_DECL_NSIDOMEVENTLISTENER
67 
68  sbDOMEventListenerCallbackObj(O * aObject, F aFunc, T aContext);
69 private:
70  nsRefPtr<O> mObject;
71  T mContext;
72  F mFunction;
73 };
74 
75 template <class O, class F, class T>
76 inline
78  O * aObject,
79  F aFunction,
80  T aContext) :
81  mObject(aObject),
82  mContext(aContext),
83  mFunction(aFunction)
84 {
85 }
86 
87 template <class O, class F, class T>
88 NS_IMETHODIMP
90 {
91  // Function variables.
92  nsresult rv;
93 
94  // Dispatch to the on response function.
95  rv = (mObject.get()->*mFunction)(static_cast<nsIDOMEventListener *>(this),
96  mContext,
97  event);
98  NS_ENSURE_SUCCESS(rv, rv);
99 
100  return NS_OK;
101 }
102 
107 template <class O, class F, class T>
108 inline
110  F aFunc,
111  T aContext)
112 {
113  return new sbDOMEventListenerCallbackObj<O, F, T>(aObject, aFunc, aContext);
114 }
115 #endif /* __SB_VARIANT_UTILS_H__ */
116 
return NS_OK
#define F(a)
var event
sbDOMEventListenerCallbackObj< O, F, T > * sbDOMEventListenerCallback(O *aObject, F aFunc, T aContext)
NS_DECL_NSIDOMEVENTLISTENER sbDOMEventListenerCallbackObj(O *aObject, F aFunc, T aContext)
NS_IMPL_THREADSAFE_ISUPPORTS1(sbDOMEventListenerCallbackObjBase, nsIDOMEventListener)
nsIDOMEventListener