void CListViewInfo::Save(const UString &id) const { const UInt32 dataSize = kListViewHeaderSize + kColumnInfoSize * Columns.Size(); CByteArr buf(dataSize); Set32(buf, kListViewVersion); Set32(buf + 4, SortID); SetBool(buf + 8, Ascending); FOR_VECTOR(i, Columns) { const CColumnInfo &column = Columns[i]; Byte *p = buf + kListViewHeaderSize + i * kColumnInfoSize; Set32(p, column.PropID); SetBool(p + 4, column.IsVisible); Set32(p + 8, column.Width); } { CSettingsStoreSP regSP; CSettingsStore& reg = regSP.Create(FALSE, FALSE); if (reg.CreateKey(theApp.GetRegSectionPath(RK_COLUMNS))) { CRect rt; reg.Write(GetSystemString(id), buf, dataSize); } } }
void CFileManagerDlg::SaveState() { CSettingsStoreSP regSP; CSettingsStore& reg = regSP.Create(FALSE, FALSE); if (reg.CreateKey(theApp.GetRegSectionPath(RP_WINDOW_INFO))) { reg.Write(RK_MAXIMIZED, m_bMaximized ? 1 : 0); if (!m_bMaximized) { CRect rt; GetWindowRect(&rt); reg.Write(RK_POSITION, rt); } } }
void CFileManagerDlg::LoadState() { CSettingsStoreSP regSP; CSettingsStore& reg = regSP.Create(FALSE, TRUE); if (reg.Open(theApp.GetRegSectionPath(RP_WINDOW_INFO))) { int nMaximized = 0; reg.Read(RK_MAXIMIZED, nMaximized); if (nMaximized != 0) SendMessage(WM_SYSCOMMAND, SC_MAXIMIZE); else { CRect rt; if (reg.Read(RK_POSITION, rt)) MoveWindow(&rt); } } }
void CListViewInfo::Read(const UString &id) { Clear(); BYTE * buf = NULL; UInt32 size = 0; { CSettingsStoreSP regSP; CSettingsStore& reg = regSP.Create(FALSE, TRUE); if (reg.Open(theApp.GetRegSectionPath(RK_COLUMNS))) { if (!reg.Read(GetSystemString(id), &buf, &size)) return; } } if (size >= kListViewHeaderSize) { UInt32 version; Get32(buf, version); if (version == kListViewVersion) { Get32(buf + 4, SortID); GetBool(buf + 8, Ascending); size -= kListViewHeaderSize; if (size % kColumnInfoSize == 0) { unsigned numItems = size / kColumnInfoSize; Columns.ClearAndReserve(numItems); for (unsigned i = 0; i < numItems; i++) { CColumnInfo column; const Byte *p = buf + kListViewHeaderSize + i * kColumnInfoSize; Get32(p, column.PropID); GetBool(p + 4, column.IsVisible); Get32(p + 8, column.Width); Columns.AddInReserved(column); } } } } delete[] buf; }