Merge remote-tracking branch 'origin/master' into windows
[scilab.git] / scilab / modules / scicos / src / cpp / view_scilab / DiagramAdapter.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  *
14  */
15
16 #ifndef DIAGRAMADAPTER_HXX_
17 #define DIAGRAMADAPTER_HXX_
18
19 #include <string>
20 #include <vector>
21
22 #include "internal.hxx"
23 #include "list.hxx"
24
25 #include "adapters_utilities.hxx"
26 #include "BaseAdapter.hxx"
27 #include "model/Diagram.hxx"
28
29 namespace org_scilab_modules_scicos
30 {
31 namespace view_scilab
32 {
33
34 class DiagramAdapter : public BaseAdapter<DiagramAdapter, org_scilab_modules_scicos::model::Diagram>
35 {
36 public:
37     DiagramAdapter(const Controller& c, org_scilab_modules_scicos::model::Diagram* adaptee);
38     DiagramAdapter(const DiagramAdapter& adapter);
39     ~DiagramAdapter();
40
41     static const std::string getSharedTypeStr()
42     {
43         return "diagram";
44     }
45
46     std::string getTypeStr();
47     std::string getShortTypeStr();
48
49     types::List* getListObjects() const;
50     void setListObjects(types::List* v);
51
52     std::vector<link_t> getFrom() const;
53     void setFrom(const std::vector<link_t>& from);
54     std::vector<link_t> getTo() const;
55     void setTo(const std::vector<link_t>& to);
56
57     types::InternalType* getContribContent() const;
58     void setContribContent(types::InternalType* v);
59
60 private:
61     // Infos for the child links
62     std::vector<link_t> from_vec;
63     std::vector<link_t> to_vec;
64
65     // Infos for the child elements
66     types::List* list_objects;
67
68     // User-defined contrib
69     types::InternalType* contrib_content;
70 };
71
72 } /* namespace view_scilab */
73 } /* namespace org_scilab_modules_scicos */
74
75 #endif /* MODELADAPTER_HXX_ */