sbScriptableFilter.h
Go to the documentation of this file.
1 /*
2 //
3 // BEGIN SONGBIRD GPL
4 //
5 // This file is part of the Songbird web player.
6 //
7 // Copyright(c) 2005-2008 POTI, Inc.
8 // http://songbirdnest.com
9 //
10 // This file may be licensed under the terms of of the
11 // GNU General Public License Version 2 (the "GPL").
12 //
13 // Software distributed under the License is distributed
14 // on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either
15 // express or implied. See the GPL for the specific language
16 // governing rights and limitations.
17 //
18 // You should have received a copy of the GPL along with this
19 // program. If not, go to http://www.gnu.org/licenses/gpl.html
20 // or write to the Free Software Foundation, Inc.,
21 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
22 //
23 // END SONGBIRD GPL
24 //
25  */
26 
27 #ifndef __SB_SCRIPTABLE_FILTER_H__
28 #define __SB_SCRIPTABLE_FILTER_H__
29 
30 #include "sbXPCScriptableStub.h"
31 
32 #include <nsAutoPtr.h>
33 #include <nsCOMPtr.h>
34 #include <nsIClassInfo.h>
35 #include <nsISecurityCheckedComponent.h>
36 #include <nsIStringEnumerator.h>
37 #include <nsVoidArray.h>
38 
41 class sbIProperty;
42 class sbRemotePlayer;
43 
49  public nsIStringEnumerator,
50  public nsIClassInfo,
51  public sbXPCScriptableStub
52 {
53 public:
55  NS_DECL_NSICLASSINFO
56  NS_DECL_NSISECURITYCHECKEDCOMPONENT
57  NS_DECL_NSISTRINGENUMERATOR
58 
59  /* nsIXPCScriptable */
60  NS_IMETHOD GetClassName(char * *aClassName);
61  NS_IMETHOD GetScriptableFlags(PRUint32 *aScriptableFlags);
62  NS_IMETHOD GetProperty(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, jsval id, jsval * vp, PRBool *_retval);
63  NS_IMETHOD NewEnumerate(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, PRUint32 enum_op, jsval * statep, jsid *idp, PRBool *_retval);
64  NS_IMETHOD NewResolve(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, jsval id, PRUint32 flags, JSObject * *objp, PRBool *_retval);
65 
67  const nsAString &aPropertyName,
68  sbRemotePlayer* aPlayer);
69 
74  nsresult AppendProperty( const nsAString &aName,
75  const nsAString &aValue );
76 
77 
78 private:
80 
81 protected:
83 
84 protected:
85  // iterator over the enumerator and fill out the list
86  nsresult ReadEnumerator();
87 
88 protected:
89  nsCOMPtr<sbIFilterableMediaListView> mListView;
90  nsString mPropertyName;
91  nsStringArray mStrings;
93  PRBool mHasProps;
94  nsRefPtr<sbRemotePlayer> mPlayer;
95 };
96 
97 #endif // __SB_SCRIPTABLE_LIST_FILTER_H__
NS_IMETHOD NewEnumerate(nsIXPConnectWrappedNative *wrapper, JSContext *cx, JSObject *obj, PRUint32 enum_op, jsval *statep, jsid *idp, PRBool *_retval)
onPageChanged aValue
Definition: FeedWriter.js:1395
nsCOMPtr< sbIFilterableMediaListView > mListView
sbDeviceFirmwareAutoCheckForUpdate prototype flags
nsRefPtr< sbRemotePlayer > mPlayer
nsISecurityCheckedComponent
NS_IMETHOD GetProperty(nsIXPConnectWrappedNative *wrapper, JSContext *cx, JSObject *obj, jsval id, jsval *vp, PRBool *_retval)
NS_IMETHOD NewResolve(nsIXPConnectWrappedNative *wrapper, JSContext *cx, JSObject *obj, jsval id, PRUint32 flags, JSObject **objp, PRBool *_retval)
Control the filter settings on a media list.
NS_DECL_ISUPPORTS NS_DECL_NSICLASSINFO NS_DECL_NSISECURITYCHECKEDCOMPONENT NS_DECL_NSISTRINGENUMERATOR NS_IMETHOD GetClassName(char **aClassName)
_updateCookies aName
NS_IMETHOD GetScriptableFlags(PRUint32 *aScriptableFlags)
sbScriptableFilter(sbIFilterableMediaListView *aMediaListView, const nsAString &aPropertyName, sbRemotePlayer *aPlayer)
nsStringArray mStrings
nsresult AppendProperty(const nsAString &aName, const nsAString &aValue)