home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgLangD.iso / C++-7 / DISK8 / MFC / SAMPLES / OCLIENT / MAINWND.H$ / mainwnd
Encoding:
Text File  |  1992-01-15  |  2.9 KB  |  117 lines

  1. // This is a part of the Microsoft Foundation Classes C++ library.
  2. // Copyright (C) 1992 Microsoft Corporation
  3. // All rights reserved.
  4. //
  5. // This source code is only intended as a supplement to the
  6. // Microsoft Foundation Classes Reference and Microsoft
  7. // QuickHelp documentation provided with the library.
  8. // See these sources for detailed information regarding the
  9. // Microsoft Foundation Classes product.
  10.  
  11. // class CMainWnd - the main frame window for this app
  12.  
  13. class CItemWnd;
  14. class CMainWnd;
  15.  
  16. class CMainDocument : public COleClientDoc
  17. {
  18.     CMainWnd*   m_pView;
  19. public:
  20.     CMainDocument(CMainWnd* pView)
  21.         { m_pView = pView; }
  22.  
  23.     // iterator for contained items
  24.     virtual COleClientItem* GetNextItem(POSITION& rPosition,
  25.         BOOL* pIsSelected);
  26. };
  27.  
  28.  
  29. class CMainWnd : public CFrameWnd
  30. {
  31. public:
  32.     CString         m_title;            // title of window
  33.     CString         m_fileName;         // file name (may be empty)
  34.  
  35. public:
  36.     CMainWnd();
  37.  
  38. // Attributes
  39.     CItemWnd* GetSelection() const;
  40.     void    SetSelection(CItemWnd* pNewSel);
  41.  
  42.     const CMainDocument* GetDocument() const;
  43.     CMainDocument* GetDocument();
  44.  
  45. // Operations
  46.     void    Hourglass(BOOL bOn);
  47.     void    ErrorMessage(UINT id);
  48.  
  49.     void    Dirty();
  50.  
  51.     // File helpers
  52.     BOOL    SaveAsNeeded();
  53.     void    InitFile(BOOL fOpen);
  54.     BOOL    DoSave(const char* szFileName);
  55.     BOOL    DoFileDlg(CString& fileName, UINT nIDTitle, DWORD lFlags);
  56.  
  57.     // naming/registering
  58.     void    SetTitle();
  59.     void    DeregisterDoc();
  60.  
  61.     // reading-writing content
  62.     virtual void Serialize(CArchive& ar);       // from CObject
  63. #ifdef _DEBUG
  64.     virtual void AssertValid() const;
  65. #endif
  66.  
  67. // Callbacks
  68.     // windows messages
  69.     afx_msg void OnInitMenuPopup(CMenu*, UINT, BOOL);
  70.     afx_msg void OnDestroy();
  71.     afx_msg void OnClose();
  72.     afx_msg void OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized);
  73.     afx_msg BOOL OnQueryEndSession();
  74.  
  75.     // callback helpers
  76.     BOOL    DoCopySelection();
  77.     BOOL    DoPaste(BOOL fLink);
  78.     void    ClearAll();
  79.  
  80.     // commands
  81.     afx_msg void OnFileNew();
  82.     afx_msg void OnFileOpen();
  83.     afx_msg void OnFileSave();
  84.     afx_msg void OnFileSaveAs();
  85.     afx_msg void OnExit();
  86.     afx_msg void OnAbout();
  87.  
  88.     afx_msg void OnCut();
  89.     afx_msg void OnCopy();
  90.     afx_msg void OnPaste();
  91.     afx_msg void OnPasteLink();
  92.     afx_msg void OnClear();
  93.     afx_msg void OnClearAll();
  94.     afx_msg void OnInsertObject();
  95.     afx_msg void OnEditLinks();
  96.  
  97. // Implementation
  98. protected:
  99.     virtual BOOL OnCommand(UINT wParam, LONG lParam);
  100.     CItemWnd* m_pSelection;
  101.     BOOL    m_fDirty;
  102.  
  103.     CMainDocument   m_document;
  104.  
  105.     DECLARE_MESSAGE_MAP()
  106. };
  107.  
  108. // inlines
  109. inline void CMainWnd::Dirty()
  110.     { m_fDirty = TRUE; }
  111. inline const CMainDocument* CMainWnd::GetDocument() const
  112.     { return &m_document; }
  113. inline CMainDocument* CMainWnd::GetDocument()
  114.     { return &m_document; }
  115. inline CItemWnd* CMainWnd::GetSelection() const
  116.     { return m_pSelection; } // Just the top-most window
  117.