-
Notifications
You must be signed in to change notification settings - Fork 1
/
ResizableState.cpp
135 lines (121 loc) · 4.05 KB
/
ResizableState.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
/////////////////////////////////////////////////////////////////////////////
//
// This file is part of ResizableLib
// http://sourceforge.net/projects/resizablelib
//
// Copyright (C) 2000-2004 by Paolo Messina
// http://www.geocities.com/ppescher - mailto:ppescher@hotmail.com
//
// The contents of this file are subject to the Artistic License (the "License").
// You may not use this file except in compliance with the License.
// You may obtain a copy of the License at:
// http://www.opensource.org/licenses/artistic-license.html
//
// If you find this code useful, credits would be nice!
//
/////////////////////////////////////////////////////////////////////////////
/*!
* @file
* @brief Implementation of the CResizableState class.
*/
#include "stdafx.h"
#include "ResizableState.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CResizableState::CResizableState()
{
m_sStorePath = m_sDefaultStorePath;
}
CResizableState::~CResizableState()
{
}
// static intializer must be called before user code
#pragma warning(disable:4073)
#pragma init_seg(lib)
CString CResizableState::m_sDefaultStorePath(_T("ResizableState"));
/*!
* Static function to set the default path used to store state information.
* This path is used to initialize all the instances of this class.
* @sa GetDefaultStateStore GetStateStore SetStateStore
*
* @param szPath String that specifies the new path to be set
*/
void CResizableState::SetDefaultStateStore(LPCTSTR szPath)
{
m_sDefaultStorePath = szPath;
}
/*!
* Static function to retrieve the default path used to store state
* information.
* This path is used to initialize all the instances of this class.
* @sa SetDefaultStateStore GetStateStore SetStateStore
*
* @return The return value is a string that specifies the current path
*/
LPCTSTR CResizableState::GetDefaultStateStore()
{
return m_sDefaultStorePath;
}
/*!
* This function sets the path used to store state information by
* the current instance of the class.
* @sa GetStateStore GetDefaultStateStore SetDefaultStateStore
*
* @param szPath String that specifies the new path to be set
*/
void CResizableState::SetStateStore(LPCTSTR szPath)
{
m_sStorePath = szPath;
}
/*!
* This function retrieves the path used to store state information by
* the current instance of the class.
* @sa SetStateStore GetDefaultStateStore SetDefaultStateStore
*
* @return The return value is a string that specifies the current path
*/
LPCTSTR CResizableState::GetStateStore()
{
return m_sStorePath;
}
/*!
* This function writes state information and associates it with some
* identification text for later retrieval.
* The base implementation uses the application profile to persist state
* information, but this function can be overridden to implement
* different methods.
*
* @param szId String that identifies the stored settings
* @param szState String that represents the state information to store
*
* @return The return value is @a TRUE if settings have been successfully
* stored, @a FALSE otherwise.
*/
BOOL CResizableState::WriteState(LPCTSTR szId, LPCTSTR szState)
{
return AfxGetApp()->WriteProfileString(GetStateStore(), szId, szState);
}
/*!
* This function reads state information previously associated with some
* identification text.
* The base implementation uses the application profile to persist state
* information, but this function can be overridden to implement
* different methods.
*
* @param szId String that identifies the stored settings
* @param rsState String to be filled with the retrieved state information
*
* @return The return value is @a TRUE if settings have been successfully
* retrieved, @a FALSE otherwise.
*/
BOOL CResizableState::ReadState(LPCTSTR szId, CString &rsState)
{
rsState = AfxGetApp()->GetProfileString(GetStateStore(), szId);
return !rsState.IsEmpty();
}