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

Go to the SVN repository for this file.

1 #ifndef GUI_WIDGETS_TEXT_WIDGET___COMPOSITE_TEXT_ITEM__HPP
2 #define GUI_WIDGETS_TEXT_WIDGET___COMPOSITE_TEXT_ITEM__HPP
3 
4 /* $Id: composite_text_item.hpp 35549 2016-05-20 15:37:51Z katargir $
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: Roman Katargin
30  *
31  * File Description:
32  *
33  */
34 
35 #include <corelib/ncbiobj.hpp>
36 #include <gui/gui_export.h>
37 
39 
41 
43 
45 {
46 public:
47  typedef CTextItem TParent;
48 
49  CCompositeTextItem(bool deleteChildren = true) : m_DeleteChildren(deleteChildren) {}
51 
52  void SetDeleteChildren(bool val) { m_DeleteChildren = val; }
53 
54  virtual ITextItem* GetItemByLine(int lineNum, bool expanded);
55 
56  // Mouse handling
57  virtual void MouseEvent(wxMouseEvent& event, CTextPanelContext& context);
58 
59  virtual void CalcSize(wxDC& dc, CTextPanelContext* context);
60  virtual void Draw(wxDC& dc, const wxRect& updateRect, CTextPanelContext* context);
61 
62  void AddItem (ITextItem* item, bool updatePositions = true);
63  ITextItem* GetItem(size_t index);
64  size_t GetItemCount() const { return m_Items.size(); }
65 
66  void UpdateSelection(ITextItem* start, ITextItem* end, bool selected = false);
67 
68  virtual void GetText(wxTextOutputStream& os,
69  const CTextBlock& block,
71 
72  virtual bool Traverse(ICompositeTraverser& traverser);
73 
74  // IContainer implementation
75  virtual wxPoint GetItemPosition(int index) const;
76  virtual int GetItemStartLine(int index) const;
77  virtual void ItemSizeChanged(int index);
78  virtual void UpdatePositions();
79 
80  void InsertItems (size_t index, ITextItem* const * items, size_t count, bool updatePositions = true);
81  void RemoveItem (size_t index);
82 
83 protected:
84  vector<ITextItem*> m_Items;
85  vector<int> m_AccumLines; // total lines up to this item
86  vector<int> m_AccumHeight; // total height up to this item
87 
89 };
90 
92 
93 #endif // GUI_WIDGETS_TEXT_WIDGET___COMPOSITE_TEXT_ITEM__HPP
vector< ITextItem * > m_Items
void UpdateSelection(ITextItem *start, ITextItem *end, bool selected=false)
CCompositeTextItem(bool deleteChildren=true)
void SetDeleteChildren(bool val)
size_t GetItemCount() const
virtual void CalcSize(wxDC &dc, CTextPanelContext *context)
Definition: text_item.cpp:88
virtual bool Traverse(ICompositeTraverser &traverser)
Definition: text_item.hpp:159
virtual void MouseEvent(wxMouseEvent &event, CTextPanelContext &context)
Definition: text_item.cpp:171
virtual ITextItem * GetItemByLine(int lineNum, bool expanded)
Definition: text_item.cpp:187
virtual void Draw(wxDC &dc, const wxRect &updateRect, CTextPanelContext *context)
Definition: text_item.cpp:135
virtual int GetItemStartLine(int index) const =0
virtual wxPoint GetItemPosition(int index) const =0
virtual void ItemSizeChanged(int index)=0
virtual void UpdatePositions()=0
virtual void GetText(wxTextOutputStream &os, const CTextBlock &block, CTextPanelContext *context)=0
#define END_NCBI_SCOPE
End previously defined NCBI scope.
Definition: ncbistl.hpp:103
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
Definition: ncbistl.hpp:100
#define NCBI_GUIWIDGETS_TEXT_WIDGET_EXPORT
Definition: gui_export.h:532
Defines to provide correct exporting from DLLs in Windows.
Portable reference counted smart and weak pointers using CWeakRef, CRef, CObject and CObjectEx.
static CS_CONTEXT * context
Definition: will_convert.c:21
Modified on Fri Apr 12 17:23:07 2024 by modify_doxy.py rev. 669887