Enable export via driver/xinit/xend
[scilab.git] / scilab / modules / graphic_objects / includes / ScilabView.hxx
1 /*
2  *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  *  Copyright (C) 2011-2011 - DIGITEO - Bruno JOFRET
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-en.txt
10  *
11  */
12
13 #ifndef __SCILAB_VIEW_HXX__
14 #define __SCILAB_VIEW_HXX__
15
16 #include <map>
17 #include <string.h>
18
19 #include "dynlib_graphic_objects.h"
20
21 extern "C"
22 {
23     void ScilabNativeView__createObject(char* pstId);
24     void ScilabNativeView__deleteObject(char* pstId);
25     void ScilabNativeView__updateObject(char* pstId, char* pstProperty);
26 }
27
28 class GRAPHIC_OBJECTS_IMPEXP ScilabView
29 {
30 private :
31     ScilabView() {}
32     ~ScilabView() {}
33     struct cmp_str
34     {
35         bool operator()(char const *a, char const *b)
36         {
37             return strcmp(a, b) < 0;
38         }
39     };
40
41     // Define type for easy manipulation.
42     typedef std::map<char*, long, cmp_str>  __handleList;
43     typedef __handleList::iterator          __handleList_iterator;
44     typedef std::map<char*, int, cmp_str>    __figureList;
45     typedef __figureList::iterator          __figureList_iterator;
46
47     static __figureList                     m_figureList;
48     static __handleList                     m_handleList;
49     static long                             m_topHandleValue;
50     static char*                            m_currentFigure;
51     static char*                            m_currentObject;
52     static char*                            m_currentSubWin;
53     static char*                            m_figureModel;
54     static char*                            m_axesModel;
55
56 public :
57     static void   createObject(char* pstId);
58     static void   deleteObject(char* pstId);
59     static void   updateObject(char* pstId, char* pstProperty);
60
61     static int    getNbFigure(void);
62     static void   getFiguresId(int ids[]);
63     static void   registerToController(void);
64     static void   unregisterToController(void);
65     static bool   existsFigureId(int id);
66     static char*  getFigureFromIndex(int figureNumber);
67     static bool   isEmptyFigureList(void);
68
69     static char*  getCurrentFigure(void);
70     static void   setCurrentFigure(char *UID);
71
72     static char*  getCurrentObject(void);
73     static void   setCurrentObject(char *UID);
74
75     static char*  getCurrentSubWin(void);
76     static void   setCurrentSubWin(char *UID);
77
78     static long   getObjectHandle(char *UID);
79     static char*  getObjectFromHandle(long handle);
80
81     static char*  getFigureModel(void);
82     static void   setFigureModel(char *UID);
83
84     static char*  getAxesModel(void);
85     static void   setAxesModel(char *UID);
86
87 };
88
89 #endif /* !__SCILAB_VIEW_HXX__ */
90