Пример #1
0
void IconPanel::OnMenuItemClick(wxCommandEvent& evt) {
  ExtendedMenuItem* menuItem = GetClickedMenuItem(evt);
  wxString name = menuItem->GetMetadata(_T("name"));

  User* user = wxGetApp().GetUser();
  FolderItem* rootFolderItem = user->GetRootFolderItem();

  if (name == _T("addSpecialItem")) {

    user->AddNewFolderItemFromPath(rootFolderItem, menuItem->GetMetadata(_T("specialItemMacro")));

  } else if (name == _T("newShortcut")) {

    FileOrFolderDialog* d = new FileOrFolderDialog(this);
    int result = d->ShowModal();
    if (result == wxID_OK) {
      wxGetApp().GetUser()->AddNewFolderItemFromPath(wxGetApp().GetUser()->GetRootFolderItem(), d->GetPath());
    }  

    d->Destroy();

  } else if (name == _T("newGroup")) {

    wxGetApp().GetUser()->EditNewFolderItem(wxGetApp().GetUser()->GetRootFolderItem(), true);

  } else if (name == _T("browseButtonFolderItem")) {

    FolderItem* folderItem = wxGetApp().GetUser()->GetRootFolderItem()->GetChildById(menuItem->GetMetadataInt(_T("folderItemId")));
    if (!folderItem) {
      evt.Skip();
    } else {
      if (folderItem->IsGroup()) {
        wxGetApp().GetUtilities().ShowTreeViewDialog(evt.GetId());
      } else {
        folderItem->Launch();
      }
    }

  } else {

    evt.Skip();

  }
}