TObjectList::const_iterator iter =
m_Children.begin();
61 if(obj == iter->GetPointer()) {
79TObjectList::const_iterator iter =
m_Children.begin();
83child.
Reset(iter->GetPointer());
97TObjectList::iterator iter =
m_Children.begin();
101child.
Reset(iter->GetPointer());
116 if(obj == iter->GetPointer()) {
128TObjectList::iterator iter =
m_Children.begin();
149TObjectList::iterator iter =
m_Children.begin();
163TObjectList::iterator iter =
m_Children.begin();
164 while(iter !=
m_Children.end() && at_obj != iter->GetPointer()) {
180 if(at_obj == iter->GetPointer()) {
191(*iter)->Update(layout_only);
204glyph = (*iter)->
HitTest(pp);
217 if((*iter)->HitTestHor(x, obj))
231(*iter)->Intersects(rc, objs);
246(*iter)->GetHTMLActiveAreas(p_areas);
250<<
"CLayoutGroup::GetHTMLActiveAreas() failure on getting HTML active areas, error: " 259 boolcont = visitor->
Visit(
this);
260TObjectList::iterator iter =
m_Children.begin();
262cont = (*iter)->Accept(visitor);
273 if((*iChildren)->GetLevel() == 0) {
277 const CFeatGlyph* pFeatGlyph =
dynamic_cast<const CFeatGlyph*
>(iChildren->GetPointerOrNull());
278 if(pFeatGlyph && pFeatGlyph->
isDrawn()) {
324 #ifdef DEBUG_INFO_ON_SCREEN 347 if(iChildren->GetPointerOrNull() !=
this) {
348(*iChildren)->Update(
true);
367group->Set(sub_groups);
369group->SetLayoutPolicy(simple);
373group->SetLeft(
bound.m_X);
374group->SetHeight(
bound.m_Height);
375group->SetWidth(
bound.m_Width);
404 boolfirst_type =
true;
413 if(
t!= glyph->
GetFeature().GetData().GetSubtype())
469 boolisChildLevel0Reached(
false);
472GroupLevel = pLayoutGroup->
GetLevel();
473 if(GroupLevel < 1) {
478 if((*iChildren)->GetLevel() == 0) {
479isChildLevel0Reached =
true;
481 if(iChildren->GetPointerOrNull() != pGlyph && iChildren->GetPointerOrNull() != pGlyphFrom) {
487 if(isChildLevel0Reached) {
490 if(pGlyph->
GetParent() != pGlyphFrom) {
const CRgbaColor & GetBgColor() const
bool ShowBoundary() const
bool ShowBackground() const
TModelUnit GetLineWidth() const
const CRgbaColor & GetFgColor() const
void SetRelatedGlyphSelected(bool Selected)
bool isDrawn() const
determines whether the glyph should be drawn or not at all (currently children of unselected parents ...
const objects::CSeq_feat & GetFeature(void) const
Access the original feature.
CLayoutGroup is a container of CSeqGlyphs (layout objects).
virtual bool HitTestHor(TSeqPos x, const CObject *obj)
static void PropagateRelatedSelection(bool isSelected, CSeqGlyph *pGlyph, CSeqGlyph *pGlyphFrom=NULL)
set "RelatedGlyphSelected" in CLayoutGroup-based glyph hierarchies everywhere in the hierarchy contai...
ELinkedFeatDisplay m_LinkedFeat
linkage mode for the track where this glyph is residing
void PushBack(CSeqGlyph *obj)
Append a layout object to the end.
virtual void x_UpdateBoundingBox()
Update the bounding box assuming children's sizes are fixed if any.
const TObjectList & GetChildren() const
CLayoutGroup inline methods.
ELinkedFeatDisplay GetLinkedFeat() const
CConstRef< CBoundaryParams > m_Config
boundary settings
CIRef< ILayoutPolicy > m_Policy
bool Remove(CSeqGlyph *obj)
Remove a layout object.
virtual bool Accept(IGlyphVisitor *visitor)
Interface for accepting an IGlyphVisitor.
virtual void GetHTMLActiveAreas(TAreaVector *p_areas) const
Get html active areas.
CConstRef< CSeqGlyph > GetChild(int idx) const
Get the layout object at index 'idx'.
void Insert(int at, CSeqGlyph *obj)
Insert a layout object before the given index.
bool x_HasExpandedChildren() const
void x_DrawBoundary() const
virtual void Update(bool layout_only)
Update content and layout including the bounding box.
virtual void x_Draw() const
The default renderer for this layout object.
size_t GetChildrenNum() const
Get total number of children.
bool x_isDrawn() const
determines whether the glyph should be drawn or not at all (currently children of unselected parents ...
CLayoutGroup(ELinkedFeatDisplay LinkedFeat=ELinkedFeatDisplay::eLFD_Default)
bool Replace(CSeqGlyph *obj, int idx)
Replace a child at index 'idx'.
bool IsMaster(const CSeqGlyph *glyph) const
int GetIndex(const CSeqGlyph *obj) const
Get the child index.
bool AllChildrenSameType() const
Return true if there are 0 or 1 children, or all children are features of the same type (e....
void InsertAft(const CSeqGlyph *at_obj, CSeqGlyph *obj)
Insert a layout object after the given layout object.
virtual bool Intersects(const TModelRect &rect, TConstObjects &objs) const
Intersect testing.
virtual CRef< CSeqGlyph > HitTest(const TModelPoint &p)
Hit testing.
ILayoutPolicy::TObjectList TObjectList
void TextOut(const CGlTextureFont *font, const char *text, TModelUnit x, TModelUnit y, bool center, bool adjust_flip=true) const
TModelRange IntersectVisible(const CSeqGlyph *obj) const
void DrawRect(const TModelRect &rc) const
void DrawQuad(const TModelRect &rc, bool border=false) const
void DrawSelection(const TModelRect &rc) const
TModelUnit ScreenToSeq(const TModelUnit &size) const
convert from screen pixels to sequence positions
class CSeqGlyph defines an interface that wraps a rectilinear abstract object.
CRenderingContext * m_Context
the rendering context
void x_Parent2Local(TModelPoint &pnt) const
Transform the coordiante from parent coord. to local coord.
virtual void SetHeight(TModelUnit h)
virtual TModelUnit GetRight() const
bool IsInHor(TModelUnit x) const
void SetParent(CSeqGlyph *p)
bool IsIn(const TModelPoint &p) const
Hit test for points in PARENT COORD.
virtual CRef< CSeqGlyph > HitTest(const TModelPoint &p)
Hit testing.
virtual void SetWidth(TModelUnit w)
virtual TSeqRange GetRange(void) const
get the total range of this object.
virtual void SetLeft(TModelUnit l)
virtual TModelUnit GetTop() const
virtual TModelUnit GetHeight() const
bool x_Visible_V() const
is this glyph visible in vertical direction?
virtual TModelUnit GetWidth() const
virtual TModelUnit GetLeft() const
TModelRect GetModelRect() const
get the bounding box.
vector< CHTMLActiveArea > TAreaVector
const CSeqGlyph * GetParent(void) const
list< CConstRef< CSeqGlyph > > TConstObjects
void SetRenderingContext(CRenderingContext *context)
Set the rendering context.
CSimpleLayout is the simpliest layout policy that simply stack a set of glyphs one on top of the othe...
virtual void BuildLayout(CLayoutGroup &group, SBoundingBox &bound) const
CSimpleLayout.
Visitor interface for applying any potential actions or algorithms.
virtual bool Visit(CSeqGlyph *glyph)=0
bool Empty(const CNcbiOstrstream &src)
unsigned int TSeqPos
Type for sequence locations and lengths.
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
#define NON_CONST_ITERATE(Type, Var, Cont)
Non constant version of ITERATE macro.
#define LOG_POST(message)
This macro is deprecated and it's strongly recomended to move in all projects (except tests) to macro...
void Error(CExceptionArgs_Base &args)
const string & GetMsg(void) const
Get message string.
virtual void Translated(GLdouble x, GLdouble y, GLdouble z)=0
IRender & GetGl()
convenience function for getting current render manager
virtual void PopMatrix()=0
void SetFontFace(EFontFace face, bool use_bitmap_overrides=true)
CRange< TModelUnit > TModelRange
void SetFontSize(unsigned int size)
Set/get font size in points.
virtual void LineWidth(GLfloat w)=0
Set line width for drawing: glLineWidth()
static EFontFace FaceFromString(const string &str)
Selects a font face given a string or eFontFace_LastFont on failure.
virtual void ColorC(const CRgbaColor &c)=0
Set current color (glColor{3,4}{f,d}{v,})
bool Intersects(const CGlRect &R) const
virtual void PushMatrix()=0
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.
static string IntToString(int value, TNumToStringFlags flags=0, int base=10)
Convert int to string.
static enable_if< is_arithmetic< TNumeric >::value||is_convertible< TNumeric, Int8 >::value, string >::type NumericToString(TNumeric value, TNumToStringFlags flags=0, int base=10)
Convert numeric value to string.
TTo GetTo(void) const
Get the To member data.
TFrom GetFrom(void) const
Get the From member data.
static const int kPadding
const struct ncbi::grid::netcache::search::fields::SIZE size
T bound(T x_, T xlo_, T xhi_)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4