0031939: Coding - correction of spelling errors in comments [part 2]
[occt.git] / tools / TInspector / TInspector_Communicator.hxx
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 #ifndef TInspector_Communicator_H
17 #define TInspector_Communicator_H
18
19 #include <inspector/TInspector_Window.hxx>
20 #include <inspector/TInspectorAPI_PluginParameters.hxx>
21
22 #include <NCollection_List.hxx>
23 #include <Standard.hxx>
24 #include <Standard_Transient.hxx>
25 #include <TCollection_AsciiString.hxx>
26
27 class QPushButton;
28
29 //! \class TInspector_Communicator.
30 //! \brief This is a connector from TInspector window to:
31 //! - register tool plugin
32 //! - give parameters into plugin
33 class TInspector_Communicator
34 {
35 public:
36
37   //! Constructor
38   Standard_EXPORT TInspector_Communicator();
39
40   //! Destructor
41   virtual ~TInspector_Communicator() {}
42
43   //! Returns directory of Qt plugins. Firstly it founds it in QTDIR, else if not defined in PATH
44   Standard_EXPORT static Standard_Boolean PluginsDir (TCollection_AsciiString& thePlugindsDirName);
45
46   //! Registers plugin into TInspector window
47   //! \param thePluginName a name of the plugin
48   void RegisterPlugin (const TCollection_AsciiString& thePluginName) { myWindow->RegisterPlugin (thePluginName); }
49
50   //! Returns list of registered plugins
51   //! \return container of plugin names
52   NCollection_List<TCollection_AsciiString> RegisteredPlugins() const { return myWindow->RegisteredPlugins(); }
53
54   //! Stores parameters for the plugin
55   //! \param theParameters container of parameters(e.g. AIS_InteractiveContext, TDocStd_Application)
56   //! \param theAppend boolean state whether the parameters should be added to existing
57   void Init (const NCollection_List<Handle(Standard_Transient)>& theParameters,
58              const Standard_Boolean theAppend = Standard_False)
59     { myWindow->Init ("", theParameters, theAppend); }
60
61   //! Stores parameters for the plugin
62   //! \param thePluginName a name of the plugin
63   //! \param theParameters container of parameters(e.g. AIS_InteractiveContext, TDocStd_Application)
64   //! \param theAppend boolean state whether the parameters should be added to existing
65   void Init (const TCollection_AsciiString& thePluginName,
66              const NCollection_List<Handle(Standard_Transient)>& theParameters,
67              const Standard_Boolean theAppend = Standard_False)
68   { myWindow->Init (thePluginName, theParameters, theAppend); }
69
70   //! Updates content for the TInspector window
71   void UpdateContent() { myWindow->UpdateContent(); }
72
73   //! Sets open button for the TInspector window
74   void SetOpenButton (QPushButton* theButton) { myWindow->SetOpenButton (theButton); }
75
76   //! Opens file in TInspector window
77   void OpenFile (const TCollection_AsciiString& thePluginName, const TCollection_AsciiString& theFileName)
78   { myWindow->OpenFile (thePluginName, theFileName); }
79
80   //! Activates plugin
81   //! \param thePluginName a name of the plugin
82   void Activate (const TCollection_AsciiString& thePluginName) { myWindow->ActivateTool (thePluginName); }
83
84   //! Sets item selected in the active plugin
85   //! \param theItemName a container of name of items in plugin that should become selected
86   void SetSelected (const NCollection_List<TCollection_AsciiString>& theItemNames) { myWindow->SetSelected (theItemNames); }
87
88   //! Sets objects to be selected in the plugin
89   //! \param theObjects an objects
90   void SetSelected (const NCollection_List<Handle(Standard_Transient)>& theObjects) { myWindow->SetSelected (theObjects); }
91
92   //! Sets path to a directory for temporary plugin files
93   //! \param thePath a path
94   void SetTemporaryDirectory (const TCollection_AsciiString& thePath) { myWindow->SetTemporaryDirectory (thePath); }
95
96   //! Returns path to a directory for temporary plugin files
97   //! \return path
98   TCollection_AsciiString GetTemporaryDirectory() const { return myWindow->GetTemporaryDirectory(); }
99
100   //! Changes window visibility
101   //! \param theVisible boolean state
102   Standard_EXPORT virtual void SetVisible (const bool theVisible);
103
104   //! Changes window position
105   //! \param theX X pixel position of top left corner of the window
106   //! \param theY Y pixel position
107   Standard_EXPORT virtual void Move (const int theXPosition, const int theYPosition);
108
109   //! Puts in the stream information about communicator
110   //! \param theStream stream for output
111   void Dump (Standard_OStream& theStream) const { return myWindow->Dump (theStream); }
112
113   //! Returns plugins parameters container
114   Handle(TInspectorAPI_PluginParameters) const GetPluginParameters() { return myWindow->GetPluginParameters(); }
115
116 private:
117   TInspector_Window* myWindow; //!< current window
118 };
119
120 #endif