1 #ifndef GUI_WIDGET_SEQ_GRAPHICS___CLAYOUTGROUP__HPP
2 #define GUI_WIDGET_SEQ_GRAPHICS___CLAYOUTGROUP__HPP
68 size_t GetChildrenNum()
const;
114 virtual void Update(
bool layout_only);
133 void UpdateBoundingBox();
141 bool AllChildrenSameType()
const;
148 bool IsMaster(
const CSeqGlyph* glyph)
const {
return m_MasterGlyph.GetPointerOrNull() == glyph; }
149 void HideMaster(
bool hidden =
true) { m_HideMaster = hidden; }
171 virtual void x_Draw()
const;
177 void x_DrawBoundary()
const;
181 bool x_isDrawn()
const;
182 bool x_HasExpandedChildren()
const;
302 (*iter)->SetParent(
this);
312 (*iter)->SetParent(
this);
const CRgbaColor & GetBgColor() const
bool ShowBoundary() const
void SetLineWidth(TModelUnit flag)
void SetFgColor(const CRgbaColor &flag)
void SetShowBackground(bool flag)
bool ShowBackground() const
TModelUnit GetLineWidth() const
void SetBgColor(const CRgbaColor &flag)
const CRgbaColor & GetFgColor() const
CBoundaryParams(bool show_boundary, bool show_bg, const CRgbaColor &fg, const CRgbaColor &bg, TModelUnit w, int padding=2)
void SetShowBoundary(bool flag)
CLayoutGroup is a container of CSeqGlyphs (layout objects).
void UpdateBoundingBox()
update group's bounding box only.
void SetLayoutPolicy(ILayoutPolicy *policy)
Set policy on how to deploy the layout of its children.
ELinkedFeatDisplay m_LinkedFeat
linkage mode for the track where this glyph is residing
void HideMaster(bool hidden=true)
CRef< CSeqGlyph > m_MasterGlyph
void SetConfig(const CBoundaryParams *conf)
Set composition boundary parameters.
void PushBack(CSeqGlyph *obj)
Append a layout object to the end.
virtual ~CLayoutGroup(void)
void SetLinkedFeat(ELinkedFeatDisplay LinkedFeat)
TObjectList & SetChildren()
bool IsMasterHidden() const
virtual void x_UpdateBoundingBox()
Update the bounding box assuming children's sizes are fixed if any.
const TObjectList & GetChildren() const
CLayoutGroup inline methods.
void PushFront(CSeqGlyph *obj)
ELinkedFeatDisplay GetLinkedFeat() const
virtual void x_DrawHighlight() const
override x_DrawHighlight() to do nothing.
CConstRef< CBoundaryParams > m_Config
boundary settings
CIRef< ILayoutPolicy > m_Policy
void SetAsMaster(CRef< CSeqGlyph > master)
master glyph has some special meaning (e.g.
void Append(TObjectList &objs)
void Set(const TObjectList &objs)
size_t GetChildrenNum() const
Get total number of children.
void UpdateLayout()
update group's bounding box only, and its parent layout.
bool IsMaster(const CSeqGlyph *glyph) const
ILayoutPolicy::TObjectList TObjectList
class CRgbaColor provides a simple abstraction for managing colors.
class CSeqGlyph defines an interface that wraps a rectilinear abstract object.
CRenderingContext * m_Context
the rendering context
virtual bool HitTestHor(TSeqPos x, const CObject *obj)
virtual void x_OnLayoutChanged()
update the layout.
virtual void x_Draw() const =0
The default renderer for this layout object.
void SetParent(CSeqGlyph *p)
virtual CRef< CSeqGlyph > HitTest(const TModelPoint &p)
Hit testing.
virtual void Update(bool)
Update content and layout including the bounding box.
virtual bool Accept(IGlyphVisitor *visitor)
Interface for accepting an IGlyphVisitor.
virtual bool Intersects(const TModelRect &rect, TConstObjects &objs) const
Intersect testing.
virtual void GetHTMLActiveAreas(TAreaVector *) const
Get html active areas.
virtual void x_UpdateBoundingBox()=0
Update the bounding box assuming children's sizes are fixed if any.
void SetRenderingContext(CRenderingContext *context)
Set the rendering context.
Visitor interface for applying any potential actions or algorithms.
class ILayoutPolicy defines the abstract interface required for generating layout based on a set of g...
list< CRef< CSeqGlyph > > TObjectList
The NCBI C++ standard methods for dealing with std::string.
unsigned int TSeqPos
Type for sequence locations and lengths.
#define NON_CONST_ITERATE(Type, Var, Cont)
Non constant version of ITERATE macro.
vector< CConstRef< CObject > > TConstObjects
void Reset(void)
Reset reference object.
void Reset(void)
Reset reference object.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
#define NCBI_GUIWIDGETS_SEQGRAPHIC_EXPORT
Defines to provide correct exporting from DLLs in Windows.