add property layout_options in figure and uicontrol handles
[scilab.git] / scilab / modules / graphics / macros / createConstraints.sci
1 //
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2014 - Scilab Enterprises - Antoine ELIAS
4 //
5 // This file must be used under the terms of the CeCILL.
6 // This source file is licensed as described in the file COPYING, which
7 // you should have received as part of this distribution.  The terms
8 // are also available at
9 // http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
10 //
11 //
12
13 function ret = createConstraints(constType, varargin)
14     [lhs,rhs]=argn(0)
15
16     if rhs < 1 then
17         error(msprintf(gettext("%s: Wrong number of input argument(s): At least %d expected."), "createConstraints", 1));
18     end
19
20     ret = [];
21     if constType == "nolayout" | constType == "none" then
22         ret = tlist(["NoLayoutConstraint"]);
23     elseif constType == "grid" then
24         ret = tlist(["GridConstraints"]);
25     elseif constType == "border" then
26         arg1 = "center"
27         if size(varargin) <> 1 then
28             error(msprintf(gettext("%s: Wrong number of input argument(s): %d expected."), "createConstraints", 2));
29         end
30
31         arg1 = varargin(1);
32         if typeof(arg1) <> "string" | size(arg1, "*") <> 1 then
33             error(999, msprintf(_("%s: Wrong type for input argument #%d: A string expected.\n"), "createConstraints", 2));
34         end
35
36         ret = tlist(["BorderConstraint","position"], arg1);
37     elseif constType == "gridbag" then
38         arg1 = [0 0 0 0];
39         arg2 = [0 0];
40         arg3 = "none";
41         arg4 = "center";
42         arg5 = [0 0];
43
44         if size(varargin) <> [1:5] then
45             error(msprintf(gettext("%s: Wrong number of input argument(s): %d to %d expected."), "createConstraints", 1, 6));
46         end
47
48         arg1 = varargin(1);
49         if typeof(arg1) <> "constant" | size(arg1, "*") <> 4 then
50             error(999, msprintf(_("%s: Wrong type for input argument #%d: A real matrix expected.\n"), "createConstraints", 2));
51         end
52
53         if size(varargin) > 1 then
54             arg2 = varargin(2);
55             if typeof(arg2) <> "constant" | size(arg2, "*") <> 2 then
56                 error(999, msprintf(_("%s: Wrong type for input argument #%d: A real matrix expected.\n"), "createConstraints", 3));
57             end
58         end
59
60         if size(varargin) > 2 then
61             arg3 = varargin(3);
62             if typeof(arg3) <> "string" | size(arg3, "*") <> 1 then
63                 error(999, msprintf(_("%s: Wrong type for input argument #%d: A string expected.\n"), "createConstraints", 4));
64             end
65         end
66
67         if size(varargin) > 3 then
68             arg4 = varargin(4);
69             if typeof(arg4) <> "string" | size(arg4, "*") <> 1 then
70                 error(999, msprintf(_("%s: Wrong type for input argument #%d: A string expected.\n"), "createConstraints", 5));
71             end
72         end
73
74         if size(varargin) > 4 then
75             arg5 = varargin(5);
76             if typeof(arg5) <> "constant" | size(arg5, "*") <> 2 then
77                 error(999, msprintf(_("%s: Wrong type for input argument #%d: A real matrix expected.\n"), "createConstraints", 6));
78             end
79         end
80
81         ret = tlist(["GridBagConstraints","grid","weight","fill","anchor","padding"], arg1, arg2, arg3, arg4, arg5);
82     else
83         error(999, msprintf(_("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"), "createConstraints", 1, "none/nolayout, border, grid, gridbag"));
84     end
85 endfunction