//+------------------------------------------------------------------------- // // Microsoft Windows // // Copyright (C) Microsoft Corporation, 1999 - 1999 // // File: favui.h // //-------------------------------------------------------------------------- // favui.h - favorites UI header #ifndef _FAVUI_H_ #define _FAVUI_H_ #include "trobimpl.h" #include "mmcres.h" class CAddFavDialog : public CDialog { public: enum { IDD = IDD_ADDFAVORITE }; CAddFavDialog(LPCTSTR szName, CFavorites* pFavorites, CWnd* pParent = NULL); ~CAddFavDialog(); HRESULT CreateFavorite(CFavObject** ppfavRet); protected: // method overrides virtual BOOL OnInitDialog(); virtual void OnOK(); afx_msg void OnAddFolder(); afx_msg void OnChangeName(); IMPLEMENT_CONTEXT_HELP(g_aHelpIDs_IDD_ADDFAVORITE); DECLARE_MESSAGE_MAP() CTreeObserverTreeImpl m_FavTree; CEdit m_FavName; CFavorites* m_pFavorites; LONG_PTR m_lAdviseCookie; HRESULT m_hr; CFavObject* m_pfavItem; CString m_strName; }; class CAddFavGroupDialog : public CDialog { public: enum { IDD = IDD_NEWFAVFOLDER }; CAddFavGroupDialog(CWnd* pParent); ~CAddFavGroupDialog(); LPCTSTR GetGroupName() { return m_strName; } protected: // method overrides virtual BOOL OnInitDialog(); virtual void OnOK(); IMPLEMENT_CONTEXT_HELP(g_aHelpIDs_IDD_NEWFAVFOLDER); DECLARE_MESSAGE_MAP() afx_msg void OnChangeName(); CEdit m_GrpName; TCHAR m_strName[MAX_PATH]; }; class COrganizeFavDialog : public CDialog { public: enum { IDD = IDD_FAVORGANIZE }; COrganizeFavDialog(CFavorites* pFavorites, CWnd* pParent = NULL); ~COrganizeFavDialog(); protected: // method overrides virtual BOOL OnInitDialog(); virtual void OnOK(); virtual void OnCancel(); afx_msg void OnAddFolder(); afx_msg void OnDelete(); afx_msg void OnRename(); afx_msg void OnMoveTo(); afx_msg void OnSelChanged(NMHDR* pMNHDR, LRESULT* plResult); afx_msg void OnBeginLabelEdit(NMHDR* pMNHDR, LRESULT* plResult); afx_msg void OnEndLabelEdit(NMHDR* pMNHDR, LRESULT* plResult); IMPLEMENT_CONTEXT_HELP(g_aHelpIDs_IDD_FAVORGANIZE); DECLARE_MESSAGE_MAP() CTreeObserverTreeImpl m_FavTree; CStatic m_FavName; CStatic m_FavInfo; CFont m_FontBold; CFavorites* m_pFavorites; LONG_PTR m_lAdviseCookie; BOOL m_bRenameMode; TREEITEMID m_tidRenameItem; }; class CFavFolderDialog : public CDialog { public: enum { IDD = IDD_FAVSELECTFOLDER }; CFavFolderDialog(CFavorites* pFavorites, CWnd* pParent); ~CFavFolderDialog(); TREEITEMID GetFolderID() { return m_tidFolder; } protected: // method overrides virtual BOOL OnInitDialog(); virtual void OnOK(); IMPLEMENT_CONTEXT_HELP(g_aHelpIDs_IDD_FAVSELECTFOLDER); DECLARE_MESSAGE_MAP() CTreeObserverTreeImpl m_FavTree; TREEITEMID m_tidFolder; CFavorites* m_pFavorites; LONG_PTR m_lAdviseCookie; }; // Container for CTreeObserverTreeImpl control which makes it a favorites // tree viewer control. This class attaches the tree control to the // favorites data source and handles all the necessart notifications from // the tree control. It sends a MMC message to its parent whenever the tree // selection changes. // The primary purpose for this class is to provide a self-contained favorites // viewer that the node manager can use in a non-MFC dialog. class CFavTreeCtrl : public CWnd { private: /* * Make the ctor private so it's only accessible to CreateInstace. * That way, we can insure that instances of this class can only * be created in well-known ways (i.e. on the heap). Using this * technique means that this class can't be used as a base class * or member of another class, but we can live with those restrictions. * * We need to go to this trouble because this class is used (only) * on the nodemgr side of things, in the Task Wizard. It refers to * it only by handle (see CAMCView::ScCreateFavoriteObserver), and has * no access to this class, so it can't delete it. If we make the * class self-deleting, everything's copasetic. */ CFavTreeCtrl() {} public: static CFavTreeCtrl* CreateInstance() { return (new CFavTreeCtrl); } SC ScInitialize(CFavorites* pFavorites, DWORD dwStyles); DECLARE_MESSAGE_MAP() afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); afx_msg void OnSize(UINT nType, int cx, int cy); afx_msg void OnSetFocus(CWnd* pOldWnd); afx_msg void OnSelChanged(NMHDR* pMNHDR, LRESULT* plResult); virtual void PostNcDestroy(); private: enum {IDC_FAVTREECTRL = 1000}; CTreeObserverTreeImpl m_FavTree; }; #endif // _FAVUI_H_