88 #include <wx/settings.h>
89 #include <wx/msgdlg.h>
90 #include <wx/filedlg.h>
91 #include <wx/textctrl.h>
92 #include <wx/tglbtn.h>
93 #include <wx/printdlg.h>
94 #include <wx/cmndata.h>
113 static bool initialized =
false;
143 "Rectangle Cladogram",
"Rectangle Cladogram",
"",
"",
"",
"", wxITEM_RADIO);
145 "Slanted Cladogram",
"Slanted Cladogram",
"",
"",
"",
"", wxITEM_RADIO);
147 "Radial Tree",
"Radial Tree",
"",
"",
"",
"", wxITEM_RADIO);
149 "Force Layout",
"Force Layout",
"",
"",
"",
"", wxITEM_RADIO);
151 "Circular Layout",
"Circular Layout",
"",
"",
"",
"", wxITEM_RADIO);
153 "Rotate Labels",
"Rotate Labels",
"",
"",
"",
"", wxITEM_CHECK);
155 "Stop Layout",
"Stop Layout",
"",
"",
"",
"", wxITEM_NORMAL);
157 "Use Distances",
"Use Distances",
"",
"",
"",
"", wxITEM_CHECK);
160 "Proportional",
"Proportional",
"",
"",
"",
"", wxITEM_RADIO);
162 "Vertical",
"Vertical",
"",
"",
"",
"", wxITEM_RADIO);
164 "Horizontal",
"Horizontal",
"",
"",
"",
"", wxITEM_RADIO);
170 "Re-root and show only child nodes",
"Re-root and show only child nodes",
"menu::zoom_all",
"");
174 "For Leaves Only",
"For Leaves Only",
"",
"",
"",
"", wxITEM_RADIO);
176 "Show All",
"Show All",
"",
"",
"",
"", wxITEM_RADIO);
178 "Hide All",
"Hide All",
"",
"",
"",
"", wxITEM_RADIO);
210 const wxPoint& pos,
const wxSize&
size,
long style,
211 const wxString& name)
213 , m_pPhyloTreePane(
NULL)
215 , m_SortAscending(
false)
217 , m_PrevPos(0.0f, 0.0f)
459 wxMessageBox(
wxT(
"CPhyloTreeWidget::x_CreateControls()"),
wxT(
""), wxICON_WARNING | wxOK);
462 static bool first_tree_window =
false;
463 if( !first_tree_window ){
465 first_tree_window =
true;
485 wxPoint ms_pos = ScreenToClient(event.GetPosition());
491 unique_ptr<wxMenu> menu(cmd_reg.
CreateMenu(sPopupMenu));
492 PopupMenu(menu.get());
677 glGetIntegerv(GL_PACK_ALIGNMENT, &alignment);
678 glPixelStorei(GL_PACK_ALIGNMENT, 1);
679 glReadPixels(0, 0,
static_cast<GLsizei
>(w),
static_cast<GLsizei
>(h), GL_RGB, GL_UNSIGNED_BYTE, img->
SetData());
680 glPixelStorei(GL_PACK_ALIGNMENT, alignment);
706 wxPrinter printer(&
data);
707 const bool success = printer.Print(
NULL, &print_handler,
true );
712 std::cerr <<
"Failed!!\n";
731 if (img && (xsize != 1.0f || ysize != 1.0f))
765 tree_pdf_dlg.ShowModal();
797 double limits_ratio =
l.Width()/
l.Height();
800 if (visible_ratio == limits_ratio) {
803 else if (visible_ratio < limits_ratio) {
804 double target_width =
l.Width()*(v.
Height()/
l.Height());
805 double center = (v.
Left()+v.
Right())/2.0;
806 new_rect.
SetLeft(center - target_width/2.0);
807 new_rect.
SetRight(center + target_width/2.0);
809 else if (visible_ratio > limits_ratio) {
810 double target_height =
l.Height()*(v.
Width()/
l.Width());
811 double center = (v.
Top()+v.
Bottom())/2.0;
812 new_rect.
SetBottom(center - target_height/2.0);
813 new_rect.
SetTop(center + target_height/2.0);
857 sel_rect.
Init(min_pos.
X(), min_pos.
Y(), max_pos.
X(), max_pos.
Y());
862 sel_rect.
Inflate(def_node_size, def_node_size);
994 for (
auto &renderer : vRend) {
995 if (!renderer->SupportsRotatedLabels())
997 renderer->SetRotatedLabels(!renderer->GetRotatedLabels());
1017 evt.Enable(
r->SupportsRotatedLabels());
1018 evt.Check(
r->GetRotatedLabels());
1023 bool update_layout =
false;
1027 update_layout =
true;
1031 for (
auto &renderer : vRend) {
1032 if (renderer->SupportsRotatedLabels() && renderer->GetRotatedLabels() != rot) {
1033 renderer->SetRotatedLabels(rot);
1047 for (
auto &renderer : vRend) {
1048 if (renderer->SupportsRotatedLabels())
1049 return renderer->GetRotatedLabels();
1104 for (
auto &renderer : vRend) {
1105 renderer->SetDistRendering(bDist && renderer->SupportsDistanceRendering());
1118 return (*vRend.begin())->GetDistRendering();
1133 evt.Check((*vRend.begin())->GetDistRendering());
1139 for (
auto &renderer : vRend) {
1140 renderer->SetSplinesRendering(!renderer->GetSplinesRendering());
1222 vector<CPhyloTree::TTreeIdx> sel;
1225 if (std::find(sel.begin(), sel.end(), cur_node) == sel.end())
1254 vector<string>
names;
1277 wxString filename =
data.GetFilename();
1279 this->SetCursor(*wxHOURGLASS_CURSOR);
1292 }
catch(std::exception& e) {
1295 this->SetCursor(*wxSTANDARD_CURSOR);
1297 if( !
error.empty()) {
1299 wxMessageBox(s,
wxT(
"Error loading file."), wxOK | wxICON_ERROR);
1320 int result = dlg.ShowModal();
1392 bool has_current_node =
1428 bool collapsable =
false;
1438 evt.Enable(collapsable);
1444 bool expandable =
false;
1454 evt.Enable(expandable);
1459 bool collapsable =
false;
1461 vector<TTreeIdx> sel;
1466 for (
size_t i = 0;
i < sel.size(); ++
i)
1474 while (parent_node_idx != root_idx) {
1481 if (parent_node_idx == root_idx) {
1488 evt.Enable(collapsable);
1497 for (
auto &renderer : vRend) {
1498 renderer->SetScheme(sl);
1566 if (
edit->Updated()) {
1575 vector< CPhyloTree::TTreeIdx > selection;
1577 tree->GetSelected(selection);
1578 if (selection.empty())
1584 columns.push_back(itFeature->second);
1591 if (dlgExport.ShowModal() != wxID_OK)
1595 if (fileName.empty())
1598 unique_ptr<CNcbiOstream> os;
1601 if (os.get() ==
NULL){
1604 "File is not accessible"
1611 vector<wxString> selected;
1613 ITERATE(vector<wxString>, field, selected) {
1615 if (itFeature->second == *field)
1616 featuresToExport.
insert(*itFeature);
1622 exporter.
Field(itFeature->second);
1629 ITERATE(vector< CPhyloTree::TTreeIdx >, itIdx, selection) {
1631 if (leavesOnly && !node.
IsLeaf())
1689 if (collapsed_nodes.
size() > 0) {
1763 wxEvtHandler* obj =
dynamic_cast<wxEvtHandler*
>(evt.GetEventObject());
1786 wxRect tip_rect =
f->GetScreenRect();
1787 tip_rect.x = tip_rect.x - win_pos.x;
1788 tip_rect.y = tip_rect.y - win_pos.y;
1790 (tip_rect.y + tip_rect.GetHeight());
1801 double dx = center_model_coord.
X()-pos.
X();
1802 double dy = center_model_coord.
Y()-pos.
Y();
1818 wxEvtHandler* obj =
dynamic_cast<wxEvtHandler*
>(evt.GetEventObject());
1834 float def_node_size = (float)
1842 float dist_between_nodes = dimy/(
size * scale_y);
1845 if (dist_between_nodes <= 0.0f) {
1853 float zfact = 4.0f*def_node_size/dist_between_nodes;
1879 wxEvtHandler* obj =
dynamic_cast<wxEvtHandler*
>(evt.GetEventObject());
1894 feat_edit->
GetUpdated()[0].SetNode(
n->GetId(), tip_node_idx);
1895 feat_edit->
GetUpdated()[0].GetPrevFeatures() =
n->GetBioTreeFeatureList();
1900 int result = dlg.ShowModal();
1919 wxEvtHandler* obj =
dynamic_cast<wxEvtHandler*
>(evt.GetEventObject());
1937 vector<CPhyloTree::TTreeIdx> collapsed =
1940 if (collapsed.size() == 0)
1946 for (
size_t i=0;
i<collapsed.size(); ++
i) {
1948 ec->
AddNode(current->GetId());
1971 feat_edit->
GetUpdated()[0].GetPrevFeatures() = hover->GetBioTreeFeatureList();
1976 int result = dlg.ShowModal();
2036 switch (evt.GetId()){
2081 switch (evt.GetId()){
2099 switch (evt.GetId()){
2116 switch (evt.GetId()){
2135 switch (evt.GetId()){
2155 int result = dlg.ShowModal();
2168 switch (evt.GetId()){
2188 switch (evt.GetId()){
2238 f.GetPrevFeatures() = (*current).GetBioTreeFeatureList();
2239 f.GetFeatures() = (*current).GetBioTreeFeatureList();
2242 bool update =
false;
2245 switch ((*current).GetDisplayChildren()){
2248 f.GetFeatures().SetFeature(feat_id,
"0");
2254 f.GetFeatures().SetFeature(feat_id,
"1");
2299 int result = dlg.ShowModal();
2311 feat_edit->
GetUpdated()[0].GetPrevFeatures() = hover->GetBioTreeFeatureList();
2312 feat_edit->
GetUpdated()[0].GetFeatures() = hover->GetBioTreeFeatureList();
2313 feat_edit->
GetUpdated()[0].GetFeatures().SetFeature(label_id, new_label);
2329 this->SetCursor(*wxHOURGLASS_CURSOR);
2336 this->SetCursor(*wxSTANDARD_CURSOR);
2362 else if (feat_edit !=
NULL) {
2404 bool rotated =
false;
2405 bool label_visible =
false;
2409 label_visible =
r->LabelsVisible();
2410 rotated =
r->GetRotatedLabels();
2413 if (label_visible) {
2416 float rotation_angle =
2419 if (label_visible) {
2424 float a = node->GetAngle();
2425 node->SetAngle(rotation_angle);
2436 label_end_pos.
X() = ll.X();
2438 label_end_pos.
X() = ur.
X();
2441 label_end_pos.
Y() = ll.Y();
2443 label_end_pos.
Y() = ur.
Y();
2456 float label_xpct = float(label_ppt.
X() - ppt.
X()) / float(vp.
Width());
2457 float label_ypct = float(label_ppt.
Y() - ppt.
Y()) / float(vp.
Height());
2460 if (label_xpct > 0.7f) {
2464 else if (label_xpct < -0.7f) {
2469 if (label_ypct > 0.7f) {
2473 else if (label_ypct < -0.7f) {
2480 label_ppt.
Init(ppt.
X() +
int(label_xpct*vp.
Width()),
2481 ppt.
Y() +
int(label_ypct*vp.
Height()));
2506 if (ppt.
X() > vp.
Width() || label_ppt.
X() > vp.
Width()) {
2508 if (ppt.
X() > label_ppt.
X()) {
2509 double off = ppt.
X() - vp.
Width();
2513 dx = (center_model_coord.
X() - pt.
X());
2517 dx *= (off + vp.
Width()*0.25)/(off + vp.
Width()*0.5);
2520 double off = label_ppt.
X() - vp.
Width();
2521 dx = (center_model_coord.
X() - label_end_pos.
X());
2522 dx *= (off + vp.
Width()*0.10)/(off + vp.
Width()*0.5);
2525 else if (ppt.
X() < 0 || label_ppt.
X() < 0) {
2527 if (ppt.
X() < label_ppt.
X()) {
2528 double off = -ppt.
X();
2529 dx = (center_model_coord.
X() - pt.
X());
2530 dx *= (off + vp.
Width()*0.25) / (off + vp.
Width()*0.5);
2533 double off = -label_ppt.
X();
2534 dx = (center_model_coord.
X() - label_end_pos.
X());
2535 dx *= (off + vp.
Width()*0.10) / (off + vp.
Width()*0.5);
2540 if (ppt.
Y() > label_ppt.
Y()) {
2541 double off = ppt.
Y() - vp.
Height();
2542 dy = (center_model_coord.
Y() - pt.
Y());
2543 dy *= (off + vp.
Height()*0.25) / (off + vp.
Height()*0.5);
2546 double off = label_ppt.
Y() - vp.
Height();
2547 dy = (center_model_coord.
Y() - label_end_pos.
Y());
2548 dy *= (off + vp.
Height()*0.10) / (off + vp.
Height()*0.5);
2551 else if (ppt.
Y() < 0 || label_ppt.
Y() < 0) {
2552 if (ppt.
Y() < label_ppt.
Y()) {
2553 double off = -ppt.
Y();
2554 dy = (center_model_coord.
Y() - pt.
Y());
2555 dy *= (off + vp.
Height()*0.25) / (off + vp.
Height()*0.5);
2558 double off = -label_ppt.
Y();
2559 dy = (center_model_coord.
Y() - label_end_pos.
Y());
2560 dy *= (off + vp.
Height()*0.10) / (off + vp.
Height()*0.5);
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.
Parser-reader for BKBTA - biotree attributes format.
Features storage for the bio tree node.
void Field(const string &value)
wxString GetFileName() const
bool GetLeavesOnly() const
void GetSelectedColumns(vector< wxString > &columns) const
Gets the columns, selected by the user.
bool GetWithHeaders() const
void SetColumnsList(const vector< wxString > &columns)
Sets the columns lists.
virtual void SetRegistryPath(const string &path)
CEvent - generic event implementation TODO TODO - Attachments.
size_t GetWidth(void) const
CImage * GetSubImage(size_t x, size_t y, size_t w, size_t h) const
size_t GetHeight(void) const
unsigned char * SetData(void)
Template class to create a table with custom row-column access.
void StopLayout()
Stop active layout (particle system)
CGlRect< float > GetLabelRect() const
CBioTreeFeatureList & GetBioTreeFeatureList()
void SetSelections(CRef< CPhyloTreeDataSource > ds, string name)
void MeasureTree(TTreeIdx node)
void SortDist(bool ascending)
TTreeIdx GetCurrentSearchNode() const
void ReRootMidpoint()
Re-root tree using midpoint-method.
TTreeIdx IterateOverSelNodes(int direction, bool highlight)
void Clusterize(CPhyloTreeScheme *scheme)
void SortLabel(bool ascending)
void UpdateSelectionSets(CPhyloTreeScheme *scheme)
virtual void ClearQueryResults()
Clear any current results from previous queries.
void ApplyAttributes(CBioTreeAttrReader::TAttrTable &attrs, CPhyloTreeScheme *scheme, const string &labelfmt="")
void ReRootEdge(TTreeIdx edge_child_node)
Re-root on the edge between the selected node and its parent.
void Relabel(CPhyloTreeScheme *scheme, string labelFmt)
void ReRoot(TTreeIdx root_idx)
Set the root node of the tree to the node at root_idx.
TTreeIdx NewNode(bool after=true)
void Remove(bool subtree=true)
void Sort(bool ascending)
CPhyloSelectionSetMgr & GetSelectionSets()
unsigned int GetNumNodes(void)
set< CPhyloNodeData::TID > CollapseByDistance(int leaf_count_target, SCollapsable *collapse_func)
Collapse, based on distance, enough nodes in the tree to get the total number of leaves down to the r...
void SetCollapsedLabels(const vector< CPhyloNodeData::TID > &node_ids)
Collapse all nodes in node_ids, doing relabeling if needed.
void SortLabelRange(bool ascending)
const CBioTreeFeatureDictionary & GetDictionary() const
CTreeGraphicsModel & GetModel()
Get model for rendering.
string GenerateTooltipFormat()
bool ClipboardEmpty() const
void SetCollapsedLabel(CPhyloTree::TTreeIdx idx)
Collapse single node, do any relabeling if needed.
bool Expanded() const
Return true if node is currently not collapsed.
void ExpandCollapse(CBioTreeFeatureDictionary &dict, CPhyloNodeData::TDisplayChildren chds)
Set this node to be expanded/collapsed.
bool CanExpandCollapse(CPhyloNodeData::TDisplayChildren chds)
Return true if node can have its expand/collapsed state changed to chds.
bool IsLeafEx() const
Return true if node is a leaf or is collapsed.
void GoBack()
move to view position prior to most recent zoom/pan
virtual void SetContext(void)
void SetCurrRendererIdx(int idx)
IPhyloTreeRender * GetCurrRenderer(void)
void AddRenderer(CRef< IPhyloTreeRender > &&renderer)
void RemoveCurrentDataSource()
TRenderers & GetRenderers(void)
int GetCurrRendererIdx(void)
virtual I3DTexture * MMHH_GetTexture(float &xcoord_limit, float &ycoord_limit)
gets a texture and its coordinate limits for the minmap
vector< CRef< IPhyloTreeRender > > TRenderers
void GoForward()
return to view position that you just left through 'GoBack()'
void SaveCurrentView()
Record current zoom/pan so that user can undo/redo navigation.
virtual void Update(void)
bool CanGoForward() const
Return true if there are saved view positions you can nav forward to.
virtual TModelUnit SHH_GetModelByWindow(int z, EOrientation orient)
virtual void SoftUpdate(void)
bool CanGoBack() const
Return true if there are previous view positions you can nav back to.
virtual bool LoadCurrentSettings()
string & SetTooltipFormat(void)
void SetShowAllSelected(bool show_all)
const TLabelsVisibility & GetLabelVisibility(void) const
string & SetLabelFormat(void)
void SetAutoLabels(const TAutoLabels &al)
TZoomBehavior GetZoomBehavior(const string &renderer)
void SetLabelVisibility(const TLabelsVisibility &lv)
void SetZoomBehavior(const string &renderer, TZoomBehavior zb)
void SetLayoutIdx(int lidx)
const TAutoLabels & GetAutoLabels(void) const
void SetSelectionVisibility(const TSelectionVisibility sv)
virtual bool SaveCurrentSettings() const
Tree subclass also has functions and data needed for rendering and selection.
void ClearSelection()
Sets selection state of all nodes to eNotSelected and clears m_Selected.
void GetCurrentEdge(TTreeIdx &child_idx, TTreeIdx &parent_idx) const
bool GetSelectedBoundary(CVect2< float > &ll, CVect2< float > &ur)
Return bounding rectangle from lower-left to upper-right of selected nodes (eSelected) and false if n...
bool HasSelection() const
CPhyloSelectionSetMgr & GetSelectionSets()
void SetSelection(TTreeIdx idx, bool sel, bool sel_children=true, bool sel_parents=true)
Select or deselect the node at the specified index and, optionally, its parents and children as well.
TTreeIdx GetCurrentNodeIdx() const
Return the index of the currently active node (may be Null()).
void GetExplicitlySelectedAndNotCollapsed(vector< TTreeIdx > &esel) const
Returns only indices of nodes explicitly selected, but when a node is underneath a collapsed node,...
CPhyloTreeNode & GetCurrentNode()
Get reference to currently active node. Throws exception if it's Null()
bool HasCurrentNode() const
Return true if the currently active node is not Null()
TTreeIdx FindNodeById(TID id) const
Return index of the node with the given id or Null().
CBioTreeFeatureDictionary & GetFeatureDict()
Return feature dictionary.
void GetSelected(vector< TTreeIdx > &sel) const
Returns indices of selected nodes.
size_t GetNumSelected() const
Returns the number of selected nodes.
bool HasCurrentEdge() const
vector< TTreeIdx > GetAllCollapsed() const
Returns indices of nodes thate are currently collapsed.
void SetZoomBehavior(bool zoomx, bool zoomy)
Enable/disable zoom in x && y.
Shows a basic example of how to print stuff in wx.
bool performPageSetup(const bool showPageSetupDialog)
shows the page setup dialog, OR sets up defaults
wxPrintData getPrintData()
returns the data obtained from the page setup dialog (or the defaults, if dialog was not shown)
void SetImage(CRef< CImage > img)
string GetLastQuery() const
Get the text for the most recently executed query.
virtual void SaveSettings() const
virtual void SetRegistryPath(const string ®_path)
bool IsSelectAll()
Return true if select all checkbox is checked.
void SetDataSource(IQueryDataSource *ds)
Set or update data source.
virtual void LoadSettings()
void SetScheme(CPhyloTreeScheme &sl)
Set rendering scheme for tree (some nodes need this to render)
float GetCurrentRotationAngle(const CGlPane &pane, const CPhyloTreeNode &n, bool &visible) const
Return node's label rotation angle for current zoom level.
TTreeIdx GetParent() const
Get node's parent.
TData & GetValue()
Return the value object for the node.
bool HasParent() const
Check if the node has a parent.
bool IsLeaf() const
Report whether this is a leaf node.
static TTreeIdx Null()
Static function that returns the null value.
size_t GetNumNodes() const
Get the number of displayed nodes in current tree layout.
static TTreeIdx Null()
Return the index value that represents a NULL node.
TNodeType & GetNode(TTreeIdx idx)
Return a reference to the node at the given index.
TTreeIdx GetRootIdx() const
Return the index of the root node.
bool GetTopologyChange() const
CFeatureEdit * GetFeatureEdit()
CSelectionSetEdit * GetSelectionEdit()
CUICommandRegistry is a centralized registry where all application commands should be registered.
static CUICommandRegistry & GetInstance()
the main instance associated with the application
wxMenu * CreateMenu(const SwxMenuItemRec *items)
create a menu from a static definition (see WX_*_MENU macros)
int RegisterCommand(CUICommand *cmd)
assumes ownership of the given object returns a command id (useful when registry is used for auto id ...
@ eWidgetSelectionChanged
a view has been destroyed
@ eWidgetRangeChanged
notification from child to parent that the visible range has changed
string GetUpdatedLabel() const
void SetParams(CPhyloTree *tree, CPhyloTree::TTreeIdx node_idx)
void SetParams(CPhyloTree *tree, CPhyloTree::TTreeIdx node_idx, CFeatureEdit *updated_feature)
void SetParams(CPhyloTreeDataSource *ds, CPhyloTreeScheme *sl)
void SetParams(CPhyloTreeDataSource *ds, CPhyloTreeScheme *sl)
virtual bool SupportsDistanceRendering() const
bool GetDistRendering(void) const
bool GetSplinesRendering(void) const
int GetMaxLeavesVisible()
virtual string GetDescription(void)=0
const double GetDimX(void)
bool GetHighlightEdges() const
const double GetDimY(void)
void SetActiveTooltipNode(int id)
id is the tip id of the tip that the users mouse is currently on, or -1
void SetHighlightEdges(bool enable)
void PointToNode(int id, wxRect tip_rect, float sec)
point to a particular node from a tooltip to help user spot it rectangle should be the tooltip screen...
virtual float DefaultNodeSize()
Return default node size according to scheme or 0 if not visible at current scale.
virtual float GetDefaultNodeSize(const CPhyloTreeNode *node) const
bool GetRotatedLabels(void) const
iterator_bool insert(const value_type &val)
const_iterator begin() const
const_iterator end() const
virtual void RegisterFileAlias(const wxArtID &anId, const wxArtClient &aClient, const wxSize &aSize, const wxString &aName, long aType=wxBITMAP_TYPE_ANY, int anIndex=-1)
std::ofstream out("events_result.xml")
main entry point for tests
static const struct name_t names[]
static const column_t columns[]
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
#define NCBI_THROW(exception_class, err_code, message)
Generic macro to throw an exception, given the exception class, error code and message string.
const string & GetMsg(void) const
Get message string.
virtual const char * what(void) const noexcept
Standard report (includes full backlog).
void Read(CNcbiIstream &is, TAttrTable &attr_table)
Read attributes stream into the table.
void SetMinScaleY(TModelUnit scale)
void SetModelLimitsRect(const TModelRect &R)
virtual CImage * GenerateImage()=0
CVect2< TModelUnit > GetScale() const
TModelUnit UnProjectWidth(TVPUnit vp_w) const
TModelPoint UnProject(TVPUnit m_x, TVPUnit m_y) const
TVPRect & GetViewport(void)
void ScrollTo(const CVect2< TModelUnit > &pos, TModelUnit pctx, TModelUnit pcty)
void ZoomAll(int options=fZoomXY)
void SetScale(TModelUnit scale_x, TModelUnit scale_y, TModelPoint p_center)
void SetScaleRefPoint(TModelUnit scale_x, TModelUnit scale_y, TModelPoint p_ref)
void ZoomRect(const TModelRect &r)
TModelRect & GetModelLimitsRect(void)
void SetProportional(TModelRect &vr, TModelRect &mr)
bool PtInRect(T x, T y) const
void SetAdjustmentPolicy(int adjust_x, int adjust_y)
void Inflate(T d_x, T d_y)
TModelUnit GetZoomAllScaleY(void) const
TModelUnit UnProjectHeight(TVPUnit vp_h) const
void EnableZoom(bool en_x, bool en_y)
TModelUnit GetZoomAllScaleX(void) const
EZoomOptions
EZoomOptions flags control behavior of Zoom operations.
TModelRect & GetVisibleRect(void)
void SetMinScaleX(TModelUnit scale)
CGlRect< TModelUnit > TModelRect
TModelUnit GetScaleX(void) const
TModelUnit GetScaleY(void) const
void SetOriginType(EOriginType type_x, EOriginType type_y)
TVPPoint Project(TModelUnit m_x, TModelUnit m_y) const
virtual void RemoveListener(CEventHandler *listener)
Remove a listener.
int NcbiFileBrowser(SFileDlgData &data, wxWindow *parent=NULL)
show wxFileDialog and returns
virtual void AddListener(CEventHandler *listener, int pool_name=ePool_Default)
Add a listener.
virtual bool Send(CEvent *evt, EDispatch disp_how=eDispatch_Default, int pool_name=ePool_Default)
Sends an event synchronously.
@ eCmdZoomTip
search (scroll) window to tip element
@ eCmdSearchTip
tool tip pinned or unpinned
@ eCmdTipActive
User is interactively moving a tool tip.
@ eCmdInfoTip
zoom into tip element
@ eCmdTipInactive
Mouse entered a tip (highlight matching glyph)
@ eCmdZoomIn
empty command
@ eCmdBack
Navigation commands.
@ eRelease
delete object when ownership end
@ eEvent_Message
message from one class to another
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.
bool IsNull(void) const THROWS_NONE
Check if pointer is null – same effect as Empty().
TObjectType & GetObject(void)
Get object.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
IO_PREFIX::ofstream CNcbiOfstream
Portable alias for ofstream.
IO_PREFIX::ifstream CNcbiIfstream
Portable alias for ifstream.
static int StringToInt(const CTempString str, TStringToNumFlags flags=0, int base=10)
Convert string to int.
unsigned int TBioTreeFeatureId
Feature Id.
TBioTreeFeatureId GetId(const string &feature_name) const
If feature is already registered returns its id by name.
TBioTreeFeatureId Register(const string &feature_name)
Register new feature, return its id.
const string & GetFeatureValue(TBioTreeFeatureId id) const
Get feature value by id.
const TFeatureDict & GetFeatureDict() const
Get reference on the internal map.
unsigned int
A callback function used to compare two keys in a database.
<!DOCTYPE HTML >< html > n< header > n< title > PubSeq Gateway Help Page</title > n< style > n table
CMinPanelContainer::OnRestoreWindow EVT_UPDATE_UI_RANGE(eCmdCloseDockPanel, eCmdWindowRestore, CMinPanelContainer::OnUpdateWindowCommand) CMinPanelContainer
const struct ncbi::grid::netcache::search::fields::SIZE size
Defines: CTimeFormat - storage class for time format.
double r(size_t dimension_, const Int4 *score_, const double *prob_, double theta_)
@ eCmdRenderingOptionsChanged
EVT_MENU_RANGE(MID_SHOW_TITLES, MID_HIDE_TITLES, ViewerWindowBase::OnTitleView) EVT_MENU_RANGE(MID_ENABLE_EDIT
ViewerWindowBase::OnEditMenu ViewerWindowBase::OnJustification EVT_MENU(MID_SHOW_GEOM_VLTNS, ViewerWindowBase::OnShowGeomVltns) EVT_MENU(MID_FIND_PATTERN
static SLJIT_INLINE sljit_ins l(sljit_gpr r, sljit_s32 d, sljit_gpr x, sljit_gpr b)
void AddNode(CPhyloNodeData::TID id)
vector< CPhyloNodeData::TID > & GetIds()
void SetExpanded(CPhyloNodeData::TDisplayChildren ec)
Edits for one or more nodes.
vector< CUpdatedFeature > m_Updated
One entry for each updated node.
vector< CUpdatedFeature > & GetUpdated()
CBioTreeFeatureDictionary m_Dictionary
CBioTreeFeatureDictionary & GetDictionary()
Edits for one or more nodes.
CPhyloSelectionSetMgr & GetUpdatedSet()
CPhyloSelectionSetMgr & GetPrevSet()
Function to exclude nodes during a collapse those nodes that meet a priority threshold.
#define NULL_TREE_IDX
Global define for a NULL link in the tree used for comparison.
size_t TTreeIdx
Bi-directionaly linked N way tree allocated in a contiguous memory block.
#define WX_DEFINE_MENU(name)
New macros for defining menus for use with CUICommandRegistry.
#define WX_SUBMENU(label)
#define WX_MENU_ITEM(cmd)
#define WX_MENU_SEPARATOR()
wxFileArtProvider * GetDefaultFileArtProvider()
wxString ToWxString(const string &s)