CEDFileSelector::CEDFileSelector(float _x, float _y, float _sx, float _sy, char* path, char* label) : CGUIFileBrowser(_x,_y,_sx,_sy) //,path,label,1) { title->SetText("FileSelector"); MsgAcceptConsume(MsgKeyboard); compareFunction=&Compare; SetCompareFunctionSubTree(&Compare); AddRootItem(path,label,1); SetDirMenu(); SetFileMenu(); }
void MyTreeCtrl::RefreshTreeItems(Builder *pBuilder) { VTLOG1("Refreshing Tree Items:"); // Deleting the previous items can call OnSelChanged, which can cause VTB // to forget the active layer, so indicate that this is not user input. m_bUser = false; DeleteAllItems(); m_bUser = true; rootId = AddRoot(_("Layers")); SetItemBold(rootId); int image, imageSel; wxTreeItemId elevId = AddRootItem(MyTreeCtrl::TreeCtrlIcon_Grid, _("Elevation")); SetItemData(elevId, new MyTreeItemData(LT_ELEVATION)); wxTreeItemId imageId = AddRootItem(MyTreeCtrl::TreeCtrlIcon_Image, _("Images")); SetItemData(imageId, new MyTreeItemData(LT_IMAGE)); wxTreeItemId buildId = AddRootItem(MyTreeCtrl::TreeCtrlIcon_Building, _("Structures")); SetItemData(buildId, new MyTreeItemData(LT_STRUCTURE)); wxTreeItemId roadId = AddRootItem(MyTreeCtrl::TreeCtrlIcon_Road, _("Roads")); SetItemData(roadId, new MyTreeItemData(LT_ROAD)); wxTreeItemId vegId = AddRootItem(MyTreeCtrl::TreeCtrlIcon_Veg1, _("Vegetation")); SetItemData(vegId, new MyTreeItemData(LT_VEG)); wxTreeItemId waterId = AddRootItem(MyTreeCtrl::TreeCtrlIcon_Water, _("Water")); SetItemData(waterId, new MyTreeItemData(LT_WATER)); wxTreeItemId utilityId = AddRootItem(MyTreeCtrl::TreeCtrlIcon_Utility, _("Utilities")); SetItemData(utilityId, new MyTreeItemData(LT_UTILITY)); wxTreeItemId rawId = AddRootItem(MyTreeCtrl::TreeCtrlIcon_Raw, _("Raw")); SetItemData(rawId, new MyTreeItemData(LT_RAW)); image = TreeCtrlIcon_File; imageSel = TreeCtrlIcon_FileSelected; vtLayerPtr lp; int iLayers = 0; if (pBuilder) iLayers = pBuilder->NumLayers(); wxTreeItemId hSelectedItem; for (int i = 0; i < iLayers; i++) { lp = pBuilder->GetLayer(i); wxString str = MakeItemName(lp); wxTreeItemId hItem; switch (lp->GetType()) { case LT_ELEVATION: hItem = AppendItem(elevId, str, image, imageSel); break; case LT_IMAGE: hItem = AppendItem(imageId, str, image, imageSel); break; case LT_ROAD: hItem = AppendItem(roadId, str, image, imageSel); break; case LT_STRUCTURE: hItem = AppendItem(buildId, str, image, imageSel); break; case LT_VEG: hItem = AppendItem(vegId, str, image, imageSel); break; case LT_WATER: hItem = AppendItem(waterId, str, image, imageSel); break; case LT_UTILITY: hItem = AppendItem(utilityId, str, image, imageSel); break; case LT_RAW: hItem = AppendItem(rawId, str, image, imageSel); break; case LT_UNKNOWN: case LAYER_TYPES: // Keep picky compilers quiet. break; } if (hItem.IsOk()) { SetItemData(hItem, new MyTreeItemData(lp)); if (lp == pBuilder->GetActiveLayer()) hSelectedItem = hItem; if (!lp->GetVisible()) { SetItemFont(hItem, *wxITALIC_FONT); SetItemTextColour(hItem, wxColour(80,80,80)); } } } VTLOG(" %d layers.\n", iLayers); // Expand the groups after they have all their items. It doesn't work // to expand before, because then not all items are shown. Expand(elevId); Expand(imageId); Expand(roadId); Expand(buildId); Expand(vegId); Expand(waterId); Expand(utilityId); Expand(rawId); // Wait until all the groups are expanded, before highlighting the // selected item, so that it will definitely be in view. if (hSelectedItem.IsOk()) SelectItem(hSelectedItem); }