зеркало из https://github.com/mozilla/pjs.git
Final implementation and hookup of user, layer and calcanvas
interfaces
This commit is contained in:
Родитель
bf13a91cef
Коммит
4b016b7b52
|
@ -20,6 +20,8 @@
|
||||||
#define nsCalendarUser_h___
|
#define nsCalendarUser_h___
|
||||||
|
|
||||||
#include "nsICalendarUser.h"
|
#include "nsICalendarUser.h"
|
||||||
|
#include "nsIUser.h"
|
||||||
|
#include "nsILayer.h"
|
||||||
|
|
||||||
class nsCalendarUser : public nsICalendarUser
|
class nsCalendarUser : public nsICalendarUser
|
||||||
{
|
{
|
||||||
|
@ -32,6 +34,14 @@ public:
|
||||||
|
|
||||||
NS_IMETHOD Init();
|
NS_IMETHOD Init();
|
||||||
|
|
||||||
|
NS_IMETHOD GetLayer(nsILayer *& aLayer);
|
||||||
|
NS_IMETHOD SetLayer(nsILayer* aLayer);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
nsISupports * mUserSupports;
|
||||||
|
nsIUser * mUser;
|
||||||
|
nsILayer * mLayer;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif //nsCalendarUser_h___
|
#endif //nsCalendarUser_h___
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
#define nsICalendarUser_h___
|
#define nsICalendarUser_h___
|
||||||
|
|
||||||
#include "nsISupports.h"
|
#include "nsISupports.h"
|
||||||
|
#include "nsILayer.h"
|
||||||
|
|
||||||
//2fa12310-4cd8-11d2-924a-00805f8a7ab6
|
//2fa12310-4cd8-11d2-924a-00805f8a7ab6
|
||||||
#define NS_ICALENDAR_USER_IID \
|
#define NS_ICALENDAR_USER_IID \
|
||||||
|
@ -31,6 +32,9 @@ class nsICalendarUser : public nsISupports
|
||||||
public:
|
public:
|
||||||
NS_IMETHOD Init() = 0;
|
NS_IMETHOD Init() = 0;
|
||||||
|
|
||||||
|
NS_IMETHOD GetLayer(nsILayer *& aLayer) = 0;
|
||||||
|
NS_IMETHOD SetLayer(nsILayer* aLayer) = 0;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -18,26 +18,81 @@
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include "nsCalendarUser.h"
|
#include "nsCalendarUser.h"
|
||||||
|
#include "nsCoreCIID.h"
|
||||||
|
#include "nsxpfcCIID.h"
|
||||||
|
|
||||||
static NS_DEFINE_IID(kICalendarUserIID, NS_ICALENDAR_USER_IID);
|
static NS_DEFINE_IID(kICalendarUserIID, NS_ICALENDAR_USER_IID);
|
||||||
|
static NS_DEFINE_IID(kIUserIID, NS_IUSER_IID);
|
||||||
|
static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID);
|
||||||
|
static NS_DEFINE_IID(kCUserCID, NS_USER_CID);
|
||||||
|
|
||||||
nsCalendarUser::nsCalendarUser(nsISupports* outer)
|
nsCalendarUser::nsCalendarUser(nsISupports* outer)
|
||||||
{
|
{
|
||||||
NS_INIT_REFCNT();
|
NS_INIT_REFCNT();
|
||||||
|
mUserSupports = nsnull;
|
||||||
|
mUser = nsnull;
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMPL_QUERY_INTERFACE(nsCalendarUser, kICalendarUserIID)
|
NS_IMPL_QUERY_INTERFACE(nsCalendarUser, kICalendarUserIID)
|
||||||
|
// if (nsnull != mWidgetSupports)
|
||||||
|
// return mWidgetSupports->QueryInterface(aIID, aInstancePtr);
|
||||||
|
|
||||||
NS_IMPL_ADDREF(nsCalendarUser)
|
NS_IMPL_ADDREF(nsCalendarUser)
|
||||||
NS_IMPL_RELEASE(nsCalendarUser)
|
NS_IMPL_RELEASE(nsCalendarUser)
|
||||||
|
|
||||||
nsCalendarUser::~nsCalendarUser()
|
nsCalendarUser::~nsCalendarUser()
|
||||||
{
|
{
|
||||||
|
NS_IF_RELEASE(mUserSupports);
|
||||||
|
mUser = nsnull; // Do Not Release
|
||||||
}
|
}
|
||||||
|
|
||||||
nsresult nsCalendarUser::Init()
|
nsresult nsCalendarUser::Init()
|
||||||
{
|
{
|
||||||
|
nsresult res;
|
||||||
|
|
||||||
|
nsISupports * supports ;
|
||||||
|
|
||||||
|
res = QueryInterface(kISupportsIID, (void **) &supports);
|
||||||
|
|
||||||
|
if (NS_OK != res)
|
||||||
|
return res;
|
||||||
|
|
||||||
|
static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID);
|
||||||
|
|
||||||
|
res = nsRepository::CreateInstance(kCUserCID,
|
||||||
|
supports,
|
||||||
|
kISupportsIID,
|
||||||
|
(void**)&mUserSupports);
|
||||||
|
|
||||||
|
if (NS_OK == res)
|
||||||
|
{
|
||||||
|
res = mUserSupports->QueryInterface(kIUserIID, (void**)&mUser);
|
||||||
|
if (NS_OK != res)
|
||||||
|
{
|
||||||
|
mUserSupports->Release();
|
||||||
|
mUserSupports = NULL;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mUser->Release();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return res;
|
||||||
|
|
||||||
return (NS_OK);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
NS_IMETHODIMP nsCalendarUser :: GetLayer(nsILayer *& aLayer)
|
||||||
|
{
|
||||||
|
aLayer = mLayer;
|
||||||
|
return NS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
NS_IMETHODIMP nsCalendarUser :: SetLayer(nsILayer* aLayer)
|
||||||
|
{
|
||||||
|
mLayer = aLayer;
|
||||||
|
return NS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
#define nsCalCanvas_h___
|
#define nsCalCanvas_h___
|
||||||
|
|
||||||
#include "nsXPFCCanvas.h"
|
#include "nsXPFCCanvas.h"
|
||||||
|
#include "nsICalendarUser.h"
|
||||||
|
|
||||||
class nsCalCanvas : public nsXPFCCanvas
|
class nsCalCanvas : public nsXPFCCanvas
|
||||||
|
|
||||||
|
@ -31,9 +32,15 @@ public:
|
||||||
|
|
||||||
NS_IMETHOD Init();
|
NS_IMETHOD Init();
|
||||||
|
|
||||||
|
NS_IMETHOD GetUser(nsICalendarUser *& aUser);
|
||||||
|
NS_IMETHOD SetUser(nsICalendarUser * aUser);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
~nsCalCanvas();
|
~nsCalCanvas();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
nsICalendarUser * mUser;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* nsCalCanvas_h___ */
|
#endif /* nsCalCanvas_h___ */
|
||||||
|
|
|
@ -25,10 +25,12 @@ static NS_DEFINE_IID(kCalCanvasCID, NS_CAL_CANVAS_CID);
|
||||||
nsCalCanvas :: nsCalCanvas(nsISupports* outer) : nsXPFCCanvas(outer)
|
nsCalCanvas :: nsCalCanvas(nsISupports* outer) : nsXPFCCanvas(outer)
|
||||||
{
|
{
|
||||||
NS_INIT_REFCNT();
|
NS_INIT_REFCNT();
|
||||||
|
mUser = nsnull;
|
||||||
}
|
}
|
||||||
|
|
||||||
nsCalCanvas :: ~nsCalCanvas()
|
nsCalCanvas :: ~nsCalCanvas()
|
||||||
{
|
{
|
||||||
|
NS_IF_RELEASE(mUser);
|
||||||
}
|
}
|
||||||
|
|
||||||
nsresult nsCalCanvas::QueryInterface(REFNSIID aIID, void** aInstancePtr)
|
nsresult nsCalCanvas::QueryInterface(REFNSIID aIID, void** aInstancePtr)
|
||||||
|
@ -59,3 +61,15 @@ nsresult nsCalCanvas :: Init()
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
nsresult nsCalCanvas :: GetUser(nsICalendarUser *& aUser)
|
||||||
|
{
|
||||||
|
aUser = mUser;
|
||||||
|
return NS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
nsresult nsCalCanvas :: SetUser(nsICalendarUser * aUser)
|
||||||
|
{
|
||||||
|
mUser = aUser;
|
||||||
|
return NS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
#define nsUser_h___
|
#define nsUser_h___
|
||||||
|
|
||||||
#include "nsIUser.h"
|
#include "nsIUser.h"
|
||||||
|
#include "nsAgg.h"
|
||||||
|
|
||||||
class nsUser : public nsIUser
|
class nsUser : public nsIUser
|
||||||
|
|
||||||
|
@ -27,7 +28,7 @@ class nsUser : public nsIUser
|
||||||
public:
|
public:
|
||||||
nsUser(nsISupports* outer);
|
nsUser(nsISupports* outer);
|
||||||
|
|
||||||
NS_DECL_ISUPPORTS
|
NS_DECL_AGGREGATED
|
||||||
|
|
||||||
NS_IMETHOD Init();
|
NS_IMETHOD Init();
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,7 @@ static NS_DEFINE_IID(kCIUserIID, NS_IUSER_IID);
|
||||||
|
|
||||||
nsUser :: nsUser(nsISupports* outer)
|
nsUser :: nsUser(nsISupports* outer)
|
||||||
{
|
{
|
||||||
NS_INIT_REFCNT();
|
NS_INIT_AGGREGATED(outer);
|
||||||
mUserName = "";
|
mUserName = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -34,33 +34,21 @@ nsUser :: ~nsUser()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
nsresult nsUser::QueryInterface(REFNSIID aIID, void** aInstancePtr)
|
NS_IMPL_AGGREGATED(nsUser);
|
||||||
{
|
|
||||||
if (NULL == aInstancePtr) {
|
NS_METHOD nsUser::AggregatedQueryInterface(const nsIID& aIID, void** aInstancePtr)
|
||||||
return NS_ERROR_NULL_POINTER;
|
{
|
||||||
}
|
if (NULL == aInstancePtr) {
|
||||||
static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID);
|
return NS_ERROR_NULL_POINTER;
|
||||||
static NS_DEFINE_IID(kClassIID, kCUserCID);
|
}
|
||||||
if (aIID.Equals(kClassIID)) {
|
if (aIID.Equals(kCIUserIID) || aIID.Equals(kISupportsIID) || aIID.Equals(kCUserCID)) {
|
||||||
*aInstancePtr = (void*) (nsUser *)this;
|
*aInstancePtr = (void*) this;
|
||||||
AddRef();
|
AddRef();
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
if (aIID.Equals(kCIUserIID)) {
|
return NS_NOINTERFACE;
|
||||||
*aInstancePtr = (void*) (nsIUser *)this;
|
|
||||||
AddRef();
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
if (aIID.Equals(kISupportsIID)) {
|
|
||||||
*aInstancePtr = (void*) (this);
|
|
||||||
AddRef();
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
return (NS_ERROR_NO_INTERFACE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMPL_ADDREF(nsUser)
|
|
||||||
NS_IMPL_RELEASE(nsUser)
|
|
||||||
|
|
||||||
nsresult nsUser :: Init()
|
nsresult nsUser :: Init()
|
||||||
{
|
{
|
||||||
|
|
Загрузка…
Ссылка в новой задаче