color_conf.cpp
上传用户:yhdzpy8989
上传日期:2007-06-13
资源大小:13604k
文件大小:12k
- /*
- * ===========================================================================
- * PRODUCTION $Log: color_conf.cpp,v $
- * PRODUCTION Revision 1000.1 2004/06/01 21:12:24 gouriano
- * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.11
- * PRODUCTION
- * ===========================================================================
- */
- /* $Id: color_conf.cpp,v 1000.1 2004/06/01 21:12:24 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: Mike DiCuccio
- *
- * File Description:
- *
- */
- #include <ncbi_pch.hpp>
- #include <gui/widgets/seq_graphic/color_conf.hpp>
- #include <util/static_map.hpp>
- BEGIN_NCBI_SCOPE
-
- typedef pair<const char*, const char*> TColorPair;
- static TColorPair sc_Colors[] = {
- TColorPair("BG|AlignSmear", "white"),
- TColorPair("BG|Alignment", "white"),
- TColorPair("BG|Comment", "white"),
- TColorPair("BG|Feature", "white"),
- TColorPair("BG|Histogram", "white"),
- TColorPair("BG|MatePair", "white"),
- TColorPair("BG|PWAlign", "white"),
- TColorPair("BG|ProtProduct", "white"),
- TColorPair("BG|Ruler", "white"),
- TColorPair("BG|SeqGraph", "lightsteelblue"),
- TColorPair("BG|SeqSegment", "white"),
- TColorPair("Background", "white"),
- TColorPair("FG|AlignSmear", "red"),
- TColorPair("FG|Alignment", "red"),
- TColorPair("FG|Comment", "red"),
- TColorPair("FG|MatePairDistance", "light salmon"),
- TColorPair("FG|MatePairLink", "indian red"),
- TColorPair("FG|MatePairNo", "light green"),
- TColorPair("FG|MatePairNonUnique", "red"),
- TColorPair("FG|MatePairOrientation", "indian red"),
- TColorPair("FG|PWAlign", "light blue"),
- TColorPair("FG|ProtProduct", "black"),
- TColorPair("FG|SeqGraph", "blue"),
- TColorPair("FG|SeqSegmentExc", "black"),
- TColorPair("FG|SeqSegmentInc", "red"),
- TColorPair("GridHorizontal", "grey95"),
- TColorPair("GridVertical", "grey95"),
- TColorPair("Label|AlignSmear", "blue"),
- TColorPair("Label|Alignment", "blue"),
- TColorPair("Label|Comment", "blue"),
- TColorPair("Label|Feature", "blue"),
- TColorPair("Label|Histogram", "blue"),
- TColorPair("Label|MatePair", "blue"),
- TColorPair("Label|PWAlign", "blue"),
- TColorPair("Label|ProtProduct", "blue"),
- TColorPair("Label|Ruler", "blue"),
- TColorPair("Label|SeqGraph", "blue"),
- TColorPair("Ruler_Grid", "black"),
- TColorPair("SelLabel|AlignSmear", "red"),
- TColorPair("SelLabel|Alignment", "red"),
- TColorPair("SelLabel|Comment", "red"),
- TColorPair("SelLabel|Feature", "red"),
- TColorPair("SelLabel|Histogram", "red"),
- TColorPair("SelLabel|MatePair", "red"),
- TColorPair("SelLabel|PWAlign", "red"),
- TColorPair("SelLabel|ProtProduct", "red"),
- TColorPair("SelLabel|Ruler", "red"),
- TColorPair("SelLabel|SeqGraph", "red"),
- TColorPair("SelLabel|SeqSegment", "red"),
- TColorPair("Selection|AlignSmear", "black"),
- TColorPair("Selection|Alignment", "black"),
- TColorPair("Selection|Comment", "black"),
- TColorPair("Selection|Feature", "black"),
- TColorPair("Selection|Histogram", "black"),
- TColorPair("Selection|MatePair", "black"),
- TColorPair("Selection|PWAlign", "black"),
- TColorPair("Selection|Panel", "gray" ),
- TColorPair("Selection|ProtProduct", "black"),
- TColorPair("Selection|Ruler", "green"),
- TColorPair("Selection|SeqGraph", "black"),
- TColorPair("Selection|SeqSegment", "black"),
- TColorPair("Seq|AlignSmear", "black"),
- TColorPair("Seq|Alignment", "black"),
- TColorPair("Seq|MatePairDistance", "black"),
- TColorPair("Seq|MatePairMismatchDistance", "yellow"),
- TColorPair("Seq|MatePairMismatchNo", "red"),
- TColorPair("Seq|MatePairMismatchNonUnique", "yellow"),
- TColorPair("Seq|MatePairMismatchOrientation", "yellow"),
- TColorPair("Seq|MatePairNo", "dark green"),
- TColorPair("Seq|MatePairNonUnique", "black"),
- TColorPair("Seq|MatePairOrientation", "black"),
- TColorPair("Seq|PWAlign", "dark blue"),
- TColorPair("Seq|PWAlignMismatch", "red"),
- TColorPair("Seq|ProtMismatch", "yellow"),
- TColorPair("Seq|ProtOriginal", "black"),
- TColorPair("Seq|ProtTranslated", "white"),
- TColorPair("Seq|SequenceBar", "white")
- };
- typedef CStaticArrayMap<const char*, const char*, PCase> TColorMap;
- static TColorMap sc_ColorMap(sc_Colors, sizeof(sc_Colors));
- string CSeqGraphicColorFactoryDefaults::Get(const string& key) const
- {
- TColorMap::const_iterator iter = sc_ColorMap.find(key.c_str());
- if (iter != sc_ColorMap.end()) {
- return CRgbaColor::ColorStrFromName(iter->second);
- }
- return CFeatColorFactoryDefaults::Get(key);
- }
- CSeqGraphicColorConfig::CSeqGraphicColorConfig(objects::CPluginConfigCache* config_cache, const string& desc)
- : CFeatConfigColor(config_cache, "Graphic View Colors", new CSeqGraphicColorFactoryDefaults(), desc)
- {
- // labels
- m_Colors[eLabel_ProtProduct].first = "Label|ProtProduct";
- m_Colors[eLabel_Alignment].first = "Label|Alignment";
- m_Colors[eLabel_PWAlign].first = "Label|PWAlign";
- m_Colors[eLabel_AlignSmear].first = "Label|AlignSmear";
- m_Colors[eLabel_Comment].first = "Label|Comment";
- m_Colors[eLabel_Feature].first = "Label|Feature";
- m_Colors[eLabel_SeqGraph].first = "Label|SeqGraph";
- m_Colors[eLabel_Ruler].first = "Label|Ruler";
- m_Colors[eLabel_MatePair].first = "Label|MatePair";
- // Selected label
- m_Colors[eSelLabel_ProtProduct].first = "SelLabel|ProtProduct";
- m_Colors[eSelLabel_Alignment].first = "SelLabel|Alignment";
- m_Colors[eSelLabel_PWAlign].first = "SelLabel|PWAlign";
- m_Colors[eSelLabel_AlignSmear].first = "SelLabel|AlignSmear";
- m_Colors[eSelLabel_Feature].first = "SelLabel|Feature";
- m_Colors[eSelLabel_SeqGraph].first = "SelLabel|SeqGraph";
- m_Colors[eSelLabel_SeqSegment].first = "SelLabel|SeqSegment";
- m_Colors[eSelLabel_MatePair].first = "SelLabel|MatePair";
-
- // Selection color
- m_Colors[eSelection_ProtProduct].first = "Selection|ProtProduct";
- m_Colors[eSelection_Alignment].first = "Selection|Alignment";
- m_Colors[eSelection_PWAlign].first = "Selection|PWAlign";
- m_Colors[eSelection_AlignSmear].first = "Selection|AlignSmear";
- m_Colors[eSelection_Feature].first = "Selection|Feature";
- m_Colors[eSelection_SeqGraph].first = "Selection|SeqGraph";
- m_Colors[eSelection_Histogram].first = "Selection|Histogram";
- m_Colors[eSelection_SeqSegment].first = "Selection|SeqSegment";
- m_Colors[eSelection_Ruler].first = "Selection|Ruler";
- m_Colors[eSelection_Panel].first = "Selection|Panel";
- m_Colors[eSelection_MatePair].first = "Selection|MatePair";
-
- // Sequence letters
- m_Colors[eSeq_SequenceBar].first = "Seq|SequenceBar";
- m_Colors[eSeq_ProtOriginal].first = "Seq|ProtOriginal";
- m_Colors[eSeq_ProtTranslated].first = "Seq|ProtTranslated";
- m_Colors[eSeq_ProtMismatch].first = "Seq|ProtMismatch";
- m_Colors[eSeq_MatePairNo].first = "Seq|MatePairNo";
- m_Colors[eSeq_MatePairMismatchNo].first
- = "Seq|MatePairMismatchNo";
- m_Colors[eSeq_MatePairOrientation].first
- = "Seq|MatePairOrientation";
- m_Colors[eSeq_MatePairMismatchOrientation].first
- = "Seq|MatePairMismatchOrientation";
- m_Colors[eSeq_MatePairNonUnique].first
- = "Seq|MatePairNonUnique";
- m_Colors[eSeq_MatePairMismatchNonUnique].first
- = "Seq|MatePairMismatchNonUnique";
- m_Colors[eSeq_MatePairDistance].first
- = "Seq|MatePairDistance";
- m_Colors[eSeq_MatePairMismatchDistance].first
- = "Seq|MatePairMismatchDistance";
- m_Colors[eSeq_PWAlign].first = "Seq|PWAlign";
- m_Colors[eSeq_PWAlignMismatch].first = "Seq|PWAlignMismatch";
- // Foreground
- m_Colors[eFG_Alignment].first = "FG|Alignment";
- m_Colors[eFG_PWAlign].first = "FG|PWAlign";
- m_Colors[eFG_AlignSmear].first = "FG|AlignSmear";
- m_Colors[eFG_ProtProduct].first = "FG|ProtProduct";
- m_Colors[eFG_SeqGraph].first = "FG|SeqGraph";
- m_Colors[eFG_Comment].first = "FG|Comment";
- m_Colors[eFG_SeqSegmentInc].first = "FG|SeqSegmentInc";
- m_Colors[eFG_SeqSegmentExc].first = "FG|SeqSegmentExc";
- m_Colors[eFG_MatePairNo].first = "FG|MatePairNo";
- m_Colors[eFG_MatePairOrientation].first = "FG|MatePairOrientation";
- m_Colors[eFG_MatePairNonUnique].first = "FG|MatePairNonUnique";
- m_Colors[eFG_MatePairDistance].first = "FG|MatePairDistance";
- m_Colors[eFG_MatePairLink].first = "FG|MatePairLink";
-
- // Background Color
- m_Colors[eBG_Alignment].first = "BG|Alignment";
- m_Colors[eBG_PWAlign].first = "BG|PWAlign";
- m_Colors[eBG_AlignSmear].first = "BG|AlignSmear";
- m_Colors[eBG_ProtProduct].first = "BG|ProtProduct";
- m_Colors[eBG_SeqGraph].first = "BG|SeqGraph";
- m_Colors[eBG_Comment].first = "BG|Comment";
- m_Colors[eBG_SeqSegment].first = "BG|SeqSegment";
- m_Colors[eBG_MatePair].first = "BG|MatePair";
-
- // General
- m_Colors[eBackground].first = "Background";
- m_Colors[eRuler_Grid].first = "Ruler_Grid";
- m_Colors[eGridVertical].first = "GridVertical";
- m_Colors[eGridHorizontal].first = "GridHorizontal";
- LoadCurrentSettings(eLoad_Current);
- }
- bool CSeqGraphicColorConfig::LoadCurrentSettings(ELoadValueSource src)
- {
- CFeatConfigColor::LoadCurrentSettings(src);
- NON_CONST_ITERATE(TColorMap, iter, m_Colors) {
- TColorPair& cp = (*iter).second;
- cp.second = CGlColor( Get( cp.first, src) );
- }
-
- return true;
- }
- bool CSeqGraphicColorConfig::SaveCurrentSettings(void)
- {
- CFeatConfigColor::SaveCurrentSettings();
-
-
- NON_CONST_ITERATE(TColorMap, iter, m_Colors) {
- TColorPair& cp = (*iter).second;
- Set(cp.first, cp.second.ToString(false));
- }
-
- return true;
- }
- CGlColor CSeqGraphicColorConfig::GetElementColor(EDisplayElement e) const
- {
- if (m_Colors.find(e) != m_Colors.end()) {
- TColorPair p = m_Colors.find(e)->second;
- CGlColor color = p.second;
-
- glColor3f(color.GetRed(), color.GetGreen(), color.GetBlue());
- return color;
- }
- ERR_POST("Bad enumerated argument to CSeqGraphicColorConfig::GetElementColor : " << e);
- return CGlColor();
- }
- void CSeqGraphicColorConfig::SetElementColor(EDisplayElement e, const CGlColor& c)
- {
- if (m_Colors.find(e) != m_Colors.end()) {
- m_Colors[e].second = c;
- return;
- }
- ERR_POST("Bad enumerated argument to CSeqGraphicColorConfig::SetElementColor : " << e);
- }
- END_NCBI_SCOPE
- /*
- * ===========================================================================
- * $Log $
- *
- * Revision 1.1 2003/10/31 14:07:49 dicuccio
- * Initial revision
- *
- * ===========================================================================
- */