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

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: row_display_style.cpp,v $
  4.  * PRODUCTION Revision 1000.1  2004/06/01 21:07:25  gouriano
  5.  * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.5
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. /*  $Id: row_display_style.cpp,v 1000.1 2004/06/01 21:07:25 gouriano Exp $
  10.  * ===========================================================================
  11.  *
  12.  *                            PUBLIC DOMAIN NOTICE
  13.  *               National Center for Biotechnology Information
  14.  *
  15.  *  This software/database is a "United States Government Work" under the
  16.  *  terms of the United States Copyright Act.  It was written as part of
  17.  *  the author's official duties as a United States Government employee and
  18.  *  thus cannot be copyrighted.  This software/database is freely available
  19.  *  to the public for use. The National Library of Medicine and the U.S.
  20.  *  Government have not placed any restriction on its use or reproduction.
  21.  *
  22.  *  Although all reasonable efforts have been taken to ensure the accuracy
  23.  *  and reliability of the software and data, the NLM and the U.S.
  24.  *  Government do not and cannot warrant the performance or results that
  25.  *  may be obtained by using this software or data. The NLM and the U.S.
  26.  *  Government disclaim all warranties, express or implied, including
  27.  *  warranties of performance, merchantability or fitness for any particular
  28.  *  purpose.
  29.  *
  30.  *  Please cite the author in any work or product based on this material.
  31.  *
  32.  * ===========================================================================
  33.  *
  34.  * Authors:  Andrey Yazhuk
  35.  *
  36.  * File Description:
  37.  *
  38.  */
  39. #include <ncbi_pch.hpp>
  40. #include <corelib/ncbistd.hpp>
  41. #include <gui/widgets/aln_multiple/row_display_style.hpp>
  42. BEGIN_NCBI_SCOPE
  43. CWidgetDisplayStyle::CWidgetDisplayStyle()
  44. :   m_TextFont(CGlBitmapFont::eHelvetica12), 
  45.     m_SeqFont(CGlBitmapFont::eCourier14),
  46.     m_TextColor(0.0f, 0.0f, 0.0f), // black
  47.     m_SelTextColor(1.0f, 1.0f, 0.0f), // yellow
  48.     m_SelBackColor(0.75f, 0.75f, 0.75f), // gray
  49.     m_SelBackFocusedColor(0.0f, 0.0f, 0.5f), // dark blue
  50.     m_FrameColor(0.8f, 0.8f, 0.8f) // light gray
  51. {
  52. }
  53. CRowDisplayStyle::CRowDisplayStyle()
  54. :   m_pWidgetStyle(NULL)
  55. {
  56. }
  57. CRowDisplayStyle::~CRowDisplayStyle()
  58. {
  59. }
  60. void    CRowDisplayStyle::SetWidgetStyle(const CWidgetDisplayStyle* style)
  61. {
  62.     m_pWidgetStyle = style;
  63. }
  64. const CGlBitmapFont&  CRowDisplayStyle::GetTextFont(void) const
  65. {
  66.     return m_pWidgetStyle->m_TextFont;
  67. }
  68. const CGlBitmapFont&  CRowDisplayStyle::GetSeqFont(void) const
  69. {
  70.     return m_pWidgetStyle->m_SeqFont;
  71. }
  72. const CGlColor&   CRowDisplayStyle::GetTextColor(void) const
  73. {
  74.     return m_pWidgetStyle->m_TextColor;
  75. }
  76. const CGlColor&   CRowDisplayStyle::GetSelTextColor(void) const
  77. {
  78.     return m_pWidgetStyle->m_SelTextColor;
  79. }
  80. const CGlColor&   CRowDisplayStyle::GetSelBackColor(void) const
  81. {
  82.     return m_pWidgetStyle->m_SelBackColor;
  83. }
  84. const CGlColor&   CRowDisplayStyle::GetSelBackFocusedColor(void) const
  85. {
  86.     return m_pWidgetStyle->m_SelBackFocusedColor;
  87. }
  88. const CGlColor&   CRowDisplayStyle::GetFrameColor(void) const
  89. {
  90.     return m_pWidgetStyle->m_FrameColor;
  91. }
  92. CRowStyleCatalog::CRowStyleCatalog()
  93. :   m_pWidgetStyle(NULL),
  94.     m_pDefStyle(NULL)
  95. {
  96. }
  97. CRowStyleCatalog::~CRowStyleCatalog()
  98. {
  99. }
  100. void    CRowStyleCatalog::SetWidgetStyle(const CWidgetDisplayStyle* style)
  101. {
  102.     m_pWidgetStyle = style;
  103.     if(m_pDefStyle) {
  104.         m_pDefStyle->SetWidgetStyle(m_pWidgetStyle);
  105.     }
  106. }
  107.     
  108. void    CRowStyleCatalog::SetDefaultStyle(CRowDisplayStyle* style)
  109. {
  110.     m_pDefStyle = style;
  111.     if(m_pDefStyle) {
  112.         m_pDefStyle->SetWidgetStyle(m_pWidgetStyle);
  113.     }
  114. }    
  115. const CRowDisplayStyle*   CRowStyleCatalog::GetStyleForRow(int row) const
  116. {
  117.     TRowToStyle::const_iterator it = m_RowToStyle.find(row);
  118.     return (it == m_RowToStyle.end()) ? m_pDefStyle : it->second;
  119. }
  120. const CRowDisplayStyle*   CRowStyleCatalog::GetStyleForRow(int row, int type) const
  121. {
  122.     TTypeToStyle::const_iterator it_t = m_TypeToStyle.find(type);
  123.     if(it_t == m_TypeToStyle.end()) {
  124.         TRowToStyle::const_iterator it = m_RowToStyle.find(row);
  125.         return (it == m_RowToStyle.end()) ? m_pDefStyle : it->second;
  126.     } else  {
  127.         return it_t->second;
  128.     }
  129. }
  130. void    CRowStyleCatalog::SetRowStyle(TNumrow row, CRowDisplayStyle* style)
  131. {
  132.     _ASSERT(style);
  133.     style->SetWidgetStyle(m_pWidgetStyle);
  134.     m_RowToStyle[row] = style;
  135. }
  136. void    CRowStyleCatalog::SetRowTypeStyle(int type, CRowDisplayStyle* style)
  137. {
  138.     _ASSERT(style);
  139.     style->SetWidgetStyle(m_pWidgetStyle);
  140.     m_TypeToStyle[type] = style;
  141. }
  142. void    CRowStyleCatalog::ClearCustomStyles()
  143. {
  144.     m_RowToStyle.clear();
  145.     m_TypeToStyle.clear();
  146. }
  147. END_NCBI_SCOPE
  148. /*
  149.  * ===========================================================================
  150.  * $Log: row_display_style.cpp,v $
  151.  * Revision 1000.1  2004/06/01 21:07:25  gouriano
  152.  * PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.5
  153.  *
  154.  * Revision 1.5  2004/05/21 22:27:52  gorelenk
  155.  * Added PCH ncbi_pch.hpp
  156.  *
  157.  * Revision 1.4  2004/04/02 16:24:29  yazhuk
  158.  * Added Frame color to display styles
  159.  *
  160.  * Revision 1.3  2003/12/22 16:43:15  ucko
  161.  * Don't try to get non-const_ iterators in const methods.
  162.  *
  163.  * Revision 1.2  2003/12/22 16:27:57  yazhuk
  164.  * Implemented binding display styles to row number and ow types
  165.  *
  166.  * Revision 1.1  2003/12/18 21:20:08  yazhuk
  167.  * Initial revision
  168.  *
  169.  * ===========================================================================
  170.  */