NCBI C++ ToolKit
|
Search Toolkit Book for CInlineLayout
CInlineLayout is the anther simple layout policy that put a list of glyphs in a single line horizontally sorted by glyph's start position. More...
#include <gui/widgets/seq_graphic/simple_layout_policy.hpp>
Public Member Functions | |
CInlineLayout () | |
CInlineLayout (bool allow_overlap) | |
virtual void | BuildLayout (CLayoutGroup &group, SBoundingBox &bound) const |
CInlineLayout. More... | |
void | BuildLayout (TObjectList &objs, SBoundingBox &bound) const |
int | GetTopMargin () const |
CInlineLayout inline method implementation. More... | |
void | SetTopMargin (int d) |
void | SetAllowOverlap (bool flag) |
![]() | |
CObject (void) | |
Constructor. More... | |
CObject (const CObject &src) | |
Copy constructor. More... | |
virtual | ~CObject (void) |
Destructor. More... | |
CObject & | operator= (const CObject &src) THROWS_NONE |
Assignment operator. More... | |
bool | CanBeDeleted (void) const THROWS_NONE |
Check if object can be deleted. More... | |
bool | IsAllocatedInPool (void) const THROWS_NONE |
Check if object is allocated in memory pool (not system heap) More... | |
bool | Referenced (void) const THROWS_NONE |
Check if object is referenced. More... | |
bool | ReferencedOnlyOnce (void) const THROWS_NONE |
Check if object is referenced only once. More... | |
void | AddReference (void) const |
Add reference to object. More... | |
void | RemoveReference (void) const |
Remove reference to object. More... | |
void | ReleaseReference (void) const |
Remove reference without deleting object. More... | |
virtual void | DoNotDeleteThisObject (void) |
Mark this object as not allocated in heap – do not delete this object. More... | |
virtual void | DoDeleteThisObject (void) |
Mark this object as allocated in heap – object can be deleted. More... | |
void * | operator new (size_t size) |
Define new operator for memory allocation. More... | |
void * | operator new[] (size_t size) |
Define new[] operator for 'array' memory allocation. More... | |
void | operator delete (void *ptr) |
Define delete operator for memory deallocation. More... | |
void | operator delete[] (void *ptr) |
Define delete[] operator for memory deallocation. More... | |
void * | operator new (size_t size, void *place) |
Define new operator. More... | |
void | operator delete (void *ptr, void *place) |
Define delete operator. More... | |
void * | operator new (size_t size, CObjectMemoryPool *place) |
Define new operator using memory pool. More... | |
void | operator delete (void *ptr, CObjectMemoryPool *place) |
Define delete operator. More... | |
virtual void | DebugDump (CDebugDumpContext ddc, unsigned int depth) const |
Define method for dumping debug information. More... | |
![]() | |
CDebugDumpable (void) | |
virtual | ~CDebugDumpable (void) |
void | DebugDumpText (ostream &out, const string &bundle, unsigned int depth) const |
void | DebugDumpFormat (CDebugDumpFormatter &ddf, const string &bundle, unsigned int depth) const |
void | DumpToConsole (void) const |
![]() | |
virtual | ~ILayoutPolicy () |
void | SetSorter (TSorter &sorter) |
Private Member Functions | |
void | x_BuildLayout1Row (TObjectList &objects, SBoundingBox &bound, bool side_labeling) const |
void | x_BuildLayoutMultiRows (TObjectList &objects, SBoundingBox &bound, bool side_labeling) const |
Private Attributes | |
int | m_TopMargin |
bool | m_AllowOverlap |
Additional Inherited Members | |
![]() | |
enum | EAllocFillMode { eAllocFillNone = 1 , eAllocFillZero , eAllocFillPattern } |
Control filling of newly allocated memory. More... | |
typedef CObjectCounterLocker | TLockerType |
Default locker type for CRef. More... | |
typedef atomic< Uint8 > | TCounter |
Counter type is CAtomiCounter. More... | |
typedef Uint8 | TCount |
Alias for value type of counter. More... | |
![]() | |
typedef list< CRef< CSeqGlyph > > | TObjectList |
typedef vector< CRef< CSeqGlyph > > | TLayoutRow |
typedef vector< TLayoutRow > | TLayout |
typedef std::function< bool(const CRef< CSeqGlyph > &, const CRef< CSeqGlyph > &)> | TSorter |
![]() | |
static NCBI_XNCBI_EXPORT void | ThrowNullPointerException (void) |
Define method to throw null pointer exception. More... | |
static NCBI_XNCBI_EXPORT void | ThrowNullPointerException (const type_info &type) |
static EAllocFillMode | GetAllocFillMode (void) |
static void | SetAllocFillMode (EAllocFillMode mode) |
static void | SetAllocFillMode (const string &value) |
Set mode from configuration parameter value. More... | |
![]() | |
static void | EnableDebugDump (bool on) |
![]() | |
static const TCount | eCounterBitsCanBeDeleted = 1 << 0 |
Define possible object states. More... | |
static const TCount | eCounterBitsInPlainHeap = 1 << 1 |
Heap signature was found. More... | |
static const TCount | eCounterBitsPlaceMask |
Mask for 'in heap' state flags. More... | |
static const int | eCounterStep = 1 << 2 |
Skip over the "in heap" bits. More... | |
static const TCount | eCounterValid = TCount(1) << (sizeof(TCount) * 8 - 2) |
Minimal value for valid objects (reference counter is zero) Must be a single bit value. More... | |
static const TCount | eCounterStateMask |
Valid object, and object in heap. More... | |
![]() | |
virtual void | DeleteThis (void) |
Virtual method "deleting" this object. More... | |
![]() | |
void | x_SeparateObjects (CLayoutGroup &group, TLayout &layout, SBoundingBox &bound, size_t group_size, int vert_space) const |
Separate objects into multiple sub-groups. More... | |
virtual void | x_SetObjectPos (TLayout &layout, SBoundingBox &bound) const |
Set the objects' position (Y), and update the bounding box of the group (of all objects). More... | |
![]() | |
TSorter | m_Sorter = nullptr |
CInlineLayout is the anther simple layout policy that put a list of glyphs in a single line horizontally sorted by glyph's start position.
Additionally, if a glyph has sided label, the policy will force to hide its label when there is not enough space between glyphs to fit the label.
Definition at line 86 of file simple_layout_policy.hpp.
|
inline |
Definition at line 91 of file simple_layout_policy.hpp.
|
inline |
Definition at line 95 of file simple_layout_policy.hpp.
|
virtual |
Implements ILayoutPolicy.
Definition at line 100 of file simple_layout_policy.cpp.
References bound(), and CLayoutGroup::GetChildren().
Referenced by CLayeredLayout::x_SetObjectPos().
void CInlineLayout::BuildLayout | ( | TObjectList & | objs, |
SBoundingBox & | bound | ||
) | const |
Definition at line 107 of file simple_layout_policy.cpp.
References bound(), m_AllowOverlap, SGlyphBySeqPos::s_CompareCRefs(), x_BuildLayout1Row(), and x_BuildLayoutMultiRows().
|
inline |
CInlineLayout inline method implementation.
Definition at line 177 of file simple_layout_policy.hpp.
References m_TopMargin.
|
inline |
Definition at line 189 of file simple_layout_policy.hpp.
References m_AllowOverlap.
|
inline |
Definition at line 183 of file simple_layout_policy.hpp.
References m_TopMargin.
Referenced by CLayeredLayout::x_SetObjectPos().
|
private |
Definition at line 129 of file simple_layout_policy.cpp.
References bound(), cnt, f, CSeqGlyph::GetHeight(), CSeqGlyph::GetLeft(), CSeqGlyph::GetRight(), ITERATE, l(), m_TopMargin, max(), min(), NON_CONST_ITERATE, r(), compile_time_bits::range(), CSeqGlyph::SetHideLabel(), CSeqGlyph::SetTop(), t, and CSeqGlyph::Update().
Referenced by BuildLayout().
|
private |
Definition at line 231 of file simple_layout_policy.cpp.
References bound(), CSeqGlyph::eNghbrs_Left, CSeqGlyph::eNghbrs_None, CSeqGlyph::eNghbrs_Right, CSeqGlyph::GetHeight(), CSeqGlyph::GetLeft(), CSeqGlyph::GetRange(), CSeqGlyph::GetRight(), l(), m_TopMargin, max(), min(), NON_CONST_ITERATE, r(), compile_time_bits::range(), row, CSeqGlyph::SetHideLabel(), CSeqGlyph::SetNeighbours(), CSeqGlyph::SetTop(), and CSeqGlyph::Update().
Referenced by BuildLayout().
|
private |
Definition at line 116 of file simple_layout_policy.hpp.
Referenced by BuildLayout(), and SetAllowOverlap().
|
private |
Definition at line 115 of file simple_layout_policy.hpp.
Referenced by GetTopMargin(), SetTopMargin(), x_BuildLayout1Row(), and x_BuildLayoutMultiRows().