load: avoid creation of double axes in figure
[scilab.git] / scilab / modules / gui / sci_gateway / cpp / sci_getlookandfeel.cpp
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2008 - INRIA - Allan CORNET
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 #include "LookAndFeelManager.hxx"
17
18 extern "C"
19 {
20 #include <stdlib.h>
21 #include "gw_gui.h"
22 #include "api_scilab.h"
23 #include "getScilabJavaVM.h"
24 #include "Scierror.h"
25 #include "localization.h"
26 #include "GiwsException.hxx"
27 }
28
29 /*--------------------------------------------------------------------------*/
30 int sci_getlookandfeel(char *fname, void* pvApiCtx)
31 {
32     CheckInputArgument(pvApiCtx, 0, 0);
33     CheckOutputArgument(pvApiCtx, 1, 1);
34
35     org_scilab_modules_gui_utils::LookAndFeelManager * lnf = 0;
36     try
37     {
38         lnf = new org_scilab_modules_gui_utils::LookAndFeelManager(getScilabJavaVM());
39     }
40     catch (const GiwsException::JniException & e)
41     {
42         Scierror(999, _("%s: A Java exception arisen:\n%s"), fname, e.whatStr().c_str());
43         return 1;
44     }
45
46     if (lnf)
47     {
48         static int n1 = 0, m1 = 0;
49         char *look = lnf->getCurrentLookAndFeel();
50
51         if (look)
52         {
53             m1 = (int)strlen(look);
54             n1 = 1;
55
56             if (createSingleString(pvApiCtx, nbInputArgument(pvApiCtx) + 1, look))
57             {
58                 Scierror(999, _("%s: Memory allocation error.\n"), fname);
59                 return 1;
60             }
61
62             if (look)
63             {
64                 delete[]look;
65                 look = NULL;
66             }
67             delete lnf;
68
69             AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
70             ReturnArguments(pvApiCtx);
71         }
72         else
73         {
74             delete lnf;
75             Scierror(999, _("%s: An error occurred: %s.\n"), fname, _("Impossible to get current look and feel"));
76             return 1;
77         }
78     }
79     else
80     {
81         Scierror(999, _("%s: No more memory.\n"), fname);
82         return 1;
83     }
84
85     return 0;
86 }
87 /*--------------------------------------------------------------------------*/