better way to do dll (history_manager module)
[scilab.git] / scilab / modules / history_manager / includes / HistoryManager.h
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2007-2008 - INRIA - Allan CORNET
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 /*------------------------------------------------------------------------*/
14 #ifndef __HISTORYMANAGER_C_H__
15 #define __HISTORYMANAGER_C_H__
16 #include "BOOL.h"
17 #include "dynlib_history_manager.h"
18 /*------------------------------------------------------------------------*/
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22 /*------------------------------------------------------------------------*/
23         /**
24         * get history manager state
25         * @return TRUE or FALSE
26         */
27         HISTORY_MANAGER_IMPEXP BOOL historyIsEnabled(void);
28
29         /**
30          * append lines to History manager
31          * @param array of string
32          * @param size of the array of string
33          * @return TRUE or FALSE
34          */
35         HISTORY_MANAGER_IMPEXP BOOL appendLinesToScilabHistory(char **lines_, int numberoflines);
36         // Note it is lines_ because line is a keyword for term stuff
37
38         /**
39         * add a line to History manager
40         * @param a line to add
41         * line isn't added if it is the same as previous (FALSE)
42         * @return TRUE or FALSE
43         */
44         HISTORY_MANAGER_IMPEXP BOOL appendLineToScilabHistory(char *line);
45
46         /**
47         * Display history
48         */
49         HISTORY_MANAGER_IMPEXP void displayScilabHistory(void);
50
51         /**
52         * save history in a file
53         * @param a filename if NULL saves in default filename
54         * default filename --> SCIHOME/history.scilab
55         * @return TRUE or FALSE
56         */
57         HISTORY_MANAGER_IMPEXP BOOL writeScilabHistoryToFile(char *filename);
58
59         /**
60         * load history from a file
61         * @param a filename if NULL load from default filename
62         * default filename --> SCIHOME/history.scilab
63         * @return TRUE or FALSE
64         */
65         HISTORY_MANAGER_IMPEXP BOOL loadScilabHistoryFromFile(char *filename);
66
67         /**
68         * set filename of history
69         * @param filename of history
70         * @return TRUE or FALSE
71         */
72         HISTORY_MANAGER_IMPEXP BOOL setFilenameScilabHistory(char *filename);
73
74         /**
75         * get filename of history
76         * @return a filename
77         */
78         HISTORY_MANAGER_IMPEXP char *getFilenameScilabHistory(void);
79
80         /**
81         * set default filename of history
82         * @return TRUE or FALSE
83         */
84         HISTORY_MANAGER_IMPEXP BOOL setDefaultFilenameScilabHistory(void);
85
86         /**
87         * reset history manager
88         */
89         HISTORY_MANAGER_IMPEXP void resetScilabHistory(void);
90
91         /**
92         * Get all lines in history
93         * @return a array of string
94         */
95         HISTORY_MANAGER_IMPEXP char **getAllLinesOfScilabHistory(void);
96
97         /**
98         * Get numbers of lines in history
99         * size of array returned by getAllLinesOfScilabHistory
100         * @return int
101         */
102         HISTORY_MANAGER_IMPEXP int getSizeAllLinesOfScilabHistory(void);
103
104         /**
105         * set new token to search in history
106         * @param token (a string)
107         * @return TRUE or FALSE
108         */
109         HISTORY_MANAGER_IMPEXP BOOL setSearchedTokenInScilabHistory(char *token);
110
111         /**
112         * reset search in history
113         * @return TRUE or FALSE
114         */
115         HISTORY_MANAGER_IMPEXP BOOL resetSearchedTokenInScilabHistory(void);
116
117         /**
118         * get token searched in history
119         * @return token (a string)
120         */
121         HISTORY_MANAGER_IMPEXP char *getSearchedTokenInScilabHistory(void);
122
123         /**
124         * Get the previous line in Scilab history
125         * @return a line or NULL
126         * after a appendLine iterator go to end
127         */
128         HISTORY_MANAGER_IMPEXP char *getPreviousLineInScilabHistory(void);
129
130         /**
131         * Get the next line in Scilab history
132         * @return a line or NULL
133         * after a appendLine iterator go to end
134         */
135         HISTORY_MANAGER_IMPEXP char *getNextLineInScilabHistory(void);
136
137         /**
138         * Get numbers of lines in history
139         * @return number of lines
140         */
141         HISTORY_MANAGER_IMPEXP int getNumberOfLinesInScilabHistory(void);
142
143         /**
144         * set consecutive duplicate lines are added
145         * @param doit (TRUE or FALSE)
146         */
147         HISTORY_MANAGER_IMPEXP void setSaveConsecutiveDuplicateLinesInScilabHistory(BOOL doit);
148
149         /**
150         * indicate if consecutive duplicate lines are added
151         * @return TRUE or FALSE
152         */
153         HISTORY_MANAGER_IMPEXP BOOL getSaveConsecutiveDuplicateLinesInScilabHistory(void);
154
155         /**
156         * Set after how many lines history is saved
157         * @param number between 0 and Max
158         * default value is 0 (disabled)
159         */
160         HISTORY_MANAGER_IMPEXP void setAfterHowManyLinesScilabHistoryIsSaved(int num);
161
162         /**
163         * Get after how many lines history is saved
164         * @return number between 0 and Max
165         * default value is 0 (disabled)
166         */
167         HISTORY_MANAGER_IMPEXP int getAfterHowManyLinesScilabHistoryIsSaved(void);
168
169         /**
170         * Get the Nth Line in history
171         * @param N
172         * @return the Nth Line
173         */
174         HISTORY_MANAGER_IMPEXP char *getNthLineInScilabHistory(int N);
175
176         /**
177         * delete the Nth Line in history
178         * @param N
179         * @return TRUE or FALSE
180         */
181         HISTORY_MANAGER_IMPEXP BOOL deleteNthLineScilabHistory(int N);
182
183         /**
184         * get number of lines of history
185         * @return a number >= 0
186         */
187         HISTORY_MANAGER_IMPEXP int getSizeScilabHistory(void);
188
189
190 /*------------------------------------------------------------------------*/
191 #ifdef __cplusplus
192 }
193 #endif
194 /*------------------------------------------------------------------------*/
195 #endif /* __HISTORYMANAGER_C_H__ */
196 /*------------------------------------------------------------------------*/