Bump version numbers to 6.2.0
[scilab.git] / scilab / modules / scicos / src / cpp / view_scilab / GraphicsAdapter.hxx
1 /*
2  *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  *  Copyright (C) 2014-2016 - 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 GRAPHICSADAPTER_HXX_
17 #define GRAPHICSADAPTER_HXX_
18
19 #include <string>
20 #include <vector>
21
22 #include "internal.hxx"
23
24 #include "BaseAdapter.hxx"
25 #include "adapters_utilities.hxx"
26 #include "model/Block.hxx"
27 #include "model/Link.hxx"
28
29 namespace org_scilab_modules_scicos
30 {
31 namespace view_scilab
32 {
33
34 class GraphicsAdapter : public BaseAdapter<GraphicsAdapter, org_scilab_modules_scicos::model::Block>
35 {
36 public:
37     GraphicsAdapter();
38     GraphicsAdapter(const Controller& c, model::Block* adaptee);
39     ~GraphicsAdapter();
40
41     static const std::wstring getSharedTypeStr()
42     {
43         return L"graphics";
44     }
45
46     std::wstring getTypeStr() const override;
47     std::wstring getShortTypeStr() const override;
48
49     types::InternalType* getGrIContent() const;
50     void setGrIContent(types::InternalType* v);
51
52     // move (if possible) the partial information to the model
53     static void relink(Controller& controller, model::Block* adaptee, const std::vector<ScicosID>& children);
54     static void reverse_relink(Controller& controller, model::Link* adaptee, int index, const std::vector<ScicosID>& children);
55     // manage partial information after a model clone
56     static void add_partial_links_information(Controller& controller, ScicosID original, ScicosID cloned);
57     // manage partial information before a model delete
58     static void store_partial_links_information(Controller& controller, model::BaseObject* added, int index, const std::vector<ScicosID>& children);
59     // remove all information related to the block
60     static void remove_partial_links_information(ScicosID uid);
61
62 private:
63     types::InternalType* gr_i_content;
64 };
65
66 } /* namespace view_scilab */
67 } /* namespace org_scilab_modules_scicos */
68
69 #endif /* GRAPHICSADAPTER_HXX_ */