⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 workspacedlg.cpp

📁 Ever wanted to just type tail -f error_log on Windows?Envious of your Unix friends who can track cha
💻 CPP
📖 第 1 页 / 共 2 页
字号:
  pNewItem = new CWorkspaceItem;

  pNewItem->m_pView = pView;

  strcpy (pNewItem->m_szTailFile, pszFilename);

  if (!pWorkspace)
  {
    pNewItem->m_hti = m_Tree.AddTreeItem (m_htiNonWorkspace, pszFilename, WORKSPACE_ICON_FILE, WORKSPACE_ICON_FILE, (void*) pNewItem);

    m_pDefaultWorkspace->m_pItems->AddTail ((CObject*) pNewItem);
    
    m_Tree.Expand (m_htiNonWorkspace, TVE_EXPAND);
  }
  else
  {
    pNewItem->m_hti = m_Tree.AddTreeItem (pWorkspace->m_hti, pszFilename, WORKSPACE_ICON_FILE, WORKSPACE_ICON_FILE, (void*) pNewItem);

    pWorkspace->AddItem (pNewItem);
    
    m_Tree.Expand (pWorkspace->m_hti, TVE_EXPAND);
  }

  return TRUE;
}

/////////////////////////////////////////////////////////////////////////////
// CWorkspaceDlg 
//
BOOL CWorkspaceDlg::RemoveWorkspaceFile (
  CTailView* pView)
{
  POSITION stPos;
  CWorkspaceItem* pItem = NULL;
  CWorkspace* pSearch = NULL;

  // Loop over all workspaces to find the view.
  for (stPos = m_pWorkspaces->GetHeadPosition (); stPos != NULL; ) 
  {
    pSearch = (CWorkspace*) m_pWorkspaces->GetNext (stPos);

    if (pItem = pSearch->FindView (pView))
    {
      m_Tree.DelTreeItem (pItem->m_hti);

      pSearch->RemoveItem (pItem);

      delete (CWorkspaceItem*) pItem;

      return TRUE;
    }
  }

  return FALSE;
}

/////////////////////////////////////////////////////////////////////////////
// CWorkspaceDlg 
//
BOOL CWorkspaceDlg::RemoveWorkspaceFile (
  CTailView*  pView,
  CWorkspace* pWorkspace)
{
  CWorkspaceItem* pItem = NULL;
  CWorkspace* pSearch = NULL;

  pSearch = pWorkspace;

  if (!pWorkspace)
  {
    pSearch = m_pDefaultWorkspace;
  }

  if (pItem = pSearch->FindView (pView))
  {
    m_Tree.DelTreeItem (pItem->m_hti);

    pSearch->RemoveItem (pItem);

    delete (CWorkspaceItem*) pItem;
  }

  return FALSE;
}

/////////////////////////////////////////////////////////////////////////////
// CWorkspaceDlg 
//
BOOL CWorkspaceDlg::RemoveWorkspaceFile (
  CTailDoc*   pDoc,
  CWorkspace* pWorkspace)
{
  CWorkspaceItem* pItem = NULL;
  CWorkspace* pSearch = NULL;

  pSearch = pWorkspace;

  if (!pWorkspace)
  {
    pSearch = m_pDefaultWorkspace;
  }

  if (pItem = pSearch->FindDocument (pDoc))
  {
    m_Tree.DelTreeItem (pItem->m_hti);

    pSearch->RemoveItem (pItem);

    delete (CWorkspaceItem*) pItem;
  }

  return FALSE;
}

/////////////////////////////////////////////////////////////////////////////
// CWorkspaceDlg 
//
BOOL CWorkspaceDlg::AddWorkspace (
  char*       pszName)
{
  CWorkspace* pNewItem = NULL;

  pNewItem = new CWorkspace;

  strcpy (pNewItem->m_szName, pszName);

  pNewItem->m_hti = m_Tree.AddTreeItem (m_htiRoot, 
                                pszName, 
                                WORKSPACE_ICON_WORKSPACE, 
                                WORKSPACE_ICON_WORKSPACE, 
                                (void*) pNewItem);

//  m_DefaultWorkspace.m_pItems->AddTail ((CObject*) pNewItem);
  
  m_Tree.Expand (m_htiRoot, TVE_EXPAND);

  m_pWorkspaces->AddTail ((CObject*) pNewItem);


  return TRUE;
}

/////////////////////////////////////////////////////////////////////////////
// CWorkspaceDlg 
//
BOOL CWorkspaceDlg::AddNewWorkspace (
  void)
{
  char szWkspName[1024] = "";

  sprintf (szWkspName, "Workspace %ld", ++m_lAnonymousWorkspaceCount);

  AddWorkspace (szWkspName);

  return TRUE;
}

/*void CWorkspaceDlg::OnTreeItemAddToWorkspace() 
{
  CWorkspaceListDlg stDlg;
  CWorkspaceItem* pItem = NULL;

  HTREEITEM hItem = m_Tree.GetSelectedItem ();

  if (hItem && (pItem = (CWorkspaceItem*) m_Tree.GetItemData (hItem)))
  {
    stDlg.DoModal ();
  }
} */

/*void CWorkspaceDlg::OnTreeItemDelFromWorkspace() 
{
  CWorkspaceItem* pItem = NULL;

  HTREEITEM hItem = m_Tree.GetSelectedItem ();

	if (hItem && (pItem = (CWorkspaceItem*) m_Tree.GetItemData (hItem)))
  {
    char szText[1024];

    sprintf (szText, pItem->GetFilename ());
    ::AfxMessageBox (szText);
  }	
} */

/////////////////////////////////////////////////////////////////////////////
// CWorkspaceDlg 
//
// See if this file already exists in the given workspace.
CWorkspaceItem* CWorkspaceDlg::FindFile (
  CWorkspace* pWorkspace,
  char*       pszFilename)
{
  POSITION stPos;
  CWorkspace* pSearch = NULL;
  CWorkspaceItem* pFound = NULL;

  pSearch = pWorkspace;

  if (!pWorkspace)
  {
    pSearch = m_pDefaultWorkspace;
  }

  for (stPos = pSearch->m_pItems->GetHeadPosition (); stPos != NULL; ) 
  {
    pFound = (CWorkspaceItem*) pSearch->m_pItems->GetNext (stPos);

    if (strcmp (pFound->GetFilename (), pszFilename) == 0)
    {
      return pFound;
    }
  }

  return NULL;

}

/////////////////////////////////////////////////////////////////////////////
// CWorkspaceDlg 
//
CWorkspace* CWorkspaceDlg::FindWorkspace (
  CWorkspace* pWorkspace)
{
  POSITION stPos;
  CWorkspace* pFound = NULL;

  for (stPos = m_pWorkspaces->GetHeadPosition (); stPos != NULL; ) 
  {
    pFound = (CWorkspace*) m_pWorkspaces->GetNext (stPos);

    if (pFound == pWorkspace)
    {
      return pWorkspace;
    }
  }

  return NULL;

}

/////////////////////////////////////////////////////////////////////////////
// CWorkspaceDlg 
//
// Find the workspace containing the given workspace item.
CWorkspace* CWorkspaceDlg::GetWorkspace (
  CWorkspaceItem* pWorkspaceItem)
{
  POSITION        stPos;
  CWorkspace*     pFoundWksp = NULL;
  CWorkspaceItem* pFoundItem = NULL;

  for (stPos = m_pWorkspaces->GetHeadPosition (); stPos != NULL; ) 
  {
    pFoundWksp = (CWorkspace*) m_pWorkspaces->GetNext (stPos);

    if (pFoundWksp->FindItem (pWorkspaceItem))
    {
      return pFoundWksp;
    }
  }

  return NULL;

}

/////////////////////////////////////////////////////////////////////////////
// CWorkspaceDlg 
//
CWorkspaceItem* CWorkspaceDlg::FindWorkspaceItem (
  CWorkspaceItem* pWorkspaceItem)
{
  POSITION stPos;
  CWorkspace* pFound = NULL;
  CWorkspaceItem* pFoundItem = NULL;

  for (stPos = m_pWorkspaces->GetHeadPosition (); stPos != NULL; ) 
  {
    pFound = (CWorkspace*) m_pWorkspaces->GetNext (stPos);

    if (pFound->FindItem (pWorkspaceItem))
    {
      return pWorkspaceItem;
    }
  }

  return NULL;
}

/////////////////////////////////////////////////////////////////////////////
// CWorkspaceDlg 
//
CWorkspace* CWorkspaceDlg::FindWorkspace (
  long lIndex)
{
  POSITION stPos;

  if ((stPos = m_pWorkspaces->FindIndex (lIndex)) != NULL)
  {
      return (CWorkspace*) m_pWorkspaces->GetAt (stPos);
  }

  return NULL;
}

/////////////////////////////////////////////////////////////////////////////
// CWorkspaceDlg 
//
void CWorkspaceDlg::OnWorkspaceRenameWorkspace() 
{
  ::AfxMessageBox ("Rename workspace");	

	m_Tree.ModifyStyleEx (0, TVS_EDITLABELS);
}

/////////////////////////////////////////////////////////////////////////////
// CWorkspaceDlg 
//
void CWorkspaceDlg::OnWorkspaceAddFileToWorkspace() 
{
  ::AfxMessageBox ("Add file to workspace");	
}

/////////////////////////////////////////////////////////////////////////////
// CWorkspaceDlg 
//
void CWorkspaceDlg::OnWorkspaceRemoveWorkspace() 
{
  ::AfxMessageBox ("Delete workspace");	
}

/////////////////////////////////////////////////////////////////////////////
// CWorkspaceDlg 
//
void CWorkspaceDlg::OnWorkspaceSaveWorkspace() 
{
  ::AfxMessageBox ("Save workspace");	
}

/////////////////////////////////////////////////////////////////////////////
// CWorkspaceDlg 
//
void CWorkspaceDlg::OnWorkspaceSaveWorkspaceAs() 
{
  ::AfxMessageBox ("Save workspace as...");	
}

/////////////////////////////////////////////////////////////////////////////
// CWorkspaceDlg 
//
void CWorkspaceDlg::OnFileAddToWorkspace() 
{
  CWorkspaceListDlg stDlg;
  CWorkspaceItem* pItem = NULL;
  CWorkspace* pWorkspace = NULL;
  int nItem = 0;

  HTREEITEM hItem = m_Tree.GetSelectedItem ();

  if (hItem && (pItem = (CWorkspaceItem*) m_Tree.GetItemData (hItem)))
  {
    nItem = stDlg.DoModal ();

    if (nItem != -1)
    {
      if (pWorkspace = FindWorkspace (nItem))
      {
        AddWorkspaceFile ((char*) pItem->GetFilename (), pWorkspace);
      }
    }
  }
}

/////////////////////////////////////////////////////////////////////////////
// CWorkspaceDlg 
//
void CWorkspaceDlg::OnFileDeleleteFromWorkspace() 
{
  CWorkspaceItem* pItem = NULL;
  HTREEITEM       hItem = NULL;

  hItem = m_Tree.GetSelectedItem ();

  if (hItem && (pItem = (CWorkspaceItem*) m_Tree.GetItemData (hItem)))
  {
    // This *should* do everything we need.
    pItem->Close ();
  }
}

void CWorkspaceDlg::OnTopLevelAddNewWorkspace() 
{
  AddNewWorkspace ();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -