0029018: Documentation - Provide user guide for Qt browser
[occt.git] / tools / DFBrowserPaneXDE / DFBrowserPaneXDE_XCAFDocColor.cxx
1 // Created on: 2017-06-16
2 // Created by: Natalia ERMOLAEVA
3 // Copyright (c) 2017 OPEN CASCADE SAS
4 //
5 // This file is part of Open CASCADE Technology software library.
6 //
7 // This library is free software; you can redistribute it and/or modify it under
8 // the terms of the GNU Lesser General Public License version 2.1 as published
9 // by the Free Software Foundation, with special exception defined in the file
10 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
11 // distribution for complete text of the license and disclaimer of any warranty.
12 //
13 // Alternatively, this file may be used under the terms of Open CASCADE
14 // commercial license or contractual agreement. 
15
16 #include <inspector/DFBrowserPaneXDE_XCAFDocColor.hxx>
17 #include <inspector/DFBrowserPane_AttributePaneModel.hxx>
18
19 #include <XCAFDoc_Color.hxx>
20
21 #include <Quantity_Color.hxx>
22
23 #include <QColor>
24 // =======================================================================
25 // function : Constructor
26 // purpose :
27 // =======================================================================
28 DFBrowserPaneXDE_XCAFDocColor::DFBrowserPaneXDE_XCAFDocColor()
29 : DFBrowserPane_AttributePane()
30 {
31 }
32
33 // =======================================================================
34 // function : GetValues
35 // purpose :
36 // =======================================================================
37 void DFBrowserPaneXDE_XCAFDocColor::GetValues (const Handle(TDF_Attribute)& theAttribute, QList<QVariant>& theValues)
38 {
39   Handle(XCAFDoc_Color) anAttr = Handle(XCAFDoc_Color)::DownCast (theAttribute);
40   const Quantity_Color& aColor = anAttr->GetColor();
41
42   theValues << "GetColor: Red" << aColor.Red();
43   theValues << "GetColor: Green" << aColor.Green();
44   theValues << "GetColor: Blue" << aColor.Blue();
45
46   theValues << "GetColor: Name" << aColor.Name();
47 }
48
49 // =======================================================================
50 // function : GetShortAttributeInfo
51 // purpose :
52 // =======================================================================
53 void DFBrowserPaneXDE_XCAFDocColor::GetShortAttributeInfo (const Handle(TDF_Attribute)& theAttribute,
54                                                            QList<QVariant>& theValues)
55 {
56   Handle(XCAFDoc_Color) anAttr = Handle(XCAFDoc_Color)::DownCast (theAttribute);
57   const Quantity_Color& aColor = anAttr->GetColor();
58   theValues.append (QString ("(%1, %2, %3)").arg (aColor.Red()).arg (aColor.Green()).arg (aColor.Blue()));
59 }
60
61 // =======================================================================
62 // function : GetAttributeInfo
63 // purpose :
64 // =======================================================================
65 QVariant DFBrowserPaneXDE_XCAFDocColor::GetAttributeInfo (const Handle(TDF_Attribute)& theAttribute, int theRole, int theColumnId)
66 {
67   if (theColumnId != 0)
68     return DFBrowserPane_AttributePane::GetAttributeInfo (theAttribute, theRole, theColumnId);
69
70   switch (theRole)
71   {
72     case Qt::BackgroundRole:
73     {
74       const Quantity_Color& aColor = Handle(XCAFDoc_Color)::DownCast (theAttribute)->GetColor();
75       return QColor ((int)(aColor.Red()*255.), (int)(aColor.Green()*255.), (int)(aColor.Blue()*255.));
76     }
77     default:
78     break;
79   }
80   return DFBrowserPane_AttributePane::GetAttributeInfo (theAttribute, theRole, theColumnId);
81 }