GPL + CeCILL Header change
[scilab.git] / scilab / modules / scicos / src / cpp / view_scilab / BlockAdapter.hxx
1 /*
2  *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  *  Copyright (C) 2014-2014 - Scilab Enterprises - Clement DAVID
4  *
5  * Copyright (C) 2012 - 2016 - Scilab Enterprises
6  *
7  * This file is hereby licensed under the terms of the GNU GPL v2.0,
8  * pursuant to article 5.3.4 of the CeCILL v.2.1.
9  * This file was originally licensed under the terms of the CeCILL v2.1,
10  * and continues to be available under such terms.
11  * For more information, see the COPYING file which you should have received
12  * along with this program.
13  * === LICENSE_END ===
14  *
15  */
16
17 #ifndef BLOCKADAPTER_HXX_
18 #define BLOCKADAPTER_HXX_
19
20 #include <string>
21 #include <vector>
22
23 #include "internal.hxx"
24 #include "list.hxx"
25
26 #include "BaseAdapter.hxx"
27 #include "adapters_utilities.hxx"
28 #include "model/Block.hxx"
29
30 namespace org_scilab_modules_scicos
31 {
32 namespace view_scilab
33 {
34
35 class BlockAdapter : public BaseAdapter<BlockAdapter, org_scilab_modules_scicos::model::Block>
36 {
37 public:
38     BlockAdapter(const Controller& c, org_scilab_modules_scicos::model::Block* adaptee);
39     BlockAdapter(const BlockAdapter& adapter);
40     ~BlockAdapter();
41
42     static const std::wstring getSharedTypeStr()
43     {
44         return L"Block";
45     }
46
47     std::wstring getTypeStr();
48     std::wstring getShortTypeStr();
49
50     types::InternalType* getDocContent() const;
51     void setDocContent(types::InternalType* v);
52
53     types::List* getListObjects() const;
54     void setListObjects(types::List* blocks);
55
56     std::vector<link_t> getFrom() const;
57     void setFrom(const std::vector<link_t>& from);
58     std::vector<link_t> getTo() const;
59     void setTo(const std::vector<link_t>& to);
60
61     types::InternalType* getContribContent() const;
62     void setContribContent(types::InternalType* contrib);
63
64 private:
65     types::InternalType* doc_content;
66
67     // The following content represents the child diagram (in 'model.rpar')
68
69     // Child links info
70     std::vector<link_t> from_vec;
71     std::vector<link_t> to_vec;
72     // Child elements info
73     types::List* list_objects;
74     // child diagram info
75     types::InternalType* contrib_content;
76 };
77
78 } /* namespace view_scilab */
79 } /* namespace org_scilab_modules_scicos */
80
81 #endif /* BLOCKADAPTER_HXX_ */