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

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: color_conf.hpp,v $
  4.  * PRODUCTION Revision 1000.1  2004/06/01 19:53:10  gouriano
  5.  * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.7
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. #ifndef GUI_WIDGETS_SEQ_GRAPHIC___SEQGRAPHIC_COLOR_CONF__HPP
  10. #define GUI_WIDGETS_SEQ_GRAPHIC___SEQGRAPHIC_COLOR_CONF__HPP
  11. /*  $Id: color_conf.hpp,v 1000.1 2004/06/01 19:53:10 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:  Robert Smith
  37.  *
  38.  * File Description:
  39.  *   Configuration settings for colors in the Graphic Viewer.
  40.  *
  41.  */
  42. #include <gui/config/feat_color.hpp>
  43. #include <gui/widgets/seq_graphic/seqgraphic_widget.hpp>
  44. BEGIN_NCBI_SCOPE
  45. class NCBI_GUIWIDGETS_SEQGRAPHIC_EXPORT CSeqGraphicColorConfig : public CFeatConfigColor
  46. {
  47. public:
  48.     enum EDisplayElement {
  49.         // Labels
  50.         eLabel_ProtProduct,
  51.         eLabel_Alignment,
  52.         eLabel_PWAlign,
  53.         eLabel_AlignSmear,
  54.         eLabel_Comment,
  55.         eLabel_Feature,
  56.         eLabel_SeqGraph,
  57.         eLabel_Ruler,
  58.         eLabel_MatePair,
  59.         
  60.         // Selected label
  61.         eSelLabel_ProtProduct,
  62.         eSelLabel_Alignment,
  63.         eSelLabel_PWAlign,
  64.         eSelLabel_AlignSmear,
  65.         eSelLabel_Feature,
  66.         eSelLabel_SeqGraph,
  67.         eSelLabel_SeqSegment,
  68.         eSelLabel_MatePair,
  69.         
  70.         // Selection color
  71.         eSelection_ProtProduct,
  72.         eSelection_Alignment,
  73.         eSelection_PWAlign,
  74.         eSelection_AlignSmear,
  75.         eSelection_Feature,
  76.         eSelection_SeqGraph,
  77.         eSelection_Histogram,
  78.         eSelection_SeqSegment,
  79.         eSelection_Ruler,
  80.         eSelection_Panel,
  81.         eSelection_MatePair,
  82.         
  83.         // Sequence letters
  84.         eSeq_SequenceBar, // white
  85.         eSeq_ProtOriginal,
  86.         eSeq_ProtTranslated,
  87.         eSeq_ProtMismatch,
  88.         eSeq_MatePairNo,
  89.         eSeq_MatePairMismatchNo,
  90.         eSeq_MatePairOrientation,
  91.         eSeq_MatePairMismatchOrientation,
  92.         eSeq_MatePairNonUnique,
  93.         eSeq_MatePairMismatchNonUnique,
  94.         eSeq_MatePairDistance,
  95.         eSeq_MatePairMismatchDistance,
  96.         eSeq_PWAlign,
  97.         eSeq_PWAlignMismatch,
  98.         // Foreground
  99.         eFG_Alignment,
  100.         eFG_PWAlign,
  101.         eFG_AlignSmear,
  102.         eFG_ProtProduct,
  103.         eFG_SeqGraph,
  104.         eFG_Comment,
  105.         eFG_SeqSegmentInc,
  106.         eFG_SeqSegmentExc,
  107.         eFG_MatePairNo,
  108.         eFG_MatePairOrientation,
  109.         eFG_MatePairNonUnique,
  110.         eFG_MatePairDistance,
  111.         eFG_MatePairLink,
  112.         // Background Color
  113.         eBG_Alignment,
  114.         eBG_PWAlign,
  115.         eBG_AlignSmear,
  116.         eBG_ProtProduct,
  117.         eBG_SeqGraph,
  118.         eBG_Comment,
  119.         eBG_SeqSegment,
  120.         eBG_MatePair,
  121.         
  122.         // General
  123.         eBackground,
  124.         eRuler_Grid,
  125.         eGridVertical,
  126.         eGridHorizontal
  127.     };
  128.     
  129.     CSeqGraphicColorConfig(objects::CPluginConfigCache* config_cache, const string& desc = "Colors");
  130.     
  131.     virtual bool LoadCurrentSettings(ELoadValueSource src);
  132.     virtual bool SaveCurrentSettings(void);
  133.     
  134.     CGlColor GetElementColor(EDisplayElement e) const;
  135.     void     SetElementColor(EDisplayElement e,  const CGlColor& c);
  136.         
  137. protected:
  138.     
  139.     typedef pair<string, CGlColor> TColorPair;
  140.     typedef map<EDisplayElement, TColorPair> TColorMap;
  141.     TColorMap m_Colors;    
  142. };
  143. class CSeqGraphicColorFactoryDefaults : public CFeatColorFactoryDefaults
  144. {
  145. public:
  146.     virtual string   Get(const string& key) const;
  147. };
  148. END_NCBI_SCOPE
  149. /*
  150.  * ===========================================================================
  151.  * $Log: color_conf.hpp,v $
  152.  * Revision 1000.1  2004/06/01 19:53:10  gouriano
  153.  * PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.7
  154.  *
  155.  * Revision 1.7  2004/05/14 15:57:55  lebedev
  156.  * Color defines for Mate Pairs error code added
  157.  *
  158.  * Revision 1.6  2004/04/21 16:31:52  lebedev
  159.  * Color defines for PairWise alignments added. Use static map to store default colors.
  160.  *
  161.  * Revision 1.5  2004/04/19 15:42:02  lebedev
  162.  * Color defines for Mate Pairs added
  163.  *
  164.  * Revision 1.4  2004/03/30 13:53:48  lebedev
  165.  * Expand EDisplayElement list to include all elements in the graphical widget.
  166.  * Use map as internal storage for display elements colors.
  167.  *
  168.  * Revision 1.3  2004/02/02 18:45:39  rsmith
  169.  * add description to CSettingsSet, constructor and descendants.
  170.  *
  171.  * Revision 1.2  2003/12/29 19:58:47  rsmith
  172.  * Correct name of Factory Defaults class.
  173.  *
  174.  * Revision 1.1  2003/12/29 14:56:27  rsmith
  175.  * initial checkin
  176.  * ===========================================================================
  177.  */
  178. #endif  /* GUI_WIDGETS_SEQ_GRAPHIC___SEQGRAPHIC_COLOR_CONF__HPP */