Salome HOME
cf63ff0d97d16341fb1ddcce1b38770d2505bf51
[modules/kernel.git] / src / SALOMEDS / SALOMEDS_AttributeTextColor_i.cxx
1 //  SALOME SALOMEDS : data structure of SALOME and sources of Salome data server 
2 //
3 //  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 //  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
5 // 
6 //  This library is free software; you can redistribute it and/or 
7 //  modify it under the terms of the GNU Lesser General Public 
8 //  License as published by the Free Software Foundation; either 
9 //  version 2.1 of the License. 
10 // 
11 //  This library is distributed in the hope that it will be useful, 
12 //  but WITHOUT ANY WARRANTY; without even the implied warranty of 
13 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
14 //  Lesser General Public License for more details. 
15 // 
16 //  You should have received a copy of the GNU Lesser General Public 
17 //  License along with this library; if not, write to the Free Software 
18 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
19 // 
20 //  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
21 //
22 //
23 //
24 //  File   : SALOMEDS_AttributeTextColor_i.cxx
25 //  Author : Yves FRICAUD
26 //  Module : SALOME
27 //  $Header$
28
29 using namespace std;
30 #include "SALOMEDS_AttributeTextColor_i.hxx"
31 #include "SALOMEDS_SObject_i.hxx"
32 #include <TColStd_HArray1OfReal.hxx>
33
34 SALOMEDS::Color SALOMEDS_AttributeTextColor_i::TextColor() {
35   SALOMEDS::Color TextColor;
36   Handle(TColStd_HArray1OfReal) anArray = Handle(SALOMEDS_TextColorAttribute)::DownCast(_myAttr)->Array();
37   if (anArray.IsNull() || anArray->Length()!=3) { 
38     TextColor.R = 0;
39     TextColor.G = 0;
40     TextColor.B = 0;
41   }
42   else {
43     TextColor.R = anArray->Value(1);
44     TextColor.G = anArray->Value(2);
45     TextColor.B = anArray->Value(3);
46   }
47   return TextColor;
48 }
49
50 void SALOMEDS_AttributeTextColor_i::SetTextColor(const SALOMEDS::Color& value) {
51   CheckLocked();
52   Handle(TColStd_HArray1OfReal) anArray = new TColStd_HArray1OfReal(1,3);
53   anArray->SetValue(1,  value.R);
54   anArray->SetValue(2, value.G);
55   anArray->SetValue(3, value.B);
56   Handle(SALOMEDS_TextColorAttribute)::DownCast(_myAttr)->ChangeArray(anArray);
57 }
58
59 char* SALOMEDS_AttributeTextColor_i::Store() {
60   SALOMEDS::Color aColor = TextColor();
61   char *Val = new char[75];
62   sprintf(Val, "%f %f %f", (float)aColor.R, (float)aColor.G, (float)aColor.B);
63   return Val;
64 }
65
66 void SALOMEDS_AttributeTextColor_i::Restore(const char* value) {
67   SALOMEDS::Color aColor;
68   float r, g, b;
69   sscanf(value, "%f %f %f", &r, &g, &b);
70   aColor.R = r;
71   aColor.G = g;
72   aColor.B = b;
73   SetTextColor(aColor);
74 }