Example #1
0
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);
    }
  }
}
Example #2
0
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);
    }
  }
}
Example #3
0
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);
    }
  }
}
Example #4
0
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;
}