void ClassListDialog::InitControls() { // create a wxArrayString with the names of all classes: const wxClassInfo *ci = wxClassInfo::GetFirst(); wxArrayString arr; while (ci) { arr.Add(ci->GetClassName()); ci = ci->GetNext(); } arr.Sort(); // sort alphabetically // now add it to the raw-mode listbox for (unsigned int i=0; i<arr.GetCount(); i++) if (!IsToDiscard(arr[i])) m_pRawListBox->Append(arr[i]); m_nCount = m_pRawListBox->GetCount(); // sort again using size as sortkey arr.Sort((wxArrayString::CompareFunction)CompareClassSizes); // now add it to the size-mode listbox for (unsigned int i=0; i<arr.GetCount(); i++) if (!IsToDiscard(arr[i])) m_pSizeListBox->Append(arr[i]); // add root item to parent-mode treectrl wxTreeItemId id = m_pParentTreeCtrl->AddRoot(wxT("wxObject")); // recursively add all leaves to the treectrl int count = AddClassesWithParent(CLASSINFO(wxObject), id); m_pParentTreeCtrl->SetItemText(id, m_pParentTreeCtrl->GetItemText(id) + wxString::Format(wxT(" [%d]"), count)); // initially expand the root item m_pParentTreeCtrl->Expand(id); m_nTotalCount = arr.GetCount(); UpdateFilterText(); // don't leave blank the XTI info display m_pChoiceBook->ChangeSelection(0); m_pRawListBox->Select(0); UpdateClassInfo(m_pRawListBox->GetStringSelection()); }
void wxWebUpdateListCtrl::UpdatePackagesVersions(wxWebUpdateListCtrlFilter filter) { for (int j=0; j < GetItemCount(); j++) { const wxWebUpdatePackage &curr = m_arrRemotePackages[GetPackageIndexForItem(j)]; SetLocalVersionFor(j, curr); wxWebUpdateCheckFlag f = CompareVersion(curr); if (IsToDiscard(filter, j, curr, f)) { DeleteItem(j); j--; continue; // continue with next package } } }
void wxWebUpdateListCtrl::RebuildPackageList(wxWebUpdateListCtrlFilter filter) { // remove old contents DeleteAllItems(); int idx = 0; // could go out of synch with 'i' because // some packages could not be added to the list.... for (int i=0; i < (int)m_arrRemotePackages.GetCount(); i++, idx++) { wxWebUpdatePackage &curr = m_arrRemotePackages[i]; wxLogAdvMsg(wxS("wxWebUpdateListCtrl::RebuildPackageList - Adding the '") + curr.GetName() + wxS("' package...")); // set the properties for the first column (NAME) // ---------------------------------------------- InsertItem(idx, curr.GetName()); // set the properties for the second column (LATEST VERSION) // --------------------------------------------------------- SetItem(idx, 1, curr.GetLatestVersion()); // set the properties for the third column (LOCAL VERSION) // ------------------------------------------------------- SetLocalVersionFor(idx, curr); // tocheck will be TRUE for outdated items: wxWebUpdateCheckFlag f = CompareVersion(curr); bool tocheck = (f == wxWUCF_OUTOFDATE || f == wxWUCF_NOTINSTALLED); if (IsToDiscard(filter, idx, curr, f)) { DeleteItem(idx); idx--; continue; // continue with next package } // set the properties for the fourth column (SIZE) // ----------------------------------------------- // we'll leave the task of updating this field to the // wxSizeCacherThread that has been launched by wxWebUpdateDlg unsigned long bytesize = 0; wxWebUpdateDownload &d = curr.GetDownload(); if (d.IsDownloadSizeCached()) bytesize = d.GetDownloadSize(); SetItem(idx, 3, wxGetSizeStr(bytesize)); // set the properties for the fifth column (IMPORTANCE) // ---------------------------------------------------- switch (curr.GetImportance()) { case wxWUPI_HIGH: SetItem(idx, 4, _("high!")); Check(idx, tocheck); break; case wxWUPI_NORMAL: SetItem(idx, 4, _("normal")); Check(idx, tocheck); break; case wxWUPI_LOW: SetItem(idx, 4, _("low")); Check(idx, FALSE); break; default: wxASSERT_MSG(0, wxS("Invalid package !")); } // set the properties for the sixth column (REQUIRES) // ---------------------------------------------------- wxString str(curr.GetPrerequisites()); SetItem(idx, 5, str.IsEmpty() ? _("none") : str.c_str()); // set as item data the index in our remote package array SetItemData(idx, i); } // select the first item of the list if (GetItemCount() > 0) SetItemState(0, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED); }