-
Notifications
You must be signed in to change notification settings - Fork 753
/
SampleDoc.cpp
executable file
·135 lines (107 loc) · 2.77 KB
/
SampleDoc.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
// SampleDoc.cpp : implementation of the CSampleDoc class
//
#include "stdafx.h"
#include "Sample.h"
#include "ceditcmd.h"
#include "SampleDoc.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CSampleDoc
IMPLEMENT_DYNCREATE(CSampleDoc, CDocument)
BEGIN_MESSAGE_MAP(CSampleDoc, CDocument)
//{{AFX_MSG_MAP(CSampleDoc)
ON_COMMAND(ID_READ_ONLY, OnReadOnly)
ON_UPDATE_COMMAND_UI(ID_READ_ONLY, OnUpdateReadOnly)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSampleDoc construction/destruction
#pragma warning(disable:4355)
CSampleDoc::CSampleDoc() : m_xTextBuffer(this)
{
// TODO: add one-time construction code here
// Initialize LOGFONT structure
memset(&m_lf, 0, sizeof(m_lf));
m_lf.lfWeight = FW_NORMAL;
m_lf.lfCharSet = ANSI_CHARSET;
m_lf.lfOutPrecision = OUT_DEFAULT_PRECIS;
m_lf.lfClipPrecision = CLIP_DEFAULT_PRECIS;
m_lf.lfQuality = DEFAULT_QUALITY;
m_lf.lfPitchAndFamily = DEFAULT_PITCH | FF_DONTCARE;
_tcscpy(m_lf.lfFaceName, _T("Courier New"));
m_pSyntaxColors = new SyntaxColors();
m_pMarkers = new CCrystalTextMarkers();
}
CSampleDoc::~CSampleDoc()
{
delete m_pSyntaxColors;
delete m_pMarkers;
}
BOOL CSampleDoc::OnNewDocument()
{
if (!CDocument::OnNewDocument())
return false;
m_xTextBuffer.InitNew();
return true;
}
/////////////////////////////////////////////////////////////////////////////
// CSampleDoc serialization
void CSampleDoc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
// TODO: add storing code here
}
else
{
// TODO: add loading code here
}
}
/////////////////////////////////////////////////////////////////////////////
// CSampleDoc diagnostics
#ifdef _DEBUG
void CSampleDoc::AssertValid() const
{
CDocument::AssertValid();
}
void CSampleDoc::Dump(CDumpContext& dc) const
{
CDocument::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CSampleDoc commands
void CSampleDoc::DeleteContents()
{
CDocument::DeleteContents();
m_xTextBuffer.FreeAll();
}
BOOL CSampleDoc::OnOpenDocument(LPCTSTR lpszPathName)
{
if (!CDocument::OnOpenDocument(lpszPathName))
return false;
return m_xTextBuffer.LoadFromFile(lpszPathName);
}
BOOL CSampleDoc::OnSaveDocument(LPCTSTR lpszPathName)
{
m_xTextBuffer.SaveToFile(lpszPathName);
return true; // Note - we didn't call inherited member!
}
void CSampleDoc::OnReadOnly()
{
if (! m_xTextBuffer.GetReadOnly())
{
m_xTextBuffer.SetReadOnly(true);
AfxMessageBox(_T("Document now read-only!"));
}
else
m_xTextBuffer.SetReadOnly(false);
}
void CSampleDoc::OnUpdateReadOnly(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck(m_xTextBuffer.GetReadOnly());
}