www.pudn.com > src.rar > DirectVobSubPropPage.h


#pragma once 
 
#include "IDirectVobSub.h" 
 
class CDVSBasePPage : public CBasePropertyPage 
{ 
public: 
	// we have to override these to use external, resource-only dlls 
	STDMETHODIMP GetPageInfo(LPPROPPAGEINFO pPageInfo); 
	STDMETHODIMP Activate(HWND hwndParent, LPCRECT pRect, BOOL fModal); 
 
protected: 
	CComQIPtr m_pDirectVobSub; 
 
	virtual bool OnMessage(UINT uMsg, WPARAM wParam, LPARAM lParam) {return(false);} 
	virtual void UpdateObjectData(bool fSave) {} 
	virtual void UpdateControlData(bool fSave) {} 
 
protected: 
    CDVSBasePPage(TCHAR* pName, LPUNKNOWN lpunk, int DialogId, int TitleId); 
 
	bool m_fDisableInstantUpdate; 
 
private: 
    BOOL m_bIsInitialized; 
 
    HRESULT OnConnect(IUnknown* pUnknown), OnDisconnect(), OnActivate(), OnDeactivate(), OnApplyChanges(); 
	BOOL OnReceiveMessage(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam); 
 
private: 
	bool m_fAttached; 
	void AttachControls(), DetachControls(); 
 
	CMap m_controls; 
 
protected: 
	void BindControl(UINT id, CWnd& control); 
}; 
 
class CDVSMainPPage : public CDVSBasePPage 
{ 
public: 
    static CUnknown* WINAPI CreateInstance(LPUNKNOWN lpunk, HRESULT* phr); 
 
protected: 
    virtual bool OnMessage(UINT uMsg, WPARAM wParam, LPARAM lParam); 
	virtual void UpdateControlData(bool fSave); 
	virtual void UpdateObjectData(bool fSave); 
 
private: 
    CDVSMainPPage(LPUNKNOWN lpunk); 
	virtual ~CDVSMainPPage(); 
 
	void FreeLangs(), AllocLangs(int nLangs); 
 
	WCHAR m_fn[MAX_PATH]; 
	int m_iSelectedLanguage, m_nLangs; 
	WCHAR** m_ppLangs; 
	bool m_fOverridePlacement; 
	int	m_PlacementXperc, m_PlacementYperc; 
	LOGFONT m_lf; 
	COLORREF m_TextColor; 
	bool m_fShadow, m_fOutline; 
	bool m_fAdvancedRenderer; 
	bool m_fBufferVobSub, m_fOnlyShowForcedVobSubs, m_fPolygonize; 
 
	CEdit m_fnedit; 
	CComboBox m_langs; 
	CButton m_oplacement; 
	CSpinButtonCtrl m_subposx, m_subposy; 
	CButton m_font, m_shadow, m_outline, m_advrend, m_cachesub, m_forcedsubs, m_polygonize; 
	CButton m_configdlg; 
}; 
 
class CDVSGeneralPPage : public CDVSBasePPage 
{ 
public: 
    static CUnknown* WINAPI CreateInstance(LPUNKNOWN lpunk, HRESULT* phr); 
 
protected: 
    virtual bool OnMessage(UINT uMsg, WPARAM wParam, LPARAM lParam); 
	virtual void UpdateControlData(bool fSave); 
	virtual void UpdateObjectData(bool fSave); 
 
private: 
    CDVSGeneralPPage(LPUNKNOWN lpunk); 
 
	int m_HorExt, m_VerExt, m_ResX2, m_ResX2minw, m_ResX2minh; 
	int m_LoadLevel; 
	bool m_fExternalLoad, m_fWebLoad, m_fEmbeddedLoad; 
 
	CComboBox m_verext; 
	CButton m_mod32fix; 
	CComboBox m_resx2; 
	CSpinButtonCtrl m_resx2w, m_resx2h; 
	CComboBox m_load; 
	CButton m_extload, m_webload, m_embload; 
}; 
 
class CDVSMiscPPage : public CDVSBasePPage 
{ 
public: 
    static CUnknown* WINAPI CreateInstance(LPUNKNOWN lpunk, HRESULT* phr); 
 
protected: 
    virtual bool OnMessage(UINT uMsg, WPARAM wParam, LPARAM lParam); 
	virtual void UpdateControlData(bool fSave); 
	virtual void UpdateObjectData(bool fSave); 
 
private: 
    CDVSMiscPPage(LPUNKNOWN lpunk); 
 
	bool m_fFlipPicture, m_fFlipSubtitles, m_fHideSubtitles, m_fOSD, m_fDoPreBuffering, m_fReloaderDisabled, m_fSaveFullPath; 
 
	CButton m_flippic, m_flipsub, m_hidesub, m_showosd, m_prebuff, m_autoreload, m_savefullpath, m_instupd; 
}; 
 
class CDVSTimingPPage : public CDVSBasePPage 
{ 
public: 
    static CUnknown* WINAPI CreateInstance(LPUNKNOWN lpunk, HRESULT* phr); 
 
protected: 
    virtual bool OnMessage(UINT uMsg, WPARAM wParam, LPARAM lParam); 
	virtual void UpdateControlData(bool fSave); 
	virtual void UpdateObjectData(bool fSave); 
 
private: 
    CDVSTimingPPage(LPUNKNOWN lpunk); 
 
	int m_SubtitleSpeedMul, m_SubtitleSpeedDiv, m_SubtitleDelay; 
	bool m_fMediaFPSEnabled; 
	double m_MediaFPS; 
 
	CButton m_modfps; 
	CEdit m_fps; 
	CSpinButtonCtrl m_subdelay, m_subspeedmul, m_subspeeddiv; 
}; 
 
class CDVSAboutPPage : public CDVSBasePPage 
{ 
public: 
    static CUnknown* WINAPI CreateInstance(LPUNKNOWN lpunk, HRESULT* phr); 
 
protected: 
    virtual bool OnMessage(UINT uMsg, WPARAM wParam, LPARAM lParam); 
 
private: 
    CDVSAboutPPage(LPUNKNOWN lpunk); 
}; 
 
class CDVSZoomPPage : public CDVSBasePPage 
{ 
public: 
    static CUnknown* WINAPI CreateInstance(LPUNKNOWN lpunk, HRESULT* phr); 
 
protected: 
    virtual bool OnMessage(UINT uMsg, WPARAM wParam, LPARAM lParam); 
	virtual void UpdateControlData(bool fSave); 
	virtual void UpdateObjectData(bool fSave); 
 
private: 
    CDVSZoomPPage(LPUNKNOWN lpunk); 
 
	NORMALIZEDRECT m_rect; 
 
	CSpinButtonCtrl m_posx, m_posy, m_scalex, m_scaley; 
}; 
 
class CDVSColorPPage : public CDVSBasePPage 
{ 
public: 
    static CUnknown* WINAPI CreateInstance(LPUNKNOWN lpunk, HRESULT* phr); 
 
protected: 
    virtual bool OnMessage(UINT uMsg, WPARAM wParam, LPARAM lParam); 
	virtual void UpdateControlData(bool fSave); 
	virtual void UpdateObjectData(bool fSave); 
 
private: 
    CDVSColorPPage(LPUNKNOWN lpunk); 
 
	CListBox m_preflist, m_dynchglist; 
	CButton m_forcergb; 
}; 
 
class CDVSPathsPPage : public CDVSBasePPage 
{ 
public: 
    static CUnknown* WINAPI CreateInstance(LPUNKNOWN lpunk, HRESULT* phr); 
 
protected: 
    virtual bool OnMessage(UINT uMsg, WPARAM wParam, LPARAM lParam); 
	virtual void UpdateControlData(bool fSave); 
	virtual void UpdateObjectData(bool fSave); 
 
private: 
    CDVSPathsPPage(LPUNKNOWN lpunk); 
 
	CStringArray m_paths; 
 
	CListBox m_pathlist; 
	CEdit m_path; 
	CButton m_browse, m_remove, m_add; 
};