1 // File : SALOMEDSImpl_AttributeTextHighlightColor.cxx
2 // Author : Sergey RUIN
6 #include "SALOMEDSImpl_AttributeTextHighlightColor.hxx"
7 #include <Standard_GUID.hxx>
11 IMPLEMENT_STANDARD_HANDLE( SALOMEDSImpl_AttributeTextHighlightColor, SALOMEDSImpl_GenericAttribute )
12 IMPLEMENT_STANDARD_RTTIEXT( SALOMEDSImpl_AttributeTextHighlightColor, SALOMEDSImpl_GenericAttribute )
14 //=======================================================================
17 //=======================================================================
19 const Standard_GUID& SALOMEDSImpl_AttributeTextHighlightColor::GetID ()
21 static Standard_GUID SALOMEDSImpl_AttributeTextHighlightColorID ("12837190-8F52-11d6-A8A3-0001021E8C7F");
22 return SALOMEDSImpl_AttributeTextHighlightColorID;
27 //=======================================================================
28 //function : constructor
30 //=======================================================================
31 SALOMEDSImpl_AttributeTextHighlightColor::SALOMEDSImpl_AttributeTextHighlightColor()
32 :SALOMEDSImpl_GenericAttribute("AttributeTextHighlightColor")
34 myValue = new TColStd_HArray1OfReal(1, 3, RealFirst());
37 //=======================================================================
40 //=======================================================================
42 const Standard_GUID& SALOMEDSImpl_AttributeTextHighlightColor::ID () const { return GetID(); }
45 //=======================================================================
46 //function : SetTextHighlightColor
48 //=======================================================================
49 void SALOMEDSImpl_AttributeTextHighlightColor::SetTextHighlightColor(const Standard_Real R,
50 const Standard_Real G,
51 const Standard_Real B)
54 if(myValue.IsNull()) return;
57 myValue->SetValue(1, R);
58 myValue->SetValue(2, G);
59 myValue->SetValue(3, B);
61 SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved
64 //=======================================================================
65 //function : TextHighlightColor
67 //=======================================================================
68 Handle(TColStd_HArray1OfReal) SALOMEDSImpl_AttributeTextHighlightColor::TextHighlightColor()
73 //=======================================================================
74 //function : ChangeArray
76 //=======================================================================
77 void SALOMEDSImpl_AttributeTextHighlightColor::ChangeArray(const Handle(TColStd_HArray1OfReal)& newArray)
81 for(int i = 1; i <= 3; i++)
82 myValue->SetValue(i, newArray->Value(i));
84 SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved
87 //=======================================================================
90 //=======================================================================
92 Handle(TDF_Attribute) SALOMEDSImpl_AttributeTextHighlightColor::NewEmpty () const
94 return new SALOMEDSImpl_AttributeTextHighlightColor();
97 //=======================================================================
100 //=======================================================================
102 void SALOMEDSImpl_AttributeTextHighlightColor::Restore(const Handle(TDF_Attribute)& with)
104 Handle(TColStd_HArray1OfReal) s = Handle(SALOMEDSImpl_AttributeTextHighlightColor)::DownCast (with)->TextHighlightColor ();
109 //=======================================================================
112 //=======================================================================
114 void SALOMEDSImpl_AttributeTextHighlightColor::Paste (const Handle(TDF_Attribute)& into,
115 const Handle(TDF_RelocationTable)& ) const
117 Handle(SALOMEDSImpl_AttributeTextHighlightColor)::DownCast (into)->ChangeArray (myValue);
120 TCollection_AsciiString SALOMEDSImpl_AttributeTextHighlightColor::Save()
122 char *Val = new char[75];
123 sprintf(Val, "%f %f %f", (float)myValue->Value(1),
124 (float)myValue->Value(2),
125 (float)myValue->Value(3));
126 TCollection_AsciiString ret(Val);
131 void SALOMEDSImpl_AttributeTextHighlightColor::Load(const TCollection_AsciiString& value)
134 sscanf(value.ToCString(), "%f %f %f", &r, &g, &b);
135 myValue->SetValue(1, r);
136 myValue->SetValue(2, g);
137 myValue->SetValue(3, b);