NCBI C++ ToolKit
pt_utils.cpp
Go to the documentation of this file.

Go to the SVN repository for this file.

1 /* $Id: pt_utils.cpp 47479 2023-05-02 13:24:02Z ucko $
2  * ===========================================================================
3  *
4  * PUBLIC DOMAIN NOTICE
5  * National Center for Biotechnology Information
6  *
7  * This software/database is a "United States Government Work" under the
8  * terms of the United States Copyright Act. It was written as part of
9  * the author's official duties as a United States Government employee and
10  * thus cannot be copyrighted. This software/database is freely available
11  * to the public for use. The National Library of Medicine and the U.S.
12  * Government have not placed any restriction on its use or reproduction.
13  *
14  * Although all reasonable efforts have been taken to ensure the accuracy
15  * and reliability of the software and data, the NLM and the U.S.
16  * Government do not and cannot warrant the performance or results that
17  * may be obtained by using this software or data. The NLM and the U.S.
18  * Government disclaim all warranties, express or implied, including
19  * warranties of performance, merchantability or fitness for any particular
20  * purpose.
21  *
22  * Please cite the author in any work or product based on this material.
23  *
24  * ===========================================================================
25  *
26  * Authors: Roman Katargin
27  *
28  * File Description:
29  *
30  */
31 
32 #include <ncbi_pch.hpp>
33 
34 #include <objects/general/Date.hpp>
37 
39 
41 
42 #include <gui/core/pt_utils.hpp>
43 #include <gui/core/pt_project.hpp>
44 #include <gui/core/document.hpp>
47 
50 
51 #include <wx/treectrl.h>
52 
54 
55 using namespace PT;
56 
58 
59 int PT::GetItemTypes(const TItems& items)
60 {
61  int types = 0;
62  for (size_t i = 0; i < items.size(); i++)
63  types |= items[i]->GetType();
64  return types;
65 }
66 
67 objects::CGBProjectHandle::TId PT::GetProjectId(wxTreeCtrl& treeCtrl, const CItem& item)
68 {
69  const CItem* pitem = &item;
70 
71  while(pitem && pitem->GetType() != eProject)
72  pitem = pitem->GetParent(treeCtrl);
73 
74  return pitem ? static_cast<const CProject*>(pitem)->GetData()->GetId() : -1;
75 }
76 
77 CProject* PT::GetProject (wxTreeCtrl& treeCtrl, const CItem& item)
78 {
79  const CItem* pitem = &item;
80  while (pitem && pitem->GetType() != eProject)
81  pitem = pitem->GetParent(treeCtrl);
82 
83  return static_cast<CProject*>(const_cast<CItem*>(pitem));
84 }
85 
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
virtual int GetType() const =0
CItem * GetParent(wxTreeCtrl &treeCtrl) const
Definition: pt_item.cpp:74
#define END_NCBI_SCOPE
End previously defined NCBI scope.
Definition: ncbistl.hpp:103
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
Definition: ncbistl.hpp:100
int i
objects::CGBProjectHandle::TId GetProjectId(wxTreeCtrl &treeCtrl, const CItem &item)
Definition: pt_utils.cpp:67
int GetItemTypes(const TItems &items)
Definition: pt_utils.cpp:59
CProject * GetProject(wxTreeCtrl &treeCtrl, const CItem &item)
Definition: pt_utils.cpp:77
bool sm_HideDisabledItems
Definition: pt_utils.cpp:57
@ eProject
Definition: pt_item.hpp:118
vector< CItem * > TItems
Definition: pt_item.hpp:113
static const struct type types[]
Definition: type.c:22
Modified on Sat Mar 02 10:54:45 2024 by modify_doxy.py rev. 669887