[] = { 3, 6, 9 };
107 static const string kBaseKey(
"GBPlugins.SeqGraphicFeatPanel");
116, m_SelFeatures(
NULL)
117, m_SelCDSFeatures(
NULL)
118, m_IsMultiLevel(
false)
119, m_IconTexInitialized(
false)
120, m_CgiMode(cgi_mode)
121, m_ImageInfo(
NULL)
123, m_AssemblyLoaded(
false)
147 "Content",
true,
"track_content",
"",
"track_content_lite"));
149 "Layout style",
true,
"track_layout",
"",
"track_layout_lite"));
151 "Color",
true,
"track_color_theme",
"",
"track_color_theme_lite"));
153 "Size",
true,
"track_size",
"",
"track_size_lite"));
155 true,
"track_decoration",
"",
"track_decoration_lite"));
157 "Label position",
true,
"track_label",
"",
"track_label_lite"));
201 boolupdate_level_3 =
true;
205 if( !(*iter)->GetShown() )
continue;
208 if( !track)
continue;
218track->
Update(layout_only);
219}
else if(level < 2) {
220track->
Update(layout_only);
222update_level_3 =
false;
224}
else if(update_level_3) {
227 if(curr_range != (*iter)->GetVisitedRange()) {
235(*iter)->SetVisitedRange(curr_range);
253 if( !layout_only ) {
271glyph.
Reset(
this);
294 stringtmsContext =
"GBench_3-0";
295 booluseEutils = reg.
GetBool(
"NA_TRACKS",
"USE_EUTILS",
true);
332CTrackCounter() : m_Count(0) {}
334 size_tGetCount()
const{
returnm_Count; }
347CTrackCounter counter;
350 if(counter.GetCount() == 0) {
351wxMessageBox(
wxT(
"Track information is not loaded. Please wait."),
wxT(
"Track Initialization"), wxOK | wxICON_EXCLAMATION);
356 static boolshowDialog =
true;
358wxRichMessageDialog dlg(
NULL,
wxT(
"Not all tracks are loaded.\nConfigure Tracks dialog will not show all available tracks."),
359 wxT(
"Warning"), wxOK | wxICON_EXCLAMATION);
360dlg.ShowCheckBox(
wxT(
"Don't show this dialog in the current session"));
362 if(dlg.IsCheckBoxChecked())
405 if(wxMessageBox(
_(
"No more matches found, wrapping over"),
wxT(
"Confirm"), wxOK | wxCANCEL) == wxOK)
449 if(seqId && !seqId->
IsLocal()) {
459}
NCBI_CATCH(
"CGraphicPanel: converting GI Seq-id.");
465list<CRef<objects::CGC_Assembly> > assemblies;
475 m_Assemblies.assign(assemblies.begin(), assemblies.end());
481 stringacc =
i->GetAccession();
512Track(proxy, container, visible);
546Track(proxy, container, visible);
589 stringregPath = path + profile +
".Tracks";
592 registry.GetReadView(regPath).GetTopKeys(keys);
624 if(track && track_key == track->
GetKey()) {
646 boolupdate_level_3 =
true;
650 if( !(*iter)->GetShown() )
continue;
654 if( !cont_track)
continue;
659update_level_3 =
false;
661}
else if(update_level_3) {
663 if(curr_range != (*iter)->GetVisitedRange()) {
665cont_track->
Update(
false);
689 grid->SetHorzColor(h_color);
690 grid->SetVertColor(v_color);
717gl.
BlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
718gl.
Enable(GL_LINE_SMOOTH);
719glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);
740 static const stringkInitTrackStr =
"Discovering tracks...";
748x, rcm.
Bottom() - 4.0,
false,
false);
773 if(assembliesResult) {
783 if( !
result->m_Annots.empty() ) {
797 if(!cont)
continue;
814 if(preset_style.empty()) {
842rect.
Init(center_x - w, bottom, center_x + w, bottom - h);
874gl.
Color4f(0.83f, 0.83f, 0.83f, 0.9f);
877 float delta= 3.141592653589793238463f / numSegments / 2;
886gl.
Begin(GL_TRIANGLE_STRIP);
891 for(
int i= 0;
i< numSegments - 1; ++
i) {
892 floatsina = ry*sin(
a), cosa = rx*cos(
a);
903 size_ticon_num =
m_Icons.size();
904 for(
size_tidx = 0; idx < icon_num; ++idx) {
909gl.
BlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
945styles[id_base] =
wxT(
"Default");
946styles[id_base + 1] =
wxT(
"Multiple level");
953wxMenuItem* item = menu.AppendRadioItem(iter->first, iter->second);
956}
else if(
id== 0) {
963wxMenuItemList& item_list = menu.GetMenuItems();
964 ITERATE(wxMenuItemList, iter, item_list) {
965 if((*iter)->IsChecked()) {
966 id= (*iter)->GetId() - id_base;
977(
m_IsMultiLevel?
"multiple level layout":
"default layout mode"));
990items[id_base] =
wxT(
"Greyscale");
991items[id_base + 1] =
wxT(
"Color");
995 ITERATE(TMenuItems, iter, items) {
996wxMenuItem* item = menu.AppendRadioItem(iter->first, iter->second);
1003wxMenuItemList& item_list = menu.GetMenuItems();
1004 ITERATE(wxMenuItemList, iter, item_list) {
1005 const string& new_color =
ToStdString(items[(*iter)->GetId()]);
1007 LOG_POST(
Info<<
"Graphical view: switch color theme from "<<
1034 intid_base = 10000;
1035items[id_base] =
wxT(
"Compact");
1036items[id_base + 1] =
wxT(
"Normal");
1037items[id_base + 2] =
wxT(
"Oversize");
1041 ITERATE(TMenuItems, iter, items) {
1042wxMenuItem* item = menu.AppendRadioItem(iter->first, iter->second);
1049wxMenuItemList& item_list = menu.GetMenuItems();
1050 ITERATE(wxMenuItemList, iter, item_list) {
1051 const string& new_size =
ToStdString(items[(*iter)->GetId()]);
1053 LOG_POST(
Info<<
"Graphical view: switch size level from "<<
1078 intid_base = 10000;
1079items[id_base] =
wxT(
"Default");
1080items[id_base + 1] =
wxT(
"Arrows");
1081items[id_base + 2] =
wxT(
"SquareAnchor");
1082items[id_base + 3] =
wxT(
"CircleAnchor");
1083items[id_base + 4] =
wxT(
"Fancy");
1087 ITERATE(TMenuItems, iter, items) {
1088wxMenuItem* item = menu.AppendRadioItem(iter->first, iter->second);
1095wxMenuItemList& item_list = menu.GetMenuItems();
1096 ITERATE(wxMenuItemList, iter, item_list) {
1097 const string& new_decor =
ToStdString(items[(*iter)->GetId()]);
1099 LOG_POST(
Info<<
"Graphical view: switch feature decoration from "<<
1124 intid_base = 10000;
1125items[id_base] =
wxT(
"Default");
1126items[id_base + 1] =
wxT(
"Top label");
1127items[id_base + 2] =
wxT(
"Side label");
1128items[id_base + 3] =
wxT(
"No label");
1132 ITERATE(TMenuItems, iter, items) {
1133wxMenuItem* item = menu.AppendRadioItem(iter->first, iter->second);
1134 if(iter->second ==
ToWxString(old_label_pos)) {
1140wxMenuItemList& item_list = menu.GetMenuItems();
1141 ITERATE(wxMenuItemList, iter, item_list) {
1142 const string& new_label_pos =
ToStdString(items[(*iter)->GetId()]);
1143 if((*iter)->IsChecked() && new_label_pos != old_label_pos) {
1144 LOG_POST(
Info<<
"Graphical view: switch feature label position from "<<
1145old_label_pos <<
" to "<< new_label_pos);
1169 config->IgnoreFeatureStrand();
1188 if((*iter)->GetOrder() >=
id)
1189 id= (*iter)->GetOrder() + 1;
1246 dynamic_cast<const CTrackProxy*
>(t_iter->GetPointer());
1275 if( !factory )
returncont_track;
1298t_proxy->GetSubkey(), t_proxy->GetFilter(), t_proxy->GetSortBy());
1300extra_params.
m_SubTracks= t_proxy->GetSubTracks();
1307 if( !tracks.
empty()) {
1317feats_track->SetProxy(t_proxy);
1334 if(defaultProxies.empty())
1338 bool{
returnt1->
GetName() < t2->GetName(); };
1340defaultProxies.sort(NameComp);
1341 if(!proxies.empty())
1342proxies.sort(NameComp);
1344 for(
autosit = defaultProxies.begin(), dit = proxies.begin(); sit != defaultProxies.end() || dit != proxies.end();) {
1345 while(dit != proxies.end() && (sit == defaultProxies.end() || (*dit)->GetName() < (*sit)->GetName()))
1346dit = proxies.erase(dit);
1347 while(dit != proxies.end() && sit != defaultProxies.end() && (*dit)->GetName() == (*sit)->GetName())
1349 while(sit != defaultProxies.end() && (dit == proxies.end() || (*sit)->GetName() < (*dit)->GetName())) {
1350dit = proxies.insert(dit, (*sit)->Clone());
1383 string str=
f->GetData().GetStr();
1385string::size_type sb =
str.find_first_not_of(
"([");
1386 if(sb == string::npos) {
1389string::size_type se =
str.find_last_not_of (
")] ");
1390 if(se == string::npos) {
1391se =
str.size() - 1;
1396 ITERATE(list<string>, iter, toks) {
1402<<
"display level settings, "<< e.
GetMsg());
1408vector<string> icons;
1410 if(!icons.empty()) {
1425 for(
auto&& it : icons) {
1427 if(kIconName2Id.count(icon) != 0)
1428requested_icons.
insert(kIconName2Id[icon]);
1430 if(!requested_icons.
empty()) {
1432[&](
const SIconInfo&
info) { return requested_icons.count(info.m_Id) == 0; }),
1454 if((*iter)->IsEmpty()) {
1463 for(
auto& c : p->GetChildren())
1464c->SetOrder(++order);
1473 if( !g_conf )
return;
1489 for(
int i= 2;
i>= 0; --
i) {
1522 stringregPath = path + profile +
".Tracks";
1524 registry.GetReadView(regPath).GetTopKeys(keys);
1525view =
registry.GetWriteView(regPath);
1536 static boolicon_image_registered =
false;
1537 if( !icon_image_registered && !
m_CgiMode) {
1542 dynamic_cast<const IIconProvider*
>(iter->second.GetPointer());
1559icon_image_registered =
true;
1583vector<bool> has_line(vp_max-vp_min,
false);
1588 size_ttotal_glyph = 0;
1591 if( !glyph )
continue;
1610 if( !glyph )
continue;
1613glyph->GetPosInWorld(top_left);
1616 dynamic_cast<const CFeatGlyph*
>(glyph.GetPointer());
1628 if(x>=vp_min && x<vp_max && !has_line[x-vp_min] &&
x_DrawHairLine(opt, total_glyph, all_pos, curr.
GetFrom(), line_y)) {
1629has_line[x-vp_min] =
true;
1634 if(x>=vp_min && x<vp_max && !has_line[x-vp_min] &&
x_DrawHairLine(opt, total_glyph, all_pos, curr.
GetTo()+1, line_y)) {
1635has_line[x-vp_min] =
true;
1657 boolneed_line =
true;
1661 color= all_pos.count(pos) > 1 ? c_dark : c_light;
1665need_line = all_pos.count(pos) == 1;
1669need_line = all_pos.count(pos) >= 2;
1673need_line = all_pos.count(pos) == total;
1714 color.Darken(0.1f);
1720 dynamic_cast<const CFeatGlyph*
>(glyph.GetPointer());
1721 if( !feat )
continue;
1728 if(length < 2)
continue;
1730 doublelogRange =
log10(length);
1731logRange = ceil(logRange) - 1;
1732 doublestep = pow(10.0, logRange);
1735 doublebase_step = step;
1736 doubletick_num = length / base_step;
1738 while(tick_num < 8) {
1739base_step = step /
kSteps[
i++];
1740tick_num = length / base_step;
1758 intend = (
int)floor(
f- 1);
1759 for(
i= (
int)ceil(
t);
i>= end;
i-= grid_step) {
1760 if(((
i+ 1) < visible_range.GetFrom()) || ((
i+ 1) > visible_range.GetTo()))
1765 intend = (
int)ceil(
t+ 1);
1766 for(
i= (
int)floor(
f);
i<= end;
i+= grid_step) {
1767 if((
i< visible_range.GetFrom()) || (
i> visible_range.GetTo()))
1779 doublemax_step)
const 1781 if((base_step >= min_step && base_step <= max_step) || (min_step == max_step))
1785 doublePower =
log10(base_step);
1786 double P= ceil(Power) -1;
1787 doublepow10P = pow(10.0,
P);
1788 double M= base_step / pow10P;
1794 intoldK = 1, K = 1, Index = 0;
1795 if(base_step < min_step)
1797 doubleminK = min_step / pow10P;
1801K = oldK *
kSteps[Index++];
1803K = oldK = oldK * 10;
1807base_step = pow10P * K;
1808}
else if(base_step > max_step) {
1810 doublemaxK = pow10P / max_step;
1814K = oldK *
kSteps[Index++];
1816K = oldK = oldK * 10;
1820base_step = pow10P / K;
1836TDisplayLevels::iterator iter =
1848 const string& track_name,
1856 if( !factory )
returncont_track;
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
void remove_if(Container &c, Predicate *__pred)
CAppJobNotification Notification send by CAppJobEventTranslator.
bool GetAssemblies(const string &seqAcc, list< CRef< objects::CGC_Assembly > > &assAcc)
static CAssemblyCache & GetInstance()
void SetCategory(const string &category)
virtual void Update(bool layout_only)
Update content and layout including the bounding box.
virtual void SetRegistryPath(const string &path)
CExternalLayoutTrack â the layout track for holding and visualizing the external graphical views' vis...
virtual const objects::CSeq_loc & GetLocation(void) const
access the position of this object.
TModelUnit GetBarCenter() const
virtual TSeqRange GetRange(void) const
get the total range of this object.
virtual const TIntervals & GetIntervals(void) const
access sub-intervals (if any).
void SetTMSContext(const string &tms_context)
void SetDSContext(ISGDataSourceContext *ds_context)
void GetAssemblies(const string &seqAcc)
void SetUseEUtils(bool use)
void ClearMetaDataJobId()
bool IsMetaDataJob(TJobID id) const
CFeaturePanelDS inline methods.
void SetAssembly(const string &assembly)
void SetRenderingContext(CRenderingContext *r_cntx)
const string & GetAssembly() const
void GetAnnotMetaData(const string &desc)
retrieve a list of annotations with their meta data.
void x_RenderFeatureGrid() const
void x_ConfigureSubtracks_Recursive(CTrackContainer *parent, const TTrackProxies &proxies, int level)
Create all the exsiting layout tracks.
CRegularGridGen m_Gen
graphical grid.
CIRef< ISGDataSourceContext > m_DSContext
void x_OnLayoutIconClicked()
void x_LoadSettings()
Load settings for feature panel.
void x_OnColorIconClicked()
virtual bool HitTestHor(TSeqPos x, const CObject *obj)
const TSelectedGlyphs * m_SelCDSFeatures
IServiceLocator * m_ServiceLocator
double x_CalcGridStep(double base_step, double min_step, double max_step) const
void x_RenderHairLineSelections() const
void x_ConfigureTracks(bool makeContainersVisible=false)
reset the track status to be ready for reconfiguring layout tracks.
vector< TLevel > TDisplayLevels
bool m_CgiMode
special flag indicating if it is in cgi mode.
void x_OnSizeIconClicked()
bool x_GetShowDisplayLevel(TLevel level) const
Only meaningful if Multilevel is true.
const TSelectedGlyphs * m_SelFeatures
void x_OnAssemblyLoaded(const list< CRef< objects::CGC_Assembly > > &assemblies)
CTrackContainer * x_ConfigureSubtracks(CTrackContainer *parent, const CTrackProxy *param, int level, const set< string > &usedFeatureSubkeys)
void x_SetShowDisplayLevel(TLevel level, bool show)
SConstScopedObject m_InputObj
set< string > GetAnnotNames()
bool x_NeedSpecialGrid() const
need show special grid for the selected cds features.
void SetInputObject(SConstScopedObject &obj)
vector< CRef< objects::CGC_Assembly > > m_Assemblies
virtual void x_Draw() const
The default renderer for this layout object.
virtual void x_OnIconClicked(TIconID id)
override method in CLayoutTrack to handle speical cases.
CRegularGridRenderer m_Grid
TAnnotMetaDataList m_NAData
CFeaturePanel(CRenderingContext *r_cntx, bool cgi_mode)
vector< CMappedFeatOrObject > m_search_results
static CTrackTypeInfo m_TypeInfo
bool m_IconTexInitialized
flag indicating whether icon textures have been created.
string GetCurrentAssembly() const
void x_OnDecorationIconClicked()
virtual void Update(bool layout_only)
Update content and layout including the bounding box.
virtual bool x_IsJobNeeded(CAppJobDispatcher::TJobID id) const
virtual CRef< CSeqGlyph > HitTest(const TModelPoint &p)
Hit testing.
void LoadDefaultTracks()
Reset tracks to the original default track list.
CMappedFeatOrObject FindText(const string &text, bool match_case)
virtual void OnTrackInitFinished(const CLayoutTrack *sender)
TImageInfo * m_ImageInfo
Information about image that can be returned to client.
CRef< CExternalLayoutTrack > m_ExtLayoutTrack
void SetExternalGlyphs(const CSeqGlyph::TObjects &objs)
virtual void x_GetTBRect(TModelRect &rect) const
Get title bar rectange exclude top margin.
void x_InitNATracks(bool makeContainersVisible)
virtual void x_RenderTitleBar() const
Method for rendering the track title bar.
void SetAssembly(const string &assembly)
void ShowTrack(const string &track_key)
Turn on an existing track.
void ShowConfigureTracksDlg(const string &category)
void SetTrackConfig(const TTrackSettingsSet &settings_set)
void x_OnLabelIconClicked()
@ eIcon_Color
color theme
@ eIcon_Label
feature label position
@ eIcon_Decoration
feature decoration
CRef< CTrackContainer > x_CreateLevelTrack(int level, int id, const string &track_name, bool shown)
create track container for a given annotation level.
bool x_DrawHairLine(int opt, size_t total, const multiset< TSeqPos > &all_pos, TSeqPos pos, TModelUnit line_y) const
string m_ConfigKey
Base regitry key for panel setting and tracks default "GBPlugins.SeqGraphicFeatPanel" is for SV MSA s...
virtual void x_OnJobCompleted(CAppJobNotification ¬ify)
TDisplayLevels m_DisplayLevels
void x_SaveSettings()
Save settings for feature panel.
void x_StartAssemblyJob()
virtual void ResetSearch()
void SetNonAsnInput(const INonAsnTrackData &data)
list< TTrackSettings > TTrackSettingsSet
TTrackProxies m_TrackSettings
initial track layout settings.
list< CWeakRef< CSeqGlyph > > TSelectedGlyphs
virtual const CTrackTypeInfo & GetTypeInfo() const
virtual bool x_Empty() const
list< CRef< objects::CGC_Assembly > > m_Assemblies
virtual void x_UpdateBoundingBox()
Update the bounding box assuming children's sizes are fixed if any.
virtual CRef< CSeqGlyph > HitTest(const TModelPoint &p)
Hit testing.
virtual bool HitTestHor(TSeqPos x, const CObject *obj)
void SetObjects(const CLayoutGroup::TObjectList &objs)
CLayoutGroup & SetGroup()
const CLayoutGroup::TObjectList & GetChildren() const
virtual void Update(bool layout_only)
Update content and layout including the bounding box.
const CLayoutGroup & GetGroup() const
CLayoutGroup::TObjectList & SetChildren()
CRef< CSimpleLayout > m_Simple
void SetLayoutPolicy(ILayoutPolicy *policy)
Set policy on how to deploy the layout of its children.
static const string kDecimalDot
static CGuiRegistry & GetInstance()
access the application-wide singleton
void UpdateLayout()
update group's bounding box only, and its parent layout.
void SetTrackAttr(TTrackAttrFlags flags)
int m_IndentLevel
track hierachy indentation level.
void x_DeregisterIcon(TIconID id)
deregister an icon if already registered.
void SetShowTitle(bool flag)
void SetTitle(const string &label, const string &default_title=NcbiEmptyString)
@ eIcon_Content
icon id for setting content
@ eIcon_Layout
icon id for setting layout style
@ eIcon_Help
icon id for track help
bool GetShowTitle() const
static bool InitIconTextures()
initialize OpenGL ttexture objects for icons.
ILayoutTrackHost * m_LTHost
Top level host owning the tracks.
virtual void SetComments(const string &)
set comments.
bool m_ShowFrame
need to draw frame, not title
void x_OnLayoutChanged()
update the layout.
TTrackAttrFlags m_Attrs
various track attributes
virtual void x_RenderIcon(TIconID id, bool highlighted, bool lite_version=false) const
Render track icons.
TIcons m_Icons
registered icon info
void LoadProfile(const string &profile_str)
set track profile and load settings.
@ fFrameVisible
track frame will be rendered when triggered.
@ fShowAlways
always be rendered even for an empty track.
@ fFullTrack
track occupying the full horizontal screen.
@ fShowIcons
Track has control icons at the bottom.
const string & GetProfile() const
bool x_HitTitleBar(const TModelPoint &p) const
hit the title bar?.
void SetMsg(const string &msg)
static void RegisterIconImage(const TIconAlias &key, const string &img_file)
register the image for an icon.
int m_HighlightedIcon
the highlighted icon index
CConstRef< CSeqGraphicConfig > x_GetGlobalConfig() const
Method for getting global configuration from rendering context.
void SetProfile(const string &preset_style)
CLayoutTrack inline method implmentation.
CRef< CSeqGraphicConfig > m_gConfig
global configuration.
int TIconID
use int as TIconID instead of EIconID.
virtual void SetHighlights(const string &)
string m_Id
track identifier
static void RegisterCommonIconImages()
register images for the common icons.
void x_RegisterIcon(const SIconInfo &icon)
register track icons.
static CNcbiApplication * Instance(void)
Singleton method.
CNcbiOstrstreamToString class helps convert CNcbiOstrstream to a string Sample usage:
class CRegistryReadView provides a nested hierarchical view at a particular key.
bool GetBool(const string &key, bool default_val=false) const
list< SKeyInfo > TKeys
retrieve information about all keys in the registry
string GetString(const string &key, const string &default_val=kEmptyStr) const
CConstRef< objects::CUser_field > GetField(const string &key) const
provide raw field access
CRef< objects::CUser_field > SetField(const string &key)
provide raw field access
void Set(const string &key, int val)
access a named key at this level, with no recursion
bool DeleteField(const string &key)
delete the specified field (and any of its subfields) from this view and from its registry.
CRenderingContext offers the basic context and utility methods for rendering layout objects in featur...
bool IsHorizontal() const
void TextOut(const CGlTextureFont *font, const char *text, TModelUnit x, TModelUnit y, bool center, bool adjust_flip=true) const
TModelUnit GetVisibleFrom() const
const TSeqRange & GetVisSeqRange() const
CGlPane * GetGlPane()
inline method implementations
const TModelUnit & GetOffset() const
const TModelRange & GetVisibleRange() const
void SetSelectionColor(const CRgbaColor &c)
void DrawLine(TModelUnit x1, TModelUnit y1, TModelUnit x2, TModelUnit y2) const
TModelUnit GetVisibleTo() const
const TModelUnit & GetScale() const
bool IsSkipControls() const
TModelUnit SeqToScreen(const TModelUnit &size) const
convert from sequence positions to screen pixels
TModelUnit SeqToScreenXInModelUnit(const TModelUnit &size) const
TModelUnit ScreenToSeq(const TModelUnit &size) const
convert from screen pixels to sequence positions
bool IsFlippedStrand() const
void SetSelLabelColor(const CRgbaColor &c)
void DrawBackground(const TModelRect &rcm, TModelUnit border) const
void AdjustToOrientation(TModelUnit &x) const
class CRgbaColor provides a simple abstraction for managing colors.
static const string & DefTrackProfile()
static CRegistryReadView GetReadView(const CGuiRegistry ®, const string &base_key, const string &curr_key, const string &def_key1="", const string &def_key2="", const string &def_key3="")
read/readwrite view creation helper methods.
static CRegistryWriteView GetWriteView(CGuiRegistry ®, const string &base_key, const string &curr_key, const string &def_key1="", const string &def_key2="", const string &def_key3="")
static const string & LayoutKey()
static const string & TrackProfileKey()
static const string & UserSettingPrefix()
static const string & DefLayout()
bool IsJobNeeded(TJobID job_id) const
objects::CScope & GetScope(void) const
Get the scope from the handle.
void SetJobListener(CEventHandler *listener)
Set JobDispatcher listener.
objects::CBioseq_Handle & GetBioseqHandle(void)
Get the underlying bioseq handle.
void SetHighlightsColor(const CRgbaColor &hl_color)
CRenderingContext * m_Context
the rendering context
virtual void SetLeft(TModelUnit l)
virtual TModelUnit GetTop() const
virtual void Update(bool)
Update content and layout including the bounding box.
virtual void SetTop(TModelUnit b)
void Draw() const
render the layout.
void GetPosInWorld(TModelPoint &pos) const
Get top left position in world coordinate.
virtual TModelUnit GetBottom() const
list< CRef< CSeqGlyph > > TObjects
@ eDepth_nolimit
adaptive and no depth limitation,
@ eDepth_unknown
sequence-specific, up to app to decide
bool GetShowVertGrid() const
const CRgbaColor & GetSelectionColor() const
const string & GetLayout() const
const string & GetLabelPos() const
const string & GetSizeLevel() const
void SetLabelPos(const string &label_pos)
bool GetShowHorzGrid() const
void SetDecorateStyle(const string &style)
const CRgbaColor & GetVerticalGridColor() const
const CRgbaColor & GetSelHairlineDownColor() const
void SetTrackProfile(const string &profile)
const CRgbaColor & GetSelHairlineManyColor() const
void IgnoreFeatureStrand()
Set show feature strand indicator to false for all features.
void SetColorTheme(const string &theme)
bool GetShowDownwardHairlines() const
const string & GetDecorateStyle() const
const string & GetColorTheme() const
void LoadSettings()
update the cached settings.
const CRgbaColor & GetSelHairlineOneColor() const
int GetHairlineOption() const
void SaveSettings(bool clear_themes=false)
const CRgbaColor & GetSelLabelColor() const
const CRgbaColor & GetHorizontalGridColor() const
void SetSizeLevel(const string &size)
Simple class to represent hairlines drawn on top of seqgraphic images.
void ShowDownwardHairline(bool b)
void SetBottomColor(const CRgbaColor &c)
class CStaticArrayMap<> provides access to a static array in much the same way as CStaticArraySet<>,...
void SetShown(bool shown)
void SetCategory(const string &cat)
list< CRef< CTempTrackProxy > > TTrackProxies
bool GetShowTitle() const
const string & GetKey() const
const string & GetHighlightsColor() const
static void LoadFromRegistry(TTrackProxies &proxies, const string &path, bool isMergeWithExisting=false)
if isMergeWithExisting is true, then load should skip all registry tracks that have keys as in the al...
const string & GetHighlights() const
void SetSubcategory(const string &scat)
static void SaveToRegistry(const TTrackProxies &proxies, const string &path)
const TTrackProxies & GetChildren() const
const string & GetName() const
const string & GetComments() const
static void SetTrackConfig(TTrackProxies &t_settings, const TTrackSettingsSet &in_settings, int order_offset=0)
Reset the track configuration with input settings.
const ILayoutTrackFactory * GetTrackFactory(const string &key) const
static void GetUsedFeatureKeys(set< string > &subkeys, const TTrackProxies &proxies)
static const CTrackTypeInfo & GetTypeInfo()
CTrackContainer - a track container in the form of layout track.
virtual void x_OnJobCompleted(CAppJobNotification ¬ify)
void Traverse(Tr &&tr, bool visible)
virtual void x_UpdateData()
update track content.
ILayoutTrackFactory::TAnnotMetaDataList TAnnotMetaDataList
void AddTrackProxy(CTempTrackProxy *proxy, bool upgateMsg=true)
Add a track proxy.
virtual void DeleteAllJobs()
bool IsTrackInitDone() const
CTrackProxy * AddNewTrack(const string &track_key, const CTrackProxy::TAnnots &annots, const string &disp_name, const string &name="", const string &filter="", const string &sub_key="")
Add a new empty track proxy.
void SetAdaptive(bool flag)
CTrackConfigManager * GetConfigMgr()
int GetAnnotLevel() const
void SetAnnotLevel(int level)
void ClearTracks()
Remove all tracks.
virtual void x_OnIconClicked(TIconID id)
override method in CLayoutTrack to handle speical cases.
void x_MakeTopLevelTracks(CGlyphContainer *featurePanel, TTrackProxies &dst_proxies, int &order, const string &base_name, int indent)
Make all the tracks at different levels as top-level tracks.
void x_UpdateMsg()
udpate message in track title bar.
void SyncSettings(TTrackProxies &dst_proxies, int level) const
synchronize and merge track settings.
void SetConfigMgr(CTrackConfigManager *cfg_mgr)
void AddTracks(CTempTrackProxy *t_proxy, TTrackMap &tracks)
add sub tracks after tracks get created.
CRef< CFeaturePanelDS > m_DS
virtual void SetTrack(CLayoutTrack *track, int order, bool shown=true)
Replace the track by the given track order.
virtual void x_ReinitSubtracks()
reinitialize all subtracks if necessary.
void SetTrackInitDone(bool f)
CTempTrackProxy::TTrackProxies TTrackProxies
TTrackProxies m_TrackProxies
all the tracks including on and off.
void SetSubtrackProxies(const TTrackProxies &proxies)
void InitNATracks(const TAnnotMetaDataList &annots, bool makeContainersVisible)
bool GetSkipGenuineCheck() const
CTrackProxy data structure contains information about the position of a track in its parent scope,...
CTrackTypeInfo - holds description of a layout track type.
const string & GetDescr() const
const string & GetId() const
IIconProvider interface for tracks providing track icons.
virtual void RegisterIconImages() const =0
virtual bool UnderstandLevel() const =0
Have any concept of level.
virtual TTrackMap CreateTracks(SConstScopedObject &object, ISGDataSourceContext *ds_context, CRenderingContext *r_cntx, const SExtraParams ¶ms=SExtraParams(), const TAnnotMetaDataList &src_annots=TAnnotMetaDataList()) const =0
create layout tracks based on input object and extra parameters.
virtual bool NeedBackgroundInit() const =0
Background track initialization.
virtual void LTH_PopupMenu(wxMenu *menu)=0
show track-specific context menu.
virtual const TIntervals & GetIntervals(void) const =0
access sub-intervals (if any).
vector< TSeqRange > TIntervals
const set< string > & GetAnnotsSnp()
const_iterator begin() const
iterator insert(const value_type &val)
iterator_bool insert(const value_type &val)
static unsigned char depth[2 *(256+1+29)+1]
static const string k_multi_level
static const int kSteps[]
void s_StabilizeBaseContainers(CTempTrackProxy::TTrackProxies &proxies, CTempTrackProxy::TTrackProxies &defaultProxies)
static const int kMaxCellSize
static const int kLevelTrackBaseID
static const string k_display_level
static const int kMinCellSize
cell sizes for CDS grid
static const string kBaseKey("GBPlugins.SeqGraphicFeatPanel")
static const int kMaxDisplayLevel
maximal display level in multiple level layout.
static const char * str(char *buf, int n)
CStaticArrayMap< string, CGeneModelConfig::EMergeStyle > TStyleMap
const CNcbiRegistry & GetConfig(void) const
Get the application's cached configuration parameters (read-only).
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)
#define NCBI_CATCH(message)
Catch CExceptions as well This macro is deprecated - use *_X or *_XX variant instead of it.
const string & GetMsg(void) const
Get message string.
void Info(CExceptionArgs_Base &args)
CIRef< T > GetServiceByType()
retrieves a typed reference to a service, the name of C++ type is used as the name of the service.
void Render(CGlPane *pAreaPane, CGlPane *pPane, CRegularGridGen *pGenerator) const
void SetShowVertGrid(bool f)
void SetShowHorzGrid(bool f)
void SetAutoStepUpdate(bool f)
void EnableMinusOneBased(bool en_x, bool en_y)
void SetIntegerMode(bool IntegerX, bool IntegerY)
CRegularGridGen inline methods.
void EnableIntegerCentering(bool b_en)
void SetHorzColor(const CRgbaColor &color)
void SetVertColor(const CRgbaColor &color)
virtual void Translatef(GLfloat x, GLfloat y, GLfloat z)=0
virtual void Enable(GLenum glstate)=0
virtual void Begin(GLenum mode)=0
Start rendering.
virtual void BlendFunc(GLenum sfactor, GLenum dfactor)=0
Options to be used when GL_BLEND is enabled.
void Color3f(GLfloat r, GLfloat g, GLfloat b)
IRender & GetGl()
convenience function for getting current render manager
TVPRect & GetViewport(void)
TModelUnit GetOffsetY() const
virtual void PopMatrix()=0
virtual bool IsPrinterFriendly() const =0
virtual void End()=0
Finish rendering (create buffer and send to renderer)
void Inflate(T d_x, T d_y)
virtual void PolygonMode(GLenum face, GLenum mode)=0
Set the polygon rasterization mode.
void Color4f(GLfloat r, GLfloat g, GLfloat b, GLfloat a)
virtual TModelUnit TextWidth(const char *text) const
Compute and return font metrics.
virtual TModelUnit TextHeight(void) const
TModelRect & GetVisibleRect(void)
void Vertex2f(GLfloat x, GLfloat y)
virtual void Disable(GLenum glstate)=0
glDisable()
virtual void LineWidth(GLfloat w)=0
Set line width for drawing: glLineWidth()
TModelUnit GetOffsetX() const
virtual void ColorC(const CRgbaColor &c)=0
Set current color (glColor{3,4}{f,d}{v,})
virtual void PushMatrix()=0
@ eFontFace_Helvetica_Italic
CRef< objects::CScope > scope
CRef< CObject > GetResult() const
returns non-null pointer only if Completed or Running and has temporary results available
void Lighten(float scale)
CConstRef< CObject > object
string GetSeqIdString(bool with_version=false) const
Return seqid string with optional version for text seqid type.
CConstRef< CSeq_id > GetSeqIdOrNull(void) const
static CSeq_id_Handle GetHandle(const CSeq_id &id)
Normal way of getting a handle, works for any seq-id.
ENa_strand GetStrand(const CSeq_loc &loc, CScope *scope=0)
Returns eNa_strand_unknown if multiple Bioseqs in loc Returns eNa_strand_other if multiple strands in...
vector< CSeq_id_Handle > TSeq_id_Handles
Bulk retrieval methods Common argument typedef - vector of requested ids.
bool NotNull(void) const THROWS_NONE
Check if pointer is not null â same effect as NotEmpty().
TObjectType * GetPointer(void) THROWS_NONE
Get pointer,.
void Reset(void)
Reset reference object.
TRefType Lock(void) const
Lock the object and return reference to it.
TObjectType * GetPointerOrNull(void) const THROWS_NONE
Get pointer value.
virtual bool GetBool(const string §ion, const string &name, bool default_value, TFlags flags=0, EErrAction err_action=eThrow) const
Get boolean value of specified parameter name.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
static int StringToInt(const CTempString str, TStringToNumFlags flags=0, int base=10)
Convert string to int.
static list< string > & Split(const CTempString str, const CTempString delim, list< string > &arr, TSplitFlags flags=0, vector< SIZE_TYPE > *token_pos=NULL)
Split a string using specified delimiters.
static void TruncateSpacesInPlace(string &str, ETrunc where=eTrunc_Both)
Truncate whitespace in a string (in-place)
static string IntToString(int value, TNumToStringFlags flags=0, int base=10)
Convert int to string.
static CStringUTF8 AsUTF8(const CTempString &src, EEncoding encoding, EValidate validate=eNoValidate)
Convert into UTF8 from a C/C++ string.
static bool StartsWith(const CTempString str, const CTempString start, ECase use_case=eCase)
Check if a string starts with a specified prefix value.
static string & ToLower(string &str)
Convert string to lower case â string& version.
@ fSplit_Tokenize
All delimiters are merged and trimmed, to get non-empty tokens only.
TTo GetTo(void) const
Get the To member data.
TFrom GetFrom(void) const
Get the From member data.
void SetData(TData &value)
Assign a value to Data data member.
bool IsLocal(void) const
Check if variant Local is selected.
unsigned int
A callback function used to compare two keys in a database.
static void text(MDB_val *v)
void GatherFeatures(const string &text, bool match_case, objects::CBioseq_Handle bsh, objects::CScope &scope, CFeaturePanel *panel, vector< CMappedFeatOrObject > &search_results)
Defines: CTimeFormat - storage class for time format.
Int4 delta(size_t dimension_, const Int4 *score_)
double r(size_t dimension_, const Int4 *score_, const double *prob_, double theta_)
static SLJIT_INLINE sljit_ins l(sljit_gpr r, sljit_s32 d, sljit_gpr x, sljit_gpr b)
A help struct for storing information about a icon.
static bool s_CompareCRefs(const CRef< CTempTrackProxy > &t1, const CRef< CTempTrackProxy > &t2)
void UseDefaultMarginWidth(wxMenu &menu)
Using default menu item margin width.
wxString ToWxString(const string &s)
string ToStdString(const wxString &s)
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