diff --git a/Common/LCLayout.cpp b/Common/LCLayout.cpp new file mode 100644 index 0000000..2fa3306 --- /dev/null +++ b/Common/LCLayout.cpp @@ -0,0 +1,129 @@ +/*=========================================================================== +==== ==== +==== ==== +============================================================================= +==== ==== +==== File : LCLayout.cpp ==== +==== Project name : ==== +==== Project number : ==== +==== Creation date : 10/08/2000 ==== +==== ==== +==== ==== +============================================================================= +===========================================================================*/ + + + +//============================================================================ +// Inclusions +//============================================================================ +#include "stdafx.h" +#include "LCLayout.h" + +//============================================================================ +// Constants +//============================================================================ + + +//============================================================================ +// Data types +//============================================================================ + + +//============================================================================ +// Variables +//============================================================================ + + +//============================================================================ +// Development tools +//============================================================================ + + +//============================================================================ +// Templates and global functions +//============================================================================ + + +//============================================================================ +//============================================================================ +// class CLCLayout +//============================================================================ +//============================================================================ + + +/*============================================================================ + +Description: Restore each column size from the registry + +pLC: A pointer to the CListCtrl object + +regKey: A string containing the registry key where + the layout information will be retreive. + +Retour: - + +============================================================================*/ +void CLCLayout::RestoreLayout(CListCtrl* pLC, const CString& regKey) +{ + CWinApp* pApp = AfxGetApp(); + int nCol = 0; + int colCx = 0; + CString key; + + /* Get the column quantity */ + nCol = pApp->GetProfileInt(regKey, "Column Count", 0); + + /* Restore each column width */ + for (int i = 0; i < nCol; i++) { + + key.Format("Column %i", i); + colCx = pApp->GetProfileInt(regKey, key, -1); + + if (colCx != -1) { + pLC->SetColumnWidth(i, colCx); + } + } +} + + +/*============================================================================ + +Description: Save each column size to the registry + +pLC: A pointer to the CListCtrl object + +regKey: A string that will be used to create a registry key where + the layout information will be store. + +Retour: - + +============================================================================*/ +void CLCLayout::SaveLayout(CListCtrl* pLC, const CString& regKey) +{ + CString key; + CWinApp* pApp = AfxGetApp(); + CHeaderCtrl* pHeader = pLC->GetHeaderCtrl(); + int nCol = pHeader->GetItemCount(); + int colCx = 0; + + /* Store the column quantity */ + pApp->WriteProfileInt(regKey, "Column Count", nCol); + + /* Store each column width */ + CRect rcH; + for (int i = 0; i < nCol; i++) { + pHeader->GetItemRect(i, &rcH); + colCx = rcH.Width(); + + key.Format("Column %i", i); + pApp->WriteProfileInt(regKey, key, colCx); + } +} + + +//============================================================================ +//============================================================================ +// Test section +//============================================================================ +//============================================================================