NCBI C++ ToolKit
gui_object_info.hpp
Go to the documentation of this file.

Go to the SVN repository for this file.

1 #ifndef GUI_UTILS___GUI_OBJECT_INFO__HPP
2 #define GUI_UTILS___GUI_OBJECT_INFO__HPP
3 
4 /* $Id: gui_object_info.hpp 41372 2018-07-18 20:45:38Z rudnev $
5  * ===========================================================================
6  *
7  * PUBLIC DOMAIN NOTICE
8  * National Center for Biotechnology Information
9  *
10  * This software/database is a "United States Government Work" under the
11  * terms of the United States Copyright Act. It was written as part of
12  * the author's official duties as a United States Government employee and
13  * thus cannot be copyrighted. This software/database is freely available
14  * to the public for use. The National Library of Medicine and the U.S.
15  * Government have not placed any restriction on its use or reproduction.
16  *
17  * Although all reasonable efforts have been taken to ensure the accuracy
18  * and reliability of the software and data, the NLM and the U.S.
19  * Government do not and cannot warrant the performance or results that
20  * may be obtained by using this software or data. The NLM and the U.S.
21  * Government disclaim all warranties, express or implied, including
22  * warranties of performance, merchantability or fitness for any particular
23  * purpose.
24  *
25  * Please cite the author in any work or product based on this material.
26  *
27  * ===========================================================================
28  *
29  * Authors: Andrey Yazhuk
30  *
31  * File Description:
32  *
33  */
34 
35 #include <corelib/ncbistr.hpp>
36 
37 /** @addtogroup GUI_UTILS
38  *
39  * @{
40  */
41 
43 
44 class ITooltipFormatter;
45 
47 {
48 public:
49  virtual ~IGuiObjectInfo() {}
50 
51  virtual string GetType() const = 0;
52  virtual string GetSubtype() const = 0;
53  virtual string GetLabel() const = 0;
54  /// Get tooltip.
55  /// The tooltip may contain HTML tags.
56  /// @param tooltip tooltip content
57  /// @param t_title tooltip title (can be empty)
58  /// @param at_p user-interested sequence pos. For some cases,
59  /// we may want to return postion-specific information, such
60  /// as flanking sequence around that position, along with other
61  /// object information. It is optional. (TSeqPos)-1 means no
62  /// position is provided.
63  /// @param isGeneratedBySvc if pointer is not NULL, the method will set this to true if the full tooltip
64  /// was supplied by a service (e.g. dbsnp_tooltip_service) and should not be further modified
65  virtual void GetToolTip(ITooltipFormatter& tooltip, string& t_title, TSeqPos at_p = (TSeqPos)-1, bool* isGeneratedBySvc = NULL) const = 0;
66  /// Get a set of links.
67  /// @param no_ncbi_base if set to true, then the NCBI base path
68  /// should be removed from the returned URL links.
69  virtual void GetLinks(ITooltipFormatter& links, bool no_ncbi_base) const = 0;
70  virtual string GetIcon() const = 0;
71  /// To share default view between different types.
72  virtual string GetViewCategory() const = 0;
73 };
74 
76 
77 /* @} */
78 
79 #endif // GUI_UTILS___GUI_OBJECT_INFO__HPP
primitive interface to arrange tabular data in the tooltips
Definition: tooltip.hpp:55
The NCBI C++ standard methods for dealing with std::string.
unsigned int TSeqPos
Type for sequence locations and lengths.
Definition: ncbimisc.hpp:875
#define NULL
Definition: ncbistd.hpp:225
virtual string GetType() const =0
virtual string GetLabel() const =0
virtual string GetIcon() const =0
virtual ~IGuiObjectInfo()
virtual void GetLinks(ITooltipFormatter &links, bool no_ncbi_base) const =0
Get a set of links.
virtual string GetSubtype() const =0
virtual void GetToolTip(ITooltipFormatter &tooltip, string &t_title, TSeqPos at_p=(TSeqPos) -1, bool *isGeneratedBySvc=NULL) const =0
Get tooltip.
virtual string GetViewCategory() const =0
To share default view between different types.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
Definition: ncbistl.hpp:103
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
Definition: ncbistl.hpp:100
Modified on Sun May 05 05:17:35 2024 by modify_doxy.py rev. 669887