зеркало из 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___
|
||||
|
||||
#include "nsICalendarUser.h"
|
||||
#include "nsIUser.h"
|
||||
#include "nsILayer.h"
|
||||
|
||||
class nsCalendarUser : public nsICalendarUser
|
||||
{
|
||||
|
@ -32,6 +34,14 @@ public:
|
|||
|
||||
NS_IMETHOD Init();
|
||||
|
||||
NS_IMETHOD GetLayer(nsILayer *& aLayer);
|
||||
NS_IMETHOD SetLayer(nsILayer* aLayer);
|
||||
|
||||
protected:
|
||||
nsISupports * mUserSupports;
|
||||
nsIUser * mUser;
|
||||
nsILayer * mLayer;
|
||||
|
||||
};
|
||||
|
||||
#endif //nsCalendarUser_h___
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
#define nsICalendarUser_h___
|
||||
|
||||
#include "nsISupports.h"
|
||||
#include "nsILayer.h"
|
||||
|
||||
//2fa12310-4cd8-11d2-924a-00805f8a7ab6
|
||||
#define NS_ICALENDAR_USER_IID \
|
||||
|
@ -31,6 +32,9 @@ class nsICalendarUser : public nsISupports
|
|||
public:
|
||||
NS_IMETHOD Init() = 0;
|
||||
|
||||
NS_IMETHOD GetLayer(nsILayer *& aLayer) = 0;
|
||||
NS_IMETHOD SetLayer(nsILayer* aLayer) = 0;
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -18,26 +18,81 @@
|
|||
|
||||
#include <stdio.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)
|
||||
{
|
||||
NS_INIT_REFCNT();
|
||||
mUserSupports = nsnull;
|
||||
mUser = nsnull;
|
||||
}
|
||||
|
||||
NS_IMPL_QUERY_INTERFACE(nsCalendarUser, kICalendarUserIID)
|
||||
// if (nsnull != mWidgetSupports)
|
||||
// return mWidgetSupports->QueryInterface(aIID, aInstancePtr);
|
||||
|
||||
NS_IMPL_ADDREF(nsCalendarUser)
|
||||
NS_IMPL_RELEASE(nsCalendarUser)
|
||||
|
||||
nsCalendarUser::~nsCalendarUser()
|
||||
{
|
||||
NS_IF_RELEASE(mUserSupports);
|
||||
mUser = nsnull; // Do Not Release
|
||||
}
|
||||
|
||||
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___
|
||||
|
||||
#include "nsXPFCCanvas.h"
|
||||
#include "nsICalendarUser.h"
|
||||
|
||||
class nsCalCanvas : public nsXPFCCanvas
|
||||
|
||||
|
@ -31,9 +32,15 @@ public:
|
|||
|
||||
NS_IMETHOD Init();
|
||||
|
||||
NS_IMETHOD GetUser(nsICalendarUser *& aUser);
|
||||
NS_IMETHOD SetUser(nsICalendarUser * aUser);
|
||||
|
||||
protected:
|
||||
~nsCalCanvas();
|
||||
|
||||
protected:
|
||||
nsICalendarUser * mUser;
|
||||
|
||||
};
|
||||
|
||||
#endif /* nsCalCanvas_h___ */
|
||||
|
|
|
@ -25,10 +25,12 @@ static NS_DEFINE_IID(kCalCanvasCID, NS_CAL_CANVAS_CID);
|
|||
nsCalCanvas :: nsCalCanvas(nsISupports* outer) : nsXPFCCanvas(outer)
|
||||
{
|
||||
NS_INIT_REFCNT();
|
||||
mUser = nsnull;
|
||||
}
|
||||
|
||||
nsCalCanvas :: ~nsCalCanvas()
|
||||
{
|
||||
NS_IF_RELEASE(mUser);
|
||||
}
|
||||
|
||||
nsresult nsCalCanvas::QueryInterface(REFNSIID aIID, void** aInstancePtr)
|
||||
|
@ -59,3 +61,15 @@ nsresult nsCalCanvas :: Init()
|
|||
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___
|
||||
|
||||
#include "nsIUser.h"
|
||||
#include "nsAgg.h"
|
||||
|
||||
class nsUser : public nsIUser
|
||||
|
||||
|
@ -27,7 +28,7 @@ class nsUser : public nsIUser
|
|||
public:
|
||||
nsUser(nsISupports* outer);
|
||||
|
||||
NS_DECL_ISUPPORTS
|
||||
NS_DECL_AGGREGATED
|
||||
|
||||
NS_IMETHOD Init();
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@ static NS_DEFINE_IID(kCIUserIID, NS_IUSER_IID);
|
|||
|
||||
nsUser :: nsUser(nsISupports* outer)
|
||||
{
|
||||
NS_INIT_REFCNT();
|
||||
NS_INIT_AGGREGATED(outer);
|
||||
mUserName = "";
|
||||
}
|
||||
|
||||
|
@ -34,33 +34,21 @@ nsUser :: ~nsUser()
|
|||
{
|
||||
}
|
||||
|
||||
nsresult nsUser::QueryInterface(REFNSIID aIID, void** aInstancePtr)
|
||||
{
|
||||
if (NULL == aInstancePtr) {
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
}
|
||||
static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID);
|
||||
static NS_DEFINE_IID(kClassIID, kCUserCID);
|
||||
if (aIID.Equals(kClassIID)) {
|
||||
*aInstancePtr = (void*) (nsUser *)this;
|
||||
AddRef();
|
||||
return NS_OK;
|
||||
}
|
||||
if (aIID.Equals(kCIUserIID)) {
|
||||
*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_AGGREGATED(nsUser);
|
||||
|
||||
NS_METHOD nsUser::AggregatedQueryInterface(const nsIID& aIID, void** aInstancePtr)
|
||||
{
|
||||
if (NULL == aInstancePtr) {
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
}
|
||||
if (aIID.Equals(kCIUserIID) || aIID.Equals(kISupportsIID) || aIID.Equals(kCUserCID)) {
|
||||
*aInstancePtr = (void*) this;
|
||||
AddRef();
|
||||
return NS_OK;
|
||||
}
|
||||
return NS_NOINTERFACE;
|
||||
}
|
||||
|
||||
NS_IMPL_ADDREF(nsUser)
|
||||
NS_IMPL_RELEASE(nsUser)
|
||||
|
||||
nsresult nsUser :: Init()
|
||||
{
|
||||
|
|
Загрузка…
Ссылка в новой задаче