alnmulti_base_pane.hpp
上传用户:yhdzpy8989
上传日期:2007-06-13
资源大小:13604k
文件大小:5k
源码类别:

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: alnmulti_base_pane.hpp,v $
  4.  * PRODUCTION Revision 1000.3  2004/04/12 18:15:49  gouriano
  5.  * PRODUCTION PRODUCTION: UPGRADED [CATCHUP_003] Dev-tree R1.17
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. #ifndef __GUI_WIDGETS_ALNMULTI___ALNMULTI_BASE_PANE__HPP
  10. #define __GUI_WIDGETS_ALNMULTI___ALNMULTI_BASE_PANE__HPP
  11. /*  $Id: alnmulti_base_pane.hpp,v 1000.3 2004/04/12 18:15:49 gouriano Exp $
  12.  * ===========================================================================
  13.  *
  14.  *                            PUBLIC DOMAIN NOTICE
  15.  *               National Center for Biotechnology Information
  16.  *
  17.  *  This software/database is a "United States Government Work" under the
  18.  *  terms of the United States Copyright Act.  It was written as part of
  19.  *  the author's official duties as a United States Government employee and
  20.  *  thus cannot be copyrighted.  This software/database is freely available
  21.  *  to the public for use. The National Library of Medicine and the U.S.
  22.  *  Government have not placed any restriction on its use or reproduction.
  23.  *
  24.  *  Although all reasonable efforts have been taken to ensure the accuracy
  25.  *  and reliability of the software and data, the NLM and the U.S.
  26.  *  Government do not and cannot warrant the performance or results that
  27.  *  may be obtained by using this software or data. The NLM and the U.S.
  28.  *  Government disclaim all warranties, express or implied, including
  29.  *  warranties of performance, merchantability or fitness for any particular
  30.  *  purpose.
  31.  *
  32.  *  Please cite the author in any work or product based on this material.
  33.  *
  34.  * ===========================================================================
  35.  *
  36.  * Authors:  Andrey Yazhuk
  37.  *
  38.  * File Description:
  39.  *
  40.  */
  41. #include <corelib/ncbistl.hpp>
  42. #include <gui/opengl/glcanvas2d.hpp>
  43. #include <gui/opengl/glcolor.hpp>
  44. #include <gui/opengl/glpane.hpp>
  45. #include <gui/widgets/aln_multiple/alnmulti_renderer.hpp>
  46. BEGIN_NCBI_SCOPE
  47. ////////////////////////////////////////////////////////////////////////////
  48. /// Interface IAlnMultiPaneParent represents a context in which an instance
  49. /// of CAlnMultiPane lives.
  50. class IAlnMultiPaneParent
  51. {
  52. public:
  53.     typedef IAlnMultiDataSource::TNumrow    TNumrow;
  54.     enum ENotification   {
  55.         eRowSelChanged
  56.     };
  57. public:
  58.     virtual ~IAlnMultiPaneParent()  {};
  59.     
  60.     virtual const IAlnMultiDataSource*  GetDataSource(void) const = 0;
  61.     // all Y coordinates are OpenGL Viewport coordinates (not widget)
  62.     virtual TNumrow     GetRowNumByLine(int index) const = 0;
  63.     virtual int         GetLineByRowNum(TNumrow row) const = 0;
  64.     virtual void    OnChildResize(void) = 0;
  65.     virtual void    OnSetScaleX(TModelUnit scale_x, const TModelPoint& point) = 0;
  66.     virtual void    OnZoomRect(const TModelRect& rc) = 0;
  67.     virtual void    OnScroll(TModelUnit d_x, TModelUnit d_y) = 0;
  68.     virtual void    OnRowChanged(IAlignRow* p_row) = 0;
  69.     virtual void    OnShowPopup() = 0;    
  70.     virtual void    OnNotify(ENotification notification) = 0;
  71. };
  72. END_NCBI_SCOPE
  73. /*
  74.  * ===========================================================================
  75.  * $Log: alnmulti_base_pane.hpp,v $
  76.  * Revision 1000.3  2004/04/12 18:15:49  gouriano
  77.  * PRODUCTION: UPGRADED [CATCHUP_003] Dev-tree R1.17
  78.  *
  79.  * Revision 1.17  2004/04/02 16:36:29  yazhuk
  80.  * Introduced ENotification and OnNotify() to IAlnMultiPaneParent
  81.  *
  82.  * Revision 1.16  2004/03/17 20:16:03  yazhuk
  83.  * Renamed GetAlnDS() to GetDataSource()
  84.  *
  85.  * Revision 1.15  2004/03/09 21:01:09  yazhuk
  86.  * Separated IAlnMultiPaneParent  from  IAlnMultiRendererContext
  87.  *
  88.  * Revision 1.14  2004/03/08 15:51:17  yazhuk
  89.  * Inherited CAlnMultiPaneParent from  IAlnMultiRendererContext; modified #includes
  90.  *
  91.  * Revision 1.13  2003/12/10 17:11:08  yazhuk
  92.  * Added "ref. point" argument to IAlnMultiParent::OnSetScaleX().
  93.  * Added OnShowPopup() to IAlnMultiParent.
  94.  *
  95.  * Revision 1.12  2003/12/01 16:55:02  yazhuk
  96.  * Added OnZoomRect() and OnScroll()
  97.  *
  98.  * Revision 1.11  2003/11/03 16:52:11  yazhuk
  99.  * Added OnRowChanged() member function
  100.  *
  101.  * Revision 1.10  2003/10/29 23:26:39  yazhuk
  102.  * Replace CAlnMultiDataSource with IAlnMultiDataSource
  103.  *
  104.  * Revision 1.9  2003/10/20 15:51:22  yazhuk
  105.  * Added OnSetScaleX() to IAlignPaneParent.
  106.  *
  107.  * Revision 1.8  2003/10/15 21:22:22  yazhuk
  108.  * Migrated from using CAlnVec to accessing data via "generic" interface in CAlignDataSource.
  109.  *
  110.  * Revision 1.7  2003/10/10 19:03:41  yazhuk
  111.  * Removed CAlnMultiBasePane class
  112.  *
  113.  * Revision 1.6  2003/10/08 14:12:58  dicuccio
  114.  * Moved CGlPane into opengl
  115.  *
  116.  * Revision 1.5  2003/09/29 15:15:37  dicuccio
  117.  * CLeaned up use of CAlnVec (precede with objects:: ; remove
  118.  * USING_SCOPE(objects)).  Wrapped lines at 80 chars
  119.  *
  120.  * Revision 1.4  2003/09/23 20:56:04  yazhuk
  121.  * Systemized IAlnMultiPaneParent - added const modifiers, changed function names, added new functions
  122.  *
  123.  * Revision 1.3  2003/09/10 21:28:05  yazhuk
  124.  * Added GetConsensusRow()
  125.  *
  126.  * Revision 1.2  2003/09/08 16:34:07  yazhuk
  127.  * Renamed IAlnMultiPaneParent function members
  128.  *
  129.  * Revision 1.1  2003/08/28 18:22:45  yazhuk
  130.  * Initial revision
  131.  *
  132.  * ===========================================================================
  133.  */
  134. #endif  // __GUI_WIDGETS_ALNMULTI___ALNMULTI_BASE_PANE__HPP