⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 align_row.hpp

📁 ncbi源码
💻 HPP
字号:
/* * =========================================================================== * PRODUCTION $Log: align_row.hpp,v $ * PRODUCTION Revision 1000.4  2004/04/12 18:15:43  gouriano * PRODUCTION PRODUCTION: UPGRADED [CATCHUP_003] Dev-tree R1.27 * PRODUCTION * =========================================================================== */#ifndef __GUI_WIDGETS_ALNMULTI___ALIGN_ROW__HPP#define __GUI_WIDGETS_ALNMULTI___ALIGN_ROW__HPP/*  $Id: align_row.hpp,v 1000.4 2004/04/12 18:15:43 gouriano Exp $ * =========================================================================== * *                            PUBLIC DOMAIN NOTICE *               National Center for Biotechnology Information * *  This software/database is a "United States Government Work" under the *  terms of the United States Copyright Act.  It was written as part of *  the author's official duties as a United States Government employee and *  thus cannot be copyrighted.  This software/database is freely available *  to the public for use. The National Library of Medicine and the U.S. *  Government have not placed any restriction on its use or reproduction. * *  Although all reasonable efforts have been taken to ensure the accuracy *  and reliability of the software and data, the NLM and the U.S. *  Government do not and cannot warrant the performance or results that *  may be obtained by using this software or data. The NLM and the U.S. *  Government disclaim all warranties, express or implied, including *  warranties of performance, merchantability or fitness for any particular *  purpose. * *  Please cite the author in any work or product based on this material. * * =========================================================================== * * Authors:  Andrey Yazhuk * * File Description: * */#include <gui/opengl/gldlist.hpp>#include <gui/widgets/aln_multiple/ialign_row.hpp>#include <gui/widgets/aln_multiple/attr_range_coll.hpp>#include <gui/widgets/aln_multiple/alnvec_row_handle.hpp>BEGIN_NCBI_SCOPEclass CScoreCache;class IAlnVecRowGraph;class IAlnRowGraphProperties;/////////////////////////////////////////////////////////////////////////////////// CAlnVecRowDisplayStyle - extension of CRowDisplayStyle for CAlnVecRow.///class  NCBI_GUIWIDGETS_ALNMULTIPLE_EXPORT  CAlnVecRowDisplayStyle       : public CRowDisplayStyle{public:    CAlnVecRowDisplayStyle()    :   m_AlignTextColor(0.0f, 0.0f, 0.0f),        m_AlignColor(0.8f, 0.8f, 0.8f)    {    }        virtual const CGlColor& GetAlignTextColor() const;    virtual const CGlColor& GetAlignColor() const;protected:    CGlColor    m_AlignTextColor; /// sequence color    CGlColor    m_AlignColor; /// background color for aligned segments};/////////////////////////////////////////////////////////////////////////////////// class CAlnVecRow - implementation of IAlignRow for CAlnVec-based alignments./// CAlnVecRow uses CAlnVecRowHandle as proxy for accesing data in CAlnVec.class NCBI_GUIWIDGETS_ALNMULTIPLE_EXPORT CAlnVecRow : public IAlignRow{public:    CAlnVecRow(const CAlnVecRowHandle& handle);    ~CAlnVecRow();    /// @name IAlignRow implementation    /// @{    virtual void    SetHost(IAlignRowHost* host);        virtual void    SetDisplayStyle(const CRowDisplayStyle* style);    virtual const CRowDisplayStyle*    GetDisplayStyle();    virtual int     GetRowNum() const;    virtual int     GetHeightPixels() const;            virtual void    RenderColumn(EColumnType  col_type, CGlPane& pane, int state);         virtual int     handle(CGUIEvent& event, EColumnType  col_type, CGlPane& pane);           virtual string  GetTooltip(EColumnType col_type, CGlPane& pane);        virtual void    GraphicsCacheCmd(EGraphCacheCmd cmd);     virtual void    GetHTMLActiveAreas(EColumnType col_type, CGlPane& pane, TAreaVector& areas);    /// @}    void    SetScoreCache(CScoreCache* cache);    virtual bool    IsExpandable() const;    virtual bool    IsExpanded() const;    virtual void    Expand(bool b_exp);    virtual const IAlnRowGraphProperties*     GetProperties() const;    virtual void    SetProperties(IAlnRowGraphProperties* props);protected:    enum EButtons   {        eStrandMarker,        eExpand,        eSetupGraphs            };            typedef CRef<CAlnVec::CAlnChunkVec> TRefChunks;    virtual void    x_CreateGraph();    virtual void    x_DestroyGraph();    void    x_RenderDescr(CGlPane& pane, int State);     void    x_RenderAlign(CGlPane& pane);     void    x_RenderIcons(CGlPane& pane);     void    x_RenderEmptyBox(CGlPane& pane);     void    x_RenderAlignSegments(CGlPane& pane, TRefChunks& chunks, int top_y, int bottom_y);    void    x_RenderAlignScores(CGlPane& pane, TRefChunks& chunks);    bool    x_CanRenderSeq(CGlPane& pane);    void    x_RenderSequence(CGlPane& pane, float y, int start, int stop);    virtual void    x_RenderGraph(CGlPane& pane, CConstRef<CAlnVec::CAlnChunkVec> chunks);    void    x_RenderStartPos(CGlPane& pane);    void    x_RenderEndPos(CGlPane& pane);    void    x_RenderSeqEnd(CGlPane& pane);    void    x_RenderAlnPos(CGlPane& pane, TSeqPos aln_pos,                           objects::CAlnVec::ESearchDirection dir);    void    x_RenderPos(CGlPane& pane, TSeqPos pos, const char* s_marker);        TVPRect x_GetButtonRect(CGlPane& pane, EButtons btn);    virtual void    x_OnClickExpandBtn();    virtual string  x_GetIconsTooltip(CGlPane& pane);    virtual string  x_GetAlignmentTooltip(CGlPane& pane);    IAlignRowHost*  x_GetHost()     {   return m_pHost; }protected:    const CAlnVecRowHandle& m_Handle;        IAlignRowHost*  m_pHost;        int     m_Height;        int     m_BaseHeight;    string  m_Text;    bool m_bExpanded;        const CAlnVecRowDisplayStyle*   m_pStyle; /// row display style    CScoreCache*    m_pCache;        IAlnVecRowGraph*    m_pGraph; /// graph hosted in the expandable area    /// Graphics caching    CGlDisplayList  m_DList;    TVPUnit         m_PixLeft, m_PixRight;    TModelUnit      m_ModelLeft, m_ModelRight;};END_NCBI_SCOPE/* * =========================================================================== * $Log: align_row.hpp,v $ * Revision 1000.4  2004/04/12 18:15:43  gouriano * PRODUCTION: UPGRADED [CATCHUP_003] Dev-tree R1.27 * * Revision 1.27  2004/04/06 21:48:16  yazhuk * Added NCBI_GUIWIDGETS_ALNMULTIPLE_EXPORT to CAlnVecRow * * Revision 1.26  2004/04/06 19:09:27  yazhuk * Added "EColumnType col_type" to GetHTMLActiveAreas() * * Revision 1.25  2004/04/02 16:40:29  yazhuk * Rearranged values in EButtons * * Revision 1.24  2004/03/29 19:08:01  yazhuk * Added API for Graph properties access, GetHTMLActiveAreas generation, * eliminated m_TraceProxy * * Revision 1.23  2004/03/26 15:01:15  yazhuk * CTraceDataProxy  class added * * Revision 1.22  2004/03/18 17:09:40  yazhuk * Added API for expanding rows * * Revision 1.21  2004/03/08 17:06:59  yazhuk * Replaced CTraceGraph with IAlnVecRowGraph interface; make some functions * virtual * * Revision 1.20  2004/03/08 15:51:59  yazhuk * Replaced list of graph with a pointer to grapp, added x_IsExpandable() * * Revision 1.19  2004/03/02 15:11:52  yazhuk * Added support for Trace Graphs * * Revision 1.18  2004/02/17 15:18:47  yazhuk * Support for graphics caching * * Revision 1.17  2004/02/10 19:54:08  yazhuk * Added RenderAlignSegments() RenderAlignScores() member functions * * Revision 1.16  2004/01/08 19:42:44  yazhuk * Added x_GetIconsTooltip(), x_GetAlignmentTooltip() * * Revision 1.15  2003/12/29 23:19:45  yazhuk * Added GetTooltip() * * Revision 1.14  2003/12/18 21:10:08  yazhuk * Redesigned CAlnVecRow - separated display style * * Revision 1.13  2003/12/01 16:55:41  yazhuk * In handle() replaced "int event" with CGUIEvent& * * Revision 1.12  2003/11/06 20:01:09  dicuccio * Removed USING_SCOPE(objects) * * Revision 1.11  2003/11/03 16:50:22  yazhuk * Implemented event handling and support for expanding/collapsing alignment rows * * Revision 1.10  2003/10/29 23:24:54  yazhuk * Removed IAlignRowRenderer, renamed CAlignRowRenderer to CAlnVecRow * * Revision 1.9  2003/10/15 21:22:31  yazhuk * Migrated from using CAlnVec to accessing data via "generic" interface in CAlignDataSource. * * Revision 1.8  2003/10/10 19:05:00  yazhuk * Added support for score coloring and setting fonts * * Revision 1.7  2003/10/08 14:12:41  dicuccio * Made interface class's dtor inline.  Use CRef<> for CGlBitmapFont.  Moved * CGlPane into opengl * * Revision 1.6  2003/09/29 15:20:08  dicuccio * Deprecated gui/scope.hpp.  Merged gui/core/types.hpp into gui/types.hpp * * Revision 1.5  2003/09/29 13:44:28  yazhuk * Added "SeqEnd" column and functions for rendering "Start", "End" and "SeqEnd" columns * * Revision 1.4  2003/09/23 20:52:57  yazhuk * Added #include <corelib/ncbistl.hpp> * * Revision 1.3  2003/09/10 20:39:30  yazhuk * Introduced notion of Columns * * Revision 1.2  2003/09/08 16:22:33  yazhuk * Drawing insertions, small improvements * * Revision 1.1  2003/08/28 18:22:45  yazhuk * Initial revision * * =========================================================================== */#endif  // __GUI_WIDGETS_ALNMULTI___ALIGN_ROW__HPP

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -