NS_IMETHOD_(nsCursor) GetDefaultCursor(nsPoint& aPoint) ;
CLASS_EXPORT_XPFC nsXPFCCanvas : public nsIXPFCCanvas,                                 public nsIXPFCObserver,                                 public nsIXMLParserObject,                                 public nsIImageRequestObserver{public:  nsXPFCCanvas(nsISupports* outer);  NS_DECL_AGGREGATED  NS_IMETHOD  Init();  NS_IMETHOD  Init(nsNativeWidget aNativeParent, const nsRect& aBounds, EVENT_CALLBACK   aHandleEventFunction);  NS_IMETHOD  Init(nsIWidget * aParent, const nsRect& aBounds, EVENT_CALLBACK   aHandleEventFunction);  NS_IMETHOD  CreateIterator(nsIIterator ** aIterator) ;  NS_IMETHOD  Layout() ;  NS_IMETHOD_(nsILayout *)  GetLayout();  NS_IMETHOD                SetLayout(nsILayout * aLayout) ;  NS_IMETHOD_(nsString&) GetNameID();  NS_IMETHOD             SetNameID(nsString& aString);  NS_IMETHOD_(nsString&) GetLabel();  NS_IMETHOD             SetLabel(nsString& aString);  NS_IMETHOD_(nsIModel *)   GetModel();  NS_IMETHOD                SetModel(nsIModel * aModel);  NS_IMETHOD  SetBounds(const nsRect& aBounds);  NS_IMETHOD_(void) GetBounds(nsRect& aRect);  NS_IMETHOD_(nsEventStatus) DefaultProcessing(nsGUIEvent *aEvent);  NS_IMETHOD_(nsEventStatus) HandleEvent(nsGUIEvent *aEvent);  NS_IMETHOD_(nsEventStatus) OnPaint(nsIRenderingContext& aRenderingContext,                                     const nsRect& aDirtyRect);  NS_IMETHOD_(nsEventStatus) OnResize(nscoord aX, nscoord aY, nscoord aWidth, nscoord aHeight);  NS_IMETHOD_(nsEventStatus) OnMove(nsGUIEvent *aEvent);  NS_IMETHOD_(nsEventStatus) OnGotFocus(nsGUIEvent *aEvent);  NS_IMETHOD_(nsEventStatus) OnLostFocus(nsGUIEvent *aEvent);  NS_IMETHOD_(nsEventStatus) OnLeftButtonDown(nsGUIEvent *aEvent);  NS_IMETHOD_(nsEventStatus) OnLeftButtonUp(nsGUIEvent *aEvent);  NS_IMETHOD_(nsEventStatus) OnLeftButtonDoubleClick(nsGUIEvent *aEvent);  NS_IMETHOD_(nsEventStatus) OnMiddleButtonDown(nsGUIEvent *aEvent);  NS_IMETHOD_(nsEventStatus) OnMiddleButtonUp(nsGUIEvent *aEvent);  NS_IMETHOD_(nsEventStatus) OnMiddleButtonDoubleClick(nsGUIEvent *aEvent);  NS_IMETHOD_(nsEventStatus) OnRightButtonDown(nsGUIEvent *aEvent);  NS_IMETHOD_(nsEventStatus) OnRightButtonUp(nsGUIEvent *aEvent);  NS_IMETHOD_(nsEventStatus) OnRightButtonDoubleClick(nsGUIEvent *aEvent);  NS_IMETHOD_(nsEventStatus) OnMouseEnter(nsGUIEvent *aEvent);  NS_IMETHOD_(nsEventStatus) OnMouseExit(nsGUIEvent *aEvent);  NS_IMETHOD_(nsEventStatus) OnMouseMove(nsGUIEvent *aEvent);  NS_IMETHOD_(nsEventStatus) OnKeyUp(nsGUIEvent *aEvent);  NS_IMETHOD_(nsEventStatus) OnKeyDown(nsGUIEvent *aEvent);  NS_IMETHOD_(void) AddChildCanvas(nsIXPFCCanvas * aChildCanvas, PRInt32 aPosition = -1);  NS_IMETHOD_(void) RemoveChildCanvas(nsIXPFCCanvas * aChildCanvas);  NS_IMETHOD_(void) Reparent(nsIXPFCCanvas * aParentCanvas);  NS_IMETHOD_(nsEventStatus) PaintBackground(nsIRenderingContext& aRenderingContext,                                             const nsRect& aDirtyRect);  NS_IMETHOD_(nsEventStatus) PaintForeground(nsIRenderingContext& aRenderingContext,                                             const nsRect& aDirtyRect);  NS_IMETHOD_(nsEventStatus) PaintBorder(nsIRenderingContext& aRenderingContext,                                         const nsRect& aDirtyRect);  NS_IMETHOD_(nsEventStatus) PaintChildWidgets(nsIRenderingContext& aRenderingContext,                                               const nsRect& aDirtyRect);  NS_IMETHOD_(nsEventStatus) ResizeChildWidgets(nsGUIEvent *aEvent);  NS_IMETHOD  SetOpacity(PRFloat64 aOpacity) ;  NS_IMETHOD_(PRFloat64) GetOpacity() ;  NS_IMETHOD  SetVisibility(PRBool aVisibility);  NS_IMETHOD_(PRBool) GetVisibility();  NS_IMETHOD  SetTabID(PRUint32 aTabID);  NS_IMETHOD_(PRUint32) GetTabID();  NS_IMETHOD  SetTabGroup(PRUint32 aTabGroup);  NS_IMETHOD_(PRUint32) GetTabGroup();  NS_IMETHOD_(nsIWidget *) GetWidget();  NS_IMETHOD_(nsIXPFCCanvas *) GetParent();  NS_IMETHOD_(void) SetParent(nsIXPFCCanvas * aCanvas);  NS_IMETHOD_(nscolor) GetBackgroundColor(void) ;  NS_IMETHOD_(void)    SetBackgroundColor(const nscolor &aColor) ;  NS_IMETHOD_(nscolor) GetForegroundColor(void) ;  NS_IMETHOD_(void)    SetForegroundColor(const nscolor &aColor) ;  NS_IMETHOD_(nscolor) GetBorderColor(void) ;  NS_IMETHOD_(void)    SetBorderColor(const nscolor &aColor) ;  NS_IMETHOD_(nscolor) Highlight(const nscolor &aColor);  NS_IMETHOD_(nscolor) Dim(const nscolor &aColor);  NS_IMETHOD_(nsIXPFCCanvas *) CanvasFromPoint(const nsPoint &aPoint);  NS_IMETHOD_(nsIXPFCCanvas *) CanvasFromTab(PRUint32 aTabGroup, PRUint32 aTabID);  NS_IMETHOD GetClassPreferredSize(nsSize& aSize);  NS_IMETHOD SetFocus();  NS_IMETHOD  GetPreferredSize(nsSize &aSize);  NS_IMETHOD  GetMaximumSize(nsSize &aSize);  NS_IMETHOD  GetMinimumSize(nsSize &aSize);  NS_IMETHOD  SetPreferredSize(nsSize &aSize);  NS_IMETHOD  SetMaximumSize(nsSize &aSize);  NS_IMETHOD  SetMinimumSize(nsSize &aSize);  NS_IMETHOD_(PRBool) HasPreferredSize();  NS_IMETHOD_(PRBool) HasMinimumSize();  NS_IMETHOD_(PRBool) HasMaximumSize();  NS_IMETHOD_(PRFloat64) GetMajorAxisWeight();  NS_IMETHOD_(PRFloat64) GetMinorAxisWeight();  NS_IMETHOD  SetMajorAxisWeight(PRFloat64 aWeight);  NS_IMETHOD  SetMinorAxisWeight(PRFloat64 aWeight);  NS_IMETHOD_(PRUint32) GetChildCount();  NS_IMETHOD DeleteChildren();  NS_IMETHOD DeleteChildren(PRUint32 aCount);  NS_IMETHOD SetCommand(nsString& aCommand);  NS_IMETHOD_(nsString&) GetCommand();  NS_IMETHOD_(PRBool) PaintRequested();  // nsIXPFCObserver methods  NS_IMETHOD Update(nsIXPFCSubject * aSubject, nsIXPFCCommand * aCommand);  // nsIXPFCCommandReceiver methods  NS_IMETHOD Action(nsIXPFCCommand * aCommand);  // nsIXMLParserObject methods  NS_IMETHOD SetParameter(nsString& aKey, nsString& aValue) ;  NS_IMETHOD_(nsIXPFCCanvas *) CanvasFromName(nsString& aName);  NS_IMETHOD CreateWidget() ;  /**   * Get the font for this canvas   * @result nsFont, the canvas font   */  NS_IMETHOD_(nsFont&) GetFont() ;  /**   * Set the font for this canvas   * @param aFont the nsFont for this canvas   * @result nsresult, NS_OK if successful   */  NS_IMETHOD SetFont(nsFont& aFont) ;  /**   * Get the font metrics for this canvas   * @param nsIFontMetrics, the canvas font metrics   * @result nsresult, NS_OK if successful   */  NS_IMETHOD GetFontMetrics(nsIFontMetrics ** aFontMetrics) ;  /**   * Save canvas graphical state   * @param aRenderingContext, rendering context to save state to   * @result nsresult, NS_OK if successful   */  NS_IMETHOD PushState(nsIRenderingContext& aRenderingContext) ;  /**   * Get and and set RenderingContext to this graphical state   * @param aRenderingContext, rendering context to get previously saved state from   * @return if PR_TRUE, indicates that the clipping region after   *         popping state is empty, else PR_FALSE   */  NS_IMETHOD_(PRBool) PopState(nsIRenderingContext& aRenderingContext) ;  NS_IMETHOD FindLargestTabGroup(PRUint32& aTabGroup);  NS_IMETHOD FindLargestTabID(PRUint32 aTabGroup, PRUint32& aTabID);  NS_IMETHOD_(PRBool)   IsSplittable() ;  NS_IMETHOD_(PRBool)   IsOverSplittableRegion(nsPoint& aPoint) ;  NS_IMETHOD_(nsCursor) GetCursor(void) ;  NS_IMETHOD_(void)     SetCursor(nsCursor aCursor) ;  NS_IMETHOD_(nsSplittableOrientation)     GetSplittableOrientation(nsPoint& aPoint) ;  // nsIImageRequestObserver  virtual void Notify(nsIImageRequest *aImageRequest,                      nsIImage *aImage,                      nsImageNotification aNotificationType,                      PRInt32 aParam1, PRInt32 aParam2,                      void *aParam3);  virtual void NotifyError(nsIImageRequest *aImageRequest,                           nsImageError aErrorType);  NS_IMETHOD_(nsEventStatus) ProcessCommand(nsIXPFCCommand * aCommand) ;#if defined(DEBUG) && defined(XP_PC)  NS_IMETHOD  DumpCanvas(FILE * f, PRUint32 indent) ;#endif  NS_IMETHOD LoadWidget(const nsCID &aClassIID);protected:  ~nsXPFCCanvas();  NS_IMETHOD CreateImageGroup();  NS_IMETHOD CreateDefaultLayout();  NS_IMETHOD_(nsIImageRequest *) RequestImage(nsString aUrl);public:	PRBool Create(char * lpszWindowName, const nsRect& rect, EVENT_CALLBACK   aHandleEventFunction, nsIWidget * pParent);private:    nsILayout *     mLayout;  nsIVector *     mChildWidgets ;  nsRect          mBounds;  nscolor         mBackgroundColor;  nscolor         mForegroundColor;  nscolor         mBorderColor;  nsSize          mPreferredSize;  nsSize          mMaximumSize;  nsSize          mMinimumSize;  nsString        mNameID;  nsString        mLabel;  PRFloat64       mWeightMajor;  PRFloat64       mWeightMinor;  PRFloat64       mOpacity;  PRBool          mVisibility;  nsFont          mFont;  PRUint32        mTabID;  PRUint32        mTabGroup;  nsIModel *      mModel;  nsString        mCommand;protected:  nsISupports		  *mWidgetSupports;  nsIWidget           *mWidget;  nsIRenderingContext *mRenderingContext;  nsIXPFCCanvas       *mParent;  nsIImageRequest     *mImageRequest;  nsIImageGroup       *mImageGroup;public:  nsIView           *mView;};