/* * $Id$ * * (C) 2003-2006 Gabest * (C) 2006-2010 see AUTHORS * * This file is part of mplayerc. * * Mplayerc is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * Mplayerc is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * */ #pragma once #include "IGraphBuilder2.h" #include "../../DSUtil/DSMPropertyBag.h" class CFilterTreeCtrl : public CTreeCtrl { public: CFilterTreeCtrl(); protected: virtual INT_PTR OnToolHitTest(CPoint point, TOOLINFO* pTI) const; virtual void PreSubclassWindow(); public: DECLARE_MESSAGE_MAP() afx_msg BOOL OnToolTipText(UINT nID, NMHDR* pNMHDR, LRESULT* pResult); }; // CConvertDlg dialog class CConvertDlg : public CResizableDialog { public: class CTreeItem { protected: CTreeCtrl& m_tree; HTREEITEM m_hTI; public: CTreeItem(CTreeCtrl& tree, HTREEITEM hTIParent); virtual ~CTreeItem(); virtual void Update() {} virtual bool ToolTip(CString& str) { return false; } void SetLabel(LPCTSTR label); void SetImage(int nImage, int nSelectedImage); operator HTREEITEM() const { return m_hTI; } }; class CTreeItemFilter : public CTreeItem { public: CComPtr m_pBF; CTreeItemFilter(IBaseFilter* pBF, CTreeCtrl& tree, HTREEITEM hTIParent); void Update(); }; class CTreeItemFile : public CTreeItemFilter { public: CString m_fn; CTreeItemFile(CString fn, IBaseFilter* pBF, CTreeCtrl& tree, HTREEITEM hTIParent); void Update(); bool ToolTip(CString& str); }; class CTreeItemPin : public CTreeItem { public: CComPtr m_pPin; CTreeItemPin(IPin* pPin, CTreeCtrl& tree, HTREEITEM hTIParent); void Update(); bool ToolTip(CString& str); bool IsConnected(); }; class CTreeItemResourceFolder : public CTreeItem { public: CTreeItemResourceFolder(CTreeCtrl& tree, HTREEITEM hTIParent); void Update(); bool ToolTip(CString& str); }; class CTreeItemResource : public CTreeItem { public: CDSMResource m_res; CTreeItemResource(const CDSMResource& res, CTreeCtrl& tree, HTREEITEM hTIParent); ~CTreeItemResource(); void Update(); bool ToolTip(CString& str); }; class CTreeItemChapterFolder : public CTreeItem { public: CTreeItemChapterFolder(CTreeCtrl& tree, HTREEITEM hTIParent); void Update(); }; class CTreeItemChapter : public CTreeItem { public: CDSMChapter m_chap; CTreeItemChapter(const CDSMChapter& chap, CTreeCtrl& tree, HTREEITEM hTIParent); void Update(); }; private: CComPtr m_pGB; CComPtr m_pMux; CComQIPtr m_pMC; CComQIPtr m_pME; CComQIPtr m_pMS; CString m_title; UINT m_nIDEventStatus; CBitmap m_streamtypesbm; CImageList m_streamtypes; CList m_pTIs; void AddFile(CString fn); bool ConvertFile(LPCTSTR fn, IPin* pPin = NULL); void AddFilter(HTREEITEM hTI, IBaseFilter* pBF); void DeleteFilter(IBaseFilter* pBF); void DeleteItem(HTREEITEM hTI); void DeleteChildren(HTREEITEM hTI); HTREEITEM HitTest(CPoint& sp, CPoint& cp); void ShowPopup(CPoint p); void ShowFilePopup(HTREEITEM hTI, CPoint p); void ShowPinPopup(HTREEITEM hTI, CPoint p); void ShowResourceFolderPopup(HTREEITEM hTI, CPoint p); void ShowResourcePopup(HTREEITEM hTI, CPoint p); void ShowChapterFolderPopup(HTREEITEM hTI, CPoint p); void ShowChapterPopup(HTREEITEM hTI, CPoint p); bool EditProperties(IDSMPropertyBag* pPB); bool EditResource(CTreeItemResource* t); bool EditChapter(CTreeItemChapter* t); public: CConvertDlg(CWnd* pParent = NULL); // standard constructor virtual ~CConvertDlg(); // Dialog Data enum { IDD = IDD_CONVERT_DLG }; CFilterTreeCtrl m_tree; CString m_fn; protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support virtual BOOL PreTranslateMessage(MSG* pMsg); virtual BOOL OnInitDialog(); virtual void OnOK(); DECLARE_MESSAGE_MAP() public: afx_msg LRESULT OnGraphNotify(WPARAM wParam, LPARAM lParam); afx_msg void OnDropFiles(HDROP hDropInfo); afx_msg void OnClose(); afx_msg void OnNMClickTree1(NMHDR *pNMHDR, LRESULT *pResult); afx_msg void OnNMRclickTree1(NMHDR *pNMHDR, LRESULT *pResult); afx_msg void OnNMDblclkTree1(NMHDR *pNMHDR, LRESULT *pResult); afx_msg void OnBnClickedButton1(); afx_msg void OnUpdateButton1(CCmdUI* pCmdUI); afx_msg void OnTimer(UINT_PTR nIDEvent); afx_msg void OnBnClickedButton2(); afx_msg void OnBnClickedButton3(); afx_msg void OnBnClickedButton4(); afx_msg void OnUpdateButton2(CCmdUI* pCmdUI); afx_msg void OnUpdateButton3(CCmdUI* pCmdUI); afx_msg void OnUpdateButton4(CCmdUI* pCmdUI); };