📄 sm1doc.h
字号:
void resizeSite (HXxSize newSize);
void resizeSite (IHXSite* pSite,
double dXScale,
double dYScale);
void resizeRegionSiteAbs(CSmil1BasicRegion* pRegion,
double dXAbsScale,
double dYAbsScale);
BOOL draw (HXxEvent* pEvent,
IHXSite* pSite,
HXxColor ulBgColor);
void insertZOrder (IHXSite* pSite,
INT32 lZOrder);
void setZOrder ();
HX_RESULT handleElements ();
void setProperty (IHXValues* pValues,
const char* pName,
const char* pValue);
HX_RESULT parseDimension (const char* pDimensionString,
REF(UINT32) ulValue,
REF(BOOL) bIsPercent);
HX_RESULT regionToRect (CSmil1Region* pElement,
HXxRect* pRect,
BOOL& bWidthUnspecified,
BOOL& bHeightUnspecified);
CSmil1AAnchorElement*
findHyperlinkElement (const char* pID,
UINT16 uXPos,
UINT16 uYPos);
HX_RESULT convertURL (const char* pURL,
CHXString& newURL);
HX_RESULT updateStreamTiming (const char* pElementID,
UINT32 ulDuration);
HX_RESULT updateStreamDelay (UINT16 uGroupIndex,
UINT32 ulDelay);
HX_RESULT updateSiteEvents (UINT16 uGroupIndex);
HX_RESULT createRegionSites ();
void RemoveEvents (UINT32 ulGroupIndex, IHXSite* pSite);
HX_RESULT flushAllEvents (UINT32 ulFlushToTime, BOOL bBreak=FALSE );
inline HX_RESULT flushAllEvents () { return flushAllEvents( m_ulCurrentTime ); }
BOOL IsFullScreen();
void computeMediaFitSize(HXxSize cRegSize, HXxSize cMedSize,
const char* pszFitAttr, REF(HXxSize) rcFitSize);
HX_RESULT getPreference(IUnknown* pContext,
const char* pszKey,
REF(IHXBuffer*) rpValue);
HX_RESULT getBooleanPreference(IUnknown* pContext,
const char* pszKey,
REF(BOOL) rbValue);
#if defined(_UNIX) && (!(defined(_BEOS))) && (!(defined(_MAC_UNIX)))
void ConvertPNxColorToXColor(HXxColor hxxColor, XColor& xcolor);
XData* InitXVisualSupport(IHXSite* pSite, HXxWindow* pWnd);
#endif
CSmil1Renderer* m_pParent;
CSmil1Parser* m_pSmilParser;
HX_RESULT m_ulParseResult;
IHXSite* m_pMISUSSite;
IHXScheduler* m_pScheduler;
public:
HXxSize m_topSiteSize;
HXxSize m_topSiteOriginalSize;
private:
IHXValues* m_pValues;
char* m_pFragment;
CHXMapStringToOb* m_pRegionMap;
CHXMapPtrToPtr* m_pSiteInfoByRendererMap;
CHXMapPtrToPtr* m_pSiteWatcherMap;
CHXMapLongToObj* m_pGroupInfoMap;
CHXMapLongToObj* m_pGroupMap;
CHXMapStringToOb* m_pDeferredSourceMap;
CHXMapStringToOb* m_pRepeatIDMap;
CHXSimpleList* m_pSiteInfoList;
CHXSimpleList* m_pPlayToAssocList;
CHXSimpleList* m_pEventList;
CHXSimpleList* m_pZOrderList;
LISTPOSITION m_ulEventListPosition;
INT16 m_uCurrentGroupIndex;
INT16 m_nFragmentTracks;
UINT32 m_ulCurrentTime;
LONG32 m_lRefCount;
IUnknown* m_pContext;
IHXSiteManager* m_pSiteMgr;
IHXStatusMessage* m_pStatusMessage;
BOOL m_bFirstTimeSync;
BOOL m_bSettingFragment;
BOOL m_bInHyperlink;
BOOL m_bShowDependencies;
BOOL m_bSiteLayoutComplete;
BOOL m_bStatusMessageSet;
double m_dResizeXScale;
double m_dResizeYScale;
UINT32 m_ulPktnum;
UINT16 m_usOldXPos;
UINT16 m_usOldYPos;
ProcessElementCallback* m_pProcessElementCallback;
#ifdef _WINDOWS
HCURSOR m_hHyperlinkCursor;
HCURSOR m_hPreHyperlinkCursor;
BOOL m_bNeedToSetHyperlinkCursor;
#endif
#if defined(_MACINTOSH) || defined(_MAC_UNIX)
BOOL m_bResetCursor;
CursHandle m_hHyperlinkCursor;
CResourceLoader* m_pResourceLoader;
#endif
#if defined(_UNIX) && (!(defined(_BEOS))) && (!(defined(_MAC_UNIX)))
// needed for background drawing
XVisualInfo* m_pVisualInfo;
Cursor m_hHyperlinkCursor;
Cursor m_hCurrentCursor;
Display* m_pDisplay;
Window m_Window;
Display* m_pPixmapDisplay;
CHXMapPtrToPtr m_siteToXDataMap;
#endif
BOOL m_bRootLayoutWidthSet;
BOOL m_bRootLayoutHeightSet;
UINT32 m_ulRootLayoutHeight;
UINT32 m_ulRootLayoutWidth;
HXxColor m_ulRootLayoutBGColor;
UINT32 m_ulGroupIndex;
UINT32 m_ulTrackIndex;
UINT16 m_uGroupIndexWithin;
BOOL m_bSitesDetached;
BOOL m_bInRAM20;
BOOL m_bLastGroupInRAM20;
INT32 m_ulPersistentComponentDelay;
UINT32 m_ulPersistentComponentID;
UINT16 m_uPersistentGroupID;
UINT16 m_uPersistentTrackID;
ElementWithinTag m_elementWithinTag;
IHXValues* m_pPersistentProperties;
IHXPersistentRenderer* m_pPersistentParentRenderer;
BOOL m_bCloseCalled;
HX_RESULT InitPersistent(UINT32 ulPersistentComponentID,
UINT16 uPersistentGroupID,
UINT16 uPersistentTrackID,
IHXPersistentRenderer* pPersistentParent);
HX_RESULT setupRootLayout();
BOOL IsNestedMetaSupported(UINT16& uSupportedType);
void PersistentDurationSet(UINT32 ulDuration, UINT32 ulDelay, BOOL bIsLive);
};
class CSmil1SiteWatcher: public CHXBaseCountingObject,
public IHXSiteWatcher
{
public:
CSmil1SiteWatcher (CSmil1DocumentRenderer* pDoc,
const char* pID,
BOOL bIsChildSite);
~CSmil1SiteWatcher ();
HX_RESULT close ();
IHXSite* GetSite() { return m_pSite; }
void SiteChangingSize(BOOL bFlag) { m_bChangingSize = bFlag; }
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj);
STDMETHOD_(ULONG32, AddRef) (THIS);
STDMETHOD_(ULONG32, Release) (THIS);
/*
* IHXSiteWatcher methods
*/
STDMETHOD(AttachSite) (THIS_
IHXSite* pSite);
STDMETHOD(DetachSite) (THIS);
STDMETHOD(ChangingPosition) (THIS_
HXxPoint posOld,
REF(HXxPoint) posNew);
STDMETHOD(ChangingSize) (THIS_
HXxSize sizeOld,
REF(HXxSize) posNew);
private:
CHXString m_id;
CSmil1DocumentRenderer* m_pDoc;
IHXSite* m_pSite;
BOOL m_bIsChildSite;
BOOL m_bChangingSize;
LONG32 m_lRefCount;
BOOL m_bFirstSetSize;
};
class CSmil1EventHook: public CHXBaseCountingObject,
public IHXEventHook
{
public:
CSmil1EventHook (CSmil1DocumentRenderer* pDoc,
const char* pRegionName,
const char* pChannelName,
BOOL bNoRegion);
virtual ~CSmil1EventHook ();
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj);
STDMETHOD_(ULONG32, AddRef) (THIS);
STDMETHOD_(ULONG32, Release) (THIS);
/*
* IHXEventHook methods
*/
STDMETHOD(HandleEvent) (IHXSite* pSite,
HXxEvent* pEvent);
STDMETHOD(SiteAdded) (IHXSite* pSite);
STDMETHOD(SiteRemoved) (IHXSite* pSite);
char* m_pChannelName;
private:
CSmil1DocumentRenderer* m_pDoc;
char* m_pRegionName;
IHXSite* m_pSite;
BOOL m_bNoRegion;
CSmil1PassiveSiteWatcher* m_pSiteWatcher;
LONG32 m_lRefCount;
};
class CSmil1PassiveSiteWatcher: public CHXBaseCountingObject,
public IHXPassiveSiteWatcher
{
public:
CSmil1PassiveSiteWatcher (CSmil1DocumentRenderer* pDoc,
const char* pRegionName);
~CSmil1PassiveSiteWatcher ();
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj);
STDMETHOD_(ULONG32, AddRef) (THIS);
STDMETHOD_(ULONG32, Release) (THIS);
/*
* IHXPassiveSiteWatcher methods
*/
STDMETHOD(PositionChanged) (THIS_
HXxPoint* pPoint);
STDMETHOD(SizeChanged) (THIS_
HXxSize* pSize);
private:
LONG32 m_lRefCount;
CSmil1DocumentRenderer* m_pDoc;
char* m_pRegionName;
};
class CSmil1SiteUser: public CHXBaseCountingObject,
public IHXSiteUser
{
public:
CSmil1SiteUser (CSmil1DocumentRenderer* pDoc,
HXxColor ulBGColor);
~CSmil1SiteUser ();
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj);
STDMETHOD_(ULONG32, AddRef) (THIS);
STDMETHOD_(ULONG32, Release) (THIS);
/*
* IHXSiteUser methods
*/
STDMETHOD(AttachSite) (THIS_
IHXSite* pSite);
STDMETHOD(DetachSite) (THIS);
STDMETHOD(HandleEvent) (THIS_
HXxEvent* pEvent);
STDMETHOD_(BOOL,NeedsWindowedSites) (THIS);
private:
LONG32 m_lRefCount;
HXxColor m_ulBGColor;
CSmil1DocumentRenderer* m_pDoc;
IHXSite* m_pSite;
};
/*
* CSmil1BasicRegion methods
*/
class CSmil1BasicRegion : public CHXBaseCountingObject
{
public:
CSmil1BasicRegion (const char* pName,
HXxRect rect,
INT32 lZindex,
const char* pFit,
HXxColor ulBgColor,
BOOL bBgColorSet,
BOOL bImplicitRegion,
BOOL bWidthUnspecified,
BOOL bHeightUnspecified);
~CSmil1BasicRegion();
HXxRect m_rect;
HXxRect m_originalRect;
HXxSize m_mediaSize;
HXxSize m_originalMediaSize;
BOOL m_bMediaSizeSet;
IHXSite* m_pSite;
IHXSiteUser* m_pSiteUser;
INT32 m_lZIndex;
CHXString m_region;
CHXString m_fit;
HXxColor m_ulBgColor;
BOOL m_bBgColorSet;
BOOL m_bImplicitRegion;
BOOL m_bWidthUnspecified;
BOOL m_bHeightUnspecified;
};
class ProcessElementCallback : public IHXCallback
{
public:
CHXString m_elementID;
CSmil1DocumentRenderer* m_pOwner;
CallbackHandle m_PendingHandle;
BOOL m_bIsCallbackPending;
ProcessElementCallback();
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj);
STDMETHOD_(ULONG32,AddRef) (THIS);
STDMETHOD_(ULONG32,Release) (THIS);
/*
* IHXCallback methods
*/
STDMETHOD(Func) (THIS);
protected:
~ProcessElementCallback();
LONG32 m_lRefCount;
};
#endif /* _SM1DOC_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -