0026377: Passing Handle objects as arguments to functions as non-const reference...
[occt.git] / src / DDF / DDF_AttributeBrowser.cxx
1 // Created by: DAUTRY Philippe
2 // Copyright (c) 1997-1999 Matra Datavision
3 // Copyright (c) 1999-2014 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 //              ------------------------
17
18 // Version:     0.0
19 //Version       Date            Purpose
20 //              0.0     Oct  6 1997     Creation
21
22
23
24 #include <DDF_AttributeBrowser.hxx>
25
26 static DDF_AttributeBrowser* DDF_FirstBrowser = NULL;
27
28 //=======================================================================
29 //function : DDF_AttributeBrowser
30 //purpose  : 
31 //=======================================================================
32
33 DDF_AttributeBrowser::DDF_AttributeBrowser
34 (Standard_Boolean (*test)(const Handle(TDF_Attribute)&),
35  TCollection_AsciiString (*open)(const Handle(TDF_Attribute)&),
36  TCollection_AsciiString (*text)(const Handle(TDF_Attribute)&))
37 : myTest(test),
38   myOpen(open), 
39   myText(text),
40   myNext(DDF_FirstBrowser)
41 {
42   DDF_FirstBrowser = this;
43 }
44
45
46 //=======================================================================
47 //function : Test
48 //purpose  : 
49 //=======================================================================
50
51 Standard_Boolean DDF_AttributeBrowser::Test
52 (const Handle(TDF_Attribute)&anAtt) const
53 {return (*myTest) (anAtt);}
54
55
56 //=======================================================================
57 //function : Open
58 //purpose  : 
59 //=======================================================================
60
61 TCollection_AsciiString DDF_AttributeBrowser::Open
62 (const Handle(TDF_Attribute)& anAtt) const
63 { return (*myOpen) (anAtt);}
64
65
66 //=======================================================================
67 //function : Text
68 //purpose  : 
69 //=======================================================================
70
71 TCollection_AsciiString DDF_AttributeBrowser::Text
72 (const Handle(TDF_Attribute)& anAtt) const
73 {return (*myText) (anAtt);}
74
75
76 //=======================================================================
77 //function : FindBrowser
78 //purpose  : 
79 //=======================================================================
80
81 DDF_AttributeBrowser* DDF_AttributeBrowser::FindBrowser
82 (const Handle(TDF_Attribute)&anAtt)
83 {
84   DDF_AttributeBrowser* browser = DDF_FirstBrowser;
85   while (browser) {
86     if (browser->Test(anAtt)) break;
87     browser = browser->Next();
88   }
89   return browser;
90 }