home *** CD-ROM | disk | FTP | other *** search
/ Mastering Microsoft Visual C++ 4 (2nd Edition) / VisualC4.ISO / tabdemo / tabdedoc.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  1995-11-30  |  3.0 KB  |  131 lines

  1. // TabDeDoc.cpp : implementation of the CTabDemoDoc class
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include "TabDemo.h"
  6.  
  7. #include "TabDeDoc.h"
  8. #include "style.h"
  9. #include "justify.h"
  10. #include "pitch.h"
  11.  
  12. #ifdef _DEBUG
  13. #define new DEBUG_NEW
  14. #undef THIS_FILE
  15. static char THIS_FILE[] = __FILE__;
  16. #endif
  17.  
  18. /////////////////////////////////////////////////////////////////////////////
  19. // CTabDemoDoc
  20.  
  21. IMPLEMENT_DYNCREATE(CTabDemoDoc, CDocument)
  22.  
  23. BEGIN_MESSAGE_MAP(CTabDemoDoc, CDocument)
  24.    //{{AFX_MSG_MAP(CTabDemoDoc)
  25.    ON_COMMAND(ID_TEXT_FORMAT, OnTextFormat)
  26.    //}}AFX_MSG_MAP
  27. END_MESSAGE_MAP()
  28.  
  29. /////////////////////////////////////////////////////////////////////////////
  30. // CTabDemoDoc construction/destruction
  31.  
  32. CTabDemoDoc::CTabDemoDoc()
  33. {
  34.    // TODO: add one-time construction code here
  35.    m_Bold = FALSE;
  36.    m_Italic = FALSE;
  37.    m_Underline = FALSE;
  38.    m_Justify = JUSTIFY_LEFT;
  39.    m_Pitch = PITCH_VARIABLE;
  40.    m_Spacing = 1;
  41. }
  42.  
  43. CTabDemoDoc::~CTabDemoDoc()
  44. {
  45. }
  46.  
  47. BOOL CTabDemoDoc::OnNewDocument()
  48. {
  49.    if (!CDocument::OnNewDocument())
  50.       return FALSE;
  51.  
  52.    // TODO: add reinitialization code here
  53.    // (SDI documents will reuse this document)
  54.  
  55.    return TRUE;
  56. }
  57.  
  58. /////////////////////////////////////////////////////////////////////////////
  59. // CTabDemoDoc serialization
  60.  
  61. void CTabDemoDoc::Serialize(CArchive& ar)
  62. {
  63.    if (ar.IsStoring())
  64.    {
  65.       // TODO: add storing code here
  66.    }
  67.    else
  68.    {
  69.       // TODO: add loading code here
  70.    }
  71. }
  72.  
  73. /////////////////////////////////////////////////////////////////////////////
  74. // CTabDemoDoc diagnostics
  75.  
  76. #ifdef _DEBUG
  77. void CTabDemoDoc::AssertValid() const
  78. {
  79.    CDocument::AssertValid();
  80. }
  81.  
  82. void CTabDemoDoc::Dump(CDumpContext& dc) const
  83. {
  84.    CDocument::Dump(dc);
  85. }
  86. #endif //_DEBUG
  87.  
  88. /////////////////////////////////////////////////////////////////////////////
  89. // CTabDemoDoc commands
  90.  
  91. void CTabDemoDoc::OnTextFormat() 
  92. {
  93.    // TODO: Add your command handler code here
  94.  
  95.    // create tabbed dialog box object:
  96.    CPropertySheet PropertySheet ("Format");
  97.  
  98.    // create object for each page:
  99.    CStyle StylePage;
  100.    CJustify JustifyPage;
  101.    CPitch PitchPage;
  102.  
  103.    // add pages to dialog box object:
  104.    PropertySheet.AddPage (&StylePage);
  105.    PropertySheet.AddPage (&JustifyPage);
  106.    PropertySheet.AddPage (&PitchPage);
  107.  
  108.    // initialize page object data members:
  109.    StylePage.m_Bold = m_Bold;
  110.    StylePage.m_Italic = m_Italic;
  111.    StylePage.m_Underline = m_Underline;
  112.    JustifyPage.m_Justify = m_Justify;
  113.    PitchPage.m_Pitch = m_Pitch;
  114.    PitchPage.m_Spacing = m_Spacing;
  115.            
  116.    // display tabbed dialog box:   
  117.    if (PropertySheet.DoModal () == IDOK)
  118.       {
  119.       // save values of page object data members:
  120.       m_Bold = StylePage.m_Bold;
  121.       m_Italic = StylePage.m_Italic;
  122.       m_Underline = StylePage.m_Underline;
  123.       m_Justify = JustifyPage.m_Justify;
  124.       m_Pitch = PitchPage.m_Pitch;
  125.       m_Spacing = PitchPage.m_Spacing;
  126.                
  127.       // redraw the text:
  128.       UpdateAllViews (NULL);
  129.       }   
  130. }
  131.